Obj_Oshihiki (#636)

This commit is contained in:
Maide
2022-01-29 20:00:43 -05:00
committed by GitHub
parent e442808dfc
commit e4010be70c
6 changed files with 622 additions and 64 deletions
+1 -1
View File
@@ -2062,7 +2062,7 @@ void func_80123DA4(Player* player);
void func_80123E90(GlobalContext* globalCtx, Actor* actor);
void func_80123F2C(GlobalContext* globalCtx, s32 arg1);
s32 func_80123F48(GlobalContext* globalCtx, Vec3f* arg1, f32 arg2, f32 arg3);
// void func_80124020(void);
s32 func_80124020(void);
u8 Player_GetMask(GlobalContext* globalCtx);
void Player_RemoveMask(GlobalContext* globalCtx);
s32 func_8012405C(GlobalContext* globalCtx);
+1 -2
View File
@@ -1336,8 +1336,7 @@ beginseg
name "ovl_Obj_Oshihiki"
compress
include "build/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.o"
include "build/data/ovl_Obj_Oshihiki/ovl_Obj_Oshihiki.data.o"
include "build/data/ovl_Obj_Oshihiki/ovl_Obj_Oshihiki.reloc.o"
include "build/src/overlays/actors/ovl_Obj_Oshihiki/ovl_Obj_Oshihiki_reloc.o"
endseg
beginseg
File diff suppressed because it is too large Load Diff
@@ -7,11 +7,57 @@ struct ObjOshihiki;
typedef void (*ObjOshihikiActionFunc)(struct ObjOshihiki*, GlobalContext*);
#define OBJOSHIHIKI_GET_F(thisx) ((thisx)->params & 0xF)
#define OBJOSHIHIKI_GET_F0(thisx) (((thisx)->params >> 4) & 0xF)
#define OBJOSHIHIKI_GET_7F00(thisx) (((thisx)->params >> 8) & 0x7F)
#define OBJOSHIHIKI_GET_FF00(thisx) (((thisx)->params >> 8) & 0xFF)
enum {
/* 0 */ OBJOSHIHIKI_F_0,
/* 1 */ OBJOSHIHIKI_F_1,
/* 2 */ OBJOSHIHIKI_F_2,
/* 3 */ OBJOSHIHIKI_F_3,
/* 4 */ OBJOSHIHIKI_F_4,
/* 5 */ OBJOSHIHIKI_F_5,
/* 6 */ OBJOSHIHIKI_F_6,
/* 7 */ OBJOSHIHIKI_F_7,
/* 8 */ OBJOSHIHIKI_F_8,
};
#define OBJOSHIHIKI_FF00_0 0
#define OBJOSHIHIKI_FF00_80 0x80
#define PUSHBLOCK_ON_SCENE (1 << 0)
#define PUSHBLOCK_SETUP_ON_SCENE (1 << 1)
#define PUSHBLOCK_ON_ACTOR (1 << 2)
#define PUSHBLOCK_SETUP_ON_ACTOR (1 << 3)
#define PUSHBLOCK_PUSH (1 << 4)
#define PUSHBLOCK_SETUP_PUSH (1 << 5)
#define PUSHBLOCK_FALL (1 << 6)
#define PUSHBLOCK_SETUP_FALL (1 << 7)
#define PUSHBLOCK_MOVE_UNDER (1 << 8)
typedef struct ObjOshihiki {
/* 0x0000 */ Actor actor;
/* 0x0144 */ char unk_144[0x18];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x015C */ ObjOshihikiActionFunc actionFunc;
/* 0x0160 */ char unk_160[0x6C];
/* 0x0160 */ u16 stateFlags;
/* 0x0162 */ s16 timer;
/* 0x0164 */ f32 yawSin;
/* 0x0168 */ f32 yawCos;
/* 0x016C */ f32 pushSpeed;
/* 0x0170 */ f32 pushDist;
/* 0x0174 */ f32 direction;
/* 0x0178 */ s32 floorBgIds[5];
/* 0x018C */ CollisionPoly* floorPolys[5];
/* 0x01A0 */ f32 floorHeights[5];
/* 0x01B4 */ s16 highestFloor;
/* 0x01B6 */ u8 cantMove;
/* 0x01B8 */ struct ObjOshihiki* blockUnder;
/* 0x01BC */ f32 underDistX;
/* 0x01C0 */ f32 underDistZ;
/* 0x01C4 */ s8 textureStep;
/* 0x01C5 */ Color_RGB8 color;
/* 0x01C8 */ AnimatedMaterial* texture;
} ObjOshihiki; // size = 0x1CC
extern const ActorInit Obj_Oshihiki_InitVars;
@@ -7,6 +7,12 @@ struct ObjSwitch;
typedef void (*ObjSwitchActionFunc)(struct ObjSwitch*, GlobalContext*);
#define OBJSWITCH_GET_33(thisx) ((thisx)->params & 0x33)
#define OBJSWITCH_GET_7F00(thisx) (((thisx)->params >> 8) & 0x7F)
#define OBJSWITCH_NORMAL_BLUE 0x20
#define OBJSWITCH_INVERSE_BLUE 0x30
typedef struct ObjSwitch {
/* 0x0000 */ Actor actor;
/* 0x0144 */ char unk_144[0x18];
+24 -24
View File
@@ -6864,32 +6864,32 @@
0x8090C884:("EnFishing_OwnerOverrideLimbDraw",),
0x8090C8BC:("EnFishing_OwnerPostLimbDraw",),
0x8090C96C:("EnFishing_DrawOwner",),
0x80917290:("func_80917290",),
0x809172E4:("func_809172E4",),
0x8091734C:("func_8091734C",),
0x80917378:("func_80917378",),
0x80917408:("func_80917408",),
0x80917538:("func_80917538",),
0x80917604:("func_80917604",),
0x8091763C:("func_8091763C",),
0x8091768C:("func_8091768C",),
0x80917290:("ObjOshihiki_RotateXZ",),
0x809172E4:("ObjOshihiki_StrongEnough",),
0x8091734C:("ObjOshihiki_ResetFloors",),
0x80917378:("ObjOshihiki_GetBlockUnder",),
0x80917408:("ObjOshihiki_UpdateInitPos",),
0x80917538:("ObjOshihiki_NoSwitchPress",),
0x80917604:("ObjOshihiki_SetScale",),
0x8091763C:("ObjOshihiki_SetTextureStep",),
0x8091768C:("ObjOshihiki_SetColor",),
0x809176D0:("ObjOshihiki_Init",),
0x8091780C:("ObjOshihiki_Destroy",),
0x80917840:("func_80917840",),
0x809179A0:("func_809179A0",),
0x80917AEC:("func_80917AEC",),
0x80917B44:("func_80917B44",),
0x80917B9C:("func_80917B9C",),
0x80917C14:("func_80917C14",),
0x80917E8C:("func_80917E8C",),
0x80917F88:("func_80917F88",),
0x80917FC0:("func_80917FC0",),
0x809180C8:("func_809180C8",),
0x80918108:("func_80918108",),
0x80918314:("func_80918314",),
0x8091834C:("func_8091834C",),
0x8091851C:("func_8091851C",),
0x80918574:("func_80918574",),
0x80917840:("ObjOshihiki_SetFloors",),
0x809179A0:("ObjOshihiki_GetHighestFloor",),
0x80917AEC:("ObjOshihiki_SetGround",),
0x80917B44:("ObjOshihiki_CheckFloor",),
0x80917B9C:("ObjOshihiki_CheckGround",),
0x80917C14:("ObjOshihiki_CheckWall",),
0x80917E8C:("ObjOshihiki_MoveWithBlockUnder",),
0x80917F88:("ObjOshihiki_SetupOnScene",),
0x80917FC0:("ObjOshihiki_OnScene",),
0x809180C8:("ObjOshihiki_SetupOnActor",),
0x80918108:("ObjOshihiki_OnActor",),
0x80918314:("ObjOshihiki_SetupPush",),
0x8091834C:("ObjOshihiki_Push",),
0x8091851C:("ObjOshihiki_SetupFall",),
0x80918574:("ObjOshihiki_Fall",),
0x80918678:("ObjOshihiki_Update",),
0x80918700:("ObjOshihiki_Draw",),
0x80918B40:("func_80918B40",),