ovl_en_in OK (#173)

* First pass, 5 still non matching

* data

* cleanup

* Progress on func_808F33B8

* func_808F33B8 is ugly but it matches

* func_808F5728 ugly but matches

* cleanup

* More cleanup/doc a possible inifite loop bug

* Cleanup of the switch

* Readd functions returns

* More progress on THE switch

* Everything matches but the MACROS

* OK

* Add new global Animaion struct

* fix arg name

* PR suggestions pt 1

* PR suggestions pt 2

* Fix up a few things

* Add comment about walking flag

* update functions.txt

* Update 7 to more explicit bits

* More PR cleanup
This commit is contained in:
Derek Hensley
2021-06-10 20:08:25 -07:00
committed by GitHub
parent 059c9075ca
commit 70b67402cb
12 changed files with 1692 additions and 84 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ extern UNK_TYPE D_06000990;
extern FlexSkeletonHeader D_06008C40;
// Probably the same struct as EnFgAnimation, need more info from func_8013BC6C
// Probably the same struct as ActorAnimationEntryS, need more info from func_8013BC6C
static UNK_TYPE D_80C1E200[] = { &D_06000990, 0x3F800000, 0x0000FFFF, 0x00000000 };
s32 func_80C1DED0(DmNb* this, s32 arg1) {
+1 -1
View File
@@ -79,7 +79,7 @@ static DamageTable sDamageTable = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static EnFgAnimation sAnimations[] = {
static ActorAnimationEntryS sAnimations[] = {
{ &D_06001534, 1.0f, 0, -1, 0, 0 },
{ &D_06001534, 1.0f, 0, -1, 0, -4 },
{ &D_060011C0, 1.0f, 0, -1, 0, -4 },
-11
View File
@@ -26,17 +26,6 @@ typedef enum {
/* 0x05 */ FG_DMGEFFECT_ICEARROW,
} FrogDamageEffect;
// TODO: This is a common struct and may be moved to a more global header
// Typically the frame/transition data is f32, not s16.
typedef struct {
/* 0x00 */ AnimationHeader* animationSeg;
/* 0x04 */ f32 playbackSpeed;
/* 0x08 */ s16 frame;
/* 0x0A */ s16 frameCount;
/* 0x0C */ u8 mode;
/* 0x0E */ s16 transitionRate;
} EnFgAnimation; // size = 0x10
typedef struct {
/* 0x0000 */ u8 type;
/* 0x0001 */ u8 timer;
@@ -445,7 +445,7 @@ void EnGinkoMan_WaitForDialogueInput(EnGinkoMan* this, GlobalContext* globalCtx)
this->previousBankValue = (s16)(gSaveContext.roomInf[127][0] & 0xFFFF);
gSaveContext.roomInf[127][0] =
(gSaveContext.roomInf[127][0] & 0xFFFF0000) | (((gSaveContext.roomInf[127][0] & 0xFFFF) - globalCtx->msgCtx.bankRupeesSelected) - this->serviceFee);
func_801159EC((s16)globalCtx->msgCtx.bankRupeesSelected, &gSaveContext);
func_801159EC(globalCtx->msgCtx.bankRupeesSelected);
}
} else {
func_8019F230();
File diff suppressed because it is too large Load Diff
+58 -1
View File
@@ -5,9 +5,66 @@
struct EnIn;
typedef void (*EnInActionFunc)(struct EnIn*, GlobalContext*);
typedef enum {
/* 0 */ ENIN_UNK_TYPE,
/* 1 */ ENIN_HORSE_RIDER_YELLOW_SHIRT,
/* 2 */ ENIN_HORSE_RIDER_BLUE_SHIRT,
/* 3 */ ENIN_YELLOW_SHIRT,
/* 4 */ ENIN_BLUE_SHIRT
} EnInType;
#define ENIN_GET_TYPE(thisx) ((thisx)->params & 0x1FF)
#define ENIN_GET_WALKING_FLAG(thisx) (((thisx)->params & 0x7E00) >> 9) // Only used with ENIN_UNK_TYPE
typedef struct EnIn {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x388];
/* 0x144 */ EnInActionFunc actionFunc;
/* 0x148 */ SkelAnime skelAnime;
/* 0x18C */ ColliderJntSph colliderJntSph;
/* 0x1AC */ ColliderJntSphElement colliderJntSphElement;
/* 0x1EC */ ColliderCylinder colliderCylinder;
/* 0x238 */ char unk238[0x4];
/* 0x23C */ u8 unk23C;
/* 0x23D */ u8 unk23D;
/* 0x240 */ u8 *unk240;
/* 0x244 */ s16 unk244;
/* 0x248 */ Vec3f unk248;
/* 0x254 */ Vec3f unk254;
/* 0x260 */ u8 unk260;
/* 0x261 */ u8 unk261;
/* 0x262 */ Vec3s limbDrawTbl[20];
/* 0x2DA */ Vec3s transitionDrawTbl[20];
/* 0x352 */ s16 unk352;
/* 0x354 */ s16 unk354;
/* 0x356 */ char unk356[0x2];
/* 0x358 */ s16 unk358;
/* 0x35A */ s16 unk35A;
/* 0x35C */ char unk35C[0x2];
/* 0x35E */ s16 unk35E;
/* 0x360 */ s16 unk360;
/* 0x362 */ char unk362[0x14];
/* 0x376 */ s16 unk376[20];
/* 0x39E */ s16 unk39E[20];
/* 0x3C6 */ char unk3C6[0xBC];
/* 0x482 */ s16 unk482;
/* 0x484 */ s16 unk484;
/* 0x486 */ s16 unk486;
/* 0x488 */ s16 unk488;
/* 0x48A */ u16 unk48A;
/* 0x48C */ s32 unk48C;
/* 0x490 */ char unk490[0x4];
/* 0x494 */ s32 unk494;
/* 0x498 */ char unk498[0xC];
/* 0x4A4 */ struct EnIn* unk4A4;
/* 0x4A8 */ s32 unk4A8;
/* 0x4AC */ s32 unk4AC;
/* 0x4B0 */ s32 unk4B0;
/* 0x4B4 */ Vec3f unk4B4;
/* 0x4C0 */ f32 unk4C0;
/* 0x4C0 */ f32 unk4C4;
/* 0x4C0 */ s32 unk4C8;
} EnIn; // size = 0x4CC
extern const ActorInit En_In_InitVars;