#include "SDL_thread.h"
extern int mainmenu;
-extern int channels[100];
-
+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;
+ winhotspot = false;
+ windialogue = false;
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;
void Game::inputText(char* str, int* charselected, int* nb_chars) {
SDL_Event evenement;
- int i;
if(!waiting) {
waiting=true;
SDL_EnableUNICODE(true);
}
- SDL_PollEvent(&evenement);
+ while(SDL_PollEvent(&evenement)) {
- switch(evenement.type) {
- case SDL_KEYDOWN:
- if(evenement.key.keysym.sym == SDLK_ESCAPE) {
- for(i=0;i<255;i++){
- str[i]=' ';
- }
- *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++){
- str[i]=str[i+1];
+ switch(evenement.type) {
+ case SDL_KEYDOWN:
+ if(evenement.key.keysym.sym == SDLK_ESCAPE) {
+ for(int 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(int i=(*charselected)-1;i<255;i++)
+ str[i]=str[i+1];
+ str[255]=0;
+ (*charselected)--;
+ (*nb_chars)--;
}
- str[255]=' ';
- (*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)--;
- } else if(evenement.key.keysym.sym==SDLK_LEFT){
- if((*charselected)!=0)
- (*charselected)--;
- } else if(evenement.key.keysym.sym==SDLK_RIGHT){
- if((*charselected)<(*nb_chars))
+ } else if(evenement.key.keysym.sym==SDLK_DELETE){
+ if((*charselected)<(*nb_chars)){
+ for(int 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)--;
+ } else if(evenement.key.keysym.sym==SDLK_RIGHT){
+ if((*charselected)<(*nb_chars))
+ (*charselected)++;
+ } else if(evenement.key.keysym.sym==SDLK_RETURN) {
+ waiting=false;
+ } else if(evenement.key.keysym.unicode>=32&&evenement.key.keysym.unicode<127&&(*nb_chars)<60){
+ for(int i=255;i>=(*charselected)+1;i--)
+ str[i]=str[i-1];
+ str[*charselected]=evenement.key.keysym.unicode;
(*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--){
- str[i]=str[i-1];
+ (*nb_chars)++;
}
- str[*charselected]=evenement.key.keysym.unicode;
- (*charselected)++;
- (*nb_chars)++;
- }
- break;
+ break;
+ }
}
if(!waiting) {
break;
case 8: attackkey=keycode;
break;
+ case 9: consolekey=keycode;
+ break;
default:
break;
}