mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
Obj_Tokeidai (Clock Tower) OK and mostly documented (#442)
* Migrate data to C * ObjTokeidai_Init OK * ObjTokeidai_Destroy OK * func_80AB2BBC OK * func_80AB3BB0 OK * func_80AB29F8 OK * func_80AB27B4 OK * func_80AB2834 OK * func_80AB2790 OK * func_80AB28C8 OK * ObjTokeidai_Update OK * func_80AB4040 OK * func_80AB3010 OK * func_80AB3CCC OK * func_80AB3240 OK * func_80AB3C50 OK * func_80AB4080 OK * func_80AB4160 OK * func_80AB319C OK * func_80AB3BE8 OK * func_80AB3BD8 OK * func_80AB3B34 OK * func_80AB3A7C OK * func_80AB3ED0 OK * func_80AB39BC OK * func_80AB38B0 OK * func_80AB3880 OK * func_80AB363C OK * func_80AB36C4 OK * func_80AB3808 OK * func_80AB365C OK * func_80AB3598 OK * func_80AB3544 OK * func_80AB34CC OK * func_80AB3370 OK * func_80AB32F0 OK * ObjTokeidai_Draw OK * func_80AB4894 OK * func_80AB4664 OK * func_80AB4394 OK * Use compiled reloc * Initial documentation pass * Little more documentation * Last bit of first pass documentation * Finish documentation * Respond to review feedback * Respond to Anghelo's feedback * Incorporate new enum * Respond to engineer's feedback * Respond to engineer's feedback * Update comments because the things I thought were unused ARE actually used * Switch to using "Open" instead of "Transform" * Run ./format.sh * Respond to engineer + hensldm by removing some macros * Fix func_801A3F54 argument * Fix func_801A3F54 argument Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * This is a legacy PR, so using autogenned object symbols * Move enum to .c * Revert "Move enum to .c" This reverts commit de13c50f0aac35470cec29bc90665c780055651f. * Move tokeidai-specific defines to .c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
This commit is contained in:
co-authored by
engineer124
parent
7cb71922e3
commit
527c54b66e
+1
-1
@@ -3884,7 +3884,7 @@ void func_801A3CD8(s8 param_1);
|
||||
// void func_801A3D98(void);
|
||||
// void func_801A3E38(void);
|
||||
// void func_801A3EC0(void);
|
||||
// void func_801A3F54(void);
|
||||
void func_801A3F54(s32 arg0);
|
||||
// void func_801A3F6C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_801A3FB4(void);
|
||||
// void func_801A3FFC(UNK_TYPE1 param_1);
|
||||
|
||||
@@ -3361,8 +3361,7 @@ beginseg
|
||||
name "ovl_Obj_Tokeidai"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.o"
|
||||
include "build/data/ovl_Obj_Tokeidai/ovl_Obj_Tokeidai.data.o"
|
||||
include "build/data/ovl_Obj_Tokeidai/ovl_Obj_Tokeidai.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Obj_Tokeidai/ovl_Obj_Tokeidai_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,14 +3,63 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
#define OBJ_TOKEIDAI_TYPE(thisx) (((thisx)->params & 0xF000) >> 12)
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ OBJ_TOKEIDAI_TYPE_TOWER_GEAR_CLOCK_TOWN,
|
||||
/* 1 */ OBJ_TOKEIDAI_TYPE_UNUSED_WALL,
|
||||
/* 2 */ OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_CLOCK_TOWN,
|
||||
/* 3 */ OBJ_TOKEIDAI_TYPE_COUNTERWEIGHT_CLOCK_TOWN,
|
||||
/* 4 */ OBJ_TOKEIDAI_TYPE_TOWER_GEAR_TERMINA_FIELD,
|
||||
/* 5 */ OBJ_TOKEIDAI_TYPE_TOWER_CLOCK_TERMINA_FIELD,
|
||||
/* 6 */ OBJ_TOKEIDAI_TYPE_COUNTERWEIGHT_TERMINA_FIELD,
|
||||
/* 8 */ OBJ_TOKEIDAI_TYPE_TOWER_WALLS_TERMINA_FIELD = 8,
|
||||
/* 9 */ OBJ_TOKEIDAI_TYPE_WALL_CLOCK,
|
||||
/* 10 */ OBJ_TOKEIDAI_TYPE_SMALL_WALL_CLOCK,
|
||||
/* 11 */ OBJ_TOKEIDAI_TYPE_STAIRCASE_INTO_TOWER,
|
||||
} ObjTokeidaiType;
|
||||
|
||||
struct ObjTokeidai;
|
||||
|
||||
typedef void (*ObjTokeidaiActionFunc)(struct ObjTokeidai*, GlobalContext*);
|
||||
|
||||
typedef struct ObjTokeidai {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x0144 */ char unk_144[0x30];
|
||||
/* 0x0174 */ ObjTokeidaiActionFunc actionFunc;
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ Gfx* opaDList;
|
||||
/* 0x148 */ Gfx* xluDList;
|
||||
/* 0x14C */ s16 outerRingOrGearRotation;
|
||||
/* 0x14E */ s16 outerRingOrGearRotationalVelocity;
|
||||
/* 0x150 */ s16 outerRingOrGearRotationTimer;
|
||||
/* 0x152 */ s16 clockFaceRotation;
|
||||
/* 0x154 */ union {
|
||||
s16 clockFaceRotationalVelocity;
|
||||
s16 settleTimer;
|
||||
s16 counterweightRotationalVelocity;
|
||||
s16 openingWaitTimer;
|
||||
s16 slidingClockFaceAngle;
|
||||
};
|
||||
/* 0x156 */ union {
|
||||
s16 clockFaceRotationTimer;
|
||||
s16 settleAmount;
|
||||
s16 counterweightRotationalAcceleration;
|
||||
s16 aerialClockFaceSpeed;
|
||||
};
|
||||
/* 0x158 */ s32 sunMoonDiskRotation;
|
||||
/* 0x15C */ union {
|
||||
s16 sunMoonDiskRotationalVelocity;
|
||||
s16 fallingClockFaceRotationalVelocity;
|
||||
};
|
||||
/* 0x15E */ s16 yTranslation;
|
||||
/* 0x160 */ s16 xRotation;
|
||||
/* 0x162 */ s16 clockFaceZTranslation; // amount the clock face recesses inwards once it transforms
|
||||
/* 0x164 */ s16 boundCount;
|
||||
/* 0x168 */ s32 clockMinute; // only 30 minutes in an hour
|
||||
/* 0x16C */ union {
|
||||
s32 clockHour;
|
||||
s32 spotlightIntensity;
|
||||
};
|
||||
/* 0x170 */ u16 currentTime;
|
||||
/* 0x174 */ ObjTokeidaiActionFunc actionFunc;
|
||||
} ObjTokeidai; // size = 0x178
|
||||
|
||||
extern const ActorInit Obj_Tokeidai_InitVars;
|
||||
|
||||
+35
-35
@@ -11667,45 +11667,45 @@
|
||||
0x80AB2544:("DmChar09_Update",),
|
||||
0x80AB25D8:("func_80AB25D8",),
|
||||
0x80AB261C:("DmChar09_Draw",),
|
||||
0x80AB2790:("func_80AB2790",),
|
||||
0x80AB27B4:("func_80AB27B4",),
|
||||
0x80AB2834:("func_80AB2834",),
|
||||
0x80AB28C8:("func_80AB28C8",),
|
||||
0x80AB29F8:("func_80AB29F8",),
|
||||
0x80AB2BBC:("func_80AB2BBC",),
|
||||
0x80AB2790:("ObjTokeidai_GetTargetSunMoonDiskRotation",),
|
||||
0x80AB27B4:("ObjTokeidai_SetupClockOrGear",),
|
||||
0x80AB2834:("ObjTokeidai_Clock_Init",),
|
||||
0x80AB28C8:("ObjTokeidai_TowerGear_Init",),
|
||||
0x80AB29F8:("ObjTokeidai_TowerClock_Init",),
|
||||
0x80AB2BBC:("ObjTokeidai_Counterweight_Init",),
|
||||
0x80AB2DEC:("ObjTokeidai_Init",),
|
||||
0x80AB3000:("ObjTokeidai_Destroy",),
|
||||
0x80AB3010:("func_80AB3010",),
|
||||
0x80AB319C:("func_80AB319C",),
|
||||
0x80AB3240:("func_80AB3240",),
|
||||
0x80AB32F0:("func_80AB32F0",),
|
||||
0x80AB3370:("func_80AB3370",),
|
||||
0x80AB34CC:("func_80AB34CC",),
|
||||
0x80AB3544:("func_80AB3544",),
|
||||
0x80AB3598:("func_80AB3598",),
|
||||
0x80AB363C:("func_80AB363C",),
|
||||
0x80AB365C:("func_80AB365C",),
|
||||
0x80AB36C4:("func_80AB36C4",),
|
||||
0x80AB3808:("func_80AB3808",),
|
||||
0x80AB3880:("func_80AB3880",),
|
||||
0x80AB38B0:("func_80AB38B0",),
|
||||
0x80AB39BC:("func_80AB39BC",),
|
||||
0x80AB3A7C:("func_80AB3A7C",),
|
||||
0x80AB3B34:("func_80AB3B34",),
|
||||
0x80AB3BB0:("func_80AB3BB0",),
|
||||
0x80AB3BD8:("func_80AB3BD8",),
|
||||
0x80AB3BE8:("func_80AB3BE8",),
|
||||
0x80AB3C50:("func_80AB3C50",),
|
||||
0x80AB3CCC:("func_80AB3CCC",),
|
||||
0x80AB3ED0:("func_80AB3ED0",),
|
||||
0x80AB4040:("func_80AB4040",),
|
||||
0x80AB4080:("func_80AB4080",),
|
||||
0x80AB4160:("func_80AB4160",),
|
||||
0x80AB3010:("ObjTokeidai_RotateOnMinuteChange",),
|
||||
0x80AB319C:("ObjTokeidai_TowerGear_Collapse",),
|
||||
0x80AB3240:("ObjTokeidai_TowerGear_OpenedIdle",),
|
||||
0x80AB32F0:("ObjTokeidai_TowerClock_Fall",),
|
||||
0x80AB3370:("ObjTokeidai_TowerClock_SlideOff",),
|
||||
0x80AB34CC:("ObjTokeidai_TowerClock_OpenedIdle",),
|
||||
0x80AB3544:("ObjTokeidai_Counterweight_Collapse",),
|
||||
0x80AB3598:("ObjTokeidai_Counterweight_OpenedIdle",),
|
||||
0x80AB363C:("ObjTokeidai_Walls_Collapse",),
|
||||
0x80AB365C:("ObjTokeidai_Walls_Idle",),
|
||||
0x80AB36C4:("ObjTokeidai_TowerTransformation_EndCutscene",),
|
||||
0x80AB3808:("ObjTokeidai_TowerOpening_FinishOpening",),
|
||||
0x80AB3880:("ObjTokeidai_TowerOpening_Wait",),
|
||||
0x80AB38B0:("ObjTokeidai_TowerOpening_DropCounterweight",),
|
||||
0x80AB39BC:("ObjTokeidai_TowerOpening_FinishRaise",),
|
||||
0x80AB3A7C:("ObjTokeidai_TowerOpening_RaiseTower",),
|
||||
0x80AB3B34:("ObjTokeidai_TowerOpening_Start",),
|
||||
0x80AB3BB0:("ObjTokeidai_SetupTowerOpening",),
|
||||
0x80AB3BD8:("ObjTokeidai_DoNothing",),
|
||||
0x80AB3BE8:("ObjTokeidai_StaircaseIntoTower_Idle",),
|
||||
0x80AB3C50:("ObjTokeidai_IsPostFirstCycleFinalHours",),
|
||||
0x80AB3CCC:("ObjTokeidai_RotateOnHourChange",),
|
||||
0x80AB3ED0:("ObjTokeidai_TowerClock_Idle",),
|
||||
0x80AB4040:("ObjTokeidai_WallClock_Idle",),
|
||||
0x80AB4080:("ObjTokeidai_TowerGear_Idle",),
|
||||
0x80AB4160:("ObjTokeidai_Counterweight_Idle",),
|
||||
0x80AB4278:("ObjTokeidai_Update",),
|
||||
0x80AB429C:("ObjTokeidai_Draw",),
|
||||
0x80AB4394:("func_80AB4394",),
|
||||
0x80AB4664:("func_80AB4664",),
|
||||
0x80AB4894:("func_80AB4894",),
|
||||
0x80AB4394:("ObjTokeidai_Clock_Draw",),
|
||||
0x80AB4664:("ObjTokeidai_Counterweight_Draw",),
|
||||
0x80AB4894:("ObjTokeidai_TowerGear_Draw",),
|
||||
0x80AB4D10:("func_80AB4D10",),
|
||||
0x80AB4E34:("func_80AB4E34",),
|
||||
0x80AB4E58:("func_80AB4E58",),
|
||||
|
||||
@@ -4273,21 +4273,6 @@ D_06001CB0 = 0x06001CB0;
|
||||
|
||||
D_06001400 = 0x06001400;
|
||||
|
||||
// ovl_Obj_Tokeidai
|
||||
|
||||
D_06009A08 = 0x06009A08;
|
||||
D_0600B0C0 = 0x0600B0C0;
|
||||
D_0600B208 = 0x0600B208;
|
||||
D_0600BA78 = 0x0600BA78;
|
||||
D_0600BEE8 = 0x0600BEE8;
|
||||
D_0600C368 = 0x0600C368;
|
||||
D_0600CF28 = 0x0600CF28;
|
||||
D_0600D388 = 0x0600D388;
|
||||
D_0600D8E0 = 0x0600D8E0;
|
||||
D_0600D8E8 = 0x0600D8E8;
|
||||
D_0600E818 = 0x0600E818;
|
||||
D_0600F518 = 0x0600F518;
|
||||
|
||||
// ovl_Obj_Tokei_Turret
|
||||
|
||||
D_06002508 = 0x06002508;
|
||||
|
||||
Reference in New Issue
Block a user