Decompile ovl_En_Po_Composer (#1391)

* Decompiled, mostly named

* Few more labels and document object

* Review changes

* Further review changes

* Improve EnPoComposer_UpdateEnvColor

* PO_COMPOSER -> POE_COMPOSER, tweak animation names

* More changes

* OCARINA_MODE_EVENT

* fix merge

---------

Co-authored-by: angie <angheloalf95@gmail.com>
This commit is contained in:
Tharo
2023-11-10 09:52:11 -03:00
committed by GitHub
co-authored by angie
parent 2823a720bc
commit a441a3cb2d
4 changed files with 726 additions and 119 deletions
+46 -40
View File
@@ -1,35 +1,37 @@
<Root>
<ExternalFile XmlPath="objects/gameplay_keep.xml" OutPath="assets/objects/gameplay_keep/"/>
<!-- Assets for the composer brothers Flat and Sharp -->
<File Name="object_po_composer" Segment="6">
<Animation Name="object_po_composer_Anim_00020C" Offset="0x20C" />
<Animation Name="object_po_composer_Anim_000570" Offset="0x570" />
<Animation Name="object_po_composer_Anim_000A58" Offset="0xA58" />
<Animation Name="object_po_composer_Anim_001420" Offset="0x1420" />
<Animation Name="object_po_composer_Anim_0015B8" Offset="0x15B8" />
<Animation Name="object_po_composer_Anim_00188C" Offset="0x188C" />
<Animation Name="object_po_composer_Anim_001F44" Offset="0x1F44" />
<Animation Name="object_po_composer_Anim_0023E8" Offset="0x23E8" />
<Animation Name="object_po_composer_Anim_002AE0" Offset="0x2AE0" />
<Animation Name="object_po_composer_Anim_003024" Offset="0x3024" />
<Animation Name="object_po_composer_Anim_00334C" Offset="0x334C" />
<Animation Name="object_po_composer_Anim_003954" Offset="0x3954" />
<Animation Name="object_po_composer_Anim_003DB0" Offset="0x3DB0" />
<Texture Name="object_po_composer_Tex_003DC0" OutName="tex_003DC0" Format="i8" Width="32" Height="64" Offset="0x3DC0" />
<!-- Animations -->
<Animation Name="gPoeComposerAttackAnim" Offset="0x20C" />
<Animation Name="gPoeComposerRaiseArmsAnim" Offset="0x570" />
<Animation Name="gPoeComposerBeginPlayAnim" Offset="0xA58" />
<Animation Name="gPoeComposerPlayAnim" Offset="0x1420" />
<Animation Name="gPoeComposerFleeAnim" Offset="0x15B8" />
<Animation Name="gPoeComposerIdleAnim" Offset="0x188C" />
<Animation Name="gPoeComposerArmsRaisedAnim" Offset="0x1F44" />
<Animation Name="gPoeComposerLowerArmsAnim" Offset="0x23E8" />
<Animation Name="gPoeComposerLookDownAnim" Offset="0x2AE0" />
<Animation Name="gPoeComposerBeginRollAnim" Offset="0x3024" />
<Animation Name="gPoeComposerRollAnim" Offset="0x334C" />
<Animation Name="gPoeComposerAppearDisappearAnim" Offset="0x3954" />
<Animation Name="gPoeComposerStillAnim" Offset="0x3DB0" />
<!-- Texture -->
<Texture Name="gPoeComposerSoulTex" OutName="composer_soul" Format="i8" Width="32" Height="64" Offset="0x3DC0" />
<!-- Display Lists -->
<DList Name="object_po_composer_DL_004600" Offset="0x4600" />
<DList Name="object_po_composer_DL_0052E0" Offset="0x52E0" />
<DList Name="object_po_composer_DL_0054E0" Offset="0x54E0" />
<DList Name="object_po_composer_DL_0055D0" Offset="0x55D0" />
<DList Name="object_po_composer_DL_005898" Offset="0x5898" />
<DList Name="object_po_composer_DL_005948" Offset="0x5948" />
<DList Name="object_po_composer_DL_005A00" Offset="0x5A00" />
<DList Name="object_po_composer_DL_005CB8" Offset="0x5CB8" />
<DList Name="object_po_composer_DL_005D68" Offset="0x5D68" />
<DList Name="object_po_composer_DL_006A70" Offset="0x6A70" />
<DList Name="gPoeComposerSharpHeadDL" Offset="0x6A70" />
<DList Name="object_po_composer_DL_006D80" Offset="0x6D80" />
<DList Name="object_po_composer_DL_006E08" Offset="0x6E08" />
<DList Name="object_po_composer_DL_006EA8" Offset="0x6EA8" />
<DList Name="object_po_composer_DL_006F38" Offset="0x6F38" />
<DList Name="object_po_composer_DL_006FD8" Offset="0x6FD8" />
<DList Name="object_po_composer_DL_007BC0" Offset="0x7BC0" />
<DList Name="gPoeComposerLanternBaseDL" Offset="0x6E08" />
<DList Name="gPoeComposerLanternTopDL" Offset="0x6EA8" />
<DList Name="gPoeComposerLanternGlassDL" Offset="0x6F38" />
<DList Name="gPoeComposerFlatHeadDL" Offset="0x6FD8" />
<DList Name="gPoeComposerBurnDL" Offset="0x7BC0" />
<!-- Textures -->
<Texture Name="object_po_composer_Tex_007E80" OutName="tex_007E80" Format="rgba16" Width="16" Height="16" Offset="0x7E80" />
<Texture Name="object_po_composer_Tex_008080" OutName="tex_008080" Format="rgba16" Width="16" Height="16" Offset="0x8080" />
<Texture Name="object_po_composer_Tex_008280" OutName="tex_008280" Format="rgba16" Width="16" Height="16" Offset="0x8280" />
@@ -42,17 +44,21 @@
<Texture Name="object_po_composer_Tex_009280" OutName="tex_009280" Format="rgba16" Width="16" Height="16" Offset="0x9280" />
<Texture Name="object_po_composer_Tex_009480" OutName="tex_009480" Format="rgba16" Width="16" Height="16" Offset="0x9480" />
<Texture Name="object_po_composer_Tex_009680" OutName="tex_009680" Format="rgba16" Width="16" Height="16" Offset="0x9680" />
<Limb Name="object_po_composer_Standardlimb_009880" Type="Standard" EnumName="OBJECT_PO_COMPOSER_LIMB_01" Offset="0x9880" />
<Limb Name="object_po_composer_Standardlimb_00988C" Type="Standard" EnumName="OBJECT_PO_COMPOSER_LIMB_02" Offset="0x988C" />
<Limb Name="object_po_composer_Standardlimb_009898" Type="Standard" EnumName="OBJECT_PO_COMPOSER_LIMB_03" Offset="0x9898" />
<Limb Name="object_po_composer_Standardlimb_0098A4" Type="Standard" EnumName="OBJECT_PO_COMPOSER_LIMB_04" Offset="0x98A4" />
<Limb Name="object_po_composer_Standardlimb_0098B0" Type="Standard" EnumName="OBJECT_PO_COMPOSER_LIMB_05" Offset="0x98B0" />
<Limb Name="object_po_composer_Standardlimb_0098BC" Type="Standard" EnumName="OBJECT_PO_COMPOSER_LIMB_06" Offset="0x98BC" />
<Limb Name="object_po_composer_Standardlimb_0098C8" Type="Standard" EnumName="OBJECT_PO_COMPOSER_LIMB_07" Offset="0x98C8" />
<Limb Name="object_po_composer_Standardlimb_0098D4" Type="Standard" EnumName="OBJECT_PO_COMPOSER_LIMB_08" Offset="0x98D4" />
<Limb Name="object_po_composer_Standardlimb_0098E0" Type="Standard" EnumName="OBJECT_PO_COMPOSER_LIMB_09" Offset="0x98E0" />
<Limb Name="object_po_composer_Standardlimb_0098EC" Type="Standard" EnumName="OBJECT_PO_COMPOSER_LIMB_0A" Offset="0x98EC" />
<Limb Name="object_po_composer_Standardlimb_0098F8" Type="Standard" EnumName="OBJECT_PO_COMPOSER_LIMB_0B" Offset="0x98F8" />
<Skeleton Name="object_po_composer_Skel_009930" Type="Flex" LimbType="Standard" LimbNone="OBJECT_PO_COMPOSER_LIMB_NONE" LimbMax="OBJECT_PO_COMPOSER_LIMB_MAX" EnumName="ObjectPoComposerLimb" Offset="0x9930" />
<!-- Limbs -->
<Limb Name="gPoeComposerUpperBodyLimb" Type="Standard" EnumName="POE_COMPOSER_LIMB_UPPER_BODY" Offset="0x9880" />
<Limb Name="gPoeComposerLeftShoulderLimb" Type="Standard" EnumName="POE_COMPOSER_LIMB_LEFT_SHOULDER" Offset="0x988C" />
<Limb Name="gPoeComposerLeftArmLimb" Type="Standard" EnumName="POE_COMPOSER_LIMB_LEFT_ARM" Offset="0x9898" />
<Limb Name="gPoeComposerLeftHandLimb" Type="Standard" EnumName="POE_COMPOSER_LIMB_LEFT_HAND" Offset="0x98A4" />
<Limb Name="gPoeComposerConductorBatonLimb" Type="Standard" EnumName="POE_COMPOSER_LIMB_CONDUCTOR_BATON" Offset="0x98B0" />
<Limb Name="gPoeComposerRightShoulderLimb" Type="Standard" EnumName="POE_COMPOSER_LIMB_RIGHT_SHOULDER" Offset="0x98BC" />
<Limb Name="gPoeComposerRightArmLimb" Type="Standard" EnumName="POE_COMPOSER_LIMB_RIGHT_ARM" Offset="0x98C8" />
<Limb Name="gPoeComposerRightHandLimb" Type="Standard" EnumName="POE_COMPOSER_LIMB_RIGHT_HAND" Offset="0x98D4" />
<Limb Name="gPoeComposerLanternLimb" Type="Standard" EnumName="POE_COMPOSER_LIMB_LANTERN" Offset="0x98E0" />
<Limb Name="gPoeComposerHeadLimb" Type="Standard" EnumName="POE_COMPOSER_LIMB_HEAD" Offset="0x98EC" />
<Limb Name="gPoeComposerLowerBodyLimb" Type="Standard" EnumName="POE_COMPOSER_LIMB_LOWER_BODY" Offset="0x98F8" />
<!-- Skeleton -->
<Skeleton Name="gPoeComposerSkel" Type="Flex" LimbType="Standard" LimbNone="POE_COMPOSER_LIMB_NONE" LimbMax="POE_COMPOSER_LIMB_MAX" EnumName="PoeComposerLimb" Offset="0x9930" />
</File>
</Root>
+1 -2
View File
@@ -4229,8 +4229,7 @@ beginseg
name "ovl_En_Po_Composer"
compress
include "build/src/overlays/actors/ovl_En_Po_Composer/z_en_po_composer.o"
include "build/data/ovl_En_Po_Composer/ovl_En_Po_Composer.data.o"
include "build/data/ovl_En_Po_Composer/ovl_En_Po_Composer.reloc.o"
include "build/src/overlays/actors/ovl_En_Po_Composer/ovl_En_Po_Composer_reloc.o"
endseg
beginseg
File diff suppressed because it is too large Load Diff
@@ -2,6 +2,32 @@
#define Z_EN_PO_COMPOSER_H
#include "global.h"
#include "objects/object_po_composer/object_po_composer.h"
#define POE_COMPOSER_IS_FLAT(thisx) ((thisx)->params & 0x8000)
#define POE_COMPOSER_4000(thisx) ((thisx)->params & 0x4000)
typedef enum {
/* 1 */ POE_COMPOSER_CUEID_IDLE = 1,
/* 2 */ POE_COMPOSER_CUEID_APPEAR_SPIN,
/* 3 */ POE_COMPOSER_CUEID_IDLE2,
/* 4 */ POE_COMPOSER_CUEID_RAISE_ARMS,
/* 5 */ POE_COMPOSER_CUEID_LOWER_ARMS,
/* 6 */ POE_COMPOSER_CUEID_PLAY_CURSE,
/* 7 */ POE_COMPOSER_CUEID_ROLL,
/* 8 */ POE_COMPOSER_CUEID_APPEAR,
/* 9 */ POE_COMPOSER_CUEID_DISAPPEAR,
/* 10 */ POE_COMPOSER_CUEID_DONE,
/* 99 */ POE_COMPOSER_CUEID_NONE = 99
} EnPoComposerCueId;
typedef enum {
/* 0 */ SHARP_CS_ENCOUNTER_FIRST,
/* 1 */ SHARP_CS_ENCOUNTER_OTHER,
/* 2 */ SHARP_CS_SONG_HEALING,
/* 3 */ SHARP_CS_SONG_STORMS,
/* 4 */ SHARP_CS_MAX
} SharpCsIdIndex;
struct EnPoComposer;
@@ -9,9 +35,26 @@ typedef void (*EnPoComposerActionFunc)(struct EnPoComposer*, PlayState*);
typedef struct EnPoComposer {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0xF0];
/* 0x144 */ ColliderCylinder bodyCollider;
/* 0x190 */ ColliderJntSph lanternCollider;
/* 0x1B0 */ ColliderJntSphElement lanternColliderElements[1];
/* 0x1F0 */ SkelAnime skelAnime;
/* 0x234 */ EnPoComposerActionFunc actionFunc;
/* 0x238 */ char unk_238[0x108];
/* 0x238 */ MtxF lanternMtxF;
/* 0x278 */ LightNode* lightNode;
/* 0x27C */ LightInfo lightInfo;
/* 0x28A */ UNK_TYPE1 unk_28A[0x6];
/* 0x290 */ s32 sharpCsNum;
/* 0x294 */ Vec3s jointTable[POE_COMPOSER_LIMB_MAX];
/* 0x2DC */ Vec3s morphTable[POE_COMPOSER_LIMB_MAX];
/* 0x324 */ s16 csIds[SHARP_CS_MAX];
/* 0x32C */ s16 actionTimer;
/* 0x32E */ s16 csCueTimer;
/* 0x330 */ s16 inCutscene;
/* 0x332 */ s16 visible;
/* 0x334 */ u16 cueId;
/* 0x336 */ Color_RGBA8 lightColor;
/* 0x33A */ Color_RGBA8 envColor;
} EnPoComposer; // size = 0x340
#endif // Z_EN_PO_COMPOSER_H