mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-12 10:54:44 +00:00
Split SaveContext
into sub-structs (#1393)
* Split SaveContext struct * run formatter * Remove temporary-until-split stuff in z_sram * . * run formatter
This commit is contained in:
parent
e272186b5f
commit
6e7a6d4181
107 changed files with 1819 additions and 1751 deletions
|
@ -505,7 +505,7 @@ s32 func_8008E9C4(Player* this) {
|
|||
}
|
||||
|
||||
s32 Player_IsChildWithHylianShield(Player* this) {
|
||||
return gSaveContext.linkAge != LINK_AGE_ADULT && (this->currentShield == PLAYER_SHIELD_HYLIAN);
|
||||
return gSaveContext.save.linkAge != LINK_AGE_ADULT && (this->currentShield == PLAYER_SHIELD_HYLIAN);
|
||||
}
|
||||
|
||||
s32 Player_ActionToModelGroup(Player* this, s32 itemAction) {
|
||||
|
@ -524,13 +524,14 @@ void Player_SetModelsForHoldingShield(Player* this) {
|
|||
((this->itemAction < 0) || (this->itemAction == this->heldItemAction))) {
|
||||
if (!Player_HoldsTwoHandedWeapon(this) && !Player_IsChildWithHylianShield(this)) {
|
||||
this->rightHandType = PLAYER_MODELTYPE_RH_SHIELD;
|
||||
this->rightHandDLists = sPlayerDListGroups[PLAYER_MODELTYPE_RH_SHIELD] + ((void)0, gSaveContext.linkAge);
|
||||
this->rightHandDLists =
|
||||
sPlayerDListGroups[PLAYER_MODELTYPE_RH_SHIELD] + ((void)0, gSaveContext.save.linkAge);
|
||||
if (this->sheathType == PLAYER_MODELTYPE_SHEATH_18) {
|
||||
this->sheathType = PLAYER_MODELTYPE_SHEATH_16;
|
||||
} else if (this->sheathType == PLAYER_MODELTYPE_SHEATH_19) {
|
||||
this->sheathType = PLAYER_MODELTYPE_SHEATH_17;
|
||||
}
|
||||
this->sheathDLists = sPlayerDListGroups[this->sheathType] + ((void)0, gSaveContext.linkAge);
|
||||
this->sheathDLists = sPlayerDListGroups[this->sheathType] + ((void)0, gSaveContext.save.linkAge);
|
||||
this->modelAnimType = PLAYER_ANIMTYPE_2;
|
||||
this->itemAction = -1;
|
||||
}
|
||||
|
@ -543,13 +544,13 @@ void Player_SetModels(Player* this, s32 modelGroup) {
|
|||
this->sheathType = gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_SHEATH];
|
||||
|
||||
this->leftHandDLists = sPlayerDListGroups[gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_LEFT_HAND]] +
|
||||
((void)0, gSaveContext.linkAge);
|
||||
((void)0, gSaveContext.save.linkAge);
|
||||
this->rightHandDLists = sPlayerDListGroups[gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_RIGHT_HAND]] +
|
||||
((void)0, gSaveContext.linkAge);
|
||||
((void)0, gSaveContext.save.linkAge);
|
||||
this->sheathDLists = sPlayerDListGroups[gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_SHEATH]] +
|
||||
((void)0, gSaveContext.linkAge);
|
||||
((void)0, gSaveContext.save.linkAge);
|
||||
this->waistDLists = sPlayerDListGroups[gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_WAIST]] +
|
||||
((void)0, gSaveContext.linkAge);
|
||||
((void)0, gSaveContext.save.linkAge);
|
||||
|
||||
Player_SetModelsForHoldingShield(this);
|
||||
}
|
||||
|
@ -731,7 +732,8 @@ s32 Player_HoldsTwoHandedWeapon(Player* this) {
|
|||
}
|
||||
|
||||
s32 Player_HoldsBrokenKnife(Player* this) {
|
||||
return (this->heldItemAction == PLAYER_IA_SWORD_BIGGORON) && (gSaveContext.swordHealth <= 0.0f);
|
||||
return (this->heldItemAction == PLAYER_IA_SWORD_BIGGORON) &&
|
||||
(gSaveContext.save.info.playerData.swordHealth <= 0.0f);
|
||||
}
|
||||
|
||||
s32 Player_ActionToBottle(Player* this, s32 itemAction) {
|
||||
|
@ -880,7 +882,7 @@ void Player_DrawImpl(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dL
|
|||
#ifndef AVOID_UB
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyeTextures[eyeIndex]));
|
||||
#else
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyeTextures[gSaveContext.linkAge][eyeIndex]));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyeTextures[gSaveContext.save.linkAge][eyeIndex]));
|
||||
#endif
|
||||
|
||||
if (mouthIndex < 0) {
|
||||
|
@ -890,7 +892,7 @@ void Player_DrawImpl(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dL
|
|||
#ifndef AVOID_UB
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sMouthTextures[mouthIndex]));
|
||||
#else
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sMouthTextures[gSaveContext.linkAge][mouthIndex]));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(sMouthTextures[gSaveContext.save.linkAge][mouthIndex]));
|
||||
#endif
|
||||
|
||||
color = &sTunicColors[tunic];
|
||||
|
@ -980,15 +982,16 @@ void func_8008F87C(PlayState* play, Player* this, SkelAnime* skelAnime, Vec3f* p
|
|||
(Player_ActionToMagicSpell(this, this->itemAction) < 0)) {
|
||||
s32 pad;
|
||||
|
||||
sp7C = D_80126058[(void)0, gSaveContext.linkAge];
|
||||
sp78 = D_80126060[(void)0, gSaveContext.linkAge];
|
||||
sp74 = D_80126068[(void)0, gSaveContext.linkAge] - this->unk_6C4;
|
||||
sp7C = D_80126058[(void)0, gSaveContext.save.linkAge];
|
||||
sp78 = D_80126060[(void)0, gSaveContext.save.linkAge];
|
||||
sp74 = D_80126068[(void)0, gSaveContext.save.linkAge] - this->unk_6C4;
|
||||
|
||||
Matrix_Push();
|
||||
Matrix_TranslateRotateZYX(pos, rot);
|
||||
Matrix_MultVec3f(&sZeroVec, &spA4);
|
||||
Matrix_TranslateRotateZYX(&D_80126038[(void)0, gSaveContext.linkAge], &skelAnime->jointTable[shinLimbIndex]);
|
||||
Matrix_Translate(D_80126050[(void)0, gSaveContext.linkAge], 0.0f, 0.0f, MTXMODE_APPLY);
|
||||
Matrix_TranslateRotateZYX(&D_80126038[(void)0, gSaveContext.save.linkAge],
|
||||
&skelAnime->jointTable[shinLimbIndex]);
|
||||
Matrix_Translate(D_80126050[(void)0, gSaveContext.save.linkAge], 0.0f, 0.0f, MTXMODE_APPLY);
|
||||
Matrix_MultVec3f(&sZeroVec, &sp98);
|
||||
Matrix_MultVec3f(&D_80126070, &footprintPos);
|
||||
Matrix_Pop();
|
||||
|
@ -1125,14 +1128,14 @@ s32 Player_OverrideLimbDrawGameplayDefault(PlayState* play, s32 limbIndex, Gfx**
|
|||
if (limbIndex == PLAYER_LIMB_L_HAND) {
|
||||
Gfx** dLists = this->leftHandDLists;
|
||||
|
||||
if ((sLeftHandType == PLAYER_MODELTYPE_LH_BGS) && (gSaveContext.swordHealth <= 0.0f)) {
|
||||
if ((sLeftHandType == PLAYER_MODELTYPE_LH_BGS) && (gSaveContext.save.info.playerData.swordHealth <= 0.0f)) {
|
||||
dLists += 4;
|
||||
} else if ((sLeftHandType == PLAYER_MODELTYPE_LH_BOOMERANG) && (this->stateFlags1 & PLAYER_STATE1_25)) {
|
||||
dLists = gPlayerLeftHandOpenDLs + gSaveContext.linkAge;
|
||||
dLists = gPlayerLeftHandOpenDLs + gSaveContext.save.linkAge;
|
||||
sLeftHandType = PLAYER_MODELTYPE_LH_OPEN;
|
||||
} else if ((this->leftHandType == PLAYER_MODELTYPE_LH_OPEN) && (this->actor.speed > 2.0f) &&
|
||||
!(this->stateFlags1 & PLAYER_STATE1_27)) {
|
||||
dLists = gPlayerLeftHandClosedDLs + gSaveContext.linkAge;
|
||||
dLists = gPlayerLeftHandClosedDLs + gSaveContext.save.linkAge;
|
||||
sLeftHandType = PLAYER_MODELTYPE_LH_CLOSED;
|
||||
}
|
||||
|
||||
|
@ -1144,7 +1147,7 @@ s32 Player_OverrideLimbDrawGameplayDefault(PlayState* play, s32 limbIndex, Gfx**
|
|||
dLists += this->currentShield * 4;
|
||||
} else if ((this->rightHandType == PLAYER_MODELTYPE_RH_OPEN) && (this->actor.speed > 2.0f) &&
|
||||
!(this->stateFlags1 & PLAYER_STATE1_27)) {
|
||||
dLists = sPlayerRightHandClosedDLs + gSaveContext.linkAge;
|
||||
dLists = sPlayerRightHandClosedDLs + gSaveContext.save.linkAge;
|
||||
sRightHandType = PLAYER_MODELTYPE_RH_CLOSED;
|
||||
}
|
||||
|
||||
|
@ -1155,13 +1158,13 @@ s32 Player_OverrideLimbDrawGameplayDefault(PlayState* play, s32 limbIndex, Gfx**
|
|||
if ((this->sheathType == PLAYER_MODELTYPE_SHEATH_18) || (this->sheathType == PLAYER_MODELTYPE_SHEATH_19)) {
|
||||
dLists += this->currentShield * 4;
|
||||
if (!LINK_IS_ADULT && (this->currentShield < PLAYER_SHIELD_HYLIAN) &&
|
||||
(gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) {
|
||||
(gSaveContext.save.info.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) {
|
||||
dLists += PLAYER_SHIELD_MAX * 4;
|
||||
}
|
||||
} else if (!LINK_IS_ADULT &&
|
||||
((this->sheathType == PLAYER_MODELTYPE_SHEATH_16) ||
|
||||
(this->sheathType == PLAYER_MODELTYPE_SHEATH_17)) &&
|
||||
(gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) {
|
||||
(gSaveContext.save.info.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) {
|
||||
dLists = D_80125D28 + PLAYER_SHIELD_MAX * 4;
|
||||
}
|
||||
|
||||
|
@ -1182,16 +1185,17 @@ s32 Player_OverrideLimbDrawGameplayFirstPerson(PlayState* play, s32 limbIndex, G
|
|||
if (this->unk_6AD != 2) {
|
||||
*dList = NULL;
|
||||
} else if (limbIndex == PLAYER_LIMB_L_FOREARM) {
|
||||
*dList = sFirstPersonLeftForearmDLs[(void)0, gSaveContext.linkAge];
|
||||
*dList = sFirstPersonLeftForearmDLs[(void)0, gSaveContext.save.linkAge];
|
||||
} else if (limbIndex == PLAYER_LIMB_L_HAND) {
|
||||
*dList = sFirstPersonLeftHandDLs[(void)0, gSaveContext.linkAge];
|
||||
*dList = sFirstPersonLeftHandDLs[(void)0, gSaveContext.save.linkAge];
|
||||
} else if (limbIndex == PLAYER_LIMB_R_SHOULDER) {
|
||||
*dList = sFirstPersonRightShoulderDLs[(void)0, gSaveContext.linkAge];
|
||||
*dList = sFirstPersonRightShoulderDLs[(void)0, gSaveContext.save.linkAge];
|
||||
} else if (limbIndex == PLAYER_LIMB_R_FOREARM) {
|
||||
*dList = sFirstPersonForearmDLs[(void)0, gSaveContext.linkAge];
|
||||
*dList = sFirstPersonForearmDLs[(void)0, gSaveContext.save.linkAge];
|
||||
} else if (limbIndex == PLAYER_LIMB_R_HAND) {
|
||||
*dList = Player_HoldsHookshot(this) ? gLinkAdultRightHandHoldingHookshotFarDL
|
||||
: sFirstPersonRightHandHoldingWeaponDLs[(void)0, gSaveContext.linkAge];
|
||||
*dList = Player_HoldsHookshot(this)
|
||||
? gLinkAdultRightHandHoldingHookshotFarDL
|
||||
: sFirstPersonRightHandHoldingWeaponDLs[(void)0, gSaveContext.save.linkAge];
|
||||
} else {
|
||||
*dList = NULL;
|
||||
}
|
||||
|
@ -1495,7 +1499,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
|||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_player_lib.c", 2712),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, bottleColor->r, bottleColor->g, bottleColor->b, 0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, sBottleDLists[((void)0, gSaveContext.linkAge)]);
|
||||
gSPDisplayList(POLY_XLU_DISP++, sBottleDLists[((void)0, gSaveContext.save.linkAge)]);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_player_lib.c", 2717);
|
||||
}
|
||||
|
@ -1532,7 +1536,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
|||
Matrix_Get(&this->shieldMf);
|
||||
} else if ((this->rightHandType == PLAYER_MODELTYPE_RH_BOW_SLINGSHOT) ||
|
||||
(this->rightHandType == PLAYER_MODELTYPE_RH_BOW_SLINGSHOT_2)) {
|
||||
BowSlingshotStringData* stringData = &sBowSlingshotStringData[gSaveContext.linkAge];
|
||||
BowSlingshotStringData* stringData = &sBowSlingshotStringData[gSaveContext.save.linkAge];
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_player_lib.c", 2783);
|
||||
|
||||
|
@ -1628,7 +1632,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
|||
} else if (limbIndex == PLAYER_LIMB_HEAD) {
|
||||
Matrix_MultVec3f(&sPlayerFocusHeadLimbModelPos, &this->actor.focus.pos);
|
||||
} else {
|
||||
Vec3f* footPos = &sLeftRightFootLimbModelFootPos[((void)0, gSaveContext.linkAge)];
|
||||
Vec3f* footPos = &sLeftRightFootLimbModelFootPos[((void)0, gSaveContext.save.linkAge)];
|
||||
|
||||
// The same model position is used for both feet,
|
||||
// but the resulting world position will be different for each limb.
|
||||
|
@ -1638,7 +1642,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
|||
}
|
||||
|
||||
u32 func_80091738(PlayState* play, u8* segment, SkelAnime* skelAnime) {
|
||||
s16 linkObjectId = gLinkObjectIds[(void)0, gSaveContext.linkAge];
|
||||
s16 linkObjectId = gLinkObjectIds[(void)0, gSaveContext.save.linkAge];
|
||||
u32 size;
|
||||
void* ptr;
|
||||
|
||||
|
@ -1656,7 +1660,7 @@ u32 func_80091738(PlayState* play, u8* segment, SkelAnime* skelAnime) {
|
|||
gSegments[6] =
|
||||
VIRTUAL_TO_PHYSICAL(segment + PAUSE_EQUIP_BUFFER_SIZE + PAUSE_PLAYER_SEGMENT_GAMEPLAY_KEEP_BUFFER_SIZE);
|
||||
|
||||
SkelAnime_InitLink(play, skelAnime, gPlayerSkelHeaders[(void)0, gSaveContext.linkAge],
|
||||
SkelAnime_InitLink(play, skelAnime, gPlayerSkelHeaders[(void)0, gSaveContext.save.linkAge],
|
||||
&gPlayerAnim_link_normal_wait, 9, ptr, ptr, PLAYER_LIMB_MAX);
|
||||
|
||||
return size + PAUSE_EQUIP_BUFFER_SIZE + PAUSE_PLAYER_SEGMENT_GAMEPLAY_KEEP_BUFFER_SIZE +
|
||||
|
@ -1686,7 +1690,7 @@ s32 Player_OverrideLimbDrawPause(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
|||
if (limbIndex == PLAYER_LIMB_L_HAND) {
|
||||
type = gPlayerModelTypes[modelGroup][PLAYER_MODELGROUPENTRY_LEFT_HAND];
|
||||
sLeftHandType = type;
|
||||
if ((type == PLAYER_MODELTYPE_LH_BGS) && (gSaveContext.swordHealth <= 0.0f)) {
|
||||
if ((type == PLAYER_MODELTYPE_LH_BGS) && (gSaveContext.save.info.playerData.swordHealth <= 0.0f)) {
|
||||
dListOffset = 4;
|
||||
}
|
||||
} else if (limbIndex == PLAYER_LIMB_R_HAND) {
|
||||
|
@ -1706,7 +1710,7 @@ s32 Player_OverrideLimbDrawPause(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
|||
return false;
|
||||
}
|
||||
|
||||
dLists = sPlayerDListGroups[type] + ((void)0, gSaveContext.linkAge);
|
||||
dLists = sPlayerDListGroups[type] + ((void)0, gSaveContext.save.linkAge);
|
||||
*dList = *(dLists + dListOffset);
|
||||
|
||||
return false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue