X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGameTick.cpp;h=a47edc9d765065e911bae8ee0b04ca6262d07d65;hb=75f57e08723a98ddbd4383be19c228f031c18b53;hp=e6a810a651969e8f4fb032abf0f04d2af5f3f8f3;hpb=ce5a0f8dd7372931070554e6a963d6e715ea69b7;p=lugaru.git diff --git a/Source/GameTick.cpp b/Source/GameTick.cpp index e6a810a..a47edc9 100644 --- a/Source/GameTick.cpp +++ b/Source/GameTick.cpp @@ -27,6 +27,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #endif +#include #include #include "Game.h" #include "openal_wrapper.h" @@ -63,7 +64,6 @@ extern Light light; extern float texdetail; extern GLubyte bloodText[512*512*3]; extern GLubyte wolfbloodText[512*512*3]; -extern float terraindetail; extern float camerashake; extern float woozy; extern float blackout; @@ -83,7 +83,6 @@ extern bool autoslomo; extern bool keyboardfrozen; extern int netdatanew; extern bool loadingstuff; -extern char mapname[256]; extern XYZ windvector; extern bool debugmode; static int music1; @@ -108,7 +107,6 @@ extern bool texttoggle; extern bool alwaysblur; extern float gamespeed; extern bool decals; -extern bool vblsync; extern bool immediate; extern bool velocityblur; extern float tintr,tintg,tintb; @@ -216,9 +214,7 @@ static void ch_quit(Game *game, const char *args) static void ch_map(Game *game, const char *args) { - char buf[64]; - snprintf(buf, 63, ":Data:Maps:%s", args); - game->Loadlevel(buf); + game->Loadlevel(args); game->whichlevel = -2; campaign = 0; } @@ -436,7 +432,7 @@ static void ch_size(Game *game, const char *args) static int find_closest() { int closest = 0; - float closestdist = 1.0/0.0; + float closestdist = std::numeric_limits::max(); for (int i = 1; i < numplayers; i++) { float distance; @@ -1430,16 +1426,16 @@ void Game::Loadlevel(int which){ if (which == -1) { tutoriallevel = -1; - Loadlevel(":Data:Maps:tutorial"); + Loadlevel("tutorial"); } else if (which >= 0 && which <= 15) { char buf[32]; - snprintf(buf, 32, ":Data:Maps:map%d", which + 1); + snprintf(buf, 32, "map%d", which + 1); Loadlevel(buf); } else - Loadlevel(":Data:Maps:mapsave"); + Loadlevel("mapsave"); } void Game::Loadlevel(const char *name){ @@ -1448,6 +1444,8 @@ void Game::Loadlevel(const char *name){ int templength; float lamefloat; int lameint; + static const char *pfx = ":Data:Maps:"; + char *buf; float headprop,legprop,armprop,bodyprop; @@ -1480,7 +1478,9 @@ void Game::Loadlevel(const char *name){ pause_sound(stream_firesound); // Change the map filename into something that is os specific - char *FixedFN = ConvertFileName(name); + buf = (char*) alloca(strlen(pfx) + strlen(name) + 1); + sprintf(buf, "%s%s", pfx, name); + const char *FixedFN = ConvertFileName(buf); int mapvers; FILE *tfile; @@ -2372,7 +2372,7 @@ void Game::Tick() } } } - if(mainmenu==3){ + else if(mainmenu==3){ if(Input::Button()&&!oldbutton&&selected!=-1){ fireSound(); } @@ -2508,7 +2508,7 @@ void Game::Tick() if(mainmenu==3&&!gameon)mainmenu=1; } } - if(mainmenu==4){ + else if(mainmenu==4){ if(Input::Button()&&!oldbutton&&selected!=-1&&!waiting){ fireSound(); if(selected<9&&keyselect==-1) @@ -2530,7 +2530,7 @@ void Game::Tick() } } - if(mainmenu==5){ + else if(mainmenu==5){ if(endgame==2){ accountactive->endGame(); @@ -2569,25 +2569,10 @@ void Game::Tick() targetlevel=7; if(firstload) TickOnceAfter(); else LoadStuff(); - for(i=0;i<255;i++){ - mapname[i]='\0'; - } - mapname[0]=':'; - mapname[1]='D'; - mapname[2]='a'; - mapname[3]='t'; - mapname[4]='a'; - mapname[5]=':'; - mapname[6]='M'; - mapname[7]='a'; - mapname[8]='p'; - mapname[9]='s'; - mapname[10]=':'; - strcat(mapname,campaignmapname[campaignchoicewhich[selected-7-accountactive->getCampaignChoicesMade()]]); whichchoice=selected-7-accountactive->getCampaignChoicesMade(); visibleloading=1; stillloading=1; - Loadlevel(mapname); + Loadlevel(campaignmapname[campaignchoicewhich[selected-7-accountactive->getCampaignChoicesMade()]]); //Loadlevel(campaignmapname[levelorder[selected-7]]); campaign=1; mainmenu=0; @@ -2654,7 +2639,7 @@ void Game::Tick() mainmenu=5; } } - if(mainmenu==10){ + else if(mainmenu==10){ endgame=2; if(Input::Button()&&!oldbutton&&selected==3){ fireSound(); @@ -2665,7 +2650,7 @@ void Game::Tick() } } - if(mainmenu==6){ + else if(mainmenu==6){ if(Input::Button()&&!oldbutton) { if(selected>-1){ fireSound(); @@ -2680,7 +2665,7 @@ void Game::Tick() } } } - if(mainmenu==7){ + else if(mainmenu==7){ if(Input::Button()&&!oldbutton) { if(selected!=-1){ fireSound(); @@ -2705,7 +2690,7 @@ void Game::Tick() } } } - if(mainmenu==8){ + else if(mainmenu==8){ if(Input::Button()&&!oldbutton&&selected>-1){ fireSound(); @@ -2718,7 +2703,7 @@ void Game::Tick() } } - if (mainmenu==18) { + else if (mainmenu==18) { if(Input::Button()&&!oldbutton&&selected==0) { newstereomode = (StereoMode)(newstereomode + 1); while(!CanInitStereo(newstereomode)) { @@ -7202,8 +7187,8 @@ void Game::Tick() for(k=0;kgetCampaignChoicesMade()]]);//[campaignchoicewhich[whichchoice]]); - Loadlevel(mapname); + Loadlevel(campaignmapname[levelorder[accountactive->getCampaignChoicesMade()]]); fireSound(); @@ -7683,29 +7653,11 @@ void Game::TickOnceAfter(){ loading=2; loadtime=0; targetlevel=7; - //if(firstload)TickOnceAfter(); if(!firstload)LoadStuff(); - //else { - for(i=0;i<255;i++){ - mapname[i]='\0'; - } - mapname[0]=':'; - mapname[1]='D'; - mapname[2]='a'; - mapname[3]='t'; - mapname[4]='a'; - mapname[5]=':'; - mapname[6]='M'; - mapname[7]='a'; - mapname[8]='p'; - mapname[9]='s'; - mapname[10]=':'; - - strcat(mapname,campaignmapname[campaignchoicewhich[0]]); whichchoice=0; visibleloading=1; stillloading=1; - Loadlevel(mapname); + Loadlevel(campaignmapname[campaignchoicewhich[0]]); campaign=1; mainmenu=0; gameon=1;