X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGameTick.cpp;h=45b7119418be4d65e9f52a42881653c1298486d2;hb=71a5b4590a18bf663b97b8a52078754899dcf345;hp=c688a5f28a019055ec75cebf56e4899d6f36d1dc;hpb=e7b76642d8998c250272a8313ad8aa7c7efff319;p=lugaru.git diff --git a/Source/GameTick.cpp b/Source/GameTick.cpp index c688a5f..45b7119 100644 --- a/Source/GameTick.cpp +++ b/Source/GameTick.cpp @@ -43,6 +43,7 @@ along with Lugaru. If not, see . #include "Menu.h" #include "ConsoleCmds.h" #include "Dialog.h" +#include "Utils/Folders.h" #include #include @@ -239,22 +240,22 @@ float oldmusicvolume[4] = {}; int musicselected = 0; const char *rabbitskin[] = { - ":Data:Textures:Fur3.jpg", - ":Data:Textures:Fur.jpg", - ":Data:Textures:Fur2.jpg", - ":Data:Textures:Lynx.jpg", - ":Data:Textures:Otter.jpg", - ":Data:Textures:Opal.jpg", - ":Data:Textures:Sable.jpg", - ":Data:Textures:Chocolate.jpg", - ":Data:Textures:BW2.jpg", - ":Data:Textures:WB2.jpg" + "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[] = { - ":Data:Textures:Wolf.jpg", - ":Data:Textures:Darkwolf.jpg", - ":Data:Textures:Snowwolf.jpg" + "Textures/Wolf.jpg", + "Textures/DarkWolf.jpg", + "Textures/SnowWolf.jpg" }; const char **creatureskin[] = {rabbitskin, wolfskin}; @@ -300,16 +301,16 @@ inline float stepTowardf(float from, float to, float by) return from + by; } -void Game::playdialogueboxsound() +void Game::playdialoguescenesound() { XYZ temppos; - temppos = Person::players[Dialog::currentBox().participantfocus]->coords; + temppos = Person::players[Dialog::currentScene().participantfocus]->coords; temppos = temppos - viewer; Normalise(&temppos); temppos += viewer; int sound = -1; - switch (Dialog::currentBox().sound) { + switch (Dialog::currentScene().sound) { case -6: sound = alarmsound; break; @@ -601,29 +602,29 @@ void Setenvironment(int which) if (ambientsound) emit_stream_np(stream_wind); - objects.treetextureptr.load(":Data:Textures:snowtree.png", 0); - objects.bushtextureptr.load(":Data:Textures:bushsnow.png", 0); - objects.rocktextureptr.load(":Data:Textures:bouldersnow.jpg", 1); - objects.boxtextureptr.load(":Data:Textures:snowbox.jpg", 1); + objects.treetextureptr.load("Textures/SnowTree.png", 0); + objects.bushtextureptr.load("Textures/BushSnow.png", 0); + objects.rocktextureptr.load("Textures/BoulderSnow.jpg", 1); + objects.boxtextureptr.load("Textures/SnowBox.jpg", 1); footstepsound = footstepsn1; footstepsound2 = footstepsn2; footstepsound3 = footstepst1; footstepsound4 = footstepst2; - terraintexture.load(":Data:Textures:snow.jpg", 1); - terraintexture2.load(":Data:Textures:rock.jpg", 1); + terraintexture.load("Textures/Snow.jpg", 1); + terraintexture2.load("Textures/Rock.jpg", 1); temptexdetail = texdetail; if (texdetail > 1) texdetail = 4; - skybox->load( ":Data:Textures:Skybox(snow):Front.jpg", - ":Data:Textures:Skybox(snow):Left.jpg", - ":Data:Textures:Skybox(snow):Back.jpg", - ":Data:Textures:Skybox(snow):Right.jpg", - ":Data:Textures:Skybox(snow):Up.jpg", - ":Data:Textures:Skybox(snow):Down.jpg"); + skybox->load( "Textures/Skybox(snow)/Front.jpg", + "Textures/Skybox(snow)/Left.jpg", + "Textures/Skybox(snow)/Back.jpg", + "Textures/Skybox(snow)/Right.jpg", + "Textures/Skybox(snow)/Up.jpg", + "Textures/Skybox(snow)/Down.jpg"); @@ -632,10 +633,10 @@ void Setenvironment(int which) } else if (environment == desertenvironment) { windvector = 0; windvector.z = 2; - objects.treetextureptr.load(":Data:Textures:deserttree.png", 0); - objects.bushtextureptr.load(":Data:Textures:bushdesert.png", 0); - objects.rocktextureptr.load(":Data:Textures:boulderdesert.jpg", 1); - objects.boxtextureptr.load(":Data:Textures:desertbox.jpg", 1); + objects.treetextureptr.load("Textures/DesertTree.png", 0); + objects.bushtextureptr.load("Textures/BushDesert.png", 0); + objects.rocktextureptr.load("Textures/BoulderDesert.jpg", 1); + objects.boxtextureptr.load("Textures/DesertBox.jpg", 1); if (ambientsound) @@ -646,19 +647,19 @@ void Setenvironment(int which) footstepsound3 = footstepsn1; footstepsound4 = footstepsn2; - terraintexture.load(":Data:Textures:sand.jpg", 1); - terraintexture2.load(":Data:Textures:sandslope.jpg", 1); + terraintexture.load("Textures/Sand.jpg", 1); + terraintexture2.load("Textures/SandSlope.jpg", 1); temptexdetail = texdetail; if (texdetail > 1) texdetail = 4; - skybox->load( ":Data:Textures:Skybox(sand):Front.jpg", - ":Data:Textures:Skybox(sand):Left.jpg", - ":Data:Textures:Skybox(sand):Back.jpg", - ":Data:Textures:Skybox(sand):Right.jpg", - ":Data:Textures:Skybox(sand):Up.jpg", - ":Data:Textures:Skybox(sand):Down.jpg"); + skybox->load( "Textures/Skybox(sand)/Front.jpg", + "Textures/Skybox(sand)/Left.jpg", + "Textures/Skybox(sand)/Back.jpg", + "Textures/Skybox(sand)/Right.jpg", + "Textures/Skybox(sand)/Up.jpg", + "Textures/Skybox(sand)/Down.jpg"); @@ -667,10 +668,10 @@ void Setenvironment(int which) } else if (environment == grassyenvironment) { windvector = 0; windvector.z = 2; - objects.treetextureptr.load(":Data:Textures:tree.png", 0); - objects.bushtextureptr.load(":Data:Textures:bush.png", 0); - objects.rocktextureptr.load(":Data:Textures:boulder.jpg", 1); - objects.boxtextureptr.load(":Data:Textures:grassbox.jpg", 1); + objects.treetextureptr.load("Textures/Tree.png", 0); + objects.bushtextureptr.load("Textures/Bush.png", 0); + objects.rocktextureptr.load("Textures/Boulder.jpg", 1); + objects.boxtextureptr.load("Textures/GrassBox.jpg", 1); if (ambientsound) emit_stream_np(stream_wind, 100.); @@ -680,19 +681,19 @@ void Setenvironment(int which) footstepsound3 = footstepst1; footstepsound4 = footstepst2; - terraintexture.load(":Data:Textures:grassdirt.jpg", 1); - terraintexture2.load(":Data:Textures:mossrock.jpg", 1); + terraintexture.load("Textures/GrassDirt.jpg", 1); + terraintexture2.load("Textures/MossRock.jpg", 1); temptexdetail = texdetail; if (texdetail > 1) texdetail = 4; - skybox->load( ":Data:Textures:Skybox(grass):Front.jpg", - ":Data:Textures:Skybox(grass):Left.jpg", - ":Data:Textures:Skybox(grass):Back.jpg", - ":Data:Textures:Skybox(grass):Right.jpg", - ":Data:Textures:Skybox(grass):Up.jpg", - ":Data:Textures:Skybox(grass):Down.jpg"); + skybox->load( "Textures/Skybox(grass)/Front.jpg", + "Textures/Skybox(grass)/Left.jpg", + "Textures/Skybox(grass)/Back.jpg", + "Textures/Skybox(grass)/Right.jpg", + "Textures/Skybox(grass)/Up.jpg", + "Textures/Skybox(grass)/Down.jpg"); @@ -700,7 +701,7 @@ void Setenvironment(int which) } temptexdetail = texdetail; texdetail = 1; - terrain.load(":Data:Textures:heightmap.png"); + terrain.load("Textures/HeightMap.png"); texdetail = temptexdetail; } @@ -709,7 +710,7 @@ void LoadCampaign() { if (!accountactive) return; - ifstream ipstream(ConvertFileName((":Data:Campaigns:" + accountactive->getCurrentCampaign() + ".txt").c_str())); + ifstream ipstream(Folders::getResourcePath("Campaigns/" + accountactive->getCurrentCampaign() + ".txt")); if (!ipstream.good()) { if (accountactive->getCurrentCampaign() == "main") { cerr << "Could not found main campaign!" << endl; @@ -730,11 +731,11 @@ void LoadCampaign() } ipstream.close(); - ifstream test(ConvertFileName((":Data:Textures:" + accountactive->getCurrentCampaign() + ":World.png").c_str())); + ifstream test(Folders::getResourcePath("Textures/" + accountactive->getCurrentCampaign() + "/World.png")); if (test.good()) { - Mainmenuitems[7].load((":Data:Textures:" + accountactive->getCurrentCampaign() + ":World.png").c_str(), 0); + Mainmenuitems[7].load("Textures/" + accountactive->getCurrentCampaign() + "/World.png", 0); } else { - Mainmenuitems[7].load(":Data:Textures:World.png", 0); + Mainmenuitems[7].load("Textures/World.png", 0); } if (accountactive->getCampaignChoicesMade() == 0) { @@ -745,11 +746,11 @@ void LoadCampaign() vector ListCampaigns() { - DIR *campaigns = opendir(ConvertFileName(":Data:Campaigns")); + errno = 0; + DIR *campaigns = opendir(Folders::getResourcePath("Campaigns").c_str()); struct dirent *campaign = NULL; if (!campaigns) { - perror("Problem while loading campaigns"); - cerr << "campaign folder was : " << ConvertFileName(":Data:Campaigns") << endl; + perror(("Problem while loading campaigns from " + Folders::getResourcePath("Campaigns")).c_str()); exit(EXIT_FAILURE); } vector campaignNames; @@ -781,13 +782,11 @@ void Game::Loadlevel(int which) Loadlevel("mapsave"); } -void Game::Loadlevel(const char *name) +void Game::Loadlevel(const std::string& name) { int indemo; // FIXME this should be removed int templength; float lamefloat; - static const char *pfx = ":Data:Maps:"; - char *buf; LOGFUNC; @@ -817,14 +816,10 @@ void Game::Loadlevel(const char *name) pause_sound(whooshsound); pause_sound(stream_firesound); - // Change the map filename into something that is os specific - buf = (char*) alloca(strlen(pfx) + strlen(name) + 1); - sprintf(buf, "%s%s", pfx, name); - const char *FixedFN = ConvertFileName(buf); - int mapvers; FILE *tfile; - tfile = fopen( FixedFN, "rb" ); + errno = 0; + tfile = fopen( Folders::getResourcePath("Maps/"+name).c_str(), "rb" ); if (tfile) { pause_sound(stream_firesound); scoreadded = 0; @@ -1109,49 +1104,49 @@ void Game::Loadlevel(const char *name) Person::players[i]->creature = rabbittype; if (Person::players[i]->creature != wolftype) { Person::players[i]->skeleton.Load( - (char *)":Data:Skeleton:Basic Figure", - (char *)":Data:Skeleton:Basic Figurelow", - (char *)":Data:Skeleton:Rabbitbelt", - (char *)":Data:Models:Body.solid", - (char *)":Data:Models:Body2.solid", - (char *)":Data:Models:Body3.solid", - (char *)":Data:Models:Body4.solid", - (char *)":Data:Models:Body5.solid", - (char *)":Data:Models:Body6.solid", - (char *)":Data:Models:Body7.solid", - (char *)":Data:Models:Bodylow.solid", - (char *)":Data:Models:Belt.solid", 0); + (char *)"Skeleton/BasicFigure", + (char *)"Skeleton/BasicFigureLow", + (char *)"Skeleton/RabbitBelt", + (char *)"Models/Body.solid", + (char *)"Models/Body2.solid", + (char *)"Models/Body3.solid", + (char *)"Models/Body4.solid", + (char *)"Models/Body5.solid", + (char *)"Models/Body6.solid", + (char *)"Models/Body7.solid", + (char *)"Models/BodyLow.solid", + (char *)"Models/Belt.solid", 0); } else { if (Person::players[i]->creature != wolftype) { Person::players[i]->skeleton.Load( - (char *)":Data:Skeleton:Basic Figure", - (char *)":Data:Skeleton:Basic Figurelow", - (char *)":Data:Skeleton:Rabbitbelt", - (char *)":Data:Models:Body.solid", - (char *)":Data:Models:Body2.solid", - (char *)":Data:Models:Body3.solid", - (char *)":Data:Models:Body4.solid", - (char *)":Data:Models:Body5.solid", - (char *)":Data:Models:Body6.solid", - (char *)":Data:Models:Body7.solid", - (char *)":Data:Models:Bodylow.solid", - (char *)":Data:Models:Belt.solid", 1); - Person::players[i]->skeleton.drawmodelclothes.textureptr.load(":Data:Textures:Belt.png", 1); + (char *)"Skeleton/BasicFigure", + (char *)"Skeleton/BasicFigureLow", + (char *)"Skeleton/RabbitBelt", + (char *)"Models/Body.solid", + (char *)"Models/Body2.solid", + (char *)"Models/Body3.solid", + (char *)"Models/Body4.solid", + (char *)"Models/Body5.solid", + (char *)"Models/Body6.solid", + (char *)"Models/Body7.solid", + (char *)"Models/BodyLow.solid", + (char *)"Models/Belt.solid", 1); + Person::players[i]->skeleton.drawmodelclothes.textureptr.load("Textures/Belt.png", 1); } if (Person::players[i]->creature == wolftype) { Person::players[i]->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); + (char *)"Skeleton/BasicFigureWolf", + (char *)"Skeleton/BasicFigureWolfLow", + (char *)"Skeleton/RabbitBelt", + (char *)"Models/Wolf.solid", + (char *)"Models/Wolf2.solid", + (char *)"Models/Wolf3.solid", + (char *)"Models/Wolf4.solid", + (char *)"Models/Wolf5.solid", + (char *)"Models/Wolf6.solid", + (char *)"Models/Wolf7.solid", + (char *)"Models/WolfLow.solid", + (char *)"Models/Belt.solid", 0); } } @@ -1926,8 +1921,8 @@ void doDebugKeys() 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[0], &Person::players[closest]->skeleton.skinsize); + Person::players[closest]->skeleton.Load((char *)"Skeleton/BasicFigureWolf", (char *)"Skeleton/BasicFigureWolfLow", (char *)"Skeleton/RabbitBelt", (char *)"Models/Wolf.solid", (char *)"Models/Wolf2.solid", (char *)"Models/Wolf3.solid", (char *)"Models/Wolf4.solid", (char *)"Models/Wolf5.solid", (char *)"Models/Wolf6.solid", (char *)"Models/Wolf7.solid", (char *)"Models/WolfLow.solid", (char *)"Models/Belt.solid", 0); + Person::players[closest]->skeleton.drawmodel.textureptr.load("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; @@ -1941,8 +1936,8 @@ void doDebugKeys() Person::players[closest]->damagetolerance = 300; } else { Person::players[closest]->skeleton.id = closest; - Person::players[closest]->skeleton.Load((char *)":Data:Skeleton:Basic Figure", (char *)":Data:Skeleton:Basic Figurelow", (char *)":Data:Skeleton:Rabbitbelt", (char *)":Data:Models:Body.solid", (char *)":Data:Models:Body2.solid", (char *)":Data:Models:Body3.solid", (char *)":Data:Models:Body4.solid", (char *)":Data:Models:Body5.solid", (char *)":Data:Models:Body6.solid", (char *)":Data:Models:Body7.solid", (char *)":Data:Models:Bodylow.solid", (char *)":Data:Models:Belt.solid", 1); - Person::players[closest]->skeleton.drawmodel.textureptr.load(":Data:Textures:Fur3.jpg", 1, &Person::players[closest]->skeleton.skinText[0], &Person::players[closest]->skeleton.skinsize); + Person::players[closest]->skeleton.Load((char *)"Skeleton/BasicFigure", (char *)"Skeleton/BasicFigureLow", (char *)"Skeleton/RabbitBelt", (char *)"Models/Body.solid", (char *)"Models/Body2.solid", (char *)"Models/Body3.solid", (char *)"Models/Body4.solid", (char *)"Models/Body5.solid", (char *)"Models/Body6.solid", (char *)"Models/Body7.solid", (char *)"Models/BodyLow.solid", (char *)"Models/Belt.solid", 1); + Person::players[closest]->skeleton.drawmodel.textureptr.load("Textures/Fur3.jpg", 1, &Person::players[closest]->skeleton.skinText[0], &Person::players[closest]->skeleton.skinsize); Person::players[closest]->whichskin = 0; Person::players[closest]->creature = rabbittype; @@ -2204,15 +2199,15 @@ void doDebugKeys() 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; - boxcoords.z = Person::players[0]->coords.z; - boxcoords.y = Person::players[0]->coords.y - 3; + XYZ scenecoords; + scenecoords.x = Person::players[0]->coords.x; + scenecoords.z = Person::players[0]->coords.z; + scenecoords.y = Person::players[0]->coords.y - 3; if (editortype == bushtype) - boxcoords.y = Person::players[0]->coords.y - .5; + scenecoords.y = Person::players[0]->coords.y - .5; if (editortype == firetype) - boxcoords.y = Person::players[0]->coords.y - .5; - //objects.MakeObject(abs(Random()%3),boxcoords,Random()%360); + scenecoords.y = Person::players[0]->coords.y - .5; + //objects.MakeObject(abs(Random()%3),scenecoords,Random()%360); float temprotat, temprotat2; temprotat = editoryaw; temprotat2 = editorpitch; @@ -2221,9 +2216,9 @@ void doDebugKeys() if (temprotat2 < 0) temprotat2 = Random() % 360; - objects.MakeObject(editortype, boxcoords, (int)temprotat - ((int)temprotat) % 30, (int)temprotat2, editorsize); + objects.MakeObject(editortype, scenecoords, (int)temprotat - ((int)temprotat) % 30, (int)temprotat2, editorsize); if (editortype == treetrunktype) - objects.MakeObject(treeleavestype, boxcoords, Random() % 360 * (temprotat2 < 2) + (int)editoryaw - ((int)editoryaw) % 30, editorpitch, editorsize); + objects.MakeObject(treeleavestype, scenecoords, Random() % 360 * (temprotat2 < 2) + (int)editoryaw - ((int)editoryaw) % 30, editorpitch, editorsize); } } @@ -2234,21 +2229,21 @@ void doDebugKeys() Person::players.back()->creature = rabbittype; Person::players.back()->howactive = editoractive; Person::players.back()->skeleton.id = Person::players.size()-1; - Person::players.back()->skeleton.Load((char *)":Data:Skeleton:Basic Figure", (char *)":Data:Skeleton:Basic Figurelow", (char *)":Data:Skeleton:Rabbitbelt", (char *)":Data:Models:Body.solid", (char *)":Data:Models:Body2.solid", (char *)":Data:Models:Body3.solid", (char *)":Data:Models:Body4.solid", (char *)":Data:Models:Body5.solid", (char *)":Data:Models:Body6.solid", (char *)":Data:Models:Body7.solid", (char *)":Data:Models:Bodylow.solid", (char *)":Data:Models:Belt.solid", 1); + Person::players.back()->skeleton.Load((char *)"Skeleton/BasicFigure", (char *)"Skeleton/BasicFigureLow", (char *)"Skeleton/RabbitBelt", (char *)"Models/Body.solid", (char *)"Models/Body2.solid", (char *)"Models/Body3.solid", (char *)"Models/Body4.solid", (char *)"Models/Body5.solid", (char *)"Models/Body6.solid", (char *)"Models/Body7.solid", (char *)"Models/BodyLow.solid", (char *)"Models/Belt.solid", 1); int k = abs(Random() % 2) + 1; if (k == 0) { - Person::players.back()->skeleton.drawmodel.textureptr.load(":Data:Textures:Fur3.jpg", 1, &Person::players.back()->skeleton.skinText[0], &Person::players.back()->skeleton.skinsize); + Person::players.back()->skeleton.drawmodel.textureptr.load("Textures/Fur3.jpg", 1, &Person::players.back()->skeleton.skinText[0], &Person::players.back()->skeleton.skinsize); Person::players.back()->whichskin = 0; } else if (k == 1) { - Person::players.back()->skeleton.drawmodel.textureptr.load(":Data:Textures:Fur.jpg", 1, &Person::players.back()->skeleton.skinText[0], &Person::players.back()->skeleton.skinsize); + Person::players.back()->skeleton.drawmodel.textureptr.load("Textures/Fur.jpg", 1, &Person::players.back()->skeleton.skinText[0], &Person::players.back()->skeleton.skinsize); Person::players.back()->whichskin = 1; } else { - Person::players.back()->skeleton.drawmodel.textureptr.load(":Data:Textures:Fur2.jpg", 1, &Person::players.back()->skeleton.skinText[0], &Person::players.back()->skeleton.skinsize); + Person::players.back()->skeleton.drawmodel.textureptr.load("Textures/Fur2.jpg", 1, &Person::players.back()->skeleton.skinText[0], &Person::players.back()->skeleton.skinsize); Person::players.back()->whichskin = 2; } - Person::players.back()->skeleton.drawmodelclothes.textureptr.load(":Data:Textures:Belt.png", 1); + Person::players.back()->skeleton.drawmodelclothes.textureptr.load("Textures/Belt.png", 1); Person::players.back()->power = 1; Person::players.back()->speedmult = 1; Person::players.back()->animCurrent = bounceidleanim; @@ -5685,31 +5680,31 @@ void Game::Tick() if (Input::isKeyPressed(SDL_SCANCODE_MINUS)) whichend = -1; if (whichend != -1) { - Dialog::currentBox().participantfocus = whichend; + Dialog::currentScene().participantfocus = whichend; Dialog::currentDialog().participantlocation[whichend] = Person::players[whichend]->coords; Dialog::currentDialog().participantyaw[whichend] = Person::players[whichend]->yaw; } if (whichend == -1) { - Dialog::currentBox().participantfocus = -1; + Dialog::currentScene().participantfocus = -1; } /* FIXME: potentially accessing -1 in Person::players! */ - if (Person::players[Dialog::currentBox().participantfocus]->dead) { + if (Person::players[Dialog::currentScene().participantfocus]->dead) { Dialog::indialogue = -1; Dialog::directing = false; cameramode = 0; } - Dialog::currentBox().camera = viewer; - Dialog::currentBox().camerayaw = yaw; - Dialog::currentBox().camerapitch = pitch; + Dialog::currentScene().camera = viewer; + Dialog::currentScene().camerayaw = yaw; + Dialog::currentScene().camerapitch = pitch; Dialog::indialogue++; - if (Dialog::indialogue < Dialog::currentDialog().boxes.size()) { - if (Dialog::currentBox().sound != 0) { - playdialogueboxsound(); + if (Dialog::indialogue < Dialog::currentDialog().scenes.size()) { + if (Dialog::currentScene().sound != 0) { + playdialoguescenesound(); } } for (unsigned j = 0; j < Person::players.size(); j++) { - Dialog::currentBox().participantfacing[j] = Dialog::currentDialog().boxes[Dialog::indialogue - 1].participantfacing[j]; + Dialog::currentScene().participantfacing[j] = Dialog::currentDialog().scenes[Dialog::indialogue - 1].participantfacing[j]; } } //TODO: should these be KeyDown or KeyPressed? @@ -5734,9 +5729,9 @@ void Game::Tick() 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; - Dialog::currentBox().participantfacing[whichend] = facing; + Dialog::currentScene().participantfacing[whichend] = facing; } - if (Dialog::indialogue >= Dialog::currentDialog().boxes.size()) { + if (Dialog::indialogue >= Dialog::currentDialog().scenes.size()) { Dialog::indialogue = -1; Dialog::directing = false; cameramode = 0; @@ -5744,39 +5739,28 @@ void Game::Tick() } if (!Dialog::directing) { pause_sound(whooshsound); - viewer = Dialog::currentBox().camera; + viewer = Dialog::currentScene().camera; viewer.y = max((double)viewer.y, terrain.getHeight(viewer.x, viewer.z) + .1); - yaw = Dialog::currentBox().camerayaw; - pitch = Dialog::currentBox().camerapitch; + yaw = Dialog::currentScene().camerayaw; + pitch = Dialog::currentScene().camerapitch; if (Dialog::dialoguetime > 0.5) { - 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)) { + if (Input::isKeyPressed(attackkey)) { Dialog::indialogue++; - if (Dialog::indialogue < Dialog::currentDialog().boxes.size()) { - if (Dialog::currentBox().sound != 0) { - playdialogueboxsound(); - if (Dialog::currentBox().sound == -5) { + if (Dialog::indialogue < Dialog::currentDialog().scenes.size()) { + if (Dialog::currentScene().sound != 0) { + playdialoguescenesound(); + if (Dialog::currentScene().sound == -5) { hotspot[numhotspots] = Person::players[0]->coords; hotspotsize[numhotspots] = 10; hotspottype[numhotspots] = -1; numhotspots++; } - if (Dialog::currentBox().sound == -6) { + if (Dialog::currentScene().sound == -6) { hostile = 1; } - if (Person::players[Dialog::currentBox().participantfocus]->dead) { + if (Person::players[Dialog::currentScene().participantfocus]->dead) { Dialog::indialogue = -1; Dialog::directing = false; cameramode = 0; @@ -5785,7 +5769,7 @@ void Game::Tick() } } } - if (Dialog::indialogue >= Dialog::currentDialog().boxes.size()) { + if (Dialog::indialogue >= Dialog::currentDialog().scenes.size()) { Dialog::indialogue = -1; Dialog::directing = false; cameramode = 0; @@ -5936,8 +5920,8 @@ void Game::Tick() Person::players[i]->targetheadpitch = Person::players[i]->lookpitch; } if (Dialog::inDialog()) { - Person::players[i]->targetheadyaw = 180 - roughDirection(Dialog::currentBox().participantfacing[i]); - Person::players[i]->targetheadpitch = pitchOf(Dialog::currentBox().participantfacing[i]); + Person::players[i]->targetheadyaw = 180 - roughDirection(Dialog::currentScene().participantfacing[i]); + Person::players[i]->targetheadpitch = pitchOf(Dialog::currentScene().participantfacing[i]); } if (leveltime < .5)