// //////////////////////////////////////////////////////////////////////////// // //////////////////////////////////////////////////////////////////////////// // Called once on program startup. // bool systemInitialise(void) { if (!widgInitialise()) { return false; } buildMapList(); // Initialize render engine war_SetFog(war_GetFog()); // Set Fog mode based on user preferences if (!pie_Initialise()) { debug(LOG_ERROR, "Unable to initialise renderer"); return false; } if ( war_getSoundEnabled() ) { if (!audio_Init(droidAudioTrackStopped)) { debug(LOG_SOUND, "Could not initialise audio system: Continuing without audio"); } if (war_GetMusicEnabled()) { cdAudio_Open(UserMusicPath); } } else { debug(LOG_SOUND, "Sound disabled"); } if (!dataInitLoadFuncs()) // Pass all the data loading functions to the framework library { return false; } if (!fpathInitialise()) { return false; } // Initialize the iVis text rendering module iV_TextInit(); iV_Reset(); // Reset the IV library. initLoadingScreen(true); readAIs(); return true; }
// //////////////////////////////////////////////////////////////////////////// // //////////////////////////////////////////////////////////////////////////// // Called once on program startup. // bool systemInitialise(void) { if (!widgInitialise()) { return false; } buildMapList(); // Initialize render engine if (!pie_Initialise()) { debug(LOG_ERROR, "Unable to initialise renderer"); return false; } if (!audio_Init(droidAudioTrackStopped, war_getSoundEnabled())) { debug(LOG_SOUND, "Continuing without audio"); } if (war_getSoundEnabled() && war_GetMusicEnabled()) { cdAudio_Open(UserMusicPath); } else { debug(LOG_SOUND, "Music disabled"); } if (!dataInitLoadFuncs()) // Pass all the data loading functions to the framework library { return false; } if (!fpathInitialise()) { return false; } // Initialize the iVis text rendering module iV_TextInit(); // Fix badly named OpenGL functions. Must be done after iV_TextInit, to avoid the renames being clobbered by an extra glewInit() call. screen_EnableMissingFunctions(); pie_InitRadar(); iV_Reset(); // Reset the IV library. readAIs(); return true; }
// //////////////////////////////////////////////////////////////////////////// // //////////////////////////////////////////////////////////////////////////// // Called once on program startup. // bool systemInitialise(void) { if (!widgInitialise()) { return false; } buildMapList(); // Initialize render engine if (!pie_Initialise()) { debug(LOG_ERROR, "Unable to initialise renderer"); return false; } if (!audio_Init(droidAudioTrackStopped, war_getSoundEnabled())) { debug(LOG_SOUND, "Continuing without audio"); } if (war_getSoundEnabled() && war_GetMusicEnabled()) { cdAudio_Open(UserMusicPath); } else { debug(LOG_SOUND, "Music disabled"); } if (!dataInitLoadFuncs()) // Pass all the data loading functions to the framework library { return false; } if (!fpathInitialise()) { return false; } // Initialize the iVis text rendering module wzSceneBegin("Main menu loop"); iV_TextInit(); pie_InitRadar(); return true; }
bool stageThreeInitialise(void) { STRUCTURE *psStr; UDWORD i; DROID *psDroid; debug(LOG_WZ, "== stageThreeInitalise =="); bTrackingTransporter = false; loopMissionState = LMS_NORMAL; if(!InitRadar()) // After resLoad cause it needs the game palette initialised. { return false; } // reset the clock to normal speed gameTimeResetMod(); if (!init3DView()) // Initialise 3d view stuff. After resLoad cause it needs the game palette initialised. { return false; } effectResetUpdates(); initLighting(0, 0, mapWidth, mapHeight); if(bMultiPlayer) { // FIXME Is this really needed? debug( LOG_WZ, "multiGameInit()\n" ); multiGameInit(); cmdDroidMultiExpBoost(true); } preProcessVisibility(); // Load any stored templates; these need to be available ASAP initTemplates(); if (!fpathInitialise()) { return false; } mapInit(); clustInitialise(); gridReset(); //if mission screen is up, close it. if(MissionResUp) { intRemoveMissionResultNoAnim(); } // Re-inititialise some static variables. driveInitVars(false); resizeRadar(); setAllPauseStates(false); /* decide if we have to create teams, ONLY in multiplayer mode!*/ if (bMultiPlayer && game.alliance == ALLIANCES_TEAMS) { createTeamAlliances(); /* Update ally vision for pre-placed structures and droids */ for(i=0;i<MAX_PLAYERS;i++) { if(i != selectedPlayer) { /* Structures */ for(psStr=apsStructLists[i]; psStr; psStr=psStr->psNext) { if(aiCheckAlliances(psStr->player,selectedPlayer)) visTilesUpdate((BASE_OBJECT *)psStr); } /* Droids */ for(psDroid=apsDroidLists[i]; psDroid; psDroid=psDroid->psNext) { if(aiCheckAlliances(psDroid->player,selectedPlayer)) visTilesUpdate((BASE_OBJECT *)psDroid); } } } } // ffs JS (and its a global!) if (getLevelLoadType() != GTYPE_SAVE_MIDMISSION) { eventFireCallbackTrigger((TRIGGER_TYPE)CALL_GAMEINIT); triggerEvent(TRIGGER_GAME_INIT); } return true; }
bool stageThreeInitialise() { STRUCTURE *psStr; UDWORD i; DROID *psDroid; bool fromSave = (getSaveGameType() == GTYPE_SAVE_START || getSaveGameType() == GTYPE_SAVE_MIDMISSION); debug(LOG_WZ, "== stageThreeInitialise =="); loopMissionState = LMS_NORMAL; if (!InitRadar()) // After resLoad cause it needs the game palette initialised. { return false; } // reset the clock to normal speed gameTimeResetMod(); if (!init3DView()) // Initialise 3d view stuff. After resLoad cause it needs the game palette initialised. { return false; } effectResetUpdates(); initLighting(0, 0, mapWidth, mapHeight); pie_InitLighting(); if (fromSave) { // these two lines are the biggest hack in the world. // the reticule seems to get detached from 'reticuleup' // this forces it back in sync... intRemoveReticule(); intAddReticule(); } if (bMultiPlayer) { if (!fromSave) { multiGameInit(); } initTemplates(); } preProcessVisibility(); prepareScripts(getLevelLoadType() == GTYPE_SAVE_MIDMISSION || getLevelLoadType() == GTYPE_SAVE_START); if (!fpathInitialise()) { return false; } mapInit(); gridReset(); //if mission screen is up, close it. if (MissionResUp) { intRemoveMissionResultNoAnim(); } // Re-inititialise some static variables. resizeRadar(); setAllPauseStates(false); /* decide if we have to create teams, ONLY in multiplayer mode!*/ if (bMultiPlayer && alliancesSharedVision(game.alliance)) { createTeamAlliances(); /* Update ally vision for pre-placed structures and droids */ for (i = 0; i < MAX_PLAYERS; i++) { if (i != selectedPlayer) { /* Structures */ for (psStr = apsStructLists[i]; psStr; psStr = psStr->psNext) { if (aiCheckAlliances(psStr->player, selectedPlayer)) { visTilesUpdate((BASE_OBJECT *)psStr); } } /* Droids */ for (psDroid = apsDroidLists[i]; psDroid; psDroid = psDroid->psNext) { if (aiCheckAlliances(psDroid->player, selectedPlayer)) { visTilesUpdate((BASE_OBJECT *)psDroid); } } } } } countUpdate(); if (getLevelLoadType() != GTYPE_SAVE_MIDMISSION) { if (getDebugMappingStatus()) { triggerEventCheatMode(true); } eventFireCallbackTrigger((TRIGGER_TYPE)CALL_GAMEINIT); triggerEvent(TRIGGER_GAME_INIT); } return true; }
bool stageTwoInitialise() { int i; debug(LOG_WZ, "== stageTwoInitialise =="); // make sure we clear on loading; this a bad hack to fix a bug when // loading a savegame where we are building a lassat for (i = 0; i < MAX_PLAYERS; i++) { setLasSatExists(false, i); } if (!dispInitialise()) /* Initialise the display system */ { return false; } if (!initMiscImds()) /* Set up the explosions */ { debug(LOG_FATAL, "Can't find all the explosions graphics?"); abort(); return false; } if (!cmdDroidInit()) { return false; } /* Shift the interface initialisation here temporarily so that it can pick up the stats after they have been loaded */ if (!intInitialise()) { return false; } if (!initMessage()) /* Initialise the message heaps */ { return false; } if (!gwInitialise()) { return false; } if (!initScripts()) // Initialise the new javascript system { return false; } // reinitialise key mappings keyInitMappings(false); // Set the default uncoloured cursor here, since it looks slightly // better for menus and such. wzSetCursor(CURSOR_DEFAULT); SetFormAudioIDs(ID_SOUND_WINDOWOPEN, ID_SOUND_WINDOWCLOSE); // Setup game queues. // Don't ask why this doesn't go in stage three. In fact, don't even ask me what stage one/two/three is supposed to mean, it seems about as descriptive as stage doStuff, stage doMoreStuff and stage doEvenMoreStuff... debug(LOG_MAIN, "Init game queues, I am %d.", selectedPlayer); sendQueuedDroidInfo(); // Discard any pending orders which could later get flushed into the game queue. for (i = 0; i < MAX_PLAYERS; ++i) { NETinitQueue(NETgameQueue(i)); if (!myResponsibility(i)) { NETsetNoSendOverNetwork(NETgameQueue(i)); } } // NOTE: // - Loading savegames calls `fPathDroidRoute` (from `loadSaveDroid`) before `stageThreeInitialise` // is called, hence removing this call to `fpathInitialise` will currently break loading certain // savegames (if they interact with the fPath system). if (!fpathInitialise()) { return false; } debug(LOG_MAIN, "stageTwoInitialise: done"); return true; }