From 92b60f874b63e7bcc99f221c65a0bf70b4b8a6d8 Mon Sep 17 00:00:00 2001 From: Lee Salzman Date: Sat, 27 Sep 2008 17:52:46 +0000 Subject: [PATCH] resetmap/startmap cleanup git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@2780 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/clientgame.cpp | 25 ++++++++++++++++--------- source/src/protos.h | 1 + source/src/world.cpp | 14 ++++++-------- source/src/worldio.cpp | 9 ++++----- 4 files changed, 27 insertions(+), 22 deletions(-) diff --git a/source/src/clientgame.cpp b/source/src/clientgame.cpp index 512a1a5b..db8d2d33 100644 --- a/source/src/clientgame.cpp +++ b/source/src/clientgame.cpp @@ -637,12 +637,25 @@ void gamemodedesc(char *modenr, char *desc) COMMAND(gamemodedesc, ARG_2STR); +void resetmap() +{ + resetsleep(); + clearminimap(); + cleardynlights(); + pruneundos(); + clearworldsounds(); + particlereset(); + setvar("gamespeed", 100); + setvar("paused", 0); + setvar("fog", 180); + setvar("fogcolour", 0x8099B3); + setvar("shadowyaw", 45); +} + int suicided = -1; void startmap(const char *name) // called just after a map load { - resetsleep(); - clearminimap(); senditemstoserver = true; // Added by Rick if(m_botmode) BotManager.BeginMap(name); @@ -650,8 +663,7 @@ void startmap(const char *name) // called just after a map load // End add by Rick clearbounceents(); resetspawns(); - if(m_flags) preparectf(); - particlereset(); + preparectf(!m_flags); suicided = -1; spawncycle = -1; if(m_valid(gamemode) && !m_mp(gamemode)) respawnself(); @@ -660,11 +672,6 @@ void startmap(const char *name) // called just after a map load loopv(players) if(players[i]) players[i]->frags = players[i]->flagscore = players[i]->deaths = players[i]->lifesequence = 0; s_strcpy(clientmap, name); if(editmode) toggleedit(); - setvar("gamespeed", 100); - setvar("paused", 0); - setvar("fog", 180); - setvar("fogcolour", 0x8099B3); - setvar("shadowyaw", 45); showscores(false); intermission = false; minutesremaining = -1; diff --git a/source/src/protos.h b/source/src/protos.h index d06f48c4..df10b4ff 100644 --- a/source/src/protos.h +++ b/source/src/protos.h @@ -307,6 +307,7 @@ extern void listdemos(); extern flaginfo flaginfos[2]; extern bool autoteambalance; extern void updateworld(int curtime, int lastmillis); +extern void resetmap(); extern void startmap(const char *name); extern void changemap(const char *name); extern void initclient(); diff --git a/source/src/world.cpp b/source/src/world.cpp index 9b32ca8b..6f7711e7 100644 --- a/source/src/world.cpp +++ b/source/src/world.cpp @@ -273,9 +273,6 @@ void setupworld(int factor) void empty_world(int factor, bool force) // main empty world creation routine, if passed factor -1 will enlarge old world by 1 { if(!force && noteditmode()) return; - cleardynlights(); - pruneundos(); - clearworldsounds(); sqr *oldworld = world; bool copy = false; if(oldworld && factor<0) { factor = sfactor+1; copy = true; } @@ -327,11 +324,7 @@ void empty_world(int factor, bool force) // main empty world creation routine } calclight(); - if(factor>=0) - { - findplayerstart(player1, true); - startmap(""); - } + if(factor>=0) resetmap(); if(oldworld) { delete[] oldworld; @@ -346,6 +339,11 @@ void empty_world(int factor, bool force) // main empty world creation routine setvar("fullbright", 1, true); } } + if(factor>=0) + { + findplayerstart(player1, true); + startmap(""); + } } void mapenlarge() { empty_world(-1, false); } diff --git a/source/src/worldio.cpp b/source/src/worldio.cpp index 18de544e..c182b9b3 100644 --- a/source/src/worldio.cpp +++ b/source/src/worldio.cpp @@ -280,10 +280,7 @@ bool load_world(char *mname) // still supports all map formats that have if(tmp.version>=4 && gzread(f, &tmp.waterlevel, sizeof(int)*16)!=sizeof(int)*16) { conoutf("\f3while reading map: header malformatted"); gzclose(f); return false; } hdr = tmp; loadingscreen(); - preparectf(true); - cleardynlights(); - pruneundos(); - clearworldsounds(); + resetmap(); if(hdr.version>=4) { endianswap(&hdr.waterlevel, sizeof(int), 1); @@ -448,7 +445,6 @@ bool load_world(char *mname) // still supports all map formats that have calclight(); conoutf("read map %s (%d milliseconds)", cgzname, SDL_GetTicks()-loadmillis); conoutf("%s", hdr.maptitle); - startmap(mname); pushscontext(IEXC_MAPCFG); // untrusted altogether persistidents = false; @@ -463,6 +459,9 @@ bool load_world(char *mname) // still supports all map formats that have c2skeepalive(); preload_mapmodels(); c2skeepalive(); + + startmap(mname); + return true; }