Game::Game(void) : Scriptable( ST_GLOBAL ) { protagonist = PM_YES; //set it to 2 for iwd/iwd2 and 0 for pst partysize = 6; Ticks = 0; version = 0; Expansion = 0; LoadMos[0] = 0; TextScreen[0] = 0; SelectedSingle = 1; //the PC we are looking at (inventory, shop) PartyGold = 0; SetScript( core->GlobalScript, 0 ); MapIndex = -1; Reputation = 0; ControlStatus = 0; CombatCounter = 0; //stored here until we know better StateOverrideTime = 0; StateOverrideFlag = 0; BanterBlockTime = 0; BanterBlockFlag = 0; WeatherBits = 0; crtable = NULL; kaputz = NULL; beasts = NULL; mazedata = NULL; timestop_owner = NULL; timestop_end = 0; event_timer = 0; event_handler = NULL; weather = new Particles(200); weather->SetRegion(0, 0, core->Width, core->Height); LastScriptUpdate = 0; //loading master areas AutoTable table; if (table.load("mastarea")) { int i = table->GetRowCount(); mastarea.reserve(i); while(i--) { char *tmp = (char *) malloc(9); strnuprcpy (tmp,table->QueryField(i,0),8); mastarea.push_back( tmp ); } } //loading rest/daylight switching movies (only bg2 has them) memset(restmovies,'*',sizeof(restmovies)); memset(daymovies,'*',sizeof(daymovies)); memset(nightmovies,'*',sizeof(nightmovies)); if (table.load("restmov")) { for(int i=0;i<8;i++) { strnuprcpy(restmovies[i],table->QueryField(i,0),8); strnuprcpy(daymovies[i],table->QueryField(i,1),8); strnuprcpy(nightmovies[i],table->QueryField(i,2),8); } } //loading npc starting levels ieResRef tn; if (Expansion == 5) { // tob is special CopyResRef(tn, "npclvl25"); } else { CopyResRef(tn, "npclevel"); } if (table.load(tn)) { int cols = table->GetColumnCount(); int rows = table->GetRowCount(); int i, j; npclevels.reserve(rows); for (i = 0; i < rows; i++) { npclevels.push_back (std::vector<char *>(cols+1)); for(j = -1; j < cols; j++) { char *ref = new char[9]; if (j == -1) { CopyResRef(ref, table->GetRowName(i)); npclevels[i][j+1] = ref; } else { CopyResRef(ref, table->QueryField(i, j)); npclevels[i][j+1] = ref; } } } } interval = 1000/AI_UPDATE_TIME; hasInfra = false; familiarBlock = false; //FIXME:i'm not sure in this... NoInterrupt(); bntchnc = NULL; bntrows = -1; }
Game::Game(void) : Scriptable( ST_GLOBAL ) { protagonist = PM_YES; //set it to 2 for iwd/iwd2 and 0 for pst partysize = 6; Ticks = 0; version = 0; Expansion = 0; LoadMos[0] = 0; SelectedSingle = 1; //the PC we are looking at (inventory, shop) PartyGold = 0; SetScript( core->GlobalScript, 0 ); MapIndex = -1; Reputation = 0; ControlStatus = 0; CombatCounter = 0; //stored here until we know better StateOverrideTime = 0; StateOverrideFlag = 0; BanterBlockTime = 0; BanterBlockFlag = 0; WeatherBits = 0; crtable = NULL; kaputz = NULL; beasts = NULL; mazedata = NULL; timestop_owner = NULL; timestop_end = 0; event_timer = 0; event_handler = NULL; weather = new Particles(200); weather->SetRegion(0, 0, core->Width, core->Height); LastScriptUpdate = 0; //loading master areas AutoTable table; if (table.load("mastarea")) { int i = table->GetRowCount(); mastarea.reserve(i); while(i--) { char *tmp = (char *) malloc(9); strnuprcpy (tmp,table->QueryField(i,0),8); mastarea.push_back( tmp ); } } //loading rest/daylight switching movies (only bg2 has them) memset(restmovies,'*',sizeof(restmovies)); memset(daymovies,'*',sizeof(restmovies)); memset(nightmovies,'*',sizeof(restmovies)); if (table.load("restmov")) { for(int i=0;i<8;i++) { strnuprcpy(restmovies[i],table->QueryField(i,0),8); strnuprcpy(daymovies[i],table->QueryField(i,1),8); strnuprcpy(nightmovies[i],table->QueryField(i,2),8); } } interval = 1000/AI_UPDATE_TIME; hasInfra = false; familiarBlock = false; //FIXME:i'm not sure in this... NoInterrupt(); }