mirror of https://github.com/zeldaret/mm.git
ovl_Dm_Al Decompiled + Some Documentation (#913)
* all functions matching, data isn't? * cleanup in progress * ovl_Dm_Al Decompiled * pr review * Documentation Fixes and new entries * forgot one * pr review
This commit is contained in:
parent
abf70f6dd2
commit
ba886cc8fa
|
@ -1,71 +1,71 @@
|
||||||
<Root>
|
<Root>
|
||||||
<File Name="object_al" Segment="6">
|
<File Name="object_al" Segment="6">
|
||||||
<Animation Name="object_al_Anim_000C54" Offset="0xC54" />
|
<Animation Name="object_al_Anim_000C54" Offset="0xC54" />
|
||||||
<DList Name="object_al_DL_0045F0" Offset="0x45F0" />
|
<DList Name="gMadameAromaRightFootDL" Offset="0x45F0" />
|
||||||
<DList Name="object_al_DL_004738" Offset="0x4738" />
|
<DList Name="gMadameAromaLeftFootDL" Offset="0x4738" />
|
||||||
<DList Name="object_al_DL_004880" Offset="0x4880" />
|
<DList Name="gMadameAromaLegsDL" Offset="0x4880" />
|
||||||
<DList Name="object_al_DL_004A50" Offset="0x4A50" />
|
<DList Name="gMadameAromaLowerBodyDL" Offset="0x4A50" />
|
||||||
<DList Name="object_al_DL_004B30" Offset="0x4B30" />
|
<DList Name="gMadameAromaMiddleBodyDL" Offset="0x4B30" />
|
||||||
<DList Name="object_al_DL_004BF8" Offset="0x4BF8" />
|
<DList Name="gMadameAromaRightHairEdgeDL" Offset="0x4BF8" />
|
||||||
<DList Name="object_al_DL_004D10" Offset="0x4D10" />
|
<DList Name="gMadameAromaRightHairDL" Offset="0x4D10" />
|
||||||
<DList Name="object_al_DL_004DD0" Offset="0x4DD0" />
|
<DList Name="gMadameAromaLeftHairEdgeDL" Offset="0x4DD0" />
|
||||||
<DList Name="object_al_DL_004EE8" Offset="0x4EE8" />
|
<DList Name="gMadameAromaLeftHairDL" Offset="0x4EE8" />
|
||||||
<DList Name="object_al_DL_004FA8" Offset="0x4FA8" />
|
<DList Name="gMadameAromaHairLoopDL" Offset="0x4FA8" />
|
||||||
<DList Name="object_al_DL_0050B0" Offset="0x50B0" />
|
<DList Name="gMadameAromaHeadDL" Offset="0x50B0" />
|
||||||
<DList Name="object_al_DL_005680" Offset="0x5680" />
|
<DList Name="gMadameAromaShawlRightLowerDL" Offset="0x5680" />
|
||||||
<DList Name="object_al_DL_005728" Offset="0x5728" />
|
<DList Name="gMadameAromaShawlRightLowerMiddleDL" Offset="0x5728" />
|
||||||
<DList Name="object_al_DL_0057D0" Offset="0x57D0" />
|
<DList Name="gMadameAromaShawlLeftLowerDL" Offset="0x57D0" />
|
||||||
<DList Name="object_al_DL_005878" Offset="0x5878" />
|
<DList Name="gMadameAromaShawlLeftLowerMiddleDL" Offset="0x5878" />
|
||||||
<DList Name="object_al_DL_005920" Offset="0x5920" />
|
<DList Name="gMadameAromaShawlUpperDL" Offset="0x5920" />
|
||||||
<DList Name="object_al_DL_0059E8" Offset="0x59E8" />
|
<DList Name="gMadameAromaLeftHandDL" Offset="0x59E8" />
|
||||||
<DList Name="object_al_DL_005C10" Offset="0x5C10" />
|
<DList Name="gMadameAromaLeftArmDL" Offset="0x5C10" />
|
||||||
<DList Name="object_al_DL_005D28" Offset="0x5D28" />
|
<DList Name="gMadameAromaLeftShoulderDL" Offset="0x5D28" />
|
||||||
<DList Name="object_al_DL_005E48" Offset="0x5E48" />
|
<DList Name="gMadameAromaRightHandDL" Offset="0x5E48" />
|
||||||
<DList Name="object_al_DL_005FF8" Offset="0x5FF8" />
|
<DList Name="gMadameAromaRightArmDL" Offset="0x5FF8" />
|
||||||
<DList Name="object_al_DL_006190" Offset="0x6190" />
|
<DList Name="gMadameAromaRightShoulderDL" Offset="0x6190" />
|
||||||
<DList Name="object_al_DL_0062B0" Offset="0x62B0" />
|
<DList Name="gMadameAromaUpperBodyDL" Offset="0x62B0" />
|
||||||
<DList Name="object_al_DL_0064E0" Offset="0x64E0" />
|
<DList Name="gMadameAromaNecklaceDL" Offset="0x64E0" />
|
||||||
<DList Name="object_al_DL_006598" Offset="0x6598" />
|
<DList Name="gMadameAromaShawlMiddleDL" Offset="0x6598" />
|
||||||
<Texture Name="object_al_TLUT_006638" OutName="tlut_006638" Format="rgba16" Width="16" Height="16" Offset="0x6638" />
|
<Texture Name="gMadameAromaTLUT" OutName="madame_aroma_tlut" Format="rgba16" Width="16" Height="16" Offset="0x6638" />
|
||||||
<Texture Name="object_al_Tex_006838" OutName="tex_006838" Format="ci8" Width="8" Height="8" Offset="0x6838" />
|
<Texture Name="gMadameAromaSkinBlotchTex" OutName="madame_aroma_skin_blotch" Format="ci8" Width="8" Height="8" Offset="0x6838" />
|
||||||
<Texture Name="object_al_Tex_006878" OutName="tex_006878" Format="ci8" Width="8" Height="8" Offset="0x6878" />
|
<Texture Name="gMadameAromaEarsTex" OutName="madame_aroma_ears" Format="ci8" Width="8" Height="8" Offset="0x6878" />
|
||||||
<Texture Name="object_al_Tex_0068B8" OutName="tex_0068B8" Format="ci8" Width="16" Height="16" Offset="0x68B8" />
|
<Texture Name="gMadameAromaHairToSkinTex" OutName="madame_aroma_hair_to_skin" Format="ci8" Width="16" Height="16" Offset="0x68B8" />
|
||||||
<Texture Name="object_al_Tex_0069B8" OutName="tex_0069B8" Format="rgba16" Width="64" Height="32" Offset="0x69B8" />
|
<Texture Name="gMadameAromaMouthTex" OutName="madame_aroma_mouth" Format="rgba16" Width="64" Height="32" Offset="0x69B8" />
|
||||||
<Texture Name="object_al_Tex_0079B8" OutName="tex_0079B8" Format="rgba16" Width="32" Height="32" Offset="0x79B8" />
|
<Texture Name="gMadameAromaEyesTex" OutName="madame_aroma_eyes" Format="rgba16" Width="32" Height="32" Offset="0x79B8" />
|
||||||
<Texture Name="object_al_Tex_0081B8" OutName="tex_0081B8" Format="ci8" Width="32" Height="16" Offset="0x81B8" />
|
<Texture Name="gMadameAromaShoeTex" OutName="madame_aroma_shoe" Format="ci8" Width="32" Height="16" Offset="0x81B8" />
|
||||||
<Texture Name="object_al_Tex_0083B8" OutName="tex_0083B8" Format="rgba16" Width="32" Height="32" Offset="0x83B8" />
|
<Texture Name="gMadameAromaDressLowerTex" OutName="madame_aroma_dress_lower" Format="rgba16" Width="32" Height="32" Offset="0x83B8" />
|
||||||
<Texture Name="object_al_Tex_008BB8" OutName="tex_008BB8" Format="rgba16" Width="8" Height="8" Offset="0x8BB8" />
|
<Texture Name="gMadameAromaHairHolderTex" OutName="madame_aroma_hair_holder" Format="rgba16" Width="8" Height="8" Offset="0x8BB8" />
|
||||||
<Texture Name="object_al_Tex_008C38" OutName="tex_008C38" Format="ci8" Width="16" Height="16" Offset="0x8C38" />
|
<Texture Name="gMadameAromaFingersTex" OutName="madame_aroma_fingers" Format="ci8" Width="16" Height="16" Offset="0x8C38" />
|
||||||
<Texture Name="object_al_Tex_008D38" OutName="tex_008D38" Format="ci8" Width="16" Height="16" Offset="0x8D38" />
|
<Texture Name="gMadameAromaChestTex" OutName="madame_aroma_chest" Format="ci8" Width="16" Height="16" Offset="0x8D38" />
|
||||||
<Texture Name="object_al_Tex_008E38" OutName="tex_008E38" Format="rgba16" Width="32" Height="64" Offset="0x8E38" />
|
<Texture Name="gMadameAromaEarringsTex" OutName="madame_aroma_earrings" Format="rgba16" Width="32" Height="64" Offset="0x8E38" />
|
||||||
<Texture Name="object_al_Tex_009E38" OutName="tex_009E38" Format="rgba16" Width="8" Height="16" Offset="0x9E38" />
|
<Texture Name="gMadameAromaRingTex" OutName="madame_aroma_ring" Format="rgba16" Width="8" Height="16" Offset="0x9E38" />
|
||||||
<Limb Name="object_al_Standardlimb_009F38" Type="Standard" EnumName="OBJECT_AL_LIMB_01" Offset="0x9F38" />
|
<Limb Name="gMadameAromaRootLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_ROOT" Offset="0x9F38" />
|
||||||
<Limb Name="object_al_Standardlimb_009F44" Type="Standard" EnumName="OBJECT_AL_LIMB_02" Offset="0x9F44" />
|
<Limb Name="gMadameAromaUpperBodyLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_UPPER_BODY" Offset="0x9F44" />
|
||||||
<Limb Name="object_al_Standardlimb_009F50" Type="Standard" EnumName="OBJECT_AL_LIMB_03" Offset="0x9F50" />
|
<Limb Name="gMadameAromaShawlMiddleLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_SHAWL_MIDDLE" Offset="0x9F50" />
|
||||||
<Limb Name="object_al_Standardlimb_009F5C" Type="Standard" EnumName="OBJECT_AL_LIMB_04" Offset="0x9F5C" />
|
<Limb Name="gMadameAromaNecklaceLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_NECKLACE" Offset="0x9F5C" />
|
||||||
<Limb Name="object_al_Standardlimb_009F68" Type="Standard" EnumName="OBJECT_AL_LIMB_05" Offset="0x9F68" />
|
<Limb Name="gMadameAromaRightShoulderLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_RIGHT_SHOULDER" Offset="0x9F68" />
|
||||||
<Limb Name="object_al_Standardlimb_009F74" Type="Standard" EnumName="OBJECT_AL_LIMB_06" Offset="0x9F74" />
|
<Limb Name="gMadameAromaRightArmLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_RIGHT_ARM" Offset="0x9F74" />
|
||||||
<Limb Name="object_al_Standardlimb_009F80" Type="Standard" EnumName="OBJECT_AL_LIMB_07" Offset="0x9F80" />
|
<Limb Name="gMadameAromaRightHandLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_RIGHT_HAND" Offset="0x9F80" />
|
||||||
<Limb Name="object_al_Standardlimb_009F8C" Type="Standard" EnumName="OBJECT_AL_LIMB_08" Offset="0x9F8C" />
|
<Limb Name="gMadameAromaLeftShoulderLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_LEFT_SHOULDER" Offset="0x9F8C" />
|
||||||
<Limb Name="object_al_Standardlimb_009F98" Type="Standard" EnumName="OBJECT_AL_LIMB_09" Offset="0x9F98" />
|
<Limb Name="gMadameAromaLeftArmLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_LEFT_ARM" Offset="0x9F98" />
|
||||||
<Limb Name="object_al_Standardlimb_009FA4" Type="Standard" EnumName="OBJECT_AL_LIMB_0A" Offset="0x9FA4" />
|
<Limb Name="gMadameAromaLeftHandLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_LEFT_HAND" Offset="0x9FA4" />
|
||||||
<Limb Name="object_al_Standardlimb_009FB0" Type="Standard" EnumName="OBJECT_AL_LIMB_0B" Offset="0x9FB0" />
|
<Limb Name="gMadameAromaShawlUpperLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_SHAWL_UPPER" Offset="0x9FB0" />
|
||||||
<Limb Name="object_al_Standardlimb_009FBC" Type="Standard" EnumName="OBJECT_AL_LIMB_0C" Offset="0x9FBC" />
|
<Limb Name="gMadameAromaShawlLeftLowerMiddleLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_SHAWL_LEFT_LOWER_MIDDLE" Offset="0x9FBC" />
|
||||||
<Limb Name="object_al_Standardlimb_009FC8" Type="Standard" EnumName="OBJECT_AL_LIMB_0D" Offset="0x9FC8" />
|
<Limb Name="gMadameAromaShawlLeftLowerLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_SHAWL_LEFT_LOWER" Offset="0x9FC8" />
|
||||||
<Limb Name="object_al_Standardlimb_009FD4" Type="Standard" EnumName="OBJECT_AL_LIMB_0E" Offset="0x9FD4" />
|
<Limb Name="gMadameAromaShawlRightLowerMiddleLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_SHAWL_RIGHT_LOWER_MIDDLE" Offset="0x9FD4" />
|
||||||
<Limb Name="object_al_Standardlimb_009FE0" Type="Standard" EnumName="OBJECT_AL_LIMB_0F" Offset="0x9FE0" />
|
<Limb Name="gMadameAromaShawlRightLowerLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_SHAWL_RIGHT_LOWER" Offset="0x9FE0" />
|
||||||
<Limb Name="object_al_Standardlimb_009FEC" Type="Standard" EnumName="OBJECT_AL_LIMB_10" Offset="0x9FEC" />
|
<Limb Name="gMadameAromaHeadLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_HEAD" Offset="0x9FEC" />
|
||||||
<Limb Name="object_al_Standardlimb_009FF8" Type="Standard" EnumName="OBJECT_AL_LIMB_11" Offset="0x9FF8" />
|
<Limb Name="gMadameAromaHairLoopLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_HAIR_LOOP" Offset="0x9FF8" />
|
||||||
<Limb Name="object_al_Standardlimb_00A004" Type="Standard" EnumName="OBJECT_AL_LIMB_12" Offset="0xA004" />
|
<Limb Name="gMadameAromaLeftHairLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_LEFT_HAIR" Offset="0xA004" />
|
||||||
<Limb Name="object_al_Standardlimb_00A010" Type="Standard" EnumName="OBJECT_AL_LIMB_13" Offset="0xA010" />
|
<Limb Name="gMadameAromaLeftHairEdgeLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_LEFT_HAIR_EDGE" Offset="0xA010" />
|
||||||
<Limb Name="object_al_Standardlimb_00A01C" Type="Standard" EnumName="OBJECT_AL_LIMB_14" Offset="0xA01C" />
|
<Limb Name="gMadameAromaRightHairLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_RIGHT_HAIR" Offset="0xA01C" />
|
||||||
<Limb Name="object_al_Standardlimb_00A028" Type="Standard" EnumName="OBJECT_AL_LIMB_15" Offset="0xA028" />
|
<Limb Name="gMadameAromaRightHairEdgeLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_RIGHT_HAIR_EDGE" Offset="0xA028" />
|
||||||
<Limb Name="object_al_Standardlimb_00A034" Type="Standard" EnumName="OBJECT_AL_LIMB_16" Offset="0xA034" />
|
<Limb Name="gMadameAromaMiddleBodyLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_MIDDLE_BODY" Offset="0xA034" />
|
||||||
<Limb Name="object_al_Standardlimb_00A040" Type="Standard" EnumName="OBJECT_AL_LIMB_17" Offset="0xA040" />
|
<Limb Name="gMadameAromaLowerBodyLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_LOWER_BODY" Offset="0xA040" />
|
||||||
<Limb Name="object_al_Standardlimb_00A04C" Type="Standard" EnumName="OBJECT_AL_LIMB_18" Offset="0xA04C" />
|
<Limb Name="gMadameAromaLegsLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_LEGS" Offset="0xA04C" />
|
||||||
<Limb Name="object_al_Standardlimb_00A058" Type="Standard" EnumName="OBJECT_AL_LIMB_19" Offset="0xA058" />
|
<Limb Name="gMadameAromaLeftFootLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_LEFT_FOOT" Offset="0xA058" />
|
||||||
<Limb Name="object_al_Standardlimb_00A064" Type="Standard" EnumName="OBJECT_AL_LIMB_1A" Offset="0xA064" />
|
<Limb Name="gMadameAromaRightFootLimb" Type="Standard" EnumName="MADAME_AROMA_LIMB_RIGHT_FOOT" Offset="0xA064" />
|
||||||
<Skeleton Name="object_al_Skel_00A0D8" Type="Flex" LimbType="Standard" LimbNone="OBJECT_AL_LIMB_NONE" LimbMax="OBJECT_AL_LIMB_MAX" EnumName="object_al_Limbs" Offset="0xA0D8" />
|
<Skeleton Name="gMadameAromaSkel" Type="Flex" LimbType="Standard" LimbNone="MADAME_AROMA_LIMB_NONE" LimbMax="MADAME_AROMA_LIMB_MAX" EnumName="MadameAromaLimbs" Offset="0xA0D8" />
|
||||||
<Animation Name="object_al_Anim_00A764" Offset="0xA764" />
|
<Animation Name="object_al_Anim_00A764" Offset="0xA764" />
|
||||||
<Animation Name="object_al_Anim_00ACA0" Offset="0xACA0" />
|
<Animation Name="object_al_Anim_00ACA0" Offset="0xACA0" />
|
||||||
<Animation Name="object_al_Anim_00BCA4" Offset="0xBCA4" />
|
<Animation Name="object_al_Anim_00BCA4" Offset="0xBCA4" />
|
||||||
|
|
3
spec
3
spec
|
@ -5069,8 +5069,7 @@ beginseg
|
||||||
name "ovl_Dm_Al"
|
name "ovl_Dm_Al"
|
||||||
compress
|
compress
|
||||||
include "build/src/overlays/actors/ovl_Dm_Al/z_dm_al.o"
|
include "build/src/overlays/actors/ovl_Dm_Al/z_dm_al.o"
|
||||||
include "build/data/ovl_Dm_Al/ovl_Dm_Al.data.o"
|
include "build/src/overlays/actors/ovl_Dm_Al/ovl_Dm_Al_reloc.o"
|
||||||
include "build/data/ovl_Dm_Al/ovl_Dm_Al.reloc.o"
|
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
|
|
|
@ -15,9 +15,6 @@ void DmAl_Destroy(Actor* thisx, PlayState* play);
|
||||||
void DmAl_Update(Actor* thisx, PlayState* play);
|
void DmAl_Update(Actor* thisx, PlayState* play);
|
||||||
void DmAl_Draw(Actor* thisx, PlayState* play);
|
void DmAl_Draw(Actor* thisx, PlayState* play);
|
||||||
|
|
||||||
void func_80C1BDD8(DmAl* this, PlayState* play);
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
const ActorInit Dm_Al_InitVars = {
|
const ActorInit Dm_Al_InitVars = {
|
||||||
ACTOR_EN_AL,
|
ACTOR_EN_AL,
|
||||||
ACTORCAT_NPC,
|
ACTORCAT_NPC,
|
||||||
|
@ -30,24 +27,135 @@ const ActorInit Dm_Al_InitVars = {
|
||||||
(ActorFunc)DmAl_Draw,
|
(ActorFunc)DmAl_Draw,
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
static AnimationInfoS sAnimationInfos[] = {
|
||||||
|
{ &object_al_Anim_00DBE0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||||
|
};
|
||||||
|
|
||||||
extern UNK_TYPE D_0600A0D8;
|
s32 DmAl_ChangeAnimation(DmAl* this, s32 animationIndex) {
|
||||||
|
s32 didAnimationChange = false;
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Dm_Al/func_80C1BD90.s")
|
if (animationIndex != this->animationIndex) {
|
||||||
|
this->animationIndex = animationIndex;
|
||||||
|
didAnimationChange = SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfos, animationIndex);
|
||||||
|
}
|
||||||
|
return didAnimationChange;
|
||||||
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Dm_Al/func_80C1BDD8.s")
|
void func_80C1BDD8(DmAl* this, PlayState* play) {
|
||||||
|
s32 D_80C1C280[] = { 0, 0, 0, 0, 0 };
|
||||||
|
u16 csAction;
|
||||||
|
s32 actionIndex;
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Dm_Al/DmAl_Init.s")
|
if (play->csCtx.state != 0) {
|
||||||
|
if (!this->unk_45C) {
|
||||||
|
this->action = 0xFF;
|
||||||
|
this->unk_45C = true;
|
||||||
|
this->animationIndex2 = this->animationIndex;
|
||||||
|
}
|
||||||
|
if (Cutscene_CheckActorAction(play, 0x232)) {
|
||||||
|
actionIndex = Cutscene_GetActorActionIndex(play, 0x232);
|
||||||
|
csAction = play->csCtx.actorActions[actionIndex]->action;
|
||||||
|
if (this->action != (u8)csAction) {
|
||||||
|
this->action = csAction;
|
||||||
|
DmAl_ChangeAnimation(this, D_80C1C280[csAction]);
|
||||||
|
}
|
||||||
|
Cutscene_ActorTranslateAndYaw(&this->actor, play, actionIndex);
|
||||||
|
}
|
||||||
|
} else if (this->unk_45C) {
|
||||||
|
this->unk_45C = false;
|
||||||
|
DmAl_ChangeAnimation(this, this->animationIndex2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Dm_Al/DmAl_Destroy.s")
|
void DmAl_Init(Actor* thisx, PlayState* play) {
|
||||||
|
DmAl* this = THIS;
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Dm_Al/DmAl_Update.s")
|
ActorShape_Init(&this->actor.shape, 0.0f, NULL, 0.0f);
|
||||||
|
SkelAnime_InitFlex(play, &this->skelAnime, &gMadameAromaSkel, NULL, this->jointTable, this->morphTable,
|
||||||
|
MADAME_AROMA_LIMB_MAX);
|
||||||
|
this->animationIndex = -1;
|
||||||
|
DmAl_ChangeAnimation(this, MADAME_AROMA_ANIMATION_0);
|
||||||
|
this->actor.flags &= ~ACTOR_FLAG_1;
|
||||||
|
Actor_SetScale(&this->actor, 0.01f);
|
||||||
|
this->actionFunc = func_80C1BDD8;
|
||||||
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Dm_Al/func_80C1C028.s")
|
void DmAl_Destroy(Actor* thisx, PlayState* play) {
|
||||||
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Dm_Al/func_80C1C064.s")
|
void DmAl_Update(Actor* thisx, PlayState* play) {
|
||||||
|
DmAl* this = THIS;
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Dm_Al/func_80C1C11C.s")
|
this->actionFunc(this, play);
|
||||||
|
SkelAnime_Update(&this->skelAnime);
|
||||||
|
Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, 4);
|
||||||
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Dm_Al/DmAl_Draw.s")
|
s32 DmAl_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* rot, Vec3s* pos, Actor* thisx) {
|
||||||
|
switch (limbIndex) {
|
||||||
|
case MADAME_AROMA_LIMB_SHAWL_MIDDLE:
|
||||||
|
case MADAME_AROMA_LIMB_SHAWL_UPPER:
|
||||||
|
case MADAME_AROMA_LIMB_SHAWL_LEFT_LOWER_MIDDLE:
|
||||||
|
case MADAME_AROMA_LIMB_SHAWL_LEFT_LOWER:
|
||||||
|
case MADAME_AROMA_LIMB_SHAWL_RIGHT_LOWER_MIDDLE:
|
||||||
|
case MADAME_AROMA_LIMB_SHAWL_RIGHT_LOWER:
|
||||||
|
*dList = NULL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DmAl_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
|
||||||
|
DmAl* this = THIS;
|
||||||
|
|
||||||
|
switch (limbIndex) {
|
||||||
|
case MADAME_AROMA_LIMB_SHAWL_MIDDLE:
|
||||||
|
Matrix_Get(&this->shawlMatrices[0]);
|
||||||
|
break;
|
||||||
|
case MADAME_AROMA_LIMB_SHAWL_UPPER:
|
||||||
|
Matrix_Get(&this->shawlMatrices[1]);
|
||||||
|
break;
|
||||||
|
case MADAME_AROMA_LIMB_SHAWL_LEFT_LOWER_MIDDLE:
|
||||||
|
Matrix_Get(&this->shawlMatrices[2]);
|
||||||
|
break;
|
||||||
|
case MADAME_AROMA_LIMB_SHAWL_LEFT_LOWER:
|
||||||
|
Matrix_Get(&this->shawlMatrices[3]);
|
||||||
|
break;
|
||||||
|
case MADAME_AROMA_LIMB_SHAWL_RIGHT_LOWER_MIDDLE:
|
||||||
|
Matrix_Get(&this->shawlMatrices[4]);
|
||||||
|
break;
|
||||||
|
case MADAME_AROMA_LIMB_SHAWL_RIGHT_LOWER:
|
||||||
|
Matrix_Get(&this->shawlMatrices[5]);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DmAl_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) {
|
||||||
|
}
|
||||||
|
|
||||||
|
static Gfx* sDlists[] = {
|
||||||
|
gMadameAromaShawlMiddleDL, gMadameAromaShawlUpperDL,
|
||||||
|
gMadameAromaShawlLeftLowerMiddleDL, gMadameAromaShawlLeftLowerDL,
|
||||||
|
gMadameAromaShawlRightLowerMiddleDL, gMadameAromaShawlRightLowerDL,
|
||||||
|
};
|
||||||
|
|
||||||
|
void DmAl_Draw(Actor* thisx, PlayState* play) {
|
||||||
|
u32 i;
|
||||||
|
DmAl* this = THIS;
|
||||||
|
|
||||||
|
OPEN_DISPS(play->state.gfxCtx);
|
||||||
|
|
||||||
|
func_8012C28C(play->state.gfxCtx);
|
||||||
|
SkelAnime_DrawTransformFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
||||||
|
this->skelAnime.dListCount, DmAl_OverrideLimbDraw, DmAl_PostLimbDraw,
|
||||||
|
DmAl_TransformLimbDraw, &this->actor);
|
||||||
|
for (i = 0; i < ARRAY_COUNT(this->shawlMatrices); i++) {
|
||||||
|
Matrix_Put(&this->shawlMatrices[i]);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, sDlists[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#define Z_DM_AL_H
|
#define Z_DM_AL_H
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "objects/object_al/object_al.h"
|
||||||
|
|
||||||
struct DmAl;
|
struct DmAl;
|
||||||
|
|
||||||
|
@ -9,11 +10,22 @@ typedef void (*DmAlActionFunc)(struct DmAl*, PlayState*);
|
||||||
|
|
||||||
typedef struct DmAl {
|
typedef struct DmAl {
|
||||||
/* 0x000 */ Actor actor;
|
/* 0x000 */ Actor actor;
|
||||||
/* 0x144 */ char unk_144[0x44];
|
/* 0x144 */ SkelAnime skelAnime;
|
||||||
/* 0x188 */ DmAlActionFunc actionFunc;
|
/* 0x188 */ DmAlActionFunc actionFunc;
|
||||||
/* 0x18C */ char unk_18C[0x2D4];
|
/* 0x18C */ MtxF shawlMatrices[6];
|
||||||
|
/* 0x30C */ Vec3s jointTable[MADAME_AROMA_LIMB_MAX];
|
||||||
|
/* 0x3AE */ Vec3s morphTable[MADAME_AROMA_LIMB_MAX];
|
||||||
|
/* 0x450 */ u8 action;
|
||||||
|
/* 0x454 */ s32 animationIndex;
|
||||||
|
/* 0x458 */ s32 animationIndex2;
|
||||||
|
/* 0x45C */ s32 unk_45C;
|
||||||
} DmAl; // size = 0x460
|
} DmAl; // size = 0x460
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
/* 0x0 */ MADAME_AROMA_ANIMATION_0,
|
||||||
|
/* 0x1 */ MADAME_AROMA_ANIMATION_1
|
||||||
|
} DmAlAnimations;
|
||||||
|
|
||||||
extern const ActorInit Dm_Al_InitVars;
|
extern const ActorInit Dm_Al_InitVars;
|
||||||
|
|
||||||
#endif // Z_DM_AL_H
|
#endif // Z_DM_AL_H
|
||||||
|
|
|
@ -129,8 +129,9 @@ static AnimationInfoS sAnimations[] = {
|
||||||
Vec3f D_80BE0070 = { 1000.0f, 0.0f, 0.0f };
|
Vec3f D_80BE0070 = { 1000.0f, 0.0f, 0.0f };
|
||||||
|
|
||||||
Gfx* D_80BE007C[] = {
|
Gfx* D_80BE007C[] = {
|
||||||
object_al_DL_006598, object_al_DL_005920, object_al_DL_005878,
|
gMadameAromaShawlMiddleDL, gMadameAromaShawlUpperDL,
|
||||||
object_al_DL_0057D0, object_al_DL_005728, object_al_DL_005680,
|
gMadameAromaShawlLeftLowerMiddleDL, gMadameAromaShawlLeftLowerDL,
|
||||||
|
gMadameAromaShawlRightLowerMiddleDL, gMadameAromaShawlRightLowerDL,
|
||||||
};
|
};
|
||||||
|
|
||||||
Actor* func_80BDE1A0(EnAl* this, PlayState* play, u8 arg0, s16 arg1) {
|
Actor* func_80BDE1A0(EnAl* this, PlayState* play, u8 arg0, s16 arg1) {
|
||||||
|
@ -780,7 +781,8 @@ void EnAl_Init(Actor* thisx, PlayState* play) {
|
||||||
EnAl* this = THIS;
|
EnAl* this = THIS;
|
||||||
|
|
||||||
ActorShape_Init(&this->actor.shape, 0.0f, NULL, 0.0f);
|
ActorShape_Init(&this->actor.shape, 0.0f, NULL, 0.0f);
|
||||||
SkelAnime_InitFlex(play, &this->skelAnime, &object_al_Skel_00A0D8, NULL, this->jointTable, this->morphTable, 27);
|
SkelAnime_InitFlex(play, &this->skelAnime, &gMadameAromaSkel, NULL, this->jointTable, this->morphTable,
|
||||||
|
MADAME_AROMA_LIMB_MAX);
|
||||||
this->unk_4F8 = -1;
|
this->unk_4F8 = -1;
|
||||||
func_80BDE27C(this, 1);
|
func_80BDE27C(this, 1);
|
||||||
Collider_InitAndSetCylinder(play, &this->unk_310, &this->actor, &sCylinderInit);
|
Collider_InitAndSetCylinder(play, &this->unk_310, &this->actor, &sCylinderInit);
|
||||||
|
@ -817,16 +819,16 @@ void EnAl_Update(Actor* thisx, PlayState* play) {
|
||||||
|
|
||||||
s32 EnAl_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
|
s32 EnAl_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
|
||||||
switch (limbIndex) {
|
switch (limbIndex) {
|
||||||
case 3:
|
case MADAME_AROMA_LIMB_SHAWL_MIDDLE:
|
||||||
case 11:
|
case MADAME_AROMA_LIMB_SHAWL_UPPER:
|
||||||
case 12:
|
case MADAME_AROMA_LIMB_SHAWL_LEFT_LOWER_MIDDLE:
|
||||||
case 13:
|
case MADAME_AROMA_LIMB_SHAWL_LEFT_LOWER:
|
||||||
case 14:
|
case MADAME_AROMA_LIMB_SHAWL_RIGHT_LOWER_MIDDLE:
|
||||||
case 15:
|
case MADAME_AROMA_LIMB_SHAWL_RIGHT_LOWER:
|
||||||
*dList = NULL;
|
*dList = NULL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 16:
|
case MADAME_AROMA_LIMB_HEAD:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -836,31 +838,31 @@ void EnAl_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
|
||||||
EnAl* this = THIS;
|
EnAl* this = THIS;
|
||||||
|
|
||||||
switch (limbIndex) {
|
switch (limbIndex) {
|
||||||
case 3:
|
case MADAME_AROMA_LIMB_SHAWL_MIDDLE:
|
||||||
Matrix_Get(&this->unk_190[0]);
|
Matrix_Get(&this->unk_190[0]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 11:
|
case MADAME_AROMA_LIMB_SHAWL_UPPER:
|
||||||
Matrix_Get(&this->unk_190[1]);
|
Matrix_Get(&this->unk_190[1]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 12:
|
case MADAME_AROMA_LIMB_SHAWL_LEFT_LOWER_MIDDLE:
|
||||||
Matrix_Get(&this->unk_190[2]);
|
Matrix_Get(&this->unk_190[2]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 13:
|
case MADAME_AROMA_LIMB_SHAWL_LEFT_LOWER:
|
||||||
Matrix_Get(&this->unk_190[3]);
|
Matrix_Get(&this->unk_190[3]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 14:
|
case MADAME_AROMA_LIMB_SHAWL_RIGHT_LOWER_MIDDLE:
|
||||||
Matrix_Get(&this->unk_190[4]);
|
Matrix_Get(&this->unk_190[4]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 15:
|
case MADAME_AROMA_LIMB_SHAWL_RIGHT_LOWER:
|
||||||
Matrix_Get(&this->unk_190[5]);
|
Matrix_Get(&this->unk_190[5]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 16:
|
case MADAME_AROMA_LIMB_HEAD:
|
||||||
Matrix_MultVec3f(&D_80BE0070, &this->actor.focus.pos);
|
Matrix_MultVec3f(&D_80BE0070, &this->actor.focus.pos);
|
||||||
Math_Vec3s_Copy(&this->actor.focus.rot, &this->actor.world.rot);
|
Math_Vec3s_Copy(&this->actor.focus.rot, &this->actor.world.rot);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -16930,14 +16930,14 @@
|
||||||
0x80C1B9D4:("func_80C1B9D4",),
|
0x80C1B9D4:("func_80C1B9D4",),
|
||||||
0x80C1BAC8:("EnFall2_Update",),
|
0x80C1BAC8:("EnFall2_Update",),
|
||||||
0x80C1BAEC:("EnFall2_Draw",),
|
0x80C1BAEC:("EnFall2_Draw",),
|
||||||
0x80C1BD90:("func_80C1BD90",),
|
0x80C1BD90:("DmAl_ChangeAnimation",),
|
||||||
0x80C1BDD8:("func_80C1BDD8",),
|
0x80C1BDD8:("func_80C1BDD8",),
|
||||||
0x80C1BF08:("DmAl_Init",),
|
0x80C1BF08:("DmAl_Init",),
|
||||||
0x80C1BFB8:("DmAl_Destroy",),
|
0x80C1BFB8:("DmAl_Destroy",),
|
||||||
0x80C1BFC8:("DmAl_Update",),
|
0x80C1BFC8:("DmAl_Update",),
|
||||||
0x80C1C028:("func_80C1C028",),
|
0x80C1C028:("DmAl_OverrideLimbDraw",),
|
||||||
0x80C1C064:("func_80C1C064",),
|
0x80C1C064:("DmAl_PostLimbDraw",),
|
||||||
0x80C1C11C:("func_80C1C11C",),
|
0x80C1C11C:("DmAl_TransformLimbDraw",),
|
||||||
0x80C1C130:("DmAl_Draw",),
|
0x80C1C130:("DmAl_Draw",),
|
||||||
0x80C1C410:("func_80C1C410",),
|
0x80C1C410:("func_80C1C410",),
|
||||||
0x80C1C4D8:("func_80C1C4D8",),
|
0x80C1C4D8:("func_80C1C4D8",),
|
||||||
|
|
|
@ -16582,7 +16582,7 @@
|
||||||
0x80C1C250:("Dm_Al_InitVars","UNK_TYPE1","",0x1),
|
0x80C1C250:("Dm_Al_InitVars","UNK_TYPE1","",0x1),
|
||||||
0x80C1C270:("D_80C1C270","UNK_TYPE1","",0x1),
|
0x80C1C270:("D_80C1C270","UNK_TYPE1","",0x1),
|
||||||
0x80C1C280:("D_80C1C280","UNK_TYPE4","",0x4),
|
0x80C1C280:("D_80C1C280","UNK_TYPE4","",0x4),
|
||||||
0x80C1C294:("D_80C1C294","UNK_TYPE4","",0x4),
|
0x80C1C294:("sDlists","UNK_TYPE4","",0x4),
|
||||||
0x80C1C2AC:("D_80C1C2AC","UNK_TYPE1","",0x1),
|
0x80C1C2AC:("D_80C1C2AC","UNK_TYPE1","",0x1),
|
||||||
0x80C1C2B0:("jtbl_80C1C2B0","UNK_PTR","",0x4),
|
0x80C1C2B0:("jtbl_80C1C2B0","UNK_PTR","",0x4),
|
||||||
0x80C1C2E4:("jtbl_80C1C2E4","UNK_PTR","",0x4),
|
0x80C1C2E4:("jtbl_80C1C2E4","UNK_PTR","",0x4),
|
||||||
|
|
Loading…
Reference in New Issue