#ifndef ENUMS_H #define ENUMS_H #include "sound_ids.h" #include "sequence_ids.h" #include "asset_enums.h" /* All the enums defined here can be used in asset files */ // Alias for brevity. typedef AssetLevelHeadersEnum MapId; // There are a few instances of comparing MapId with special, negative values. typedef enum SpecialMapId { SPECIAL_MAP_ID_UNK_NEG10 = -10, SPECIAL_MAP_ID_UNK_NEG2 = -2, SPECIAL_MAP_ID_NO_LEVEL = -1, } SpecialMapId; typedef enum Vehicle { VEHICLE_CAR, VEHICLE_HOVERCRAFT, VEHICLE_PLANE, NUMBER_OF_VEHICLE_TYPES } Vehicle; typedef enum CameraMode { CAMERA_CAR, CAMERA_PLANE, CAMERA_UNUSED, CAMERA_FIXED, CAMERA_HOVERCRAFT, CAMERA_FINISH_CHALLENGE, CAMERA_LOOP, CAMERA_FINISH_RACE } CameraMode; typedef enum Language { LANGUAGE_ENGLISH, LANGUAGE_GERMAN, LANGUAGE_FRENCH, LANGUAGE_JAPANESE } Language; typedef enum World { WORLD_NONE = -1, // This enum starts at -1 instead of 0. WORLD_CENTRAL_AREA, WORLD_DINO_DOMAIN, WORLD_SHERBET_ISLAND, WORLD_SNOWFLAKE_MOUNTAIN, WORLD_DRAGON_FOREST, WORLD_FUTURE_FUN_LAND } World; typedef enum RaceType { RACETYPE_DEFAULT = 0, RACETYPE_HORSESHOE_GULCH = 3, RACETYPE_HUBWORLD = 5, RACETYPE_CUTSCENE_1 = 6, // Not sure what the difference between these two are. RACETYPE_CUTSCENE_2 = 7, RACETYPE_BOSS = 8, RACETYPE_CHALLENGE = 64, // For masking RACETYPE_CHALLENGE_BATTLE = 64, RACETYPE_CHALLENGE_BANANAS = 65, RACETYPE_CHALLENGE_EGGS = 66 } RaceType; typedef enum HorizontalAlignmentFlags { HORZ_ALIGN_LEFT = 0, HORZ_ALIGN_RIGHT = 1, HORZ_ALIGN_CENTER = 4 } HorizontalAlignmentFlags; typedef enum VerticalAlignmentFlags { VERT_ALIGN_TOP = 0, VERT_ALIGN_BOTTOM = 2, VERT_ALIGN_MIDDLE = 8 } VerticalAlignmentFlags; typedef enum AlignmentFlags { ALIGN_TOP_LEFT = VERT_ALIGN_TOP | HORZ_ALIGN_LEFT, ALIGN_TOP_CENTER = VERT_ALIGN_TOP | HORZ_ALIGN_CENTER, ALIGN_TOP_RIGHT = VERT_ALIGN_TOP | HORZ_ALIGN_RIGHT, ALIGN_MIDDLE_LEFT = VERT_ALIGN_MIDDLE | HORZ_ALIGN_LEFT, ALIGN_MIDDLE_CENTER = VERT_ALIGN_MIDDLE | HORZ_ALIGN_CENTER, ALIGN_MIDDLE_RIGHT = VERT_ALIGN_MIDDLE | HORZ_ALIGN_RIGHT, ALIGN_BOTTOM_LEFT = VERT_ALIGN_BOTTOM | HORZ_ALIGN_LEFT, ALIGN_BOTTOM_CENTER = VERT_ALIGN_BOTTOM | HORZ_ALIGN_CENTER, ALIGN_BOTTOM_RIGHT = VERT_ALIGN_BOTTOM | HORZ_ALIGN_RIGHT } AlignmentFlags; typedef enum MiscAsset { MISC_ASSET_UNK00, MISC_ASSET_UNK01, MISC_ASSET_UNK02, MISC_ASSET_UNK03, MISC_ASSET_UNK04, MISC_ASSET_UNK05, MISC_ASSET_UNK06, MISC_ASSET_UNK07, MISC_ASSET_UNK08, MISC_RACER_WEIGHT, MISC_RACER_HANDLING, MISC_ASSET_UNK0B, MISC_ASSET_UNK0C, MISC_ASSET_UNK0D, MISC_ASSET_UNK0E, MISC_ASSET_UNK0F, MISC_ASSET_UNK10, MISC_ASSET_UNK11, MISC_ASSET_UNK12, MISC_ASSET_UNK13, MISC_ASSET_UNK14, MISC_ASSET_SHIELD_DATA, MISC_ASSET_MAGNET_DATA, MISC_ASSET_UNK17, MISC_ASSET_UNK18, MISC_ASSET_UNK19, MISC_ASSET_UNK1A, MISC_ASSET_UNK1B, MISC_ASSET_UNK1C, MISC_ASSET_UNK1D, MISC_ASSET_UNK1E, MISC_ASSET_UNK1F, MISC_ASSET_UNK20, MISC_ASSET_UNK21, MISC_ASSET_UNK22, MISC_ASSET_UNK23, MISC_ASSET_UNK24, MISC_ASSET_UNK25, MISC_ASSET_UNK26, MISC_ASSET_UNK27, MISC_ASSET_UNK28, MISC_ASSET_UNK29, MISC_ASSET_UNK2A, MISC_ASSET_UNK2B, MISC_ASSET_UNK2C, MISC_ASSET_UNK2D, MISC_ASSET_UNK2E, MISC_ASSET_UNK2F, MISC_ASSET_UNK30, MISC_ASSET_UNK31, MISC_ASSET_UNK32, MISC_ASSET_UNK33, MISC_ASSET_UNK34, MISC_ASSET_UNK35, MISC_ASSET_UNK36, MISC_ASSET_UNK37, MISC_ASSET_UNK38, MISC_ASSET_UNK39, MISC_ASSET_UNK3A, MISC_ASSET_UNK3B, MISC_ASSET_UNK3C, MISC_ASSET_UNK3D, MISC_ASSET_UNK3E, MISC_ASSET_UNK3F, MISC_ASSET_UNK40, MISC_ASSET_UNK41, MISC_ASSET_UNK42, MISC_ASSET_UNK43, MISC_ASSET_UNK44, MISC_ASSET_UNK45, MISC_ASSET_UNK46, MISC_ASSET_UNK47, MISC_ASSET_UNK48, MISC_ASSET_UNK49, MISC_ASSET_UNK4A, MISC_ASSET_UNK4B, MISC_ASSET_UNK4C } MiscAsset; typedef enum SurfaceType { SURFACE_DEFAULT, SURFACE_GRASS, SURFACE_SAND, SURFACE_UNK03, SURFACE_STONE, SURFACE_UNK05, SURFACE_UNK06, SURFACE_UNK07, SURFACE_UNK08, SURFACE_UNK09, SURFACE_FROZEN_WATER, SURFACE_UNK0B, SURFACE_TAJ_PAD, SURFACE_SNOW, SURFACE_UNK0E, SURFACE_UNK0F, SURFACE_UNK10, SURFACE_INVIS_WALL, SURFACE_UNK12, SURFACE_NONE = 255 } SurfaceType; #endif