diff options
| author | louist103 <35883445+louist103@users.noreply.github.com> | 2021-05-26 18:59:21 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-26 18:59:21 -0400 |
| commit | 201c9ec1cdbc3baffd7cc5520d4f6e1f47093b7e (patch) | |
| tree | 4144baa6b0e61ee5e8319df3dbcf8d370d2a82bd /src/code | |
| parent | 36fead60a061e0566d2cdf1c247c5c4cd5110826 (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.c | 1 | ||||
| -rw-r--r-- | src/code/z_player_lib.c | 127 |
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)) { |
