float oldmusicvolume[4] = {};
int musicselected = 0;
-const char* rabbitskin[] = {
- "Textures/Fur3.jpg",
- "Textures/Fur.jpg",
- "Textures/Fur2.jpg",
- "Textures/Lynx.jpg",
- "Textures/Otter.jpg",
- "Textures/Opal.jpg",
- "Textures/Sable.jpg",
- "Textures/Chocolate.jpg",
- "Textures/BW2.jpg",
- "Textures/WB2.jpg"
-};
-
-const char* wolfskin[] = {
- "Textures/Wolf.jpg",
- "Textures/DarkWolf.jpg",
- "Textures/SnowWolf.jpg"
-};
-
-const char** creatureskin[] = { rabbitskin, wolfskin };
-
#define STATIC_ASSERT(x) extern int s_a_dummy[2 * (!!(x)) - 1];
STATIC_ASSERT(rabbittype == 0 && wolftype == 1)
Person::players[i]->updatedelay = 0;
Person::players[i]->normalsupdatedelay = 0;
- Person::players[i]->proportionhead = 1.2;
- Person::players[i]->proportionbody = 1.05;
- Person::players[i]->proportionarms = 1.00;
- Person::players[i]->proportionlegs = 1.1;
- Person::players[i]->proportionlegs.y = 1.05;
+ Person::players[i]->setProportions(1, 1, 1, 1);
Person::players[i]->headless = 0;
Person::players[i]->currentoffset = 0;
Person::players[i]->targetoffset = 0;
} else {
Person::players[i]->damagetolerance = 200;
}
- }
-
- Game::LoadingScreen();
- if (cellophane) {
- Person::players[i]->proportionhead.z = 0;
- Person::players[i]->proportionbody.z = 0;
- Person::players[i]->proportionarms.z = 0;
- Person::players[i]->proportionlegs.z = 0;
- }
+ Game::LoadingScreen();
- Person::players[i]->tempanimation = Animation("Tempanim", lowheight, neutral);
+ Person::players[i]->tempanimation = Animation("Tempanim", lowheight, neutral);
- if (i == 0) {
Person::players[i]->headmorphness = 0;
Person::players[i]->targetheadmorphness = 1;
Person::players[i]->headmorphstart = 0;
/* Devtools */
if (devtools && !mainmenu) {
- ProcessDevInput();
+ /* Console */
+ if (Input::isKeyPressed(consolekey)) {
+ console = !console;
+ if (console) {
+ OPENAL_SetFrequency(OPENAL_ALL);
+ } else {
+ freeze = 0;
+ waiting = false;
+ }
+ }
+
+ /* Other devtools, disabled when the console is shown */
+ if (!console) {
+ ProcessDevInput();
+ }
}
}
void Game::ProcessDevInput()
{
- if (!devtools || mainmenu) {
+ if (!devtools || mainmenu || console) {
return;
}
- float headprop, bodyprop, armprop, legprop;
-
- /* Console */
- if (Input::isKeyPressed(consolekey)) {
- console = !console;
- if (console) {
- OPENAL_SetFrequency(OPENAL_ALL);
- } else {
- freeze = 0;
- waiting = false;
- }
- }
-
if (Input::isKeyDown(SDL_SCANCODE_LALT)) {
/* Enable editor */
if (Input::isKeyPressed(SDL_SCANCODE_M) && !Input::isKeyDown(SDL_SCANCODE_LSHIFT)) {
editorenabled = !editorenabled;
if (editorenabled) {
Person::players[0]->damagetolerance = 100000;
+ Person::players[0]->damage = 0;
+ Person::players[0]->permanentdamage = 0;
+ Person::players[0]->superpermanentdamage = 0;
+ Person::players[0]->burnt = 0;
+ Person::players[0]->bloodloss = 0;
+ Person::players[0]->deathbleeding = 0;
} else {
Person::players[0]->damagetolerance = 200;
}
- Person::players[0]->damage = 0; // these lines were in both if and else, but I think they would better fit in the if
- Person::players[0]->permanentdamage = 0;
- Person::players[0]->superpermanentdamage = 0;
- Person::players[0]->bloodloss = 0;
- Person::players[0]->deathbleeding = 0;
}
/* Nullify damage and give 200000 health */
if (Input::isKeyPressed(SDL_SCANCODE_H)) {
Person::players[0]->damagetolerance = 200000;
Person::players[0]->damage = 0;
- Person::players[0]->burnt = 0;
Person::players[0]->permanentdamage = 0;
Person::players[0]->superpermanentdamage = 0;
+ Person::players[0]->burnt = 0;
+ Person::players[0]->bloodloss = 0;
+ Person::players[0]->deathbleeding = 0;
}
/* Change environment */
}
Person::players[closest]->skeleton.drawmodel.textureptr.load(
- creatureskin[Person::players[closest]->creature][Person::players[closest]->whichskin], 1,
+ PersonType::types[Person::players[closest]->creature].skins[Person::players[closest]->whichskin], 1,
&Person::players[closest]->skeleton.skinText[0], &Person::players[closest]->skeleton.skinsize);
}
}
if (closest >= 0) {
- if (Person::players[closest]->creature == rabbittype) {
- Person::players[closest]->creature = wolftype;
- Person::players[closest]->whichskin = 0;
- Person::players[closest]->skeletonLoad();
-
- Person::players[closest]->proportionhead = 1.1;
- Person::players[closest]->proportionbody = 1.1;
- Person::players[closest]->proportionarms = 1.1;
- Person::players[closest]->proportionlegs = 1.1;
- Person::players[closest]->scale *= 1.15;
-
- Person::players[closest]->damagetolerance = 300;
- } else { // wolftype
- Person::players[closest]->creature = rabbittype;
- Person::players[closest]->whichskin = 0;
- Person::players[closest]->skeletonLoad(true);
-
- Person::players[closest]->proportionhead = 1.2;
- Person::players[closest]->proportionbody = 1.05;
- Person::players[closest]->proportionarms = 1.00;
- Person::players[closest]->proportionlegs.x = 1.1;
- Person::players[closest]->proportionlegs.y = 1.05;
- Person::players[closest]->scale /= 1.15;
-
- Person::players[closest]->damagetolerance = 200;
- }
+ person_type nextType = static_cast<person_type>((Person::players[closest]->creature + 1) % PersonType::types.size());
+ Person::players[closest]->changeCreatureType(nextType);
}
}
Person::players.back()->oldcoords = Person::players.back()->coords;
Person::players.back()->realoldcoords = Person::players.back()->coords;
- if (Person::players[0]->creature == wolftype) {
- headprop = Person::players[0]->proportionhead.x / 1.1;
- bodyprop = Person::players[0]->proportionbody.x / 1.1;
- armprop = Person::players[0]->proportionarms.x / 1.1;
- legprop = Person::players[0]->proportionlegs.x / 1.1;
- } else {
- // rabbittype
- headprop = Person::players[0]->proportionhead.x / 1.2;
- bodyprop = Person::players[0]->proportionbody.x / 1.05;
- armprop = Person::players[0]->proportionarms.x / 1.00;
- legprop = Person::players[0]->proportionlegs.x / 1.1;
- }
-
- if (Person::players.back()->creature == wolftype) {
- Person::players.back()->proportionhead = 1.1 * headprop;
- Person::players.back()->proportionbody = 1.1 * bodyprop;
- Person::players.back()->proportionarms = 1.1 * armprop;
- Person::players.back()->proportionlegs = 1.1 * legprop;
- }
-
- if (Person::players.back()->creature == rabbittype) {
- Person::players.back()->proportionhead = 1.2 * headprop;
- Person::players.back()->proportionbody = 1.05 * bodyprop;
- Person::players.back()->proportionarms = 1.00 * armprop;
- Person::players.back()->proportionlegs = 1.1 * legprop;
- Person::players.back()->proportionlegs.y = 1.05 * legprop;
- }
-
- if (cellophane) {
- Person::players.back()->proportionhead.z = 0;
- Person::players.back()->proportionbody.z = 0;
- Person::players.back()->proportionarms.z = 0;
- Person::players.back()->proportionlegs.z = 0;
- }
-
- Person::players.back()->tempanimation = Animation("Tempanim", lowheight, neutral);
+ Person::players.back()->setProportions(1, 1, 1, 1);
Person::players.back()->damagetolerance = 200;