Files
Diddy-Kong-Racing/include/enums.h
T

198 lines
4.6 KiB
C

#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