1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

Object_RU1, Object_MA1, and warp pad objects Decompiled (#828)

* Ruto limbs

* RutoLimb enum

* the enum doesn't go in en_door

* Limb DLists

* Name almost all textures and clean up EnRu1.c

* remove padding

* Name all but 1 animation and remove undefined syms

* Object MA limbs OK

* (MA1)Most textures

* Small renames in EnMa1.c

* Object MA1 OK

* add base object for Mjin

* Mjin OK

* Update object_ma1.xml

* PR fixes (Fig)

* PR fixes

* Missed one

* Update assets/xml/objects/object_ru1.xml

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

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
louist103 2021-05-30 13:10:17 -04:00 committed by GitHub
parent f6470eaa08
commit 9de0b13141
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 411 additions and 419 deletions

View File

@ -174,7 +174,7 @@
<Texture Name="gLinkChildBunnyHoodTex" OutName="link_child_bunny_hood" Format="rgb5a1" Width="16" Height="32" Offset="0x2BC28"/>
<Texture Name="gLinkChildBunnyHoodEarTex" OutName="link_child_bunny_hood_ear" Format="rgb5a1" Width="16" Height="32" Offset="0x2C028"/>
<!--TLUTettes-->
<!--TLUTs-->
<Texture Name="gLinkChildSkinTLUT" OutName="link_child_skin_tlut" Format="rgb5a1" Width="16" Height="16" Offset="0x5500"/>
<Texture Name="gLinkChildHandTLUT" OutName="link_child_hand_tlut" Format="rgb5a1" Width="17" Height="4" Offset="0x9E88"/>
<Texture Name="gLinkChildSwordsTLUT" OutName="link_child_swords_tlut" Format="rgb5a1" Width="16" Height="16" Offset="0x9F10"/> <!--For both the kokiri sword sheath and master sword-->

View File

@ -1,57 +1,67 @@
<Root>
<File Name="object_ma1" Segment="6">
<Animation Name="object_ma1_Anim_000244" Offset="0x244"/>
<Animation Name="object_ma1_Anim_000820" Offset="0x820"/>
<Texture Name="object_ma1_TLUT_000830" OutName="tlut_00000830" Format="rgb5a1" Width="16" Height="16" Offset="0x830"/>
<Texture Name="object_ma1_Tex_000A30" OutName="tex_00000A30" Format="ci8" Width="8" Height="16" Offset="0xA30"/>
<Texture Name="object_ma1_Tex_000AB0" OutName="tex_00000AB0" Format="rgb5a1" Width="16" Height="16" Offset="0xAB0"/>
<Texture Name="object_ma1_Tex_000CB0" OutName="tex_00000CB0" Format="rgb5a1" Width="16" Height="32" Offset="0xCB0"/>
<Texture Name="object_ma1_Tex_0010B0" OutName="tex_000010B0" Format="ci8" Width="8" Height="8" Offset="0x10B0"/>
<Texture Name="object_ma1_Tex_0010F0" OutName="tex_000010F0" Format="ci8" Width="64" Height="16" Offset="0x10F0"/>
<Texture Name="object_ma1_TLUT_0014F0" OutName="tlut_000014F0" Format="rgb5a1" Width="96" Height="1" Offset="0x14F0"/><!--Blob Name="object_ma1_Blob_0016F0" Size="0x28" Offset="0x16F0" /-->
<Texture Name="object_ma1_Tex_001718" OutName="tex_00001718" Format="rgb5a1" Width="8" Height="8" Offset="0x1718"/>
<Texture Name="object_ma1_Tex_001798" OutName="tex_00001798" Format="rgb5a1" Width="8" Height="8" Offset="0x1798"/>
<Texture Name="object_ma1_Tex_001818" OutName="tex_00001818" Format="rgb5a1" Width="16" Height="16" Offset="0x1818"/>
<Texture Name="object_ma1_Tex_001A18" OutName="tex_00001A18" Format="ci8" Width="16" Height="16" Offset="0x1A18"/>
<Blob Name="object_ma1_Blob_001B18" Size="0x400" Offset="0x1B18"/>
<Texture Name="object_ma1_Tex_001F18" OutName="tex_00001F18" Format="rgb5a1" Width="32" Height="16" Offset="0x1F18"/>
<Blob Name="object_ma1_Blob_002318" Size="0x1000" Offset="0x2318"/>
<DList Name="object_ma1_DL_004148" Offset="0x4148"/>
<DList Name="object_ma1_DL_006C68" Offset="0x6C68"/>
<DList Name="object_ma1_DL_006DD8" Offset="0x6DD8"/>
<DList Name="object_ma1_DL_006F10" Offset="0x6F10"/>
<DList Name="object_ma1_DL_007360" Offset="0x7360"/>
<DList Name="object_ma1_DL_007518" Offset="0x7518"/>
<DList Name="object_ma1_DL_007628" Offset="0x7628"/>
<DList Name="object_ma1_DL_0077D0" Offset="0x77D0"/>
<DList Name="object_ma1_DL_007988" Offset="0x7988"/>
<DList Name="object_ma1_DL_007A98" Offset="0x7A98"/>
<DList Name="object_ma1_DL_007C40" Offset="0x7C40"/>
<DList Name="object_ma1_DL_007D40" Offset="0x7D40"/>
<DList Name="object_ma1_DL_007D98" Offset="0x7D98"/>
<DList Name="object_ma1_DL_007EF8" Offset="0x7EF8"/>
<DList Name="object_ma1_DL_008040" Offset="0x8040"/>
<DList Name="object_ma1_DL_008098" Offset="0x8098"/>
<DList Name="object_ma1_DL_0081F8" Offset="0x81F8"/>
<Limb Name="object_ma1_Limb_008340" LimbType="Standard" Offset="0x8340"/>
<Limb Name="object_ma1_Limb_00834C" LimbType="Standard" Offset="0x834C"/>
<Limb Name="object_ma1_Limb_008358" LimbType="Standard" Offset="0x8358"/>
<Limb Name="object_ma1_Limb_008364" LimbType="Standard" Offset="0x8364"/>
<Limb Name="object_ma1_Limb_008370" LimbType="Standard" Offset="0x8370"/>
<Limb Name="object_ma1_Limb_00837C" LimbType="Standard" Offset="0x837C"/>
<Limb Name="object_ma1_Limb_008388" LimbType="Standard" Offset="0x8388"/>
<Limb Name="object_ma1_Limb_008394" LimbType="Standard" Offset="0x8394"/>
<Limb Name="object_ma1_Limb_0083A0" LimbType="Standard" Offset="0x83A0"/>
<Limb Name="object_ma1_Limb_0083AC" LimbType="Standard" Offset="0x83AC"/>
<Limb Name="object_ma1_Limb_0083B8" LimbType="Standard" Offset="0x83B8"/>
<Limb Name="object_ma1_Limb_0083C4" LimbType="Standard" Offset="0x83C4"/>
<Limb Name="object_ma1_Limb_0083D0" LimbType="Standard" Offset="0x83D0"/>
<Limb Name="object_ma1_Limb_0083DC" LimbType="Standard" Offset="0x83DC"/>
<Limb Name="object_ma1_Limb_0083E8" LimbType="Standard" Offset="0x83E8"/>
<Limb Name="object_ma1_Limb_0083F4" LimbType="Standard" Offset="0x83F4"/>
<Limb Name="object_ma1_Limb_008400" LimbType="Standard" Offset="0x8400"/>
<Limb Name="object_ma1_Limb_00840C" LimbType="Standard" Offset="0x840C"/>
<Skeleton Name="object_ma1_Skel_008460" Type="Flex" LimbType="Standard" Offset="0x8460"/>
<Animation Name="object_ma1_Anim_008D64" Offset="0x8D64"/>
<Skeleton Name="gMalonChildSkel" Type="Flex" LimbType="Standard" Offset="0x8460"/>
<Limb Name="gMalonChildRootLimb" LimbType="Standard" Offset="0x8340"/>
<Limb Name="gMalonChildLeftThighLimb" LimbType="Standard" Offset="0x834C"/>
<Limb Name="gMalonChildLeftShinLimb" LimbType="Standard" Offset="0x8358"/>
<Limb Name="gMalonChildLeftFootLimb" LimbType="Standard" Offset="0x8364"/>
<Limb Name="gMalonChildRightThighLimb" LimbType="Standard" Offset="0x8370"/>
<Limb Name="gMalonChildRightShinLimb" LimbType="Standard" Offset="0x837C"/>
<Limb Name="gMalonChildRightFootLimb" LimbType="Standard" Offset="0x8388"/>
<Limb Name="gMalonChildChestLimb" LimbType="Standard" Offset="0x8394"/>
<Limb Name="gMalonChildLeftShoulderLimb" LimbType="Standard" Offset="0x83A0"/>
<Limb Name="gMalonChildLeftArmLimb" LimbType="Standard" Offset="0x83AC"/>
<Limb Name="gMalonChildLeftHandLimb" LimbType="Standard" Offset="0x83B8"/>
<Limb Name="gMalonChildRightShoulderLimb" LimbType="Standard" Offset="0x83C4"/>
<Limb Name="gMalonChildRightArmLimb" LimbType="Standard" Offset="0x83D0"/>
<Limb Name="gMalonChildRightHandLimb" LimbType="Standard" Offset="0x83DC"/>
<Limb Name="gMalonChildHeadLimb" LimbType="Standard" Offset="0x83E8"/>
<Limb Name="gMalonChildLimb_0083F4" LimbType="Standard" Offset="0x83F4"/>
<Limb Name="gMalonChildDressMiddleLimb" LimbType="Standard" Offset="0x8400"/>
<Limb Name="gMalonChildDressLowerLimb" LimbType="Standard" Offset="0x840C"/>
<Animation Name="gMalonChildRaiseHandsAnim" Offset="0x244"/>
<Animation Name="gMalonChildIdleAnim" Offset="0x820"/>
<Animation Name="gMalonChildSingAnim" Offset="0x8D64"/>
<Texture Name="gMalonChildDressTLUT" OutName="dress_tlut" Format="rgb5a1" Width="16" Height="16" Offset="0x830"/>
<Texture Name="gMalonChildDressDesignTex" OutName="dress_design" Format="ci8" Width="8" Height="16" Offset="0xA30"/>
<Texture Name="gMalonChildFingersTex" OutName="fingers" Format="rgb5a1" Width="16" Height="16" Offset="0xAB0"/>
<Texture Name="gMalonChildBowserTex" OutName="bowser" Format="rgb5a1" Width="16" Height="32" Offset="0xCB0"/>
<Texture Name="gMalonChildScarfTex" OutName="scarf" Format="ci8" Width="8" Height="8" Offset="0x10B0"/>
<Texture Name="gMalonChildBootTex" OutName="boot" Format="ci8" Width="64" Height="16" Offset="0x10F0"/>
<Texture Name="gMalonChildHairTLUT" OutName="hair_tlut" Format="rgb5a1" Width="96" Height="1" Offset="0x14F0"/>
<Texture Name="gMalonChildSkinGradientTex" OutName="skin_gradient" Format="rgb5a1" Width="8" Height="8" Offset="0x1718"/>
<Texture Name="gMalonChildBrownCircleTex" OutName="unk_circle" Format="rgb5a1" Width="8" Height="8" Offset="0x1798"/>
<Texture Name="gMalonChildEarTex" OutName="ear" Format="rgb5a1" Width="16" Height="16" Offset="0x1818"/>
<Texture Name="gMalonChildHairTex" OutName="hair" Format="ci8" Width="16" Height="16" Offset="0x1A18"/>
<Texture Name="gMalonChildNeutralMouthTex" OutName="neutral_mouth" Format="rgb5a1" Width="32" Height="16" Offset="0x1F18"/>
<Texture Name="gMalonChildSmilingMouthTex" OutName="smiling_mouth" Format="rgb5a1" Width="32" Height="16" Offset="0x2B18"/>
<Texture Name="gMalonChildTalkingMouthTex" OutName="talking_mouth" Format="rgb5a1" Width="32" Height="16" Offset="0x2F18"/>
<Texture Name="gMalonChildEyeTLUT" OutName="eye_tlut" Format="rgb5a1" Width="15" Height="12" Offset="0x15B0"/>
<Texture Name="gMalonChildEyeOpenTex" OutName="eye_open" Format="ci8" Width="32" Height="32" Offset="0x1B18"/>
<Texture Name="gMalonChildEyeHalfTex" OutName="eye_half" Format="ci8" Width="32" Height="32" Offset="0x2318"/>
<Texture Name="gMalonChildEyeClosedTex" OutName="eye_closed" Format="ci8" Width="32" Height="32" Offset="0x2718"/>
<DList Name="gMalonChildHeadDL" Offset="0x4148"/>
<DList Name="gMalonChildDressLowerDL" Offset="0x6C68"/>
<DList Name="gMalonChildDressMiddleDL" Offset="0x6DD8"/>
<DList Name="gMalonChildChestDL" Offset="0x6F10"/>
<DList Name="gMalonChildRightShoulderDL" Offset="0x7360"/>
<DList Name="gMalonChildRightArmDL" Offset="0x7518"/>
<DList Name="gMalonChildRightHandDL" Offset="0x7628"/>
<DList Name="gMalonChildLeftShoulderDL" Offset="0x77D0"/>
<DList Name="gMalonChildLeftArmDL" Offset="0x7988"/>
<DList Name="gMalonChildLeftHandDL" Offset="0x7A98"/>
<DList Name="gMalonChildDressUpperDL" Offset="0x7C40"/>
<DList Name="gMalonChildRightThighDL" Offset="0x7D40"/>
<DList Name="gMalonChildRightShinDL" Offset="0x7D98"/>
<DList Name="gMalonChildRightFoorDL" Offset="0x7EF8"/>
<DList Name="gMalonChildLeftThighDL" Offset="0x8040"/>
<DList Name="gMalonChildLeftShinDL" Offset="0x8098"/>
<DList Name="gMalonChildLeftFootDL" Offset="0x81F8"/>
</File>
</Root>

View File

@ -1,8 +1,8 @@
<Root>
<File Name="object_mjin" Segment="6">
<DList Name="object_mjin_DL_000330" Offset="0x330"/>
<Blob Name="object_mjin_Blob_0004F8" Size="0x198" Offset="0x4F8"/>
<Texture Name="object_mjin_Tex_000690" OutName="tex_00000690" Format="rgb5a1" Width="64" Height="16" Offset="0x690"/>
<Texture Name="object_mjin_Tex_000E90" OutName="tex_00000E90" Format="i8" Width="32" Height="32" Offset="0xE90"/>
<DList Name="gWarpPadBaseDL" Offset="0x330"/>
<Collision Name="gWarpPadCol" Offset="0x658"/>
<Texture Name="gWarpPadSideTex" OutName="side" Format="rgb5a1" Width="64" Height="16" Offset="0x690"/>
<Texture Name="gWarpPadTopTex" OutName="top" Format="i8" Width="32" Height="32" Offset="0xE90"/>
</File>
</Root>

View File

@ -1,5 +1,5 @@
<Root>
<File Name="object_mjin_dark" Segment="6">
<Blob Name="object_mjin_dark_Blob_000000" Size="0x1000" Offset="0x0"/>
<Texture Name="gShadowMedallionPlatformTex" OutName="shadow_medallion" Format="i8" Width="64" Height="64" Offset="0x0"/>
</File>
</Root>

View File

@ -1,5 +1,5 @@
<Root>
<File Name="object_mjin_flame" Segment="6">
<Blob Name="object_mjin_flame_Blob_000000" Size="0x1000" Offset="0x0"/>
<Texture Name="gFireMedallionPlatformTex" OutName="fire_medallion" Format="i8" Width="64" Height="64" Offset="0x0"/>
</File>
</Root>

View File

@ -1,5 +1,5 @@
<Root>
<File Name="object_mjin_flash" Segment="6">
<Blob Name="object_mjin_flash_Blob_000000" Size="0x1000" Offset="0x0"/>
<Texture Name="gLightMedallionPlatformTex" OutName="light_medallion" Format="i8" Width="64" Height="64" Offset="0x0"/>
</File>
</Root>

View File

@ -1,5 +1,5 @@
<Root>
<File Name="object_mjin_ice" Segment="6">
<Blob Name="object_mjin_ice_Blob_000000" Size="0x1000" Offset="0x0"/>
<Texture Name="gWaterMedallionPlatformTex" OutName="water_medallion" Format="i8" Width="64" Height="64" Offset="0x0"/>
</File>
</Root>

View File

@ -1,8 +1,8 @@
<Root>
<File Name="object_mjin_oka" Segment="6">
<DList Name="object_mjin_oka_DL_000140" Offset="0x140"/>
<Blob Name="object_mjin_oka_Blob_000248" Size="0x118" Offset="0x248"/>
<Texture Name="object_mjin_oka_Tex_000360" OutName="tex_00000360" Format="rgb5a1" Width="64" Height="16" Offset="0x360"/>
<Texture Name="object_mjin_oka_Tex_000B60" OutName="tex_00000B60" Format="i8" Width="64" Height="64" Offset="0xB60"/>
<DList Name="gOcarinaWarpPadDL" Offset="0x140"/>
<Collision Name="gOcarinaWarpPadCol" Offset="0x330"/>
<Texture Name="gOcarinaWarpPadSideTex" OutName="side" Format="rgb5a1" Width="64" Height="16" Offset="0x360"/>
<Texture Name="gOcarinaWarpPadOcarinaTex" OutName="ocarina" Format="i8" Width="64" Height="64" Offset="0xB60"/>
</File>
</Root>

View File

@ -1,5 +1,5 @@
<Root>
<File Name="object_mjin_soul" Segment="6">
<Blob Name="object_mjin_soul_Blob_000000" Size="0x1000" Offset="0x0"/>
<Texture Name="gSpiritMedallionPlatformTex" OutName="spirit_medallion" Format="i8" Width="64" Height="64" Offset="0x0"/>
</File>
</Root>

View File

@ -1,5 +1,5 @@
<Root>
<File Name="object_mjin_wind" Segment="6">
<Blob Name="object_mjin_wind_Blob_000000" Size="0x1000" Offset="0x0"/>
<Texture Name="gForestMedallionPlatformTex" OutName="forest_medallion" Format="i8" Width="64" Height="64" Offset="0x0"/>
</File>
</Root>

View File

@ -1,69 +1,83 @@
<Root>
<File Name="object_ru1" Segment="6">
<Animation Name="object_ru1_Anim_000690" Offset="0x690"/>
<Animation Name="object_ru1_Anim_000E54" Offset="0xE54"/>
<Animation Name="object_ru1_Anim_001488" Offset="0x1488"/>
<Animation Name="object_ru1_Anim_002058" Offset="0x2058"/>
<Animation Name="object_ru1_Anim_002990" Offset="0x2990"/>
<Animation Name="object_ru1_Anim_002EC0" Offset="0x2EC0"/>
<Animation Name="object_ru1_Anim_003608" Offset="0x3608"/>
<Animation Name="object_ru1_Anim_003784" Offset="0x3784"/>
<Animation Name="object_ru1_Anim_004074" Offset="0x4074"/>
<Animation Name="object_ru1_Anim_004350" Offset="0x4350"/>
<Animation Name="object_ru1_Anim_004648" Offset="0x4648"/>
<Animation Name="object_ru1_Anim_004BF0" Offset="0x4BF0"/>
<Animation Name="object_ru1_Anim_0063F4" Offset="0x63F4"/>
<Animation Name="object_ru1_Anim_006B9C" Offset="0x6B9C"/>
<Animation Name="object_ru1_Anim_007534" Offset="0x7534"/>
<Animation Name="object_ru1_Anim_0078E4" Offset="0x78E4"/>
<Animation Name="object_ru1_Anim_008100" Offset="0x8100"/>
<Animation Name="object_ru1_Anim_008AA8" Offset="0x8AA8"/>
<Animation Name="object_ru1_Anim_009060" Offset="0x9060"/>
<Animation Name="object_ru1_Anim_0097B8" Offset="0x97B8"/>
<DList Name="object_ru1_DL_00C0A0" Offset="0xC0A0"/>
<DList Name="object_ru1_DL_00C188" Offset="0xC188"/>
<DList Name="object_ru1_DL_00C3D8" Offset="0xC3D8"/>
<DList Name="object_ru1_DL_00C630" Offset="0xC630"/>
<DList Name="object_ru1_DL_00C7D0" Offset="0xC7D0"/>
<DList Name="object_ru1_DL_00CA20" Offset="0xCA20"/>
<DList Name="object_ru1_DL_00CC78" Offset="0xCC78"/>
<DList Name="object_ru1_DL_00CE18" Offset="0xCE18"/>
<DList Name="object_ru1_DL_00D0B8" Offset="0xD0B8"/>
<DList Name="object_ru1_DL_00D308" Offset="0xD308"/>
<DList Name="object_ru1_DL_00D5E0" Offset="0xD5E0"/>
<DList Name="object_ru1_DL_00D870" Offset="0xD870"/>
<DList Name="object_ru1_DL_00DAC0" Offset="0xDAC0"/>
<DList Name="object_ru1_DL_00DDA8" Offset="0xDDA8"/>
<Texture Name="object_ru1_Tex_00E038" OutName="tex_0000E038" Format="rgb5a1" Width="16" Height="16" Offset="0xE038"/>
<Texture Name="object_ru1_Tex_00E238" OutName="tex_0000E238" Format="rgb5a1" Width="16" Height="16" Offset="0xE238"/>
<Blob Name="object_ru1_Blob_00E438" Size="0x380" Offset="0xE438"/>
<Texture Name="object_ru1_Tex_00E7B8" OutName="tex_0000E7B8" Format="rgb5a1" Width="8" Height="8" Offset="0xE7B8"/>
<Blob Name="object_ru1_Blob_00E838" Size="0x400" Offset="0xE838"/>
<Texture Name="object_ru1_Tex_00EC38" OutName="tex_0000EC38" Format="rgb5a1" Width="16" Height="16" Offset="0xEC38"/>
<Texture Name="object_ru1_Tex_00EE38" OutName="tex_0000EE38" Format="rgb5a1" Width="16" Height="16" Offset="0xEE38"/>
<Texture Name="object_ru1_Tex_00F038" OutName="tex_0000F038" Format="rgb5a1" Width="16" Height="16" Offset="0xF038"/>
<Blob Name="object_ru1_Blob_00F238" Size="0x1C00" Offset="0xF238"/>
<DList Name="object_ru1_DL_0119F8" Offset="0x119F8"/>
<Texture Name="object_ru1_Tex_012200" OutName="tex_00012200" Format="rgb5a1" Width="16" Height="16" Offset="0x12200"/>
<Texture Name="object_ru1_Tex_012400" OutName="tex_00012400" Format="rgb5a1" Width="16" Height="16" Offset="0x12400"/>
<Limb Name="object_ru1_Limb_012600" LimbType="Standard" Offset="0x12600"/>
<Limb Name="object_ru1_Limb_01260C" LimbType="Standard" Offset="0x1260C"/>
<Limb Name="object_ru1_Limb_012618" LimbType="Standard" Offset="0x12618"/>
<Limb Name="object_ru1_Limb_012624" LimbType="Standard" Offset="0x12624"/>
<Limb Name="object_ru1_Limb_012630" LimbType="Standard" Offset="0x12630"/>
<Limb Name="object_ru1_Limb_01263C" LimbType="Standard" Offset="0x1263C"/>
<Limb Name="object_ru1_Limb_012648" LimbType="Standard" Offset="0x12648"/>
<Limb Name="object_ru1_Limb_012654" LimbType="Standard" Offset="0x12654"/>
<Limb Name="object_ru1_Limb_012660" LimbType="Standard" Offset="0x12660"/>
<Limb Name="object_ru1_Limb_01266C" LimbType="Standard" Offset="0x1266C"/>
<Limb Name="object_ru1_Limb_012678" LimbType="Standard" Offset="0x12678"/>
<Limb Name="object_ru1_Limb_012684" LimbType="Standard" Offset="0x12684"/>
<Limb Name="object_ru1_Limb_012690" LimbType="Standard" Offset="0x12690"/>
<Limb Name="object_ru1_Limb_01269C" LimbType="Standard" Offset="0x1269C"/>
<Limb Name="object_ru1_Limb_0126A8" LimbType="Standard" Offset="0x126A8"/>
<Limb Name="object_ru1_Limb_0126B4" LimbType="Standard" Offset="0x126B4"/>
<Skeleton Name="object_ru1_Skel_012700" Type="Flex" LimbType="Standard" Offset="0x12700"/>
<Animation Name="object_ru1_Anim_012E94" Offset="0x12E94"/>
<Animation Name="object_ru1_Anim_013A64" Offset="0x13A64"/>
<Animation Name="gRutoChildWaitHandsBehindBackAnim" Offset="0x690"/>
<Animation Name="gRutoChildWaitHandsOnHipsAnim" Offset="0xE54"/>
<Animation Name="gRutoChildTransitionHandsOnHipToCrossArmsAndLegsAnim" Offset="0x1488"/>
<Animation Name="gRutoChildWaitSittingAnim" Offset="0x2058"/>
<Animation Name="gRutoChildWaitInBlueWarpAnim" Offset="0x2990"/>
<Animation Name="gRutoChildBringHandsDownAnim" Offset="0x2EC0"/>
<Animation Name="gRutoChildHoldArmsUpAnim" Offset="0x3608"/>
<Animation Name="gRutoChildBringArmsUpAnim" Offset="0x3784"/>
<Animation Name="gRutoChildTurnAroundAnim" Offset="0x4074"/>
<Animation Name="gRutoChildSquirmAnim" Offset="0x4350"/>
<Animation Name="gRutoChildSeesSapphireAnim" Offset="0x4648"/>
<Animation Name="gRutoChildShutterAnim" Offset="0x4BF0"/>
<Animation Name="gRutoChildWalkToAndHoldUpSapphireAnim" Offset="0x63F4"/>
<Animation Name="gRutoChildSittingAnim" Offset="0x6B9C"/>
<Animation Name="gRutoChildSitAnim" Offset="0x7534"/>
<Animation Name="gRutoChildWalkAnim" Offset="0x78E4"/>
<Animation Name="gRutoChildTransitionFromSwimOnBackAnim" Offset="0x8100"/>
<Animation Name="gRutoChildTransitionToSwimOnBackAnim" Offset="0x8AA8"/>
<Animation Name="gRutoChildAnim_009060" Offset="0x9060"/>
<Animation Name="gRutoChildWait2Anim" Offset="0x97B8"/>
<Animation Name="gRutoChildSwimOnBackAnim" Offset="0x12E94"/>
<Animation Name="gRutoChildTreadWaterAnim" Offset="0x13A64"/>
<DList Name="gRutoChildTorsoDL" Offset="0xC0A0"/>
<DList Name="gRutoChildLeftThighDL" Offset="0xC188"/>
<DList Name="gRutoChildLeftShinDL" Offset="0xC3D8"/>
<DList Name="gRutoChildLeftFootDL" Offset="0xC630"/>
<DList Name="gRutoChildRightThighDL" Offset="0xC7D0"/>
<DList Name="gRutoChildRightShinDL" Offset="0xCA20"/>
<DList Name="gRutoChildRightFootDL" Offset="0xCC78"/>
<DList Name="gRutoChildChestDL" Offset="0xCE18"/>
<DList Name="gRutoChildRightUpperArmDL" Offset="0xD0B8"/>
<DList Name="gRutoChildRightFinDL" Offset="0xD308"/>
<DList Name="gRutoChildRightHandDL" Offset="0xD5E0"/>
<DList Name="gRutoChildLeftUpperArmDL" Offset="0xD870"/>
<DList Name="gRutoChildLeftFinDL" Offset="0xDAC0"/>
<DList Name="gRutoChildLeftHandDL" Offset="0xDDA8"/>
<DList Name="gRutoChildHeadDL" Offset="0x119F8"/>
<Texture Name="gRutoChildEyeTLUT" OutName="eye_tlut" Format="rgb5a1" Width="16" Height="16" Offset="0xE038"/>
<Texture Name="gRutoChildMouthTLUT" OutName="mouth_tlut" Format="rgb5a1" Width="16" Height="12" Offset="0xE238"/>
<Texture Name="gRutoChildEyeOpenTex" OutName="eye_open" Format="ci8" Width="32" Height="32" Offset="0xE3B8"/>
<Texture Name="gRutoChildEyeHalfTex" OutName="eye_half" Format="ci8" Width="32" Height="32" Offset="0xF238"/>
<Texture Name="gRutoChildEyeClosedTex" OutName="eye_closed" Format="ci8" Width="32" Height="32" Offset="0xF638"/>
<Texture Name="gRutoChildEyeRollLeftTex" OutName="eye_roll_left" Format="ci8" Width="32" Height="32" Offset="0xFE38"/>
<Texture Name="gRutoChildEyeHalf2Tex" OutName="eye_half_2" Format="ci8" Width="32" Height="32" Offset="0x10238"/>
<Texture Name="gRutoChildEyeHalfWithBlushTex" OutName="eye_half_with_blush" Format="ci8" Width="32" Height="32" Offset="0x10A38"/>
<Texture Name="gRutoChildBlueSkinGradientTex" OutName="blue_skin_gradient" Format="rgb5a1" Width="8" Height="8" Offset="0xE7B8"/>
<Texture Name="gRutoChildMouthClosedTex" OutName="mouth_closed" Format="ci8" Width="32" Height="32" Offset="0xE838"/>
<Texture Name="gRutoChildMouthFrownTex" OutName="mouth_frown" Format="ci8" Width="32" Height="32" Offset="0xFA38"/>
<Texture Name="gRutoChildMouthOpenTex" OutName="mouth_open" Format="ci8" Width="32" Height="32" Offset="0x10638"/>
<Texture Name="gRutoChildEarTex" OutName="ear" Format="rgb5a1" Width="16" Height="16" Offset="0xEC38"/>
<Texture Name="gRutoChildBlueSkinPatchesTex" OutName="blue_skin_patches" Format="rgb5a1" Width="16" Height="16" Offset="0xEE38"/>
<Texture Name="gRutoChildUnkHeadCircleTex" OutName="tex_0000F038" Format="rgb5a1" Width="16" Height="16" Offset="0xF038"/> <!-- TODO rename me-->
<Texture Name="gRutoChildFingersTex" OutName="fingers" Format="rgb5a1" Width="16" Height="16" Offset="0x12200"/>
<Texture Name="gRutoChildCircleGradientTex" OutName="circle_gradient" Format="rgb5a1" Width="16" Height="16" Offset="0x12400"/>
<Skeleton Name="gRutoChildSkel" Type="Flex" LimbType="Standard" Offset="0x12700"/>
<Limb Name="gRutoChildRootLimb" LimbType="Standard" Offset="0x12600"/>
<Limb Name="gRutoChildLeftThighLimb" LimbType="Standard" Offset="0x1260C"/>
<Limb Name="gRutoChildLeftShinLimb" LimbType="Standard" Offset="0x12618"/>
<Limb Name="gRutoChildLeftFootLimb" LimbType="Standard" Offset="0x12624"/>
<Limb Name="gRutoChildRightThighLimb" LimbType="Standard" Offset="0x12630"/>
<Limb Name="gRutoChildRightShinLimb" LimbType="Standard" Offset="0x1263C"/>
<Limb Name="gRutoChildRightFootLimb" LimbType="Standard" Offset="0x12648"/>
<Limb Name="gRutoChildChestLimb" LimbType="Standard" Offset="0x12654"/>
<Limb Name="gRutoChildLeftUpperArmLimb" LimbType="Standard" Offset="0x12660"/>
<Limb Name="gRutoChildLeftFinLimb" LimbType="Standard" Offset="0x1266C"/>
<Limb Name="gRutoChildLeftHandLimb" LimbType="Standard" Offset="0x12678"/>
<Limb Name="gRutoChildRightUpperArmLimb" LimbType="Standard" Offset="0x12684"/>
<Limb Name="gRutoChildRightFinLimb" LimbType="Standard" Offset="0x12690"/>
<Limb Name="gRutoChildRightHandLimb" LimbType="Standard" Offset="0x1269C"/>
<Limb Name="gRutoChildHeadLimb" LimbType="Standard" Offset="0x126A8"/>
<Limb Name="gRutoChildTorsoLimb" LimbType="Standard" Offset="0x126B4"/>
</File>
</Root>

View File

@ -5,6 +5,14 @@
*/
#include "z_bg_mjin.h"
#include "objects/object_mjin/object_mjin.h"
#include "objects/object_mjin_wind/object_mjin_wind.h"
#include "objects/object_mjin_soul/object_mjin_soul.h"
#include "objects/object_mjin_dark/object_mjin_dark.h"
#include "objects/object_mjin_ice/object_mjin_ice.h"
#include "objects/object_mjin_flame/object_mjin_flame.h"
#include "objects/object_mjin_flash/object_mjin_flash.h"
#include "objects/object_mjin_oka/object_mjin_oka.h"
#define FLAGS 0x00000010
@ -16,7 +24,7 @@ void BgMjin_Update(Actor* thisx, GlobalContext* globalCtx);
void BgMjin_Draw(Actor* thisx, GlobalContext* globalCtx);
void func_808A0850(BgMjin* this, GlobalContext* globalCtx);
void func_808A0920(BgMjin* this, GlobalContext* globalCtx);
void BgMjin_DoNothing(BgMjin* this, GlobalContext* globalCtx);
const ActorInit Bg_Mjin_InitVars = {
ACTOR_BG_MJIN,
@ -31,10 +39,6 @@ const ActorInit Bg_Mjin_InitVars = {
};
extern UNK_TYPE D_06000000;
extern Gfx D_06000140[];
extern Gfx D_06000330[];
extern CollisionHeader D_06000330_;
extern CollisionHeader D_06000658;
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_CONTINUE),
@ -80,15 +84,15 @@ void func_808A0850(BgMjin* this, GlobalContext* globalCtx) {
this->dyna.actor.objBankIndex = this->objBankIndex;
Actor_SetObjectDependency(globalCtx, &this->dyna.actor);
DynaPolyActor_Init(&this->dyna, 0);
collision = this->dyna.actor.params != 0 ? &D_06000658 : &D_06000330_;
collision = this->dyna.actor.params != 0 ? &gWarpPadCol : &gOcarinaWarpPadCol;
CollisionHeader_GetVirtual(collision, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
BgMjin_SetupAction(this, func_808A0920);
BgMjin_SetupAction(this, BgMjin_DoNothing);
this->dyna.actor.draw = BgMjin_Draw;
}
}
void func_808A0920(BgMjin* this, GlobalContext* globalCtx) {
void BgMjin_DoNothing(BgMjin* this, GlobalContext* globalCtx) {
}
void BgMjin_Update(Actor* thisx, GlobalContext* globalCtx) {
@ -104,15 +108,17 @@ void BgMjin_Draw(Actor* thisx, GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_mjin.c", 250);
if (thisx->params != 0) {
// thisx is required
s32 objBankIndex = Object_GetIndex(&globalCtx->objectCtx, sObjectIDs[thisx->params - 1]);
if (objBankIndex >= 0) {
gSegments[6] = VIRTUAL_TO_PHYSICAL(globalCtx->objectCtx.status[objBankIndex].segment);
}
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&D_06000000));
dlist = D_06000330;
dlist = gWarpPadBaseDL;
} else {
dlist = D_06000140;
dlist = gOcarinaWarpPadDL;
}
func_80093D18(globalCtx->state.gfxCtx);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_mjin.c", 285),
G_MTX_NOPUSH | G_MTX_MODELVIEW | G_MTX_LOAD);

View File

@ -5,6 +5,7 @@
*/
#include "z_en_ma1.h"
#include "objects/object_ma1/object_ma1.h"
#define FLAGS 0x02000039
@ -25,7 +26,7 @@ void func_80AA0F44(EnMa1* this, GlobalContext* globalCtx);
void func_80AA106C(EnMa1* this, GlobalContext* globalCtx);
void func_80AA10EC(EnMa1* this, GlobalContext* globalCtx);
void func_80AA1150(EnMa1* this, GlobalContext* globalCtx);
void func_80AA11C8(EnMa1* this, GlobalContext* globalCtx);
void EnMa1_DoNothing(EnMa1* this, GlobalContext* globalCtx);
const ActorInit En_Ma1_InitVars = {
ACTOR_EN_MA1,
@ -61,31 +62,27 @@ static ColliderCylinderInit sCylinderInit = {
static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE };
static struct_D_80AA1678 D_80AA1678[] = {
{ 0x06000820, 1.0f, ANIMMODE_LOOP, 0.0f },
{ 0x06000820, 1.0f, ANIMMODE_LOOP, -10.0f },
{ 0x06008D64, 1.0f, ANIMMODE_LOOP, 0.0f },
{ 0x06008D64, 1.0f, ANIMMODE_LOOP, -10.0f },
static struct_D_80AA1678 sAnimationInfo[] = {
{ &gMalonChildIdleAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gMalonChildIdleAnim, 1.0f, ANIMMODE_LOOP, -10.0f },
{ &gMalonChildSingAnim, 1.0f, ANIMMODE_LOOP, 0.0f },
{ &gMalonChildSingAnim, 1.0f, ANIMMODE_LOOP, -10.0f },
};
static Vec3f D_80AA16B8 = { 800.0f, 0.0f, 0.0f };
static UNK_PTR D_80AA16C4[] = {
0x06001F18,
0x06002B18,
0x06002F18,
static void* sMouthTextures[] = {
gMalonChildNeutralMouthTex,
gMalonChildSmilingMouthTex,
gMalonChildTalkingMouthTex,
};
static UNK_PTR D_80AA16D0[] = {
0x06001B18,
0x06002318,
0x06002718,
static void* sEyeTextures[] = {
gMalonChildEyeOpenTex,
gMalonChildEyeHalfTex,
gMalonChildEyeClosedTex,
};
extern AnimationHeader D_06000820;
extern FlexSkeletonHeader D_06008460;
extern AnimationHeader D_06008D64;
u16 EnMa1_GetText(GlobalContext* globalCtx, Actor* thisx) {
u16 faceReaction = Text_GetFaceReaction(globalCtx, 0x17);
if (faceReaction != 0) {
@ -207,28 +204,28 @@ s32 func_80AA08C4(EnMa1* this, GlobalContext* globalCtx) {
return 0;
}
void func_80AA0A0C(EnMa1* this) {
if (DECR(this->unk_1E2) == 0) {
this->unk_1E4 += 1;
if (this->unk_1E4 >= 3) {
this->unk_1E2 = Rand_S16Offset(0x1E, 0x1E);
this->unk_1E4 = 0;
void EnMa1_UpdateEyes(EnMa1* this) {
if (DECR(this->blinkTimer) == 0) {
this->eyeIndex += 1;
if (this->eyeIndex >= 3) {
this->blinkTimer = Rand_S16Offset(30, 30);
this->eyeIndex = 0;
}
}
}
void func_80AA0A84(EnMa1* this, UNK_TYPE idx) {
f32 frameCount = Animation_GetLastFrame(D_80AA1678[idx].animation);
void EnMa1_ChangeAnimation(EnMa1* this, UNK_TYPE idx) {
f32 frameCount = Animation_GetLastFrame(sAnimationInfo[idx].animation);
Animation_Change(&this->skelAnime, D_80AA1678[idx].animation, 1.0f, 0.0f, frameCount, D_80AA1678[idx].mode,
D_80AA1678[idx].transitionRate);
Animation_Change(&this->skelAnime, sAnimationInfo[idx].animation, 1.0f, 0.0f, frameCount, sAnimationInfo[idx].mode,
sAnimationInfo[idx].transitionRate);
}
void func_80AA0AF4(EnMa1* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
s16 phi_a3;
if ((this->unk_1E8.unk_00 == 0) && (this->skelAnime.animation == &D_06008D64)) {
if ((this->unk_1E8.unk_00 == 0) && (this->skelAnime.animation == &gMalonChildSingAnim)) {
phi_a3 = 1;
} else {
phi_a3 = 0;
@ -241,7 +238,7 @@ void func_80AA0AF4(EnMa1* this, GlobalContext* globalCtx) {
}
void func_80AA0B74(EnMa1* this) {
if (this->skelAnime.animation == &D_06008D64) {
if (this->skelAnime.animation == &gMalonChildSingAnim) {
if (this->unk_1E8.unk_00 == 0) {
if (this->unk_1E0 != 0) {
this->unk_1E0 = 0;
@ -261,7 +258,7 @@ void EnMa1_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 18.0f);
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06008460, NULL, NULL, NULL, 0);
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gMalonChildSkel, NULL, NULL, NULL, 0);
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(22), &sColChkInfoInit);
@ -278,10 +275,10 @@ void EnMa1_Init(Actor* thisx, GlobalContext* globalCtx) {
if ((!(gSaveContext.eventChkInf[1] & 0x10)) || (CHECK_QUEST_ITEM(QUEST_SONG_EPONA))) {
this->actionFunc = func_80AA0D88;
func_80AA0A84(this, 2);
EnMa1_ChangeAnimation(this, 2);
} else {
this->actionFunc = func_80AA0F44;
func_80AA0A84(this, 2);
EnMa1_ChangeAnimation(this, 2);
}
}
@ -294,12 +291,12 @@ void EnMa1_Destroy(Actor* thisx, GlobalContext* globalCtx) {
void func_80AA0D88(EnMa1* this, GlobalContext* globalCtx) {
if (this->unk_1E8.unk_00 != 0) {
if (this->skelAnime.animation != &D_06000820) {
func_80AA0A84(this, 1);
if (this->skelAnime.animation != &gMalonChildIdleAnim) {
EnMa1_ChangeAnimation(this, 1);
}
} else {
if (this->skelAnime.animation != &D_06008D64) {
func_80AA0A84(this, 3);
if (this->skelAnime.animation != &gMalonChildSingAnim) {
EnMa1_ChangeAnimation(this, 3);
}
}
@ -336,12 +333,12 @@ void func_80AA0F44(EnMa1* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
if (this->unk_1E8.unk_00 != 0) {
if (this->skelAnime.animation != &D_06000820) {
func_80AA0A84(this, 1);
if (this->skelAnime.animation != &gMalonChildIdleAnim) {
EnMa1_ChangeAnimation(this, 1);
}
} else {
if (this->skelAnime.animation != &D_06008D64) {
func_80AA0A84(this, 3);
if (this->skelAnime.animation != &gMalonChildSingAnim) {
EnMa1_ChangeAnimation(this, 3);
}
}
@ -385,11 +382,11 @@ void func_80AA1150(EnMa1* this, GlobalContext* globalCtx) {
gSaveContext.nextCutsceneIndex = 0xFFF1;
globalCtx->fadeTransition = 42;
globalCtx->sceneLoadFlag = 0x14;
this->actionFunc = func_80AA11C8;
this->actionFunc = EnMa1_DoNothing;
}
}
void func_80AA11C8(EnMa1* this, GlobalContext* globalCtx) {
void EnMa1_DoNothing(EnMa1* this, GlobalContext* globalCtx) {
}
void EnMa1_Update(Actor* thisx, GlobalContext* globalCtx) {
@ -399,9 +396,9 @@ void EnMa1_Update(Actor* thisx, GlobalContext* globalCtx) {
Collider_UpdateCylinder(&this->actor, &this->collider);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
SkelAnime_Update(&this->skelAnime);
func_80AA0A0C(this);
EnMa1_UpdateEyes(this);
this->actionFunc(this, globalCtx);
if (this->actionFunc != func_80AA11C8) {
if (this->actionFunc != EnMa1_DoNothing) {
func_800343CC(globalCtx, &this->actor, &this->unk_1E8.unk_00, (f32)this->collider.dim.radius + 30.0f,
EnMa1_GetText, func_80AA0778);
}
@ -443,18 +440,18 @@ void EnMa1_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
void EnMa1_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnMa1* this = THIS;
Camera* camera;
f32 someFloat;
f32 distFromCamera;
s32 pad;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ma1.c", 1226);
camera = ACTIVE_CAM;
someFloat = Math_Vec3f_DistXZ(&this->actor.world.pos, &camera->eye);
func_800F6268(someFloat, 0x2F);
distFromCamera = Math_Vec3f_DistXZ(&this->actor.world.pos, &camera->eye);
func_800F6268(distFromCamera, 0x2F);
func_80093D18(globalCtx->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(D_80AA16C4[this->unk_1E6]));
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80AA16D0[this->unk_1E4]));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sMouthTextures[this->mouthIndex]));
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyeTextures[this->eyeIndex]));
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
EnMa1_OverrideLimbDraw, EnMa1_PostLimbDraw, this);

View File

@ -14,9 +14,9 @@ typedef struct EnMa1 {
/* 0x0190 */ EnMa1ActionFunc actionFunc;
/* 0x0194 */ ColliderCylinder collider;
/* 0x01E0 */ s16 unk_1E0;
/* 0x01E2 */ s16 unk_1E2;
/* 0x01E4 */ s16 unk_1E4;
/* 0x01E6 */ s16 unk_1E6;
/* 0x01E2 */ s16 blinkTimer;
/* 0x01E4 */ s16 eyeIndex;
/* 0x01E6 */ s16 mouthIndex;
/* 0x01E8 */ struct_80034A14_arg1 unk_1E8;
} EnMa1; // size = 0x0210

View File

@ -5,6 +5,7 @@
*/
#include "z_en_ru1.h"
#include "objects/object_ru1/object_ru1.h"
#include "vt.h"
#define FLAGS 0x04000011
@ -65,9 +66,9 @@ void func_80AEFF40(EnRu1* this, GlobalContext* globalCtx);
void func_80AF0278(EnRu1* this, GlobalContext* globalCtx, s32 limbIndex, Vec3s* rot);
void func_80AF03F4(EnRu1* this, GlobalContext* globalCtx);
void func_80AF0400(EnRu1* this, GlobalContext* globalCtx);
void func_80AF05D4(EnRu1* this, GlobalContext* globalCtx);
void EnRu1_DrawNothing(EnRu1* this, GlobalContext* globalCtx);
void EnRu1_DrawOpa(EnRu1* this, GlobalContext* globalCtx);
void EnRu1_DrawXlu(EnRu1* this, GlobalContext* globalCtx);
static ColliderCylinderInitType1 sCylinderInit1 = {
{
@ -93,14 +94,15 @@ static ColliderCylinderInitType1 sCylinderInit2 = {
{ 20, 30, 0, { 0 } },
};
static UNK_PTR D_80AF0858[] = {
0x0600E3B8, 0x0600F238, 0x0600F638, 0x0600FE38, 0x06010238, 0x06010A38,
static void* sEyeTextures[] = {
gRutoChildEyeOpenTex, gRutoChildEyeHalfTex, gRutoChildEyeClosedTex,
gRutoChildEyeRollLeftTex, gRutoChildEyeHalf2Tex, gRutoChildEyeHalfWithBlushTex,
};
static UNK_PTR D_80AF0870[] = {
0x0600E838,
0x0600FA38,
0x06010638,
static void* sMouthTextures[] = {
gRutoChildMouthClosedTex,
gRutoChildMouthFrownTex,
gRutoChildMouthOpenTex,
};
static s32 sUnused = 0;
@ -126,9 +128,9 @@ static EnRu1PreLimbDrawFunc sPreLimbDrawFuncs[] = {
static Vec3f sMultVec = { 0.0f, 10.0f, 0.0f };
static EnRu1DrawFunc sDrawFuncs[] = {
func_80AF03F4,
func_80AF0400,
func_80AF05D4,
EnRu1_DrawNothing,
EnRu1_DrawOpa,
EnRu1_DrawXlu,
};
const ActorInit En_Ru1_InitVars = {
@ -143,30 +145,6 @@ const ActorInit En_Ru1_InitVars = {
(ActorFunc)EnRu1_Draw,
};
extern AnimationHeader D_06000690;
extern AnimationHeader D_06000E54;
extern AnimationHeader D_06001488;
extern AnimationHeader D_06002058;
extern AnimationHeader D_06002990;
extern AnimationHeader D_06002EC0;
extern AnimationHeader D_06003608;
extern AnimationHeader D_06003784;
extern AnimationHeader D_06004074;
extern AnimationHeader D_06004350;
extern AnimationHeader D_06004648;
extern AnimationHeader D_06004BF0;
extern AnimationHeader D_060063F4;
extern AnimationHeader D_06006B9C;
extern AnimationHeader D_06007534;
extern AnimationHeader D_060078E4;
extern AnimationHeader D_06008100;
extern AnimationHeader D_06008AA8;
extern AnimationHeader D_06009060;
extern AnimationHeader D_060097B8;
extern FlexSkeletonHeader D_06012700;
extern AnimationHeader D_06012E94;
extern AnimationHeader D_06013A64;
void func_80AEAC10(EnRu1* this, GlobalContext* globalCtx) {
s32 pad[5];
@ -202,7 +180,7 @@ void func_80AEAD20(Actor* thisx, GlobalContext* globalCtx) {
Collider_SetCylinderType1(globalCtx, &this->collider2, &this->actor, &sCylinderInit2);
}
void func_80AEAD98(EnRu1* this, GlobalContext* globalCtx) {
void EnRu1_DestroyColliders(EnRu1* this, GlobalContext* globalCtx) {
Collider_DestroyCylinder(globalCtx, &this->collider);
Collider_DestroyCylinder(globalCtx, &this->collider2);
}
@ -226,30 +204,30 @@ u8 func_80AEADF0(EnRu1* this) {
void EnRu1_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnRu1* this = THIS;
func_80AEAD98(this, globalCtx);
EnRu1_DestroyColliders(this, globalCtx);
}
void func_80AEAE1C(EnRu1* this) {
void EnRu1_UpdateEyes(EnRu1* this) {
s32 pad[3];
s16* unk_25E = &this->unk_25E;
s16* unk_25C = &this->unk_25C;
s16* blinkTimer = &this->blinkTimer;
s16* eyeIndex = &this->eyeIndex;
if (DECR(*unk_25E) == 0) {
*unk_25E = Rand_S16Offset(0x3C, 0x3C);
if (DECR(*blinkTimer) == 0) {
*blinkTimer = Rand_S16Offset(60, 60);
}
*unk_25C = *unk_25E;
if (*unk_25C >= 3) {
*unk_25C = 0;
*eyeIndex = *blinkTimer;
if (*eyeIndex >= 3) {
*eyeIndex = 0;
}
}
void func_80AEAEA4(EnRu1* this, s16 arg1) {
this->unk_25C = arg1;
void EnRu1_SetEyeIndex(EnRu1* this, s16 eyeIndex) {
this->eyeIndex = eyeIndex;
}
void func_80AEAEB8(EnRu1* this, s16 arg1) {
this->unk_260 = arg1;
void EnRu1_SetMouthIndex(EnRu1* this, s16 mouthIndex) {
this->mouthIndex = mouthIndex;
}
void func_80AEAECC(EnRu1* this, GlobalContext* globalCtx) {
@ -261,7 +239,7 @@ void func_80AEAECC(EnRu1* this, GlobalContext* globalCtx) {
*velocityY = velocityYHeld;
}
s32 func_80AEAF38(GlobalContext* globalCtx) {
s32 EnRu1_IsCsStateIdle(GlobalContext* globalCtx) {
if (globalCtx->csCtx.state == CS_STATE_IDLE) {
return 1;
}
@ -272,7 +250,7 @@ CsCmdActorAction* func_80AEAF58(GlobalContext* globalCtx, s32 npcActionIdx) {
s32 pad[2];
CsCmdActorAction* ret = NULL;
if (!func_80AEAF38(globalCtx)) {
if (!EnRu1_IsCsStateIdle(globalCtx)) {
ret = globalCtx->csCtx.npcActions[npcActionIdx];
}
return ret;
@ -314,7 +292,7 @@ s32 func_80AEB020(EnRu1* this, GlobalContext* globalCtx) {
return 0;
}
BgBdanObjects* func_80AEB088(GlobalContext* globalCtx) {
BgBdanObjects* EnRu1_FindSwitch(GlobalContext* globalCtx) {
Actor* actorIt = globalCtx->actorCtx.actorLists[ACTORCAT_BG].head;
while (actorIt != NULL) {
@ -323,6 +301,7 @@ BgBdanObjects* func_80AEB088(GlobalContext* globalCtx) {
}
actorIt = actorIt->next;
}
// There is no stand
osSyncPrintf(VT_FGCOL(RED) "お立ち台が無い!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
return NULL;
}
@ -374,7 +353,7 @@ void func_80AEB1D8(EnRu1* this) {
}
void func_80AEB220(EnRu1* this, GlobalContext* globalCtx) {
if ((func_80AEAF38(globalCtx)) && (this->actor.params == 0xA)) {
if ((EnRu1_IsCsStateIdle(globalCtx)) && (this->actor.params == 0xA)) {
func_80AEB1D8(this);
}
}
@ -424,11 +403,11 @@ void func_80AEB3CC(EnRu1* this) {
}
void func_80AEB3DC(EnRu1* this, GlobalContext* globalCtx) {
func_80AEB264(this, &D_06000690, 0, 0, 0);
func_80AEB264(this, &gRutoChildWaitHandsBehindBackAnim, 0, 0, 0);
this->action = 0;
this->drawConfig = 1;
func_80AEAEA4(this, 4);
func_80AEAEB8(this, 0);
EnRu1_SetEyeIndex(this, 4);
EnRu1_SetMouthIndex(this, 0);
}
CsCmdActorAction* func_80AEB438(GlobalContext* globalCtx) {
@ -467,7 +446,7 @@ void func_80AEB59C(EnRu1* this, GlobalContext* globalCtx) {
EnRu1_SpawnRipple(this, globalCtx, kREG(2) + 500, (kREG(3) + 10.0f) * 2.0f);
}
void func_80AEB680(EnRu1* this, GlobalContext* globalCtx) {
void EnRu1_SpawnSplash(EnRu1* this, GlobalContext* globalCtx) {
Vec3f pos;
pos.x = this->actor.world.pos.x;
@ -625,8 +604,8 @@ void func_80AEBC84(EnRu1* this, GlobalContext* globalCtx) {
void func_80AEBCB8(EnRu1* this, UNK_TYPE arg1) {
if (arg1 != 0) {
Animation_Change(&this->skelAnime, &D_06012E94, 1.0f, 0, Animation_GetLastFrame(&D_06012E94), ANIMMODE_LOOP,
-8.0f);
Animation_Change(&this->skelAnime, &gRutoChildSwimOnBackAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildSwimOnBackAnim), ANIMMODE_LOOP, -8.0f);
}
}
@ -636,7 +615,7 @@ void func_80AEBD1C(EnRu1* this, GlobalContext* globalCtx) {
this->drawConfig = 0;
func_80AEB914(this, globalCtx);
func_80AEAECC(this, globalCtx);
func_80AEB680(this, globalCtx);
EnRu1_SpawnSplash(this, globalCtx);
func_80AEB59C(this, globalCtx);
}
}
@ -646,10 +625,10 @@ void func_80AEBD94(EnRu1* this, GlobalContext* globalCtx) {
f32 frameCount;
if (func_80AEB480(globalCtx, 3)) {
frameCount = Animation_GetLastFrame(&D_06009060);
frameCount = Animation_GetLastFrame(&gRutoChildAnim_009060);
func_80AEB934(this, globalCtx);
func_80AEB738(this, globalCtx);
Animation_Change(&this->skelAnime, &D_06009060, 1.0f, 0.0f, frameCount, ANIMMODE_ONCE, 0.0f);
Animation_Change(&this->skelAnime, &gRutoChildAnim_009060, 1.0f, 0.0f, frameCount, ANIMMODE_ONCE, 0.0f);
this->action = 2;
this->drawConfig = 1;
}
@ -660,9 +639,9 @@ void func_80AEBE3C(EnRu1* this, GlobalContext* globalCtx, s32 arg2) {
f32 frameCount;
if (arg2 != 0) {
frameCount = Animation_GetLastFrame(&D_06013A64);
frameCount = Animation_GetLastFrame(&gRutoChildTreadWaterAnim);
func_80AEB7D0(this);
Animation_Change(&this->skelAnime, &D_06013A64, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f);
Animation_Change(&this->skelAnime, &gRutoChildTreadWaterAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f);
this->action = 3;
} else {
func_80AEB954(this, globalCtx);
@ -674,9 +653,10 @@ void func_80AEBEC8(EnRu1* this, GlobalContext* globalCtx) {
f32 frameCount;
if (func_80AEB458(globalCtx, 6)) {
frameCount = Animation_GetLastFrame(&D_06008AA8);
frameCount = Animation_GetLastFrame(&gRutoChildTransitionToSwimOnBackAnim);
func_80AEB738(this, globalCtx);
Animation_Change(&this->skelAnime, &D_06008AA8, 1.0f, 0, frameCount, ANIMMODE_ONCE, -8.0f);
Animation_Change(&this->skelAnime, &gRutoChildTransitionToSwimOnBackAnim, 1.0f, 0, frameCount, ANIMMODE_ONCE,
-8.0f);
this->action = 4;
}
}
@ -702,8 +682,9 @@ void func_80AEBFD8(EnRu1* this, GlobalContext* globalCtx) {
csCtxFrames = globalCtx->csCtx.frames;
endFrame = csCmdNPCAction->endFrame;
if (csCtxFrames >= endFrame - 2) {
frameCount = Animation_GetLastFrame(&D_06008100);
Animation_Change(&this->skelAnime, &D_06008100, 1.0, 0, frameCount, ANIMMODE_ONCE, -8.0f);
frameCount = Animation_GetLastFrame(&gRutoChildTransitionFromSwimOnBackAnim);
Animation_Change(&this->skelAnime, &gRutoChildTransitionFromSwimOnBackAnim, 1.0, 0, frameCount,
ANIMMODE_ONCE, -8.0f);
this->action = 6;
}
}
@ -749,7 +730,7 @@ void func_80AEC1D4(EnRu1* this, GlobalContext* globalCtx) {
something = EnRu1_FrameUpdateMatrix(this);
func_80AEAECC(this, globalCtx);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEB50C(this, globalCtx);
func_80AEBCB8(this, something);
func_80AEBBF4(this);
@ -762,7 +743,7 @@ void func_80AEC244(EnRu1* this, GlobalContext* globalCtx) {
something = EnRu1_FrameUpdateMatrix(this);
func_80AEBA2C(this, globalCtx);
func_80AEAECC(this, globalCtx);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEB50C(this, globalCtx);
func_80AEBCB8(this, something);
func_80AEBB78(this);
@ -774,7 +755,7 @@ void func_80AEC2C0(EnRu1* this, GlobalContext* globalCtx) {
something = EnRu1_FrameUpdateMatrix(this);
func_80AEAECC(this, globalCtx);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEB50C(this, globalCtx);
func_80AEC070(this, globalCtx, something);
}
@ -783,15 +764,15 @@ void func_80AEC320(EnRu1* this, GlobalContext* globalCtx) {
s8 actorRoom;
if (!(gSaveContext.infTable[20] & 2)) {
func_80AEB264(this, &D_060097B8, 0, 0, 0);
func_80AEB264(this, &gRutoChildWait2Anim, 0, 0, 0);
this->action = 7;
func_80AEAEB8(this, 1);
EnRu1_SetMouthIndex(this, 1);
return;
}
if ((gSaveContext.infTable[20] & 0x80) && (!(gSaveContext.infTable[20] & 1)) &&
(!(gSaveContext.infTable[20] & 0x20))) {
if (!func_80AEB020(this, globalCtx)) {
func_80AEB264(this, &D_060097B8, 0, 0, 0);
func_80AEB264(this, &gRutoChildWait2Anim, 0, 0, 0);
actorRoom = this->actor.room;
this->action = 22;
this->actor.room = -1;
@ -866,8 +847,8 @@ void func_80AEC6B0(EnRu1* this) {
void func_80AEC6E4(EnRu1* this, GlobalContext* globalCtx) {
if ((func_80AEAFA0(globalCtx, 4, 3)) && (this->unk_280 == 0)) {
Animation_Change(&this->skelAnime, &D_06003784, 1.0f, 0, Animation_GetLastFrame(&D_06003784), ANIMMODE_ONCE,
-8.0f);
Animation_Change(&this->skelAnime, &gRutoChildBringArmsUpAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildBringArmsUpAnim), ANIMMODE_ONCE, -8.0f);
this->unk_280 = 1;
func_80AEC6B0(this);
}
@ -906,16 +887,16 @@ void func_80AEC81C(EnRu1* this, GlobalContext* globalCtx) {
void func_80AEC8B8(EnRu1* this, GlobalContext* globalCtx) {
if (func_80AEAFA0(globalCtx, 3, 3)) {
Animation_Change(&this->skelAnime, &D_06004074, 1.0f, 0, Animation_GetLastFrame(&D_06004074), ANIMMODE_ONCE,
-8.0f);
Animation_Change(&this->skelAnime, &gRutoChildTurnAroundAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildTurnAroundAnim), ANIMMODE_ONCE, -8.0f);
this->action = 10;
}
}
void func_80AEC93C(EnRu1* this, UNK_TYPE arg1) {
if (arg1 != 0) {
Animation_Change(&this->skelAnime, &D_060078E4, 1.0f, 0, Animation_GetLastFrame(&D_060078E4), ANIMMODE_LOOP,
-8.0f);
Animation_Change(&this->skelAnime, &gRutoChildWalkAnim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildWalkAnim),
ANIMMODE_LOOP, -8.0f);
this->actor.world.rot.y += 0x8000;
this->action = 0xB;
this->unk_26C = 0.0f;
@ -956,7 +937,7 @@ void func_80AECAB4(EnRu1* this, GlobalContext* globalCtx) {
void func_80AECAD4(EnRu1* this, GlobalContext* globalCtx) {
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEAECC(this, globalCtx);
func_80AEC8B8(this, globalCtx);
}
@ -965,7 +946,7 @@ void func_80AECB18(EnRu1* this, GlobalContext* globalCtx) {
s32 something;
something = EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEAECC(this, globalCtx);
func_80AEC93C(this, something);
}
@ -973,7 +954,7 @@ void func_80AECB18(EnRu1* this, GlobalContext* globalCtx) {
void func_80AECB60(EnRu1* this, GlobalContext* globalCtx) {
func_80AEC40C(this);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEAECC(this, globalCtx);
func_80AEC650(this);
func_80AEC9C4(this);
@ -983,7 +964,7 @@ void func_80AECBB8(EnRu1* this, GlobalContext* globalCtx) {
func_80AEC4CC(this);
func_80AEC6E4(this, globalCtx);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEAECC(this, globalCtx);
func_80AEC650(this);
func_80AECA18(this);
@ -993,7 +974,7 @@ void func_80AECC1C(EnRu1* this, GlobalContext* globalCtx) {
func_80AEC4F4(this);
func_80AEC6E4(this, globalCtx);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEAECC(this, globalCtx);
func_80AEC650(this);
func_80AECA44(this, globalCtx);
@ -1019,16 +1000,16 @@ void func_80AECCB0(EnRu1* this, GlobalContext* globalCtx) {
spawnX = ((kREG(1) + 12.0f) * Math_SinS(yawTowardsPlayer)) + pos->x;
spawnY = pos->y;
spawnZ = ((kREG(1) + 12.0f) * Math_CosS(yawTowardsPlayer)) + pos->z;
this->unk_278 = (DoorWarp1*)Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1,
this->blueWarp = (DoorWarp1*)Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1,
spawnX, spawnY, spawnZ, 0, yawTowardsPlayer, 0, 5);
}
void func_80AECDA0(EnRu1* this, GlobalContext* globalCtx) {
func_80AEB264(this, &D_06000E54, 0, 0, 0);
func_80AEB264(this, &gRutoChildWaitHandsOnHipsAnim, 0, 0, 0);
this->action = 15;
this->actor.shape.yOffset = -10000.0f;
func_80AEAEA4(this, 5);
func_80AEAEB8(this, 2);
EnRu1_SetEyeIndex(this, 5);
EnRu1_SetMouthIndex(this, 2);
}
void func_80AECE04(EnRu1* this, GlobalContext* globalCtx) {
@ -1090,15 +1071,15 @@ s32 func_80AECF6C(EnRu1* this, GlobalContext* globalCtx) {
}
s32 func_80AED084(EnRu1* this, UNK_TYPE arg1) {
if (this->unk_278 != NULL && this->unk_278->unk_1EC == arg1) {
if (this->blueWarp != NULL && this->blueWarp->unk_1EC == arg1) {
return 1;
}
return 0;
}
void func_80AED0B0(EnRu1* this, UNK_TYPE arg1) {
if (this->unk_278 != NULL) {
this->unk_278->unk_1EC = arg1;
if (this->blueWarp != NULL) {
this->blueWarp->unk_1EC = arg1;
}
}
@ -1132,7 +1113,8 @@ void func_80AED154(EnRu1* this, GlobalContext* globalCtx) {
void func_80AED19C(EnRu1* this, s32 cond) {
if (cond) {
Animation_Change(&this->skelAnime, &D_06001488, 1.0f, 0, Animation_GetLastFrame(&D_06001488), ANIMMODE_ONCE,
Animation_Change(&this->skelAnime, &gRutoChildTransitionHandsOnHipToCrossArmsAndLegsAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildTransitionHandsOnHipToCrossArmsAndLegsAnim), ANIMMODE_ONCE,
-8.0f);
this->action = 20;
func_80AED0B0(this, 3);
@ -1142,12 +1124,12 @@ void func_80AED19C(EnRu1* this, s32 cond) {
void func_80AED218(EnRu1* this, UNK_TYPE arg1) {
if (func_80AED084(this, 4)) {
if (arg1 != 0) {
Animation_Change(&this->skelAnime, &D_06002058, 1.0f, 0, Animation_GetLastFrame(&D_06002058), ANIMMODE_LOOP,
-8.0f);
Animation_Change(&this->skelAnime, &gRutoChildWaitSittingAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildWaitSittingAnim), ANIMMODE_LOOP, -8.0f);
}
} else if (func_80AED084(this, 5)) {
Animation_Change(&this->skelAnime, &D_06002990, 1.0f, 0, Animation_GetLastFrame(&D_06002990), ANIMMODE_ONCE,
-8.0f);
Animation_Change(&this->skelAnime, &gRutoChildWaitInBlueWarpAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildWaitInBlueWarpAnim), ANIMMODE_ONCE, -8.0f);
this->action = 21;
this->unk_27C = this->actor.xzDistToPlayer;
}
@ -1194,7 +1176,7 @@ void func_80AED44C(EnRu1* this, GlobalContext* globalCtx) {
if ((gSaveContext.infTable[20] & 2) && (!(gSaveContext.infTable[20] & 0x20)) &&
(!(gSaveContext.infTable[20] & 1)) && (!(gSaveContext.infTable[20] & 0x80))) {
if (!func_80AEB020(this, globalCtx)) {
func_80AEB264(this, &D_060097B8, 0, 0, 0);
func_80AEB264(this, &gRutoChildWait2Anim, 0, 0, 0);
actorRoom = this->actor.room;
this->action = 22;
this->actor.room = -1;
@ -1249,7 +1231,7 @@ s32 func_80AED624(EnRu1* this, GlobalContext* globalCtx) {
(this->actor.yDistToWater > kREG(16) + 50.0f) && (this->action != 33)) {
this->action = 33;
this->drawConfig = 2;
this->unk_2A8 = 0xFF;
this->alpha = 0xFF;
this->unk_2A4 = 0.0f;
}
return 1;
@ -1280,7 +1262,7 @@ void func_80AED738(EnRu1* this, GlobalContext* globalCtx) {
this->unk_2A4 += 1.0f;
if (this->unk_2A4 < 20.0f) {
temp_v0 = ((20.0f - this->unk_2A4) * 255.0f) / 20.0f;
this->unk_2A8 = temp_v0;
this->alpha = temp_v0;
this->actor.shape.shadowAlpha = temp_v0;
} else {
Actor_Kill(&this->actor);
@ -1605,9 +1587,9 @@ void func_80AEE628(EnRu1* this, GlobalContext* globalCtx) {
s32 pad[2];
s8 curRoomNum = globalCtx->roomCtx.curRoom.num;
if (func_80AEAF38(globalCtx)) {
Animation_Change(&this->skelAnime, &D_06006B9C, 1.0f, 0, Animation_GetLastFrame(&D_06006B9C), ANIMMODE_LOOP,
-8.0f);
if (EnRu1_IsCsStateIdle(globalCtx)) {
Animation_Change(&this->skelAnime, &gRutoChildSittingAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildSittingAnim), ANIMMODE_LOOP, -8.0f);
gSaveContext.infTable[20] |= 0x10;
this->action = 31;
}
@ -1620,8 +1602,8 @@ s32 func_80AEE6D0(EnRu1* this, GlobalContext* globalCtx) {
if ((!(gSaveContext.infTable[20] & 0x10)) && (func_80AEB124(globalCtx) != 0)) {
if (!Player_InCsMode(globalCtx)) {
Animation_Change(&this->skelAnime, &D_06004648, 1.0f, 0, Animation_GetLastFrame(&D_06004350), ANIMMODE_LOOP,
-8.0f);
Animation_Change(&this->skelAnime, &gRutoChildSeesSapphireAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildSquirmAnim), ANIMMODE_LOOP, -8.0f);
func_80AED600(this);
this->action = 34;
this->unk_26C = 0.0f;
@ -1642,8 +1624,8 @@ void func_80AEE7C4(EnRu1* this, GlobalContext* globalCtx) {
f32* unk_370 = &this->unk_370;
if (Actor_HasNoParent(&this->actor, globalCtx)) {
frameCount = Animation_GetLastFrame(&D_06006B9C);
Animation_Change(&this->skelAnime, &D_06006B9C, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f);
frameCount = Animation_GetLastFrame(&gRutoChildSittingAnim);
Animation_Change(&this->skelAnime, &gRutoChildSittingAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f);
func_80AED6DC(this, globalCtx);
this->actor.speedXZ *= (kREG(25) * 0.01f) + 1.0f;
this->actor.velocity.y *= (kREG(26) * 0.01f) + 1.0f;
@ -1666,8 +1648,9 @@ void func_80AEE7C4(EnRu1* this, GlobalContext* globalCtx) {
if (this->action != 32) {
if (*unk_370 > 30.0f) {
if (Rand_S16Offset(0, 3) == 0) {
frameCount = Animation_GetLastFrame(&D_06004350);
Animation_Change(&this->skelAnime, &D_06004350, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f);
frameCount = Animation_GetLastFrame(&gRutoChildSquirmAnim);
Animation_Change(&this->skelAnime, &gRutoChildSquirmAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP,
-8.0f);
func_80AED5DC(this);
this->action = 32;
}
@ -1675,15 +1658,15 @@ void func_80AEE7C4(EnRu1* this, GlobalContext* globalCtx) {
}
} else {
if (*unk_370 > 50.0f) {
frameCount = Animation_GetLastFrame(&D_06006B9C);
Animation_Change(&this->skelAnime, &D_06006B9C, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f);
frameCount = Animation_GetLastFrame(&gRutoChildSittingAnim);
Animation_Change(&this->skelAnime, &gRutoChildSittingAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f);
this->action = 31;
*unk_370 = 0.0f;
}
}
} else {
frameCount = Animation_GetLastFrame(&D_06006B9C);
Animation_Change(&this->skelAnime, &D_06006B9C, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f);
frameCount = Animation_GetLastFrame(&gRutoChildSittingAnim);
Animation_Change(&this->skelAnime, &gRutoChildSittingAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f);
*unk_370 = 0.0f;
}
}
@ -1717,7 +1700,7 @@ void func_80AEEBD4(EnRu1* this, GlobalContext* globalCtx) {
func_80AEAC54(this, globalCtx);
func_80AEAECC(this, globalCtx);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEEBB4(this, globalCtx);
func_80AEE488(this, globalCtx);
func_80AED624(this, globalCtx);
@ -1731,7 +1714,7 @@ void func_80AEEC5C(EnRu1* this, GlobalContext* globalCtx) {
func_80AEE2F8(this, globalCtx);
func_80AEDFF4(this, globalCtx);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEE568(this, globalCtx);
func_80AED624(this, globalCtx);
func_80AEDAE0(this, globalCtx);
@ -1742,7 +1725,7 @@ void func_80AEECF0(EnRu1* this, GlobalContext* globalCtx) {
func_80AEAECC(this, globalCtx);
func_80AEE050(this);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEEB24(this, globalCtx);
func_80AED624(this, globalCtx);
}
@ -1752,7 +1735,7 @@ void func_80AEED58(EnRu1* this, GlobalContext* globalCtx) {
func_80AEAECC(this, globalCtx);
Actor_MoveForward(&this->actor);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEEAC8(this, globalCtx);
func_80AED624(this, globalCtx);
func_80AEDAE0(this, globalCtx);
@ -1763,7 +1746,7 @@ void func_80AEEDCC(EnRu1* this, GlobalContext* globalCtx) {
EnRu1_FrameUpdateMatrix(this);
func_80AEAECC(this, globalCtx);
func_80AEE2F8(this, globalCtx);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AED6F8(globalCtx);
func_80AEE7C4(this, globalCtx);
}
@ -1773,7 +1756,7 @@ void func_80AEEE34(EnRu1* this, GlobalContext* globalCtx) {
EnRu1_FrameUpdateMatrix(this);
func_80AEAECC(this, globalCtx);
func_80AEE2F8(this, globalCtx);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AED6F8(globalCtx);
func_80AEE7C4(this, globalCtx);
}
@ -1783,7 +1766,7 @@ void func_80AEEE9C(EnRu1* this, GlobalContext* globalCtx) {
func_80AEAECC(this, globalCtx);
func_80AEDFF4(this, globalCtx);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AED738(this, globalCtx);
func_80AED624(this, globalCtx);
}
@ -1792,7 +1775,7 @@ void func_80AEEF08(EnRu1* this, GlobalContext* globalCtx) {
func_80AED83C(this);
EnRu1_FrameUpdateMatrix(this);
func_80AEAECC(this, globalCtx);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEE628(this, globalCtx);
}
@ -1830,8 +1813,8 @@ s32 func_80AEF0BC(EnRu1* this, GlobalContext* globalCtx) {
s32 frameCount;
if (gSaveContext.infTable[20] & 4) {
frameCount = Animation_GetLastFrame(&D_06007534);
Animation_Change(&this->skelAnime, &D_06007534, 1.0f, 0, frameCount, ANIMMODE_ONCE, -8.0f);
frameCount = Animation_GetLastFrame(&gRutoChildSitAnim);
Animation_Change(&this->skelAnime, &gRutoChildSitAnim, 1.0f, 0, frameCount, ANIMMODE_ONCE, -8.0f);
globalCtx->msgCtx.msgMode = 0x37;
this->action = 26;
this->actor.flags &= ~0x9;
@ -1856,8 +1839,8 @@ void func_80AEF188(EnRu1* this, GlobalContext* globalCtx) {
void func_80AEF1F0(EnRu1* this, GlobalContext* globalCtx, UNK_TYPE arg2) {
if (arg2 != 0) {
Animation_Change(&this->skelAnime, &D_06006B9C, 1.0f, 0.0f, Animation_GetLastFrame(&D_06006B9C), ANIMMODE_LOOP,
0.0f);
Animation_Change(&this->skelAnime, &gRutoChildSittingAnim, 1.0f, 0.0f,
Animation_GetLastFrame(&gRutoChildSittingAnim), ANIMMODE_LOOP, 0.0f);
func_80106CCC(globalCtx);
gSaveContext.infTable[20] |= 8;
func_80AED6DC(this, globalCtx);
@ -1882,7 +1865,7 @@ void func_80AEF2D0(EnRu1* this, GlobalContext* globalCtx) {
func_80AEEF68(this, globalCtx);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEAC10(this, globalCtx);
func_80AEAECC(this, globalCtx);
cond = func_80AEE264(this, globalCtx);
@ -1893,7 +1876,7 @@ void func_80AEF2D0(EnRu1* this, GlobalContext* globalCtx) {
void func_80AEF354(EnRu1* this, GlobalContext* globalCtx) {
func_80AEEFEC(this, globalCtx);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEAECC(this, globalCtx);
func_80AEF188(this, globalCtx);
}
@ -1904,7 +1887,7 @@ void func_80AEF3A8(EnRu1* this, GlobalContext* globalCtx) {
func_80AED83C(this);
something = EnRu1_FrameUpdateMatrix(this);
func_80AEF080(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEAECC(this, globalCtx);
func_80AEF1F0(this, globalCtx, something);
}
@ -1935,10 +1918,10 @@ void func_80AEF51C(EnRu1* this) {
void func_80AEF540(EnRu1* this) {
if (func_80AEB104(this) == 2) {
func_80AEAEA4(this, 3);
func_80AEAEB8(this, 2);
EnRu1_SetEyeIndex(this, 3);
EnRu1_SetMouthIndex(this, 2);
if (this->skelAnime.mode != 2) {
func_80AEB264(this, &D_06004BF0, 2, -8.0f, 0);
func_80AEB264(this, &gRutoChildShutterAnim, 2, -8.0f, 0);
func_80AEF51C(this);
}
}
@ -1950,8 +1933,8 @@ void func_80AEF5B8(EnRu1* this) {
if (D_80AF1938 == 0) {
curFrame = this->skelAnime.curFrame;
if (curFrame >= 60.0f) {
func_80AEAEA4(this, 3);
func_80AEAEB8(this, 0);
EnRu1_SetEyeIndex(this, 3);
EnRu1_SetMouthIndex(this, 0);
func_80AED57C(this);
D_80AF1938 = 1;
}
@ -1965,7 +1948,7 @@ void func_80AEF624(EnRu1* this, GlobalContext* globalCtx) {
s16 newRotTmp;
if (func_80AEAFE0(globalCtx, 1, 3)) {
frameCount = Animation_GetLastFrame(&D_060063F4);
frameCount = Animation_GetLastFrame(&gRutoChildWalkToAndHoldUpSapphireAnim);
// this weird part with the redundant variable is necessary to match for some reason
csCmdNPCAction2 = globalCtx->csCtx.npcActions[3];
csCmdNPCAction = csCmdNPCAction2;
@ -1981,7 +1964,8 @@ void func_80AEF624(EnRu1* this, GlobalContext* globalCtx) {
newRotTmp = csCmdNPCAction->rot.z;
this->actor.shape.rot.z = newRotTmp;
this->actor.world.rot.z = newRotTmp;
Animation_Change(&this->skelAnime, &D_060063F4, 1.0f, 0.0f, frameCount, ANIMMODE_ONCE, 0.0f);
Animation_Change(&this->skelAnime, &gRutoChildWalkToAndHoldUpSapphireAnim, 1.0f, 0.0f, frameCount,
ANIMMODE_ONCE, 0.0f);
func_80AEB3A4(this, globalCtx);
this->action = 37;
this->drawConfig = 1;
@ -1991,8 +1975,8 @@ void func_80AEF624(EnRu1* this, GlobalContext* globalCtx) {
void func_80AEF728(EnRu1* this, UNK_TYPE arg1) {
if (arg1 != 0) {
Animation_Change(&this->skelAnime, &D_06003608, 1.0f, 0.0f, Animation_GetLastFrame(&D_06003608), ANIMMODE_LOOP,
0.0f);
Animation_Change(&this->skelAnime, &gRutoChildHoldArmsUpAnim, 1.0f, 0.0f,
Animation_GetLastFrame(&gRutoChildHoldArmsUpAnim), ANIMMODE_LOOP, 0.0f);
func_80AEB3CC(this);
this->action = 38;
}
@ -2000,16 +1984,16 @@ void func_80AEF728(EnRu1* this, UNK_TYPE arg1) {
void func_80AEF79C(EnRu1* this, GlobalContext* globalCtx) {
if (func_80AEAFE0(globalCtx, 2, 3)) {
Animation_Change(&this->skelAnime, &D_06002EC0, 1.0f, 0, Animation_GetLastFrame(&D_06002EC0), ANIMMODE_ONCE,
-8.0f);
Animation_Change(&this->skelAnime, &gRutoChildBringHandsDownAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildBringHandsDownAnim), ANIMMODE_ONCE, -8.0f);
this->action = 39;
}
}
void func_80AEF820(EnRu1* this, UNK_TYPE arg1) {
if (arg1 != 0) {
Animation_Change(&this->skelAnime, &D_060097B8, 1.0f, 0, Animation_GetLastFrame(&D_060097B8), ANIMMODE_LOOP,
-8.0f);
Animation_Change(&this->skelAnime, &gRutoChildWait2Anim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildWait2Anim),
ANIMMODE_LOOP, -8.0f);
this->action = 40;
}
}
@ -2018,7 +2002,7 @@ void func_80AEF890(EnRu1* this, GlobalContext* globalCtx) {
s32 pad[2];
s8 curRoomNum;
if ((gSaveContext.sceneSetupIndex < 4) && (func_80AEAF38(globalCtx))) {
if ((gSaveContext.sceneSetupIndex < 4) && (EnRu1_IsCsStateIdle(globalCtx))) {
curRoomNum = globalCtx->roomCtx.curRoom.num;
gSaveContext.infTable[20] |= 0x20;
Flags_SetSwitch(globalCtx, func_80AEADE0(this));
@ -2049,7 +2033,7 @@ void func_80AEF99C(EnRu1* this, GlobalContext* globalCtx) {
void func_80AEF9D8(EnRu1* this, GlobalContext* globalCtx) {
func_80AED83C(this);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEF624(this, globalCtx);
func_80AEB220(this, globalCtx);
}
@ -2082,7 +2066,7 @@ void func_80AEFB04(EnRu1* this, GlobalContext* globalCtx) {
func_80AED83C(this);
func_80AEAECC(this, globalCtx);
something = EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEF820(this, something);
func_80AEB220(this, globalCtx);
}
@ -2091,7 +2075,7 @@ void func_80AEFB68(EnRu1* this, GlobalContext* globalCtx) {
func_80AED83C(this);
func_80AEAECC(this, globalCtx);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEF890(this, globalCtx);
func_80AEB220(this, globalCtx);
}
@ -2100,7 +2084,7 @@ void func_80AEFBC8(EnRu1* this, GlobalContext* globalCtx) {
func_80AED83C(this);
func_80AEAECC(this, globalCtx);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEF540(this);
func_80AEF930(this, globalCtx);
}
@ -2112,9 +2096,9 @@ void func_80AEFC24(EnRu1* this, GlobalContext* globalCtx) {
void func_80AEFC54(EnRu1* this, GlobalContext* globalCtx) {
if ((gSaveContext.infTable[20] & 0x20) && (!(gSaveContext.infTable[20] & 0x40))) {
func_80AEB264(this, &D_060097B8, 0, 0, 0);
func_80AEB264(this, &gRutoChildWait2Anim, 0, 0, 0);
this->action = 41;
this->unk_28C = func_80AEB088(globalCtx);
this->unk_28C = EnRu1_FindSwitch(globalCtx);
func_80AEB0EC(this, 1);
this->actor.flags &= ~0x9;
} else {
@ -2123,7 +2107,7 @@ void func_80AEFC54(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AEFCE8(EnRu1* this, GlobalContext* globalCtx) {
this->unk_28C = func_80AEB088(globalCtx);
this->unk_28C = EnRu1_FindSwitch(globalCtx);
if (this->unk_28C != NULL) {
this->action = 42;
this->drawConfig = 1;
@ -2133,7 +2117,7 @@ void func_80AEFCE8(EnRu1* this, GlobalContext* globalCtx) {
void func_80AEFD38(EnRu1* this, GlobalContext* globalCtx) {
if ((gSaveContext.eventChkInf[3] & 0x80) && (gSaveContext.linkAge == 1)) {
func_80AEB264(this, &D_060097B8, 0, 0, 0);
func_80AEB264(this, &gRutoChildWait2Anim, 0, 0, 0);
this->actor.flags &= ~0x10;
this->action = 44;
this->drawConfig = 1;
@ -2178,7 +2162,7 @@ void func_80AEFE9C(EnRu1* this, GlobalContext* globalCtx) {
void func_80AEFECC(EnRu1* this, GlobalContext* globalCtx) {
func_80AEEF68(this, globalCtx);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEAC10(this, globalCtx);
func_80AEAECC(this, globalCtx);
func_80AEFE84(this, globalCtx, func_80AEFDC0(this, globalCtx));
@ -2187,7 +2171,7 @@ void func_80AEFECC(EnRu1* this, GlobalContext* globalCtx) {
void func_80AEFF40(EnRu1* this, GlobalContext* globalCtx) {
func_80AEEFEC(this, globalCtx);
EnRu1_FrameUpdateMatrix(this);
func_80AEAE1C(this);
EnRu1_UpdateEyes(this);
func_80AEAECC(this, globalCtx);
func_80AEFE9C(this, globalCtx);
}
@ -2197,7 +2181,7 @@ void func_80AEFF94(EnRu1* this, GlobalContext* globalCtx) {
if ((gSaveContext.infTable[20] & 2) && (gSaveContext.infTable[20] & 1) && (!(gSaveContext.infTable[20] & 0x20)) &&
(!(func_80AEB020(this, globalCtx)))) {
func_80AEB264(this, &D_060097B8, 0, 0, 0);
func_80AEB264(this, &gRutoChildWait2Anim, 0, 0, 0);
actorRoom = this->actor.room;
this->action = 22;
this->actor.room = -1;
@ -2215,10 +2199,10 @@ void func_80AEFF94(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AF0050(EnRu1* this, GlobalContext* globalCtx) {
func_80AEB264(this, &D_060097B8, 0, 0, 0);
func_80AEB264(this, &gRutoChildWait2Anim, 0, 0, 0);
this->action = 36;
this->roomNum1 = this->actor.room;
this->unk_28C = func_80AEB088(globalCtx);
this->unk_28C = EnRu1_FindSwitch(globalCtx);
this->actor.room = -1;
}
@ -2230,6 +2214,7 @@ void EnRu1_Update(Actor* thisx, GlobalContext* globalCtx) {
osSyncPrintf(VT_FGCOL(RED) "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
return;
}
sActionFuncs[this->action](this, globalCtx);
}
@ -2238,7 +2223,7 @@ void EnRu1_Init(Actor* thisx, GlobalContext* globalCtx) {
EnRu1* this = THIS;
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06012700, NULL, this->jointTable, this->morphTable, 17);
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gRutoChildSkel, NULL, this->jointTable, this->morphTable, 17);
func_80AEAD20(&this->actor, globalCtx);
switch (func_80AEADF0(this)) {
case 0:
@ -2278,11 +2263,11 @@ void func_80AF0278(EnRu1* this, GlobalContext* globalCtx, s32 limbIndex, Vec3s*
Vec3s* vec2 = &this->unk_374.unk_08;
switch (limbIndex) {
case 8:
case RUTO_CHILD_LEFT_UPPER_ARM:
rot->x += vec1->y;
rot->y -= vec1->x;
break;
case 15:
case RUTO_CHILD_TORSO:
rot->x += vec2->y;
rot->z += vec2->x;
break;
@ -2307,7 +2292,7 @@ void EnRu1_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
Vec3f vec1;
Vec3f vec2;
if (limbIndex == 15) {
if (limbIndex == RUTO_CHILD_TORSO) {
vec1 = sMultVec;
Matrix_MultVec3f(&vec1, &vec2);
this->actor.focus.pos.x = vec2.x;
@ -2319,25 +2304,25 @@ void EnRu1_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
}
}
void func_80AF03F4(EnRu1* this, GlobalContext* globalCtx) {
void EnRu1_DrawNothing(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AF0400(EnRu1* this, GlobalContext* globalCtx) {
void EnRu1_DrawOpa(EnRu1* this, GlobalContext* globalCtx) {
s32 pad[2];
s16 temp = this->unk_25C;
s32 addr1 = D_80AF0858[temp];
s16 temp2 = this->unk_260;
s16 eyeIndex = this->eyeIndex;
void* eyeTex = sEyeTextures[eyeIndex];
s16 mouthIndex = this->mouthIndex;
SkelAnime* skelAnime = &this->skelAnime;
s32 addr2 = D_80AF0870[temp2];
void* mouthTex = sMouthTextures[mouthIndex];
s32 pad1;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ru1.c", 1282);
func_80093D18(globalCtx->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(addr1));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(addr1));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(addr2));
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(eyeTex));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(eyeTex));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(mouthTex));
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255);
gSPSegment(POLY_OPA_DISP++, 0x0C, &D_80116280[2]);
@ -2347,23 +2332,23 @@ void func_80AF0400(EnRu1* this, GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_ru1.c", 1309);
}
void func_80AF05D4(EnRu1* this, GlobalContext* globalCtx) {
void EnRu1_DrawXlu(EnRu1* this, GlobalContext* globalCtx) {
s32 pad[2];
s16 temp = this->unk_25C;
s32 addr1 = D_80AF0858[temp];
s16 temp2 = this->unk_260;
s16 eyeIndex = this->eyeIndex;
void* eyeTex = sEyeTextures[eyeIndex];
s16 mouthIndex = this->mouthIndex;
SkelAnime* skelAnime = &this->skelAnime;
s32 addr2 = D_80AF0870[temp2];
void* mouthTex = sMouthTextures[mouthIndex];
s32 pad1;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ru1.c", 1324);
func_80093D84(globalCtx->state.gfxCtx);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(addr1));
gSPSegment(POLY_XLU_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(addr1));
gSPSegment(POLY_XLU_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(addr2));
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, this->unk_2A8);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(eyeTex));
gSPSegment(POLY_XLU_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(eyeTex));
gSPSegment(POLY_XLU_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(mouthTex));
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, this->alpha);
gSPSegment(POLY_XLU_DISP++, 0x0C, &D_80116280[0]);
POLY_XLU_DISP = SkelAnime_DrawFlex(globalCtx, skelAnime->skeleton, skelAnime->jointTable, skelAnime->dListCount,

View File

@ -18,22 +18,20 @@ typedef struct EnRu1 {
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s jointTable[17];
/* 0x01F6 */ Vec3s morphTable[17];
/* 0x025C */ s16 unk_25C;
/* 0x025E */ s16 unk_25E;
/* 0x0260 */ s16 unk_260;
/* 0x0262 */ char unk_262[0x2];
/* 0x025C */ s16 eyeIndex;
/* 0x025E */ s16 blinkTimer;
/* 0x0260 */ s16 mouthIndex;
/* 0x0264 */ s32 action;
/* 0x0268 */ s32 drawConfig;
/* 0x026C */ f32 unk_26C;
/* 0x0270 */ f32 unk_270;
/* 0x0274 */ char unk_274[0x4];
/* 0x0278 */ DoorWarp1* unk_278;
/* 0x0278 */ DoorWarp1* blueWarp;
/* 0x027C */ f32 unk_27C;
/* 0x0280 */ s32 unk_280;
/* 0x0284 */ s8 roomNum1;
/* 0x0285 */ s8 roomNum2;
/* 0x0286 */ s8 roomNum3;
/* 0x0287 */ char unk_287;
/* 0x0288 */ f32 unk_288;
/* 0x028C */ BgBdanObjects* unk_28C;
/* 0x0290 */ s32 unk_290;
@ -43,9 +41,8 @@ typedef struct EnRu1 {
/* 0x029E */ s16 unk_29E;
/* 0x02A0 */ char unk_2A0[0x4];
/* 0x02A4 */ f32 unk_2A4;
/* 0x02A8 */ s32 unk_2A8;
/* 0x02A8 */ s32 alpha;
/* 0x02AC */ s16 unk_2AC;
/* 0x02AE */ char unk_2AE[0x2];
/* 0x02B0 */ s32 unk_2B0;
/* 0x02B4 */ ColliderCylinder collider;
/* 0x0300 */ ColliderCylinder collider2;
@ -60,6 +57,25 @@ typedef struct EnRu1 {
/* 0x0374 */ struct_80034A14_arg1 unk_374;
} EnRu1; // size = 0x039C
typedef enum {
/* 0 */ RUTO_CHILD_ROOT,
/* 1 */ RUTO_CHILD_LEFT_THIGH,
/* 2 */ RUTO_CHILD_LEFT_SHIN,
/* 3 */ RUTO_CHILD_LEFT_FOOT,
/* 4 */ RUTO_CHILD_RIGHT_THIGH,
/* 5 */ RUTO_CHILD_RIGHT_SHIN,
/* 6 */ RUTO_CHILD_RIGHT_FOOT,
/* 7 */ RUTO_CHILD_CHEST,
/* 8 */ RUTO_CHILD_LEFT_UPPER_ARM,
/* 9 */ RUTO_CHILD_LEFT_FIN,
/* 10 */ RUTO_CHILD_LEFT_HAND,
/* 11 */ RUTO_CHILD_RIGHT_UPPER_ARM,
/* 12 */ RUTO_CHILD_RIGHT_FIN,
/* 13 */ RUTO_CHILD_RIGHT_HAND,
/* 14 */ RUTO_CHILD_HEAD,
/* 15 */ RUTO_CHILD_TORSO
} RutoLimb;
extern const ActorInit En_Ru1_InitVars;
#endif

View File

@ -276,11 +276,6 @@ D_06015F90 = 0x06015F90;
D_06016990 = 0x06016990;
D_06016E10 = 0x06016E10;
// z_en_ma1
D_06000820 = 0x06000820;
D_06008460 = 0x06008460;
D_06008D64 = 0x06008D64;
// z_en_ma2
D_06005420 = 0x06005420;
D_06008D90 = 0x06008D90;
@ -609,31 +604,6 @@ D_06015380 = 0x06015380;
D_06000000 = 0x06000000;
D_06000350 = 0x06000350;
// z_en_ru1
D_06000690 = 0x06000690;
D_06000E54 = 0x06000E54;
D_06001488 = 0x06001488;
D_06002058 = 0x06002058;
D_06002990 = 0x06002990;
D_06002EC0 = 0x06002EC0;
D_06003608 = 0x06003608;
D_06003784 = 0x06003784;
D_06004074 = 0x06004074;
D_06004350 = 0x06004350;
D_06004648 = 0x06004648;
D_06004BF0 = 0x06004BF0;
D_060063F4 = 0x060063F4;
D_06006B9C = 0x06006B9C;
D_06007534 = 0x06007534;
D_060078E4 = 0x060078E4;
D_06008100 = 0x06008100;
D_06008AA8 = 0x06008AA8;
D_06009060 = 0x06009060;
D_060097B8 = 0x060097B8;
D_06012700 = 0x06012700;
D_06012E94 = 0x06012E94;
D_06013A64 = 0x06013A64;
// z_en_ru2
D_060004CC = 0x060004CC;
D_06000F20 = 0x06000F20;
@ -647,12 +617,6 @@ D_0600E630 = 0x0600E630;
D_0600F03C = 0x0600F03C;
D_0600F8B8 = 0x0600F8B8;
// z_bg_mjin
D_06000140 = 0x06000140;
D_06000330 = 0x06000330;
D_06000330_ = 0x06000330;
D_06000658 = 0x06000658;
// z_en_lightbox
D_06000B70 = 0x06000B70;
D_06001F10 = 0x06001F10;