1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
|
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef GLK_HUGO_DEFINES
#define GLK_HUGO_DEFINES
#include "common/scummsys.h"
namespace Glk {
namespace Hugo {
#define HEVERSION 3
#define HEREVISION 3
#define HEINTERIM ".0"
#define GLK
#define GRAPHICS_SUPPORTED
#define SOUND_SUPPORTED
#define SETTITLE_SUPPORTED
#define SAVEGAMEDATA_REPLACED
#define RESTOREGAMEDATA_REPLACED
// There's a bunch of debugging code in the original Hugo sources behind DEBUGGER defines,
// but doesn't actually have any implementation of them. I've put in some stub methods,
// with the idea that debugger code could eventually be hooked up to the ScummVM debugger.
// So for now the debugger defined is commented out, since with debugger enabled the games
// don't work properly
//#define DEBUGGER 1
#define MAXOBJLIST 32
#define MAX_CONTEXT_COMMANDS 32
#define MAX_EVAL_ELEMENTS 256
#define MAX_GAME_TITLE 64
#define MAX_DEBUG_LINE 256
#define MAX_OBJECT 999
#define MAX_PROPERTY 999
// maximum number of matchable object words
#define MAX_MOBJ 16
// Larger than normal since Glk doesn't break up paragraphs (1024+256)
#define MAXBUFFER 1280
#define MAXUNDO 1024
#define MAXCALLS 99
#define MAXBREAKPOINTS 99
#define MAX_CODE_HISTORY 99
#define MAX_RES_PATH 255
#define MAXRES 1024
#define CHARWIDTH 1
#define HUGO_FILE strid_t
#define MAXPATH 256
#define MAXFILENAME 256
#define MAXDRIVE 256
#define MAXDIR 256
#define MAXEXT 256
#define DEF_PRN ""
#define DEF_FCOLOR 0
#define DEF_BGCOLOR 15
#define DEF_SLFCOLOR 15
#define DEF_SLBGCOLOR 1
/* These static values are not changeable--they depend largely on internals of the Engine. */
#define MAXATTRIBUTES 128
#define MAXGLOBALS 240
#define MAXLOCALS 16
#define MAXPOBJECTS 256 /* contenders for disambiguation */
#define MAXWORDS 32 /* in an input line */
#define MAXSTACKDEPTH 256 /* for nesting {...} */
/* The positions of various data in the header: */
#define H_GAMEVERSION 0x00
#define H_ID 0x01
#define H_SERIAL 0x03
#define H_CODESTART 0x0B
#define H_OBJTABLE 0x0D /* data tables */
#define H_PROPTABLE 0x0F
#define H_EVENTTABLE 0x11
#define H_ARRAYTABLE 0x13
#define H_DICTTABLE 0x15
#define H_SYNTABLE 0x17
#define H_INIT 0x19 /* junction routines */
#define H_MAIN 0x1B
#define H_PARSE 0x1D
#define H_PARSEERROR 0x1F
#define H_FINDOBJECT 0x21
#define H_ENDGAME 0x23
#define H_SPEAKTO 0x25
#define H_PERFORM 0x27
#define H_TEXTBANK 0x29
/* additional debugger header information */
#define H_DEBUGGABLE 0x3A
#define H_DEBUGDATA 0x3B
#define H_DEBUGWORKSPACE 0x3E
/* Printing control codes--embedded in strings printed by AP(). */
#define FONT_CHANGE 1
#define COLOR_CHANGE 2
#define NO_CONTROLCHAR 3
#define NO_NEWLINE 30
#define FORCED_SPACE 31 /* Can't be <= # colors/font codes + 1
(See AP() for the reason) */
/* Font control codes--these bitmasks follow FONT_CHANGE codes. */
#define NORMAL_FONT 0
#define BOLD_FONT 1
#define ITALIC_FONT 2
#define UNDERLINE_FONT 4
#define PROP_FONT 8
/* CHAR_TRANSLATION is simply a value that is added to an ASCII character
in order to encode the text, i.e., make it unreadable to casual
browsing.
*/
#define CHAR_TRANSLATION 0x14
/* Passed to GetWord() */
#define PARSE_STRING_VAL 0xFFF0
#define SERIAL_STRING_VAL 0xFFF1
/* Returned by FindWord() */
#define UNKNOWN_WORD 0xFFFF
/* Bitmasks for certain qualities of properties */
#define ADDITIVE_FLAG 1
#define COMPLEX_FLAG 2
/* Property-table indicators */
#define PROP_END 255
#define PROP_ROUTINE 255
#define MEM(addr) (mem[addr])
#define SETMEM(addr, n) (mem[addr] = n)
#define GETMEMADDR(addr) (&mem[addr])
#define HUGO_PTR
#define RESET_STACK_DEPTH (-1)
#define RUNROUTINE_BLOCK 1
#define CONDITIONAL_BLOCK 2
#define DOWHILE_BLOCK 3
#define TAIL_RECURSION_ROUTINE (-1)
#define TAIL_RECURSION_PROPERTY (-2)
/* For system_status: */
#define STAT_UNAVAILABLE ((short)-1)
#define STAT_NOFILE 101
#define STAT_NORESOURCE 102
#define STAT_LOADERROR 103
#define PRINTFATALERROR(a) error("%s", a)
#define PIC 0
#define SND 1
#if defined (DEBUGGER)
#define VIEW_CALLS 0
#define VIEW_LOCALS 1
#define CODE_WINDOW 2
#define VIEW_BREAKPOINTS 3
#define VIEW_WATCH 4
#define FORCE_REDRAW 1
#endif
} // End of namespace Hugo
} // End of namespace Glk
#endif
|