Fixed z_player_lib corruption on 64 bit
This commit is contained in:
parent
e4ce541fcf
commit
ca6f8f8963
|
@ -361,13 +361,13 @@ void Player_SetModelsForHoldingShield(Player* this) {
|
||||||
((this->itemActionParam < 0) || (this->itemActionParam == this->heldItemActionParam))) {
|
((this->itemActionParam < 0) || (this->itemActionParam == this->heldItemActionParam))) {
|
||||||
if (!Player_HoldsTwoHandedWeapon(this) && !Player_IsChildWithHylianShield(this)) {
|
if (!Player_HoldsTwoHandedWeapon(this) && !Player_IsChildWithHylianShield(this)) {
|
||||||
this->rightHandType = 10;
|
this->rightHandType = 10;
|
||||||
this->rightHandDLists = &sPlayerDListGroups[10][(void)0, gSaveContext.linkAge];
|
this->rightHandDLists = &sPlayerDListGroups[10][gSaveContext.linkAge];
|
||||||
if (this->sheathType == 18) {
|
if (this->sheathType == 18) {
|
||||||
this->sheathType = 16;
|
this->sheathType = 16;
|
||||||
} else if (this->sheathType == 19) {
|
} else if (this->sheathType == 19) {
|
||||||
this->sheathType = 17;
|
this->sheathType = 17;
|
||||||
}
|
}
|
||||||
this->sheathDLists = &sPlayerDListGroups[this->sheathType][(void)0, gSaveContext.linkAge];
|
this->sheathDLists = &sPlayerDListGroups[this->sheathType][gSaveContext.linkAge];
|
||||||
this->modelAnimType = 2;
|
this->modelAnimType = 2;
|
||||||
this->itemActionParam = -1;
|
this->itemActionParam = -1;
|
||||||
}
|
}
|
||||||
|
@ -379,10 +379,10 @@ void Player_SetModels(Player* this, s32 modelGroup) {
|
||||||
this->rightHandType = gPlayerModelTypes[modelGroup][2];
|
this->rightHandType = gPlayerModelTypes[modelGroup][2];
|
||||||
this->sheathType = gPlayerModelTypes[modelGroup][3];
|
this->sheathType = gPlayerModelTypes[modelGroup][3];
|
||||||
|
|
||||||
this->leftHandDLists = &sPlayerDListGroups[gPlayerModelTypes[modelGroup][1]][(void)0, gSaveContext.linkAge];
|
this->leftHandDLists = &sPlayerDListGroups[gPlayerModelTypes[modelGroup][1]][gSaveContext.linkAge];
|
||||||
this->rightHandDLists = &sPlayerDListGroups[gPlayerModelTypes[modelGroup][2]][(void)0, gSaveContext.linkAge];
|
this->rightHandDLists = &sPlayerDListGroups[gPlayerModelTypes[modelGroup][2]][gSaveContext.linkAge];
|
||||||
this->sheathDLists = &sPlayerDListGroups[gPlayerModelTypes[modelGroup][3]][(void)0, gSaveContext.linkAge];
|
this->sheathDLists = &sPlayerDListGroups[gPlayerModelTypes[modelGroup][3]][gSaveContext.linkAge];
|
||||||
this->waistDLists = &sPlayerDListGroups[gPlayerModelTypes[modelGroup][4]][(void)0, gSaveContext.linkAge];
|
this->waistDLists = &sPlayerDListGroups[gPlayerModelTypes[modelGroup][4]][gSaveContext.linkAge];
|
||||||
|
|
||||||
Player_SetModelsForHoldingShield(this);
|
Player_SetModelsForHoldingShield(this);
|
||||||
}
|
}
|
||||||
|
@ -844,15 +844,15 @@ void func_8008F87C(GlobalContext* globalCtx, Player* this, SkelAnime* skelAnime,
|
||||||
(Player_ActionToMagicSpell(this, this->itemActionParam) < 0)) {
|
(Player_ActionToMagicSpell(this, this->itemActionParam) < 0)) {
|
||||||
s32 pad;
|
s32 pad;
|
||||||
|
|
||||||
sp7C = D_80126058[(void)0, gSaveContext.linkAge];
|
sp7C = D_80126058[gSaveContext.linkAge];
|
||||||
sp78 = D_80126060[(void)0, gSaveContext.linkAge];
|
sp78 = D_80126060[gSaveContext.linkAge];
|
||||||
sp74 = D_80126068[(void)0, gSaveContext.linkAge] - this->unk_6C4;
|
sp74 = D_80126068[gSaveContext.linkAge] - this->unk_6C4;
|
||||||
|
|
||||||
Matrix_Push();
|
Matrix_Push();
|
||||||
Matrix_TranslateRotateZYX(pos, rot);
|
Matrix_TranslateRotateZYX(pos, rot);
|
||||||
Matrix_MultVec3f(&D_8012602C, &spA4);
|
Matrix_MultVec3f(&D_8012602C, &spA4);
|
||||||
Matrix_TranslateRotateZYX(&D_80126038[(void)0, gSaveContext.linkAge], &skelAnime->jointTable[shinLimbIndex]);
|
Matrix_TranslateRotateZYX(&D_80126038[gSaveContext.linkAge], &skelAnime->jointTable[shinLimbIndex]);
|
||||||
Matrix_Translate(D_80126050[(void)0, gSaveContext.linkAge], 0.0f, 0.0f, MTXMODE_APPLY);
|
Matrix_Translate(D_80126050[gSaveContext.linkAge], 0.0f, 0.0f, MTXMODE_APPLY);
|
||||||
Matrix_MultVec3f(&D_8012602C, &sp98);
|
Matrix_MultVec3f(&D_8012602C, &sp98);
|
||||||
Matrix_MultVec3f(&D_80126070, &footprintPos);
|
Matrix_MultVec3f(&D_80126070, &footprintPos);
|
||||||
Matrix_Pop();
|
Matrix_Pop();
|
||||||
|
@ -1040,16 +1040,16 @@ s32 func_800902F0(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
||||||
if (this->unk_6AD != 2) {
|
if (this->unk_6AD != 2) {
|
||||||
*dList = NULL;
|
*dList = NULL;
|
||||||
} else if (limbIndex == PLAYER_LIMB_L_FOREARM) {
|
} else if (limbIndex == PLAYER_LIMB_L_FOREARM) {
|
||||||
*dList = sArmOutDLs[(void)0, gSaveContext.linkAge];
|
*dList = sArmOutDLs[gSaveContext.linkAge];
|
||||||
} else if (limbIndex == PLAYER_LIMB_L_HAND) {
|
} else if (limbIndex == PLAYER_LIMB_L_HAND) {
|
||||||
*dList = sHandOutDLs[(void)0, gSaveContext.linkAge];
|
*dList = sHandOutDLs[gSaveContext.linkAge];
|
||||||
} else if (limbIndex == PLAYER_LIMB_R_SHOULDER) {
|
} else if (limbIndex == PLAYER_LIMB_R_SHOULDER) {
|
||||||
*dList = sRightShoulderNearDLs[(void)0, gSaveContext.linkAge];
|
*dList = sRightShoulderNearDLs[gSaveContext.linkAge];
|
||||||
} else if (limbIndex == PLAYER_LIMB_R_FOREARM) {
|
} else if (limbIndex == PLAYER_LIMB_R_FOREARM) {
|
||||||
*dList = D_80125F30[(void)0, gSaveContext.linkAge];
|
*dList = D_80125F30[gSaveContext.linkAge];
|
||||||
} else if (limbIndex == PLAYER_LIMB_R_HAND) {
|
} else if (limbIndex == PLAYER_LIMB_R_HAND) {
|
||||||
*dList = Player_HoldsHookshot(this) ? gLinkAdultRightHandHoldingHookshotFarDL
|
*dList = Player_HoldsHookshot(this) ? gLinkAdultRightHandHoldingHookshotFarDL
|
||||||
: sHoldingFirstPersonWeaponDLs[(void)0, gSaveContext.linkAge];
|
: sHoldingFirstPersonWeaponDLs[gSaveContext.linkAge];
|
||||||
} else {
|
} else {
|
||||||
*dList = NULL;
|
*dList = NULL;
|
||||||
}
|
}
|
||||||
|
@ -1333,7 +1333,7 @@ void func_80090D20(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s*
|
||||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_player_lib.c", 2712),
|
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_player_lib.c", 2712),
|
||||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
gDPSetEnvColor(POLY_XLU_DISP++, bottleColor->r, bottleColor->g, bottleColor->b, 0);
|
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[(gSaveContext.linkAge)]);
|
||||||
|
|
||||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_player_lib.c", 2717);
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_player_lib.c", 2717);
|
||||||
}
|
}
|
||||||
|
@ -1464,7 +1464,7 @@ void func_80090D20(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s*
|
||||||
} else if (limbIndex == PLAYER_LIMB_HEAD) {
|
} else if (limbIndex == PLAYER_LIMB_HEAD) {
|
||||||
Matrix_MultVec3f(&D_801260D4, &this->actor.focus.pos);
|
Matrix_MultVec3f(&D_801260D4, &this->actor.focus.pos);
|
||||||
} else {
|
} else {
|
||||||
Vec3f* vec = &D_801261E0[((void)0, gSaveContext.linkAge)];
|
Vec3f* vec = &D_801261E0[(gSaveContext.linkAge)];
|
||||||
|
|
||||||
Actor_SetFeetPos(&this->actor, limbIndex, PLAYER_LIMB_L_FOOT, vec, PLAYER_LIMB_R_FOOT, vec);
|
Actor_SetFeetPos(&this->actor, limbIndex, PLAYER_LIMB_L_FOOT, vec, PLAYER_LIMB_R_FOOT, vec);
|
||||||
}
|
}
|
||||||
|
@ -1472,7 +1472,7 @@ void func_80090D20(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s*
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 func_80091738(GlobalContext* globalCtx, u8* segment, SkelAnime* skelAnime) {
|
u32 func_80091738(GlobalContext* globalCtx, u8* segment, SkelAnime* skelAnime) {
|
||||||
s16 linkObjectId = gLinkObjectIds[(void)0, gSaveContext.linkAge];
|
s16 linkObjectId = gLinkObjectIds[gSaveContext.linkAge];
|
||||||
size_t size;
|
size_t size;
|
||||||
void* ptr;
|
void* ptr;
|
||||||
|
|
||||||
|
@ -1489,7 +1489,7 @@ u32 func_80091738(GlobalContext* globalCtx, u8* segment, SkelAnime* skelAnime) {
|
||||||
gSegments[4] = VIRTUAL_TO_PHYSICAL(segment + 0x3800);
|
gSegments[4] = VIRTUAL_TO_PHYSICAL(segment + 0x3800);
|
||||||
gSegments[6] = VIRTUAL_TO_PHYSICAL(segment + 0x8800);
|
gSegments[6] = VIRTUAL_TO_PHYSICAL(segment + 0x8800);
|
||||||
|
|
||||||
SkelAnime_InitLink(globalCtx, skelAnime, gPlayerSkelHeaders[(void)0, gSaveContext.linkAge], &gPlayerAnim_003238, 9,
|
SkelAnime_InitLink(globalCtx, skelAnime, gPlayerSkelHeaders[gSaveContext.linkAge], &gPlayerAnim_003238, 9,
|
||||||
ptr, ptr, PLAYER_LIMB_MAX);
|
ptr, ptr, PLAYER_LIMB_MAX);
|
||||||
|
|
||||||
return size + 0x8800 + 0x90;
|
return size + 0x8800 + 0x90;
|
||||||
|
@ -1503,6 +1503,7 @@ s32 func_80091880(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
||||||
s32 type;
|
s32 type;
|
||||||
s32 dListOffset = 0;
|
s32 dListOffset = 0;
|
||||||
Gfx** dLists;
|
Gfx** dLists;
|
||||||
|
size_t ptrSize = sizeof(uint32_t);
|
||||||
|
|
||||||
if ((modelGroup == 2) && !LINK_IS_ADULT && (ptr[1] == 2)) {
|
if ((modelGroup == 2) && !LINK_IS_ADULT && (ptr[1] == 2)) {
|
||||||
modelGroup = 1;
|
modelGroup = 1;
|
||||||
|
@ -1522,12 +1523,12 @@ s32 func_80091880(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
||||||
type = gPlayerModelTypes[modelGroup][2];
|
type = gPlayerModelTypes[modelGroup][2];
|
||||||
D_80160018 = type;
|
D_80160018 = type;
|
||||||
if (type == 10) {
|
if (type == 10) {
|
||||||
dListOffset = ptr[1] * sizeof(uintptr_t);
|
dListOffset = ptr[1] * ptrSize;
|
||||||
}
|
}
|
||||||
} else if (limbIndex == PLAYER_LIMB_SHEATH) {
|
} else if (limbIndex == PLAYER_LIMB_SHEATH) {
|
||||||
type = gPlayerModelTypes[modelGroup][3];
|
type = gPlayerModelTypes[modelGroup][3];
|
||||||
if ((type == 18) || (type == 19)) {
|
if ((type == 18) || (type == 19)) {
|
||||||
dListOffset = ptr[1] * sizeof(uintptr_t);
|
dListOffset = ptr[1] * ptrSize;
|
||||||
} else if (type == 16 && CVar_GetS32("gPauseLiveLink", 0)) {
|
} else if (type == 16 && CVar_GetS32("gPauseLiveLink", 0)) {
|
||||||
//if (ptr[0] == 1)
|
//if (ptr[0] == 1)
|
||||||
//dListOffset = 4;
|
//dListOffset = 4;
|
||||||
|
@ -1538,7 +1539,7 @@ s32 func_80091880(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
dLists = &sPlayerDListGroups[type][(void)0, gSaveContext.linkAge];
|
dLists = &sPlayerDListGroups[type][gSaveContext.linkAge];
|
||||||
*dList = dLists[dListOffset];
|
*dList = dLists[dListOffset];
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue