Subversion Repositories Games.Carmageddon

Rev

Rev 18 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 pmbaty 1
#ifndef CONSTANTS_H
2
#define CONSTANTS_H
3
 
4
// These names are not part of the symbol dump, so the names in this file are not original, except as noted.
5
 
6
// Names from `gMem_names`. See also: `CreateStainlessClasses`
7
typedef enum dr_memory_classes {
8
    kMem_intf_pix_copy = 129,                                            //  0x81
9
    kMem_intf_pal_copy = 130,                                            //  0x82
10
    kMem_nodes_array = 131,                                              //  0x83
11
    kMem_sections_array = 132,                                           //  0x84
12
    kMem_key_names = 133,                                                //  0x85
13
    kMem_columns_z = 134,                                                //  0x86
14
    kMem_columns_x = 135,                                                //  0x87
15
    kMem_non_car_list = 136,                                             //  0x88
16
    kMem_simp_level = 137,                                               //  0x89
17
    kMem_crush_data = 138,                                               //  0x8a
18
    kMem_crush_neighbours = 139,                                         //  0x8b
19
    kMem_temp_fs = 140,                                                  //  0x8c
20
    kMem_error_pix_copy = 141,                                           //  0x8d
21
    kMem_error_pal_copy = 142,                                           //  0x8e
22
    kMem_flic_pal = 143,                                                 //  0x8f
23
    kMem_flic_data = 144,                                                //  0x90
24
    kMem_flic_data_2 = 145,                                              //  0x91
25
    kMem_queued_flic = 146,                                              //  0x92
26
    kFlic_panel_pixels = 147,                                            //  0x93
27
    kMem_translations = 148,                                             //  0x94
28
    kMem_translations_text = 149,                                        //  0x95
29
    kMem_cur_pal_pixels = 150,                                           //  0x96
30
    kMem_render_pal_pixels = 151,                                        //  0x97
31
    kMem_scratch_pal_pixels = 152,                                       //  0x98
32
    kMem_shade_table_copy = 153,                                         //  0x99
33
    kMem_rear_screen_pixels = 154,                                       //  0x9a
34
    kMem_rolling_letters = 155,                                          //  0x9b
35
    kMem_intf_copy_areas = 156,                                          //  0x9c
36
    kMem_strip_image = 157,                                              //  0x9d
37
    kMem_strip_image_perm = 158,                                         //  0x9e
38
    kMem_damage_clauses = 159,                                           //  0x9f
39
    kMem_undamaged_vertices = 160,                                       //  0xa0
40
    kMem_race_text_chunk = 161,                                          //  0xa1
41
    kMem_race_text_str = 162,                                            //  0xa2
42
    kMem_oppo_array = 163,                                               //  0xa3
43
    kMem_oppo_text_chunk = 164,                                          //  0xa4
44
    kMem_oppo_text_str = 165,                                            //  0xa5
45
    kMem_br_font = 166,                                                  //  0xa6
46
    kMem_br_font_wid = 167,                                              //  0xa7
47
    kMem_br_font_enc = 168,                                              //  0xa8
48
    kMem_br_font_glyphs = 169,                                           //  0xa9
49
    kMem_oppo_car_spec = 170,                                            //  0xaa
50
    kMem_misc_string = 171,                                              //  0xab
51
    kMem_mac_host_buffer_1 = 172,                                        //  0xac
52
    kMem_mac_host_buffer_2 = 173,                                        //  0xad
53
    kMem_mac_net_details = 174,                                          //  0xae
54
    kMem_back_pixels = 175,                                              //  0xaf
55
    kMem_quit_vfy_pixels = 176,                                          //  0xb0
56
    kMem_quit_vfy_pal = 177,                                             //  0xb1
57
    kMem_net_min_messages = 178,                                         //  0xb2
58
    kMem_net_mid_messages = 179,                                         //  0xb3
59
    kMem_net_max_messages = 180,                                         //  0xb4
60
    kMem_net_pid_details = 181,                                          //  0xb5
61
    kMem_net_car_spec = 182,                                             //  0xb6
62
    kMem_dynamic_message = 183,                                          //  0xb7
63
    kMem_player_list_join = 184,                                         //  0xb8
64
    kMem_player_list_leave = 185,                                        //  0xb9
65
    kMem_oppo_new_nodes = 186,                                           //  0xba
66
    kMem_oppo_new_sections = 187,                                        //  0xbb
67
    kMem_cop_car_spec = 188,                                             //  0xbc
68
    kMem_oppo_bit_per_node = 189,                                        //  0xbd
69
    kMem_ped_action_list = 190,                                          //  0xbe
70
    kMem_ped_sequences = 191,                                            //  0xbf
71
    kMem_ped_array_stain = 192,                                          //  0xc0
72
    kMem_ped_array = 193,                                                //  0xc1
73
    kMem_ped_instructions = 194,                                         //  0xc2
74
    kMem_ped_new_instruc = 195,                                          //  0xc3
75
    kMem_pipe_model_geometry = 196,                                      //  0xc4
76
    kMem_powerup_array = 197,                                            //  0xc5
77
    kMem_powerup_float_parms = 198,                                      //  0xc6
78
    kMem_powerup_int_parms = 199,                                        //  0xc7
79
    kMem_drugs_palette = 200,                                            //  0xc8
80
    kMem_pratcam_flic_array = 201,                                       //  0xc9
81
    kMem_pratcam_flic_data = 202,                                        //  0xca
82
    kMem_pratcam_sequence_array = 203,                                   //  0xcb
83
    kMem_pratcam_pixelmap = 204,                                         //  0xcc
84
    kMem_video_pixels = 205,                                             //  0xcd
85
    kMem_funk_prox_array = 206,                                          //  0xce
86
    kMem_new_mat_id = 207,                                               //  0xcf
87
    kMem_new_mat_id_2 = 208,                                             //  0xd0
88
    kMem_new_mat_id_3 = 209,                                             //  0xd1
89
    kMem_special_volume = 210,                                           //  0xd2
90
    kMem_special_screen = 211,                                           //  0xd3
91
    kMem_new_special_vol = 212,                                          //  0xd4
92
    kMem_saved_game = 213,                                               //  0xd5
93
    kMem_new_save_game = 214,                                            //  0xd6
94
    kMem_stor_space_pix = 215,                                           //  0xd7
95
    kMem_stor_space_tab = 216,                                           //  0xd8
96
    kMem_stor_space_mat = 217,                                           //  0xd9
97
    kMem_stor_space_mod = 218,                                           //  0xda
98
    kMem_stor_space_save = 219,                                          //  0xdb
99
    kMem_funk_spec = 220,                                                //  0xdc
100
    kMem_groove_spec = 221,                                              //  0xdd
101
    kMem_non_car_spec = 222,                                             //  0xde
102
    kMem_S3_scan_name = 223,                                             //  0xdf
103
    kMem_S3_sound_header = 224,                                          //  0xe0
104
    kMem_S3_sample = 225,                                                //  0xe1
105
    kMem_S3_mac_channel = 226,                                           //  0xe2
106
    kMem_S3_mac_path = 227,                                              //  0xe3
107
    kMem_S3_sentinel = 228,                                              //  0xe4
108
    kMem_S3_outlet = 229,                                                //  0xe5
109
    kMem_S3_channel = 230,                                               //  0xe6
110
    kMem_S3_descriptor = 231,                                            //  0xe7
111
    kMem_S3_reverse_buffer = 232,                                        //  0xe8
112
    kMem_S3_source = 233,                                                //  0xe9
113
    kMem_S3_DOS_SOS_channel = 234,                                       //  0xea
114
    kMem_S3_PC_DOS_path = 235,                                           //  0xeb
115
    kMem_S3_DOS_SOS_patch = 236,                                         //  0xec
116
    kMem_S3_DOS_SOS_song_structure = 237,                                //  0xed
117
    kMem_S3_DOS_SOS_song_data = 238,                                     //  0xee
118
    kMem_S3_Windows_95_load_WAV_file = 239,                              //  0xef
119
    kMem_S3_Windows_95_create_temp_buffer_space_to_reverse_sample = 240, //  0xf0
120
    kMem_S3_Windows_95_path = 241,                                       //  0xf1
121
    kMem_DOS_HMI_file_open = 242,                                        //  0xf2
122
    kMem_abuse_text = 243,                                               //  0xf3
123
    kMem_action_replay_buffer = 244,                                     //  0xf4
124
    kMem_misc = 245                                                      //  0xf5
125
} dr_memory_classes;
126
 
