X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGameTick.cpp;h=685b4730ab952c17cf72bd8016d159777e558c1d;hb=cd043e3f9e26c2b3406b40a354c2840941e9db7f;hp=122471a4d769c4bdd1766c10889b6f1e9c70b145;hpb=dcacd1c62fda9af9a042b2327041ea057652f1b3;p=lugaru.git diff --git a/Source/GameTick.cpp b/Source/GameTick.cpp index 122471a..685b473 100644 --- a/Source/GameTick.cpp +++ b/Source/GameTick.cpp @@ -3,20 +3,18 @@ Copyright (C) 2003, 2010 - Wolfire Games This file is part of Lugaru. -Lugaru is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +Lugaru is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. -This program is distributed in the hope that it will be useful, +Lugaru is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -See the GNU General Public License for more details. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +along with Lugaru. If not, see . */ // Enable full math definitions @@ -44,6 +42,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "Menu.h" #include +#include using namespace std; using namespace Game; @@ -147,12 +146,13 @@ extern bool winfreeze; extern bool campaign; +extern void toggleFullscreen(); + void Loadlevel(int which); void Loadlevel(const char *name); - class CampaignLevel { private: @@ -580,7 +580,7 @@ static void ch_save(const char *args) if (Person::players.size() > maxplayers) { cout << "Warning: this level contains more players than allowed" << endl; } - for (int j = 1; j < Person::players.size(); j++) { + for (unsigned j = 1; j < Person::players.size(); j++) { fpackf(tfile, "Bi Bi Bf Bf Bf Bi Bi Bf Bb Bf", Person::players[j]->whichskin, Person::players[j]->creature, Person::players[j]->coords.x, Person::players[j]->coords.y, Person::players[j]->coords.z, Person::players[j]->num_weapons, Person::players[j]->howactive, Person::players[j]->scale, Person::players[j]->immobile, Person::players[j]->yaw); @@ -696,7 +696,7 @@ static int findClosestPlayer() int closest = -1; float closestdist = std::numeric_limits::max(); - for (int i = 1; i < Person::players.size(); i++) { + for (unsigned i = 1; i < Person::players.size(); i++) { float distance = distsq(&Person::players[i]->coords, &Person::players[0]->coords); if (distance < closestdist) { closestdist = distance; @@ -967,7 +967,7 @@ static void ch_black(const char *args) static void ch_sizemin(const char *args) { - for (int i = 1; i < Person::players.size(); i++) + for (unsigned i = 1; i < Person::players.size(); i++) if (Person::players[i]->scale < 0.8 * 0.2) Person::players[i]->scale = 0.8 * 0.2; } @@ -1074,7 +1074,7 @@ static void ch_dialogue(const char *args) } for (int i = 0; i < numdialogueboxes[numdialogues]; i++) { - for (int j = 0; j < Person::players.size(); j++) { + for (unsigned j = 0; j < Person::players.size(); j++) { participantfacing[numdialogues][i][j] = Person::players[j]->facing; } } @@ -1157,7 +1157,7 @@ static void ch_immobile(const char *args) static void ch_allimmobile(const char *args) { - for (int i = 1; i < Person::players.size(); i++) + for (unsigned i = 1; i < Person::players.size(); i++) Person::players[i]->immobile = 1; } @@ -1320,18 +1320,17 @@ static void cmd_dispatch(const string cmd) extern bool save_image(const char * fname); void Screenshot (void) { - char temp[1024]; + char filename[1024]; time_t t = time(NULL); struct tm *tme = localtime(&t); - sprintf(temp, "Screenshots/Screenshot_%04d_%02d_%02d--%02d_%02d_%02d.png", tme->tm_year + 1900, tme->tm_mon + 1, tme->tm_mday, tme->tm_hour, tme->tm_min, tme->tm_sec); + sprintf(filename, "Screenshots/Screenshot-%04d%02d%02d-%02d%02d%02d.png", + tme->tm_year + 1900, tme->tm_mon + 1, tme->tm_mday, tme->tm_hour, tme->tm_min, tme->tm_sec); #if defined(_WIN32) mkdir("Screenshots"); -#else - mkdir("Screenshots", S_IRWXU); #endif - save_image(temp); + save_image(filename); } void Game::SetUpLighting() @@ -2147,7 +2146,7 @@ void Loadlevel(const char *name) fclose(tfile); - for (int i = 0; i < Person::players.size(); i++) { + for (unsigned i = 0; i < Person::players.size(); i++) { if (visibleloading) LoadingScreen(); Person::players[i]->burnt = 0; @@ -3055,7 +3054,7 @@ void doDebugKeys() int closest = -1; float closestdist = std::numeric_limits::max(); - for (int i = 1; i < Person::players.size(); i++) { + for (unsigned i = 1; i < Person::players.size(); i++) { float distance = distsq(&Person::players[i]->coords, &Person::players[0]->coords); if (!Person::players[i]->headless) if (distance < closestdist) { @@ -3180,8 +3179,8 @@ void doDebugKeys() } XYZ temppos; - for (int j = 0; j < Person::players.size(); j++) { - if (j != closest) { + for (unsigned j = 0; j < Person::players.size(); j++) { + if (int(j) != closest) { if (distsq(&Person::players[j]->coords, &Person::players[closest]->coords) < 25) { Person::players[j]->DoDamage((25 - distsq(&Person::players[j]->coords, &Person::players[closest]->coords)) * 60); if (Person::players[j]->skeleton.free == 2) @@ -3577,8 +3576,8 @@ void doDebugKeys() void doJumpReversals() { - for (int k = 0; k < Person::players.size(); k++) - for (int i = k; i < Person::players.size(); i++) { + for (unsigned k = 0; k < Person::players.size(); k++) + for (unsigned i = k; i < Person::players.size(); i++) { if (i == k) continue; if ( Person::players[k]->skeleton.free == 0 && @@ -3587,8 +3586,8 @@ void doJumpReversals() Person::players[k]->animTarget == jumpupanim) && (Person::players[i]->aitype == playercontrolled || Person::players[k]->aitype == playercontrolled) && - (Person::players[i]->aitype == attacktypecutoff && Person::players[i]->stunned <= 0 || - Person::players[k]->aitype == attacktypecutoff && Person::players[k]->stunned <= 0)) { + ((Person::players[i]->aitype == attacktypecutoff && Person::players[i]->stunned <= 0) || + (Person::players[k]->aitype == attacktypecutoff && Person::players[k]->stunned <= 0))) { if ( distsq(&Person::players[i]->coords, &Person::players[k]->coords) < 10 * sq((Person::players[i]->scale + Person::players[k]->scale) * 2.5) && distsqflat(&Person::players[i]->coords, &Person::players[k]->coords) < 2 * sq((Person::players[i]->scale + Person::players[k]->scale) * 2.5)) { //TODO: refactor two huge similar ifs @@ -3597,7 +3596,7 @@ void doJumpReversals() Person::players[k]->animTarget != getupfromfrontanim && animation[Person::players[k]->animTarget].height == middleheight && normaldotproduct(Person::players[i]->velocity, Person::players[k]->coords - Person::players[i]->coords) < 0 && - (Person::players[k]->aitype == playercontrolled && Person::players[k]->attackkeydown || + ((Person::players[k]->aitype == playercontrolled && Person::players[k]->attackkeydown) || Person::players[k]->aitype != playercontrolled)) { Person::players[i]->victim = Person::players[k]; Person::players[i]->velocity = 0; @@ -3678,7 +3677,7 @@ void doJumpReversals() void doAerialAcrobatics() { static XYZ facing, flatfacing; - for (int k = 0; k < Person::players.size(); k++) { + for (unsigned k = 0; k < Person::players.size(); k++) { Person::players[k]->turnspeed = 500; if ((Person::players[k]->isRun() && @@ -4079,7 +4078,7 @@ void doAttacks() if (Input::isKeyDown(attackkey) && !oldattackkey && !Person::players[0]->backkeydown) { - for (int k = 0; k < Person::players.size(); k++) { + for (unsigned k = 0; k < Person::players.size(); k++) { if ((Person::players[k]->animTarget == swordslashanim || Person::players[k]->animTarget == staffhitanim || Person::players[k]->animTarget == staffspinhitanim) && @@ -4092,7 +4091,7 @@ void doAttacks() if (!hostile || indialogue != -1) Person::players[0]->attackkeydown = 0; - for (int k = 0; k < Person::players.size(); k++) { + for (unsigned k = 0; k < Person::players.size(); k++) { if (indialogue != -1) Person::players[k]->attackkeydown = 0; if (Person::players[k]->animTarget != rabbitrunninganim && Person::players[k]->animTarget != wolfrunninganim) { @@ -4110,7 +4109,7 @@ void doAttacks() if (Person::players[k]->jumppower <= 1) { Person::players[k]->jumppower -= 2; } else { - for (int i = 0; i < Person::players.size(); i++) { + for (unsigned i = 0; i < Person::players.size(); i++) { if (i == k) continue; if (Person::players[i]->animTarget == swordslashanim || @@ -4149,7 +4148,7 @@ void doAttacks() //normal attacks (?) Person::players[k]->hasvictim = 0; if (Person::players.size() > 1) - for (int i = 0; i < Person::players.size(); i++) { + for (unsigned i = 0; i < Person::players.size(); i++) { if (i == k || !(k == 0 || i == 0)) continue; if (!Person::players[k]->hasvictim) @@ -4420,7 +4419,7 @@ void doAttacks() } const bool hasstaff = attackweapon == staff; if (k == 0 && Person::players.size() > 1) - for (int i = 0; i < Person::players.size(); i++) { + for (unsigned i = 0; i < Person::players.size(); i++) { if (i == k) continue; if ((playerrealattackkeydown || Person::players[i]->dead || !hasstaff) && @@ -4545,7 +4544,7 @@ void doAttacks() } if (!Person::players[k]->hasvictim) { //find victim - for (int i = 0; i < Person::players.size(); i++) { + for (unsigned i = 0; i < Person::players.size(); i++) { if (i == k || !(i == 0 || k == 0)) continue; if (!Person::players[i]->skeleton.free) { @@ -4608,8 +4607,8 @@ void doPlayerCollisions() static XYZ rotatetarget; static float collisionradius; if (Person::players.size() > 1) - for (int k = 0; k < Person::players.size(); k++) - for (int i = k + 1; i < Person::players.size(); i++) { + for (unsigned k = 0; k < Person::players.size(); k++) + for (unsigned i = k + 1; i < Person::players.size(); i++) { //neither player is part of a reversal if ((animation[Person::players[i]->animTarget].attack != reversed && animation[Person::players[i]->animTarget].attack != reversal && @@ -4807,7 +4806,7 @@ void doPlayerCollisions() } } -void doAI(int i) +void doAI(unsigned i) { static bool connected; if (Person::players[i]->aitype != playercontrolled && indialogue == -1) { @@ -4967,7 +4966,7 @@ void doAI(int i) if (Person::players[i]->losupdatedelay < 0 && !editorenabled && Person::players[i]->occluded < 2) { Person::players[i]->losupdatedelay = .2; - for (int j = 0; j < Person::players.size(); j++) + for (unsigned j = 0; j < Person::players.size(); j++) if (j == 0 || Person::players[j]->skeleton.free || Person::players[j]->aitype != passivetype) if (abs(Random() % 2) || animation[Person::players[j]->animTarget].height != lowheight || j != 0) if (distsq(&Person::players[i]->coords, &Person::players[j]->coords) < 400) @@ -5088,7 +5087,7 @@ void doAI(int i) //wolf smell if (Person::players[i]->creature == wolftype) { XYZ windsmell; - for (int j = 0; j < Person::players.size(); j++) { + for (unsigned j = 0; j < Person::players.size(); j++) { if (j == 0 || (Person::players[j]->dead && Person::players[j]->bloodloss > 0)) { float smelldistance = 50; if (j == 0 && Person::players[j]->num_weapons > 0) { @@ -5111,7 +5110,7 @@ void doAI(int i) if (Person::players[i]->howactive < typesleeping && Person::players[i]->losupdatedelay < 0 && !editorenabled && Person::players[i]->occluded < 2) { Person::players[i]->losupdatedelay = .2; - for (int j = 0; j < Person::players.size(); j++) { + for (unsigned j = 0; j < Person::players.size(); j++) { if (j == 0 || Person::players[j]->skeleton.free || Person::players[j]->aitype != passivetype) { if (abs(Random() % 2) || animation[Person::players[j]->animTarget].height != lowheight || j != 0) if (distsq(&Person::players[i]->coords, &Person::players[j]->coords) < 400) @@ -5301,7 +5300,7 @@ void doAI(int i) if (!Person::players[i]->ally) { int closest = -1; float closestdist = -1; - for (int k = 0; k < Person::players.size(); k++) { + for (unsigned k = 0; k < Person::players.size(); k++) { if (k != i && k != 0 && !Person::players[k]->dead && Person::players[k]->howactive < typedead1 && !Person::players[k]->skeleton.free && @@ -5401,7 +5400,7 @@ void doAI(int i) if (Person::players[i]->ally < 0) { int closest = -1; float closestdist = -1; - for (int k = 0; k < weapons.size(); k++) + for (unsigned k = 0; k < weapons.size(); k++) if (weapons[k].owner == -1) { float distance = distsq(&Person::players[i]->coords, &weapons[k].position); if (closestdist == -1 || distance < closestdist) { @@ -5513,7 +5512,7 @@ void doAI(int i) } //go for weapon on the ground if (Person::players[i]->wentforweapon < 3) - for (int k = 0; k < weapons.size(); k++) + for (unsigned k = 0; k < weapons.size(); k++) if (Person::players[i]->creature != wolftype) if (Person::players[i]->num_weapons == 0 && weapons[k].owner == -1 && @@ -5650,7 +5649,7 @@ void doAI(int i) Person::players[i]->isCrouch() || Person::players[i]->isRun())) { int target = -2; - for (int j = 0; j < Person::players.size(); j++) + for (unsigned j = 0; j < Person::players.size(); j++) if (j != i && !Person::players[j]->skeleton.free && Person::players[j]->hasvictim && (tutoriallevel == 1 && reversaltrain || @@ -5794,6 +5793,7 @@ void updateSettingsMenu() else sprintf (sbuf, "Resolution: %d*%d (widescreen)", (int)newscreenwidth, (int)newscreenheight); Menu::setText(0, sbuf); + Menu::setText(14, fullscreen ? "Fullscreen: On" : "Fullscreen: Off"); if (newdetail == 0) Menu::setText(1, "Detail: Low"); if (newdetail == 1) Menu::setText(1, "Detail: Medium"); if (newdetail == 2) Menu::setText(1, "Detail: High"); @@ -5874,6 +5874,7 @@ void Game::LoadMenu() break; case 3: Menu::addButton( 0, "", 10 + 20, 440); + Menu::addButton(14, "", 10 + 400, 440); Menu::addButton( 1, "", 10 + 60, 405); Menu::addButton( 2, "", 10 + 70, 370); Menu::addButton( 3, "", 10 + 20 - 1000, 335 - 1000); @@ -6009,7 +6010,7 @@ void Game::LoadMenu() } } -extern SDL_Rect **resolutions; +extern set> resolutions; void MenuTick() { @@ -6030,9 +6031,8 @@ void MenuTick() static int oldmainmenu = mainmenu; - char sbuf[256]; - if (Input::MouseClicked() && (selected >= 0)) { // handling of the left mouse clic in menus + set>::iterator newscreenresolution; switch (mainmenu) { case 1: case 2: @@ -6081,40 +6081,17 @@ void MenuTick() break; case 3: fireSound(); - bool isCustomResolution, found; switch (selected) { case 0: - isCustomResolution = true; - found = false; - for (int i = 0; (!found) && (resolutions[i]); i++) { - if ((resolutions[i]->w == screenwidth) && (resolutions[i]->h == screenwidth)) - isCustomResolution = false; - - if ((resolutions[i]->w == newscreenwidth) && (resolutions[i]->h == newscreenheight)) { - i++; - if (resolutions[i] != NULL) { - newscreenwidth = (int) resolutions[i]->w; - newscreenheight = (int) resolutions[i]->h; - } else if (isCustomResolution) { - if ((screenwidth == newscreenwidth) && (screenheight == newscreenheight)) { - newscreenwidth = (int) resolutions[0]->w; - newscreenheight = (int) resolutions[0]->h; - } else { - newscreenwidth = screenwidth; - newscreenheight = screenheight; - } - } else { - newscreenwidth = (int) resolutions[0]->w; - newscreenheight = (int) resolutions[0]->h; - } - found = true; - } - } - - if (!found) { - newscreenwidth = (int) resolutions[0]->w; - newscreenheight = (int) resolutions[0]->h; + newscreenresolution = resolutions.find(make_pair(newscreenwidth, newscreenheight)); + /* Next one (end() + 1 is also end() so the ++ is safe even if it was not found) */ + newscreenresolution++; + if (newscreenresolution == resolutions.end()) { + /* It was the last one (or not found), go back to the beginning */ + newscreenresolution = resolutions.begin(); } + newscreenwidth = newscreenresolution->first; + newscreenheight = newscreenresolution->second; break; case 1: newdetail++; @@ -6186,6 +6163,9 @@ void MenuTick() case 13: showdamagebar = !showdamagebar; break; + case 14: + toggleFullscreen(); + break; } updateSettingsMenu(); break; @@ -6567,28 +6547,6 @@ void Game::Tick() } } - if (Input::isKeyPressed(chatkey) && !console && !chatting && debugmode) - chatting = 1; - - if (chatting) { - inputText(displaytext[0], &displayselected); - if (!waiting) { - if (!displaytext[0].empty()) { - displaytext[0].clear(); - displayselected = 0; - } - chatting = 0; - } - - displayblinkdelay -= multiplier; - if (displayblinkdelay <= 0) { - displayblinkdelay = .3; - displayblink = 1 - displayblink; - } - } - if (chatting) - keyboardfrozen = true; - if (Input::isKeyPressed(consolekey) && debugmode) { console = !console; if (console) { @@ -6666,8 +6624,9 @@ void Game::Tick() if (talkdelay <= 0 && indialogue == -1 && animation[Person::players[0]->animTarget].height != highheight) for (int i = 0; i < numdialogues; i++) { - int realdialoguetype; + unsigned realdialoguetype; bool special; + /* FIXME - Seems like modulo done with ifs */ if (dialoguetype[i] > 49) { realdialoguetype = dialoguetype[i] - 50; special = 1; @@ -6903,7 +6862,7 @@ void Game::Tick() } } - for (int j = 0; j < Person::players.size(); j++) { + for (unsigned j = 0; j < Person::players.size(); j++) { participantfacing[whichdialogue][indialogue][j] = participantfacing[whichdialogue][indialogue - 1][j]; } } @@ -6991,7 +6950,7 @@ void Game::Tick() } if (dialoguetype[whichdialogue] > 49 && dialoguetype[whichdialogue] < 60) { hostile = 1; - for (int i = 1; i < Person::players.size(); i++) { + for (unsigned i = 1; i < Person::players.size(); i++) { Person::players[i]->aitype = attacktypecutoff; } } @@ -7030,11 +6989,11 @@ void Game::Tick() doJumpReversals(); - for (int k = 0; k < Person::players.size(); k++) + for (unsigned k = 0; k < Person::players.size(); k++) if (k != 0 && Person::players[k]->immobile) Person::players[k]->coords = Person::players[k]->realoldcoords; - for (int k = 0; k < Person::players.size(); k++) { + for (unsigned k = 0; k < Person::players.size(); k++) { if (!isnormal(Person::players[k]->coords.x) || !isnormal(Person::players[k]->coords.y) || !isnormal(Person::players[k]->coords.z)) { if (!isnormal(Person::players[k]->coords.x) || !isnormal(Person::players[k]->coords.y) || !isnormal(Person::players[k]->coords.z)) { Person::players[k]->DoDamage(1000); @@ -7068,7 +7027,7 @@ void Game::Tick() static bool movekey; //? - for (int i = 0; i < Person::players.size(); i++) { + for (unsigned i = 0; i < Person::players.size(); i++) { static float oldtargetyaw; if (!Person::players[i]->skeleton.free) { oldtargetyaw = Person::players[i]->targetyaw; @@ -7156,7 +7115,7 @@ void Game::Tick() } //avoid flaming players - for (int j = 0; j < Person::players.size(); j++) + for (unsigned j = 0; j < Person::players.size(); j++) if (Person::players[j]->onfire) if (distsq(&Person::players[j]->coords, &Person::players[i]->coords) < sq(0.3) * 200) if ( distsq(&Person::players[i]->coords, &Person::players[j]->coords) < @@ -7239,7 +7198,7 @@ void Game::Tick() Person::players[i]->isFlip() || Person::players[i]->isFlip() || Person::players[i]->aitype != playercontrolled)) { - for (int j = 0; j < weapons.size(); j++) { + for (unsigned j = 0; j < weapons.size(); j++) { if ((weapons[j].velocity.x == 0 && weapons[j].velocity.y == 0 && weapons[j].velocity.z == 0 || Person::players[i]->aitype == playercontrolled) && weapons[j].owner == -1 && @@ -7264,7 +7223,7 @@ void Game::Tick() Person::players[i]->aitype == playercontrolled) && weapons[j].owner == -1 || Person::players[i]->victim && - weapons[j].owner == Person::players[i]->victim->id) + weapons[j].owner == int(Person::players[i]->victim->id)) if (distsqflat(&Person::players[i]->coords, &weapons[j].position) < 2 && Person::players[i]->weaponactive == -1) if (distsq(&Person::players[i]->coords, &weapons[j].position) < 1 || Person::players[i]->victim) { if (weapons[j].getType() != staff) @@ -7292,13 +7251,13 @@ void Game::Tick() Person::players[i]->throwtogglekeydown = 1; Person::players[i]->hasvictim = 0; - for (int k = 0; k < weapons.size(); k++) { + for (unsigned k = 0; k < weapons.size(); k++) { if (Person::players[i]->weaponactive == -1) if ((weapons[k].velocity.x == 0 && weapons[k].velocity.y == 0 && weapons[k].velocity.z == 0 || Person::players[i]->aitype == playercontrolled) && weapons[k].owner == -1 || Person::players[i]->victim && - weapons[k].owner == Person::players[i]->victim->id) + weapons[k].owner == int(Person::players[i]->victim->id)) if (distsqflat(&Person::players[i]->coords, &weapons[k].position) < 3 && Person::players[i]->weaponactive == -1) { if (weapons[k].getType() != staff) @@ -7322,7 +7281,7 @@ void Game::Tick() Person::players[i]->isIdle() || Person::players[i]->animTarget == rollanim || Person::players[i]->animTarget == backhandspringanim) { if (Person::players.size() > 1) - for (int j = 0; j < Person::players.size(); j++) { + for (unsigned j = 0; j < Person::players.size(); j++) { if (Person::players[i]->weaponactive == -1) if (j != i) if (Person::players[j]->num_weapons && @@ -7429,7 +7388,7 @@ void Game::Tick() Person::players[i]->animTarget == sneakanim || Person::players[i]->isFlip()) if (Person::players.size() > 1) - for (int j = 0; j < Person::players.size(); j++) { + for (unsigned j = 0; j < Person::players.size(); j++) { if (i != j) if (tutoriallevel != 1 || tutorialstage == 49) if (hostile) @@ -7493,7 +7452,7 @@ void Game::Tick() } Person::players[i]->weaponactive = -1; - for (int j = 0; j < Person::players.size(); j++) { + for (unsigned j = 0; j < Person::players.size(); j++) { Person::players[j]->wentforweapon = 0; } } @@ -7590,14 +7549,14 @@ void Game::Tick() if (i == 0) { Person::players[i]->superruntoggle = 1; if (Person::players.size() > 1) - for (int j = 0; j < Person::players.size(); j++) + for (unsigned j = 0; j < Person::players.size(); j++) if (j != i && !Person::players[j]->skeleton.free && Person::players[j]->aitype == passivetype) if (distsq(&Person::players[j]->coords, &Person::players[i]->coords) < 16) Person::players[i]->superruntoggle = 0; } if (Person::players.size() > 1) - for (int j = 0; j < Person::players.size(); j++) { + for (unsigned j = 0; j < Person::players.size(); j++) { if (j != i && !Person::players[j]->skeleton.free && Person::players[j]->victim && Person::players[i]->lowreversaldelay <= 0) { if (distsq(&Person::players[j]->coords, &Person::players[j]->victim->coords) < 3 && Person::players[j]->victim == Person::players[i] && @@ -7641,7 +7600,7 @@ void Game::Tick() target = -2; if (Person::players[i]->isCrouch()) { if (Person::players.size() > 1) - for (int j = 0; j < Person::players.size(); j++) { + for (unsigned j = 0; j < Person::players.size(); j++) { if (j != i && !Person::players[j]->skeleton.free && Person::players[j]->victim && @@ -7831,7 +7790,7 @@ void Game::Tick() //Dodge sweep? target = -2; if (Person::players.size() > 1) - for (int j = 0; j < Person::players.size(); j++) { + for (unsigned j = 0; j < Person::players.size(); j++) { if (j != i && !Person::players[j]->skeleton.free && Person::players[j]->victim) { if (distsq(&Person::players[j]->coords, &Person::players[j]->victim->coords) < 3 && (Person::players[j]->victim == Person::players[i]) && @@ -7916,7 +7875,7 @@ void Game::Tick() } //Rotation - for (int k = 0; k < Person::players.size(); k++) { + for (unsigned k = 0; k < Person::players.size(); k++) { if (fabs(Person::players[k]->yaw - Person::players[k]->targetyaw) > 180) { if (Person::players[k]->yaw > Person::players[k]->targetyaw) Person::players[k]->yaw -= 360; @@ -7953,7 +7912,7 @@ void Game::Tick() } //do animations - for (int k = 0; k < Person::players.size(); k++) { + for (unsigned k = 0; k < Person::players.size(); k++) { Person::players[k]->DoAnimations(); Person::players[k]->whichpatchx = Person::players[k]->coords.x / (terrain.size / subdivision * terrain.scale); Person::players[k]->whichpatchz = Person::players[k]->coords.z / (terrain.size / subdivision * terrain.scale); @@ -8137,7 +8096,7 @@ void Game::TickOnceAfter() realthreat = 0; musictype = leveltheme; - for (int i = 0; i < Person::players.size(); i++) { + for (unsigned i = 0; i < Person::players.size(); i++) { if ((Person::players[i]->aitype == attacktypecutoff || Person::players[i]->aitype == getweapontype || Person::players[i]->aitype == gethelptype || @@ -8254,7 +8213,7 @@ void Game::TickOnceAfter() winhotspot = true; int numalarmed = 0; - for (int i = 1; i < Person::players.size(); i++) + for (unsigned i = 1; i < Person::players.size(); i++) if (!Person::players[i]->dead && Person::players[i]->aitype == attacktypecutoff && Person::players[i]->surprised <= 0) numalarmed++; if (numalarmed > maxalarmed) @@ -8266,7 +8225,7 @@ void Game::TickOnceAfter() targetlevel = whichlevel; } alldead = true; - for (int i = 1; i < Person::players.size(); i++) { + for (unsigned i = 1; i < Person::players.size(); i++) { if (!Person::players[i]->dead && Person::players[i]->howactive < typedead1) { alldead = false; break;