// Reset the game when loading a save game bool saveGameReset(void) { debug(LOG_MAIN, "saveGameReset"); cdAudio_Stop(); freeAllStructs(); freeAllDroids(); freeAllFeatures(); freeAllFlagPositions(); initMission(); initTransporters(); //free up the gateway stuff? gwShutDown(); intResetScreen(true); intResetPreviousObj(); if (!mapShutdown()) { return false; } //clear out any messages freeMessages(); return true; }
// //////////////////////////////////////////////////////////////////////////// // Host Campaign. bool hostCampaign(char *sGame, char *sPlayer) { PLAYERSTATS playerStats; UDWORD i; debug(LOG_WZ, "Hosting campaign: '%s', player: '%s'", sGame, sPlayer); freeMessages(); // If we had a single player (i.e. campaign) game before this value will // have been set to 0. So revert back to the default value. if (game.maxPlayers == 0) { game.maxPlayers = 4; } if (!NEThostGame(sGame, sPlayer, game.type, 0, 0, 0, game.maxPlayers)) { return false; } for (i = 0; i < MAX_PLAYERS; i++) { if (NetPlay.bComms) { game.skDiff[i] = 0; // disable AI } setPlayerName(i, ""); //Clear custom names (use default ones instead) } NetPlay.players[selectedPlayer].ready = false; ingame.localJoiningInProgress = true; ingame.JoiningInProgress[selectedPlayer] = true; bMultiPlayer = true; bMultiMessages = true; // enable messages loadMultiStats(sPlayer, &playerStats); // stats stuff setMultiStats(selectedPlayer, playerStats, false); setMultiStats(selectedPlayer, playerStats, true); if (!NetPlay.bComms) { sstrcpy(NetPlay.players[0].name, sPlayer); } return true; }