// Stop droid driving mode. // void StopDriverMode(void) { DROID *psDroid; if(psDrivenDroid != NULL) { debug( LOG_NEVER, "Drive mode canceled\n" ); addConsoleMessage("Driver mode canceled.", LEFT_JUSTIFY,SYSTEM_MESSAGE); // audio_StopObjTrack(psDrivenDroid,ID_SOUND_SMALL_DROID_RUN); psDrivenDroid = NULL; for(psDroid = apsDroidLists[selectedPlayer]; psDroid; psDroid = psDroid->psNext) { if( (psDroid->sMove.Status == MOVEDRIVE) ) { ASSERT( (psDroid->droidType != DROID_TRANSPORTER),"Tried to control a transporter" ); secondarySetState(psDroid, DSO_HALTTYPE, DSS_HALT_GUARD); psDroid->sMove.Status = MOVEINACTIVE; } } } setDrivingStatus(false); driveInitVars(false); // reset everything again DriveControlEnabled = false; DirectControl = false; }
// Each module in the game should have a call from here to initialise // any globals and statics to there default values each time the game // or frontend restarts. // static bool InitialiseGlobals(void) { frontendInitVars(); // Initialise frontend globals and statics. statsInitVars(); structureInitVars(); if (!messageInitVars()) { return false; } if (!researchInitVars()) { return false; } featureInitVars(); radarInitVars(); Edit3DInitVars(); driveInitVars(true); return true; }
// Stop droid driving mode. // void StopDriverMode(void) { if (psDrivenDroid != NULL) { debug(LOG_NEVER, "Drive mode canceled"); addConsoleMessage("Driver mode canceled.", LEFT_JUSTIFY, SYSTEM_MESSAGE); psDrivenDroid = NULL; for (DROID *psDroid = apsDroidLists[selectedPlayer]; psDroid; psDroid = psDroid->psNext) { if (psDroid->sMove.Status == MOVEDRIVE) { ASSERT(!isTransporter(psDroid), "Tried to control a transporter"); psDroid->sMove.Status = MOVEINACTIVE; } } } setDrivingStatus(false); driveInitVars(false); // reset everything again DriveControlEnabled = false; DirectControl = false; }
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; }