X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGame.cpp;h=77b9a5b21cda64a480dc3f230f8c129fba868934;hb=72621d52ae69fa4ecb4329437810d71860ae3ebc;hp=241914c63b716d0734d25cd5fa0c0dcf390134df;hpb=1df9856bb875811f00e685eb185c54fd0a828276;p=lugaru.git diff --git a/Source/Game.cpp b/Source/Game.cpp index 241914c..77b9a5b 100644 --- a/Source/Game.cpp +++ b/Source/Game.cpp @@ -3,11 +3,28 @@ #include "SDL_thread.h" extern int mainmenu; -extern OPENAL_SAMPLE *samp[100]; -extern int channels[100]; -extern "C" void PlaySoundEx(int channel, OPENAL_SAMPLE *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused); - +int numdialogues; +int numdialogueboxes[max_dialogues]; +int dialoguetype[max_dialogues]; +int dialogueboxlocation[max_dialogues][max_dialoguelength]; +float dialogueboxcolor[max_dialogues][max_dialoguelength][3]; +int dialogueboxsound[max_dialogues][max_dialoguelength]; +char dialoguetext[max_dialogues][max_dialoguelength][128]; +char dialoguename[max_dialogues][max_dialoguelength][64]; +XYZ dialoguecamera[max_dialogues][max_dialoguelength]; +XYZ participantlocation[max_dialogues][10]; +int participantfocus[max_dialogues][max_dialoguelength]; +int participantaction[max_dialogues][max_dialoguelength]; +float participantrotation[max_dialogues][10]; +XYZ participantfacing[max_dialogues][max_dialoguelength][10]; +float dialoguecamerarotation[max_dialogues][max_dialoguelength]; +float dialoguecamerarotation2[max_dialogues][max_dialoguelength]; +int indialogue; +int whichdialogue; +int directing; +float dialoguetime; +int dialoguegonethrough[20]; Game::Game() { @@ -33,16 +50,8 @@ Game::Game() memset(endy, 0, sizeof(endy)); memset(selectedlong, 0, sizeof(selectedlong)); - memset(offsetx, 0, sizeof(offsetx)); - memset(offsety, 0, sizeof(offsety)); - memset(movex, 0, sizeof(movex)); - memset(movey, 0, sizeof(movey)); - memset(endy, 0, sizeof(endy)); - transition = 0; - anim = 0; selected = 0; - loaddistrib = 0; keyselect = 0; indemo = 0; @@ -67,13 +76,8 @@ Game::Game() // SkyBox skybox; cameramode = 0; - cameratogglekeydown = 0; - chattogglekeydown = 0; olddrawmode = 0; drawmode = 0; - drawmodetogglekeydown = 0; - explodetogglekeydown = 0; - detailtogglekeydown = 0; firstload = 0; oldbutton = 0; @@ -95,30 +99,8 @@ Game::Game() */ stealthloading = 0; - campaignnumlevels = 0; - - memset(campaignmapname, 0, sizeof(campaignmapname)); - memset(campaigndescription, 0, sizeof(campaigndescription)); - memset(campaignchoosenext, 0, sizeof(campaignchoosenext)); - memset(campaignnumnext, 0, sizeof(campaignnumnext)); - memset(campaignnextlevel, 0, sizeof(campaignnextlevel)); - int campaignchoicesmade; - memset(campaignchoices, 0, sizeof(campaignchoices)); - memset(campaignlocationx, 0, sizeof(campaignlocationx)); - memset(campaignlocationy, 0, sizeof(campaignlocationy)); - memset(campaignlocationy, 0, sizeof(campaignlocationy)); - - campaignchoicenum = 0; - - memset(campaignchoicewhich, 0, sizeof(campaignchoicewhich)); - whichchoice = 0; - - numlevelspassed = 0; - - memset(levelorder, 0, sizeof(levelorder)); - memset(levelvisible, 0, sizeof(levelvisible)); - memset(levelhighlight, 0, sizeof(levelhighlight)); + actuallevel = 0; minimap = 0; @@ -137,10 +119,6 @@ Game::Game() // XYZ cameraloc; cameradist = 0; - envtogglekeydown = 0; - slomotogglekeydown = 0; - texturesizetogglekeydown = 0; - freezetogglekeydown = 0; drawtoggle = 0; editorenabled = 0; @@ -164,7 +142,7 @@ Game::Game() scoreadded = 0; numchallengelevels = 0; - console = 0; + console = false; archiveselected = 0; memset(consoletext, 0, sizeof(consoletext)); @@ -177,13 +155,9 @@ Game::Game() displayblink = 0; displayselected = 0; consolekeydown = 0; - consoletogglekeydown = 0; consoleblinkdelay = 0; consoleblink = 0; consoleselected = 0; -// memset(togglekey, 0, sizeof(togglekey)); -// memset(togglekeydelay, 0, sizeof(togglekeydelay)); - registernow = 0; autocam = 0; crouchkey = 0,jumpkey = 0,forwardkey = 0,chatkey = 0,backkey = 0,leftkey = 0,rightkey = 0,drawkey = 0,throwkey = 0,attackkey = 0; @@ -219,14 +193,7 @@ typedef struct { } params_thread; void Game::fireSound(int sound) { - float gLoc[3]={0,0,0}; - float vel[3]={0,0,0}; - OPENAL_Sample_SetMinMaxDistance(samp[sound], 9999.0f, 99999.0f); - PlaySoundEx( sound, samp[sound], NULL, true); - OPENAL_3D_SetAttributes(channels[sound], gLoc, vel); - OPENAL_SetVolume(channels[sound], 256); - OPENAL_SetPaused(channels[sound], false); - OPENAL_Sample_SetMinMaxDistance(samp[sound], 8.0f, 2000.0f); + emit_sound_at(sound); } void Game::inputText(char* str, int* charselected, int* nb_chars) { @@ -244,27 +211,30 @@ void Game::inputText(char* str, int* charselected, int* nb_chars) { switch(evenement.type) { case SDL_KEYDOWN: if(evenement.key.keysym.sym == SDLK_ESCAPE) { - for(i=0;i<255;i++){ - str[i]=' '; - } + for(i=0;i<255;i++) + str[i]=0; *nb_chars=0; *charselected=0; waiting=false; } else if(evenement.key.keysym.sym==SDLK_BACKSPACE){ if((*charselected)!=0) { - for(i=(*charselected)-1;i<255;i++){ + for(i=(*charselected)-1;i<255;i++) str[i]=str[i+1]; - } - str[255]=' '; + str[255]=0; (*charselected)--; (*nb_chars)--; } } else if(evenement.key.keysym.sym==SDLK_DELETE){ - for(i=(*charselected);i<255;i++){ - str[i]=str[i+1]; - } - str[255]=' '; - (*nb_chars)--; + if((*charselected)<(*nb_chars)){ + for(i=(*charselected);i<255;i++) + str[i]=str[i+1]; + str[255]=0; + (*nb_chars)--; + } + } else if(evenement.key.keysym.sym==SDLK_HOME){ + (*charselected)=0; + } else if(evenement.key.keysym.sym==SDLK_END){ + (*charselected)=(*nb_chars); } else if(evenement.key.keysym.sym==SDLK_LEFT){ if((*charselected)!=0) (*charselected)--; @@ -273,10 +243,9 @@ void Game::inputText(char* str, int* charselected, int* nb_chars) { (*charselected)++; } else if(evenement.key.keysym.sym==SDLK_RETURN) { waiting=false; - } else if((evenement.key.keysym.unicode<127)&&((*nb_chars)<60)&&(evenement.key.keysym.sym!=SDLK_LSHIFT)&&(evenement.key.keysym.sym!=SDLK_RSHIFT)) { - for(i=255;i>=(*charselected)+1;i--){ + } else if(evenement.key.keysym.unicode>=32&&evenement.key.keysym.unicode<127&&(*nb_chars)<60){ + for(i=255;i>=(*charselected)+1;i--) str[i]=str[i-1]; - } str[*charselected]=evenement.key.keysym.unicode; (*charselected)++; (*nb_chars)++;