ScummVM API documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
runtime_defines.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef AGS_ENGINE_AC_RUNTIME_DEFINES_H
23 #define AGS_ENGINE_AC_RUNTIME_DEFINES_H
24 
25 #include "ags/shared/ac/common_defines.h"
26 
27 namespace AGS3 {
28 
29 // xalleg.h pulls in an Allegro-internal definition of MAX_TIMERS which
30 // conflicts with the definition in runtime_defines.h. Forget it.
31 #ifdef MAX_TIMERS
32 #undef MAX_TIMERS
33 #endif
34 
35 // Max old-style script string length
36 #define MAX_MAXSTRLEN 200
37 #define MAXGLOBALVARS 50
38 
39 #define INVALID_X 30000
40 #define MAXGSVALUES 500
41 #define MAXGLOBALSTRINGS 51
42 #define MAX_INVORDER 500
43 #define DIALOG_NONE 0
44 #define DIALOG_RUNNING 1
45 #define DIALOG_STOP 2
46 #define DIALOG_NEWROOM 100
47 #define DIALOG_NEWTOPIC 12000
48 #define MAX_TIMERS 21
49 #define MAX_PARSED_WORDS 15
50 // how many saves may be listed at once
51 #define MAXSAVEGAMES 50
52 // topmost save index to be listed with a FillSaveGameList command
53 // NOTE: changing this may theoretically affect older games which
54 // use slots > 99 for special purposes!
55 #define TOP_LISTEDSAVESLOT 99
56 #define MAX_QUEUED_MUSIC 10
57 #define GLED_INTERACTION 1
58 #define GLED_EFFECTS 2
59 #define QUEUED_MUSIC_REPEAT 10000
60 #define MAX_AUDIO_TYPES 30
61 
62 // Legacy (pre 3.5.0) alignment types used in the script API
63 enum LegacyScriptAlignment {
64  kLegacyScAlignLeft = 1,
65  kLegacyScAlignCentre = 2,
66  kLegacyScAlignRight = 3
67 };
68 
69 const int LegacyMusicMasterVolumeAdjustment = 60;
70 const int LegacyRoomVolumeFactor = 30;
71 
72 // Common command arguments
73 // HISTORICAL NOTE: These numbers were chosen arbitrarily -- the idea is
74 // to make sure that the user gets the parameters the right way round
75 // Walk (pathfinding) modes
76 #define ANYWHERE 304
77 #define WALKABLE_AREAS 305
78 // Blocking / non-blocking action
79 #define BLOCKING 919
80 #define IN_BACKGROUND 920
81 // Direction of animation
82 #define FORWARDS 1062
83 #define BACKWARDS 1063
84 // Stop / don't stop when changing a view
85 #define STOP_MOVING 1
86 #define KEEP_MOVING 0
87 
88 #define SCR_NO_VALUE 31998
89 #define SCR_COLOR_TRANSPARENT -1
90 
91 
92 #define TXT_SCOREBAR 29
93 #define MAXSCORE _GP(play).totalscore
94 
95 #define FONT_STATUSBAR 0
96 #define FONT_NORMAL _GP(play).normal_font
97 //#define FONT_SPEECHBACK 1
98 #define FONT_SPEECH _GP(play).speech_font
99 
100 // Standard interaction verbs (aka cursor modes)
101 #define MODE_NONE -1
102 #define MODE_WALK 0
103 #define MODE_LOOK 1
104 #define MODE_HAND 2
105 #define MODE_TALK 3
106 #define MODE_USE 4
107 #define MODE_PICKUP 5
108 // aka MODE_POINTER
109 #define CURS_ARROW 6
110 // aka MODE_WAIT
111 #define CURS_WAIT 7
112 #define MODE_CUSTOM1 8
113 #define MODE_CUSTOM2 9
114 #define NUM_STANDARD_VERBS 10
115 
116 // Fixed Overlay IDs
117 #define OVER_TEXTMSG 1
118 #define OVER_COMPLETE 2
119 #define OVER_PICTURE 3
120 #define OVER_TEXTSPEECH 4
121 #define OVER_FIRSTFREE 5
122 #define OVER_CUSTOM -1
123 // Overlay parameters
124 #define OVR_AUTOPLACE 30000
125 
126 #define FOR_ANIMATION 1
127 #define FOR_SCRIPT 2
128 #define FOR_EXITLOOP 3
129 
130 // an actsps index offset for characters
131 #define ACTSP_OBJSOFF (MAX_ROOM_OBJECTS)
132 // a 1-based movelist index offset for characters
133 #define CHMLSOFFS (1 + MAX_ROOM_OBJECTS)
134 #define MAX_SCRIPT_AT_ONCE 10
135 #define EVENT_NONE 0
136 #define EVENT_INPROGRESS 1
137 #define EVENT_CLAIMED 2
138 
139 // Internal skip style flags, for speech/display, wait;
140  // theoretically correspond to InputType in script (with a 24-bit shift)
141 #define SKIP_NONE 0x00
142 #define SKIP_AUTOTIMER 0x01
143 #define SKIP_KEYPRESS 0x02
144 #define SKIP_MOUSECLICK 0x04
145 // Bit shift for packing skip type into result
146 #define SKIP_RESULT_TYPE_SHIFT 24
147 // Bit mask for packing skip key/button data into result
148 #define SKIP_RESULT_DATA_MASK 0x00FFFFFF
149 
150 // The index base for characters, used in legacy AnimateObject script function;
151 // if passed ID is eq or gt than this, then a Character is animated instead
152 #define LEGACY_ANIMATE_CHARIDBASE 100
153 
154 #define STD_BUFFER_SIZE 3000
155 
156 // NOTE: these flags are merged with the MoveList index;
157 // but this means that the number of MoveList users will be limited by 1000
158 #define TURNING_AROUND 1000
159 #define TURNING_BACKWARDS 10000
160 
161 #define LOCTYPE_HOTSPOT 1
162 #define LOCTYPE_CHAR 2
163 #define LOCTYPE_OBJ 3
164 
165 #define MAX_DYNAMIC_SURFACES 20
166 
167 #define RESTART_POINT_SAVE_GAME_NUMBER 999
168 
169 #define MAX_OPEN_SCRIPT_FILES 10
170 
171 #define RETURN_CONTINUE 1
172 
173 } // namespace AGS3
174 
175 #endif
Definition: ags.h:40