From 0c8cd1712c014658020384d3c58a89ce4c5f66c6 Mon Sep 17 00:00:00 2001 From: rr- Date: Wed, 17 Mar 2021 12:27:40 +0100 Subject: [PATCH] don't use anonymous types; use consistent naming --- src/game/gameflow.c | 10 +- src/game/types.h | 1098 +++++++++++++++++++++---------------------- src/game/vars.c | 2 +- src/game/vars.h | 2 +- 4 files changed, 556 insertions(+), 556 deletions(-) diff --git a/src/game/gameflow.c b/src/game/gameflow.c index 06b63a8d0..286cff328 100644 --- a/src/game/gameflow.c +++ b/src/game/gameflow.c @@ -202,9 +202,9 @@ static int8_t GF_LoadLevelSequence(struct json_value_s *json, int32_t level_num) struct json_array_element_s *item = arr->start; GF.levels[level_num].sequence = - malloc(sizeof(GameFlowSequence) * (arr->length + 1)); + malloc(sizeof(GAMEFLOW_SEQUENCE) * (arr->length + 1)); - GameFlowSequence *seq = GF.levels[level_num].sequence; + GAMEFLOW_SEQUENCE *seq = GF.levels[level_num].sequence; int32_t i = 0; while (item) { const char *type_str; @@ -418,7 +418,7 @@ static int8_t S_LoadScriptLevels(struct json_value_s *json) struct json_array_s *arr = json_value_as_array(levels); int32_t level_count = arr->length; - GF.levels = malloc(sizeof(GameFlowLevel) * level_count); + GF.levels = malloc(sizeof(GAMEFLOW_LEVEL) * level_count); if (!GF.levels) { TRACE("failed to allocate memory"); return 0; @@ -440,7 +440,7 @@ static int8_t S_LoadScriptLevels(struct json_value_s *json) GF.title_level_num = -1; GF.level_count = arr->length; - GameFlowLevel *cur = &GF.levels[0]; + GAMEFLOW_LEVEL *cur = &GF.levels[0]; while (item) { const char *str; int32_t num; @@ -797,7 +797,7 @@ GF_InterpretSequence(int32_t level_num, GAMEFLOW_LEVEL_TYPE level_type) { TRACE("%d", level_num); - GameFlowSequence *seq = GF.levels[level_num].sequence; + GAMEFLOW_SEQUENCE *seq = GF.levels[level_num].sequence; GAMEFLOW_OPTION ret = GF_EXIT_TO_TITLE; while (seq->type != GFS_END) { TRACE("seq %d %d", seq->type, seq->data); diff --git a/src/game/types.h b/src/game/types.h index 69749acd4..b9ece414c 100644 --- a/src/game/types.h +++ b/src/game/types.h @@ -8,7 +8,7 @@ typedef int16_t PHD_ANGLE; typedef uint32_t SG_COL; -typedef enum { +typedef enum CAMERA_TYPE { CAM_CHASE = 0, CAM_FIXED = 1, CAM_LOOK = 2, @@ -17,7 +17,7 @@ typedef enum { CAM_HEAVY = 5, } CAMERA_TYPE; -typedef enum { +typedef enum GAME_OBJECT_ID { O_LARA = 0, O_PISTOLS = 1, O_SHOTGUN = 2, @@ -211,9 +211,209 @@ typedef enum { O_HAIR = O_TEMP10, O_ALPHABET = 190, NUMBER_OBJECTS = 191, -} OBJECT_ID; +} GAME_OBJECT_ID; -typedef enum { +typedef enum SOUND_EFFECT_ID { + SFX_LARA_FEET = 0, + SFX_LARA_CLIMB2 = 1, + SFX_LARA_NO = 2, + SFX_LARA_SLIPPING = 3, + SFX_LARA_LAND = 4, + SFX_LARA_CLIMB1 = 5, + SFX_LARA_DRAW = 6, + SFX_LARA_HOLSTER = 7, + SFX_LARA_FIRE = 8, + SFX_LARA_RELOAD = 9, + SFX_LARA_RICOCHET = 10, + SFX_BEAR_GROWL = 11, + SFX_BEAR_FEET = 12, + SFX_BEAR_ATTACK = 13, + SFX_BEAR_SNARL = 14, + SFX_BEAR_HURT = 16, + SFX_BEAR_DEATH = 18, + SFX_WOLF_JUMP = 19, + SFX_WOLF_HURT = 20, + SFX_WOLF_DEATH = 22, + SFX_WOLF_HOWL = 24, + SFX_WOLF_ATTACK = 25, + SFX_LARA_CLIMB3 = 26, + SFX_LARA_BODYSL = 27, + SFX_LARA_SHIMMY2 = 28, + SFX_LARA_JUMP = 29, + SFX_LARA_FALL = 30, + SFX_LARA_INJURY = 31, + SFX_LARA_ROLL = 32, + SFX_LARA_SPLASH = 33, + SFX_LARA_GETOUT = 34, + SFX_LARA_SWIM = 35, + SFX_LARA_BREATH = 36, + SFX_LARA_BUBBLES = 37, + SFX_LARA_SWITCH = 38, + SFX_LARA_KEY = 39, + SFX_LARA_OBJECT = 40, + SFX_LARA_GENERAL_DEATH = 41, + SFX_LARA_KNEES_DEATH = 42, + SFX_LARA_UZI_FIRE = 43, + SFX_LARA_MAGNUMS = 44, + SFX_LARA_SHOTGUN = 45, + SFX_LARA_BLOCK_PUSH1 = 46, + SFX_LARA_BLOCK_PUSH2 = 47, + SFX_LARA_EMPTY = 48, + SFX_LARA_BULLETHIT = 50, + SFX_LARA_BLKPULL = 51, + SFX_LARA_FLOATING = 52, + SFX_LARA_FALLDETH = 53, + SFX_LARA_GRABHAND = 54, + SFX_LARA_GRABBODY = 55, + SFX_LARA_GRABFEET = 56, + SFX_LARA_SWITCHUP = 57, + SFX_BAT_SQK = 58, + SFX_BAT_FLAP = 59, + SFX_UNDERWATER = 60, + SFX_UNDERWATER_SWITCH = 61, + SFX_BLOCK_SOUND = 63, + SFX_DOOR = 64, + SFX_PENDULUM_BLADES = 65, + SFX_ROCK_FALL_CRUMBLE = 66, + SFX_ROCK_FALL_FALL = 67, + SFX_ROCK_FALL_LAND = 68, + SFX_T_REX_DEATH = 69, + SFX_T_REX_FOOTSTOMP = 70, + SFX_T_REX_ROAR = 71, + SFX_T_REX_ATTACK = 72, + SFX_RAPTOR_ROAR = 73, + SFX_RAPTOR_ATTACK = 74, + SFX_RAPTOR_FEET = 75, + SFX_MUMMY_GROWL = 76, + SFX_LARSON_FIRE = 77, + SFX_LARSON_RICOCHET = 78, + SFX_WATERFALL_LOOP = 79, + SFX_WATER_LOOP = 80, + SFX_WATERFALL_BIG = 81, + SFX_CHAINDOOR_UP = 82, + SFX_CHAINDOOR_DOWN = 83, + SFX_COGS = 84, + SFX_LION_HURT = 85, + SFX_LION_ATTACK = 86, + SFX_LION_ROAR = 87, + SFX_LION_DEATH = 88, + SFX_GORILLA_FEET = 89, + SFX_GORILLA_PANT = 90, + SFX_GORILLA_DEATH = 91, + SFX_CROC_FEET = 92, + SFX_CROC_ATTACK = 93, + SFX_RAT_FEET = 94, + SFX_RAT_CHIRP = 95, + SFX_RAT_ATTACK = 96, + SFX_RAT_DEATH = 97, + SFX_THUNDER = 98, + SFX_EXPLOSION = 99, + SFX_GORILLA_GRUNT = 100, + SFX_GORILLA_GRUNTS = 101, + SFX_CROC_DEATH = 102, + SFX_DAMOCLES_SWORD = 103, + SFX_ATLANTEAN_EXPLODE = 104, + SFX_MENU_ROTATE = 108, + SFX_MENU_CHOOSE = 109, + SFX_MENU_GAMEBOY = 110, + SFX_MENU_SPININ = 111, + SFX_MENU_SPINOUT = 112, + SFX_MENU_COMPASS = 113, + SFX_MENU_GUNS = 114, + SFX_MENU_PASSPORT = 115, + SFX_MENU_MEDI = 116, + SFX_RAISINGBLOCK_FX = 117, + SFX_SAND_FX = 118, + SFX_STAIRS2SLOPE_FX = 119, + SFX_ATLANTEAN_WALK = 120, + SFX_ATLANTEAN_ATTACK = 121, + SFX_ATLANTEAN_JUMP_ATTACK = 122, + SFX_ATLANTEAN_NEEDLE = 123, + SFX_ATLANTEAN_BALL = 124, + SFX_ATLANTEAN_WINGS = 125, + SFX_ATLANTEAN_RUN = 126, + SFX_SLAMDOOR_CLOSE = 127, + SFX_SLAMDOOR_OPEN = 128, + SFX_SKATEBOARD_MOVE = 129, + SFX_SKATEBOARD_STOP = 130, + SFX_SKATEBOARD_SHOOT = 131, + SFX_SKATEBOARD_HIT = 132, + SFX_SKATEBOARD_START = 133, + SFX_SKATEBOARD_DEATH = 134, + SFX_SKATEBOARD_HIT_GROUND = 135, + SFX_ABORTION_HIT_GROUND = 136, + SFX_ABORTION_ATTACK1 = 137, + SFX_ABORTION_ATTACK2 = 138, + SFX_ABORTION_DEATH = 139, + SFX_ABORTION_ARM_SWING = 140, + SFX_ABORTION_MOVE = 141, + SFX_ABORTION_HIT = 142, + SFX_CENTAUR_FEET = 143, + SFX_CENTAUR_ROAR = 144, + SFX_LARA_SPIKE_DEATH = 145, + SFX_LARA_DEATH3 = 146, + SFX_ROLLING_BALL = 147, + SFX_LAVA_LOOP = 148, + SFX_LAVA_FOUNTAIN = 149, + SFX_FIRE = 150, + SFX_DARTS = 151, + SFX_METAL_DOOR_CLOSE = 152, + SFX_METAL_DOOR_OPEN = 153, + SFX_ALTAR_LOOP = 154, + SFX_POWERUP_FX = 155, + SFX_COWBOY_DEATH = 156, + SFX_BLACK_GOON_DEATH = 157, + SFX_LARSON_DEATH = 158, + SFX_PIERRE_DEATH = 159, + SFX_NATLA_DEATH = 160, + SFX_TRAPDOOR_OPEN = 161, + SFX_TRAPDOOR_CLOSE = 162, + SFX_ATLANTEAN_EGG_LOOP = 163, + SFX_ATLANTEAN_EGG_HATCH = 164, + SFX_DRILL_ENGINE_START = 165, + SFX_DRILL_ENGINE_LOOP = 166, + SFX_CONVEYOR_BELT = 167, + SFX_HUT_LOWERED = 168, + SFX_HUT_HIT_GROUND = 169, + SFX_EXPLOSION_FX = 170, + SFX_ATLANTEAN_DEATH = 171, + SFX_CHAINBLOCK_FX = 172, + SFX_SECRET = 173, + SFX_GYM_HINT_01 = 174, + SFX_GYM_HINT_02 = 175, + SFX_GYM_HINT_03 = 176, + SFX_GYM_HINT_04 = 177, + SFX_GYM_HINT_05 = 178, + SFX_GYM_HINT_06 = 179, + SFX_GYM_HINT_07 = 180, + SFX_GYM_HINT_08 = 181, + SFX_GYM_HINT_09 = 182, + SFX_GYM_HINT_10 = 183, + SFX_GYM_HINT_11 = 184, + SFX_GYM_HINT_12 = 185, + SFX_GYM_HINT_13 = 186, + SFX_GYM_HINT_14 = 187, + SFX_GYM_HINT_15 = 188, + SFX_GYM_HINT_16 = 189, + SFX_GYM_HINT_17 = 190, + SFX_GYM_HINT_18 = 191, + SFX_GYM_HINT_19 = 192, + SFX_GYM_HINT_20 = 193, + SFX_GYM_HINT_21 = 194, + SFX_GYM_HINT_22 = 195, + SFX_GYM_HINT_23 = 196, + SFX_GYM_HINT_24 = 197, + SFX_GYM_HINT_25 = 198, + SFX_BALDY_SPEECH = 199, + SFX_COWBOY_SPEECH = 200, + SFX_LARSON_SPEECH = 201, + SFX_NATLA_SPEECH = 202, + SFX_PIERRE_SPEECH = 203, + SFX_SKATEKID_SPEECH = 204, + SFX_LARA_SETUP = 205, +} SOUND_EFFECT_ID; + +typedef enum LARA_ANIMATION_FRAME { AF_VAULT12 = 759, AF_VAULT34 = 614, AF_FASTFALL = 481, @@ -259,7 +459,7 @@ typedef enum { AF_USEPUZZLE = 3372, } LARA_ANIMATION_FRAME; -typedef enum { +typedef enum LARA_SHOTGUN_ANIMATION_FRAME { AF_SG_AIM = 0, AF_SG_DRAW = 13, AF_SG_RECOIL = 47, @@ -268,7 +468,7 @@ typedef enum { AF_SG_END = 127, } LARA_SHOTGUN_ANIMATION_FRAME; -typedef enum { +typedef enum LARA_GUN_ANIMATION_FRAME { AF_G_AIM = 0, AF_G_AIM_L = 4, AF_G_DRAW1 = 5, @@ -278,7 +478,7 @@ typedef enum { AF_G_RECOIL = 24, } LARA_GUN_ANIMATION_FRAME; -typedef enum { +typedef enum LARA_ANIMATION { AA_VAULT12 = 50, AA_VAULT34 = 42, AA_FASTFALL = 32, @@ -323,14 +523,14 @@ typedef enum { AA_SPAZ_LEFT = 128, } LARA_ANIMATION; -typedef enum { +typedef enum LARA_WATER_STATUS { LWS_ABOVEWATER = 0, LWS_UNDERWATER = 1, LWS_SURFACE = 2, LWS_CHEAT = 3, } LARA_WATER_STATUS; -typedef enum { +typedef enum LARA_STATE { AS_WALK = 0, AS_RUN = 1, AS_STOP = 2, @@ -389,7 +589,7 @@ typedef enum { AS_WATEROUT = 55, } LARA_STATE; -typedef enum { +typedef enum LARA_GUN_STATE { LGS_ARMLESS = 0, LGS_HANDSBUSY = 1, LGS_DRAW = 2, @@ -397,7 +597,7 @@ typedef enum { LGS_READY = 4, } LARA_GUN_STATE; -typedef enum { +typedef enum LARA_GUN_TYPE { LGT_UNARMED = 0, LGT_PISTOLS = 1, LGT_MAGNUMS = 2, @@ -406,7 +606,7 @@ typedef enum { NUM_WEAPONS = 5 } LARA_GUN_TYPE; -typedef enum { +typedef enum LARA_MESH { LM_HIPS = 0, LM_THIGH_L = 1, LM_CALF_L = 2, @@ -425,20 +625,20 @@ typedef enum { LM_NUMBER_OF = 15, } LARA_MESH; -typedef enum { +typedef enum MOOD_TYPE { MOOD_BORED = 0, MOOD_ATTACK = 1, MOOD_ESCAPE = 2, MOOD_STALK = 3, } MOOD_TYPE; -typedef enum { +typedef enum TARGET_TYPE { TARGET_NONE = 0, TARGET_PRIMARY = 1, TARGET_SECONDARY = 2, } TARGET_TYPE; -typedef enum { +typedef enum GAMEALLOC_BUFFER { GBUF_TEXTURE_PAGES = 0, GBUF_OBJECT_TEXTURES = 1, GBUF_MESH_POINTERS = 2, @@ -480,29 +680,7 @@ typedef enum { GBUF_ROLLINGBALL_STUFF = 38, } GAMEALLOC_BUFFER; -typedef enum { - GFL_TITLE = 0, - GFL_NORMAL = 1, - GFL_SAVED = 2, - GFL_DEMO = 3, - GFL_CUTSCENE = 4, - GFL_GYM = 5, - GFL_CURRENT = 6, // legacy level type for reading TombATI's savegames -} GAMEFLOW_LEVEL_TYPE; - -typedef enum { - GF_NOP = -1, - GF_START_GAME = 0, - GF_START_CINE = 1 << 6, - GF_START_FMV = 2 << 6, - GF_START_DEMO = 3 << 6, - GF_EXIT_TO_TITLE = 4 << 6, - GF_LEVEL_COMPLETE = 5 << 6, - GF_EXIT_GAME = 6 << 6, - GF_START_SAVED_GAME = 7 << 6, -} GAMEFLOW_OPTION; - -typedef enum { +typedef enum INPUT_STATE { IN_FORWARD = 1 << 0, IN_BACK = 1 << 1, IN_LEFT = 1 << 2, @@ -531,7 +709,7 @@ typedef enum { IN_STUFFCHEAT = 1 << 25, } INPUT_STATE; -typedef enum { +typedef enum TEXTSTRING_FLAG { TF_ACTIVE = 1 << 0, TF_FLASH = 1 << 1, TF_ROTATE_H = 1 << 2, @@ -544,21 +722,21 @@ typedef enum { TF_OUTLINE = 1 << 10, } TEXTSTRING_FLAG; -typedef enum { +typedef enum D_FLAGS { D_TRANS1 = 1, D_TRANS2 = 2, D_TRANS3 = 3, D_TRANS4 = 4, D_NEXT = 1 << 3, -} D_flags; +} D_FLAGS; -typedef enum { +typedef enum APP_SETTINGS_FLAG { ASF_PERSPECTIVE = 1 << 0, ASF_BILINEAR = 1 << 1, ASF_FPS = 1 << 2, } APP_SETTINGS_FLAG; -typedef enum { +typedef enum COLL_TYPE { COLL_NONE = 0, COLL_FRONT = 1, COLL_LEFT = 2, @@ -568,20 +746,20 @@ typedef enum { COLL_CLAMP = 32, } COLL_TYPE; -typedef enum { +typedef enum HEIGHT_TYPE { HT_WALL = 0, HT_SMALL_SLOPE = 1, HT_BIG_SLOPE = 2, } HEIGHT_TYPE; -typedef enum { +typedef enum DIRECTION { DIR_NORTH = 0, DIR_EAST = 1, DIR_SOUTH = 2, DIR_WEST = 3, } DIRECTION; -typedef enum { +typedef enum ANIM_COMMAND { AC_NULL = 0, AC_MOVE_ORIGIN = 1, AC_JUMP_VELOCITY = 2, @@ -591,7 +769,7 @@ typedef enum { AC_EFFECT = 6, } ANIM_COMMAND; -typedef enum { +typedef enum BONE_EXTRA_BITS { BEB_POP = 1 << 0, BEB_PUSH = 1 << 1, BEB_ROT_X = 1 << 2, @@ -599,18 +777,18 @@ typedef enum { BEB_ROT_Z = 1 << 4, } BONE_EXTRA_BITS; -typedef enum { +typedef enum ITEM_STATUS { IS_NOT_ACTIVE = 0, IS_ACTIVE = 1, IS_DEACTIVATED = 2, IS_INVISIBLE = 3, } ITEM_STATUS; -typedef enum { +typedef enum ROOM_FLAG { RF_UNDERWATER = 1, } ROOM_FLAG; -typedef enum { +typedef enum FLOOR_TYPE { FT_FLOOR = 0, FT_DOOR = 1, FT_TILT = 2, @@ -619,7 +797,7 @@ typedef enum { FT_LAVA = 5, } FLOOR_TYPE; -typedef enum { +typedef enum TRIGGER_TYPE { TT_TRIGGER = 0, TT_PAD = 1, TT_SWITCH = 2, @@ -631,7 +809,7 @@ typedef enum { TT_DUMMY = 8, } TRIGGER_TYPE; -typedef enum { +typedef enum TRIGGER_OBJECT { TO_OBJECT = 0, TO_CAMERA = 1, TO_SINK = 2, @@ -645,7 +823,7 @@ typedef enum { TO_SECRET = 10, } TRIGGER_OBJECT; -typedef enum { +typedef enum ITEM_FLAG { IF_ONESHOT = 0x0100, IF_CODE_BITS = 0x3E00, IF_REVERSE = 0x4000, @@ -653,7 +831,7 @@ typedef enum { IF_KILLED_ITEM = 0x8000, } ITEM_FLAG; -typedef enum { +typedef enum FMV_SEQUENCE { FMV_INTRO = 0, FMV_GYM = 1, FMV_SNOW = 2, @@ -668,24 +846,7 @@ typedef enum { NUMBER_OF_FMV = 11, } FMV_SEQUENCE; -typedef enum { - RNG_OPENING = 0, - RNG_OPEN = 1, - RNG_CLOSING = 2, - RNG_MAIN2OPTION = 3, - RNG_MAIN2KEYS = 4, - RNG_KEYS2MAIN = 5, - RNG_OPTION2MAIN = 6, - RNG_SELECTING = 7, - RNG_SELECTED = 8, - RNG_DESELECTING = 9, - RNG_DESELECT = 10, - RNG_CLOSING_ITEM = 11, - RNG_EXITING_INVENTORY = 12, - RNG_DONE = 13, -} RING_STATUS; - -typedef enum { +typedef enum INV_MODE { INV_GAME_MODE = 0, INV_TITLE_MODE = 1, INV_KEYS_MODE = 2, @@ -694,20 +855,13 @@ typedef enum { INV_DEATH_MODE = 5, } INV_MODE; -typedef enum { - RT_MAIN = 0, - RT_OPTION = 1, - RT_KEYS = 2, -} RING_TYPE; - -typedef enum { - SHAPE_SPRITE = 1, - SHAPE_LINE = 2, - SHAPE_BOX = 3, - SHAPE_FBOX = 4 -} SHAPE; +typedef enum INV_TEXT { + IT_NAME = 0, + IT_QTY = 1, + IT_NUMBER_OF = 2, +} INV_TEXT; -typedef enum { +typedef enum INV_COLOUR { IC_BLACK = 0, IC_GREY = 1, IC_WHITE = 2, @@ -728,37 +882,83 @@ typedef enum { IC_NUMBER_OF = 17, } INV_COLOUR; -typedef enum { - IT_NAME = 0, - IT_QTY = 1, - IT_NUMBER_OF = 2, -} INV_TEXT; - -typedef enum { - DOOR_CLOSED = 0, - DOOR_OPEN = 1, +typedef enum RING_STATUS { + RNG_OPENING = 0, + RNG_OPEN = 1, + RNG_CLOSING = 2, + RNG_MAIN2OPTION = 3, + RNG_MAIN2KEYS = 4, + RNG_KEYS2MAIN = 5, + RNG_OPTION2MAIN = 6, + RNG_SELECTING = 7, + RNG_SELECTED = 8, + RNG_DESELECTING = 9, + RNG_DESELECT = 10, + RNG_CLOSING_ITEM = 11, + RNG_EXITING_INVENTORY = 12, + RNG_DONE = 13, +} RING_STATUS; + +typedef enum RING_TYPE { + RT_MAIN = 0, + RT_OPTION = 1, + RT_KEYS = 2, +} RING_TYPE; + +typedef enum SHAPE { + SHAPE_SPRITE = 1, + SHAPE_LINE = 2, + SHAPE_BOX = 3, + SHAPE_FBOX = 4 +} SHAPE; + +typedef enum DOOR_ANIM { + DOOR_CLOSED = 0, + DOOR_OPEN = 1, } DOOR_ANIM; -typedef enum { +typedef enum TRAP_ANIM { TRAP_SET = 0, TRAP_ACTIVATE = 1, TRAP_WORKING = 2, TRAP_FINISHED = 3, } TRAP_ANIM; -typedef enum { +typedef enum ROLLING_BLOCK_STATE { + RBS_START = 0, + RBS_END = 1, + RBS_MOVING = 2, +} ROLLING_BLOCK_STATE; + +typedef enum REQUEST_INFO_FLAGS { RIF_FIXED_HEIGHT = 1 << 0, RIF_BLOCKED = 1 << 1, RIF_BLOCKABLE = 1 << 2, } REQUEST_INFO_FLAGS; -typedef enum { - RBS_START = 0, - RBS_END = 1, - RBS_MOVING = 2, -} ROLLING_BLOCK_STATE; +typedef enum GAMEFLOW_LEVEL_TYPE { + GFL_TITLE = 0, + GFL_NORMAL = 1, + GFL_SAVED = 2, + GFL_DEMO = 3, + GFL_CUTSCENE = 4, + GFL_GYM = 5, + GFL_CURRENT = 6, // legacy level type for reading TombATI's savegames +} GAMEFLOW_LEVEL_TYPE; -typedef enum { +typedef enum GAMEFLOW_OPTION { + GF_NOP = -1, + GF_START_GAME = 0, + GF_START_CINE = 1 << 6, + GF_START_FMV = 2 << 6, + GF_START_DEMO = 3 << 6, + GF_EXIT_TO_TITLE = 4 << 6, + GF_LEVEL_COMPLETE = 5 << 6, + GF_EXIT_GAME = 6 << 6, + GF_START_SAVED_GAME = 7 << 6, +} GAMEFLOW_OPTION; + +typedef enum GAMEFLOW_SEQUENCE_TYPE { GFS_END = -1, GFS_START_GAME, GFS_LOOP_GAME, @@ -769,356 +969,222 @@ typedef enum { GFS_PLAY_FMV, GFS_LEVEL_STATS, GFS_DISPLAY_PICTURE, - GFS_EXIT_TO_TITLE, - GFS_EXIT_TO_LEVEL, - GFS_EXIT_TO_CINE, - GFS_SET_CAM_X, - GFS_SET_CAM_Y, - GFS_SET_CAM_Z, - GFS_SET_CAM_ANGLE, - GFS_FLIP_MAP, - GFS_REMOVE_GUNS, - GFS_REMOVE_SCIONS, - GFS_PLAY_SYNCED_AUDIO, - GFS_MESH_SWAP, - GFS_FIX_PYRAMID_SECRET_TRIGGER, -} GameFlowSequenceType; - -typedef enum { - GS_HEADING_INVENTORY, - GS_HEADING_GAME_OVER, - GS_HEADING_OPTION, - GS_HEADING_ITEMS, - - GS_PASSPORT_SELECT_LEVEL, - GS_PASSPORT_SELECT_MODE, - GS_PASSPORT_MODE_NEW_GAME, - GS_PASSPORT_MODE_NEW_GAME_PLUS, - GS_PASSPORT_MODE_JAPANESE_NEW_GAME, - GS_PASSPORT_MODE_JAPANESE_NEW_GAME_PLUS, - GS_PASSPORT_NEW_GAME, - GS_PASSPORT_LOAD_GAME, - GS_PASSPORT_SAVE_GAME, - GS_PASSPORT_EXIT_GAME, - GS_PASSPORT_EXIT_TO_TITLE, - - GS_DETAIL_SELECT_DETAIL, - GS_DETAIL_LEVEL_HIGH, - GS_DETAIL_LEVEL_MEDIUM, - GS_DETAIL_LEVEL_LOW, - GS_DETAIL_PERSPECTIVE_FMT, - GS_DETAIL_BILINEAR_FMT, - GS_DETAIL_VIDEO_MODE_FMT, - - GS_SOUND_SET_VOLUMES, - - GS_CONTROL_DEFAULT_KEYS, - GS_CONTROL_USER_KEYS, - - GS_KEYMAP_RUN, - GS_KEYMAP_BACK, - GS_KEYMAP_LEFT, - GS_KEYMAP_RIGHT, - GS_KEYMAP_STEP_LEFT, - GS_KEYMAP_STEP_RIGHT, - GS_KEYMAP_WALK, - GS_KEYMAP_JUMP, - GS_KEYMAP_ACTION, - GS_KEYMAP_DRAW_WEAPON, - GS_KEYMAP_LOOK, - GS_KEYMAP_ROLL, - GS_KEYMAP_INVENTORY, - - GS_STATS_TIME_TAKEN_FMT, - GS_STATS_SECRETS_FMT, - GS_STATS_PICKUPS_FMT, - GS_STATS_KILLS_FMT, - - GS_MISC_ON, - GS_MISC_OFF, - GS_MISC_EMPTY_SLOT_FMT, - GS_MISC_DEMO_MODE, - - GS_INV_ITEM_MEDI, - GS_INV_ITEM_BIG_MEDI, - - GS_INV_ITEM_PUZZLE1, - GS_INV_ITEM_PUZZLE2, - GS_INV_ITEM_PUZZLE3, - GS_INV_ITEM_PUZZLE4, - - GS_INV_ITEM_KEY1, - GS_INV_ITEM_KEY2, - GS_INV_ITEM_KEY3, - GS_INV_ITEM_KEY4, - - GS_INV_ITEM_PICKUP1, - GS_INV_ITEM_PICKUP2, - GS_INV_ITEM_LEADBAR, - GS_INV_ITEM_SCION, - - GS_INV_ITEM_PISTOLS, - GS_INV_ITEM_SHOTGUN, - GS_INV_ITEM_MAGNUM, - GS_INV_ITEM_UZI, - GS_INV_ITEM_GRENADE, - - GS_INV_ITEM_PISTOL_AMMO, - GS_INV_ITEM_SHOTGUN_AMMO, - GS_INV_ITEM_MAGNUM_AMMO, - GS_INV_ITEM_UZI_AMMO, - - GS_INV_ITEM_COMPASS, - GS_INV_ITEM_GAME, - GS_INV_ITEM_DETAILS, - GS_INV_ITEM_SOUND, - GS_INV_ITEM_CONTROLS, - GS_INV_ITEM_GAMMA, - GS_INV_ITEM_LARAS_HOME, - - GS_NUMBER_OF, -} GAME_STRING_ID; - -typedef enum { - BT_LARA_HEALTH = 0, - BT_LARA_AIR = 1, - BT_ENEMY_HEALTH = 2, -} BAR_TYPE; - -typedef enum { - SFX_LARA_FEET = 0, - SFX_LARA_CLIMB2 = 1, - SFX_LARA_NO = 2, - SFX_LARA_SLIPPING = 3, - SFX_LARA_LAND = 4, - SFX_LARA_CLIMB1 = 5, - SFX_LARA_DRAW = 6, - SFX_LARA_HOLSTER = 7, - SFX_LARA_FIRE = 8, - SFX_LARA_RELOAD = 9, - SFX_LARA_RICOCHET = 10, - SFX_BEAR_GROWL = 11, - SFX_BEAR_FEET = 12, - SFX_BEAR_ATTACK = 13, - SFX_BEAR_SNARL = 14, - SFX_BEAR_HURT = 16, - SFX_BEAR_DEATH = 18, - SFX_WOLF_JUMP = 19, - SFX_WOLF_HURT = 20, - SFX_WOLF_DEATH = 22, - SFX_WOLF_HOWL = 24, - SFX_WOLF_ATTACK = 25, - SFX_LARA_CLIMB3 = 26, - SFX_LARA_BODYSL = 27, - SFX_LARA_SHIMMY2 = 28, - SFX_LARA_JUMP = 29, - SFX_LARA_FALL = 30, - SFX_LARA_INJURY = 31, - SFX_LARA_ROLL = 32, - SFX_LARA_SPLASH = 33, - SFX_LARA_GETOUT = 34, - SFX_LARA_SWIM = 35, - SFX_LARA_BREATH = 36, - SFX_LARA_BUBBLES = 37, - SFX_LARA_SWITCH = 38, - SFX_LARA_KEY = 39, - SFX_LARA_OBJECT = 40, - SFX_LARA_GENERAL_DEATH = 41, - SFX_LARA_KNEES_DEATH = 42, - SFX_LARA_UZI_FIRE = 43, - SFX_LARA_MAGNUMS = 44, - SFX_LARA_SHOTGUN = 45, - SFX_LARA_BLOCK_PUSH1 = 46, - SFX_LARA_BLOCK_PUSH2 = 47, - SFX_LARA_EMPTY = 48, - SFX_LARA_BULLETHIT = 50, - SFX_LARA_BLKPULL = 51, - SFX_LARA_FLOATING = 52, - SFX_LARA_FALLDETH = 53, - SFX_LARA_GRABHAND = 54, - SFX_LARA_GRABBODY = 55, - SFX_LARA_GRABFEET = 56, - SFX_LARA_SWITCHUP = 57, - SFX_BAT_SQK = 58, - SFX_BAT_FLAP = 59, - SFX_UNDERWATER = 60, - SFX_UNDERWATER_SWITCH = 61, - SFX_BLOCK_SOUND = 63, - SFX_DOOR = 64, - SFX_PENDULUM_BLADES = 65, - SFX_ROCK_FALL_CRUMBLE = 66, - SFX_ROCK_FALL_FALL = 67, - SFX_ROCK_FALL_LAND = 68, - SFX_T_REX_DEATH = 69, - SFX_T_REX_FOOTSTOMP = 70, - SFX_T_REX_ROAR = 71, - SFX_T_REX_ATTACK = 72, - SFX_RAPTOR_ROAR = 73, - SFX_RAPTOR_ATTACK = 74, - SFX_RAPTOR_FEET = 75, - SFX_MUMMY_GROWL = 76, - SFX_LARSON_FIRE = 77, - SFX_LARSON_RICOCHET = 78, - SFX_WATERFALL_LOOP = 79, - SFX_WATER_LOOP = 80, - SFX_WATERFALL_BIG = 81, - SFX_CHAINDOOR_UP = 82, - SFX_CHAINDOOR_DOWN = 83, - SFX_COGS = 84, - SFX_LION_HURT = 85, - SFX_LION_ATTACK = 86, - SFX_LION_ROAR = 87, - SFX_LION_DEATH = 88, - SFX_GORILLA_FEET = 89, - SFX_GORILLA_PANT = 90, - SFX_GORILLA_DEATH = 91, - SFX_CROC_FEET = 92, - SFX_CROC_ATTACK = 93, - SFX_RAT_FEET = 94, - SFX_RAT_CHIRP = 95, - SFX_RAT_ATTACK = 96, - SFX_RAT_DEATH = 97, - SFX_THUNDER = 98, - SFX_EXPLOSION = 99, - SFX_GORILLA_GRUNT = 100, - SFX_GORILLA_GRUNTS = 101, - SFX_CROC_DEATH = 102, - SFX_DAMOCLES_SWORD = 103, - SFX_ATLANTEAN_EXPLODE = 104, - SFX_MENU_ROTATE = 108, - SFX_MENU_CHOOSE = 109, - SFX_MENU_GAMEBOY = 110, - SFX_MENU_SPININ = 111, - SFX_MENU_SPINOUT = 112, - SFX_MENU_COMPASS = 113, - SFX_MENU_GUNS = 114, - SFX_MENU_PASSPORT = 115, - SFX_MENU_MEDI = 116, - SFX_RAISINGBLOCK_FX = 117, - SFX_SAND_FX = 118, - SFX_STAIRS2SLOPE_FX = 119, - SFX_ATLANTEAN_WALK = 120, - SFX_ATLANTEAN_ATTACK = 121, - SFX_ATLANTEAN_JUMP_ATTACK = 122, - SFX_ATLANTEAN_NEEDLE = 123, - SFX_ATLANTEAN_BALL = 124, - SFX_ATLANTEAN_WINGS = 125, - SFX_ATLANTEAN_RUN = 126, - SFX_SLAMDOOR_CLOSE = 127, - SFX_SLAMDOOR_OPEN = 128, - SFX_SKATEBOARD_MOVE = 129, - SFX_SKATEBOARD_STOP = 130, - SFX_SKATEBOARD_SHOOT = 131, - SFX_SKATEBOARD_HIT = 132, - SFX_SKATEBOARD_START = 133, - SFX_SKATEBOARD_DEATH = 134, - SFX_SKATEBOARD_HIT_GROUND = 135, - SFX_ABORTION_HIT_GROUND = 136, - SFX_ABORTION_ATTACK1 = 137, - SFX_ABORTION_ATTACK2 = 138, - SFX_ABORTION_DEATH = 139, - SFX_ABORTION_ARM_SWING = 140, - SFX_ABORTION_MOVE = 141, - SFX_ABORTION_HIT = 142, - SFX_CENTAUR_FEET = 143, - SFX_CENTAUR_ROAR = 144, - SFX_LARA_SPIKE_DEATH = 145, - SFX_LARA_DEATH3 = 146, - SFX_ROLLING_BALL = 147, - SFX_LAVA_LOOP = 148, - SFX_LAVA_FOUNTAIN = 149, - SFX_FIRE = 150, - SFX_DARTS = 151, - SFX_METAL_DOOR_CLOSE = 152, - SFX_METAL_DOOR_OPEN = 153, - SFX_ALTAR_LOOP = 154, - SFX_POWERUP_FX = 155, - SFX_COWBOY_DEATH = 156, - SFX_BLACK_GOON_DEATH = 157, - SFX_LARSON_DEATH = 158, - SFX_PIERRE_DEATH = 159, - SFX_NATLA_DEATH = 160, - SFX_TRAPDOOR_OPEN = 161, - SFX_TRAPDOOR_CLOSE = 162, - SFX_ATLANTEAN_EGG_LOOP = 163, - SFX_ATLANTEAN_EGG_HATCH = 164, - SFX_DRILL_ENGINE_START = 165, - SFX_DRILL_ENGINE_LOOP = 166, - SFX_CONVEYOR_BELT = 167, - SFX_HUT_LOWERED = 168, - SFX_HUT_HIT_GROUND = 169, - SFX_EXPLOSION_FX = 170, - SFX_ATLANTEAN_DEATH = 171, - SFX_CHAINBLOCK_FX = 172, - SFX_SECRET = 173, - SFX_GYM_HINT_01 = 174, - SFX_GYM_HINT_02 = 175, - SFX_GYM_HINT_03 = 176, - SFX_GYM_HINT_04 = 177, - SFX_GYM_HINT_05 = 178, - SFX_GYM_HINT_06 = 179, - SFX_GYM_HINT_07 = 180, - SFX_GYM_HINT_08 = 181, - SFX_GYM_HINT_09 = 182, - SFX_GYM_HINT_10 = 183, - SFX_GYM_HINT_11 = 184, - SFX_GYM_HINT_12 = 185, - SFX_GYM_HINT_13 = 186, - SFX_GYM_HINT_14 = 187, - SFX_GYM_HINT_15 = 188, - SFX_GYM_HINT_16 = 189, - SFX_GYM_HINT_17 = 190, - SFX_GYM_HINT_18 = 191, - SFX_GYM_HINT_19 = 192, - SFX_GYM_HINT_20 = 193, - SFX_GYM_HINT_21 = 194, - SFX_GYM_HINT_22 = 195, - SFX_GYM_HINT_23 = 196, - SFX_GYM_HINT_24 = 197, - SFX_GYM_HINT_25 = 198, - SFX_BALDY_SPEECH = 199, - SFX_COWBOY_SPEECH = 200, - SFX_LARSON_SPEECH = 201, - SFX_NATLA_SPEECH = 202, - SFX_PIERRE_SPEECH = 203, - SFX_SKATEKID_SPEECH = 204, - SFX_LARA_SETUP = 205, -} SOUND_EFFECT_ID; + GFS_EXIT_TO_TITLE, + GFS_EXIT_TO_LEVEL, + GFS_EXIT_TO_CINE, + GFS_SET_CAM_X, + GFS_SET_CAM_Y, + GFS_SET_CAM_Z, + GFS_SET_CAM_ANGLE, + GFS_FLIP_MAP, + GFS_REMOVE_GUNS, + GFS_REMOVE_SCIONS, + GFS_PLAY_SYNCED_AUDIO, + GFS_MESH_SWAP, + GFS_FIX_PYRAMID_SECRET_TRIGGER, +} GAMEFLOW_SEQUENCE_TYPE; + +typedef enum GAME_STRING_ID { + GS_HEADING_INVENTORY, + GS_HEADING_GAME_OVER, + GS_HEADING_OPTION, + GS_HEADING_ITEMS, + + GS_PASSPORT_SELECT_LEVEL, + GS_PASSPORT_SELECT_MODE, + GS_PASSPORT_MODE_NEW_GAME, + GS_PASSPORT_MODE_NEW_GAME_PLUS, + GS_PASSPORT_MODE_JAPANESE_NEW_GAME, + GS_PASSPORT_MODE_JAPANESE_NEW_GAME_PLUS, + GS_PASSPORT_NEW_GAME, + GS_PASSPORT_LOAD_GAME, + GS_PASSPORT_SAVE_GAME, + GS_PASSPORT_EXIT_GAME, + GS_PASSPORT_EXIT_TO_TITLE, + + GS_DETAIL_SELECT_DETAIL, + GS_DETAIL_LEVEL_HIGH, + GS_DETAIL_LEVEL_MEDIUM, + GS_DETAIL_LEVEL_LOW, + GS_DETAIL_PERSPECTIVE_FMT, + GS_DETAIL_BILINEAR_FMT, + GS_DETAIL_VIDEO_MODE_FMT, + + GS_SOUND_SET_VOLUMES, + + GS_CONTROL_DEFAULT_KEYS, + GS_CONTROL_USER_KEYS, + + GS_KEYMAP_RUN, + GS_KEYMAP_BACK, + GS_KEYMAP_LEFT, + GS_KEYMAP_RIGHT, + GS_KEYMAP_STEP_LEFT, + GS_KEYMAP_STEP_RIGHT, + GS_KEYMAP_WALK, + GS_KEYMAP_JUMP, + GS_KEYMAP_ACTION, + GS_KEYMAP_DRAW_WEAPON, + GS_KEYMAP_LOOK, + GS_KEYMAP_ROLL, + GS_KEYMAP_INVENTORY, + + GS_STATS_TIME_TAKEN_FMT, + GS_STATS_SECRETS_FMT, + GS_STATS_PICKUPS_FMT, + GS_STATS_KILLS_FMT, + + GS_MISC_ON, + GS_MISC_OFF, + GS_MISC_EMPTY_SLOT_FMT, + GS_MISC_DEMO_MODE, + + GS_INV_ITEM_MEDI, + GS_INV_ITEM_BIG_MEDI, + + GS_INV_ITEM_PUZZLE1, + GS_INV_ITEM_PUZZLE2, + GS_INV_ITEM_PUZZLE3, + GS_INV_ITEM_PUZZLE4, + + GS_INV_ITEM_KEY1, + GS_INV_ITEM_KEY2, + GS_INV_ITEM_KEY3, + GS_INV_ITEM_KEY4, + + GS_INV_ITEM_PICKUP1, + GS_INV_ITEM_PICKUP2, + GS_INV_ITEM_LEADBAR, + GS_INV_ITEM_SCION, + + GS_INV_ITEM_PISTOLS, + GS_INV_ITEM_SHOTGUN, + GS_INV_ITEM_MAGNUM, + GS_INV_ITEM_UZI, + GS_INV_ITEM_GRENADE, + + GS_INV_ITEM_PISTOL_AMMO, + GS_INV_ITEM_SHOTGUN_AMMO, + GS_INV_ITEM_MAGNUM_AMMO, + GS_INV_ITEM_UZI_AMMO, -typedef enum { + GS_INV_ITEM_COMPASS, + GS_INV_ITEM_GAME, + GS_INV_ITEM_DETAILS, + GS_INV_ITEM_SOUND, + GS_INV_ITEM_CONTROLS, + GS_INV_ITEM_GAMMA, + GS_INV_ITEM_LARAS_HOME, + + GS_NUMBER_OF, +} GAME_STRING_ID; + +typedef enum BAR_TYPE { + BT_LARA_HEALTH = 0, + BT_LARA_AIR = 1, + BT_ENEMY_HEALTH = 2, +} BAR_TYPE; + +typedef enum SOUND_PLAY_MODE { SPM_NORMAL = 0, SPM_UNDERWATER = 1, SPM_ALWAYS = 2, } SOUND_PLAY_MODE; -typedef enum { +typedef enum GAME_BONUS_FLAG { GBF_NGPLUS = 1 << 0, GBF_JAPANESE = 1 << 1, } GAME_BONUS_FLAG; #pragma pack(push, 1) -typedef struct { +typedef struct POS_2D { /* 0000 */ uint16_t x; /* 0002 */ uint16_t y; /* 0004 end */ } POS_2D; -typedef struct { +typedef struct POS_3D { /* 0000 */ uint16_t x; /* 0002 */ uint16_t y; /* 0004 */ uint16_t z; /* 0006 end */ } POS_3D; -typedef struct { +typedef struct PHD_VECTOR { /* 0000 */ int32_t x; /* 0004 */ int32_t y; /* 0008 */ int32_t z; /* 000C end */ } PHD_VECTOR; -typedef struct { +typedef struct PHD_MATRIX { + /* 0000 */ int32_t _00; + /* 0004 */ int32_t _01; + /* 0008 */ int32_t _02; + /* 000C */ int32_t _03; + /* 0010 */ int32_t _10; + /* 0014 */ int32_t _11; + /* 0018 */ int32_t _12; + /* 001C */ int32_t _13; + /* 0020 */ int32_t _20; + /* 0024 */ int32_t _21; + /* 0028 */ int32_t _22; + /* 002C */ int32_t _23; + /* 0030 end */ +} PHD_MATRIX; + +typedef struct PHD_3DPOS { + /* 0000 */ int32_t x; + /* 0004 */ int32_t y; + /* 0008 */ int32_t z; + /* 000C */ int16_t x_rot; + /* 000E */ int16_t y_rot; + /* 0010 */ int16_t z_rot; + /* 0012 end */ +} PHD_3DPOS; + +typedef struct PHD_VBUF { + /* 0000 */ int32_t xv; + /* 0004 */ int32_t yv; + /* 0008 */ int32_t zv; + /* 000C */ int32_t xs; + /* 0010 */ int32_t ys; + /* 0014 */ int32_t dist; + /* 0018 */ int16_t clip; + /* 001A */ int16_t g; + /* 001C */ uint16_t u; + /* 001E */ uint16_t v; + /* 0020 end */ +} PHD_VBUF; + +typedef struct PHDTEXTURESTRUCT { + /* 0000 */ uint16_t drawtype; + /* 0002 */ uint16_t tpage; + /* 0004 */ uint16_t u1; + /* 0006 */ uint16_t v1; + /* 0008 */ uint16_t u2; + /* 000A */ uint16_t v2; + /* 000C */ uint16_t u3; + /* 000E */ uint16_t v3; + /* 0010 */ uint16_t u4; + /* 0012 */ uint16_t v4; + /* 0014 end */ +} PHDTEXTURESTRUCT; + +typedef struct PHDSPRITESTRUCT { + /* 0000 */ uint16_t tpage; + /* 0002 */ uint16_t offset; + /* 0004 */ uint16_t width; + /* 0006 */ uint16_t height; + /* 0008 */ int16_t x1; + /* 000A */ int16_t y1; + /* 000C */ int16_t x2; + /* 000E */ int16_t y2; + /* 0010 end */ +} PHDSPRITESTRUCT; + +typedef struct DOOR_INFO { /* 0000 */ int16_t room_num; /* 0002 */ int16_t x; /* 0004 */ int16_t y; @@ -1127,13 +1193,13 @@ typedef struct { /* 0020 end */ } DOOR_INFO; -typedef struct { +typedef struct DOOR_INFOS { /* 0000 */ uint16_t count; /* 0002 */ DOOR_INFO door[]; /* 0006 end */ } DOOR_INFOS; -typedef struct { +typedef struct FLOOR_INFO { /* 0000 */ uint16_t index; /* 0002 */ int16_t box; /* 0004 */ uint8_t pit_room; @@ -1143,14 +1209,14 @@ typedef struct { /* 0008 end */ } FLOOR_INFO; -typedef struct { +typedef struct DOORPOS_DATA { /* 0000 */ FLOOR_INFO *floor; /* 0004 */ FLOOR_INFO data; /* 000C */ int16_t block; /* 000E end */ } DOORPOS_DATA; -typedef struct { +typedef struct DOOR_DATA { /* 0000 */ DOORPOS_DATA d1; /* 000E */ DOORPOS_DATA d1flip; /* 001C */ DOORPOS_DATA d2; @@ -1158,7 +1224,7 @@ typedef struct { /* 0038 end */ } DOOR_DATA; -typedef struct { +typedef struct LIGHT_INFO { /* 0000 */ uint32_t x; /* 0004 */ uint32_t y; /* 0008 */ uint32_t z; @@ -1167,7 +1233,7 @@ typedef struct { /* 0012 end */ } LIGHT_INFO; -typedef struct { +typedef struct MESH_INFO { /* 0000 */ uint32_t x; /* 0004 */ uint32_t y; /* 0008 */ uint32_t z; @@ -1177,7 +1243,7 @@ typedef struct { /* 0012 end */ } MESH_INFO; -typedef struct { +typedef struct ROOM_INFO { /* 0000 */ int16_t *data; /* 0004 */ DOOR_INFOS *doors; /* 0008 */ FLOOR_INFO *floor; @@ -1205,17 +1271,7 @@ typedef struct { /* 0044 end */ } ROOM_INFO; -typedef struct { - /* 0000 */ int32_t x; - /* 0004 */ int32_t y; - /* 0008 */ int32_t z; - /* 000C */ int16_t x_rot; - /* 000E */ int16_t y_rot; - /* 0010 */ int16_t z_rot; - /* 0012 end */ -} PHD_3DPOS; - -typedef struct { +typedef struct ITEM_INFO { /* 0000 */ int32_t floor; /* 0004 */ uint32_t touch_bits; /* 0008 */ uint32_t mesh_bits; @@ -1246,7 +1302,7 @@ typedef struct { /* 0044 end */ } ITEM_INFO; -typedef struct { +typedef struct LARA_ARM { /* 0000 */ int16_t *frame_base; /* 0004 */ int16_t frame_number; /* 0006 */ int16_t lock; @@ -1257,14 +1313,14 @@ typedef struct { /* 0010 end */ } LARA_ARM; -typedef struct { +typedef struct AMMO_INFO { /* 0000 */ int32_t ammo; /* 0004 */ int32_t hit; /* 0008 */ int32_t miss; /* 000C end */ } AMMO_INFO; -typedef struct { +typedef struct BOX_NODE { /* 0000 */ int16_t exit_box; /* 0002 */ uint16_t search_number; /* 0004 */ int16_t next_expansion; @@ -1272,7 +1328,7 @@ typedef struct { /* 0008 end */ } BOX_NODE; -typedef struct { +typedef struct LOT_INFO { /* 0000 */ BOX_NODE *node; /* 0004 */ int16_t head; /* 0006 */ int16_t tail; @@ -1288,7 +1344,7 @@ typedef struct { /* 0024 end */ } LOT_INFO; -typedef struct { +typedef struct FX_INFO { /* 0000 */ PHD_3DPOS pos; /* 0012 */ int16_t room_number; /* 0014 */ int16_t object_number; @@ -1302,7 +1358,7 @@ typedef struct { /* 0024 end */ } FX_INFO; -typedef struct { +typedef struct LARA_INFO { /* 0000 */ int16_t item_number; /* 0002 */ int16_t gun_status; /* 0004 */ int16_t gun_type; @@ -1340,7 +1396,7 @@ typedef struct { /* 00E6 end */ } LARA_INFO; -typedef struct { +typedef struct START_INFO { /* 0000 */ uint16_t pistol_ammo; /* 0002 */ uint16_t magnum_ammo; /* 0004 */ uint16_t uzi_ammo; @@ -1359,7 +1415,7 @@ typedef struct { /* 000F end */ } START_INFO; -typedef struct { +typedef struct SAVEGAME_INFO { START_INFO *start; uint32_t timer; uint32_t kills; @@ -1382,7 +1438,19 @@ typedef struct { char buffer[MAX_SAVEGAME_BUFFER]; } SAVEGAME_INFO; -typedef struct { +typedef struct CREATURE_INFO { + /* 0000 */ int16_t head_rotation; + /* 0002 */ int16_t neck_rotation; + /* 0004 */ int16_t maximum_turn; + /* 0006 */ uint16_t flags; + /* 0008 */ int16_t item_num; + /* 000A */ int32_t mood; + /* 000E */ LOT_INFO LOT; + /* 002C */ PHD_VECTOR target; + /* 003E end */ +} CREATURE_INFO; + +typedef struct TEXTSTRING { /* 0000 */ uint32_t flags; /* 0004 */ uint16_t text_flags; /* 0006 */ uint16_t bgnd_flags; @@ -1409,25 +1477,13 @@ typedef struct { /* 0038 end */ } TEXTSTRING; -typedef struct { - /* 0000 */ int16_t head_rotation; - /* 0002 */ int16_t neck_rotation; - /* 0004 */ int16_t maximum_turn; - /* 0006 */ uint16_t flags; - /* 0008 */ int16_t item_num; - /* 000A */ int32_t mood; - /* 000E */ LOT_INFO LOT; - /* 002C */ PHD_VECTOR target; - /* 003E end */ -} CREATURE_INFO; - -typedef struct { +typedef struct DISPLAYPU { /* 0000 */ int16_t duration; /* 0002 */ int16_t sprnum; /* 0004 end */ } DISPLAYPU; -typedef struct { +typedef struct COLL_INFO { /* 0000 */ int32_t mid_floor; /* 0004 */ int32_t mid_ceiling; /* 0008 */ int32_t mid_type; @@ -1462,7 +1518,7 @@ typedef struct { /* 005C end */ } COLL_INFO; -typedef struct { +typedef struct OBJECT_INFO { /* 0000 */ int16_t nmeshes; /* 0002 */ int16_t mesh_index; /* 0004 */ int32_t bone_index; @@ -1491,7 +1547,7 @@ typedef struct { /* 0032 end */ } OBJECT_INFO; -typedef struct { +typedef struct STATIC_INFO { /* 0000 */ int16_t mesh_number; /* 0002 */ int16_t flags; /* 0004 */ int16_t x_minp; @@ -1509,7 +1565,7 @@ typedef struct { /* 001C end */ } STATIC_INFO; -typedef struct { +typedef struct KEYSTUFF { /* 0000 */ uint8_t keymap[128]; /* 0080 */ uint8_t oldkeymap[128]; /* 0100 */ uint8_t keybuf[64]; @@ -1522,7 +1578,7 @@ typedef struct { /* 0146 end */ } KEYSTUFF; -typedef struct { +typedef struct GAME_VECTOR { /* 0000 */ int32_t x; /* 0004 */ int32_t y; /* 0008 */ int32_t z; @@ -1531,7 +1587,7 @@ typedef struct { /* 0010 end */ } GAME_VECTOR; -typedef struct { +typedef struct OBJECT_VECTOR { /* 0000 */ int32_t x; /* 0004 */ int32_t y; /* 0008 */ int32_t z; @@ -1540,7 +1596,7 @@ typedef struct { /* 0010 end */ } OBJECT_VECTOR; -typedef struct { +typedef struct CAMERA_INFO { /* 0000 */ GAME_VECTOR pos; /* 0010 */ GAME_VECTOR target; /* 0020 */ int32_t type; @@ -1566,7 +1622,7 @@ typedef struct { /* 0060 end */ } CAMERA_INFO; -typedef struct { +typedef struct ANIM_STRUCT { /* 0000 */ int16_t *frame_ptr; /* 0004 */ int16_t interpolation; /* 0006 */ int16_t current_anim_state; @@ -1583,14 +1639,14 @@ typedef struct { /* 0020 end */ } ANIM_STRUCT; -typedef struct { +typedef struct ANIM_CHANGE_STRUCT { /* 0000 */ int16_t goal_anim_state; /* 0004 */ int16_t number_ranges; /* 0006 */ int16_t range_index; /* 0008 end */ } ANIM_CHANGE_STRUCT; -typedef struct { +typedef struct ANIM_RANGE_STRUCT { /* 0000 */ int16_t start_frame; /* 0004 */ int16_t end_frame; /* 0006 */ int16_t link_anim_num; @@ -1598,70 +1654,14 @@ typedef struct { /* 000A end */ } ANIM_RANGE_STRUCT; -typedef struct { - /* 0000 */ int32_t _00; - /* 0004 */ int32_t _01; - /* 0008 */ int32_t _02; - /* 000C */ int32_t _03; - /* 0010 */ int32_t _10; - /* 0014 */ int32_t _11; - /* 0018 */ int32_t _12; - /* 001C */ int32_t _13; - /* 0020 */ int32_t _20; - /* 0024 */ int32_t _21; - /* 0028 */ int32_t _22; - /* 002C */ int32_t _23; - /* 0030 end */ -} PHD_MATRIX; - -typedef struct { +typedef struct DOOR_VBUF { /* 0000 */ int32_t xv; /* 0004 */ int32_t yv; /* 0008 */ int32_t zv; /* 000C end */ } DOOR_VBUF; -typedef struct { - /* 0000 */ int32_t xv; - /* 0004 */ int32_t yv; - /* 0008 */ int32_t zv; - /* 000C */ int32_t xs; - /* 0010 */ int32_t ys; - /* 0014 */ int32_t dist; - /* 0018 */ int16_t clip; - /* 001A */ int16_t g; - /* 001C */ uint16_t u; - /* 001E */ uint16_t v; - /* 0020 end */ -} PHD_VBUF; - -typedef struct { - /* 0000 */ uint16_t drawtype; - /* 0002 */ uint16_t tpage; - /* 0004 */ uint16_t u1; - /* 0006 */ uint16_t v1; - /* 0008 */ uint16_t u2; - /* 000A */ uint16_t v2; - /* 000C */ uint16_t u3; - /* 000E */ uint16_t v3; - /* 0010 */ uint16_t u4; - /* 0012 */ uint16_t v4; - /* 0014 end */ -} PHDTEXTURESTRUCT; - -typedef struct { - /* 0000 */ uint16_t tpage; - /* 0002 */ uint16_t offset; - /* 0004 */ uint16_t width; - /* 0006 */ uint16_t height; - /* 0008 */ int16_t x1; - /* 000A */ int16_t y1; - /* 000C */ int16_t x2; - /* 000E */ int16_t y2; - /* 0010 end */ -} PHDSPRITESTRUCT; - -typedef struct { +typedef struct WEAPON_INFO { /* 0000 */ PHD_ANGLE lock_angles[4]; /* 0008 */ PHD_ANGLE left_angles[4]; /* 0010 */ PHD_ANGLE right_angles[4]; @@ -1676,7 +1676,7 @@ typedef struct { /* 002E end */ } WEAPON_INFO; -typedef struct { +typedef struct SPHERE { /* 0000 */ int32_t x; /* 0004 */ int32_t y; /* 0008 */ int32_t z; @@ -1684,7 +1684,7 @@ typedef struct { /* 0010 end */ } SPHERE; -typedef struct { +typedef struct BITE_INFO { /* 0000 */ int32_t x; /* 0004 */ int32_t y; /* 0008 */ int32_t z; @@ -1692,7 +1692,7 @@ typedef struct { /* 0010 end */ } BITE_INFO; -typedef struct { +typedef struct AI_INFO { /* 0000 */ int16_t zone_number; /* 0002 */ int16_t enemy_zone; /* 0004 */ int32_t distance; @@ -1703,7 +1703,7 @@ typedef struct { /* 0012 end */ } AI_INFO; -typedef struct { +typedef struct BOX_INFO { /* 0000 */ int32_t left; /* 0004 */ int32_t right; /* 0008 */ int32_t top; @@ -1713,7 +1713,7 @@ typedef struct { /* 0014 end */ } BOX_INFO; -typedef struct { +typedef struct REQUEST_INFO { /* 0000 */ uint16_t items; /* 0002 */ uint16_t requested; /* 0004 */ uint16_t vis_lines; @@ -1737,7 +1737,7 @@ typedef struct { /* 0090 end */ } REQUEST_INFO; -typedef struct { +typedef struct IMOTION_INFO { /* 0000 */ int16_t count; /* 0002 */ int16_t status; /* 0004 */ int16_t status_target; @@ -1761,7 +1761,7 @@ typedef struct { /* 0032 end */ } IMOTION_INFO; -typedef struct { +typedef struct INVENTORY_SPRITE { /* 0000 */ int16_t shape; /* 0002 */ int16_t x; /* 0004 */ int16_t y; @@ -1773,7 +1773,7 @@ typedef struct { /* 0016 end */ } INVENTORY_SPRITE; -typedef struct { +typedef struct INVENTORY_ITEM { /* 0000 */ char *string; /* 0004 */ int16_t object_number; /* 0006 */ int16_t frames_total; @@ -1800,7 +1800,7 @@ typedef struct { /* 003E end */ } INVENTORY_ITEM; -typedef struct { +typedef struct RING_INFO { /* 0000 */ INVENTORY_ITEM **list; /* 0004 */ int16_t type; /* 0006 */ int16_t radius; @@ -1821,12 +1821,12 @@ typedef struct { /* 0050 end */ } RING_INFO; -typedef struct { - GameFlowSequenceType type; +typedef struct GAMEFLOW_SEQUENCE { + GAMEFLOW_SEQUENCE_TYPE type; void *data; -} GameFlowSequence; +} GAMEFLOW_SEQUENCE; -typedef struct { +typedef struct GAMEFLOW_LEVEL { GAMEFLOW_LEVEL_TYPE level_type; int16_t music; const char *level_title; @@ -1843,10 +1843,10 @@ typedef struct { const char *puzzle4; int8_t demo; int16_t secrets; - GameFlowSequence *sequence; -} GameFlowLevel; + GAMEFLOW_SEQUENCE *sequence; +} GAMEFLOW_LEVEL; -typedef struct { +typedef struct GAMEFLOW { int32_t gym_level_num; int32_t first_level_num; int32_t last_level_num; @@ -1854,9 +1854,9 @@ typedef struct { int32_t level_count; const char *save_game_fmt; int8_t has_demo; - GameFlowLevel *levels; + GAMEFLOW_LEVEL *levels; char *strings[GS_NUMBER_OF]; -} GameFlow; +} GAMEFLOW; #pragma pack(pop) diff --git a/src/game/vars.c b/src/game/vars.c index 2920c6cc7..707e6e31e 100644 --- a/src/game/vars.c +++ b/src/game/vars.c @@ -29,4 +29,4 @@ char *UserSettingsPath = "atiset.dat"; int16_t StoredLaraHealth = 0; int16_t BarOffsetY[6]; -GameFlow GF; +GAMEFLOW GF; diff --git a/src/game/vars.h b/src/game/vars.h index 993975bac..cc4aae8b9 100644 --- a/src/game/vars.h +++ b/src/game/vars.h @@ -264,7 +264,7 @@ extern SAVEGAME_INFO SaveGame; extern int32_t DemoLevel; extern char *UserSettingsPath; -extern GameFlow GF; +extern GAMEFLOW GF; extern int32_t MeshCount; extern int32_t MeshPtrCount;