127
typedef enum keycodes {
128
    KEY_SHIFT_ANY = 0,    //  0x0
129
    KEY_ALT_ANY = 1,      //  0x1
130
    KEY_CTRL_ANY = 2,     //  0x2
131
    KEY_CTRL_ANY_2 = 3,   //  0x3
132
    KEY_CAPSLOCK = 4,     //  0x4
133
    KEY_RSHIFT = 5,       //  0x5
134
    KEY_RALT = 6,         //  0x6
135
    KEY_RCTRL = 7,        //  0x7
136
    KEY_LSHIFT = 8,       //  0x8
137
    KEY_LALT = 9,         //  0x9
138
    KEY_LCTRL = 10,       //  0xa
139
    KEY_0 = 11,           //  0xb
140
    KEY_1 = 12,           //  0xc
141
    KEY_2 = 13,           //  0xd
142
    KEY_3 = 14,           //  0xe
143
    KEY_4 = 15,           //  0xf
144
    KEY_5 = 16,           //  0x10
145
    KEY_6 = 17,           //  0x11
146
    KEY_7 = 18,           //  0x12
147
    KEY_8 = 19,           //  0x13
148
    KEY_9 = 20,           //  0x14
149
    KEY_A = 21,           //  0x15
150
    KEY_B = 22,           //  0x16
151
    KEY_C = 23,           //  0x17
152
    KEY_D = 24,           //  0x18
153
    KEY_E = 25,           //  0x19
154
    KEY_F = 26,           //  0x1a
155
    KEY_G = 27,           //  0x1b
156
    KEY_H = 28,           //  0x1c
157
    KEY_I = 29,           //  0x1d
158
    KEY_J = 30,           //  0x1e
159
    KEY_K = 31,           //  0x1f
160
    KEY_L = 32,           //  0x20
161
    KEY_M = 33,           //  0x21
162
    KEY_N = 34,           //  0x22
163
    KEY_O = 35,           //  0x23
164
    KEY_P = 36,           //  0x24
165
    KEY_Q = 37,           //  0x25
166
    KEY_R = 38,           //  0x26
167
    KEY_S = 39,           //  0x27
168
    KEY_T = 40,           //  0x28
169
    KEY_U = 41,           //  0x29
170
    KEY_V = 42,           //  0x2a
171
    KEY_W = 43,           //  0x2b
172
    KEY_X = 44,           //  0x2c
173
    KEY_Y = 45,           //  0x2d
174
    KEY_Z = 46,           //  0x2e
175
    KEY_GRAVE = 47,       //  0x2f
176
    KEY_MINUS = 48,       //  0x30
177
    KEY_EQUALS = 49,      //  0x31
178
    KEY_BACKSPACE = 50,   //  0x32
179
    KEY_RETURN = 51,      //  0x33
180
    KEY_KP_ENTER = 52,    //  0x34
181
    KEY_TAB = 53,         //  0x35
182
    KEY_SLASH = 54,       //  0x36
183
    KEY_UNKNOWN_55 = 55,  //  0x37
184
    KEY_SEMICOLON = 56,   //  0x38
185
    KEY_APOSTROPHE = 57,  //  0x39
186
    KEY_PERIOD = 58,      //  0x3a
187
    KEY_COMMA = 59,       //  0x3b
188
    KEY_LBRACKET = 60,    //  0x3c
189
    KEY_RBRACKET = 61,    //  0x3d
190
    KEY_BACKSLASH = 62,   //  0x3e
191
    KEY_ESCAPE = 63,      //  0x3f
192
    KEY_INSERT = 64,      //  0x40
193
    KEY_DELETE = 65,      //  0x41
194
    KEY_HOME = 66,        //  0x42
195
    KEY_END = 67,         //  0x43
196
    KEY_PAGEUP = 68,      //  0x44
197
    KEY_PAGEDOWN = 69,    //  0x45
198
    KEY_LEFT = 70,        //  0x46
199
    KEY_RIGHT = 71,       //  0x47
200
    KEY_UP = 72,          //  0x48
201
    KEY_DOWN = 73,        //  0x49
202
    KEY_KP_NUMLOCK = 74,  //  0x4a
203
    KEY_KP_DIVIDE = 75,   //  0x4b
204
    KEY_KP_MULTIPLY = 76, //  0x4c
205
    KEY_KP_MINUS = 77,    //  0x4d
206
    KEY_KP_PLUS = 78,     //  0x4e
207
    KEY_KP_PERIOD = 79,   //  0x4f
208
    KEY_KP_EQUALS = 80,   //  0x50
209
    KEY_KP_0 = 81,        //  0x51
210
    KEY_KP_1 = 82,        //  0x52
211
    KEY_KP_2 = 83,        //  0x53
212
    KEY_KP_3 = 84,        //  0x54
213
    KEY_KP_4 = 85,        //  0x55
214
    KEY_KP_5 = 86,        //  0x56
215
    KEY_KP_6 = 87,        //  0x57
216
    KEY_KP_7 = 88,        //  0x58
217
    KEY_KP_8 = 89,        //  0x59
218
    KEY_KP_9 = 90,        //  0x5a
219
    KEY_F1 = 91,          //  0x5b
220
    KEY_F2 = 92,          //  0x5c
221
    KEY_F3 = 93,          //  0x5d
222
    KEY_F4 = 94,          //  0x5e
223
    KEY_F5 = 95,          //  0x5f
224
    KEY_F6 = 96,          //  0x60
225
    KEY_F7 = 97,          //  0x61
226
    KEY_F8 = 98,          //  0x62
227
    KEY_F9 = 99,          //  0x63
228
    KEY_F10 = 100,        //  0x64
229
    KEY_F11 = 101,        //  0x65
230
    KEY_F12 = 102,        //  0x66
231
    KEY_PRTSCN = 103,     //  0x67
232
    KEY_SCRLK = 104,      //  0x68
233
    KEY_PAUSE = 105,      //  0x69
234
    KEY_SPACE = 106,      //  0x6a
235
} keycodes;
236
 
