summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorlouist103 <35883445+louist103@users.noreply.github.com>2021-05-26 18:59:21 -0400
committerGitHub <noreply@github.com>2021-05-26 18:59:21 -0400
commit201c9ec1cdbc3baffd7cc5520d4f6e1f47093b7e (patch)
tree4144baa6b0e61ee5e8319df3dbcf8d370d2a82bd /src/code
parent36fead60a061e0566d2cdf1c247c5c4cd5110826 (diff)
Decompile a bunch of objects (#603)
* Mostly done but shifted * still messed up * Almost OK * OBJECT_JYA_OBJ OK, OBJECT_GR OK * Done * Merge master and format * Cleanup * Cleanup 2 * Start object MB dont merge yet * Object_MB OK * Object_ydan_objects OK * General 'ydan' actor cleanup * Forgot some small things * Object_EC OK * add .gitkeep and run format * Object_sd OK but no textures cause of a zap issue * PR fixes * Fix object_sd * fix ydan * delete .gitkeep files * OBJECT_BOX as far as it can go with current ZAP * Fix undefined_syms * Start child link object * Push progress, dont merge yet * Object_mori_objects OK * Fixed? * Fix conflicts again * Seems like i missed some textures * Extract data for BgBombwall * More field * ZAP YEP 2.0 * Object_Box OK * Object_SD ok. Ready to merge * remove ASM and merge master * remove ASM * remove files wrongfully added to docs/ * Almost done * Change comment in z_player_lib.c * forgot some DLists in player_lib.c * Fix conflict, run format * Same as before but this time with Tex and TLUT * Last few things * fix object_GR and add limbs to object_sd * Nane -> Name * gChildDekuShieldMtx is now a matrix and not a blob * PR fixes (Fig) * add a space for comment in z_player_lib.c * re push and new lines * PR fixes (AngheloAlf) * PR fixes (Roman) * Fix Heishi2 * PR fixes (Fig) * Replace spacing in a file * PR fixes (Roman)
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_kankyo.c1
-rw-r--r--src/code/z_player_lib.c127
2 files changed, 77 insertions, 51 deletions
diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c
index baab19ec7..61e9b2f78 100644
--- a/src/code/z_kankyo.c
+++ b/src/code/z_kankyo.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "objects/gameplay_field_keep/gameplay_field_keep.h"
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_8006F0A0.s")
diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c
index 2c4ff37e8..9090729ae 100644
--- a/src/code/z_player_lib.c
+++ b/src/code/z_player_lib.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "objects/gameplay_keep/gameplay_keep.h"
+#include "objects/object_link_child/object_link_child.h"
typedef struct {
/* 0x00 */ u8 flag;
@@ -11,7 +12,7 @@ typedef struct {
/* 0x04 */ Vec3f pos;
} BowStringData; // size = 0x10
-FlexSkeletonHeader* gPlayerSkelHeaders[] = { 0x060377F4, 0x0602CF6C };
+FlexSkeletonHeader* gPlayerSkelHeaders[] = { 0x060377F4, &gLinkChildSkel };
s16 sBootData[PLAYER_BOOTS_MAX][17] = {
{ 200, 1000, 300, 700, 550, 270, 600, 350, 800, 600, -100, 600, 590, 750, 125, 200, 130 },
@@ -44,146 +45,164 @@ u8 gPlayerModelTypes[][5] = {
};
Gfx* D_80125CE8[] = {
- 0x060226E0, 0x06014320, 0x06027690, 0x06016620, 0x060226E0, 0x06014440, 0x06027690, 0x06016740,
- 0x06022970, 0x06014320, 0x06027918, 0x06016620, 0x060241C0, 0x06014320, 0x06028B40, 0x06016620,
+ 0x060226E0, gLinkChildRightHandClosedNearDL, 0x06027690, gLinkChildRightHandClosedFarDL,
+ 0x060226E0, gLinkChildRightFistAndDekuShieldNearDL, 0x06027690, gLinkChildRightFistAndDekuShieldFarDL,
+ 0x06022970, gLinkChildRightHandClosedNearDL, 0x06027918, gLinkChildRightHandClosedFarDL,
+ 0x060241C0, gLinkChildRightHandClosedNearDL, 0x06028B40, gLinkChildRightHandClosedFarDL,
};
Gfx* D_80125D28[] = {
- 0x06023160, 0x06015248, 0x06027F00, 0x06017360, 0x06023160, 0x06014D68, 0x06027F00, 0x06016EE8,
- 0x06020A78, 0x060148A8, 0x06025FB8, 0x06016A98, 0x060211B8, 0x06015248, 0x060264F0, 0x06017360,
+ 0x06023160, gLinkChildSwordAndSheathNearDL,
+ 0x06027F00, gLinkChildSwordAndSheathFarDL,
+ 0x06023160, gLinkChildDekuShieldSwordAndSheathNearDL,
+ 0x06027F00, gLinkChildDekuShieldSwordAndSheathFarDL,
+ 0x06020A78, gLinkChildHylianShieldSwordAndSheathNearDL,
+ 0x06025FB8, gLinkChildHylianShieldSwordAndSheathFarDL,
+ 0x060211B8, gLinkChildSwordAndSheathNearDL,
+ 0x060264F0, gLinkChildSwordAndSheathFarDL,
};
Gfx* D_80125D68[] = {
- NULL, NULL, NULL, NULL, NULL, 0x06022688, NULL, 0x06022688,
+ NULL, NULL, NULL, NULL, NULL, gLinkChildDekuShieldWithMatrixDL, NULL, gLinkChildDekuShieldWithMatrixDL,
};
Gfx* D_80125D88[] = {
- 0x060249D8, 0x06015408, 0x06028150, 0x06017500, 0x060249D8, 0x06015010, 0x06028150, 0x06017150,
- 0x06020E70, 0x06014B40, 0x060262B8, 0x06016CF8, 0x060216B0, 0x06015408, 0x06026910, 0x06017500,
- NULL, NULL, NULL, NULL, 0x060249D8, 0x06022688, 0x060249D8, 0x06022688,
+ 0x060249D8, gLinkChildSheathNearDL,
+ 0x06028150, gLinkChildSheathFarDL,
+ 0x060249D8, gLinkChildDekuShieldAndSheathNearDL,
+ 0x06028150, gLinkChildDekuShieldAndSheathFarDL,
+ 0x06020E70, gLinkChildHylianShieldAndSheathNearDL,
+ 0x060262B8, gLinkChildHylianShieldAndSheathFarDL,
+ 0x060216B0, gLinkChildSheathNearDL,
+ 0x06026910, gLinkChildSheathFarDL,
+ NULL, NULL,
+ NULL, NULL,
+ 0x060249D8, gLinkChildDekuShieldWithMatrixDL,
+ 0x060249D8, gLinkChildDekuShieldWithMatrixDL,
};
Gfx* D_80125DE8[] = {
- 0x060238C8, 0x06015540, 0x060286B8, 0x06015540, 0x06023D50, 0x06015540, 0x060291E8, 0x06015540,
+ 0x060238C8, gLinkChildLeftHandHoldingMasterSwordDL, 0x060286B8, gLinkChildLeftHandHoldingMasterSwordDL,
+ 0x06023D50, gLinkChildLeftHandHoldingMasterSwordDL, 0x060291E8, gLinkChildLeftHandHoldingMasterSwordDL,
};
Gfx* D_80125E08[] = {
0x06021AA8,
- 0x06013CB0,
+ gLinkChildLeftHandNearDL,
0x06026C58,
- 0x06016280,
+ gLinkChildLeftHandFarDL,
};
Gfx* D_80125E18[] = {
0x06021CE8,
- 0x06013E18,
+ gLinkChildLeftFistNearDL,
0x06026DF0,
- 0x060163C0,
+ gLinkChildLeftFistFarDL,
};
Gfx* D_80125E28[] = {
0x06021F78,
- 0x06013F38,
+ gLinkChildLeftFistAndKokiriSwordNearDL,
0x06027078,
- 0x06017630,
+ gLinkChildLeftFistAndKokiriSwordFarDL,
};
Gfx* D_80125E38[] = {
0x06021F78,
- 0x06013F38,
+ gLinkChildLeftFistAndKokiriSwordNearDL,
0x06027078,
- 0x06017630,
+ gLinkChildLeftFistAndKokiriSwordFarDL,
};
Gfx* D_80125E48[] = {
0x06022498,
- 0x060141C0,
+ gLinkChildRightHandNearDL,
0x060274F8,
- 0x060164E0,
+ gLinkChildRightHandFarDL,
};
Gfx* D_80125E58[] = {
0x060226E0,
- 0x06014320,
+ gLinkChildRightHandClosedNearDL,
0x06027690,
- 0x06016620,
+ gLinkChildRightHandClosedFarDL,
};
Gfx* D_80125E68[] = {
0x06022DA8,
- 0x06015DF0,
+ gLinkChildRightHandHoldingFairySlingshotNearDL,
0x06027B88,
- 0x06017D38,
+ gLinkChildRightHandHoldingFairySlingshotFarDL,
};
Gfx* D_80125E78[] = {
0x06023160,
- 0x06015248,
+ gLinkChildSwordAndSheathNearDL,
0x06027F00,
- 0x06017360,
+ gLinkChildSwordAndSheathFarDL,
};
Gfx* D_80125E88[] = {
0x060249D8,
- 0x06015408,
+ gLinkChildSheathNearDL,
0x06028150,
- 0x06017500,
+ gLinkChildSheathFarDL,
};
Gfx* D_80125E98[] = {
0x06035330,
- 0x060202A8,
+ gLinkChildWaistNearDL,
0x0602F530,
- 0x0601AEC8,
+ gLinkChildWaistFarDL,
};
Gfx* D_80125EA8[] = {
0x06022DA8,
- 0x06015DF0,
+ gLinkChildRightHandHoldingFairySlingshotNearDL,
0x06027B88,
- 0x06017D38,
+ gLinkChildRightHandHoldingFairySlingshotFarDL,
};
Gfx* D_80125EB8[] = {
0x06024698,
- 0x06015BA8,
+ gLinkChildRightHandHoldingFairyOcarinaNearDL,
0x06028F58,
- 0x06017AF0,
+ gLinkChildRightHandHoldingFairyOcarinaFarDL,
};
Gfx* D_80125EC8[] = {
0x06024698,
- 0x06015958,
+ gLinkChildRightHandAndOOTNearDL,
0x06028F58,
- 0x060178A0,
+ gLinkChildRightHandHoldingOOTFarDL,
};
Gfx* D_80125ED8[] = {
0x06024D70,
- 0x060141C0,
+ gLinkChildRightHandNearDL,
0x06024D70,
- 0x060164E0,
+ gLinkChildRightHandFarDL,
};
Gfx* D_80125EE8[] = {
0x060233E0,
- 0x06013CB0,
+ gLinkChildLeftHandNearDL,
0x06028288,
- 0x06016280,
+ gLinkChildLeftHandFarDL,
};
Gfx* D_80125EF8[] = {
0x06021AA8,
- 0x06014660,
+ gLinkChildLeftFistAndBoomerangNearDL,
0x06026C58,
- 0x06016908,
+ gLinkChildLeftFistAndBoomerangFarDL,
};
Gfx* D_80125F08[] = {
0x06024B58,
- 0x06015FD0,
+ gLinkChildLeftHandUpNearDL,
0x06024B58,
- 0x06015FD0,
+ gLinkChildLeftHandUpNearDL,
};
Gfx* D_80125F18[] = {
@@ -198,7 +217,7 @@ Gfx* D_80125F20[] = {
Gfx* D_80125F28[] = {
0x06036E58,
- 0x06021AE8,
+ gLinkChildLeftShoulderNearDL,
};
Gfx* D_80125F30[] = {
@@ -208,7 +227,7 @@ Gfx* D_80125F30[] = {
Gfx* D_80125F38[] = {
0x0602A248,
- 0x06018048,
+ gLinkChildRightArmStretchedSlingshotDL,
};
// Indexed by model types (left hand, right hand, sheath or waist)
@@ -599,11 +618,17 @@ u8 sEyeMouthIndexes[][2] = {
{ 7, 2 }, { 0, 2 }, { 3, 0 }, { 4, 0 }, { 2, 2 }, { 1, 1 }, { 0, 2 }, { 0, 0 },
};
-u8* sEyeTextures[] = {
+/**
+ * Link's eye and mouth textures are placed at the exact same place in adult and child Link's respective object files.
+ * This allows the array to only contain the symbols for one file and have it apply to both. This is a problem for
+ * shiftability, and changes will need to be made in the code to account for this in a modding scenario. The symbols
+ * from adult Link's object are used here.
+ */
+void* sEyeTextures[] = {
0x06000000, 0x06000800, 0x06001000, 0x06001800, 0x06002000, 0x06002800, 0x06003000, 0x06003800,
};
-u8* sMouthTextures[] = {
+void* sMouthTextures[] = {
0x06004000,
0x06004400,
0x06004800,
@@ -677,7 +702,7 @@ void func_8008F470(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable,
}
} else {
if (Player_GetStrength() > PLAYER_STR_NONE) {
- gSPDisplayList(POLY_OPA_DISP++, D_06016118);
+ gSPDisplayList(POLY_OPA_DISP++, gLinkChildGoronBraceletDL);
}
}
}
@@ -1112,7 +1137,7 @@ f32 sSwordLengths[] = {
0.0f, 4000.0f, 3000.0f, 5500.0f, 0.0f, 2500.0f,
};
-Gfx* sBottleDLists[] = { 0x0602AD58, 0x06018478 };
+Gfx* sBottleDLists[] = { 0x0602AD58, gLinkChildBottleDL };
Color_RGB8 sBottleColors[] = {
{ 255, 255, 255 }, { 80, 80, 255 }, { 255, 100, 255 }, { 0, 0, 255 }, { 255, 0, 255 },
@@ -1186,7 +1211,7 @@ void func_80090D20(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s*
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_player_lib.c", 2653),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(POLY_OPA_DISP++, D_06006CC0);
+ gSPDisplayList(POLY_OPA_DISP++, gLinkChildLinkDekuStickDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_player_lib.c", 2656);
} else if ((this->actor.scale.y >= 0.0f) && (this->swordState != 0)) {