2019-08-25 00:46:40 -04:00
|
|
|
#ifndef _LEVEL_UPDATE_H
|
|
|
|
#define _LEVEL_UPDATE_H
|
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define TIMER_CONTROL_SHOW 0
|
|
|
|
#define TIMER_CONTROL_START 1
|
|
|
|
#define TIMER_CONTROL_STOP 2
|
|
|
|
#define TIMER_CONTROL_HIDE 3
|
|
|
|
|
|
|
|
#define WARP_OP_NONE 0x00
|
|
|
|
#define WARP_OP_UNKNOWN_01 0x01
|
|
|
|
#define WARP_OP_UNKNOWN_02 0x02
|
|
|
|
#define WARP_OP_WARP_DOOR 0x03
|
|
|
|
#define WARP_OP_WARP_OBJECT 0x04
|
|
|
|
#define WARP_OP_TELEPORT 0x05
|
|
|
|
#define WARP_OP_STAR_EXIT 0x11
|
|
|
|
#define WARP_OP_DEATH 0x12
|
|
|
|
#define WARP_OP_WARP_FLOOR 0x13
|
|
|
|
#define WARP_OP_GAME_OVER 0x14
|
|
|
|
#define WARP_OP_CREDITS_END 0x15
|
|
|
|
#define WARP_OP_DEMO_NEXT 0x16
|
|
|
|
#define WARP_OP_CREDITS_START 0x17
|
|
|
|
#define WARP_OP_CREDITS_NEXT 0x18
|
|
|
|
#define WARP_OP_DEMO_END 0x19
|
|
|
|
|
|
|
|
#define WARP_OP_TRIGGERS_LEVEL_SELECT 0x10
|
|
|
|
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_01 0x01
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_02 0x02
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_03 0x03
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_04 0x04
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_10 0x10
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_11 0x11
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_12 0x12
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_13 0x13
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_14 0x14
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_15 0x15
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_16 0x16
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_17 0x17
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_20 0x20
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_21 0x21
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_22 0x22
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_23 0x23
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_24 0x24
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_25 0x25
|
|
|
|
#define MARIO_SPAWN_UNKNOWN_27 0x27
|
|
|
|
|
|
|
|
|
|
|
|
struct CreditsEntry
|
|
|
|
{
|
|
|
|
/*0x00*/ u8 levelNum;
|
|
|
|
/*0x01*/ u8 areaIndex;
|
|
|
|
/*0x02*/ u8 unk02;
|
|
|
|
/*0x03*/ s8 marioAngle;
|
|
|
|
/*0x04*/ Vec3s marioPos;
|
|
|
|
/*0x0C*/ const char **unk0C;
|
|
|
|
};
|
|
|
|
|
|
|
|
extern struct CreditsEntry *gCurrCreditsEntry;
|
|
|
|
|
|
|
|
extern struct MarioState gMarioStates[];
|
|
|
|
extern struct MarioState *gMarioState;
|
|
|
|
|
|
|
|
extern s16 sCurrPlayMode;
|
|
|
|
extern u16 D_80339ECA;
|
|
|
|
extern s16 sTransitionTimer;
|
|
|
|
extern void (*sTransitionUpdate)(s16 *);
|
|
|
|
extern u8 unused3[4];
|
|
|
|
|
|
|
|
struct WarpDest {
|
|
|
|
u8 type;
|
|
|
|
u8 levelNum;
|
|
|
|
u8 areaIdx;
|
|
|
|
u8 nodeId;
|
|
|
|
u32 arg;
|
|
|
|
};
|
|
|
|
|
|
|
|
extern struct WarpDest sWarpDest;
|
|
|
|
|
|
|
|
extern s16 D_80339EE0;
|
|
|
|
extern s16 sDelayedWarpOp;
|
|
|
|
extern s16 sDelayedWarpTimer;
|
|
|
|
extern s16 sSourceWarpNodeId;
|
|
|
|
extern s32 sDelayedWarpArg;
|
|
|
|
extern u8 unused4[2];
|
|
|
|
extern s8 sTimerRunning;
|
|
|
|
|
|
|
|
struct HudDisplay {
|
|
|
|
/*0x00*/ s16 lives;
|
|
|
|
/*0x02*/ s16 coins;
|
|
|
|
/*0x04*/ s16 stars;
|
|
|
|
/*0x06*/ s16 wedges;
|
|
|
|
/*0x08*/ s16 keys;
|
|
|
|
/*0x0A*/ s16 flags;
|
|
|
|
/*0x0C*/ u16 timer;
|
|
|
|
};
|
|
|
|
|
|
|
|
extern struct HudDisplay gHudDisplay;
|
|
|
|
extern s8 gShouldNotPlayCastleMusic;
|
|
|
|
|
|
|
|
enum HUDDisplayFlag {
|
|
|
|
HUD_DISPLAY_FLAG_LIVES = 0x0001,
|
|
|
|
HUD_DISPLAY_FLAG_COIN_COUNT = 0x0002,
|
|
|
|
HUD_DISPLAY_FLAG_STAR_COUNT = 0x0004,
|
|
|
|
HUD_DISPLAY_FLAG_CAMERA_AND_POWER = 0x0008,
|
2019-10-05 15:08:05 -04:00
|
|
|
HUD_DISPLAY_FLAG_KEYS = 0x0010,
|
2019-08-25 00:46:40 -04:00
|
|
|
HUD_DISPLAY_FLAG_UNKNOWN_0020 = 0x0020,
|
|
|
|
HUD_DISPLAY_FLAG_TIMER = 0x0040,
|
|
|
|
HUD_DISPLAY_FLAG_EMPHASIZE_POWER = 0x8000,
|
|
|
|
|
|
|
|
HUD_DISPLAY_NONE = 0x0000,
|
2019-10-05 15:08:05 -04:00
|
|
|
HUD_DISPLAY_DEFAULT = HUD_DISPLAY_FLAG_LIVES | HUD_DISPLAY_FLAG_COIN_COUNT | HUD_DISPLAY_FLAG_STAR_COUNT | HUD_DISPLAY_FLAG_CAMERA_AND_POWER | HUD_DISPLAY_FLAG_KEYS | HUD_DISPLAY_FLAG_UNKNOWN_0020
|
2019-08-25 00:46:40 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
u16 level_control_timer(s32 timerOp);
|
|
|
|
void func_80249788(u32 arg, u32 color);
|
|
|
|
void func_8024980C(u32 arg);
|
|
|
|
s16 level_trigger_warp(struct MarioState *m, s32 warpOp);
|
|
|
|
void level_set_transition(s16 length, void (*updateFunction)(s16 *));
|
|
|
|
|
|
|
|
s32 lvl_init_or_update(s16 initOrUpdate, s32);
|
|
|
|
s32 lvl_init_from_save_file(s16, s32 levelNum);
|
|
|
|
s32 lvl_set_current_level(s16, s32 levelNum);
|
|
|
|
s32 lvl_play_the_end_screen_sound(s16, s32);
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|