mirror of
https://github.com/zeldaret/mm.git
synced 2026-07-27 22:59:18 -04:00
En_Snowman (Eeno and snowballs) OK and documented. object_snowman documented (#818)
* EnSnowman_Init OK * EnSnowman_Destroy OK * func_80B173D0 OK and better match for EnSnowman_Init * EnSnowman_Draw OK * func_80B19948 OK * func_80B19998 OK * func_80B19718 OK * func_80B1746C and func_80B177EC OK * Match a ton of functions * func_80B18B30 OK * func_80B180A4 OK * func_80B18C7C OK * func_80B18124 OK * EnSnowman_Update OK * func_80B17144 OK * func_80B19474 OK * func_80B18F50 OK * All functions OK * Import data to C * Use object symbols * Misc cleanup * Fully document object_snowman * Low hanging fruit * Document snowman types * Some more minor stuff * Some more minor cleanup and naming * Name some more functions * More names * Even more names * Turns out, they're called Eeno! * limbPos -> bodyPartsPos as per Fig's suggestion * Update some more names * Committing so I can push up stuff for the snowballPos naming * More names + use generated reloc * First pass name on every function * First pass names on all struct vars * Document the mega eeno glitch * Get rid of garbage "split dead" naming * First pass documentation on combine state * Better names and some documentation * Last doc pass before PR * Respond to Elliptic's review * / 100.0f -> * 0.01f
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -2,16 +2,56 @@
|
||||
#define Z_EN_SNOWMAN_H
|
||||
|
||||
#include "global.h"
|
||||
#include "objects/object_snowman/object_snowman.h"
|
||||
|
||||
#define EN_SNOWMAN_GET_TYPE(thisx) ((thisx)->params)
|
||||
#define EN_SNOWMAN_GET_ATTACK_RANGE(thisx) (((thisx)->params >> 8) & 0xFF)
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ EN_SNOWMAN_TYPE_SMALL,
|
||||
/* 1 */ EN_SNOWMAN_TYPE_LARGE,
|
||||
/* 2 */ EN_SNOWMAN_TYPE_SPLIT,
|
||||
/* 3 */ EN_SNOWMAN_TYPE_SMALL_SNOWBALL,
|
||||
/* 4 */ EN_SNOWMAN_TYPE_LARGE_SNOWBALL,
|
||||
} EnSnowmanType;
|
||||
|
||||
struct EnSnowman;
|
||||
|
||||
typedef void (*EnSnowmanActionFunc)(struct EnSnowman*, GlobalContext*);
|
||||
|
||||
typedef struct EnSnowman {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x0144 */ char unk_144[0x13C];
|
||||
/* 0x0280 */ EnSnowmanActionFunc actionFunc;
|
||||
/* 0x0284 */ char unk_284[0xF4];
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ SkelAnime skelAnime;
|
||||
/* 0x188 */ SkelAnime snowPileSkelAnime;
|
||||
/* 0x1CC */ Vec3s jointTable[EENO_LIMB_MAX];
|
||||
/* 0x214 */ Vec3s morphTable[EENO_LIMB_MAX];
|
||||
/* 0x25C */ Vec3s snowPileJointTable[EENO_SNOW_PILE_LIMB_MAX];
|
||||
/* 0x26E */ Vec3s snowPileMorphTable[EENO_SNOW_PILE_LIMB_MAX];
|
||||
/* 0x280 */ EnSnowmanActionFunc actionFunc;
|
||||
/* 0x284 */ EnSnowmanActionFunc prevActionFunc;
|
||||
/* 0x288 */ u8 isHoldingSnowball;
|
||||
/* 0x289 */ u8 combineState;
|
||||
/* 0x28A */ u8 turningOnSteepSlope;
|
||||
/* 0x28B */ u8 drawDmgEffType;
|
||||
/* 0x28C */ union {
|
||||
s16 timer;
|
||||
s16 snowballsToThrowBeforeIdling;
|
||||
} work;
|
||||
/* 0x28E */ s16 snowPileTargetRotY;
|
||||
/* 0x290 */ s16 combineTimer;
|
||||
/* 0x294 */ f32 eenoScale;
|
||||
/* 0x298 */ union {
|
||||
f32 frameToStartHoldingSnowball;
|
||||
f32 frameToThrowSnowball;
|
||||
f32 targetScaleDuringCombine;
|
||||
} fwork;
|
||||
/* 0x29C */ f32 attackRange;
|
||||
/* 0x2A0 */ f32 drawDmgEffAlpha;
|
||||
/* 0x2A4 */ f32 drawDmgEffScale;
|
||||
/* 0x2A8 */ Vec3f combinePos;
|
||||
/* 0x2B4 */ Vec3f snowballPos;
|
||||
/* 0x2C0 */ Vec3f bodyPartsPos[9];
|
||||
/* 0x32C */ ColliderCylinder collider;
|
||||
} EnSnowman; // size = 0x378
|
||||
|
||||
extern const ActorInit En_Snowman_InitVars;
|
||||
|
||||
Reference in New Issue
Block a user