En_Kakasi (Scarecrow) (#279)

* EnKakasi: rebase progress into one commit

* EnKakasi: fixes to get compiling on master, still doesn't match

* EnKakasi: is this even progress?

* EnKakasi: docs and cleaning

* EnKaksi: damn it, that master merge really messed up more than I thought, after clean build something really weird is going on and now I REALLY need firstdiff

* EnKakasi: Back to building, NOT OK

* fixed a code

* only rodata left to fix

* EnKakasi: functions got removed in included functions

* EnKakasi: thanks to fig mentioning there were missing cases, OK

* EnKakasi: (OK) docs and cleaning

* EnKakasi: Init now matches

* EnKakasi: cleaning and docs

* EnKakasi: more cleaning and docs

* EnKakasi: forgot function declarations

* EnKakasi: spec

* EnKakasi: animation array symbols added

* EnKakasi: formater pass

* EnKakasi: type warning fix

* EnKakasi: little descriptor

* EnKakasi: OK thanks to AngheloAlf

* Apply suggestions from code review

Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>

* Update src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c

Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>

* Apply suggestions from code review

Splitting this into pieces to not have a huge pile of bugs

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnKakasi: wrong type of inverse flag

* Apply suggestions from code review

Batch 2

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnKakasi: RIP Anime

* Apply suggestions from code review

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnKakasi: Anim enum update

* EnKakasi: Removed text documentation

* EnKakas: return of THIS

* Update src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnKakasi: mystery solved but not understood

* Apply suggestions from code review

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnKakasi: rename EnKakasi_CheckAnimateSFX to EnKakasi_CheckAnimationSfx (no real reason to shorten Animation to Animate, and SFX is not initialism, its a shorten)

* EnKakasi: minor change to touch jenkins

* EnKakasi: is it loise-uni?

* EnKakasi: fixed skelanime changes

* EnKakasi: formater pass

* EnKakasi: requested changes

* Update src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.h

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* EnKakasi: removed un needed pad

* EnKakasi: removed redundant documentation comment

Co-authored-by: isghj8 <isghj8@gmail.com>
Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
This commit is contained in:
Isghj 2021-11-18 09:33:23 -08:00 committed by GitHub
parent 25682591df
commit 89b9d90826
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 1173 additions and 92 deletions

View File

@ -3033,7 +3033,7 @@ void func_80169600(GlobalContext* globalCtx, s16 param_2);
Camera* Play_GetCamera(GlobalContext* globalCtx, s16 index);
s32 Play_CameraSetAtEye(GlobalContext* globalCtx, s16 camId, Vec3f* at, Vec3f* eye);
void func_8016981C(GlobalContext* globalCtx, s16 arg1, Vec3f* arg2, Vec3f* arg3, Vec3f* arg4);
// void func_80169940(void);
void func_80169940(GlobalContext* globalCtx, s16 camId, f32 arg2);
// void func_80169988(void);
void func_801699D4(GlobalContext* globalCtx, s16 arg1, s16 arg2);
// void func_80169A50(void);
@ -3838,12 +3838,12 @@ void func_8019E014(void);
// void func_8019EB2C(void);
// void func_8019F024(void);
// void func_8019F05C(void);
void func_8019F170(Vec3f* pos, u16 sfxId);
void func_8019F1C0(Vec3f* pos, u16 sfxId);
void play_sound(u16 sfxId);
void func_8019F128(u16 sfxId);
// void func_8019F170(void);
void func_8019F1C0(Vec3f* pos, u16 sfxId);
void func_8019F208(void);
void func_8019F230(void); // Plays "No" sound
void func_8019F208(void); // decide
void func_8019F230(void); // cancel
// void func_8019F258(void);
// void func_8019F300(void);
void func_8019F420(Vec3f* pos, u16 sfxId);

View File

@ -948,7 +948,7 @@ typedef struct {
/* 0x11F23 */ UNK_TYPE1 pad11F23[0xFD];
/* 0x12020 */ u8 unk12020;
/* 0x12021 */ u8 choiceIndex;
/* 0x12022 */ UNK_TYPE1 unk12022;
/* 0x12022 */ u8 unk12022;
/* 0x12023 */ u8 unk12023;
/* 0x12024 */ UNK_TYPE1 unk12024[0x6];
/* 0x1202A */ u16 unk1202A;
@ -956,7 +956,9 @@ typedef struct {
/* 0x1202E */ u16 unk1202E;
/* 0x12030 */ UNK_TYPE1 pad12030[0x14];
/* 0x12044 */ s16 unk12044;
/* 0x12046 */ UNK_TYPE1 pad12046[0x24];
/* 0x12046 */ UNK_TYPE1 pad12046[0x2];
/* 0x12048 */ u8 unk12048; // EnKakasi
/* 0x12049 */ UNK_TYPE1 pad12049[0x21];
/* 0x1206A */ s16 unk1206A;
/* 0x1206C */ s32 unk1206C;
/* 0x12070 */ UNK_TYPE1 pad12070[0x8];

3
spec
View File

@ -1788,8 +1788,7 @@ beginseg
name "ovl_En_Kakasi"
compress
include "build/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.o"
include "build/data/ovl_En_Kakasi/ovl_En_Kakasi.data.o"
include "build/data/ovl_En_Kakasi/ovl_En_Kakasi.reloc.o"
include "build/src/overlays/actors/ovl_En_Kakasi/ovl_En_Kakasi_reloc.o"
endseg
beginseg

File diff suppressed because it is too large Load Diff

View File

@ -6,14 +6,46 @@
struct EnKakasi;
typedef void (*EnKakasiActionFunc)(struct EnKakasi*, GlobalContext*);
typedef void (*EnKakasiUnkFunc)(GlobalContext*, struct EnKakasi*);
typedef struct EnKakasi {
/* 0x0000 */ Actor actor;
/* 0x0144 */ char unk_144[0x4];
/* 0x0148 */ EnKakasiActionFunc actionFunc;
/* 0x014C */ char unk_14C[0x154];
/* 0x000 */ Actor actor;
/* 0x144 */ EnKakasiUnkFunc unkFunc; // used for one z_snap calling function?
/* 0x148 */ EnKakasiActionFunc actionFunc;
/* 0x14C */ SkelAnime skelanime;
/* 0x190 */ s16 unk190; // camera index for song teaching angles?
/* 0x192 */ s16 postTeachTimer;
/* 0x194 */ s16 aboveGroundStatus; // from params, changed to 2 in init
/* 0x196 */ s16 unkState196;
/* 0x19A */ UNK_TYPE1 pad198[0x8];
/* 0x1A0 */ s32 animIndex;
/* 0x1A4 */ s32 unkCounter1A4; // counter, counts up to F while he digs away, reused elsewhere
/* 0x1A8 */ s32 unkState1A8;
/* 0x1AC */ s16 unkMsgState1AC; // might be dialog state, compared against func(msgCtx)
/* 0x1AE */ s16 actorCutscenes[3];
/* 0x1B4 */ f32 animeFrameCount;
/* 0x1B8 */ f32 unkHeight;
/* 0x1BC */ Vec3f unk1BC; // set by post limbdraw func for one limb
/* 0x1C8 */ UNK_TYPE1 pad1C8[0x3C];
/* 0x204 */ s16 unk204; // set to A, F, 0x14, 0x28 frequently
/* 0x206 */ UNK_TYPE1 pad206[2];
/* 0x208 */ s16 cutsceneCamId;
/* 0x20C */ f32 unk20C; // passed to unknown function
/* 0x210 */ f32 unk210; // used as a target for 20C to approach
/* 0x214 */ Vec3f unk214; // copied from unk238 regularly
/* 0x220 */ Vec3f unk220; //EnKakasi_TeachingSong
/* 0x22C */ Vec3f unk22C; //actor home copied to here
/* 0x238 */ Vec3f unk238; //copied from D_80971E38[unk190]
/* 0x244 */ Vec3f unk244;
/* 0x250 */ f32 songSummonDist;
/* 0x254 */ ColliderCylinder collider;
} EnKakasi; // size = 0x2A0
extern const ActorInit En_Kakasi_InitVars;
#define ENKAKASI_ABOVE_GROUND_TYPE 2
#define GET_KAKASI_SUMMON_DISTANCE(this) ((this->actor.params >> 0x8) & 0xFF)
#define GET_KAKASI_ABOVE_GROUND(this) (this->actor.params & 0x1)
#endif // Z_EN_KAKASI_H

View File

@ -8016,37 +8016,37 @@
0x8096F4DC:("BgF40Swlift_Draw",),
0x8096F5E0:("EnKakasi_Destroy",),
0x8096F60C:("EnKakasi_Init",),
0x8096F800:("func_8096F800",),
0x8096F88C:("func_8096F88C",),
0x8096F800:("EnKakasi_SetAnimation",),
0x8096F88C:("EnKakasi_8096F88C",),
0x8096F8D8:("func_8096F8D8",),
0x8096FA18:("func_8096FA18",),
0x8096FAAC:("func_8096FAAC",),
0x8096FBB8:("func_8096FBB8",),
0x8096FC8C:("func_8096FC8C",),
0x8096FCC4:("func_8096FCC4",),
0x8096FDE8:("func_8096FDE8",),
0x8096FE00:("func_8096FE00",),
0x80970008:("func_80970008",),
0x8097006C:("func_8097006C",),
0x8096FC8C:("EnKakasi_InitTimeSkipDialogue",),
0x8096FCC4:("EnKakasi_TimeSkipDialogue",),
0x8096FDE8:("EnKakasi_SetupIdleStanding",),
0x8096FE00:("EnKakasi_IdleStanding",),
0x80970008:("EnKakasi_SetupDialogue",),
0x8097006C:("EnKakasi_RegularDialogue",),
0x809705E4:("func_809705E4",),
0x80970658:("func_80970658",),
0x80970740:("func_80970740",),
0x80970978:("func_80970978",),
0x80970A10:("func_80970A10",),
0x80970A9C:("func_80970A9C",),
0x80970F20:("func_80970F20",),
0x80970FF8:("func_80970FF8",),
0x80971064:("func_80971064",),
0x80971430:("func_80971430",),
0x80970A10:("EnKakasi_SetupPostSongLearnDialogue",),
0x80970A9C:("EnKakasi_PostSongLearnDialogue",),
0x80970F20:("EnKakasi_DancingRemark",),
0x80970FF8:("EnKakasi_SetupDanceNightAway",),
0x80971064:("EnKakasi_DancingNightAway",),
0x80971430:("EnKakasi_DoNothing",),
0x80971440:("func_80971440",),
0x809714BC:("func_809714BC",),
0x80971794:("func_80971794",),
0x809717D0:("func_809717D0",),
0x8097185C:("func_8097185C",),
0x8097193C:("func_8097193C",),
0x80971A38:("func_80971A38",),
0x80971A64:("func_80971A64",),
0x80971AD4:("func_80971AD4",),
0x8097185C:("EnKakasi_SetupRiseOutOfGround",),
0x8097193C:("EnKakasi_RisingOutOfGround",),
0x80971A38:("EnKakasi_SetupIdleRisen",),
0x80971A64:("EnKakasi_IdleRisen",),
0x80971AD4:("EnKakasi_RisenDialogue",),
0x80971B48:("EnKakasi_Update",),
0x80971CE0:("func_80971CE0",),
0x80971D20:("EnKakasi_Draw",),

View File

@ -2723,6 +2723,15 @@ D_0600D828 = 0x0600D828;
D_06000214 = 0x06000214;
D_060065B0 = 0x060065B0;
D_06007444 = 0x06007444;
D_0600686C = 0x0600686C;
D_060081A4 = 0x060081A4;
D_06007B90 = 0x06007B90;
D_060071EC = 0x060071EC;
D_06007444 = 0x06007444;
D_0600686C = 0x0600686C;
D_060081A4 = 0x060081A4;
D_06000214 = 0x06000214;
// ovl_En_Kame