Added lua and SQL, but removed lsqlite3.c

lsqlite3.c looked like a good idea for connnecting SQL and lua, but I
couldn't get it to work and rather than struggle on this, I'll write my
own library later on.
This commit is contained in:
Kayne Ruse
2013-09-05 20:04:11 +10:00
parent 4b62310158
commit 09453cc24e
8 changed files with 54 additions and 2161 deletions
+2 -1
View File
@@ -4,11 +4,12 @@ Tortuga is an open source 2D multiplayer role playing game featuring permadeath
This game is inspired by classic 2D RPGs, as well as more modern sandbox MMOs. This project is currently independently created and funded, with the goal of creating a game that will engage user's imagination and inspire a large modding community.
## Dependencies
## External Dependencies
* [SDL 1.6](http://www.libsdl.org/) - Simple DirectMedia Layer API
* [SDL_net 1.2](http://www.libsdl.org/projects/SDL_net/) - SDL's networking extension
* [lua 5.2](http://www.lua.org/) - The lua programming language
* [SQLite3](http://www.sqlite.org/) - A lightweight SQL database engine
## Documentation
+1 -1
View File
@@ -3,7 +3,7 @@ COMMONDIR+=../common
COMMON+=../libcommon.a
LIB+=$(COMMON) -lmingw32 -lSDLmain -lSDL -llua -lsqlite3
CXXFLAGS+=-std=c++11 -DDEBUG $(addprefix -I,$(COMMONDIR))
CFLAGS+=-DDEBUG -I$(COMMONDIR)
CFLAGS+=-DDEBUG $(addprefix -I,$(COMMONDIR))
#source
CXXSRC=$(wildcard *.cpp)
-2151
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -3,7 +3,7 @@ COMMONDIR+=../common
COMMON+=../libcommon.a
LIB+=$(COMMON) -lmingw32 -lSDLmain -lSDL -llua -lsqlite3
CXXFLAGS+=-std=c++11 -DDEBUG $(addprefix -I,$(COMMONDIR))
CFLAGS+=-DDEBUG -I$(COMMONDIR)
CFLAGS+=-DDEBUG $(addprefix -I,$(COMMONDIR))
#source
CXXSRC=$(wildcard *.cpp)
+2 -2
View File
@@ -28,10 +28,10 @@
using namespace std;
int main(int, char**) {
int main(int argc, char** argv) {
cout << "Beginning server" << endl;
try {
ServerApplication::GetInstance()->Init();
ServerApplication::GetInstance()->Init(argc, argv);
ServerApplication::GetInstance()->Loop();
ServerApplication::GetInstance()->Quit();
}
+1 -1
View File
@@ -3,7 +3,7 @@ COMMONDIR+=../common
COMMON+=../libcommon.a
LIB+=$(COMMON) -lmingw32 -lSDLmain -lSDL -llua -lsqlite3
CXXFLAGS+=-std=c++11 -DDEBUG $(addprefix -I,$(COMMONDIR))
CFLAGS+=-DDEBUG -I$(COMMONDIR)
CFLAGS+=-DDEBUG $(addprefix -I,$(COMMONDIR))
#source
CXXSRC=$(wildcard *.cpp)
+39 -3
View File
@@ -21,6 +21,11 @@
*/
#include "server_application.hpp"
#include <stdexcept>
#include <string>
#include <iostream>
ServerApplication ServerApplication::instance;
ServerApplication::ServerApplication() {
@@ -31,12 +36,41 @@ ServerApplication::~ServerApplication() {
//TODO
}
void ServerApplication::Init() {
//TODO
void ServerApplication::Init(int argc, char** argv) {
//Check thread safety
if (!sqlite3_threadsafe()) {
throw(std::runtime_error("Cannot run without thread safety"));
}
else {
std::cout << "Thread safety confirmed" << std::endl;
}
//Init SDL
if (SDL_Init(0)) {
throw(std::runtime_error("Failed to initialize SDL"));
}
else {
std::cout << "SDL initialized" << std::endl;
}
//Init lua
if (!(luaState = luaL_newstate())) {
throw(std::runtime_error("Failed to create the lua state"));
}
else {
std::cout << "lua initialized" << std::endl;
}
luaL_openlibs(luaState);
//Init SQL
std::string dbname = (argc > 1) ? argv[1] : argv[0];
int ret = sqlite3_open_v2((dbname + ".db").c_str(), &database, SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE|SQLITE_OPEN_FULLMUTEX, nullptr);
if (ret != SQLITE_OK || !database) {
throw(std::runtime_error("Failed to open the server database"));
}
else {
std::cout << "Database filename: \"" << dbname << ".db\"" << std::endl;
}
}
void ServerApplication::Loop() {
@@ -44,5 +78,7 @@ void ServerApplication::Loop() {
}
void ServerApplication::Quit() {
//TODO
sqlite3_close(database);
lua_close(luaState);
SDL_Quit();
}
+8 -1
View File
@@ -22,6 +22,10 @@
#ifndef SERVERAPPLICATION_HPP_
#define SERVERAPPLICATION_HPP_
#include "lua/lua.hpp"
#include "sqlite3/sqlite3.h"
#include "SDL/SDL.h"
//The main application class
class ServerApplication {
private:
@@ -32,12 +36,15 @@ private:
public:
static ServerApplication* GetInstance() { return &instance; }
void Init();
void Init(int argc, char** argv);
void Loop();
void Quit();
private:
bool running = true;
lua_State* luaState = nullptr;
sqlite3* database = nullptr;
};
#endif