summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorMateusz Kaduk <mateusz.kaduk@gmail.com>2005-05-23 06:34:22 +0000
committerMateusz Kaduk <mateusz.kaduk@gmail.com>2005-05-23 06:34:22 +0000
commit5cf7a669530b9f328fa79c401575cdd0e14a523e (patch)
treefc1b36b51d995498543aab140493ea3052719084 /src/main.cpp
parent795182f6ad0afd57b5490b9fa5417222b2118788 (diff)
downloadmanaserv-5cf7a669530b9f328fa79c401575cdd0e14a523e.tar.gz
manaserv-5cf7a669530b9f328fa79c401575cdd0e14a523e.tar.bz2
manaserv-5cf7a669530b9f328fa79c401575cdd0e14a523e.tar.xz
manaserv-5cf7a669530b9f328fa79c401575cdd0e14a523e.zip
Remove main.h, added storage class, moved some code to it
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp75
1 files changed, 33 insertions, 42 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 87f7d6d8..38b1f29f 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -24,7 +24,7 @@
#define TMWSERV_VERSION "0.0.1"
#include <iostream>
-#include "main.h"
+#include "storage.h"
#include "netsession.h"
#include "connectionhandler.h"
#include "accounthandler.h"
@@ -64,31 +64,8 @@ int worldTime = 0; /**< Current world time in 100ms ticks */
bool running = true; /**< Determines if server keeps running */
Skill skillTree("base"); /**< Skill tree */
-SQLiteWrapper sqlite; /**< Database */
-/**
- * Create tables if necessary
- */
-void create_tables_if_necessary()
-{
- SQLiteWrapper::ResultTable r;
-
- if (!sqlite.SelectStmt("select count(*) from sqlite_master where tbl_name='topics' and type='table'", r)) {
- std::cout << "Error with select count(*) [create_tables_if_necessary]" << sqlite.LastError().c_str() << std::endl;
- }
-
- if (r.records_[0].fields_[0] != "0")
- return;
-
- sqlite.Begin();
- if (sqlite.DirectStatement("create table tmw_accounts(user TEXT, password TEXT, email TEXT)")) {
- std::cout << "Database: table tmw_accounts created" << std::endl;
- }
- else {
- std::cout << "Database: table exist" << std::endl;
- }
- sqlite.Commit();
-}
+Storage *store;
/**
* SDL timer callback, sends a <code>TMW_WORLD_TICK</code> event.
@@ -138,16 +115,7 @@ void initialize()
script = new ScriptSquirrel("main.nut");
#endif
- // Open database
- if (sqlite.Open("tmw.db")) {
- std::cout << "Database: tmw.db created or opened" << std::endl;
- }
- else {
- std::cout << "Database: couldn't open tmw.db" << std::endl;
- }
-
- //Create tables
- create_tables_if_necessary();
+ store = new Storage();
}
/**
@@ -163,17 +131,40 @@ void deinitialize()
// Destroy scripting subsystem
#ifdef SCRIPT_SUPPORT
+#ifdef SCRIPT_SUPPORT
+ script->update();
+#endif
+}
+
+/**
+ * Main function, initializes and runs server.
+ */
+int main(int argc, char *argv[])
+{
+ initialize();
+
+ // Ready for server work...
+ ConnectionHandler *connectionHandler = new ConnectionHandler();
+ NetSession *session = new NetSession();
+
+ // Note: This is just an idea, we could also pass the connection handler
+ // to the constructor of the account handler, upon which is would register
+ // itself for the messages it handles.
+ //
+ //AccountHandler *accountHandler = new AccountHandler();
+ //connectionHandler->registerHandler(C2S_LOGIN, accountHandler);
+
+ logger->log("The Mana World Server v%s", TMWSERV_VERSION);
+ session->startListen(connectionHandler, SERVER_PORT);
+ logger->log("Listening on port %d...", SERVER_PORT);
+
+ SDL_Event event;
+
delete script;
#endif
delete logger;
- // Close database
- if (sqlite.Close()) {
- std::cout << "Database: tmw.db closed" << std::endl;
- }
- else {
- std::cout << "Database: couldn't close tmw.db" << std::endl;
- }
+ delete store;
}
/**