ovl_En_Slime & object_slime OK and documented (#1175)

* decomped init, draw

* started slime

* finished func decomp en_slime

* object_slime and en_slime updates

* updated a few names

* finished up some naming

* en_slime and object_slime OK and documented

* slime xml cleanup

* Code cleanup round 1

* Cleanup 1 - missed a note

* Fixed improper use of bgcheck flags

* Some cleanup

* Namefix, name cleanup

* Function name cleanup, misc cleanup

* More name cleanup (pre-merge)

* Update color filter flag constants

* Tidying

---------

Co-authored-by: Blythe Hospelhorn <35576053+bhospelhorn@users.noreply.github.com>
This commit is contained in:
Blythe 2023-04-14 23:56:23 -05:00 committed by GitHub
parent 4faad208c6
commit 255c4599bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 1263 additions and 173 deletions

View File

@ -1,14 +1,17 @@
<Root>
<!-- Object file for Chuchus -->
<File Name="object_slime" Segment="6">
<DList Name="object_slime_DL_0004C0" Offset="0x4C0" />
<DList Name="object_slime_DL_000650" Offset="0x650" />
<TextureAnimation Name="object_slime_Matanimheader_000828" Offset="0x828" />
<DList Name="object_slime_DL_000A10" Offset="0xA10" />
<DList Name="object_slime_DL_000B68" Offset="0xB68" />
<Texture Name="object_slime_Tex_000B70" OutName="tex_000B70" Format="rgba16" Width="16" Height="16" Offset="0xB70" />
<Texture Name="object_slime_Tex_000D70" OutName="tex_000D70" Format="rgba16" Width="16" Height="16" Offset="0xD70" />
<!-- <Blob Name="object_slime_Blob_000F70" Size="0x300" Offset="0xF70" /> -->
<Texture Name="object_slime_Tex_001270" OutName="tex_001270" Format="i4" Width="32" Height="32" Offset="0x1270" />
<Texture Name="object_slime_Tex_001470" OutName="tex_001470" Format="i4" Width="64" Height="64" Offset="0x1470" />
<DList Name="gChuchuBodyDL" Offset="0x4C0" />
<DList Name="gChuchuEyesDL" Offset="0x650" />
<TextureAnimation Name="gChuchuSlimeFlowTexAnim" Offset="0x828" />
<DList Name="gChuchuPuddleDL" Offset="0xA10" />
<DList Name="gChuchuEmptyDL" Offset="0xB68" />
<Texture Name="gChuchuMouthTex" OutName="chuchu_mouth" Format="rgba16" Width="16" Height="16" Offset="0xB70" />
<Texture Name="gChuchuEyeSocketTex" OutName="chuchu_eye_socket" Format="rgba16" Width="16" Height="16" Offset="0xD70" />
<Texture Name="gChuchuEyeOpenTex" OutName="chuchu_eye_open" Format="rgba16" Width="16" Height="8" Offset="0xF70" />
<Texture Name="gChuchuEyeHalfTex" OutName="chuchu_eye_half" Format="rgba16" Width="16" Height="8" Offset="0x1070" />
<Texture Name="gChuchuEyeClosedTex" OutName="chuchu_eye_closed" Format="rgba16" Width="16" Height="8" Offset="0x1170" />
<Texture Name="gChuchuSlimeFlowTex" OutName="chuchu_slime_flow" Format="i4" Width="32" Height="32" Offset="0x1270" />
<Texture Name="gChuchuSlimeBaseTex" OutName="chuchu_slime_base" Format="i4" Width="64" Height="64" Offset="0x1470" />
</File>
</Root>

4
spec
View File

@ -2558,9 +2558,7 @@ beginseg
name "ovl_En_Slime"
compress
include "build/src/overlays/actors/ovl_En_Slime/z_en_slime.o"
include "build/data/ovl_En_Slime/ovl_En_Slime.data.o"
include "build/data/ovl_En_Slime/ovl_En_Slime.bss.o"
include "build/data/ovl_En_Slime/ovl_En_Slime.reloc.o"
include "build/src/overlays/actors/ovl_En_Slime/ovl_En_Slime_reloc.o"
endseg
beginseg

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,13 @@
#define Z_EN_SLIME_H
#include "global.h"
#include "objects/object_slime/object_slime.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define EN_SLIME_LIMBPOS_COUNT 5
#define EN_SLIME_GET_TYPE(thisx) ((thisx)->params)
#define EN_SLIME_GET_REVIVE_TIME(thisx) ((((thisx)->params) >> 8) & 0xFF)
struct EnSlime;
@ -10,7 +17,32 @@ typedef void (*EnSlimeActionFunc)(struct EnSlime*, PlayState*);
typedef struct EnSlime {
/* 0x000 */ Actor actor;
/* 0x144 */ EnSlimeActionFunc actionFunc;
/* 0x148 */ char unk_148[0xC0];
/* 0x148 */ u8 iceBlockTimer;
/* 0x149 */ u8 eyeTexIndex;
/* 0x14A */ u8 drawDmgEffType;
/* 0x14C */ s16 timer;
/* 0x14E */ s16 idleRotY;
/* 0x150 */ s16 reviveRotY;
/* 0x152 */ s16 reviveTime;
/* 0x154 */ union {
Vec3f iceBlockSnapPos;
Vec3f wobbleRot;
};
/* 0x160 */ TexturePtr itemDropTex;
/* 0x164 */ f32 drawDmgEffAlpha;
/* 0x168 */ f32 drawDmgEffScale;
/* 0x16C */ f32 drawDmgEffFrozenSteamScale;
/* 0x170 */ f32 distLimit;
/* 0x174 */ Vec3f reviveScale;
/* 0x180 */ Vec3f limbPos[EN_SLIME_LIMBPOS_COUNT];
/* 0x1BC */ ColliderCylinder collider;
} EnSlime; // size = 0x208
typedef enum EnSlimeType {
/* 0 */ EN_SLIME_TYPE_BLUE,
/* 1 */ EN_SLIME_TYPE_GREEN,
/* 2 */ EN_SLIME_TYPE_YELLOW,
/* 3 */ EN_SLIME_TYPE_RED,
} EnSlimeType;
#endif // Z_EN_SLIME_H

View File

@ -10126,43 +10126,43 @@
0x80A2EBE8:("DmSa_Draw",),
0x80A2EDA0:("EnSlime_Init",),
0x80A2EF80:("EnSlime_Destroy",),
0x80A2EFAC:("func_80A2EFAC",),
0x80A2F028:("func_80A2F028",),
0x80A2F0A8:("func_80A2F0A8",),
0x80A2F110:("func_80A2F110",),
0x80A2F140:("func_80A2F140",),
0x80A2F180:("func_80A2F180",),
0x80A2F1A4:("func_80A2F1A4",),
0x80A2F354:("func_80A2F354",),
0x80A2F418:("func_80A2F418",),
0x80A2F684:("func_80A2F684",),
0x80A2F6CC:("func_80A2F6CC",),
0x80A2F8B4:("func_80A2F8B4",),
0x80A2F8E0:("func_80A2F8E0",),
0x80A2F9A0:("func_80A2F9A0",),
0x80A2FA88:("func_80A2FA88",),
0x80A2FB60:("func_80A2FB60",),
0x80A2FBA0:("func_80A2FBA0",),
0x80A2FD94:("func_80A2FD94",),
0x80A2FE38:("func_80A2FE38",),
0x80A30018:("func_80A30018",),
0x80A30344:("func_80A30344",),
0x80A30454:("func_80A30454",),
0x80A304B8:("func_80A304B8",),
0x80A3072C:("func_80A3072C",),
0x80A30778:("func_80A30778",),
0x80A30820:("func_80A30820",),
0x80A30924:("func_80A30924",),
0x80A30944:("func_80A30944",),
0x80A309C8:("func_80A309C8",),
0x80A30A20:("func_80A30A20",),
0x80A30A90:("func_80A30A90",),
0x80A30AE4:("func_80A30AE4",),
0x80A30BE0:("func_80A30BE0",),
0x80A30C2C:("func_80A30C2C",),
0x80A30C68:("func_80A30C68",),
0x80A30CEC:("func_80A30CEC",),
0x80A30F98:("func_80A30F98",),
0x80A2EFAC:("EnSlime_Freeze",),
0x80A2F028:("EnSlime_Thaw",),
0x80A2F0A8:("EnSlime_Blink",),
0x80A2F110:("EnSlime_SetupInitializeIdle",),
0x80A2F140:("EnSlime_InitializeIdle",),
0x80A2F180:("EnSlime_SetupIdle",),
0x80A2F1A4:("EnSlime_Idle",),
0x80A2F354:("EnSlime_SetupMoveInDirection",),
0x80A2F418:("EnSlime_MoveInDirection",),
0x80A2F684:("EnSlime_SetupMoveToHome",),
0x80A2F6CC:("EnSlime_MoveToHome",),
0x80A2F8B4:("EnSlime_SetupTurnToPlayer",),
0x80A2F8E0:("EnSlime_TurnToPlayer",),
0x80A2F9A0:("EnSlime_SetupJump",),
0x80A2FA88:("EnSlime_Jump",),
0x80A2FB60:("EnSlime_SetupLand",),
0x80A2FBA0:("EnSlime_Land",),
0x80A2FD94:("EnSlime_SetupReactToBluntHit",),
0x80A2FE38:("EnSlime_ReactToBluntHit",),
0x80A30018:("EnSlime_SetupDamaged",),
0x80A30344:("EnSlime_Damaged",),
0x80A30454:("EnSlime_SetupDead",),
0x80A304B8:("EnSlime_Dead",),
0x80A3072C:("EnSlime_SnapIceBlockPosition",),
0x80A30778:("EnSlime_SetupSpawnIceBlock",),
0x80A30820:("EnSlime_SpawnIceBlock",),
0x80A30924:("EnSlime_SetupIceBlock",),
0x80A30944:("EnSlime_IceBlock",),
0x80A309C8:("EnSlime_SetupStun",),
0x80A30A20:("EnSlime_Stun",),
0x80A30A90:("EnSlime_SetupIceBlockThaw",),
0x80A30AE4:("EnSlime_IceBlockThaw",),
0x80A30BE0:("EnSlime_SetupWaitForRevive",),
0x80A30C2C:("EnSlime_WaitForRevive",),
0x80A30C68:("EnSlime_SetupRevive",),
0x80A30CEC:("EnSlime_Revive",),
0x80A30F98:("EnSlime_UpdateDamage",),
0x80A311E8:("EnSlime_Update",),
0x80A3148C:("EnSlime_Draw",),
0x80A32210:("EnPr_Init",),

View File

@ -11152,19 +11152,19 @@
0x80A2ECE0:("Dm_Sa_InitVars","UNK_TYPE1","",0x1),
0x80A2ED00:("sAnimationInfo","UNK_TYPE1","",0x1),
0x80A2ED20:("D_80A2ED20","f32","",0x4),
0x80A31AD0:("En_Slime_InitVars","UNK_TYPE1","",0x1),
0x80A31AF0:("D_80A31AF0","UNK_TYPE1","",0x1),
0x80A31B1C:("D_80A31B1C","UNK_TYPE1","",0x1),
0x80A31B3C:("D_80A31B3C","UNK_TYPE1","",0x1),
0x80A31B44:("D_80A31B44","UNK_TYPE4","",0x4),
0x80A31B54:("D_80A31B54","UNK_TYPE1","",0x1),
0x80A31B5C:("D_80A31B5C","UNK_TYPE4","",0x4),
0x80A31B60:("D_80A31B60","UNK_TYPE1","",0x1),
0x80A31B64:("D_80A31B64","UNK_TYPE1","",0x1),
0x80A31B68:("D_80A31B68","UNK_TYPE1","",0x1),
0x80A31B74:("D_80A31B74","UNK_TYPE1","",0x1),
0x80A31B84:("D_80A31B84","UNK_TYPE1","",0x1),
0x80A31B94:("D_80A31B94","UNK_TYPE1","",0x1),
0x80A31AD0:("En_Slime_InitVars","ActorInit","",0x1),
0x80A31AF0:("sCylinderInit","ColliderCylinderInit","",0x1),
0x80A31B1C:("sDamageTable","DamageTable","",0x1),
0x80A31B3C:("sColChkInfoInit","CollisionCheckInfoInit","",0x1),
0x80A31B44:("sEyeTextures","TexturePtr","",0x4),
0x80A31B54:("sInitChain","InitChainEntry","",0x1),
0x80A31B5C:("sTexturesDesegmented","s32","",0x1),
0x80A31B60:("sBubblePrimColor","Color_RGBA8","",0x1),
0x80A31B64:("sBubbleEnvColor","Color_RGBA8","",0x1),
0x80A31B68:("sBubbleAccel","Vec3f","",0x1),
0x80A31B74:("sPrimColors","Color_RGBA8","",0x4),
0x80A31B84:("sEnvColors","Color_RGBA8","",0x4),
0x80A31B94:("sLimbPosOffsets","Vec3f","",0x5),
0x80A31BD0:("D_80A31BD0","f32","",0x4),
0x80A31BD4:("D_80A31BD4","f32","",0x4),
0x80A31BD8:("D_80A31BD8","f32","",0x4),
@ -11249,7 +11249,7 @@
0x80A31D14:("D_80A31D14","f32","",0x4),
0x80A31D18:("D_80A31D18","f32","",0x4),
0x80A31D1C:("D_80A31D1C","f32","",0x4),
0x80A32200:("D_80A32200","UNK_TYPE1","",0x1),
0x80A32200:("sSlimeTexAnim","AnimatedMaterial*","",0x1),
0x80A338A0:("D_80A338A0","UNK_TYPE1","",0x1),
0x80A338C0:("D_80A338C0","UNK_TYPE1","",0x1),
0x80A338D4:("En_Pr_InitVars","UNK_TYPE1","",0x1),