2023-12-14 14:41:43 +00:00
|
|
|
#ifndef SF64_LEVEL
|
|
|
|
#define SF64_LEVEL
|
|
|
|
|
2023-12-24 16:12:09 +00:00
|
|
|
#define SAVE_SLOT_SOLAR 13
|
|
|
|
#define SAVE_SLOT_VENOM_1 14
|
|
|
|
#define SAVE_SLOT_VENOM_2 15
|
|
|
|
|
2024-04-25 22:01:25 +00:00
|
|
|
typedef enum LevelType {
|
2023-12-24 19:28:35 +00:00
|
|
|
/* 0 */ LEVELTYPE_PLANET,
|
|
|
|
/* 1 */ LEVELTYPE_SPACE,
|
|
|
|
/* 2 */ LEVELTYPE_UNK2,
|
|
|
|
/* 3 */ LEVELTYPE_UNK3,
|
2023-12-14 14:41:43 +00:00
|
|
|
} LevelType;
|
|
|
|
|
2024-04-25 22:01:25 +00:00
|
|
|
typedef enum MissionStatus {
|
2024-04-25 04:14:49 +00:00
|
|
|
/* 0 */ MISSION_COMPLETE,
|
|
|
|
/* 1 */ MISSION_ACCOMPLISHED,
|
|
|
|
/* 2 */ MISSION_WARP,
|
2024-05-20 14:28:13 +00:00
|
|
|
/* 3 */ MISSION_MAX,
|
2024-04-25 04:14:49 +00:00
|
|
|
} MissionStatus;
|
|
|
|
|
2024-04-25 22:01:25 +00:00
|
|
|
typedef struct Environment {
|
2023-12-14 14:41:43 +00:00
|
|
|
/* 0x00 */ s32 type;
|
2024-04-25 22:01:25 +00:00
|
|
|
/* 0x04 */ s32 unk04;
|
2023-12-14 14:41:43 +00:00
|
|
|
/* 0x08 */ u16 bgColor;
|
2023-12-19 14:54:50 +00:00
|
|
|
/* 0x0A */ u16 seqId;
|
2023-12-14 14:41:43 +00:00
|
|
|
/* 0x0C */ s32 fogR;
|
|
|
|
/* 0x10 */ s32 fogG;
|
|
|
|
/* 0x14 */ s32 fogB;
|
|
|
|
/* 0x18 */ s32 fogN;
|
|
|
|
/* 0x1C */ s32 fogF;
|
2024-04-25 22:01:25 +00:00
|
|
|
/* 0x20 */ Vec3f lightDir;
|
2023-12-14 14:41:43 +00:00
|
|
|
/* 0x2C */ s32 lightR;
|
|
|
|
/* 0x30 */ s32 lightG;
|
|
|
|
/* 0x34 */ s32 lightB;
|
|
|
|
/* 0x38 */ s32 ambR;
|
|
|
|
/* 0x3C */ s32 ambG;
|
|
|
|
/* 0x40 */ s32 ambB;
|
2024-04-25 22:01:25 +00:00
|
|
|
} Environment; // size = 0x44
|
|
|
|
|
|
|
|
typedef enum GroundType {
|
|
|
|
/* 0 */ GROUND_0,
|
|
|
|
/* 1 */ GROUND_1,
|
|
|
|
/* 2 */ GROUND_2,
|
|
|
|
/* 3 */ GROUND_3,
|
|
|
|
/* 4 */ GROUND_4,
|
|
|
|
/* 5 */ GROUND_5,
|
|
|
|
/* 6 */ GROUND_6,
|
|
|
|
/* 7 */ GROUND_7,
|
|
|
|
/* 10 */ GROUND_10 = 10,
|
|
|
|
/* 11 */ GROUND_11,
|
|
|
|
/* 12 */ GROUND_12,
|
|
|
|
/* 13 */ GROUND_13,
|
|
|
|
} GroundType;
|
2023-12-14 14:41:43 +00:00
|
|
|
|
2024-04-23 02:51:20 +00:00
|
|
|
typedef enum SceneId {
|
|
|
|
/* 0 */ SCENE_TITLE,
|
|
|
|
/* 1 */ SCENE_MENU,
|
|
|
|
/* 2 */ SCENE_MAP,
|
|
|
|
/* 3 */ SCENE_GAME_OVER,
|
|
|
|
/* 4 */ SCENE_CREDITS,
|
|
|
|
/* 5 */ SCENE_CORNERIA,
|
|
|
|
/* 6 */ SCENE_METEO,
|
|
|
|
/* 7 */ SCENE_TITANIA,
|
|
|
|
/* 8 */ SCENE_SECTOR_X,
|
|
|
|
/* 9 */ SCENE_AQUAS,
|
|
|
|
/* 10 */ SCENE_AREA_6,
|
|
|
|
/* 11 */ SCENE_FORTUNA,
|
|
|
|
/* 12 */ SCENE_UNK_4,
|
|
|
|
/* 13 */ SCENE_SECTOR_Y,
|
|
|
|
/* 14 */ SCENE_SOLAR,
|
|
|
|
/* 15 */ SCENE_ZONESS,
|
|
|
|
/* 16 */ SCENE_VENOM_ANDROSS,
|
|
|
|
/* 17 */ SCENE_TRAINING,
|
|
|
|
/* 18 */ SCENE_VENOM_1,
|
|
|
|
/* 19 */ SCENE_KATINA,
|
2024-04-25 22:01:25 +00:00
|
|
|
/* 20 */ SCENE_20,
|
|
|
|
/* 21 */ SCENE_MACBETH,
|
|
|
|
/* 22 */ SCENE_BOLSE,
|
|
|
|
/* 23 */ SCENE_SECTOR_Z,
|
|
|
|
/* 24 */ SCENE_VENOM_2,
|
2024-04-23 02:51:20 +00:00
|
|
|
/* 50 */ SCENE_VERSUS = 50,
|
|
|
|
/* 99 */ SCENE_LOGO = 99,
|
|
|
|
} SceneId;
|
2023-12-14 14:41:43 +00:00
|
|
|
|
2023-12-24 16:12:09 +00:00
|
|
|
typedef enum LevelId {
|
2024-02-06 15:14:05 +00:00
|
|
|
/* -1 */ LEVEL_UNK_M1 = -1,
|
2023-12-24 19:28:35 +00:00
|
|
|
/* 0 */ LEVEL_CORNERIA,
|
|
|
|
/* 1 */ LEVEL_METEO,
|
|
|
|
/* 2 */ LEVEL_SECTOR_X,
|
|
|
|
/* 3 */ LEVEL_AREA_6,
|
|
|
|
/* 4 */ LEVEL_UNK_4,
|
|
|
|
/* 5 */ LEVEL_SECTOR_Y,
|
|
|
|
/* 6 */ LEVEL_VENOM_1,
|
|
|
|
/* 7 */ LEVEL_SOLAR,
|
|
|
|
/* 8 */ LEVEL_ZONESS,
|
|
|
|
/* 9 */ LEVEL_VENOM_ANDROSS,
|
2023-12-24 16:12:09 +00:00
|
|
|
/* 10 */ LEVEL_TRAINING,
|
|
|
|
/* 11 */ LEVEL_MACBETH,
|
|
|
|
/* 12 */ LEVEL_TITANIA,
|
|
|
|
/* 13 */ LEVEL_AQUAS,
|
|
|
|
/* 14 */ LEVEL_FORTUNA,
|
|
|
|
/* 15 */ LEVEL_UNK_15,
|
|
|
|
/* 16 */ LEVEL_KATINA,
|
|
|
|
/* 17 */ LEVEL_BOLSE,
|
|
|
|
/* 18 */ LEVEL_SECTOR_Z,
|
2023-12-24 19:28:35 +00:00
|
|
|
/* 19 */ LEVEL_VENOM_2,
|
|
|
|
/* 20 */ LEVEL_VERSUS,
|
2023-12-27 20:14:13 +00:00
|
|
|
/* 77 */ LEVEL_WARP_ZONE = 77,
|
2023-12-14 14:41:43 +00:00
|
|
|
} LevelId;
|
|
|
|
|
2024-01-14 01:09:13 +00:00
|
|
|
typedef enum PlanetId {
|
2024-02-16 22:04:22 +00:00
|
|
|
/* -1 */ PLANET_NONE=-1,
|
|
|
|
/* 0 */ PLANET_METEO,
|
|
|
|
/* 1 */ PLANET_AREA_6,
|
|
|
|
/* 2 */ PLANET_BOLSE,
|
|
|
|
/* 3 */ PLANET_SECTOR_Z,
|
|
|
|
/* 4 */ PLANET_SECTOR_X,
|
|
|
|
/* 5 */ PLANET_SECTOR_Y,
|
|
|
|
/* 6 */ PLANET_KATINA,
|
|
|
|
/* 7 */ PLANET_MACBETH,
|
|
|
|
/* 8 */ PLANET_ZONESS,
|
|
|
|
/* 9 */ PLANET_CORNERIA,
|
2024-01-14 01:09:13 +00:00
|
|
|
/* 10 */ PLANET_TITANIA,
|
|
|
|
/* 11 */ PLANET_AQUAS,
|
|
|
|
/* 12 */ PLANET_FORTUNA,
|
|
|
|
/* 13 */ PLANET_VENOM,
|
|
|
|
/* 14 */ PLANET_SOLAR,
|
|
|
|
/* 15 */ PLANET_MAX,
|
|
|
|
} PlanetId;
|
|
|
|
|
2024-01-10 17:55:08 +00:00
|
|
|
typedef enum VsStage {
|
2023-12-24 19:28:35 +00:00
|
|
|
/* 0 */ VS_STAGE_CORNERIA,
|
|
|
|
/* 1 */ VS_STAGE_KATINA,
|
|
|
|
/* 2 */ VS_STAGE_SECTOR_Z,
|
2023-12-20 19:32:50 +00:00
|
|
|
} VsStage;
|
|
|
|
|
2024-05-25 17:17:03 +00:00
|
|
|
typedef enum VsMatchType {
|
|
|
|
/* 0 */ VS_MATCH_POINTS,
|
|
|
|
/* 1 */ VS_MATCH_BATTLE,
|
|
|
|
/* 2 */ VS_MATCH_TIME,
|
|
|
|
} VsMatchType;
|
|
|
|
|
|
|
|
#define VS_TIME_UP(countdown) (((countdown)[0] == 0) && ((countdown)[1] == 0) && ((countdown)[2] == 0))
|
|
|
|
|
|
|
|
typedef enum VsState {
|
|
|
|
/* 0 */ VS_STATE_0,
|
|
|
|
/* 1 */ VS_STATE_1,
|
|
|
|
/* 2 */ VS_STATE_2,
|
|
|
|
/* 3 */ VS_STATE_3,
|
|
|
|
/* 4 */ VS_STATE_4,
|
|
|
|
/* 5 */ VS_STATE_5,
|
|
|
|
/* 6 */ VS_STATE_6,
|
|
|
|
/* 7 */ VS_STATE_7,
|
|
|
|
/* 8 */ VS_STATE_8,
|
|
|
|
/* 9 */ VS_STATE_9,
|
|
|
|
/* 10 */ VS_STATE_10,
|
|
|
|
/* 11 */ VS_STATE_11,
|
|
|
|
/* 12 */ VS_STATE_12,
|
|
|
|
/* 13 */ VS_STATE_13,
|
|
|
|
/* 14 */ VS_STATE_14,
|
|
|
|
/* 20 */ VS_STATE_20 = 20,
|
|
|
|
} VsState;
|
|
|
|
|
2024-04-25 22:01:25 +00:00
|
|
|
typedef enum GroundSurface {
|
|
|
|
/* 0 */ SURFACE_GRASS,
|
|
|
|
/* 1 */ SURFACE_ROCK,
|
|
|
|
/* 2 */ SURFACE_WATER,
|
|
|
|
} GroundSurface;
|
2024-04-05 20:11:36 +00:00
|
|
|
|
2023-12-14 14:41:43 +00:00
|
|
|
#endif
|