X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGame.cpp;h=7efff10ea413b28276b053c00dfb6dee58b56db5;hb=e7b76642d8998c250272a8313ad8aa7c7efff319;hp=2f88d34cc6cad9a7f89b0149163d9b39423ba6eb;hpb=e2cad9c4ba05196efe03ab2fed8e51bafda53759;p=lugaru.git diff --git a/Source/Game.cpp b/Source/Game.cpp index 2f88d34..7efff10 100644 --- a/Source/Game.cpp +++ b/Source/Game.cpp @@ -1,52 +1,30 @@ /* Copyright (C) 2003, 2010 - Wolfire Games +Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file) This file is part of Lugaru. -Lugaru is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +Lugaru is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. -This program is distributed in the hope that it will be useful, +Lugaru is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -See the GNU General Public License for more details. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +along with Lugaru. If not, see . */ #include "Game.h" #include "openal_wrapper.h" #include "SDL_thread.h" +#include "Dialog.h" extern int mainmenu; -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 participantyaw[max_dialogues][10]; -XYZ participantfacing[max_dialogues][max_dialoguelength][10]; -float dialoguecamerayaw[max_dialogues][max_dialoguelength]; -float dialoguecamerapitch[max_dialogues][max_dialoguelength]; -int indialogue; -int whichdialogue; -int directing; -float dialoguetime; -int dialoguegonethrough[20]; - const char *pathtypenames[] = {"keepwalking", "pause"}; const char *editortypenames[] = { "active", "sitting", "sitting wall", "sleeping", @@ -134,10 +112,10 @@ std::string displaytext[15] = {}; float displaytime[15] = {}; float displayblinkdelay = 0; bool displayblink = 0; -int displayselected = 0; +unsigned displayselected = 0; float consoleblinkdelay = 0; bool consoleblink = 0; -int consoleselected = 0; +unsigned consoleselected = 0; unsigned short crouchkey = 0, jumpkey = 0, forwardkey = 0, backkey = 0, leftkey = 0, rightkey = 0, drawkey = 0, throwkey = 0, attackkey = 0; unsigned short consolekey = 0; @@ -157,7 +135,7 @@ void Game::fireSound(int sound) emit_sound_at(sound); } -void Game::inputText(string& str, int* charselected) +void Game::inputText(string& str, unsigned* charselected) { SDL_Event evenement; @@ -167,6 +145,10 @@ void Game::inputText(string& str, int* charselected) } while (SDL_PollEvent(&evenement)) { + if (!sdlEventProc(evenement)) { + tryquit = 1; + break; + } switch (evenement.type) { case SDL_TEXTEDITING: /* FIXME - We should handle this for complete input method support */