extern bool mousejump;
extern float viewdistance;
extern bool freeze;
-extern bool keyboardfrozen;
-extern bool loadingstuff;
extern XYZ windvector;
extern bool debugmode;
static int leveltheme;
// ================================================================
-bool Game::AddClothes(const char *fileName, GLubyte *array)
-{
- LOGFUNC;
- //Load Image
- ImageRec texture;
- bool opened = load_image(fileName, texture);
-
- float alphanum;
- //Is it valid?
- if (opened) {
- if (tintr > 1) tintr = 1;
- if (tintg > 1) tintg = 1;
- if (tintb > 1) tintb = 1;
-
- if (tintr < 0) tintr = 0;
- if (tintg < 0) tintg = 0;
- if (tintb < 0) tintb = 0;
-
- int bytesPerPixel = texture.bpp / 8;
-
- int tempnum = 0;
- alphanum = 255;
- for (int i = 0; i < (int)(texture.sizeY * texture.sizeX * bytesPerPixel); i++) {
- if (bytesPerPixel == 3)
- alphanum = 255;
- else if ((i + 1) % 4 == 0)
- alphanum = texture.data[i];
- if ((i + 1) % 4 || bytesPerPixel == 3) {
- if ((i % 4) == 0)
- texture.data[i] *= tintr;
- if ((i % 4) == 1)
- texture.data[i] *= tintg;
- if ((i % 4) == 2)
- texture.data[i] *= tintb;
- array[tempnum] = (float)array[tempnum] * (1 - alphanum / 255) + (float)texture.data[i] * (alphanum / 255);
- tempnum++;
- }
- }
- return 1;
- } else {
- return 0;
- }
-}
-
int Game::findClosestPlayer()
{
int closest = -1;
tutorialstagetime = 0;
tutorialmaxtime = 1;
}
- loadingstuff = 1;
pause_sound(whooshsound);
pause_sound(stream_firesound);
funpackf(tfile, "Bf Bf Bf Bf Bf Bi", &Person::players[0]->coords.x, &Person::players[0]->coords.y, &Person::players[0]->coords.z, &Person::players[0]->yaw, &Person::players[0]->targetyaw, &Person::players[0]->num_weapons);
if (stealthloading)
funpackf(tfile, "Bf Bf Bf Bf Bf Bi", &lamefloat, &lamefloat, &lamefloat, &lamefloat, &lamefloat, &Person::players[0]->num_weapons);
- Person::players[0]->originalcoords = Person::players[0]->coords;
if (Person::players[0]->num_weapons > 0 && Person::players[0]->num_weapons < 5)
for (int j = 0; j < Person::players[0]->num_weapons; j++) {
Person::players[0]->weaponids[j] = weapons.size();
Person::players[i]->skeleton.drawmodel.textureptr.load(creatureskin[Person::players[i]->creature][Person::players[i]->whichskin], 1, &Person::players[i]->skeleton.skinText[0], &Person::players[i]->skeleton.skinsize);
- if (Person::players[i]->numclothes) {
- for (int j = 0; j < Person::players[i]->numclothes; j++) {
- tintr = Person::players[i]->clothestintr[j];
- tintg = Person::players[i]->clothestintg[j];
- tintb = Person::players[i]->clothestintb[j];
- AddClothes((char *)Person::players[i]->clothes[j], &Person::players[i]->skeleton.skinText[0]);
- }
- Person::players[i]->DoMipmaps();
- }
+ Person::players[i]->addClothes();
Person::players[i]->animCurrent = bounceidleanim;
Person::players[i]->animTarget = bounceidleanim;
Person::players[i]->normalsupdatedelay = 0;
Person::players[i]->aitype = passivetype;
- Person::players[i]->madskills = 0;
if (i == 0) {
Person::players[i]->proportionhead = 1.2;
perror("Problem");
}
leveltime = 0;
- loadingstuff = 0;
visibleloading = 0;
}
&Person::players[closest]->skeleton.skinText[0], &Person::players[closest]->skeleton.skinsize);
}
- if (Person::players[closest]->numclothes) {
- for (int i = 0; i < Person::players[closest]->numclothes; i++) {
- tintr = Person::players[closest]->clothestintr[i];
- tintg = Person::players[closest]->clothestintg[i];
- tintb = Person::players[closest]->clothestintb[i];
- AddClothes((char *)Person::players[closest]->clothes[i], &Person::players[closest]->skeleton.skinText[0]);
- }
- Person::players[closest]->DoMipmaps();
- }
+ Person::players[closest]->addClothes();
}
if (Input::isKeyPressed(SDL_SCANCODE_O) && Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
if (Person::players[closest]->creature == rabbittype) {
Person::players[closest]->skeleton.id = closest;
Person::players[closest]->skeleton.Load((char *)":Data:Skeleton:Basic Figure Wolf", (char *)":Data:Skeleton:Basic Figure Wolf Low", (char *)":Data:Skeleton:Rabbitbelt", (char *)":Data:Models:Wolf.solid", (char *)":Data:Models:Wolf2.solid", (char *)":Data:Models:Wolf3.solid", (char *)":Data:Models:Wolf4.solid", (char *)":Data:Models:Wolf5.solid", (char *)":Data:Models:Wolf6.solid", (char *)":Data:Models:Wolf7.solid", (char *)":Data:Models:Wolflow.solid", (char *)":Data:Models:Belt.solid", 0);
- Person::players[closest]->skeleton.drawmodel.textureptr.load(":Data:Textures:Wolf.jpg", 1, &Person::players[closest]->skeleton.skinText[closest], &Person::players[closest]->skeleton.skinsize);
+ Person::players[closest]->skeleton.drawmodel.textureptr.load(":Data:Textures:Wolf.jpg", 1, &Person::players[closest]->skeleton.skinText[0], &Person::players[closest]->skeleton.skinsize);
Person::players[closest]->whichskin = 0;
Person::players[closest]->creature = wolftype;
Person::players.back()->immobile = Person::players[0]->immobile;
Person::players.back()->numclothes = Person::players[0]->numclothes;
- if (Person::players.back()->numclothes)
- for (int i = 0; i < Person::players.back()->numclothes; i++) {
- strcpy(Person::players.back()->clothes[i], Person::players[0]->clothes[i]);
- Person::players.back()->clothestintr[i] = Person::players[0]->clothestintr[i];
- Person::players.back()->clothestintg[i] = Person::players[0]->clothestintg[i];
- Person::players.back()->clothestintb[i] = Person::players[0]->clothestintb[i];
- tintr = Person::players.back()->clothestintr[i];
- tintg = Person::players.back()->clothestintg[i];
- tintb = Person::players.back()->clothestintb[i];
- AddClothes((char *)Person::players.back()->clothes[i], &Person::players.back()->skeleton.skinText[0]);
- }
- if (Person::players.back()->numclothes) {
- Person::players.back()->DoMipmaps();
+ for (int i = 0; i < Person::players.back()->numclothes; i++) {
+ strcpy(Person::players.back()->clothes[i], Person::players[0]->clothes[i]);
+ Person::players.back()->clothestintr[i] = Person::players[0]->clothestintr[i];
+ Person::players.back()->clothestintg[i] = Person::players[0]->clothestintg[i];
+ Person::players.back()->clothestintb[i] = Person::players[0]->clothestintb[i];
}
+ Person::players.back()->addClothes();
Person::players.back()->power = Person::players[0]->power;
Person::players.back()->speedmult = Person::players[0]->speedmult;
Person::players.back()->bleeding = 0;
Person::players.back()->numwaypoints = 0;
Person::players.back()->waypoint = 0;
- Person::players.back()->jumppath = 0;
Person::players.back()->weaponstuck = -1;
Person::players.back()->weaponactive = -1;
Person::players.back()->num_weapons = 0;
!Person::players[i]->skeleton.free &&
Person::players[i]->animTarget != getupfrombackanim &&
Person::players[i]->animTarget != getupfromfrontanim &&
- (Person::players[i]->stunned > 0 && Person::players[k]->madskills ||
- Person::players[i]->surprised > 0 ||
+ (Person::players[i]->surprised > 0 ||
Person::players[i]->aitype == passivetype ||
attackweapon && Person::players[i]->stunned > 0) &&
normaldotproduct(Person::players[i]->facing, Person::players[i]->coords - Person::players[k]->coords) > 0) {
}
}
- 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) {
displaytime[i] += multiplier;
}
- keyboardfrozen = false;
Input::Tick();
if (Input::isKeyPressed(SDL_SCANCODE_F6)) {
}
}
-
-
- if (Input::isKeyDown(SDL_SCANCODE_Q) && Input::isKeyDown(SDL_SCANCODE_LGUI)) {
- tryquit = 1;
- if (mainmenu == 3) {
- SaveSettings();
- }
- }
-
static int oldwinfreeze;
if (winfreeze && !oldwinfreeze) {
OPENAL_SetFrequency(OPENAL_ALL, 0.001);