1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-07 06:40:15 +00:00

Poe Actor Decomps (#463)

* Poe actors progress

* Some more progress, En_Poh almost matching

* Further progress

* Fix merge

* Decompile data

* Actor struct cleanups

* More functions OK

* Progress

* Last function decompiled, some nonmatchings left

* Few more OK, skelanime_init definition changes

* Progress

* Style improvements, OPEN/CLOSE_DISPS, few more OK

* Few more style improvements, function prototype additions/changes, another function OK

* Remove unused asm, begin documentation

* Use generated reloc

* Cleanup, format

* Remove a few no longer needed comments

* PR suggestions

* DISP macros

* Missed some FrameUpdateMatrix != 0 replacements

* EnPoField_InteractWithSoul -> EnPoField_SoulInteract, eyeImageIdx -> eyeTextureIdx

* Fix merge, reformat

* Review Suggestions

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Further review suggestions

* Ran formatter

* Less DECR usage

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
Tharo 2020-12-05 00:34:27 +00:00 committed by GitHub
parent e983d2b72b
commit f85a2d10ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
212 changed files with 4102 additions and 15655 deletions

File diff suppressed because it is too large Load diff

View file

@ -6,9 +6,57 @@
struct EnPoh;
typedef void (*EnPohActionFunc)(struct EnPoh*, GlobalContext*);
typedef enum {
EN_POH_NORMAL,
EN_POH_RUPEE,
EN_POH_SHARP,
EN_POH_FLAT
} EnPohType;
typedef enum {
EN_POH_INFO_NORMAL,
EN_POH_INFO_COMPOSER
} EnPohInfoType;
typedef struct {
/* 0x0000 */ Color_RGB8 primColor;
/* 0x0003 */ Color_RGB8 lightColor;
/* 0x0006 */ u8 unk_6; // limb index
/* 0x0006 */ u8 unk_7; // limb index
/* 0x0008 */ s8 unk_8; // rate of some kind
/* 0x000C */ AnimationHeader* unk_C;
/* 0x0010 */ AnimationHeader* unk_10;
/* 0x0014 */ UNK_PTR unk_14;
/* 0x0018 */ AnimationHeader* unk_18;
/* 0x001C */ Gfx* unk_1C;
/* 0x0020 */ Gfx* unk_20;
/* 0x0024 */ Gfx* soulDisplayList;
} EnPohInfo; // size = 0x28
typedef struct EnPoh {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x25C];
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ EnPohActionFunc actionFunc;
/* 0x0194 */ u8 unk_194;
/* 0x0195 */ u8 unk_195;
/* 0x0196 */ s8 objectIdx;
/* 0x0197 */ u8 infoIdx;
/* 0x0198 */ s16 unk_198;
/* 0x019A */ s16 visibilityTimer;
/* 0x019C */ s16 unk_19C;
/* 0x019E */ Vec3s limbDrawTable[21];
/* 0x021C */ Vec3s transitionDrawTable[21];
/* 0x029A */ Color_RGBA8 lightColor;
/* 0x029E */ Color_RGBA8 envColor;
/* 0x02A4 */ EnPohInfo* info;
/* 0x02A8 */ LightNode* lightNode;
/* 0x02AC */ LightInfo lightInfo;
/* 0x02BC */ ColliderCylinder colliderCyl;
/* 0x0308 */ ColliderJntSph colliderSph;
/* 0x0328 */ ColliderJntSphItem colliderSphItem;
/* 0x0368 */ MtxF unk_368;
} EnPoh; // size = 0x03A8
extern const ActorInit En_Poh_InitVars;