237
typedef enum keymapcodes {
20 pmbaty 238
    KEYMAP_ESCAPE = 0,      // default: ESC
1 pmbaty 239
 
240
    KEYMAP_CONTROL_ANY = 7, // default: LCTRL or RCTRL (any)
241
    KEYMAP_SHIFT_ANY = 8,   // default: LSHIFT or RSHIFT (any)
242
 
243
    //
244
    // The following items are meant to be combined with KEYMAP_CONTROL_ANY
245
    //
246
 
247
    KEYMAP_CTRL_QUIT = 1,           // default: Q
248
    KEYMAP_CTRL_SAVE = 2,           // default: S
249
    KEYMAP_CTRL_LOAD = 3,           // default: L
250
    KEYMAP_CTRL_ABORT_RACE = 4,     // default: A
251
    KEYMAP_CTRL_DRAW_SOME_TEXT = 9, // default: KP0
252
    KEYMAP_CTRL_FLY = 10,           // default: KP1
253
 
254
    //
255
    // The following items are meant to be combined with KEYMAP_SHIFT_ANY
256
    //
257
 
258
    KEYMAP_SHIFT_DUMPSCREEN = 5, // default: D
259
 
260
    //
261
    // The following items are meant to be used standalone
262
    //
263
 
264
    KEYMAP_COCKPIT = 45,        // default C
265
    KEYMAP_SAVE = 28,           // default F2
266
    KEYMAP_LOAD = 29,           // default F3
267
    KEYMAP_MOVE_UP = 30,        // default UP
268
    KEYMAP_MOVE_DOWN = 31,      // default DOWN
269
    KEYMAP_MOVE_LEFT = 32,      // default LEFT
270
    KEYMAP_MOVE_RIGHT = 33,     // default RIGHT
271
    KEYMAP_MIRROR = 34,         // default M
272
    KEYMAP_PRATCAM = 35,        // default P
273
    KEYMAP_LOOK_LEFT = 50,      // default Q
274
    KEYMAP_LOOK_FORWARD = 51,   // default W
275
    KEYMAP_LOOK_RIGHT = 52,     // default E
276
    KEYMAP_SOUND = 36,          // default S
277
    KEYMAP_REPAIR = 44,         // default BACKSPACE
278
    KEYMAP_PEDESTRIANS = 54,    // default KP_MINUS
279
    KEYMAP_F4 = 17,             // default F4
280
    KEYMAP_F5 = 18,             // default F5
281
    KEYMAP_F6 = 19,             // default F6
282
    KEYMAP_F7 = 20,             // default F7
283
    KEYMAP_F8 = 21,             // default F8
284
    KEYMAP_F10 = 22,            // default F10
285
    KEYMAP_F11 = 23,            // default F1
286
    KEYMAP_F12 = 24,            // default F12
287
    KEYMAP_EDITMODE_0 = 14,     // default 0
288
    KEYMAP_EDITMODE_1 = 37,     // default 1
289
    KEYMAP_EDITMODE_2 = 38,     // default 2
290
    KEYMAP_EDITMODE_3 = 39,     // default 3
291
    KEYMAP_EDITMODE_4 = 40,     // default 4
292
    KEYMAP_EDITMODE_5 = 41,     // default 5
293
    KEYMAP_EDITMODE_6 = 42,     // default 6
294
    KEYMAP_EDITMODE_7 = 43,     // default 7
295
    KEYMAP_EDITMODE_8 = 15,     // default 8
296
    KEYMAP_EDITMODE_9 = 16,     // default 9
297
    KEYMAP_SCREEN_SMALLER = 60, // default -
298
    KEYMAP_SCREEN_LARGER = 61,  // default =
299
    KEYMAP_MAP = 56,            // default TAB
300
    KEYMAP_RECOVERY = 59,       // default Insert
301
    KEYMAP_BUY_ARMOUR = 62,     // default Delete
302
    KEYMAP_BUY_POWER = 63,      // default End
303
    KEYMAP_BUY_OFFENSE = 64,    // default PgDn
304
    KEYMAP_VIEW_NETPLAYER = 65, // default Space
305
    KEYMAP_SEND_MESSAGE = 66,   // default `
306
    KEYMAP_ARROW = 25,          // default R
307
    KEYMAP_INFO = 26,           // default I
308
    KEYMAP_REPLAYMODE = 57,     // default KP_ENTER
309
} keymapcodes;
310
 
