Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/base/game.cc')
-rw-r--r--src/game/base/game.cc34
1 files changed, 27 insertions, 7 deletions
diff --git a/src/game/base/game.cc b/src/game/base/game.cc
index 9d2dcd0..73fd9ad 100644
--- a/src/game/base/game.cc
+++ b/src/game/base/game.cc
@@ -34,6 +34,7 @@ namespace game
// default player settings
core::Zone *Default::zone = 0;
core::Entity *Default::view = 0;
+model::Model *Default::podmodel = 0;
ShipModel *Default::shipmodel = 0;
long Default::credits = 0;
@@ -43,6 +44,7 @@ void Default::clear()
view = 0;
shipmodel = 0;
credits = 0;
+ podmodel = 0;
}
/* -- class Game static members ----------------------------------- */
@@ -827,7 +829,7 @@ Game::Game() : core::Module("Project::OSiRiON", true)
}
// load game default settings
- if (!load_defaults()) {
+ if (!load_settings()) {
abort();
return;
}
@@ -900,15 +902,22 @@ Game::Game() : core::Module("Project::OSiRiON", true)
Game::~Game()
{
g_impulsespeed = 0;
+ g_jumppointrange = 0;
+ g_devel = 0;
+ g_damping = 0;
+ g_keepalive = 0;
// game functions are automaticly removed
+ // FIXME move cleanup sequence to core::
// we explicity clear game data to prevent bullet from beeing confused
core::game()->clear();
+
+ Default::clear();
}
bool Game::load_world()
{
- std::string inifilename("world");
+ std::string inifilename("ini/world");
filesystem::IniFile worldini;
worldini.open(inifilename);
@@ -977,7 +986,7 @@ bool Game::load_zone(core::Zone *zone)
using math::Vector3f;
using math::Color;
- std::string inifilename("zones/");
+ std::string inifilename("ini/zones/");
inifilename.append(zone->label());
filesystem::IniFile zoneini;
@@ -1394,12 +1403,10 @@ bool Game::generate_entity_menus(core::Entity *entity)
}
// load game defaults settings
-bool Game::load_defaults()
+bool Game::load_settings()
{
- Default::clear();
-
filesystem::IniFile inifile;
- inifile.open("game");
+ inifile.open("ini/game");
if (!inifile.is_open()) {
con_error << "Could not open " << inifile.name() << "!" << std::endl;
return false;
@@ -1414,6 +1421,8 @@ bool Game::load_defaults()
if (inifile.got_section("player")) {
continue;
+ } else if (inifile.got_section("cargo")) {
+ continue;
} else {
inifile.unknown_section();
}
@@ -1421,6 +1430,7 @@ bool Game::load_defaults()
} else if (inifile.got_key()) {
if (inifile.in_section("player")) {
+
if (inifile.got_key_long("credits", l)) {
Default::credits = l;
} else if (inifile.got_key_string("zone", str)) {
@@ -1429,6 +1439,16 @@ bool Game::load_defaults()
} else if (inifile.got_key_string("ship", str)) {
aux::to_label(str);
Default::shipmodel = ShipModel::find(str);
+ } else {
+ inifile.unkown_key();
+ }
+
+ } else if (inifile.in_section("cargo")) {
+
+ if (inifile.got_key_string("model", str)) {
+ Default::podmodel = model::Model::load(str);
+ } else {
+ inifile.unkown_key();
}
}
}