diff options
| author | Anghelo Carvajal <angheloalf95@gmail.com> | 2022-11-06 20:49:04 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-06 20:49:04 -0300 |
| commit | a8c7a5bb8940e7890c44c1a2d95fc3bfc34750b6 (patch) | |
| tree | 7b6e084f1a6ac64d6ccd112e1217cdf14e7641cc /src/code | |
| parent | ac0ef7823e5e54b8267d26ce48eb1b6b1b613d13 (diff) | |
Player preparation 1 (#1058)
* Bring over new stuff from player.h
* door type
* PlayerModelGroup
* CSMODE
* PLAYER_PARAMS
* functions.h
* item.h
* a
* format
* ED
* stuff
* Magic_Reset
* bodyPartsPos
* format
* review
Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
* format
* params and fixes
* GetItemId
* yes
* 2
* warnning
* closestSecretDistSq
Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>
* Name the other PLAYER_DOORTYPE
* review
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
Co-authored-by: fig02 <fig02srl@gmail.com>
* remove pyelftools
* PlayerActionParam Player_GetExchangeItemId
* Update include/z64animation.h
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
* bss
* bss
* fix linkanimation warning
* bss
* bss
* format
* fix
* namefixer
* format
* fix
* fixes
* namefixer
* bss
* fixes
Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
Co-authored-by: fig02 <fig02srl@gmail.com>
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/sys_matrix.c | 2 | ||||
| -rw-r--r-- | src/code/z_actor.c | 81 | ||||
| -rw-r--r-- | src/code/z_actor_dlftbls.c | 6 | ||||
| -rw-r--r-- | src/code/z_camera.c | 2 | ||||
| -rw-r--r-- | src/code/z_eff_tire_mark.c | 14 | ||||
| -rw-r--r-- | src/code/z_player_lib.c | 83 | ||||
| -rw-r--r-- | src/code/z_quake.c | 6 | ||||
| -rw-r--r-- | src/code/z_scene.c | 9 | ||||
| -rw-r--r-- | src/code/z_skelanime.c | 22 | ||||
| -rw-r--r-- | src/code/z_sram_NES.c | 6 |
10 files changed, 116 insertions, 115 deletions
diff --git a/src/code/sys_matrix.c b/src/code/sys_matrix.c index 4e517c810..f2ed19c38 100644 --- a/src/code/sys_matrix.c +++ b/src/code/sys_matrix.c @@ -38,7 +38,7 @@ * Throughout this file, `mode` indicates whether to multiply the matrix on top of the stack by the new construction * (APPLY), or to just overwrite it (NEW). */ -#include "prevent_bss_reordering.h" + #include "global.h" /* data */ diff --git a/src/code/z_actor.c b/src/code/z_actor.c index a5d72e4a1..b397e13b6 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -520,7 +520,7 @@ void Actor_DrawZTarget(TargetContext* targetCtx, PlayState* play) { Target_SetPos(targetCtx, targetCtx->unk4C, projectedPos.x, projectedPos.y, projectedPos.z); - if ((!(player->stateFlags1 & PLAYER_STATE1_40)) || (actor != player->unk_730)) { + if ((!(player->stateFlags1 & PLAYER_STATE1_40)) || (actor != player->targetedActor)) { OVERLAY_DISP = Gfx_CallSetupDL(OVERLAY_DISP, 0x39); for (spB0 = 0, spAC = targetCtx->unk4C; spB0 < spB8; spB0++, spAC = (spAC + 1) % 3) { @@ -589,7 +589,7 @@ void func_800B5814(TargetContext* targetCtx, Player* player, Actor* actor, GameS Vec3f projectedPos; f32 invW; - if ((player->unk_730 != 0) && (player->unk_AE3[player->unk_ADE] == 2)) { + if ((player->targetedActor != NULL) && (player->unk_AE3[player->unk_ADE] == 2)) { targetCtx->unk_94 = NULL; } else { func_800BB8EC(gameState, &play->actorCtx, &sp68, &D_801ED920, player); @@ -1328,7 +1328,7 @@ s32 func_800B7118(Player* player) { } s32 func_800B7128(Player* player) { - return func_800B7118(player) && player->unk_ACC; + return func_800B7118(player) && (player->unk_ACC != 0); } s32 func_800B715C(PlayState* play) { @@ -1354,7 +1354,7 @@ void Actor_MountHorse(PlayState* play, Player* player, Actor* horse) { } s32 func_800B7200(Player* player) { - return (player->stateFlags1 & (PLAYER_STATE1_20000000 | PLAYER_STATE1_80)) || (player->csMode != 0); + return (player->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_20000000)) || (player->csMode != PLAYER_CSMODE_0); } void func_800B722C(GameState* gameState, Player* player) { @@ -1364,7 +1364,7 @@ void func_800B722C(GameState* gameState, Player* player) { s32 func_800B724C(PlayState* play, Actor* actor, u8 csMode) { Player* player = GET_PLAYER(play); - if ((player->csMode == 5) || ((csMode == 6) && (player->csMode == 0))) { + if ((player->csMode == PLAYER_CSMODE_5) || ((csMode == PLAYER_CSMODE_6) && (player->csMode == PLAYER_CSMODE_0))) { return false; } @@ -1374,7 +1374,7 @@ s32 func_800B724C(PlayState* play, Actor* actor, u8 csMode) { return true; } -u32 func_800B7298(PlayState* play, Actor* actor, u8 csMode) { +s32 func_800B7298(PlayState* play, Actor* actor, u8 csMode) { Player* player = GET_PLAYER(play); if (func_800B724C(play, actor, csMode)) { @@ -1489,11 +1489,12 @@ s32 Actor_ActorAIsFacingAndNearActorB(Actor* actorA, Actor* actorB, f32 range, s /* Start of BgCheck related section */ -void func_800B75A0(CollisionPoly* poly, Vec3f* normal, s16* azimuth) { - normal->x = COLPOLY_GET_NORMAL(poly->normal.x); - normal->y = COLPOLY_GET_NORMAL(poly->normal.y); - normal->z = COLPOLY_GET_NORMAL(poly->normal.z); - *azimuth = Math_FAtan2F(normal->z, normal->x); +void Actor_GetSlopeDirection(CollisionPoly* floorPoly, Vec3f* slopeNormal, s16* downwardSlopeYaw) { + slopeNormal->x = COLPOLY_GET_NORMAL(floorPoly->normal.x); + slopeNormal->y = COLPOLY_GET_NORMAL(floorPoly->normal.y); + slopeNormal->z = COLPOLY_GET_NORMAL(floorPoly->normal.z); + + *downwardSlopeYaw = Math_FAtan2F(slopeNormal->z, slopeNormal->x); } s32 func_800B761C(Actor* actor, f32 arg1, s32 arg2) { @@ -1783,7 +1784,7 @@ f32 func_800B82EC(Actor* actor, Player* player, s16 angle) { s16 temp_v0 = BINANG_SUB(BINANG_SUB(actor->yawTowardsPlayer, 0x8000), angle); s16 yaw = ABS_ALT(temp_v0); - if (player->unk_730 != NULL) { + if (player->targetedActor != NULL) { if ((yaw > 0x4000) || ((actor->flags & ACTOR_FLAG_8000000))) { return FLT_MAX; } @@ -1821,7 +1822,7 @@ s32 func_800B83F8(Actor* actor, Player* player, s32 flag) { s16 phi_v1 = ABS_ALT(yaw); f32 dist; - if ((player->unk_730 == NULL) && (phi_v1 >= 0x2AAB)) { + if ((player->targetedActor == NULL) && (phi_v1 >= 0x2AAB)) { dist = FLT_MAX; } else { dist = actor->xyzDistToPlayerSq; @@ -1853,13 +1854,13 @@ s32 func_800B8500(Actor* actor, PlayState* play, f32 xzRange, f32 yRange, Player if ((player->actor.flags & ACTOR_FLAG_100) || ((exchangeItemId > PLAYER_AP_NONE) && Player_InCsMode(play)) || (!actor->isTargeted && - ((fabsf(actor->playerHeightRel) > fabsf(yRange)) || ((actor->xzDistToPlayer > player->targetActorDistance)) || + ((fabsf(actor->playerHeightRel) > fabsf(yRange)) || (actor->xzDistToPlayer > player->talkActorDistance) || (xzRange < actor->xzDistToPlayer)))) { return false; } - player->targetActor = actor; - player->targetActorDistance = actor->xzDistToPlayer; + player->talkActor = actor; + player->talkActorDistance = actor->xzDistToPlayer; player->exchangeItemId = exchangeItemId; ActorCutscene_SetIntentToPlay(0x7C); @@ -1894,21 +1895,21 @@ s32 Actor_TextboxIsClosing(Actor* actor, PlayState* play) { * Fails if Player is not already focussing on an actor or in a talking state */ s32 Actor_ChangeFocus(Actor* actor1, PlayState* play, Actor* actor2) { - Actor* targetActor; + Actor* talkActor; Player* player = GET_PLAYER(play); - targetActor = player->targetActor; + talkActor = player->talkActor; - if ((player->actor.flags & ACTOR_FLAG_100) && (targetActor != NULL)) { - player->targetActor = actor2; - player->unk_730 = actor2; + if ((player->actor.flags & ACTOR_FLAG_100) && (talkActor != NULL)) { + player->talkActor = actor2; + player->targetedActor = actor2; return true; } return false; } -s32 Player_GetExchangeItemId(PlayState* play) { +PlayerActionParam Player_GetExchangeItemId(PlayState* play) { Player* player = GET_PLAYER(play); return player->exchangeItemId; @@ -1992,7 +1993,7 @@ s32 Actor_HasParent(Actor* actor, PlayState* play) { * GI_NONE is usually used as a special case to lift an actor * GI_MAX is usually used to catch an actor in a bottle */ -s32 Actor_PickUp(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32 yRange) { +s32 Actor_PickUp(Actor* actor, PlayState* play, GetItemId getItemId, f32 xzRange, f32 yRange) { Player* player = GET_PLAYER(play); if (!(player->stateFlags1 & @@ -2002,7 +2003,7 @@ s32 Actor_PickUp(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32 if ((actor->xzDistToPlayer <= xzRange) && (fabsf(actor->playerHeightRel) <= fabsf(yRange))) { if ((getItemId == GI_MASK_CIRCUS_LEADER || getItemId == GI_PENDANT_OF_MEMORIES || getItemId == GI_DEED_LAND || - ((player->heldActor != NULL || actor == player->targetActor) && + ((player->heldActor != NULL || actor == player->talkActor) && (getItemId > GI_NONE && getItemId < GI_MAX))) || !(player->stateFlags1 & (PLAYER_STATE1_800 | PLAYER_STATE1_20000000))) { s16 yawDiff = actor->yawTowardsPlayer - player->actor.shape.rot.y; @@ -2026,7 +2027,7 @@ s32 Actor_PickUp(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32 return false; } -s32 Actor_PickUpNearby(Actor* actor, PlayState* play, s32 getItemId) { +s32 Actor_PickUpNearby(Actor* actor, PlayState* play, GetItemId getItemId) { return Actor_PickUp(actor, play, getItemId, 50.0f, 10.0f); } @@ -2034,7 +2035,7 @@ s32 Actor_LiftActor(Actor* actor, PlayState* play) { return Actor_PickUpNearby(actor, play, GI_NONE); } -s32 Actor_PickUpFar(Actor* actor, PlayState* play, s32 getItemId) { +s32 Actor_PickUpFar(Actor* actor, PlayState* play, GetItemId getItemId) { return Actor_PickUp(actor, play, getItemId, 9999.9f, 9999.9f); } @@ -2061,11 +2062,15 @@ void func_800B8C20(Actor* actorA, Actor* actorB, PlayState* play) { actorA->parent = NULL; } +/** + * Sets closest secret distance to the distance to the actor. Calling this function on `actor` is the way to make it a + * 'secret' for that update cycle, i.e. something that the controller will rumble for. + */ void func_800B8C50(Actor* actor, PlayState* play) { Player* player = GET_PLAYER(play); - if (actor->xyzDistToPlayerSq < player->unk_AA0) { - player->unk_AA0 = actor->xyzDistToPlayerSq; + if (actor->xyzDistToPlayerSq < player->closestSecretDistSq) { + player->closestSecretDistSq = actor->xyzDistToPlayerSq; } } @@ -2207,7 +2212,7 @@ void func_800B9098(Actor* actor) { actor->audioFlags |= 0x40; } -s32 func_800B90AC(PlayState* play, Actor* actor, CollisionPoly* polygon, s32 bgId, s32 arg4) { +s32 func_800B90AC(PlayState* play, Actor* actor, CollisionPoly* polygon, s32 bgId, Vec3f* arg4) { if (func_800C99D4(&play->colCtx, polygon, bgId) == 8) { return true; } @@ -2368,13 +2373,13 @@ Actor* Actor_UpdateActor(UpdateActor_Params* params) { actor->flags &= ~ACTOR_FLAG_1000000; if ((DECR(actor->freezeTimer) == 0) && (actor->flags & params->unk_18)) { - if (actor == params->player->unk_730) { + if (actor == params->player->targetedActor) { actor->isTargeted = true; } else { actor->isTargeted = false; } - if ((actor->targetPriority != 0) && (params->player->unk_730 == 0)) { + if ((actor->targetPriority != 0) && (params->player->targetedActor == NULL)) { actor->targetPriority = 0; } @@ -2461,7 +2466,7 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { } if ((player->stateFlags1 & PLAYER_STATE1_40) && ((player->actor.textId & 0xFF00) != 0x1900)) { - params.unk10 = player->targetActor; + params.unk10 = player->talkActor; } else { params.unk10 = NULL; } @@ -2499,7 +2504,7 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { } } - actor = player->unk_730; + actor = player->targetedActor; if ((actor != NULL) && (actor->update == NULL)) { actor = NULL; func_80123DA4(player); @@ -3280,9 +3285,9 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) { Actor* newHead; ActorOverlay* overlayEntry = actor->overlayEntry; - if ((player != NULL) && (actor == player->unk_730)) { + if ((player != NULL) && (actor == player->targetedActor)) { func_80123DA4(player); - Camera_ChangeMode(Play_GetCamera(play, Play_GetActiveCamId(play)), 0); + Camera_ChangeMode(Play_GetCamera(play, Play_GetActiveCamId(play)), CAM_MODE_NORMAL); } if (actor == actorCtx->targetContext.arrowPointedActor) { @@ -3323,7 +3328,7 @@ s32 func_800BB59C(PlayState* play, Actor* actor) { void func_800BB604(GameState* gameState, ActorContext* actorCtx, Player* player, s32 actorCategory) { PlayState* play = (PlayState*)gameState; f32 temp_f0_2; - Actor* sp8C; + Actor* targetedActor; Actor* actor; s32 phi_s2; CollisionPoly* sp80; @@ -3332,7 +3337,7 @@ void func_800BB604(GameState* gameState, ActorContext* actorCtx, Player* player, s32 phi_s2_2; actor = actorCtx->actorLists[actorCategory].first; - sp8C = player->unk_730; + targetedActor = player->targetedActor; while (actor != NULL) { if ((actor->update != NULL) && ((Player*)actor != player)) { if (actor->flags & (ACTOR_FLAG_40000000 | ACTOR_FLAG_1)) { @@ -3343,7 +3348,7 @@ void func_800BB604(GameState* gameState, ActorContext* actorCtx, Player* player, } } - if ((actor != sp8C) || (actor->flags & ACTOR_FLAG_80000)) { + if ((actor != targetedActor) || (actor->flags & ACTOR_FLAG_80000)) { temp_f0_2 = func_800B82EC(actor, player, D_801ED8DC); phi_s2_2 = (actor->flags & 1) != 0; if (phi_s2_2) { diff --git a/src/code/z_actor_dlftbls.c b/src/code/z_actor_dlftbls.c index 02b7a8b5d..5d7f30ea8 100644 --- a/src/code/z_actor_dlftbls.c +++ b/src/code/z_actor_dlftbls.c @@ -36,7 +36,7 @@ ActorOverlay gActorOverlayTable[] = { #undef DEFINE_ACTOR_INTERNAL #undef DEFINE_ACTOR_UNSET -s32 gMaxActorId = 0; +ActorId gMaxActorId = 0; FaultClient D_801ED930; FaultAddrConvClient D_801ED940; @@ -44,7 +44,7 @@ FaultAddrConvClient D_801ED940; void ActorOverlayTable_FaultPrint(void* arg0, void* arg1) { ActorOverlay* overlayEntry; u32 overlaySize; - s32 i; + ActorId i; FaultDrawer_SetCharPad(-2, 0); @@ -63,7 +63,7 @@ void ActorOverlayTable_FaultPrint(void* arg0, void* arg1) { void* ActorOverlayTable_FaultAddrConv(void* arg0, void* arg1) { u8* ptr = arg0; ActorOverlay* overlayEntry = &gActorOverlayTable[0]; - s32 i; + ActorId i; u8* ramStart; u8* ramEnd; size_t size; diff --git a/src/code/z_camera.c b/src/code/z_camera.c index b4b6e5785..3a5cde395 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -1,4 +1,4 @@ -#include "prevent_bss_reordering.h" +//#include "prevent_bss_reordering.h" #include "global.h" #include "z64quake.h" #include "z64shrink_window.h" diff --git a/src/code/z_eff_tire_mark.c b/src/code/z_eff_tire_mark.c index 75b0ecd03..f19eb1289 100644 --- a/src/code/z_eff_tire_mark.c +++ b/src/code/z_eff_tire_mark.c @@ -1,8 +1,8 @@ #include "global.h" #include "objects/gameplay_keep/gameplay_keep.h" -void func_800AE930(CollisionContext* colCtx, EffectTireMark* this, Vec3f* pos, f32 arg3, s16 arg4, - CollisionPoly* colPoly, s32 arg6) { +void func_800AE930(CollisionContext* colCtx, EffectTireMark* this, Vec3f* pos, f32 arg3, s16 angle, + CollisionPoly* colPoly, s32 bgId) { Vec3s spB8; Vec3s spB0; EffectTireMarkElement* spAC; @@ -11,17 +11,17 @@ void func_800AE930(CollisionContext* colCtx, EffectTireMark* this, Vec3f* pos, f u32 spA0; Vec3s* vtxList = colCtx->colHeader->vtxList; - if ((arg6 != 50) || (this->numElements >= (ARRAY_COUNT(this->elements) - 1)) || (colPoly == NULL)) { + if ((bgId != 50) || (this->numElements >= (ARRAY_COUNT(this->elements) - 1)) || (colPoly == NULL)) { func_800AEF44(this); return; } - spB8.x = (Math_SinS(arg4 - 0x4000) * arg3) + pos->x; - spB8.z = (Math_CosS(arg4 - 0x4000) * arg3) + pos->z; + spB8.x = (Math_SinS(angle - 0x4000) * arg3) + pos->x; + spB8.z = (Math_CosS(angle - 0x4000) * arg3) + pos->z; spB8.y = func_800BFD84(colPoly, spB8.x, spB8.z) + 2.0f; - spB0.x = (Math_SinS(arg4 + 0x4000) * arg3) + pos->x; - spB0.z = (Math_CosS(arg4 + 0x4000) * arg3) + pos->z; + spB0.x = (Math_SinS(angle + 0x4000) * arg3) + pos->x; + spB0.z = (Math_CosS(angle + 0x4000) * arg3) + pos->z; spB0.y = func_800BFD84(colPoly, spB0.x, spB0.z) + 2.0f; spAC = &this->elements[this->numElements - 1]; diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index f773e6ff2..aca8c5c55 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -77,7 +77,7 @@ void func_80127B64(struct_801F58B0 arg0[], s32 count, Vec3f* arg2); s32 func_801226E0(PlayState* play, s32 arg1) { if (arg1 == 0) { - Play_SetupRespawnPoint(&play->state, RESPAWN_MODE_DOWN, 0xBFF); + Play_SetupRespawnPoint(&play->state, RESPAWN_MODE_DOWN, PLAYER_PARAMS(0xFF, PLAYER_INITMODE_B)); if (play->sceneId == SCENE_KAKUSIANA) { return 1; } @@ -148,7 +148,7 @@ void func_801229A0(PlayState* play, Player* player) { CLOSE_DISPS(play->state.gfxCtx); } -void func_801229EC(UNK_TYPE arg0, UNK_TYPE arg1) { +void func_801229EC(Actor* thisx, PlayState* play) { } s16 sMaskObjectIds[PLAYER_MASK_MAX - 1] = { @@ -185,7 +185,8 @@ void func_801229FC(Player* player) { s32 i; for (i = 0; i < ARRAY_COUNT(D_801F58B0); i++) { - func_80127B64(D_801F58B0[i], ARRAY_COUNT(D_801F58B0[i]), &player->bodyPartsPos[7]); + func_80127B64(D_801F58B0[i], ARRAY_COUNT(D_801F58B0[i]), + &player->bodyPartsPos[PLAYER_BODYPART_HEAD]); } } } @@ -328,7 +329,7 @@ void func_80122F28(Player* player) { (!(player->stateFlags1 & (PLAYER_STATE1_400 | PLAYER_STATE1_800 | PLAYER_STATE1_200000 | PLAYER_STATE1_800000 | PLAYER_STATE1_20000000))) && (!(player->stateFlags2 & PLAYER_STATE2_1))) { - if (player->doorType < 0) { + if (player->doorType <= PLAYER_DOORTYPE_TALKING) { ActorCutscene_SetIntentToPlay(0x7C); } else { ActorCutscene_SetIntentToPlay(0x7D); @@ -354,27 +355,27 @@ void func_8012300C(PlayState* play, s32 arg1) { player->unk_B2B = arg1; } -void func_8012301C(Player* player, PlayState* play2) { +void func_8012301C(Actor* thisx, PlayState* play2) { PlayState* play = play2; - s32 pad; + Player* this = (Player*)thisx; - player->unk_AE7++; + this->unk_AE7++; - if (player->unk_AE7 == 2) { - s16 objectId = gPlayerFormObjectIndices[((void)0, gSaveContext.save.playerForm)]; + if (this->unk_AE7 == 2) { + s16 objectId = gPlayerFormObjectIndices[GET_PLAYER_FORM]; gActorOverlayTable[ACTOR_PLAYER].initInfo->objectId = objectId; - func_8012F73C(&play->objectCtx, player->actor.objBankIndex, objectId); - player->actor.objBankIndex = Object_GetIndex(&play->objectCtx, GAMEPLAY_KEEP); - } else if (player->unk_AE7 >= 3) { + func_8012F73C(&play->objectCtx, this->actor.objBankIndex, objectId); + this->actor.objBankIndex = Object_GetIndex(&play->objectCtx, GAMEPLAY_KEEP); + } else if (this->unk_AE7 >= 3) { s32 objBankIndex = Object_GetIndex(&play->objectCtx, gActorOverlayTable[ACTOR_PLAYER].initInfo->objectId); if (Object_IsLoaded(&play->objectCtx, objBankIndex)) { - player->actor.objBankIndex = objBankIndex; - player->actor.shape.rot.z = gSaveContext.save.playerForm + 1; - player->actor.init = PlayerCall_Init; - player->actor.update = PlayerCall_Update; - player->actor.draw = PlayerCall_Draw; + this->actor.objBankIndex = objBankIndex; + this->actor.shape.rot.z = GET_PLAYER_FORM + 1; + this->actor.init = PlayerCall_Init; + this->actor.update = PlayerCall_Update; + this->actor.draw = PlayerCall_Draw; gSaveContext.save.equippedMask = PLAYER_MASK_NONE; } } @@ -456,7 +457,7 @@ void func_80123140(PlayState* play, Player* player) { s32 Player_InBlockingCsMode(PlayState* play, Player* player) { return (player->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_200 | PLAYER_STATE1_20000000)) || - (player->csMode != 0) || (play->transitionTrigger == TRANS_TRIGGER_START) || + (player->csMode != PLAYER_CSMODE_0) || (play->transitionTrigger == TRANS_TRIGGER_START) || (play->transitionMode != TRANS_MODE_OFF) || (player->stateFlags1 & PLAYER_STATE1_1) || (player->stateFlags3 & PLAYER_STATE3_80) || (play->actorCtx.unk268 != 0); } @@ -480,7 +481,7 @@ s32 func_80123448(PlayState* play) { Player* player = GET_PLAYER(play); return (player->stateFlags1 & PLAYER_STATE1_400000) && - (player->transformation != PLAYER_FORM_HUMAN || (!func_80123434(player) && player->unk_730 == NULL)); + (player->transformation != PLAYER_FORM_HUMAN || (!func_80123434(player) && player->targetedActor == NULL)); } // TODO: Player_IsGoronOrDeku is a temporary name until we have more info on this function. @@ -536,7 +537,7 @@ ItemId func_8012364C(PlayState* play, Player* player, s32 arg2) { } if (arg2 == 0) { - s32 item = Inventory_GetBtnBItem(play); + ItemId item = Inventory_GetBtnBItem(play); if (item >= ITEM_FD) { return item; @@ -558,27 +559,21 @@ ItemId func_8012364C(PlayState* play, Player* player, s32 arg2) { } if (arg2 == 1) { - return (gSaveContext.buttonStatus[EQUIP_SLOT_C_LEFT] != BTN_DISABLED) ? BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_LEFT) - : (gSaveContext.hudVisibility == HUD_VISIBILITY_A_B_C) ? BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_LEFT) - : ITEM_NONE; + return C_BTN_ITEM(EQUIP_SLOT_C_LEFT); } if (arg2 == 2) { - return (gSaveContext.buttonStatus[EQUIP_SLOT_C_DOWN] != BTN_DISABLED) ? BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN) - : (gSaveContext.hudVisibility == HUD_VISIBILITY_A_B_C) ? BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN) - : ITEM_NONE; + return C_BTN_ITEM(EQUIP_SLOT_C_DOWN); } - return (gSaveContext.buttonStatus[EQUIP_SLOT_C_RIGHT] != BTN_DISABLED) ? BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT) - : (gSaveContext.hudVisibility == HUD_VISIBILITY_A_B_C) ? BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT) - : ITEM_NONE; + return C_BTN_ITEM(EQUIP_SLOT_C_RIGHT); } u16 sCItemButtons[] = { BTN_CLEFT, BTN_CDOWN, BTN_CRIGHT }; -s32 func_80123810(PlayState* play) { +PlayerActionParam func_80123810(PlayState* play) { Player* player = GET_PLAYER(play); - s32 temp_v0; + s32 actionParam; ItemId itemId; s32 i; @@ -602,19 +597,19 @@ s32 func_80123810(PlayState* play) { play->interfaceCtx.unk_224 = 0; Interface_SetHudVisibility(play->msgCtx.unk_120BC); - if ((itemId >= ITEM_FD) || (temp_v0 = play->unk_18794(play, player, itemId, i), (temp_v0 < 0))) { + if ((itemId >= ITEM_FD) || ((actionParam = play->unk_18794(play, player, itemId)) <= PLAYER_AP_MINUS1)) { play_sound(NA_SE_SY_ERROR); - return -1; + return PLAYER_AP_MINUS1; } else { s32 pad; player->heldItemButton = i; - return temp_v0; + return actionParam; } } } - return 0; + return PLAYER_AP_NONE; } // Used to map action params to model groups @@ -1249,7 +1244,7 @@ void func_80123C58(Player* player) { } void Player_SetEquipmentData(PlayState* play, Player* player) { - if (player->csMode != 0x86) { + if (player->csMode != PLAYER_CSMODE_134) { player->currentShield = GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SHIELD); if ((player->transformation != PLAYER_FORM_ZORA) || (((player->currentBoots != PLAYER_BOOTS_ZORA_LAND)) && (player->currentBoots != PLAYER_BOOTS_ZORA_UNDERWATER))) { @@ -1263,7 +1258,7 @@ void Player_SetEquipmentData(PlayState* play, Player* player) { } } -void func_80123D50(PlayState* play, Player* player, ItemId itemId, PlayerActionParam actionParam) { +void Player_UpdateBottleHeld(PlayState* play, Player* player, ItemId itemId, PlayerActionParam actionParam) { Inventory_UpdateBottleItem(play, itemId, player->heldItemButton); if (itemId != ITEM_BOTTLE) { @@ -1275,7 +1270,7 @@ void func_80123D50(PlayState* play, Player* player, ItemId itemId, PlayerActionP } void func_80123DA4(Player* player) { - player->unk_730 = NULL; + player->targetedActor = NULL; player->stateFlags2 &= ~PLAYER_STATE2_2000; } @@ -1300,7 +1295,7 @@ void func_80123E90(PlayState* play, Actor* actor) { Player* player = GET_PLAYER(play); func_80123DC0(player); - player->unk_730 = actor; + player->targetedActor = actor; player->unk_A78 = actor; player->stateFlags1 |= PLAYER_STATE1_10000; Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, actor); @@ -1333,7 +1328,7 @@ s32 Player_IsBurningStickInRange(PlayState* play, Vec3f* pos, f32 xzRange, f32 y } u8 Player_GetStrength(void) { - return sPlayerStrengths[(void)0, gSaveContext.save.playerForm]; + return sPlayerStrengths[GET_PLAYER_FORM]; } u8 Player_GetMask(PlayState* play) { @@ -2034,9 +2029,9 @@ void Player_DrawGetItem(PlayState* play, Player* player) { if (player->stateFlags1 & PLAYER_STATE1_400) { refPos.y = player->actor.world.pos.y + 30.0f; } else { - refPos.x = player->bodyPartsPos[0xC].x; - refPos.y = player->bodyPartsPos[0xC].y - 6.0f; - refPos.z = player->bodyPartsPos[0xC].z; + refPos.x = player->bodyPartsPos[PLAYER_BODYPART_LEFT_HAND].x; + refPos.y = player->bodyPartsPos[PLAYER_BODYPART_LEFT_HAND].y - 6.0f; + refPos.z = player->bodyPartsPos[PLAYER_BODYPART_LEFT_HAND].z; } } else { refPos.y = player->actor.world.pos.y + 28.0f; @@ -2045,7 +2040,7 @@ void Player_DrawGetItem(PlayState* play, Player* player) { Math_Vec3f_Copy(&refPos, &D_801F59E8); } - drawIdPlusOne = ABS_ALT(player->unk_B2A); + drawIdPlusOne = ABS_ALT(player->getItemDrawId); Player_DrawGetItemImpl(play, player, &refPos, drawIdPlusOne); } } diff --git a/src/code/z_quake.c b/src/code/z_quake.c index 964935ea1..b57012ce1 100644 --- a/src/code/z_quake.c +++ b/src/code/z_quake.c @@ -738,10 +738,10 @@ void Distortion_Update(void) { break; } - if (player->unk_B88 < 0) { - xyScaleFactor = (player->unk_B88 - (f32)0x4000) / (f32)0xC000; + if (player->unk_B86[1] < 0) { + xyScaleFactor = (player->unk_B86[1] - (f32)0x4000) / (f32)0xC000; } else { - xyScaleFactor = (player->unk_B88 + (f32)0x4000) / (f32)0xC000; + xyScaleFactor = (player->unk_B86[1] + (f32)0x4000) / (f32)0xC000; } zScaleFactor = -xyScaleFactor; speedScaleFactor = 1.0f; diff --git a/src/code/z_scene.c b/src/code/z_scene.c index 7cb180b80..1a08cad0e 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -148,8 +148,9 @@ void Scene_HeaderCmdSpawnList(PlayState* play, SceneCmd* cmd) { play->linkActorEntry = (ActorEntry*)Lib_SegmentedToVirtual(cmd->spawnList.segment) + play->setupEntranceList[play->curSpawn].spawn; - if ((play->linkActorEntry->params & 0x0F00) >> 8 == 0x0C || - (gSaveContext.respawnFlag == 0x02 && gSaveContext.respawn[RESPAWN_MODE_RETURN].playerParams == 0x0CFF)) { + if ((PLAYER_GET_INITMODE(play->linkActorEntry) == PLAYER_INITMODE_TELESCOPE) || + ((gSaveContext.respawnFlag == 0x02) && + (gSaveContext.respawn[RESPAWN_MODE_RETURN].playerParams == PLAYER_PARAMS(0xFF, PLAYER_INITMODE_TELESCOPE)))) { // Skull Kid Object Object_Spawn(&play->objectCtx, OBJECT_STK); return; @@ -159,7 +160,7 @@ void Scene_HeaderCmdSpawnList(PlayState* play, SceneCmd* cmd) { nextObject = play->objectCtx.status[play->objectCtx.num].segment; play->objectCtx.num = loadedCount; play->objectCtx.spawnedObjectCount = loadedCount; - playerObjectId = gPlayerFormObjectIndices[(void)0, gSaveContext.save.playerForm]; + playerObjectId = gPlayerFormObjectIndices[GET_PLAYER_FORM]; gActorOverlayTable[0].initInfo->objectId = playerObjectId; Object_Spawn(&play->objectCtx, playerObjectId); @@ -591,7 +592,7 @@ s32 Scene_ProcessHeader(PlayState* play, SceneCmd* header) { } /** - * Creates an entrance from the scene, spawn, and lyaer. + * Creates an entrance from the scene, spawn, and layer. */ u16 Entrance_Create(s32 scene, s32 spawn, s32 layer) { return (scene << 9) | (spawn << 4) | layer; diff --git a/src/code/z_skelanime.c b/src/code/z_skelanime.c index e14956905..318f49809 100644 --- a/src/code/z_skelanime.c +++ b/src/code/z_skelanime.c @@ -996,7 +996,7 @@ void AnimationContext_SetLoadFrame(PlayState* play, LinkAnimationHeader* animati if (entry != NULL) { LinkAnimationHeader* linkAnimHeader = Lib_SegmentedToVirtual(animation); - u32 ram = frameTable; + uintptr_t ram = frameTable; osCreateMesgQueue(&entry->data.load.msgQueue, &entry->data.load.msg, 1); DmaMgr_SendRequestImpl(&entry->data.load.req, ram, @@ -1187,7 +1187,7 @@ void AnimationContext_Update(PlayState* play, AnimationContext* animationCtx) { * tables if not given. */ void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg, - LinkAnimationHeader* animation, s32 flags, Vec3s* jointTable, Vec3s* morphTable, + LinkAnimationHeader* animation, s32 flags, void* jointTableBuffer, void* morphTableBuffer, s32 limbBufCount) { FlexSkeletonHeader* skeletonHeader; s32 headerJointCount; @@ -1216,12 +1216,12 @@ void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeade allocSize += 2; } - if (jointTable == NULL) { + if (jointTableBuffer == NULL) { skelAnime->jointTable = ZeldaArena_Malloc(allocSize); skelAnime->morphTable = ZeldaArena_Malloc(allocSize); } else { - skelAnime->jointTable = (Vec3s*)ALIGN16((u32)jointTable); - skelAnime->morphTable = (Vec3s*)ALIGN16((u32)morphTable); + skelAnime->jointTable = (void*)ALIGN16((uintptr_t)jointTableBuffer); + skelAnime->morphTable = (void*)ALIGN16((uintptr_t)morphTableBuffer); } LinkAnimation_Change(play, skelAnime, animation, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f); @@ -1443,12 +1443,12 @@ void LinkAnimation_InterpJointMorph(PlayState* play, SkelAnime* skelAnime, f32 w * Requests loading frame data from the Link animations and blending them, placing the result in jointTable */ void LinkAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation1, f32 frame1, - LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, Vec3s* blendTable) { - Vec3s* alignedBlendTable; + LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer) { + void* alignedBlendTable; AnimationContext_SetLoadFrame(play, animation1, (s32)frame1, skelAnime->limbCount, skelAnime->jointTable); - alignedBlendTable = (Vec3s*)ALIGN16((u32)blendTable); + alignedBlendTable = (void*)ALIGN16((uintptr_t)blendTableBuffer); AnimationContext_SetLoadFrame(play, animation2, (s32)frame2, skelAnime->limbCount, alignedBlendTable); AnimationContext_SetInterp(play, skelAnime->limbCount, skelAnime->jointTable, alignedBlendTable, blendWeight); @@ -1458,12 +1458,12 @@ void LinkAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, LinkAnima * Requests loading frame data from the Link animations and blending them, placing the result in morphTable */ void LinkAnimation_BlendToMorph(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation1, f32 frame1, - LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, Vec3s* blendTable) { - Vec3s* alignedBlendTable; + LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer) { + void* alignedBlendTable; AnimationContext_SetLoadFrame(play, animation1, (s32)frame1, skelAnime->limbCount, skelAnime->morphTable); - alignedBlendTable = (Vec3s*)ALIGN16((u32)blendTable); + alignedBlendTable = (void*)ALIGN16((uintptr_t)blendTableBuffer); AnimationContext_SetLoadFrame(play, animation2, (s32)frame2, skelAnime->limbCount, alignedBlendTable); AnimationContext_SetInterp(play, skelAnime->limbCount, skelAnime->morphTable, alignedBlendTable, blendWeight); diff --git a/src/code/z_sram_NES.c b/src/code/z_sram_NES.c index e027c115f..b3d335afb 100644 --- a/src/code/z_sram_NES.c +++ b/src/code/z_sram_NES.c @@ -918,9 +918,9 @@ void Sram_InitDebugSave(void) { Lib_MemCpy(&gSaveContext.save.inventory, &sSaveDebugInventory, sizeof(Inventory)); Lib_MemCpy(&gSaveContext.save.checksum, &sSaveDebugChecksum, sizeof(gSaveContext.save.checksum)); - if (gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) { - BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN) = D_801C6A48[((void)0, gSaveContext.save.playerForm)]; - C_SLOT_EQUIP(0, EQUIP_SLOT_C_DOWN) = D_801C6A50[((void)0, gSaveContext.save.playerForm)]; + if (GET_PLAYER_FORM != PLAYER_FORM_HUMAN) { + BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN) = D_801C6A48[GET_PLAYER_FORM]; + C_SLOT_EQUIP(0, EQUIP_SLOT_C_DOWN) = D_801C6A50[GET_PLAYER_FORM]; } gSaveContext.save.hasTatl = true; |
