Ovl_En_Minifrog OK with partial documentation (#166)

* En_Minifrog first few funcs decompiled

* more matching

* En_Minifrog 3 non_matching functions left

* two functions left

* Start Documentation

* Fully Matching!

* Documentation

* Fix merge with master

* minor pr changes

* Minor improvements

* PR Suggestions + Minor docs

* Fix bool

* PR suggestions

Co-authored-by: engineer124 <engineer124enginer124@gmail.com>
This commit is contained in:
engineer124
2021-06-09 21:03:42 -04:00
committed by GitHub
co-authored by engineer124
parent 5110943377
commit 9102481fc2
7 changed files with 663 additions and 60 deletions
+3 -2
View File
@@ -601,7 +601,8 @@ void EffectSsDust_Spawn(GlobalContext* globalCtx, u16 drawFlags, Vec3f* pos, Vec
// void func_800B0E48(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8);
// void func_800B0EB0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8, UNK_TYPE2 param_9);
// void func_800B0F18(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8, UNK_TYPE2 param_9);
// void func_800B0F80(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8, UNK_TYPE2 param_9);
void func_800B0F80(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* accel, Color_RGBA8* primColor,
Color_RGBA8* envColor, s16 scale, s16 scaleStep, s16 life);
// void func_800B0FE8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8);
// void func_800B1054(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8);
// void func_800B10C0(void);
@@ -3923,7 +3924,7 @@ void func_801A31EC(UNK_TYPE1 arg1, UNK_TYPE4 arg2, u8 arg3);
// void func_801A32CC(void);
// void func_801A3590(void);
// void func_801A3950(void);
// void func_801A39F8(void);
u8 func_801A39F8(void);
// void func_801A3A7C(void);
// void func_801A3AC0(void);
// void func_801A3AEC(void);
+3 -1
View File
@@ -1530,7 +1530,9 @@ struct GlobalContext {
/* 0x17D88 */ ObjectContext objectCtx;
/* 0x186E0 */ RoomContext roomContext;
/* 0x18760 */ TransitionContext transitionCtx;
/* 0x18768 */ UNK_TYPE1 pad18768[0x48];
/* 0x18768 */ UNK_TYPE1 pad18768[0x30];
/* 0x18798 */ void (*func_18798)(struct GlobalContext* globalCtx, void* arg1, s32 arg2);
/* 0x1879C */ UNK_TYPE1 pad1879C[0x14];
/* 0x187B0 */ MtxF unk187B0;
/* 0x187F0 */ UNK_TYPE1 pad187F0[0xC];
/* 0x187FC */ MtxF unk187FC;
+2 -2
View File
@@ -1212,9 +1212,9 @@ SECTIONS
ovl_En_Minifrog : AT(RomLocation)
{
build/src/overlays/actors/ovl_En_Minifrog/z_en_minifrog.o(.text)
build/asm/overlays/ovl_En_Minifrog_data.o(.data)
build/src/overlays/actors/ovl_En_Minifrog/z_en_minifrog.o(.data)
build/src/overlays/actors/ovl_En_Minifrog/z_en_minifrog.o(.rodata)
build/asm/overlays/ovl_En_Minifrog_rodata.o(.rodata)
build/src/overlays/actors/ovl_En_Minifrog/z_en_minifrog_overlay.o(.ovl)
}
SegmentEnd = .;
SegmentSize = SegmentEnd - SegmentStart;
+9
View File
@@ -1,5 +1,7 @@
/* gameplay_keep */
D_040008D0 = 0x040008D0;
D_0400DEA8 = 0x0400DEA8;
D_0400E2A8 = 0x0400E2A8;
D_04029CB0 = 0x04029CB0;
D_04029CF0 = 0x04029CF0;
D_04058BA0 = 0x04058BA0;
@@ -264,6 +266,13 @@ D_04054A90 = 0x04054A90;
D_06000AD0 = 0x06000AD0;
D_06000140 = 0x06000140;
/* en_minifrog */
D_060007BC = 0x060007BC;
D_06001534 = 0x06001534;
D_060059A0 = 0x060059A0;
D_06005BA0 = 0x06005BA0;
D_0600B538 = 0x0600B538;
/* bg_lotus */
D_06000A20 = 0x06000A20;
D_06000040 = 0x06000040;
File diff suppressed because it is too large Load Diff
@@ -5,9 +5,37 @@
struct EnMinifrog;
typedef void (*EnMinifrogActionFunc)(struct EnMinifrog*, GlobalContext*);
#define EN_MINIFROG_IS_RETURNED(this) ((((this)->actor.params)&0xF0) >> 4)
typedef enum {
/* 0x00 */ MINIFROG_YELLOW, // Mountain Village
/* 0x01 */ MINIFROG_CYAN, // Woodfall Temple
/* 0x02 */ MINIFROG_PINK, // Great Bay Temple
/* 0x03 */ MINIFROG_BLUE, // Southern Swamp
/* 0x04 */ MINIFROG_WHITE, // Laundry Pool
/* 0xFF */ MINIFROG_INVALID = 0xFF // -1
} MinifrogType;
typedef enum {
/* 0x00 */ MINIFROG_STATE_JUMP,
/* 0x01 */ MINIFROG_STATE_AIR,
/* 0x02 */ MINIFROG_STATE_GROUND
} MinifrogJumpState;
typedef struct EnMinifrog {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x1C0];
/* 0x144 */ SkelAnime skelAnime;
/* 0x188 */ Vec3s limbDrawTable[24];
/* 0x218 */ Vec3s transitionDrawTable[24];
/* 0x2A8 */ EnMinifrogActionFunc actionFunc;
/* 0x2AC */ struct EnMinifrog* frog;
/* 0x2B0 */ s16 frogIndex;
/* 0x2B2 */ s16 jumpState;
/* 0x2B4 */ s16 timer;
/* 0x2B6 */ u16 flags;
/* 0x2B8 */ ColliderCylinder collider;
} EnMinifrog; // size = 0x304
extern const ActorInit En_Minifrog_InitVars;
+24 -24
View File
@@ -5695,31 +5695,31 @@
0x808A34B8:("EnTorch2_Draw",),
0x808A3670:("EnMinifrog_Init",),
0x808A38E4:("EnMinifrog_Destroy",),
0x808A3930:("func_808A3930",),
0x808A3980:("func_808A3980",),
0x808A39EC:("func_808A39EC",),
0x808A3A44:("func_808A3A44",),
0x808A3B04:("func_808A3B04",),
0x808A3B3C:("func_808A3B3C",),
0x808A3B74:("func_808A3B74",),
0x808A3DA8:("func_808A3DA8",),
0x808A3F88:("func_808A3F88",),
0x808A4040:("func_808A4040",),
0x808A410C:("func_808A410C",),
0x808A41A0:("func_808A41A0",),
0x808A4214:("func_808A4214",),
0x808A42D8:("func_808A42D8",),
0x808A4328:("func_808A4328",),
0x808A43A4:("func_808A43A4",),
0x808A44BC:("func_808A44BC",),
0x808A45A8:("func_808A45A8",),
0x808A4634:("func_808A4634",),
0x808A46E8:("func_808A46E8",),
0x808A4914:("func_808A4914",),
0x808A3930:("EnMinifrog_GetFrog",),
0x808A3980:("EnMinifrog_SetJumpState",),
0x808A39EC:("EnMinifrog_JumpTimer",),
0x808A3A44:("EnMinifrog_Jump",),
0x808A3B04:("EnMinifrog_TurnToPlayer",),
0x808A3B3C:("EnMinifrog_TurnToMissingFrog",),
0x808A3B74:("EnMinifrog_SetCamera",),
0x808A3DA8:("EnMinifrog_ReturnFrogCutscene",),
0x808A3F88:("EnMinifrog_SpawnGrowAndShrink",),
0x808A4040:("EnMinifrog_Idle",),
0x808A410C:("EnMinifrog_SetupNextFrogInit",),
0x808A41A0:("EnMinifrog_CheckChoirSuccess",),
0x808A4214:("EnMinifrog_ContinueChoirCutscene",),
0x808A42D8:("EnMinifrog_NextFrogMissing",),
0x808A4328:("EnMinifrog_NextFrogReturned",),
0x808A43A4:("EnMinifrog_SetupNextFrogChoir",),
0x808A44BC:("EnMinifrog_BeginChoirCutscene",),
0x808A45A8:("EnMinifrog_EndChoir",),
0x808A4634:("EnMinifrog_GetFrogHP",),
0x808A46E8:("EnMinifrog_YellowFrogDialog",),
0x808A4914:("EnMinifrog_SetupYellowFrogDialog",),
0x808A4A30:("EnMinifrog_Update",),
0x808A4AC8:("func_808A4AC8",),
0x808A4AF8:("func_808A4AF8",),
0x808A4B3C:("func_808A4B3C",),
0x808A4AC8:("EnMinifrog_UpdateMissingFrog",),
0x808A4AF8:("EnMinifrog_OverrideLimbDraw",),
0x808A4B3C:("EnMinifrog_PostLimbDraw",),
0x808A4C14:("EnMinifrog_Draw",),
0x808A5050:("func_808A5050",),
0x808A52A8:("func_808A52A8",),