mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-12 19:04:38 +00:00
Decompiled ovl_En_Zl3 (2 non-matchings) (#491)
* Progress * deleting more function files * more * more * More * more * more * more * more * 2 more * more * more * more * more * more * more * more * more * more * master update * 4 more * Merged * 3 more * One more done! * ug * Ido Recomp test * try 2 * Recomp by default * Fix Jenkinsfile * Fix 2 * Fixing struct * CFE errors * CFE fix -O2 * Cleanup * More progress, almost done... * Almost.. * Update and some progress * formatting * Cleanup * Major cleanup * done for now * PR comments * PR comments * merge master and format * a few things Co-authored-by: fig <fig02srl@gmail.com>
This commit is contained in:
parent
330bd35d23
commit
932174b6ee
213 changed files with 2954 additions and 7981 deletions
|
@ -221,23 +221,20 @@ ItemEquips sDebugSaveEquips = {
|
|||
0x1122, // equipment
|
||||
};
|
||||
|
||||
Inventory
|
||||
sDebugSaveInventory =
|
||||
{
|
||||
{ ITEM_STICK, ITEM_NUT, ITEM_BOMB, ITEM_BOW, ITEM_ARROW_FIRE,
|
||||
ITEM_DINS_FIRE, ITEM_SLINGSHOT, ITEM_OCARINA_FAIRY, ITEM_BOMBCHU, ITEM_HOOKSHOT,
|
||||
ITEM_ARROW_ICE, ITEM_FARORES_WIND, ITEM_BOOMERANG, ITEM_LENS, ITEM_BEAN,
|
||||
ITEM_HAMMER, ITEM_ARROW_LIGHT, ITEM_NAYRUS_LOVE, ITEM_BOTTLE, ITEM_POTION_RED,
|
||||
ITEM_POTION_GREEN, ITEM_POTION_BLUE, ITEM_POCKET_EGG, ITEM_WEIRD_EGG }, // items
|
||||
{ 50, 50, 10, 30, 1, 1, 30, 1, 50, 1, 1, 1, 1, 1, 1, 1 }, // ammo
|
||||
0x7777, // equipment
|
||||
0x125249, // upgrades
|
||||
0x1E3FFFF, // questItems
|
||||
{ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // dungeonItems
|
||||
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, // dungeonKeys
|
||||
0, // defenseHearts
|
||||
0, // gsTokens
|
||||
};
|
||||
Inventory sDebugSaveInventory = {
|
||||
{ ITEM_STICK, ITEM_NUT, ITEM_BOMB, ITEM_BOW, ITEM_ARROW_FIRE, ITEM_DINS_FIRE,
|
||||
ITEM_SLINGSHOT, ITEM_OCARINA_FAIRY, ITEM_BOMBCHU, ITEM_HOOKSHOT, ITEM_ARROW_ICE, ITEM_FARORES_WIND,
|
||||
ITEM_BOOMERANG, ITEM_LENS, ITEM_BEAN, ITEM_HAMMER, ITEM_ARROW_LIGHT, ITEM_NAYRUS_LOVE,
|
||||
ITEM_BOTTLE, ITEM_POTION_RED, ITEM_POTION_GREEN, ITEM_POTION_BLUE, ITEM_POCKET_EGG, ITEM_WEIRD_EGG }, // items
|
||||
{ 50, 50, 10, 30, 1, 1, 30, 1, 50, 1, 1, 1, 1, 1, 1, 1 }, // ammo
|
||||
0x7777, // equipment
|
||||
0x125249, // upgrades
|
||||
0x1E3FFFF, // questItems
|
||||
{ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // dungeonItems
|
||||
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, // dungeonKeys
|
||||
0, // defenseHearts
|
||||
0, // gsTokens
|
||||
};
|
||||
|
||||
u16 sDebugSaveChecksum = 0;
|
||||
|
||||
|
|
|
@ -8,7 +8,9 @@ struct BossGanon2;
|
|||
|
||||
typedef struct BossGanon2 {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x798];
|
||||
/* 0x014C */ char unk_14C[0x1D8];
|
||||
/* 0x0324 */ f32 unk_324;
|
||||
/* 0x0328 */ char unk_328[0x5BC];
|
||||
} BossGanon2; // size = 0x08E4
|
||||
|
||||
extern const ActorInit Boss_Ganon2_InitVars;
|
||||
|
|
|
@ -8,7 +8,9 @@ struct EnEncount2;
|
|||
|
||||
typedef struct EnEncount2 {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x8D4];
|
||||
/* 0x014C */ char unk_14C[0x10];
|
||||
/* 0x015C */ u16 unk_15C;
|
||||
/* 0x015E */ char unk_15E[0x8C2];
|
||||
} EnEncount2; // size = 0x0A20
|
||||
|
||||
extern const ActorInit En_Encount2_InitVars;
|
||||
|
|
|
@ -272,7 +272,7 @@ void func_80B4EE38(EnZl2* this, s16 arg1, s32 arg2) {
|
|||
phi_a3 = arg1 - this->unk_20C[phi_v0];
|
||||
phi_v0 = this->unk_1AC[phi_v0];
|
||||
|
||||
if ((s32)fabsf((f32)phi_a3) >= 0x8001) {
|
||||
if ((s32)fabsf((f32)phi_a3) > 0x8000) {
|
||||
if (arg1 > 0) {
|
||||
phi_a3 -= 0x10000;
|
||||
} else {
|
||||
|
@ -289,7 +289,7 @@ void func_80B4EE38(EnZl2* this, s16 arg1, s32 arg2) {
|
|||
phi_v0 -= ((s16)(temp_v1 - arg1) / 50);
|
||||
}
|
||||
temp_v1 += phi_v0;
|
||||
if (((this->unk_1AC[arg2] * phi_v0) <= 0) && ((s16)(temp_v1 - arg1) >= -0x63) &&
|
||||
if (((this->unk_1AC[arg2] * phi_v0) <= 0) && ((s16)(temp_v1 - arg1) > -0x64) &&
|
||||
((s16)(temp_v1 - arg1) < 0x64)) {
|
||||
temp_v1 = arg1;
|
||||
phi_v0 = 0;
|
||||
|
@ -340,7 +340,7 @@ void func_80B4EF64(EnZl2* this, s16 arg1, s32 arg2) {
|
|||
temp_t2 = arg1 - this->unk_20C[temp_t0];
|
||||
phi_v0 = this->unk_1AC[temp_t0];
|
||||
|
||||
if ((s32)fabsf((f32)temp_t2) >= 0x8001) {
|
||||
if ((s32)fabsf((f32)temp_t2) > 0x8000) {
|
||||
if (arg1 > 0) {
|
||||
temp_t2 -= 0x10000;
|
||||
} else {
|
||||
|
@ -361,7 +361,7 @@ void func_80B4EF64(EnZl2* this, s16 arg1, s32 arg2) {
|
|||
}
|
||||
temp_v1 += phi_v0;
|
||||
|
||||
if (((this->unk_1AC[arg2] * phi_v0) <= 0) && ((s16)(temp_v1 - phi_a0) >= -0x63) &&
|
||||
if (((this->unk_1AC[arg2] * phi_v0) <= 0) && ((s16)(temp_v1 - phi_a0) > -0x64) &&
|
||||
((s16)(temp_v1 - phi_a0) < 0x64)) {
|
||||
temp_v1 = phi_a0;
|
||||
phi_v0 = 0;
|
||||
|
@ -412,7 +412,6 @@ void func_80B4F230(EnZl2* this, s16 arg1, s32 arg2) {
|
|||
s32 temp_t2;
|
||||
s32 temp_t3;
|
||||
s32 phi_v0;
|
||||
s32 temp_1AC;
|
||||
s32 index1AC;
|
||||
s32 phi_t5;
|
||||
|
||||
|
@ -422,7 +421,6 @@ void func_80B4F230(EnZl2* this, s16 arg1, s32 arg2) {
|
|||
temp_t2 = temp_t0;
|
||||
temp_t3 = this->unk_1AC[arg2];
|
||||
phi_v0 = temp_t3;
|
||||
temp_1AC = phi_v0;
|
||||
temp_t3 = arg1 - this->unk_20C[arg2];
|
||||
|
||||
if (arg2 == 1) {
|
||||
|
@ -469,7 +467,7 @@ void func_80B4F230(EnZl2* this, s16 arg1, s32 arg2) {
|
|||
phi_v0 -= temp_t0 / 50;
|
||||
}
|
||||
temp_v1 += phi_v0;
|
||||
if (((this->unk_1AC[arg2] * phi_v0) <= 0) && (temp_t2 >= -0x63) && (temp_t2 < 0x64)) {
|
||||
if (((this->unk_1AC[arg2] * phi_v0) <= 0) && (temp_t2 > -0x64) && (temp_t2 < 0x64)) {
|
||||
temp_v1 = 0;
|
||||
phi_v0 = 0;
|
||||
}
|
||||
|
@ -489,7 +487,7 @@ s32 func_80B4F45C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
s16 pad2;
|
||||
s16* unk_1DC = this->unk_1DC;
|
||||
|
||||
if (limbIndex == 0xE) {
|
||||
if (limbIndex == 14) {
|
||||
sp74 = Graph_Alloc(globalCtx->state.gfxCtx, sizeof(Mtx) * 7);
|
||||
gSPSegment((*gfx)++, 0x0C, sp74);
|
||||
|
||||
|
@ -500,7 +498,7 @@ s32 func_80B4F45C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
Matrix_Translate(362.0f, -133.0f, 0.0f, MTXMODE_APPLY);
|
||||
Matrix_Get(&sp34);
|
||||
func_800D20CC(&sp34, &sp2C, 0);
|
||||
if (func_800C0D28(globalCtx) == 0) {
|
||||
if (!func_800C0D28(globalCtx)) {
|
||||
func_80B4EE38(this, sp2C.y, 0);
|
||||
func_80B4F230(this, sp2C.x, 1);
|
||||
func_80B4EF64(this, sp2C.z, 2);
|
||||
|
@ -510,7 +508,7 @@ s32 func_80B4F45C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
Matrix_ToMtx(&sp74[0], "../z_en_zl2.c", 1056);
|
||||
Matrix_Get(&sp34);
|
||||
func_800D20CC(&sp34, &sp2C, 0);
|
||||
if (func_800C0D28(globalCtx) == 0) {
|
||||
if (!func_800C0D28(globalCtx)) {
|
||||
func_80B4EE38(this, sp2C.y, 3);
|
||||
func_80B4F230(this, sp2C.x, 4);
|
||||
}
|
||||
|
@ -519,7 +517,7 @@ s32 func_80B4F45C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
Matrix_ToMtx(&sp74[1], "../z_en_zl2.c", 1100);
|
||||
Matrix_Get(&sp34);
|
||||
func_800D20CC(&sp34, &sp2C, 0);
|
||||
if (func_800C0D28(globalCtx) == 0) {
|
||||
if (!func_800C0D28(globalCtx)) {
|
||||
func_80B4EE38(this, sp2C.y, 6);
|
||||
func_80B4F230(this, sp2C.x, 7);
|
||||
}
|
||||
|
@ -531,7 +529,7 @@ s32 func_80B4F45C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
Matrix_Translate(467.0f, 265.0f, 389.0f, MTXMODE_APPLY);
|
||||
Matrix_Get(&sp34);
|
||||
func_800D20CC(&sp34, &sp2C, 0);
|
||||
if (func_800C0D28(globalCtx) == 0) {
|
||||
if (!func_800C0D28(globalCtx)) {
|
||||
func_80B4EE38(this, sp2C.y, 9);
|
||||
func_80B4F230(this, sp2C.x, 10);
|
||||
func_80B4EF64(this, sp2C.z, 11);
|
||||
|
@ -541,7 +539,7 @@ s32 func_80B4F45C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
Matrix_ToMtx(&sp74[3], "../z_en_zl2.c", 1145);
|
||||
Matrix_Get(&sp34);
|
||||
func_800D20CC(&sp34, &sp2C, 0);
|
||||
if (func_800C0D28(globalCtx) == 0) {
|
||||
if (!func_800C0D28(globalCtx)) {
|
||||
func_80B4EE38(this, sp2C.y, 12);
|
||||
func_80B4F230(this, sp2C.x, 13);
|
||||
func_80B4EF64(this, sp2C.z, 14);
|
||||
|
@ -554,7 +552,7 @@ s32 func_80B4F45C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
Matrix_Translate(467.0f, 265.0f, -389.0f, MTXMODE_APPLY);
|
||||
Matrix_Get(&sp34);
|
||||
func_800D20CC(&sp34, &sp2C, 0);
|
||||
if (func_800C0D28(globalCtx) == 0) {
|
||||
if (!func_800C0D28(globalCtx)) {
|
||||
func_80B4EE38(this, sp2C.y, 15);
|
||||
func_80B4F230(this, sp2C.x, 16);
|
||||
func_80B4EF64(this, sp2C.z, 17);
|
||||
|
@ -564,7 +562,7 @@ s32 func_80B4F45C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
Matrix_ToMtx(&sp74[5], "../z_en_zl2.c", 1189);
|
||||
Matrix_Get(&sp34);
|
||||
func_800D20CC(&sp34, &sp2C, 0);
|
||||
if (func_800C0D28(globalCtx) == 0) {
|
||||
if (!func_800C0D28(globalCtx)) {
|
||||
func_80B4EE38(this, sp2C.y, 18);
|
||||
func_80B4F230(this, sp2C.x, 19);
|
||||
func_80B4EF64(this, sp2C.z, 20);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -4,11 +4,68 @@
|
|||
#include "ultra64.h"
|
||||
#include "global.h"
|
||||
|
||||
#include "overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.h"
|
||||
|
||||
struct EnZl3;
|
||||
|
||||
typedef void (*EnZl3ActionFunc)(struct EnZl3*, GlobalContext*);
|
||||
typedef void (*EnZl3DrawFunc)(struct EnZl3*, GlobalContext*);
|
||||
|
||||
typedef struct EnZl3 {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x2D4];
|
||||
/* 0x014C */ SkelAnime skelAnime;
|
||||
/* 0x0190 */ Vec3s limbDrawTable[15];
|
||||
/* 0x01EA */ Vec3s transitionDrawTable[15];
|
||||
/* 0x0244 */ s16 unk_244;
|
||||
/* 0x0246 */ s16 unk_246;
|
||||
/* 0x0248 */ s16 unk_248;
|
||||
/* 0x024C */ s32 action;
|
||||
/* 0x0250 */ s32 drawConfig;
|
||||
/* 0x0254 */ char unk_254[0x4];
|
||||
/* 0x0258 */ s32 unk_258;
|
||||
/* 0x025C */ s16 unk_25C[24];
|
||||
/* 0x028C */ s16 unk_28C[24];
|
||||
/* 0x02BC */ s16 unk_2BC[24];
|
||||
/* 0x02EC */ f32 unk_2EC;
|
||||
/* 0x02F0 */ s32 unk_2F0;
|
||||
/* 0x02F4 */ char unk_2F4[0x4];
|
||||
/* 0x02F8 */ s32 unk_2F8;
|
||||
/* 0x02FC */ s32 unk_2FC;
|
||||
/* 0x0300 */ char unk_300[0x8];
|
||||
/* 0x0308 */ s32 unk_308;
|
||||
/* 0x030C */ Path* unk_30C;
|
||||
/* 0x0310 */ s32 unk_310;
|
||||
/* 0x0314 */ s32 unk_314;
|
||||
/* 0x0318 */ s32 unk_318;
|
||||
/* 0x031C */ Vec3f unk_31C;
|
||||
/* 0x0328 */ s32 unk_328;
|
||||
/* 0x032C */ Vec3f unk_32C;
|
||||
/* 0x0338 */ Vec3f unk_338;
|
||||
/* 0x0344 */ u16 unk_344;
|
||||
/* 0x0346 */ u16 unk_346;
|
||||
/* 0x0348 */ Vec3f unk_348;
|
||||
/* 0x0354 */ Vec3f unk_354;
|
||||
/* 0x0360 */ f32 unk_360;
|
||||
/* 0x0364 */ f32 unk_364;
|
||||
/* 0x0368 */ f32 unk_368;
|
||||
/* 0x036C */ s32 unk_36C;
|
||||
/* 0x0370 */ s32 unk_370;
|
||||
/* 0x0374 */ s32 unk_374;
|
||||
/* 0x0378 */ ColliderCylinder collider;
|
||||
/* 0x03C4 */ s32 unk_3C4;
|
||||
/* 0x03C8 */ u8 unk_3C8;
|
||||
/* 0x03CC */ f32 unk_3CC;
|
||||
/* 0x03D0 */ s16 unk_3D0;
|
||||
/* 0x03D4 */ BossGanon2* unk_3D4;
|
||||
/* 0x03D8 */ s32 unk_3D8;
|
||||
/* 0x03DC */ f32 unk_3DC;
|
||||
/* 0x03E0 */ f32 unk_3E0;
|
||||
/* 0x03E4 */ f32 unk_3E4;
|
||||
/* 0x03E8 */ f32 unk_3E8;
|
||||
/* 0x03EC */ f32 unk_3EC;
|
||||
/* 0x03F0 */ f32 unk_3F0;
|
||||
/* 0x03F4 */ f32 unk_3F4;
|
||||
/* 0x03F8 */ struct_80034A14_arg1 unk_3F8;
|
||||
} EnZl3; // size = 0x0420
|
||||
|
||||
extern const ActorInit En_Zl3_InitVars;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue