Subversion Repositories Games.Carmageddon

Rev

Rev 11 | Rev 20 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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 {
  238.     KEYMAP_ESCAPE = 0, // default: ESC
  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#define FONT_TYPEABLE 0
  309. #define FONT_ORANGHED 1
  310. #define FONT_BLUEHEAD 2
  311. #define FONT_GREENHED 3
  312. #define FONT_MEDIUMHD 4
  313. #define FONT_TIMER 5
  314. #define FONT_NEWHITE 6
  315. #define FONT_NEWRED 7
  316. #define FONT_NEWBIGGR 8
  317. #define FONT_GRNDK 9
  318. #define FONT_GRNLIT 10
  319. #define FONT_GRYDK 11
  320. #define FONT_GRYLIT 12
  321. #define FONT_BUTTIN 13
  322. #define FONT_BUTTOUT 14
  323. #define FONT_LITPLAQ 15
  324. #define FONT_DRKPLAQ 16
  325. #define FONT_BUTTIN1 17
  326. #define FONT_BUTTOUT1 18
  327. #define FONT_LITPLAQ1 19
  328. #define FONT_DRKPLAQ1 20
  329.  
  330. #define MAX_PATH_LENGTH 1024
  331.  
  332. #define ROLLING_LETTER_LOOP_RANDOM 96
  333. #define PLAYER_NAME_MAX_LENGTH 13
  334. #define DAMAGE_UNIT_PERIODS 5
  335.  
  336. #define GROOVE_FUNK_MAX_PER_CAR 24
  337.  
  338. #define NONCAR_UNUSED_SLOTS 5
  339.  
  340. #define DR_PI 3.141592653589793
  341. #define DR_PI_OVER_2 1.570796326794897
  342. #define DR_3PI_OVER_2 4.71238898038469
  343.  
  344. #define TIME_CONV_THING 0.0005f
  345.  
  346. #define OPPONENT_COUNT 5
  347.  
  348. #define WORLD_SCALE 6.9f
  349.  
  350. #define SHADOW_MAX_RENDER_DISTANCE 36.0f
  351.  
  352. #define DOUBLESIDED_USER_FLAG (void*)12345
  353.  
  354. // average frame time in carm95
  355. #define MUNGE_ENGINE_INTERVAL 50
  356.  
  357. #endif
  358.