diff options
Diffstat (limited to 'tools/create_hugo/create_hugo.h')
-rw-r--r-- | tools/create_hugo/create_hugo.h | 555 |
1 files changed, 0 insertions, 555 deletions
diff --git a/tools/create_hugo/create_hugo.h b/tools/create_hugo/create_hugo.h deleted file mode 100644 index f30c186877..0000000000 --- a/tools/create_hugo/create_hugo.h +++ /dev/null @@ -1,555 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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 CREATE_HUGO_H -#define CREATE_HUGO_H - -#define ARRAYSIZE(x) ((int)(sizeof(x) / sizeof(x[0]))) - -#define DATAALIGNMENT 4 - -#define HUGO_DAT_VER_MAJ 0 // 1 byte -#define HUGO_DAT_VER_MIN 42 // 1 byte - -typedef unsigned char uint8; -typedef unsigned char byte; -typedef unsigned short uint16; -typedef signed short int16; - -// Structure to define an EXIT or other collision-activated hotspot -struct hotspot_t { - int screenIndex; // Screen in which hotspot appears - int x1, y1, x2, y2; // Bounding box of hotspot - uint16 actIndex; // Index of the action list to carry out if a 'hit' - int16 viewx, viewy, direction; // Used in auto-route mode -}; - -struct target_t { // Secondary target for action - uint16 nounIndex; // Index of the noun - uint16 verbIndex; // Index of the verb -}; - -#define MAX_TARGET 12 // Max # secondary "MakeUseOf" targets - -struct uses_t { // Define uses of certain objects - int16 objid; // Primary object - uint16 dataIndex; // Index of the string if no secondary object matches - target_t targets[MAX_TARGET]; // List of secondary targets -}; - -// Following is structure of verbs and nouns for 'background' objects -// These are objects that appear in the various screens, but nothing -// interesting ever happens with them. Rather than just be dumb and say -// "don't understand" we produce an interesting msg to keep user sane. -struct background_t { - uint16 verbIndex; // Index of the verb - uint16 nounIndex; // Index of the noun - int commentIndex; // Index of comment produced on match - bool matchFl; // TRUE if noun must match when present - byte roomState; // "State" of room. Comments might differ. - byte bonusIndex; // Index of bonus score (0 = no bonus) -}; - -typedef background_t *objectList_t; - -struct cmd { - uint16 verbIndex; // Index of the verb - uint16 reqIndex; // Index of the list of required objects - uint16 textDataNoCarryIndex; // Index of the string if any of above not carried - byte reqstate; // required state for verb to be done - byte newstate; // new states if verb done - uint16 textDataWrongIndex; // Index of the string if wrong state - uint16 textDataDoneIndex; // Index of the string if verb done - uint16 actIndex; // Index of the action list if verb done -}; - -struct seq_t { // Linked list of images - byte *imagePtr; // ptr to image - uint16 bytesPerLine8; // bytes per line (8 bits) - uint16 lines; // lines - uint16 x1, x2, y1, y2; // Offsets from x,y: data bounding box - seq_t *nextSeqPtr; // ptr to next record -}; - -struct seqList_t { - uint16 imageNbr; // Number of images in sequence - seq_t *seqPtr; // Ptr to sequence structure -}; - -#define MAX_SEQUENCES 4 // Number of sequences of images in object -struct object_t { - uint16 nounIndex; // String identifying object - uint16 dataIndex; // String describing the object - uint16 *stateDataIndex; // Added by Strangerke to handle the LOOK_S state-dependant descriptions - path_t pathType; // Describe path object follows - int vxPath, vyPath; // Velocity (e.g. for CHASE) - uint16 actIndex; // Action list to do on collision with hero - byte seqNumb; // Number of sequences in list - seq_t *currImagePtr; // Sequence image currently in use - seqList_t seqList[MAX_SEQUENCES]; // Array of sequence structure ptrs and lengths - cycle_t cycling; // Whether cycling, forward or backward - byte cycleNumb; // No. of times to cycle - byte frameInterval; // Interval (in ticks) between frames - byte frameTimer; // Decrementing timer for above - char radius; // Defines sphere of influence by hero - byte screenIndex; // Screen in which object resides - int x, y; // Current coordinates of object - int oldx, oldy; // Previous coordinates of object - char vx, vy; // Velocity - byte objValue; // Value of object - int genericCmd; // Bit mask of 'generic' commands for object - uint16 cmdIndex; // ptr to list of cmd structures for verbs - bool carriedFl; // TRUE if object being carried - byte state; // state referenced in cmd list - bool verbOnlyFl; // TRUE if verb-only cmds allowed e.g. sit,look - byte priority; // Whether object fore, background or floating - int16 viewx, viewy; // Position to view object from (or 0 or -1) - int16 direction; // Direction to view object from - byte curSeqNumb; // Save which seq number currently in use - byte curImageNumb; // Save which image of sequence currently in use - char oldvx; // Previous vx (used in wandering) - char oldvy; // Previous vy -}; - -struct act0 { // Type 0 - Schedule - byte actType; // The type of action - int timer; // Time to set off the action - uint16 actIndex; // Index of an action list -}; - -struct act1 { // Type 1 - Start an object - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - int cycleNumb; // Number of times to cycle - cycle_t cycle; // Direction to start cycling -}; - -struct act2 { // Type 2 - Initialise an object coords - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - int x, y; // Coordinates -}; - -struct act3 { // Type 3 - Prompt user for text - byte actType; // The type of action - int timer; // Time to set off the action - uint16 promptIndex; // index of prompt string - int *responsePtr; // Array of indexes to valid response - // string(s) (terminate list with -1) - uint16 actPassIndex; // Index of the action list if success - uint16 actFailIndex; // Index of the action list if failure - bool encoded; // (HUGO 1 DOS ONLY) Whether response is encoded or not -}; - -struct act4 { // Type 4 - Set new background color - byte actType; // The type of action - int timer; // Time to set off the action - long newBkgColor; // New color -}; - -struct act5 { // Type 5 - Initialise an object velocity - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - int vx, vy; // velocity -}; - -struct act6 { // Type 6 - Initialise an object carrying - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - bool carriedFl; // carrying -}; - -struct act7 { // Type 7 - Initialise an object to hero's coords - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number -}; - -struct act8 { // Type 8 - switch to new screen - byte actType; // The type of action - int timer; // Time to set off the action - int screenIndex; // The new screen number -}; - -struct act9 { // Type 9 - Initialise an object state - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - byte newState; // New state -}; - -struct act10 { // Type 10 - Initialise an object path type - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - int newPathType; // New path type - char vxPath, vyPath; // Max delta velocities e.g. for CHASE -}; - -struct act11 { // Type 11 - Conditional on object's state - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - byte stateReq; // Required state - uint16 actPassIndex; // Index of the action list if success - uint16 actFailIndex; // Index of the action list if failure -}; - -struct act12 { // Type 12 - Simple text box - byte actType; // The type of action - int timer; // Time to set off the action - int stringIndex; // Index (enum) of string in strings.dat -}; - -struct act13 { // Type 13 - Swap first object image with second - byte actType; // The type of action - int timer; // Time to set off the action - int obj1; // Index of first object - int obj2; // 2nd -}; - -struct act14 { // Type 14 - Conditional on current screen - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The required object - int screenReq; // The required screen number - uint16 actPassIndex; // Index of the action list if success - uint16 actFailIndex; // Index of the action list if failure -}; - -struct act15 { // Type 15 - Home in on an object - byte actType; // The type of action - int timer; // Time to set off the action - int obj1; // The object number homing in - int obj2; // The object number to home in on - char vx, vy; // Max delta velocities -}; -// Note: Don't set a sequence at time 0 of a new screen, it causes -// problems clearing the boundary bits of the object! t>0 is safe -struct act16 { // Type 16 - Set curr_seq_p to seq - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - int seqIndex; // The index of seq array to set to -}; - -struct act17 { // Type 17 - SET obj individual state bits - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - int stateMask; // The mask to OR with current obj state -}; - -struct act18 { // Type 18 - CLEAR obj individual state bits - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - int stateMask; // The mask to ~AND with current obj state -}; - -struct act19 { // Type 19 - TEST obj individual state bits - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - int stateMask; // The mask to AND with current obj state - uint16 actPassIndex; // Index of the action list (all bits set) - uint16 actFailIndex; // Index of the action list (not all set) -}; - -struct act20 { // Type 20 - Remove all events with this type of action - byte actType; // The type of action - int timer; // Time to set off the action - byte actTypeDel; // The action type to remove -}; - -struct act21 { // Type 21 - Gameover. Disable hero & commands - byte actType; // The type of action - int timer; // Time to set off the action -}; - -struct act22 { // Type 22 - Initialise an object to hero's coords - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number -}; - -struct act23 { // Type 23 - Exit game back to DOS - byte actType; // The type of action - int timer; // Time to set off the action -}; - -struct act24 { // Type 24 - Get bonus score - byte actType; // The type of action - int timer; // Time to set off the action - int pointIndex; // Index into points array -}; - -struct act25 { // Type 25 - Conditional on bounding box - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The required object number - int x1, y1, x2, y2; // The bounding box - uint16 actPassIndex; // Index of the action list if success - uint16 actFailIndex; // Index of the action list if failure -}; - -struct act26 { // Type 26 - Play a sound - byte actType; // The type of action - int timer; // Time to set off the action - int16 soundIndex; // Sound index in data file -}; - -struct act27 { // Type 27 - Add object's value to score - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // object number -}; - -struct act28 { // Type 28 - Subtract object's value from score - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // object number -}; - -struct act29 { // Type 29 - Conditional on object carried - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The required object number - uint16 actPassIndex; // Index of the action list if success - uint16 actFailIndex; // Index of the action list if failure -}; - -struct act30 { // Type 30 - Start special maze processing - byte actType; // The type of action - int timer; // Time to set off the action - byte mazeSize; // Size of (square) maze - int x1, y1, x2, y2; // Bounding box of maze - int x3, x4; // Extra x points for perspective correction - byte firstScreenIndex; // First (top left) screen of maze -}; - -struct act31 { // Type 31 - Exit special maze processing - byte actType; // The type of action - int timer; // Time to set off the action -}; - -struct act32 { // Type 32 - Init fbg field of object - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - byte priority; // Value of foreground/background field -}; - -struct act33 { // Type 33 - Init screen field of object - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - int screenIndex; // Screen number -}; - -struct act34 { // Type 34 - Global Schedule - byte actType; // The type of action - int timer; // Time to set off the action - uint16 actIndex; // Index of an action list -}; - -struct act35 { // Type 35 - Remappe palette - byte actType; // The type of action - int timer; // Time to set off the action - int16 oldColorIndex; // Old color index, 0..15 - int16 newColorIndex; // New color index, 0..15 -}; - -struct act36 { // Type 36 - Conditional on noun mentioned - byte actType; // The type of action - int timer; // Time to set off the action - uint16 nounIndex; // The required noun (list) - uint16 actPassIndex; // Index of the action list if success - uint16 actFailIndex; // Index of the action list if failure -}; - -struct act37 { // Type 37 - Set new screen state - byte actType; // The type of action - int timer; // Time to set off the action - int screenIndex; // The screen number - byte newState; // The new state -}; - -struct act38 { // Type 38 - Position lips - byte actType; // The type of action - int timer; // Time to set off the action - int lipsObjNumb; // The LIPS object - int objNumb; // The object to speak - byte dxLips; // Relative offset of x - byte dyLips; // Relative offset of y -}; - -struct act39 { // Type 39 - Init story mode - byte actType; // The type of action - int timer; // Time to set off the action - bool storyModeFl; // New state of story_mode flag -}; - -struct act40 { // Type 40 - Unsolicited text box - byte actType; // The type of action - int timer; // Time to set off the action - int stringIndex; // Index (enum) of string in strings.dat -}; - -struct act41 { // Type 41 - Conditional on bonus scored - byte actType; // The type of action - int timer; // Time to set off the action - int BonusIndex; // Index into bonus list - uint16 actPassIndex; // Index of the action list if scored for the first time - uint16 actFailIndex; // Index of the action list if already scored -}; - -struct act42 { // Type 42 - Text box with "take" string - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object taken -}; - -struct act43 { // Type 43 - Prompt user for Yes or No - byte actType; // The type of action - int timer; // Time to set off the action - int prompt; // Index of prompt string - uint16 actYesIndex; // Index of the action list if YES - uint16 actNoIndex; // Index of the action list if NO -}; - -struct act44 { // Type 44 - Stop any route in progress - byte actType; // The type of action - int timer; // Time to set off the action -}; - -struct act45 { // Type 45 - Conditional on route in progress - byte actType; // The type of action - int timer; // Time to set off the action - int routeIndex; // Must be >= current status.rindex - uint16 actPassIndex; // Index of the action list if en-route - uint16 actFailIndex; // Index of the action list if not -}; - -struct act46 { // Type 46 - Init status.jumpexit - byte actType; // The type of action - int timer; // Time to set off the action - bool jumpExitFl; // New state of jumpexit flag -}; - -struct act47 { // Type 47 - Init viewx,viewy,dir - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object - int16 viewx; // object.viewx - int16 viewy; // object.viewy - int16 direction; // object.dir -}; - -struct act48 { // Type 48 - Set curr_seq_p to frame n - byte actType; // The type of action - int timer; // Time to set off the action - int objNumb; // The object number - int seqIndex; // The index of seq array to set to - int frameIndex; // The index of frame to set to -}; - -struct act49 { // Added by Strangerke - Type 79 - Play a sound (DOS way) - byte actType; // The type of action - int timer; // Time to set off the action - uint16 songIndex; // Song index in string array -}; - -union act { - act0 a0; - act1 a1; - act2 a2; - act3 a3; - act4 a4; - act5 a5; - act6 a6; - act7 a7; - act8 a8; - act9 a9; - act10 a10; - act11 a11; - act12 a12; - act13 a13; - act14 a14; - act15 a15; - act16 a16; - act17 a17; - act18 a18; - act19 a19; - act20 a20; - act21 a21; - act22 a22; - act23 a23; - act24 a24; - act25 a25; - act26 a26; - act27 a27; - act28 a28; - act29 a29; - act30 a30; - act31 a31; - act32 a32; - act33 a33; - act34 a34; - act35 a35; - act36 a36; - act37 a37; - act38 a38; - act39 a39; - act40 a40; - act41 a41; - act42 a42; - act43 a43; - act44 a44; - act45 a45; - act46 a46; - act47 a47; - act48 a48; - act49 a49; -}; - -typedef void *actListPtr; // Ptr to a list of actions -typedef actListPtr *actList; // A list of actions - -void writeTextArray(FILE *outFile, const char *textData[], int nbrText); -void writeUint16Array(FILE *outFile, const uint16 *uint16Array[], int nbrElem); -void writeHotspot(FILE *outFile, const hotspot_t hotspots[], int nbrElem); -void writeUseArray(FILE *outFile, const uses_t uses[], int nbrElem); -void writeBackgroundArray(FILE *outFile, const background_t background[], int nbrElem); -void writeCmdArray(FILE *outFile, const cmd *cmdList[], int nbrElem); -void writeScreenActs(FILE *outFile, const uint16 *screenActs[], int nbrElem); -void writeObjectArray(FILE *outFile, const object_t objects[], int nbrElem); -void writeActListArray(FILE *outFile, const actList actListArr[], int nbrElem); - -#endif // CREATE_HUGO_H |