aboutsummaryrefslogtreecommitdiff
path: root/queen/talk.h
diff options
context:
space:
mode:
Diffstat (limited to 'queen/talk.h')
-rw-r--r--queen/talk.h244
1 files changed, 0 insertions, 244 deletions
diff --git a/queen/talk.h b/queen/talk.h
deleted file mode 100644
index d1469e2fe8..0000000000
--- a/queen/talk.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/* ScummVM - Scumm Interpreter
- * Copyright (C) 2003-2006 The ScummVM project
- *
- * This program 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,
- * 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.
-
- * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-#ifndef QUEEN_TALK_H
-#define QUEEN_TALK_H
-
-#include "common/util.h"
-#include "queen/structs.h"
-
-namespace Queen {
-
-class QueenEngine;
-
-class Talk {
-public:
-
- //! Public interface to run a talk from a file
- static void talk(const char *filename, int personInRoom, char *cutawayFilename, QueenEngine *vm);
-
- //! Public interface to speak a sentence
- static bool speak(const char *sentence, Person *person, const char *voiceFilePrefix, QueenEngine *vm);
-
- //! Read a string from ptr and update offset
- static void getString(const byte *ptr, uint16 &offset, char *str, int maxLength, int align = 2);
-
-private:
-
- //! Collection of constants used by Talk
- enum {
- LINE_HEIGHT = 10,
- MAX_STRING_LENGTH = 255,
- MAX_STRING_SIZE = (MAX_STRING_LENGTH + 1),
- MAX_TEXT_WIDTH = (320-18),
- PUSHUP = 4,
- ARROW_ZONE_UP = 5,
- ARROW_ZONE_DOWN = 6,
- DOG_HEADER_SIZE = 20,
- OPTION_TEXT_MARGIN = 24
- };
-
- //! Special commands for speech
- enum {
- SPEAK_DEFAULT = 0,
- SPEAK_FACE_LEFT = -1,
- SPEAK_FACE_RIGHT = -2,
- SPEAK_FACE_FRONT = -3,
- SPEAK_FACE_BACK = -4,
- SPEAK_ORACLE = -5,
- SPEAK_UNKNOWN_6 = -6,
- SPEAK_AMAL_ON = -7,
- SPEAK_PAUSE = -8,
- SPEAK_NONE = -9
- };
-
- struct DialogueNode {
- int16 head;
- int16 dialogueNodeValue1;
- int16 gameStateIndex;
- int16 gameStateValue;
- };
-
-#ifndef PALMOS_68K
- struct SpeechParameters {
- const char *name;
- signed char state,faceDirection;
- signed char body,bf,rf,af;
- const char *animation;
- signed char ff;
- };
-#else
-public:
- struct SpeechParameters {
- const char name[11];
- signed char state,faceDirection;
- signed char body,bf,rf,af;
- const char animation[80];
- signed char ff;
- };
-private:
-#endif
-
- QueenEngine *_vm;
-
- bool _wasFullscren;
-
- //! Raw .dog file data (without 20 byte header)
- byte *_fileData;
-
- //! Number of dialogue levels
- int16 _levelMax;
-
- //! Unique key for this dialogue
- int16 _uniqueKey;
-
- //! Used to select voice files
- int16 _talkKey;
-
- int16 _jMax;
-
- //! Used by findDialogueString
- int16 _pMax;
-
- // Update game state efter dialogue
- int16 _gameState[2];
- int16 _testValue[2];
- int16 _itemNumber[2];
-
- //! String data
- uint16 _person1PtrOff;
-
- //! Cutaway data
- uint16 _cutawayPtrOff;
-
- //! Data used if we have talked to the person before
- uint16 _person2PtrOff;
-
- //! Data used if we haven't talked to the person before
- uint16 _joePtrOff;
-
- //! Is a talking head
- bool _talkHead;
-
- //! IDs for sentences
- DialogueNode _dialogueTree[18][6];
-
- //! Greeting from person Joe has talked to before
- char _person2String[MAX_STRING_SIZE];
-
- int _oldSelectedSentenceIndex;
- int _oldSelectedSentenceValue;
-
- char _talkString[5][MAX_STRING_SIZE];
- char _joeVoiceFilePrefix[5][MAX_STRING_SIZE];
-
-#ifndef PALMOS_68K
- static const SpeechParameters _speechParameters[];
-#endif
-
- Talk(QueenEngine *vm);
- ~Talk();
-
- //! Perform talk in file and return a cutaway filename
- void talk(const char *filename, int personInRoom, char *cutawayFilename);
-
- byte *loadDialogFile(const char *filename);
-
- //! Load talk data from .dog file
- void load(const char *filename);
-
- //! First things spoken
- void initialTalk();
-
- //! Find a string in the dialogue tree
- void findDialogueString(uint16 offset, int16 id, int16 max, char *str);
-
- //! Get TalkSelected struct for this talk
- TalkSelected *talkSelected();
-
- //! Interface to the TalkSelected struct
- bool hasTalkedTo() { return talkSelected()->hasTalkedTo; }
-
- //! Interface to the TalkSelected struct
- void setHasTalkedTo() { talkSelected()->hasTalkedTo = true; }
-
- //! Get a selected value
- int16 selectedValue(int index) {
- return talkSelected()->values[index-1];
- }
-
- //! Set a selected value
- void selectedValue(int index, int16 value) {
- talkSelected()->values[index-1] = value;
- }
-
- //! The sentence will not be displayed again
- void disableSentence(int oldLevel, int selectedSentence);
-
- //! Select what to say
- int16 selectSentence();
-
- //! Speak sentence
- bool speak(const char *sentence, Person *person, const char *voiceFilePrefix);
-
- //! Convert command in sentence to command code
- int getSpeakCommand(const Person *person, const char *sentence, unsigned &index);
-
- //! Speak a part of a sentence
- void speakSegment(
- const char *segmentStart,
- int length,
- Person *person,
- int command,
- const char *voiceFilePrefix,
- int index);
-
- void headStringAnimation(const SpeechParameters *parameters, int bobNum, int bankNum);
-
- void stringAnimation(const SpeechParameters *parameters, int startFrame, int bankNum);
-
- void defaultAnimation(
- const char *segment,
- bool isJoe,
- const SpeechParameters *parameters,
- int startFrame,
- int bankNum);
-
- int countSpaces(const char *segment);
-
- //! Get special parameters for speech
- const SpeechParameters *findSpeechParameters(
- const char *name,
- int state,
- int faceDirection);
-
- int splitOption(const char *str, char optionText[5][MAX_STRING_SIZE]);
-
- int splitOptionHebrew(const char *str, char optionText[5][MAX_STRING_SIZE]);
-
- int splitOptionDefault(const char *str, char optionText[5][MAX_STRING_SIZE]);
-
-};
-
-} // End of namespace Queen
-
-#endif