1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-13 19:35:28 +00:00
* remove fake match

* merge master

* animations

* dog limbs

* textures

* KZ limbs and DL

* a few KZ textures and make a file for link_boy

* the rest of KZ

* Far Limb DLs

* near DLs and limbs

* small fix to child

* boots and some sword and more child clean ups

* a bunch of DLs

* fix boy

* fix link child for real this time

* adult should be good now

* progress

* all undefined symbols done

* progress

* done (for now)

* restore makefile

* child -> adult

* child -> adult

* dog fixes

* KZ fixes

* more player fixes

* remove unneeded enum in dog

* rename hookshot stuff

* Update z_player_lib.c

* revert model group stuff

* move comment

* fix mirror shield upper

* remove useless 2

* OOT -> Oot

* gauntlet plate 2 fix

* fix

Co-authored-by: Louis <louist103@pop-os.localdomain>
This commit is contained in:
louist103 2021-12-27 08:08:26 -05:00 committed by GitHub
parent 6213fe3bbd
commit a862411f00
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 622 additions and 343 deletions

View file

@ -1,5 +1,6 @@
#include "global.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#include "objects/object_link_boy/object_link_boy.h"
#include "objects/object_link_child/object_link_child.h"
typedef struct {
@ -12,7 +13,7 @@ typedef struct {
/* 0x04 */ Vec3f pos;
} BowStringData; // size = 0x10
FlexSkeletonHeader* gPlayerSkelHeaders[] = { 0x060377F4, &gLinkChildSkel };
FlexSkeletonHeader* gPlayerSkelHeaders[] = { &gLinkAdultSkel, &gLinkChildSkel };
s16 sBootData[PLAYER_BOOTS_MAX][17] = {
{ 200, 1000, 300, 700, 550, 270, 600, 350, 800, 600, -100, 600, 590, 750, 125, 200, 130 },
@ -45,21 +46,33 @@ u8 gPlayerModelTypes[][5] = {
};
Gfx* D_80125CE8[] = {
0x060226E0, gLinkChildRightHandClosedNearDL, 0x06027690, gLinkChildRightHandClosedFarDL,
0x060226E0, gLinkChildRightFistAndDekuShieldNearDL, 0x06027690, gLinkChildRightFistAndDekuShieldFarDL,
0x06022970, gLinkChildRightHandClosedNearDL, 0x06027918, gLinkChildRightHandClosedFarDL,
0x060241C0, gLinkChildRightHandClosedNearDL, 0x06028B40, gLinkChildRightHandClosedFarDL,
gLinkAdultRightHandClosedNearDL,
gLinkChildRightHandClosedNearDL,
gLinkAdultRightHandClosedFarDL,
gLinkChildRightHandClosedFarDL,
gLinkAdultRightHandClosedNearDL,
gLinkChildRightFistAndDekuShieldNearDL,
gLinkAdultRightHandClosedFarDL,
gLinkChildRightFistAndDekuShieldFarDL,
gLinkAdultRightHandHoldingHylianShieldNearDL,
gLinkChildRightHandClosedNearDL,
gLinkAdultRightHandHoldingHylianShieldFarDL,
gLinkChildRightHandClosedFarDL,
gLinkAdultRightHandHoldingMirrorShieldNearDL,
gLinkChildRightHandClosedNearDL,
gLinkAdultRightHandHoldingMirrorShieldFarDL,
gLinkChildRightHandClosedFarDL,
};
Gfx* D_80125D28[] = {
0x06023160, gLinkChildSwordAndSheathNearDL,
0x06027F00, gLinkChildSwordAndSheathFarDL,
0x06023160, gLinkChildDekuShieldSwordAndSheathNearDL,
0x06027F00, gLinkChildDekuShieldSwordAndSheathFarDL,
0x06020A78, gLinkChildHylianShieldSwordAndSheathNearDL,
0x06025FB8, gLinkChildHylianShieldSwordAndSheathFarDL,
0x060211B8, gLinkChildSwordAndSheathNearDL,
0x060264F0, gLinkChildSwordAndSheathFarDL,
gLinkAdultMasterSwordAndSheathNearDL, gLinkChildSwordAndSheathNearDL,
gLinkAdultMasterSwordAndSheathFarDL, gLinkChildSwordAndSheathFarDL,
gLinkAdultMasterSwordAndSheathNearDL, gLinkChildDekuShieldSwordAndSheathNearDL,
gLinkAdultMasterSwordAndSheathFarDL, gLinkChildDekuShieldSwordAndSheathFarDL,
gLinkAdultHylianShieldSwordAndSheathNearDL, gLinkChildHylianShieldSwordAndSheathNearDL,
gLinkAdultHylianShieldSwordAndSheathFarDL, gLinkChildHylianShieldSwordAndSheathFarDL,
gLinkAdultMirrorShieldSwordAndSheathNearDL, gLinkChildSwordAndSheathNearDL,
gLinkAdultMirrorShieldSwordAndSheathFarDL, gLinkChildSwordAndSheathFarDL,
};
Gfx* D_80125D68[] = {
@ -67,166 +80,180 @@ Gfx* D_80125D68[] = {
};
Gfx* D_80125D88[] = {
0x060249D8, gLinkChildSheathNearDL,
0x06028150, gLinkChildSheathFarDL,
0x060249D8, gLinkChildDekuShieldAndSheathNearDL,
0x06028150, gLinkChildDekuShieldAndSheathFarDL,
0x06020E70, gLinkChildHylianShieldAndSheathNearDL,
0x060262B8, gLinkChildHylianShieldAndSheathFarDL,
0x060216B0, gLinkChildSheathNearDL,
0x06026910, gLinkChildSheathFarDL,
NULL, NULL,
NULL, NULL,
0x060249D8, gLinkChildDekuShieldWithMatrixDL,
0x060249D8, gLinkChildDekuShieldWithMatrixDL,
gLinkAdultSheathNearDL,
gLinkChildSheathNearDL,
gLinkAdultSheathFarDL,
gLinkChildSheathFarDL,
gLinkAdultSheathNearDL,
gLinkChildDekuShieldAndSheathNearDL,
gLinkAdultSheathFarDL,
gLinkChildDekuShieldAndSheathFarDL,
gLinkAdultHylianShieldAndSheathNearDL,
gLinkChildHylianShieldAndSheathNearDL,
gLinkAdultHylianShieldAndSheathFarDL,
gLinkChildHylianShieldAndSheathFarDL,
gLinkAdultMirrorShieldAndSheathNearDL,
gLinkChildSheathNearDL,
gLinkAdultMirrorShieldAndSheathFarDL,
gLinkChildSheathFarDL,
NULL,
NULL,
NULL,
NULL,
gLinkAdultSheathNearDL,
gLinkChildDekuShieldWithMatrixDL,
gLinkAdultSheathNearDL,
gLinkChildDekuShieldWithMatrixDL,
};
Gfx* D_80125DE8[] = {
0x060238C8, gLinkChildLeftHandHoldingMasterSwordDL, 0x060286B8, gLinkChildLeftHandHoldingMasterSwordDL,
0x06023D50, gLinkChildLeftHandHoldingMasterSwordDL, 0x060291E8, gLinkChildLeftHandHoldingMasterSwordDL,
gLinkAdultLeftHandHoldingBgsNearDL, gLinkChildLeftHandHoldingMasterSwordDL,
gLinkAdultLeftHandHoldingBgsFarDL, gLinkChildLeftHandHoldingMasterSwordDL,
gLinkAdultHandHoldingBrokenGiantsKnifeDL, gLinkChildLeftHandHoldingMasterSwordDL,
gLinkAdultHandHoldingBrokenGiantsKnifeFarDL, gLinkChildLeftHandHoldingMasterSwordDL,
};
Gfx* D_80125E08[] = {
0x06021AA8,
gLinkAdultLeftHandNearDL,
gLinkChildLeftHandNearDL,
0x06026C58,
gLinkAdultLeftHandFarDL,
gLinkChildLeftHandFarDL,
};
Gfx* D_80125E18[] = {
0x06021CE8,
gLinkAdultLeftHandClosedNearDL,
gLinkChildLeftFistNearDL,
0x06026DF0,
gLinkAdultLeftHandClosedFarDL,
gLinkChildLeftFistFarDL,
};
Gfx* D_80125E28[] = {
0x06021F78,
gLinkAdultLeftHandHoldingMasterSwordNearDL,
gLinkChildLeftFistAndKokiriSwordNearDL,
0x06027078,
gLinkAdultLeftHandHoldingMasterSwordFarDL,
gLinkChildLeftFistAndKokiriSwordFarDL,
};
Gfx* D_80125E38[] = {
0x06021F78,
gLinkAdultLeftHandHoldingMasterSwordNearDL,
gLinkChildLeftFistAndKokiriSwordNearDL,
0x06027078,
gLinkAdultLeftHandHoldingMasterSwordFarDL,
gLinkChildLeftFistAndKokiriSwordFarDL,
};
Gfx* D_80125E48[] = {
0x06022498,
gLinkAdultRightHandNearDL,
gLinkChildRightHandNearDL,
0x060274F8,
gLinkAdultRightHandFarDL,
gLinkChildRightHandFarDL,
};
Gfx* D_80125E58[] = {
0x060226E0,
gLinkAdultRightHandClosedNearDL,
gLinkChildRightHandClosedNearDL,
0x06027690,
gLinkAdultRightHandClosedFarDL,
gLinkChildRightHandClosedFarDL,
};
Gfx* D_80125E68[] = {
0x06022DA8,
gLinkChildRightHandHoldingFairySlingshotNearDL,
0x06027B88,
gLinkChildRightHandHoldingFairySlingshotFarDL,
gLinkAdultRightHandHoldingBowNearDL,
gLinkChildRightHandHoldingSlingshotNearDL,
gLinkAdultRightHandHoldingBowFarDL,
gLinkChildRightHandHoldingSlingshotFarDL,
};
Gfx* D_80125E78[] = {
0x06023160,
gLinkAdultMasterSwordAndSheathNearDL,
gLinkChildSwordAndSheathNearDL,
0x06027F00,
gLinkAdultMasterSwordAndSheathFarDL,
gLinkChildSwordAndSheathFarDL,
};
Gfx* D_80125E88[] = {
0x060249D8,
gLinkAdultSheathNearDL,
gLinkChildSheathNearDL,
0x06028150,
gLinkAdultSheathFarDL,
gLinkChildSheathFarDL,
};
Gfx* D_80125E98[] = {
0x06035330,
gLinkAdultWaistNearDL,
gLinkChildWaistNearDL,
0x0602F530,
gLinkAdultWaistFarDL,
gLinkChildWaistFarDL,
};
Gfx* D_80125EA8[] = {
0x06022DA8,
gLinkChildRightHandHoldingFairySlingshotNearDL,
0x06027B88,
gLinkChildRightHandHoldingFairySlingshotFarDL,
gLinkAdultRightHandHoldingBowNearDL,
gLinkChildRightHandHoldingSlingshotNearDL,
gLinkAdultRightHandHoldingBowFarDL,
gLinkChildRightHandHoldingSlingshotFarDL,
};
Gfx* D_80125EB8[] = {
0x06024698,
gLinkAdultRightHandHoldingOotNearDL,
gLinkChildRightHandHoldingFairyOcarinaNearDL,
0x06028F58,
gLinkAdultRightHandHoldingOotFarDL,
gLinkChildRightHandHoldingFairyOcarinaFarDL,
};
Gfx* D_80125EC8[] = {
0x06024698,
gLinkChildRightHandAndOOTNearDL,
0x06028F58,
gLinkAdultRightHandHoldingOotNearDL,
gLinkChildRightHandAndOotNearDL,
gLinkAdultRightHandHoldingOotFarDL,
gLinkChildRightHandHoldingOOTFarDL,
};
Gfx* D_80125ED8[] = {
0x06024D70,
gLinkAdultRightHandHoldingHookshotNearDL,
gLinkChildRightHandNearDL,
0x06024D70,
gLinkAdultRightHandHoldingHookshotNearDL, // The 'far' display list exists but is not used
gLinkChildRightHandFarDL,
};
Gfx* D_80125EE8[] = {
0x060233E0,
gLinkAdultLeftHandHoldingHammerNearDL,
gLinkChildLeftHandNearDL,
0x06028288,
gLinkAdultLeftHandHoldingHammerFarDL,
gLinkChildLeftHandFarDL,
};
Gfx* D_80125EF8[] = {
0x06021AA8,
gLinkAdultLeftHandNearDL,
gLinkChildLeftFistAndBoomerangNearDL,
0x06026C58,
gLinkAdultLeftHandFarDL,
gLinkChildLeftFistAndBoomerangFarDL,
};
Gfx* D_80125F08[] = {
0x06024B58,
gLinkAdultLeftHandOutNearDL,
gLinkChildLeftHandUpNearDL,
0x06024B58,
gLinkAdultLeftHandOutNearDL,
gLinkChildLeftHandUpNearDL,
};
Gfx* D_80125F18[] = {
0x06029918,
Gfx* sArmOutDLs[] = {
gLinkAdultRightArmOutNearDL,
NULL,
};
Gfx* D_80125F20[] = {
0x06029C20,
Gfx* sHandOutDLs[] = {
gLinkAdultRightHandOutNearDL,
NULL,
};
Gfx* D_80125F28[] = {
0x06036E58,
gLinkChildLeftShoulderNearDL,
Gfx* sRightShoulderNearDLs[] = {
gLinkAdultRightShoulderNearDL,
gLinkChildRightShoulderNearDL,
};
Gfx* D_80125F30[] = {
0x06029FA0,
gLinkAdultLeftArmOutNearDL,
NULL,
};
Gfx* D_80125F38[] = {
0x0602A248,
Gfx* sHoldingFirstPersonWeaponDLs[] = {
gLinkAdultRightHandHoldingBowFirstPersonDL,
gLinkChildRightArmStretchedSlingshotDL,
};
@ -625,14 +652,15 @@ u8 sEyeMouthIndexes[][2] = {
* from adult Link's object are used here.
*/
void* sEyeTextures[] = {
0x06000000, 0x06000800, 0x06001000, 0x06001800, 0x06002000, 0x06002800, 0x06003000, 0x06003800,
gLinkAdultEyesOpenTex, gLinkAdultEyesHalfTex, gLinkAdultEyesClosedfTex, gLinkAdultEyesRollLeftTex,
gLinkAdultEyesRollRightTex, gLinkAdultEyesShockTex, gLinkAdultEyesUnk1Tex, gLinkAdultEyesUnk2Tex,
};
void* sMouthTextures[] = {
0x06004000,
0x06004400,
0x06004800,
0x06004C00,
gLinkAdultMouth1Tex,
gLinkAdultMouth2Tex,
gLinkAdultMouth3Tex,
gLinkAdultMouth4Tex,
};
Color_RGB8 sTunicColors[] = {
@ -647,8 +675,8 @@ Color_RGB8 sGauntletColors[] = {
};
Gfx* sBootDListGroups[][2] = {
{ 0x06025918, 0x06025A60 },
{ 0x06025BA8, 0x06025DB0 },
{ gLinkAdultLeftIronBootDL, gLinkAdultRightIronBootDL },
{ gLinkAdultLeftHoverBootDL, gLinkAdultRightHoverBootDL },
};
void func_8008F470(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount, s32 lod, s32 tunic,
@ -689,10 +717,12 @@ void func_8008F470(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable,
color = &sGauntletColors[strengthUpgrade - 2];
gDPSetEnvColor(POLY_OPA_DISP++, color->r, color->g, color->b, 0);
gSPDisplayList(POLY_OPA_DISP++, D_06025218);
gSPDisplayList(POLY_OPA_DISP++, D_06025598);
gSPDisplayList(POLY_OPA_DISP++, (D_80160014 == 0) ? D_060252D8 : D_06025438);
gSPDisplayList(POLY_OPA_DISP++, (D_80160018 == 8) ? D_06025658 : D_060257B8);
gSPDisplayList(POLY_OPA_DISP++, gLinkAdultLeftGauntletPlate1DL);
gSPDisplayList(POLY_OPA_DISP++, gLinkAdultRightGauntletPlate1DL);
gSPDisplayList(POLY_OPA_DISP++,
(D_80160014 == 0) ? gLinkAdultLeftGauntletPlate2DL : gLinkAdultLeftGauntletPlate3DL);
gSPDisplayList(POLY_OPA_DISP++,
(D_80160018 == 8) ? gLinkAdultRightGauntletPlate2DL : gLinkAdultRightGauntletPlate3DL);
}
if (boots != 0) {
@ -943,15 +973,16 @@ s32 func_800902F0(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
if (this->unk_6AD != 2) {
*dList = NULL;
} else if (limbIndex == PLAYER_LIMB_L_FOREARM) {
*dList = D_80125F18[(void)0, gSaveContext.linkAge];
*dList = sArmOutDLs[(void)0, gSaveContext.linkAge];
} else if (limbIndex == PLAYER_LIMB_L_HAND) {
*dList = D_80125F20[(void)0, gSaveContext.linkAge];
*dList = sHandOutDLs[(void)0, gSaveContext.linkAge];
} else if (limbIndex == PLAYER_LIMB_R_SHOULDER) {
*dList = D_80125F28[(void)0, gSaveContext.linkAge];
*dList = sRightShoulderNearDLs[(void)0, gSaveContext.linkAge];
} else if (limbIndex == PLAYER_LIMB_R_FOREARM) {
*dList = D_80125F30[(void)0, gSaveContext.linkAge];
} else if (limbIndex == PLAYER_LIMB_R_HAND) {
*dList = Player_HoldsHookshot(this) ? D_0602A738 : D_80125F38[(void)0, gSaveContext.linkAge];
*dList = Player_HoldsHookshot(this) ? gLinkAdultRightHandHoldingHookshotFarDL
: sHoldingFirstPersonWeaponDLs[(void)0, gSaveContext.linkAge];
} else {
*dList = NULL;
}
@ -1093,7 +1124,7 @@ void func_80090A28(Player* this, Vec3f* vecs) {
Matrix_MultVec3f(&D_80126098, &vecs[2]);
}
void func_80090AFC(GlobalContext* globalCtx, Player* this, f32 arg2) {
void Player_DrawHookshotReticle(GlobalContext* globalCtx, Player* this, f32 arg2) {
static Vec3f D_801260C8 = { -500.0f, -100.0f, 0.0f };
CollisionPoly* sp9C;
s32 bgId;
@ -1126,7 +1157,7 @@ void func_80090AFC(GlobalContext* globalCtx, Player* this, f32 arg2) {
gSPMatrix(OVERLAY_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_player_lib.c", 2587),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(OVERLAY_DISP++, 0x06, globalCtx->objectCtx.status[this->actor.objBankIndex].segment);
gSPDisplayList(OVERLAY_DISP++, D_0602CB48);
gSPDisplayList(OVERLAY_DISP++, gLinkAdultHookshotReticleDL);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_player_lib.c", 2592);
}
@ -1138,7 +1169,7 @@ f32 sSwordLengths[] = {
0.0f, 4000.0f, 3000.0f, 5500.0f, 0.0f, 2500.0f,
};
Gfx* sBottleDLists[] = { 0x0602AD58, gLinkChildBottleDL };
Gfx* sBottleDLists[] = { gLinkAdultBottleDL, gLinkChildBottleDL };
Color_RGB8 sBottleColors[] = {
{ 255, 255, 255 }, { 80, 80, 255 }, { 255, 100, 255 }, { 0, 0, 255 }, { 255, 0, 255 },
@ -1149,8 +1180,8 @@ Color_RGB8 sBottleColors[] = {
Vec3f D_80126128 = { 398.0f, 1419.0f, 244.0f };
BowStringData sBowStringData[] = {
{ 0x0602B108, { 0.0f, -360.4f, 0.0f } }, // bow
{ 0x060221A8, { 606.0f, 236.0f, 0.0f } }, // slingshot
{ gLinkAdultBowStringDL, { 0.0f, -360.4f, 0.0f } }, // bow
{ gLinkChildSlinghotStringDL, { 606.0f, 236.0f, 0.0f } }, // slingshot
};
Vec3f D_80126154[] = {
@ -1332,8 +1363,8 @@ void func_80090D20(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s*
if (func_8002DD78(this) != 0) {
Matrix_Translate(500.0f, 300.0f, 0.0f, MTXMODE_APPLY);
func_80090AFC(globalCtx, this,
(this->heldItemActionParam == PLAYER_AP_HOOKSHOT) ? 38600.0f : 77600.0f);
Player_DrawHookshotReticle(
globalCtx, this, (this->heldItemActionParam == PLAYER_AP_HOOKSHOT) ? 38600.0f : 77600.0f);
}
}
}