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 <http://www.gnu.org/licenses/>.
*/
// Enable full math definitions
#include "Menu.h"
#include <algorithm>
+#include <set>
using namespace std;
using namespace Game;
extern bool campaign;
+extern void toggleFullscreen();
+
void Loadlevel(int which);
void Loadlevel(const char *name);
-
class CampaignLevel
{
private:
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);
int closest = -1;
float closestdist = std::numeric_limits<float>::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;
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;
}
}
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;
}
}
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;
}
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()
}
}
- //if(terrain.lineTerrain(startpoint,endpoint,&colpoint)!=-1)return 1000;
-
return -1;
}
int mapvers;
FILE *tfile;
- //~ char* buff=getcwd(NULL,0);
- //~ cout << buff << " " << FixedFN << endl;
- //~ free(buff);
tfile = fopen( FixedFN, "rb" );
if (tfile) {
pause_sound(stream_firesound);
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;
{
float headprop, bodyprop, armprop, legprop;
if (debugmode) {
- if (Input::isKeyPressed(SDLK_h)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_H)) {
Person::players[0]->damagetolerance = 200000;
Person::players[0]->damage = 0;
Person::players[0]->burnt = 0;
Person::players[0]->superpermanentdamage = 0;
}
- if (Input::isKeyPressed(SDLK_j)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_J)) {
environment++;
if (environment > 2)
environment = 0;
Setenvironment(environment);
}
- if (Input::isKeyPressed(SDLK_c)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_C)) {
cameramode = 1 - cameramode;
}
- if (Input::isKeyPressed(SDLK_x) && !Input::isKeyDown(SDLK_LSHIFT)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_X) && !Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
if (Person::players[0]->num_weapons > 0) {
if (weapons[Person::players[0]->weaponids[0]].getType() == sword)
weapons[Person::players[0]->weaponids[0]].setType(staff);
}
}
- if (Input::isKeyPressed(SDLK_x) && Input::isKeyDown(SDLK_LSHIFT)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_X) && Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
int closest = findClosestPlayer();
if (closest >= 0) {
if (Person::players[closest]->num_weapons) {
}
}
- if (Input::isKeyDown(SDLK_u)) {
+ if (Input::isKeyDown(SDL_SCANCODE_U)) {
int closest = findClosestPlayer();
if (closest >= 0) {
Person::players[closest]->yaw += multiplier * 50;
}
- if (Input::isKeyPressed(SDLK_o) && !Input::isKeyDown(SDLK_LSHIFT)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_O) && !Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
int closest = findClosestPlayer();
- if (Input::isKeyDown(SDLK_LCTRL))
+ if (Input::isKeyDown(SDL_SCANCODE_LCTRL))
closest = 0;
if (closest >= 0) {
}
}
- if (Input::isKeyPressed(SDLK_o) && Input::isKeyDown(SDLK_LSHIFT)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_O) && Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
int closest = findClosestPlayer();
if (closest >= 0) {
if (Person::players[closest]->creature == wolftype) {
}
}
- if (Input::isKeyPressed(SDLK_b) && !Input::isKeyDown(SDLK_LSHIFT)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_B) && !Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
slomo = 1 - slomo;
slomodelay = 1000;
}
- if (((Input::isKeyPressed(SDLK_i) && !Input::isKeyDown(SDLK_LSHIFT)))) {
+ if (((Input::isKeyPressed(SDL_SCANCODE_I) && !Input::isKeyDown(SDL_SCANCODE_LSHIFT)))) {
int closest = -1;
float closestdist = std::numeric_limits<float>::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) {
}
}
- if (((Input::isKeyPressed(SDLK_i) && Input::isKeyDown(SDLK_LSHIFT)))) {
+ if (((Input::isKeyPressed(SDL_SCANCODE_I) && Input::isKeyDown(SDL_SCANCODE_LSHIFT)))) {
int closest = findClosestPlayer();
XYZ flatfacing2, flatvelocity2;
XYZ blah;
}
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)
}
}
- if (Input::isKeyPressed(SDLK_f)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_F)) {
Person::players[0]->onfire = 1 - Person::players[0]->onfire;
if (Person::players[0]->onfire) {
Person::players[0]->CatchFire();
}
}
- if (Input::isKeyPressed(SDLK_n) && !Input::isKeyDown(SDLK_LCTRL)) {
- //if(!Person::players[0]->skeleton.free)Person::players[0]->damage+=500;
+ if (Input::isKeyPressed(SDL_SCANCODE_N) && !Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
Person::players[0]->RagDoll(0);
- //Person::players[0]->spurt=1;
- //Person::players[0]->DoDamage(1000);
emit_sound_at(whooshsound, Person::players[0]->coords, 128.);
}
- if (Input::isKeyPressed(SDLK_n) && Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_N) && Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
for (int i = 0; i < objects.numobjects; i++) {
if (objects.type[i] == treeleavestype) {
objects.scale[i] *= .9;
}
}
- if (Input::isKeyPressed(SDLK_m) && Input::isKeyDown(SDLK_LSHIFT)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_M) && Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
editorenabled = 1 - editorenabled;
if (editorenabled) {
Person::players[0]->damagetolerance = 100000;
}
//skip level
- if (whichlevel != -2 && Input::isKeyPressed(SDLK_k) && Input::isKeyDown(SDLK_LSHIFT) && !editorenabled) {
+ if (whichlevel != -2 && Input::isKeyPressed(SDL_SCANCODE_K) && Input::isKeyDown(SDL_SCANCODE_LSHIFT) && !editorenabled) {
targetlevel++;
if (targetlevel > numchallengelevels - 1)
targetlevel = 0;
}
if (editorenabled) {
- if (Input::isKeyPressed(SDLK_DELETE) && Input::isKeyDown(SDLK_LSHIFT)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_DELETE) && Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
int closest = findClosestPlayer();
if (closest >= 0) {
Person::players.erase(Person::players.begin()+closest);
}
}
- if (Input::isKeyPressed(SDLK_DELETE) && Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_DELETE) && Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
int closest = findClosestObject();
if (closest >= 0)
objects.position[closest].y -= 500;
}
- if (Input::isKeyPressed(SDLK_m) && Input::isKeyDown(SDLK_LSHIFT)) {
- //drawmode++;
- //if(drawmode>2)drawmode=0;
+ if (Input::isKeyPressed(SDL_SCANCODE_M) && Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
if (objects.numobjects < max_objects - 1) {
XYZ boxcoords;
boxcoords.x = Person::players[0]->coords.x;
}
}
- if (Input::isKeyPressed(SDLK_p) && Input::isKeyDown(SDLK_LSHIFT) && !Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_P) && Input::isKeyDown(SDL_SCANCODE_LSHIFT) && !Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
Person::players.push_back(shared_ptr<Person>(new Person()));
Person::players.back()->scale = .2 * 5 * Person::players[0]->scale;
Person::players.back()->loaded = 1;
}
- if (Input::isKeyPressed(SDLK_p) && Input::isKeyDown(SDLK_LSHIFT)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_P) && Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
if (Person::players.back()->numwaypoints < 90) {
Person::players.back()->waypoints[Person::players.back()->numwaypoints] = Person::players[0]->coords;
Person::players.back()->waypointtype[Person::players.back()->numwaypoints] = editorpathtype;
}
}
- if (Input::isKeyPressed(SDLK_p) && Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_P) && Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
if (numpathpoints < 30) {
bool connected, alreadyconnected;
connected = 0;
}
}
- if (Input::isKeyPressed(SDLK_PERIOD)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_PERIOD)) {
pathpointselected++;
if (pathpointselected >= numpathpoints)
pathpointselected = -1;
}
- if (Input::isKeyPressed(SDLK_COMMA) && !Input::isKeyDown(SDLK_LSHIFT)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_COMMA) && !Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
pathpointselected--;
if (pathpointselected <= -2)
pathpointselected = numpathpoints - 1;
}
- if (Input::isKeyPressed(SDLK_COMMA) && Input::isKeyDown(SDLK_LSHIFT)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_COMMA) && Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
if (pathpointselected != -1) {
numpathpoints--;
pathpoint[pathpointselected] = pathpoint[numpathpoints];
}
}
- if (Input::isKeyPressed(SDLK_LEFT) && Input::isKeyDown(SDLK_LSHIFT) && !Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_LEFT) && Input::isKeyDown(SDL_SCANCODE_LSHIFT) && !Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
editortype--;
if (editortype == treeleavestype || editortype == 10)
editortype--;
editortype = firetype;
}
- if (Input::isKeyPressed(SDLK_RIGHT) && Input::isKeyDown(SDLK_LSHIFT) && !Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_RIGHT) && Input::isKeyDown(SDL_SCANCODE_LSHIFT) && !Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
editortype++;
if (editortype == treeleavestype || editortype == 10)
editortype++;
editortype = 0;
}
- if (Input::isKeyDown(SDLK_LEFT) && !Input::isKeyDown(SDLK_LSHIFT) && !Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyDown(SDL_SCANCODE_LEFT) && !Input::isKeyDown(SDL_SCANCODE_LSHIFT) && !Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
editoryaw -= multiplier * 100;
if (editoryaw < -.01)
editoryaw = -.01;
}
- if (Input::isKeyDown(SDLK_RIGHT) && !Input::isKeyDown(SDLK_LSHIFT) && !Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyDown(SDL_SCANCODE_RIGHT) && !Input::isKeyDown(SDL_SCANCODE_LSHIFT) && !Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
editoryaw += multiplier * 100;
}
- if (Input::isKeyDown(SDLK_UP) && !Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyDown(SDL_SCANCODE_UP) && !Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
editorsize += multiplier;
}
- if (Input::isKeyDown(SDLK_DOWN) && !Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyDown(SDL_SCANCODE_DOWN) && !Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
editorsize -= multiplier;
if (editorsize < .1)
editorsize = .1;
}
- if (Input::isKeyPressed(SDLK_LEFT) && Input::isKeyDown(SDLK_LSHIFT) && Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_LEFT) && Input::isKeyDown(SDL_SCANCODE_LSHIFT) && Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
mapradius -= multiplier * 10;
}
- if (Input::isKeyPressed(SDLK_RIGHT) && Input::isKeyDown(SDLK_LSHIFT) && Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_RIGHT) && Input::isKeyDown(SDL_SCANCODE_LSHIFT) && Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
mapradius += multiplier * 10;
}
- if (Input::isKeyDown(SDLK_UP) && Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyDown(SDL_SCANCODE_UP) && Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
editorpitch += multiplier * 100;
}
- if (Input::isKeyDown(SDLK_DOWN) && Input::isKeyDown(SDLK_LCTRL)) {
+ if (Input::isKeyDown(SDL_SCANCODE_DOWN) && Input::isKeyDown(SDL_SCANCODE_LCTRL)) {
editorpitch -= multiplier * 100;
if (editorpitch < -.01)
editorpitch = -.01;
}
- if (Input::isKeyPressed(SDLK_DELETE) && objects.numobjects && Input::isKeyDown(SDLK_LSHIFT)) {
+ if (Input::isKeyPressed(SDL_SCANCODE_DELETE) && objects.numobjects && Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
int closest = findClosestObject();
if (closest >= 0)
objects.DeleteObject(closest);
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 &&
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
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;
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() &&
Person::players[k]->yaw = stepTowardf(Person::players[k]->yaw, Person::players[k]->targetyaw, multiplier * Person::players[k]->turnspeed * 4);
}
- /*if(Person::players[k]->aitype!=passivetype||(distsq(&Person::players[k]->coords,&viewer)<viewdistance*viewdistance))*/
Person::players[k]->DoStuff();
if (Person::players[k]->immobile && k != 0)
Person::players[k]->coords = Person::players[k]->realoldcoords;
}
}
- if (tempcollide && (/*Person::players[k]->jumptogglekeydown*/1 == 1 || Person::players[k]->aitype != playercontrolled))
+ if (tempcollide)
for (int l = 0; l < terrain.patchobjectnum[Person::players[k]->whichpatchx][Person::players[k]->whichpatchz]; l++) {
int i = terrain.patchobjects[Person::players[k]->whichpatchx][Person::players[k]->whichpatchz][l];
lowpoint = Person::players[k]->coords;
if (j <= 6 || j <= 25 && Person::players[k]->animTarget == jumpdownanim)
break;
if (Person::players[k]->animTarget == jumpupanim || Person::players[k]->animTarget == jumpdownanim) {
- lowpoint = DoRotation(objects.model[i].facenormals[whichhit], 0, objects.yaw[k], 0);
lowpoint = Person::players[k]->coords;
lowpoint.y += (float)j / 13;
lowpointtarget = lowpoint + facing * 1.3;
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) &&
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) {
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 ||
//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)
}
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) &&
}
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) {
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 &&
}
}
-void doAI(int i)
+void doAI(unsigned i)
{
static bool connected;
if (Person::players[i]->aitype != playercontrolled && indialogue == -1) {
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)
//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) {
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)
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 &&
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) {
if (Person::players[0]->animTarget != rabbitkickanim && Person::players[0]->weaponactive != -1) {
if (weapons[Person::players[0]->weaponids[0]].getType() == knife) {
if (Person::players[i]->isIdle() || Person::players[i]->isCrouch() || Person::players[i]->isRun() || Person::players[i]->isFlip()) {
- if (abs(Random() % 2 == 0))
+ if (abs(Random() % 2) == 0)
Person::players[i]->setAnimation(backhandspringanim);
else
Person::players[i]->setAnimation(rollanim);
}
//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 &&
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 ||
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");
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);
}
}
-extern SDL_Rect **resolutions;
+extern set<pair<int,int>> resolutions;
void MenuTick()
{
static int oldmainmenu = mainmenu;
- char sbuf[256];
-
if (Input::MouseClicked() && (selected >= 0)) { // handling of the left mouse clic in menus
+ set<pair<int,int>>::iterator newscreenresolution;
switch (mainmenu) {
case 1:
case 2:
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++;
case 13:
showdamagebar = !showdamagebar;
break;
+ case 14:
+ toggleFullscreen();
+ break;
}
updateSettingsMenu();
break;
mainmenu = 5;
else
mainmenu = 1;
- for (int j = 0; j < 255; j++) {
- displaytext[0][j] = 0;
- }
- displaychars[0] = 0;
+ displaytext[0].clear();
displayselected = 0;
entername = 0;
}
}
}
- if (Input::isKeyDown(SDLK_q) && Input::isKeyDown(SDLK_LMETA)) {
+ if (Input::isKeyDown(SDL_SCANCODE_Q) && Input::isKeyDown(SDL_SCANCODE_LGUI)) {
tryquit = 1;
if (mainmenu == 3) {
SaveSettings();
OPENAL_SetFrequency(channels[stream_menutheme], 22050);
if (entername) {
- inputText(displaytext[0], &displayselected, &displaychars[0]);
+ inputText(displaytext[0], &displayselected);
if (!waiting) { // the input as finished
- if (displaychars[0]) { // with enter
+ if (!displaytext[0].empty()) { // with enter
accountactive = Account::add(string(displaytext[0]));
mainmenu = 8;
fireSound(firestartsound);
- for (int i = 0; i < 255; i++) {
- displaytext[0][i] = 0;
- }
- displaychars[0] = 0;
+ displaytext[0].clear();
displayselected = 0;
}
keyboardfrozen = false;
Input::Tick();
- if (Input::isKeyPressed(SDLK_F6)) {
- if (Input::isKeyDown(SDLK_LSHIFT))
+ if (Input::isKeyPressed(SDL_SCANCODE_F6)) {
+ if (Input::isKeyDown(SDL_SCANCODE_LSHIFT))
stereoreverse = true;
else
stereoreverse = false;
printf("Stereo unreversed\n");
}
- if (Input::isKeyDown(SDLK_F7)) {
- if (Input::isKeyDown(SDLK_LSHIFT))
+ if (Input::isKeyDown(SDL_SCANCODE_F7)) {
+ if (Input::isKeyDown(SDL_SCANCODE_LSHIFT))
stereoseparation -= 0.001;
else
stereoseparation -= 0.010;
printf("Stereo decreased increased to %f\n", stereoseparation);
}
- if (Input::isKeyDown(SDLK_F8)) {
- if (Input::isKeyDown(SDLK_LSHIFT))
+ if (Input::isKeyDown(SDL_SCANCODE_F8)) {
+ if (Input::isKeyDown(SDL_SCANCODE_LSHIFT))
stereoseparation += 0.001;
else
stereoseparation += 0.010;
}
- if (Input::isKeyPressed(SDLK_TAB) && tutoriallevel) {
+ if (Input::isKeyPressed(SDL_SCANCODE_TAB) && tutoriallevel) {
if (tutorialstage != 51)
tutorialstagetime = tutorialmaxtime;
emit_sound_np(consolefailsound, 128.);
LoadMenu();
}
//escape key pressed
- if (Input::isKeyPressed(SDLK_ESCAPE) &&
+ if (Input::isKeyPressed(SDL_SCANCODE_ESCAPE) &&
(gameon || mainmenu == 0 || (mainmenu >= 3 && mainmenu != 8 && !(mainmenu == 7 && entername)))) {
selected = -1;
if (mainmenu == 0 && !winfreeze)
leveltime += multiplier;
//keys
- if (Input::isKeyPressed(SDLK_v) && debugmode) {
+ if (Input::isKeyPressed(SDL_SCANCODE_V) && debugmode) {
freeze = 1 - freeze;
if (freeze) {
OPENAL_SetFrequency(OPENAL_ALL, 0.001);
}
}
- if (Input::isKeyPressed(chatkey) && !console && !chatting && debugmode)
- chatting = 1;
-
- if (chatting) {
- inputText(displaytext[0], &displayselected, &displaychars[0]);
- if (!waiting) {
- if (displaychars[0]) {
- for (int j = 0; j < 255; j++)
- displaytext[0][j] = 0;
- displaychars[0] = 0;
- 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) {
if (console)
freeze = 1;
- if (console && !Input::isKeyDown(SDLK_LMETA)) {
- inputText(consoletext[0], &consoleselected, &consolechars[0]);
+ if (console && !Input::isKeyDown(SDL_SCANCODE_LGUI)) {
+ inputText(consoletext[0], &consoleselected);
if (!waiting) {
- if (consolechars[0] > 0) {
- consoletext[0][consolechars[0]] = '\0';
+ if (!consoletext[0].empty()) {
cmd_dispatch(consoletext[0]);
for (int k = 14; k >= 1; k--) {
- for (int j = 0; j < 255; j++)
- consoletext[k][j] = consoletext[k - 1][j];
- consolechars[k] = consolechars[k - 1];
+ consoletext[k] = consoletext[k - 1];
}
- for (int j = 0; j < 255; j++)
- consoletext[0][j] = 0;
- consolechars[0] = 0;
+ consoletext[0].clear();
consoleselected = 0;
}
}
- if (Input::isKeyDown(SDLK_q) && Input::isKeyDown(SDLK_LMETA)) {
+ if (Input::isKeyDown(SDL_SCANCODE_Q) && Input::isKeyDown(SDL_SCANCODE_LGUI)) {
tryquit = 1;
if (mainmenu == 3) {
SaveSettings();
else
oldwinfreeze++;
- if ((Input::isKeyPressed(jumpkey) || Input::isKeyPressed(SDLK_SPACE)) && !campaign)
+ if ((Input::isKeyPressed(jumpkey) || Input::isKeyPressed(SDL_SCANCODE_SPACE)) && !campaign)
if (winfreeze)
winfreeze = 0;
- if ((Input::isKeyDown(SDLK_ESCAPE)) && !campaign && gameon) {
+ if ((Input::isKeyDown(SDL_SCANCODE_ESCAPE)) && !campaign && gameon) {
if (console) {
console = false;
freeze = 0;
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;
hotspotvisual[i] -= multiplier / 320;
for (int i = 0; i < numhotspots; i++) {
- //if(hotspottype[i]<=10)
while (hotspotvisual[i] < 0) {
hotspotsprite = 0;
hotspotsprite.x = float(abs(Random() % 100000)) / 100000 * hotspotsize[i];
viewer.y += multiplier * 4;
if (Input::isKeyDown(crouchkey))
viewer.y -= multiplier * 4;
- if ( Input::isKeyPressed(SDLK_1) ||
- Input::isKeyPressed(SDLK_2) ||
- Input::isKeyPressed(SDLK_3) ||
- Input::isKeyPressed(SDLK_4) ||
- Input::isKeyPressed(SDLK_5) ||
- Input::isKeyPressed(SDLK_6) ||
- Input::isKeyPressed(SDLK_7) ||
- Input::isKeyPressed(SDLK_8) ||
- Input::isKeyPressed(SDLK_9) ||
- Input::isKeyPressed(SDLK_0) ||
- Input::isKeyPressed(SDLK_MINUS)) {
+ if ( Input::isKeyPressed(SDL_SCANCODE_1) ||
+ Input::isKeyPressed(SDL_SCANCODE_2) ||
+ Input::isKeyPressed(SDL_SCANCODE_3) ||
+ Input::isKeyPressed(SDL_SCANCODE_4) ||
+ Input::isKeyPressed(SDL_SCANCODE_5) ||
+ Input::isKeyPressed(SDL_SCANCODE_6) ||
+ Input::isKeyPressed(SDL_SCANCODE_7) ||
+ Input::isKeyPressed(SDL_SCANCODE_8) ||
+ Input::isKeyPressed(SDL_SCANCODE_9) ||
+ Input::isKeyPressed(SDL_SCANCODE_0) ||
+ Input::isKeyPressed(SDL_SCANCODE_MINUS)) {
int whichend;
- if (Input::isKeyPressed(SDLK_1)) whichend = 1;
- if (Input::isKeyPressed(SDLK_2)) whichend = 2;
- if (Input::isKeyPressed(SDLK_3)) whichend = 3;
- if (Input::isKeyPressed(SDLK_4)) whichend = 4;
- if (Input::isKeyPressed(SDLK_5)) whichend = 5;
- if (Input::isKeyPressed(SDLK_6)) whichend = 6;
- if (Input::isKeyPressed(SDLK_7)) whichend = 7;
- if (Input::isKeyPressed(SDLK_8)) whichend = 8;
- if (Input::isKeyPressed(SDLK_9)) whichend = 9;
- if (Input::isKeyPressed(SDLK_0)) whichend = 0;
- if (Input::isKeyPressed(SDLK_MINUS))
+ if (Input::isKeyPressed(SDL_SCANCODE_1)) whichend = 1;
+ if (Input::isKeyPressed(SDL_SCANCODE_2)) whichend = 2;
+ if (Input::isKeyPressed(SDL_SCANCODE_3)) whichend = 3;
+ if (Input::isKeyPressed(SDL_SCANCODE_4)) whichend = 4;
+ if (Input::isKeyPressed(SDL_SCANCODE_5)) whichend = 5;
+ if (Input::isKeyPressed(SDL_SCANCODE_6)) whichend = 6;
+ if (Input::isKeyPressed(SDL_SCANCODE_7)) whichend = 7;
+ if (Input::isKeyPressed(SDL_SCANCODE_8)) whichend = 8;
+ if (Input::isKeyPressed(SDL_SCANCODE_9)) whichend = 9;
+ if (Input::isKeyPressed(SDL_SCANCODE_0)) whichend = 0;
+ if (Input::isKeyPressed(SDL_SCANCODE_MINUS))
whichend = -1;
if (whichend != -1) {
participantfocus[whichdialogue][indialogue] = whichend;
}
}
- 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];
}
}
//TODO: should these be KeyDown or KeyPressed?
- if ( Input::isKeyDown(SDLK_KP1) ||
- Input::isKeyDown(SDLK_KP2) ||
- Input::isKeyDown(SDLK_KP3) ||
- Input::isKeyDown(SDLK_KP4) ||
- Input::isKeyDown(SDLK_KP5) ||
- Input::isKeyDown(SDLK_KP6) ||
- Input::isKeyDown(SDLK_KP7) ||
- Input::isKeyDown(SDLK_KP8) ||
- Input::isKeyDown(SDLK_KP9) ||
- Input::isKeyDown(SDLK_KP0)) {
+ if ( Input::isKeyDown(SDL_SCANCODE_KP_1) ||
+ Input::isKeyDown(SDL_SCANCODE_KP_2) ||
+ Input::isKeyDown(SDL_SCANCODE_KP_3) ||
+ Input::isKeyDown(SDL_SCANCODE_KP_4) ||
+ Input::isKeyDown(SDL_SCANCODE_KP_5) ||
+ Input::isKeyDown(SDL_SCANCODE_KP_6) ||
+ Input::isKeyDown(SDL_SCANCODE_KP_7) ||
+ Input::isKeyDown(SDL_SCANCODE_KP_8) ||
+ Input::isKeyDown(SDL_SCANCODE_KP_9) ||
+ Input::isKeyDown(SDL_SCANCODE_KP_0)) {
int whichend;
- if (Input::isKeyDown(SDLK_KP1)) whichend = 1;
- if (Input::isKeyDown(SDLK_KP2)) whichend = 2;
- if (Input::isKeyDown(SDLK_KP3)) whichend = 3;
- if (Input::isKeyDown(SDLK_KP4)) whichend = 4;
- if (Input::isKeyDown(SDLK_KP5)) whichend = 5;
- if (Input::isKeyDown(SDLK_KP6)) whichend = 6;
- if (Input::isKeyDown(SDLK_KP7)) whichend = 7;
- if (Input::isKeyDown(SDLK_KP8)) whichend = 8;
- if (Input::isKeyDown(SDLK_KP9)) whichend = 9;
- if (Input::isKeyDown(SDLK_KP0)) whichend = 0;
+ if (Input::isKeyDown(SDL_SCANCODE_KP_1)) whichend = 1;
+ if (Input::isKeyDown(SDL_SCANCODE_KP_2)) whichend = 2;
+ if (Input::isKeyDown(SDL_SCANCODE_KP_3)) whichend = 3;
+ if (Input::isKeyDown(SDL_SCANCODE_KP_4)) whichend = 4;
+ if (Input::isKeyDown(SDL_SCANCODE_KP_5)) whichend = 5;
+ if (Input::isKeyDown(SDL_SCANCODE_KP_6)) whichend = 6;
+ if (Input::isKeyDown(SDL_SCANCODE_KP_7)) whichend = 7;
+ if (Input::isKeyDown(SDL_SCANCODE_KP_8)) whichend = 8;
+ if (Input::isKeyDown(SDL_SCANCODE_KP_9)) whichend = 9;
+ if (Input::isKeyDown(SDL_SCANCODE_KP_0)) whichend = 0;
participantfacing[whichdialogue][indialogue][whichend] = facing;
}
if (indialogue >= numdialogueboxes[whichdialogue]) {
yaw = dialoguecamerayaw[whichdialogue][indialogue];
pitch = dialoguecamerapitch[whichdialogue][indialogue];
if (dialoguetime > 0.5)
- if ( Input::isKeyPressed(SDLK_1) ||
- Input::isKeyPressed(SDLK_2) ||
- Input::isKeyPressed(SDLK_3) ||
- Input::isKeyPressed(SDLK_4) ||
- Input::isKeyPressed(SDLK_5) ||
- Input::isKeyPressed(SDLK_6) ||
- Input::isKeyPressed(SDLK_7) ||
- Input::isKeyPressed(SDLK_8) ||
- Input::isKeyPressed(SDLK_9) ||
- Input::isKeyPressed(SDLK_0) ||
- Input::isKeyPressed(SDLK_MINUS) ||
+ if ( Input::isKeyPressed(SDL_SCANCODE_1) ||
+ Input::isKeyPressed(SDL_SCANCODE_2) ||
+ Input::isKeyPressed(SDL_SCANCODE_3) ||
+ Input::isKeyPressed(SDL_SCANCODE_4) ||
+ Input::isKeyPressed(SDL_SCANCODE_5) ||
+ Input::isKeyPressed(SDL_SCANCODE_6) ||
+ Input::isKeyPressed(SDL_SCANCODE_7) ||
+ Input::isKeyPressed(SDL_SCANCODE_8) ||
+ Input::isKeyPressed(SDL_SCANCODE_9) ||
+ Input::isKeyPressed(SDL_SCANCODE_0) ||
+ Input::isKeyPressed(SDL_SCANCODE_MINUS) ||
Input::isKeyPressed(attackkey)) {
indialogue++;
if (indialogue < numdialogueboxes[whichdialogue]) {
}
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;
}
}
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);
static bool respawnkeydown;
if (!editorenabled &&
(whichlevel != -2 &&
- (Input::isKeyDown(SDLK_z) &&
- Input::isKeyDown(SDLK_LMETA) &&
+ (Input::isKeyDown(SDL_SCANCODE_Z) &&
+ Input::isKeyDown(SDL_SCANCODE_LGUI) &&
debugmode) ||
(Input::isKeyDown(jumpkey) &&
!respawnkeydown &&
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;
}
//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) <
Person::players[i]->animTarget == rollanim ||
Person::players[i]->animTarget == backhandspringanim ||
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 &&
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)
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)
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 &&
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)
}
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;
}
}
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] &&
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 &&
//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]) &&
}
//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;
}
//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);
}
}
- if (Input::isKeyPressed(SDLK_F1))
+ if (Input::isKeyPressed(SDL_SCANCODE_F1))
Screenshot();
}
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 ||
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)
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;
}
target.y += .1;
}
- if (Person::players[0]->skeleton.free != 2/*&&!autocam*/) {
+ if (Person::players[0]->skeleton.free != 2) {
cameraspeed = 20;
if (findLengthfast(&Person::players[0]->velocity) > 400) {
cameraspeed = 20 + (findLength(&Person::players[0]->velocity) - 20) * .96;
cameraloc.y = terrain.getHeight(cameraloc.x, cameraloc.z);
}
}
- /*
- //what did autocam do?
- if(Person::players[0]->skeleton.free!=2&&autocam){
- cameraspeed=20;
- if(findLengthfast(&Person::players[0]->velocity)>400){
- cameraspeed=20+(findLength(&Person::players[0]->velocity)-20)*.96;
- }
- if(Person::players[0]->skeleton.free==0&&Person::players[0]->animTarget!=hanganim&&Person::players[0]->animTarget!=climbanim)target.y+=1.4;
- cameradist+=multiplier*5;
- if(cameradist>3.3)cameradist=3.3;
- coltarget=target-cameraloc;
- if(findLengthfast(&coltarget)<multiplier*multiplier*400)cameraloc=target;
- else if(findLengthfast(&coltarget)>1)
- {
- Normalise(&coltarget);
- if(Person::players[0]->animTarget!=hanganim&&Person::players[0]->animTarget!=climbanim&&Person::players[0]->animCurrent!=climbanim&&Person::players[0]->currentoffset.x==0)cameraloc=cameraloc+coltarget*multiplier*cameraspeed;
- else cameraloc=cameraloc+coltarget*multiplier*8;
- }
- if(editorenabled)cameraloc=target;
- viewer=cameraloc;
- colviewer=viewer;
- coltarget=cameraloc;
- objects.SphereCheckPossible(&colviewer, findDistance(&colviewer,&coltarget));
- if(terrain.patchobjectnum[Person::players[0]->whichpatchx][Person::players[0]->whichpatchz])
- for(int j=0;j<terrain.patchobjectnum[Person::players[0]->whichpatchx][Person::players[0]->whichpatchz];j++){
- int i=terrain.patchobjects[Person::players[0]->whichpatchx][Person::players[0]->whichpatchz][j];
- colviewer=viewer;
- coltarget=cameraloc;
- if(objects.model[i].LineCheckPossible(&colviewer,&coltarget,&col,&objects.position[i],&objects.yaw[i])!=-1)viewer=col;
- }
- if(terrain.patchobjectnum[Person::players[0]->whichpatchx][Person::players[0]->whichpatchz])
- for(int j=0;j<terrain.patchobjectnum[Person::players[0]->whichpatchx][Person::players[0]->whichpatchz];j++){
- int i=terrain.patchobjects[Person::players[0]->whichpatchx][Person::players[0]->whichpatchz][j];
- colviewer=viewer;
- if(objects.model[i].SphereCheck(&colviewer,.15,&col,&objects.position[i],&objects.yaw[i])!=-1){
- viewer=colviewer;
- }
- }
- cameradist=findDistance(&viewer,&target);
- viewer.y=max((double)viewer.y,terrain.getHeight(viewer.x,viewer.z)+.6);
- if(cameraloc.y<terrain.getHeight(cameraloc.x,cameraloc.z)){
- cameraloc.y=terrain.getHeight(cameraloc.x,cameraloc.z);
- }
- }
- */
if (camerashake > .8)
camerashake = .8;
- //if(woozy>10)woozy=10;
- //woozy+=multiplier;
woozy += multiplier;
if (Person::players[0]->dead)
camerashake = 0;
woozy = 0;
camerashake -= multiplier * 2;
blackout -= multiplier * 2;
- //if(Person::players[0]->isCrouch())woozy-=multiplier*8;
if (camerashake < 0)
camerashake = 0;
if (blackout < 0)
blackout = 0;
- //if(woozy<0)woozy=0;
if (camerashake) {
viewer.x += (float)(Random() % 100) * .0005 * camerashake;
viewer.y += (float)(Random() % 100) * .0005 * camerashake;