diff --git a/rsc/setup_room.lua b/rsc/setup_room.lua new file mode 100644 index 0000000..e69de29 diff --git a/rsc/setup_server.lua b/rsc/setup_server.lua new file mode 100644 index 0000000..e69de29 diff --git a/rsc/setup.sql b/rsc/setup_server.sql similarity index 91% rename from rsc/setup.sql rename to rsc/setup_server.sql index b85eeb0..003bb52 100644 --- a/rsc/setup.sql +++ b/rsc/setup_server.sql @@ -71,12 +71,3 @@ CREATE TABLE IF NOT EXISTS PlayerInventoryItems ( characterID INTEGER REFERENCES PlayerCharacters(characterID), globalItemListID INTEGER REFERENCES GlobalItemList(globalItemListID) ); - ---cleanup -DROP TABLE UserAccounts; -DROP TABLE GlobalItemList; -DROP TABLE MundaneItems; -DROP TABLE Consumables; -DROP TABLE Equipment; -DROP TABLE PlayerCharacters; -DROP TABLE PlayerInventoryItems; \ No newline at end of file diff --git a/server/server_application.cpp b/server/server_application.cpp index 79afdd9..addcc0a 100644 --- a/server/server_application.cpp +++ b/server/server_application.cpp @@ -22,9 +22,9 @@ #include "server_application.hpp" #include -#include - #include +#include +#include ServerApplication ServerApplication::instance; @@ -71,6 +71,22 @@ void ServerApplication::Init(int argc, char** argv) { else { std::cout << "Database filename: \"" << dbname << ".db\"" << std::endl; } + + //Run setup scripts + luaL_dofile(luaState, "rsc/setup_server.lua"); + + std::ifstream is("rsc/setup_server.sql"); + if (!is.is_open()) { + throw(std::runtime_error("Failed to run database setup script")); + } + else { + std::cout << "Running the database script" << std::endl; + } + std::string script; + getline(is, script, '\0'); + is.close(); + + sqlite3_exec(database, script.c_str(), nullptr, nullptr, nullptr); } void ServerApplication::Loop() { @@ -78,7 +94,7 @@ void ServerApplication::Loop() { } void ServerApplication::Quit() { - sqlite3_close(database); + sqlite3_close_v2(database); lua_close(luaState); SDL_Quit(); }