1
0
Fork 0
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:
Ethan Roseman 2020-12-01 20:48:54 -05:00 committed by GitHub
parent 330bd35d23
commit 932174b6ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
213 changed files with 2954 additions and 7981 deletions

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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

View file

@ -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;