311
enum {
312
    kFancyHeadupSplatterBonus = 0,
313
    kFancyHeadupPileDriverBonus = 1,
314
    kFancyHeadupExtraStyleBonus = 2,
315
    kFancyHeadupBonusForArtisticImpression = 3,
316
    kFancyHeadup2xComboBonus = 4,
317
    kFancyHeadup3xComboBonus = 5,
318
    kFancyHeadup4xComboBonus = 6,
319
    kFancyHeadup5xComboBonus = 7,
320
    kFancyHeadupNiceShotSir = 8,
321
    kFancyHeadupCunningStuntBonus = 9,
322
    kFancyHeadupHeadOnBonus = 10,
323
    kFancyHeadupYouWastedEm = 11,
324
    kFancyHeadupCheckpoint = 12,
325
    kFancyHeadupOutOfTime = 13,
326
    kFancyHeadupRaceCompleted = 14,
20 pmbaty 327
 
328
    // FIXME: missing network fancy head-ups#define FONT_TYPEABLE 0
329
 
1 pmbaty 330
#define FONT_BLUEHEAD 2
331
#define FONT_GREENHED 3
332
#define FONT_MEDIUMHD 4
333
#define FONT_TIMER 5
334
#define FONT_NEWHITE 6
335
 
336
#define FONT_NEWBIGGR 8
337
#define FONT_GRNDK 9
338
#define FONT_GRNLIT 10
339
#define FONT_GRYDK 11
340
#define FONT_GRYLIT 12
341
#define FONT_BUTTIN 13
342
#define FONT_BUTTOUT 14
343
#define FONT_LITPLAQ 15
344
#define FONT_DRKPLAQ 16
345
#define FONT_BUTTIN1 17
346
#define FONT_BUTTOUT1 18
347
#define FONT_LITPLAQ1 19
348
#define FONT_DRKPLAQ1 20
349
350
#define MAX_PATH_LENGTH 1024
351
352
#define ROLLING_LETTER_LOOP_RANDOM 96
353
#define PLAYER_NAME_MAX_LENGTH 13
354
#define DAMAGE_UNIT_PERIODS 5
355
356
#define GROOVE_FUNK_MAX_PER_CAR 24
357
358
#define NONCAR_UNUSED_SLOTS 5
359
360
#define DR_PI 3.141592653589793
361
#define DR_PI_OVER_2 1.570796326794897
362
#define DR_3PI_OVER_2 4.71238898038469
363
364
#define TIME_CONV_THING 0.0005f
365
366
#define OPPONENT_COUNT 5
367
368
#define WORLD_SCALE 6.9f
369
370
#define SHADOW_MAX_RENDER_DISTANCE 36.0f
371
372
#define DOUBLESIDED_USER_FLAG (void*)12345
373
374
// average frame time in carm95
375
#define MUNGE_ENGINE_INTERVAL 50
376
377
#endif
378
 
379