#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()
{
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;
// SkyBox skybox;
cameramode = 0;
- cameratogglekeydown = 0;
- chattogglekeydown = 0;
olddrawmode = 0;
drawmode = 0;
- drawmodetogglekeydown = 0;
- explodetogglekeydown = 0;
- detailtogglekeydown = 0;
firstload = 0;
oldbutton = 0;
*/
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;
// XYZ cameraloc;
cameradist = 0;
- envtogglekeydown = 0;
- slomotogglekeydown = 0;
- texturesizetogglekeydown = 0;
- freezetogglekeydown = 0;
drawtoggle = 0;
editorenabled = 0;
scoreadded = 0;
numchallengelevels = 0;
- console = 0;
+ console = false;
archiveselected = 0;
memset(consoletext, 0, sizeof(consoletext));
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;
+ consolekey = 0;
oldattackkey = 0;
loading = 0;
} 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) {
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)--;
(*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)++;
break;
case 8: attackkey=keycode;
break;
+ case 9: consolekey=keycode;
+ break;
default:
break;
}