tmc/include/transitions.h

76 lines
1.9 KiB
C

#ifndef TRANSITIONS_H
#define TRANSITIONS_H
#include "global.h"
#include "roomid.h"
typedef enum {
WARP_TYPE_BORDER,
WARP_TYPE_AREA,
WARP_TYPE_BORDER2,
WARP_TYPE_AREA2,
WARP_TYPE_END_OF_LIST = 0xffff,
} WarpType;
typedef enum {
TRANSITION_TYPE_NORMAL,
TRANSITION_TYPE_INSTANT_MINISH,
TRANSITION_TYPE_DROP_IN,
TRANSITION_TYPE_INSTANT,
TRANSITION_TYPE_STEP_FORWARD,
TRANSITION_TYPE_5,
TRANSITION_TYPE_DROP_IN_MINISH,
TRANSITION_TYPE_STAIR_EXIT,
TRANSITION_TYPE_8,
TRANSITION_TYPE_9,
TRANSITION_TYPE_HOP_IN_FORWARD,
TRANSITION_TYPE_HOP_IN,
TRANSITION_TYPE_FLY_IN,
} TransitionType;
typedef enum {
TRANSITION_SHAPE_AREA_12x12,
TRANSITION_SHAPE_AREA_12x28,
TRANSITION_SHAPE_AREA_28x12,
TRANSITION_SHAPE_AREA_44x12,
TRANSITION_SHAPE_BORDER_NORTH_WEST = 0x01,
TRANSITION_SHAPE_BORDER_NORTH_EAST = 0x02,
TRANSITION_SHAPE_BORDER_NORTH = 0x03,
TRANSITION_SHAPE_BORDER_EAST_NORTH = 0x04,
TRANSITION_SHAPE_BORDER_EAST_SOUTH = 0x08,
TRANSITION_SHAPE_BORDER_EAST = 0x0c,
TRANSITION_SHAPE_BORDER_SOUTH_WEST = 0x10,
TRANSITION_SHAPE_BORDER_SOUTH_EAST = 0x20,
TRANSITION_SHAPE_BORDER_SOUTH = 0x30,
TRANSITION_SHAPE_BORDER_WEST_NORTH = 0x40,
TRANSITION_SHAPE_BORDER_WEST_SOUTH = 0x80,
TRANSITION_SHAPE_BORDER_WEST = 0xc0,
} TransitionShape;
typedef struct Transition {
u16 warp_type; /**< @see WarpType */
u16 startX;
u16 startY;
u16 endX;
u16 endY;
u8 shape;
u8 area;
RoomID room : 8;
u8 layer;
TransitionType transition_type : 8;
u8 facing_direction; // 0-4
u16 transitionSFX;
u8 unk2;
u8 unk3;
} Transition;
extern const Transition gExitList_RoyalValley_ForestMaze[];
extern const Transition gUnk_08134FBC[];
extern const Transition gUnk_08135048[];
extern const Transition gUnk_08135190[];
extern const Transition gUnk_0813A76C[];
extern const Transition* const* const gExitLists[];
#endif // TRANSITIONS_H