mirror of https://github.com/zeldaret/mm.git
28 lines
1005 B
C
28 lines
1005 B
C
#ifndef Z64_DOOR_H
|
|
#define Z64_DOOR_H
|
|
|
|
#include "ultra64.h"
|
|
#include "z64actor.h"
|
|
|
|
typedef struct KnobDoorActor {
|
|
/* 0x000 */ DynaPolyActor dyna;
|
|
/* 0x15C */ SkelAnime skelAnime;
|
|
/* 0x1A0 */ u8 animIndex; // Value between 0 ~ 9. 0 ~ 4 are for left doors while 5 ~ 9 are for right doors. Each value maps to a PlayerTransformation
|
|
/* 0x1A1 */ u8 requestOpen; // An actor can set this member to `true` to request this door to open. It must also set `animIndex`
|
|
/* 0x1A2 */ s8 objectSlot;
|
|
/* 0x1A3 */ s8 dlIndex;
|
|
} KnobDoorActor; // size = 0x1A4
|
|
|
|
typedef struct SlidingDoorActor {
|
|
/* 0x000 */ DynaPolyActor dyna;
|
|
/* 0x15C */ s16 unk_15C;
|
|
/* 0x15E */ s16 unk_15E;
|
|
} SlidingDoorActor; // size = 0x160
|
|
|
|
#define TRANSITION_ACTOR_PARAMS_INDEX_SHIFT 10
|
|
#define TRANSITION_ACTOR_PARAMS(index, params) ((index) << TRANSITION_ACTOR_PARAMS_INDEX_SHIFT) + ((params) & 0x3FF)
|
|
|
|
#define DOOR_GET_TRANSITION_ID(thisx) ((u16)(thisx)->params >> TRANSITION_ACTOR_PARAMS_INDEX_SHIFT)
|
|
|
|
#endif
|