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
6 changed files with 1263 additions and 173 deletions
File diff suppressed because it is too large Load Diff
+33 -1
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