mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
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>
This commit is contained in:
co-authored by
EllipticEllipsis
engineer124
Derek Hensley
fig02
parent
ac0ef7823e
commit
a8c7a5bb89
@@ -0,0 +1,28 @@
|
||||
#ifndef ALIGNMENT_H
|
||||
#define ALIGNMENT_H
|
||||
|
||||
#define ALIGN8(val) (((val) + 7) & ~7)
|
||||
#define ALIGN16(val) (((val) + 0xF) & ~0xF)
|
||||
#define ALIGN32(val) (((val) + 0x1F) & ~0x1F)
|
||||
#define ALIGN64(val) (((val) + 0x3F) & ~0x3F)
|
||||
#define ALIGN256(val) (((val) + 0xFF) & ~0xFF)
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ALIGNED8 __attribute__ ((aligned (8)))
|
||||
#else
|
||||
#define ALIGNED8
|
||||
#endif
|
||||
|
||||
#ifdef __sgi /* IDO compiler */
|
||||
#define ALIGNOF(x) __builtin_alignof(x)
|
||||
#elif (__STDC_VERSION__ >= 201112L) /* C11 */
|
||||
#define ALIGNOF(x) _Alignof(x)
|
||||
#else /* __GNUC__ */
|
||||
#define ALIGNOF(x) __alignof__(x)
|
||||
#endif
|
||||
|
||||
#define ALIGN_MASK(n) (~((n) - 1))
|
||||
|
||||
#define ALIGNOF_MASK(x) ALIGN_MASK(ALIGNOF(x))
|
||||
|
||||
#endif
|
||||
+37
-37
@@ -473,7 +473,7 @@ void func_800AE5A0(PlayState* play);
|
||||
void func_800AE5E4(PlayState* play, Color_RGBA8* color, s16 arg2, s16 arg3);
|
||||
void func_800AE778(PlayState* play, Color_RGBA8* color, s16 arg2, s16 arg3);
|
||||
void func_800AE8EC(PlayState* play);
|
||||
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);
|
||||
void func_800AEF44(EffectTireMark* this);
|
||||
void EffectTireMark_Init(void* thisx, void* initParamsx);
|
||||
void EffectTireMark_Destroy(void* thisx);
|
||||
@@ -549,24 +549,24 @@ void EffectSsDtBubble_SpawnCustomColor(PlayState* play, Vec3f* pos, Vec3f* veloc
|
||||
void EffectSsHahen_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 flags, s16 scale, s16 objId, s16 life, Gfx* dList);
|
||||
void EffectSsHahen_SpawnBurst(PlayState* play, Vec3f* pos, f32 burstScale, s16 flags, s16 scale, s16 randScaleRange, s16 count, s16 objId, s16 life, Gfx* dList);
|
||||
// void func_800B2364(void);
|
||||
// void EffectSsStick_Spawn(UNK_TYPE4 uParm1, UNK_PTR puParm2, UNK_TYPE2 uParm3);
|
||||
void EffectSsStick_Spawn(PlayState* play, Vec3f* pos, s16 yaw);
|
||||
// void EffectSsSibuki_Spawn(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7);
|
||||
void EffectSsSibuki_SpawnBurst(PlayState* play, Vec3f* pos);
|
||||
void EffectSsStone1_Spawn(PlayState* play, Vec3f* pos, s32 reg0);
|
||||
void EffectSsHitmark_SpawnFixedScale(PlayState* play, s32 type, Vec3f* pos);
|
||||
void EffectSsHitmark_SpawnCustomScale(PlayState* play, s32 type, s16 scale, Vec3f* pos);
|
||||
void EffectSsFhgFlash_SpawnShock(PlayState* play, Actor* actor, Vec3f* pos, s16 scale, u8 params);
|
||||
// void EffectSsKFire_Spawn(UNK_TYPE4 uParm1, Vec3f* pzParm2, Vec3f* pzParm3, Vec3f* pzParm4, UNK_TYPE2 param_5, UNK_TYPE1 param_6);
|
||||
void EffectSsKFire_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 scaleMax, u8 type);
|
||||
void EffectSsSolderSrchBall_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 scale, s16* playerDetected, s16 flags);
|
||||
void EffectSsKakera_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* arg3, s16 gravity, s16 arg5, s16 arg6, s16 arg7, s16 arg8, s16 scale, s16 arg10, s16 arg11, s32 life, s16 colorIdx, s16 objId, Gfx* dList);
|
||||
// void EffectSsIcePiece_Spawn(UNK_TYPE4 uParm1, Vec3f* pzParm2, UNK_TYPE4 uParm3, Vec3f* pzParm4, Vec3f* param_5, UNK_TYPE4 param_6);
|
||||
// void EffectSsIcePiece_SpawnBurst(void);
|
||||
void EffectSsIcePiece_SpawnBurst(PlayState* play, Vec3f* refPos, f32 scale);
|
||||
void func_800B2B44(PlayState* play, Actor* actor, Vec3f* pos, f32 scale);
|
||||
// void func_800B2B7C(void);
|
||||
void EffectSsEnIce_Spawn(PlayState* play, Vec3f* pos, f32 scale, Vec3f* velocity, Vec3f* accel, Color_RGBA8* primColor, Color_RGBA8* envColor, s32 life);
|
||||
// void EffectSsFireTail_Spawn(UNK_TYPE4 uParm1, UNK_TYPE4 uParm2, Vec3f* pzParm3, UNK_TYPE4 uParm4, Vec3f* param_5, UNK_TYPE2 param_6, Color_RGBA8* param_7, Color_RGBA8* param_8, UNK_TYPE2 param_9, UNK_TYPE2 param_10, UNK_TYPE4 param_11);
|
||||
// void EffectSsFireTail_SpawnFlame(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE4 param_6);
|
||||
// void EffectSsFireTail_SpawnFlameOnPlayer(void);
|
||||
void EffectSsFireTail_SpawnFlameOnPlayer(PlayState* play, f32 scale, s16 bodyPart, f32 colorIntensity);
|
||||
void EffectSsEnFire_SpawnVec3f(PlayState* play, Actor* actor, Vec3f* pos, s16 scale, s16 params, s16 flags, s16 bodyPart);
|
||||
// void EffectSsEnFire_SpawnVec3s(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7);
|
||||
void EffectSsExtra_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 scale, s16 scoreIdx);
|
||||
@@ -656,7 +656,7 @@ s32 func_800B715C(PlayState* play);
|
||||
void Actor_SetCameraHorseSetting(PlayState* play, Player* player);
|
||||
void Actor_MountHorse(PlayState* play, Player* player, Actor* horse);
|
||||
s32 func_800B724C(PlayState* play, Actor* actor, u8 csMode);
|
||||
u32 func_800B7298(PlayState* play, Actor* actor, u8 csMode);
|
||||
s32 func_800B7298(PlayState* play, Actor* actor, u8 csMode);
|
||||
void func_800B72F8(DynaPolyActor* dyna, f32 extraPushForce, s16 yRotation);
|
||||
|
||||
s32 Player_IsFacingActor(Actor* actor, s16 maxAngleDiff, PlayState* play);
|
||||
@@ -666,7 +666,7 @@ s32 Actor_ActorAIsFacingActorB(Actor* actorA, Actor* actorB, s16 maxAngleDiff);
|
||||
s32 Actor_IsFacingAndNearPlayer(Actor* actor, f32 range, s16 maxAngleDiff);
|
||||
s32 Actor_ActorAIsFacingAndNearActorB(Actor* actorA, Actor* actorB, f32 range, s16 maxAngleDiff);
|
||||
|
||||
void func_800B75A0(CollisionPoly* poly, Vec3f* normal, s16* azimuth);
|
||||
void Actor_GetSlopeDirection(CollisionPoly* floorPoly, Vec3f* slopeNormal, s16* downwardSlopeYaw);
|
||||
void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, f32 wallCheckRadius, f32 ceilingCheckHeight, u32 flags);
|
||||
Hilite* Hilite_DrawOpa(Vec3f* object, Vec3f* eye, Vec3f* lightDir, GraphicsContext* gfxCtx);
|
||||
void func_800B8050(Actor* actor, PlayState* play, s32 flag);
|
||||
@@ -683,7 +683,7 @@ s32 func_800B8614(Actor* actor, PlayState* play, f32 radius);
|
||||
s32 func_800B863C(Actor* actor, PlayState* play);
|
||||
s32 Actor_TextboxIsClosing(Actor* actor, PlayState* play);
|
||||
s32 Actor_ChangeFocus(Actor* actor1, PlayState* play, Actor* actor2);
|
||||
s32 Player_GetExchangeItemId(PlayState* play);
|
||||
PlayerActionParam Player_GetExchangeItemId(PlayState* play);
|
||||
s32 func_800B8718(Actor* actor, GameState* gameState);
|
||||
s32 func_800B874C(Actor* actor, PlayState* play, f32 xzRange, f32 yRange);
|
||||
s32 func_800B8804(Actor* actor, PlayState* play, f32 xzRange);
|
||||
@@ -691,10 +691,10 @@ s32 func_800B886C(Actor* actor, PlayState* play);
|
||||
void Actor_GetScreenPos(PlayState* play, Actor* actor, s16* x, s16* y);
|
||||
s32 Actor_OnScreen(PlayState* play, Actor* actor);
|
||||
s32 Actor_HasParent(Actor* actor, PlayState* play);
|
||||
s32 Actor_PickUp(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32 yRange);
|
||||
s32 Actor_PickUpNearby(Actor* actor, PlayState* play, s32 getItemId);
|
||||
s32 Actor_PickUp(Actor* actor, PlayState* play, GetItemId getItemId, f32 xzRange, f32 yRange);
|
||||
s32 Actor_PickUpNearby(Actor* actor, PlayState* play, GetItemId getItemId);
|
||||
s32 Actor_LiftActor(Actor* actor, PlayState* play);
|
||||
s32 Actor_PickUpFar(Actor* actor, PlayState* play, s32 getItemId);
|
||||
s32 Actor_PickUpFar(Actor* actor, PlayState* play, GetItemId getItemId);
|
||||
s32 Actor_HasNoParent(Actor* actor, PlayState* play);
|
||||
void func_800B8C20(Actor* actorA, Actor* actorB, PlayState* play);
|
||||
void func_800B8C50(Actor* actor, PlayState* play);
|
||||
@@ -716,7 +716,7 @@ void func_800B9010(Actor* actor, u16 sfxId);
|
||||
void func_800B9038(Actor* actor, s32 timer);
|
||||
void func_800B9084(Actor* actor);
|
||||
void func_800B9098(Actor* actor);
|
||||
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);
|
||||
void Actor_DeactivateLens(PlayState* play);
|
||||
void func_800B9120(ActorContext* actorCtx);
|
||||
void Actor_InitContext(PlayState* play, ActorContext* actorCtx, ActorEntry* actorEntry);
|
||||
@@ -975,7 +975,7 @@ Vec3s* Camera_Update(Vec3s* param_1, Camera* camera);
|
||||
// void func_800DF498(void);
|
||||
u32 Camera_SetMode(Camera* camera, s16 mode, s8 param_3);
|
||||
s32 Camera_ChangeMode(Camera* camera, s16 mode);
|
||||
// void func_800DF86C(void);
|
||||
s32 func_800DF86C(Camera* camera, s16 arg1);
|
||||
// void func_800DF8EC(void);
|
||||
s32 Camera_ChangeSetting(Camera* camera, s16 setting);
|
||||
u32 Camera_ChangeDataIdx(Camera* camera, u32 camDataIdx);
|
||||
@@ -999,7 +999,7 @@ s32 Camera_Copy(Camera* dstCamera, Camera* srcCamera);
|
||||
Vec3f* Camera_GetQuakeOffset(Vec3f* dst, Camera* camera);
|
||||
// void func_800E01DC(s32 param_1, u32 param_2, UNK_TYPE4 param_3, UNK_TYPE4 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6);
|
||||
// UNK_TYPE4 func_800E0228(void);
|
||||
// void func_800E0238(void);
|
||||
void func_800E0238(Camera* camera);
|
||||
void Camera_SetToTrackActor(Camera* camera, Actor* actor);
|
||||
void Camera_SetTargetActor(Camera* camera, Actor* actor);
|
||||
f32 Camera_GetWaterYPos(Camera* camera);
|
||||
@@ -1732,9 +1732,9 @@ s32 Inventory_ConsumeFairy(PlayState* play);
|
||||
void Inventory_UpdateItem(PlayState* play, s16 slot, s16 item);
|
||||
// void func_801153C8(void);
|
||||
// void func_80115428(void);
|
||||
void func_8011552C(PlayState* play, s16 arg1);
|
||||
// void func_801155B4(void);
|
||||
// void func_80115764(void);
|
||||
void func_8011552C(PlayState* play, u16 arg1);
|
||||
void func_801155B4(PlayState* play, s16 arg1);
|
||||
void func_80115764(PlayState* play, UNK_TYPE arg1);
|
||||
void func_80115844(PlayState* play, s16 param_2);
|
||||
s32 Health_ChangeBy(PlayState* play, s16 healthChange);
|
||||
void Health_GiveHearts(s16 hearts);
|
||||
@@ -1779,7 +1779,7 @@ s32 func_80122744(PlayState* play, struct_80122744_arg1* arg1, u32 arg2, Vec3s*
|
||||
s32 func_80122760(PlayState* play, struct_80122744_arg1* arg1, f32 arg2);
|
||||
void func_80122868(PlayState* play, Player* player);
|
||||
void func_801229A0(PlayState* play, Player* player);
|
||||
void func_801229EC(UNK_TYPE arg0, UNK_TYPE arg1);
|
||||
void func_801229EC(Actor* thisx, PlayState* play);
|
||||
void func_801229FC(Player* player);
|
||||
void func_80122BA4(PlayState* play, struct_80122D44_arg1* arg1, s32 arg2, s32 alpha);
|
||||
void func_80122C20(PlayState* play, struct_80122D44_arg1* arg1);
|
||||
@@ -1790,7 +1790,7 @@ void func_80122F28(Player* player);
|
||||
s32 func_80122F9C(PlayState* play);
|
||||
s32 func_80122FCC(PlayState* play);
|
||||
void func_8012300C(PlayState* play, s32 arg1);
|
||||
void func_8012301C(Player* player, PlayState* play2);
|
||||
void func_8012301C(Actor* thisx, PlayState* play2);
|
||||
void func_80123140(PlayState* play, Player* player);
|
||||
s32 Player_InBlockingCsMode(PlayState* play, Player* player);
|
||||
s32 Player_InCsMode(PlayState* play);
|
||||
@@ -1801,14 +1801,14 @@ s32 Player_IsGoronOrDeku(Player* player);
|
||||
s32 func_801234D4(PlayState* play);
|
||||
s32 func_80123590(PlayState* play, Actor* actor);
|
||||
ItemId func_8012364C(PlayState* play, Player* player, s32 arg2);
|
||||
s32 func_80123810(PlayState* play);
|
||||
PlayerActionParam func_80123810(PlayState* play);
|
||||
PlayerModelGroup Player_ActionToModelGroup(Player* player, PlayerActionParam actionParam);
|
||||
void Player_SetModelsForHoldingShield(Player* player);
|
||||
void Player_SetModels(Player* player, PlayerModelGroup modelGroup);
|
||||
void Player_SetModelGroup(Player* player, PlayerModelGroup modelGroup);
|
||||
void func_80123C58(Player* player);
|
||||
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);
|
||||
void func_80123DA4(Player* player);
|
||||
void func_80123DC0(Player* player);
|
||||
void func_80123E90(PlayState* play, Actor* actor);
|
||||
@@ -2078,7 +2078,7 @@ void AnimationContext_CopyTrue(PlayState* play, AnimationEntryData* data);
|
||||
void AnimationContext_CopyFalse(PlayState* play, AnimationEntryData* data);
|
||||
void AnimationContext_MoveActor(PlayState* play, AnimationEntryData* data);
|
||||
void AnimationContext_Update(PlayState* play, AnimationContext* animationCtx);
|
||||
void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg, LinkAnimationHeader* animation, s32 flags, Vec3s* jointTable, Vec3s* morphTable, s32 limbBufCount);
|
||||
void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg, LinkAnimationHeader* animation, s32 flags, void* jointTableBuffer, void* morphTableBuffer, s32 limbBufCount);
|
||||
void LinkAnimation_SetUpdateFunction(SkelAnime* skelAnime);
|
||||
s32 LinkAnimation_Update(PlayState* play, SkelAnime* skelAnime);
|
||||
s32 LinkAnimation_Morph(PlayState* play, SkelAnime* skelAnime);
|
||||
@@ -2096,8 +2096,8 @@ void LinkAnimation_CopyMorphToJoint(PlayState* play, SkelAnime* skelAnime);
|
||||
void LinkAnimation_LoadToMorph(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 frame);
|
||||
void LinkAnimation_LoadToJoint(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation, f32 frame);
|
||||
void LinkAnimation_InterpJointMorph(PlayState* play, SkelAnime* skelAnime, f32 weight);
|
||||
void LinkAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation1, f32 frame1, LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, Vec3s* blendTable);
|
||||
void LinkAnimation_BlendToMorph(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation1, f32 frame1, LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, Vec3s* blendTable);
|
||||
void LinkAnimation_BlendToJoint(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation1, f32 frame1, LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer);
|
||||
void LinkAnimation_BlendToMorph(PlayState* play, SkelAnime* skelAnime, LinkAnimationHeader* animation1, f32 frame1, LinkAnimationHeader* animation2, f32 frame2, f32 blendWeight, void* blendTableBuffer);
|
||||
void LinkAnimation_EndLoop(SkelAnime* skelAnime);
|
||||
s32 Animation_OnFrameImpl(SkelAnime* skelAnime, f32 frame, f32 updateRate);
|
||||
s32 LinkAnimation_OnFrame(SkelAnime* skelAnime, f32 frame);
|
||||
@@ -2339,8 +2339,8 @@ void func_80165658(u32 arg0);
|
||||
void func_8016566C(u32 arg0);
|
||||
void func_80165690(void);
|
||||
// void func_801656A4(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8);
|
||||
// void func_80165DCC(void);
|
||||
// void func_80165DF0(void);
|
||||
void func_80165DCC(s32 arg0);
|
||||
void func_80165DF0(void);
|
||||
// void func_80165E1C(void);
|
||||
// void func_80165E7C(void);
|
||||
// void func_80165EC0(void);
|
||||
@@ -2952,19 +2952,19 @@ void func_8019F420(Vec3f* pos, u16 sfxId);
|
||||
void func_8019F4AC(Vec3f* pos, u16 sfxId);
|
||||
void func_8019F540(s8 arg0);
|
||||
void AudioSfx_LowerSfxSettingsReverb(Vec3f* pos, s8 isReverbLowered);
|
||||
// void func_8019F5AC(void);
|
||||
// void func_8019F638(void);
|
||||
// void func_8019F780(void);
|
||||
f32 func_8019F5AC(f32 arg0);
|
||||
void func_8019F638(Vec3f* arg0, u16 sfxId, f32 arg2);
|
||||
void func_8019F780(Vec3f* arg0, u16 sfxId, f32 arg2);
|
||||
// void func_8019F7D8(void);
|
||||
// void func_8019F830(void);
|
||||
void func_8019F830(Vec3f* arg0, u16 arg1);
|
||||
void func_8019F88C(Vec3f* arg0, u16 sfxId, UNK_TYPE arg2);
|
||||
void func_8019F900(Vec3f* pos, u8 chargeLevel);
|
||||
// void func_8019FA18(void);
|
||||
void func_8019FAD8(Vec3f* param_1, u16 sfxId, f32 param_3);
|
||||
void func_8019FB0C(Vec3f* arg0, u16 sfxId, f32 arg2, s32 arg3);
|
||||
void func_8019FC20(Vec3f* pos, u16 sfxId);
|
||||
// void func_8019FCB8(void);
|
||||
// void func_8019FD90(void);
|
||||
void func_8019FCB8(Vec3f* arg0, u16 arg1, f32 arg2);
|
||||
void func_8019FD90(s8 arg0, s8 arg1);
|
||||
void func_8019FDC8(UNK_PTR arg0, u16 sfxId, UNK_TYPE arg2);
|
||||
// void func_8019FE1C(void);
|
||||
void func_8019FE74(f32* arg0, f32 arg1, s32 arg2);
|
||||
@@ -2974,8 +2974,8 @@ void Audio_PlaySfxForRiver(Vec3f* pos, f32 freqScale);
|
||||
// void Audio_PlaySfxForWaterfall(void);
|
||||
// void Audio_StepFreqLerp(void);
|
||||
void func_801A0124(Vec3f* pos, u8 arg1);
|
||||
// void func_801A0184(void);
|
||||
// void func_801A01C4(void);
|
||||
void func_801A0184(void);
|
||||
void func_801A01C4(void);
|
||||
void func_801A0204(s8 seqId);
|
||||
void func_801A0238(s32 arg0, s32 arg1);
|
||||
// void Audio_SetGanonsTowerBgmVolumeLevel(void);
|
||||
@@ -3034,9 +3034,9 @@ void func_801A3AEC(s32 arg0);
|
||||
void func_801A3B48(UNK_TYPE arg0);
|
||||
// void func_801A3B90(void);
|
||||
void func_801A3CD8(s8 param_1);
|
||||
// void func_801A3CF4(void);
|
||||
void func_801A3CF4(s8 arg0);
|
||||
void func_801A3D98(s8 audioSetting);
|
||||
// void func_801A3E38(void);
|
||||
void func_801A3E38(u8 arg0);
|
||||
// void func_801A3EC0(void);
|
||||
void Audio_SetCutsceneFlag(s8 flag);
|
||||
// void func_801A3F6C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
@@ -3045,7 +3045,7 @@ void Audio_SetCutsceneFlag(s8 flag);
|
||||
void Audio_SetSpec(u32 specId);
|
||||
void func_801A4058(UNK_TYPE arg0);
|
||||
// void func_801A41C8(void);
|
||||
// void func_801A41F8(void);
|
||||
void func_801A41F8(UNK_TYPE arg0);
|
||||
// void func_801A429C(void);
|
||||
// void func_801A42C8(void);
|
||||
// void func_801A4324(void);
|
||||
|
||||
@@ -128,7 +128,6 @@ extern GraphicsContext* __gfxCtx;
|
||||
} \
|
||||
(void)0
|
||||
|
||||
|
||||
#define SQ(x) ((x) * (x))
|
||||
#define ABS(x) ((x) >= 0 ? (x) : -(x))
|
||||
#define ABS_ALT(x) ((x) < 0 ? -(x) : (x))
|
||||
@@ -150,10 +149,4 @@ extern GraphicsContext* __gfxCtx;
|
||||
#define OVERLAY_RELOCATION_OFFSET(overlayEntry) ((uintptr_t)((overlayEntry)->vramStart) - (uintptr_t)((overlayEntry)->loadedRamAddr))
|
||||
#define VRAM_PTR_SIZE(entry) ((uintptr_t)((entry)->vramEnd) - (uintptr_t)((entry)->vramStart))
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ALIGNED8 __attribute__ ((aligned (8)))
|
||||
#else
|
||||
#define ALIGNED8
|
||||
#endif
|
||||
|
||||
#endif // MACROS_H
|
||||
|
||||
+1
-2
@@ -427,7 +427,7 @@ extern Gfx D_801AEFA0[];
|
||||
// extern UNK_TYPE1 D_801AEFBC;
|
||||
// extern UNK_TYPE1 D_801AEFC0;
|
||||
extern ActorOverlay gActorOverlayTable[ACTOR_ID_MAX];
|
||||
extern s32 gMaxActorId;
|
||||
extern ActorId gMaxActorId;
|
||||
extern BgCheckSceneSubdivisionEntry sSceneSubdivisionList[];
|
||||
extern BgSpecialSceneMaxObjects sCustomDynapolyMem[];
|
||||
// extern UNK_TYPE1 D_801B4708;
|
||||
@@ -2472,7 +2472,6 @@ extern TriNorm D_801EDBB0;
|
||||
// extern UNK_TYPE1 D_801EDBD8;
|
||||
// extern UNK_TYPE1 D_801EDBDC;
|
||||
// extern UNK_TYPE1 D_801EDBE0;
|
||||
extern s16 D_801EDBF0;
|
||||
// extern UNK_TYPE1 D_801EDBF4;
|
||||
// extern UNK_TYPE1 D_801EDBF8;
|
||||
// extern UNK_TYPE1 D_801EDC00;
|
||||
|
||||
+3
-3
@@ -1047,9 +1047,9 @@ struct PlayState {
|
||||
/* 0x18784 */ s32 (*damagePlayer)(struct PlayState* play, s32 damage);
|
||||
/* 0x18788 */ void (*talkWithPlayer)(struct PlayState* play, Actor* actor);
|
||||
/* 0x1878C */ void (*unk_1878C)(struct PlayState* play);
|
||||
/* 0x18790 */ void (*unk_18790)(struct PlayState* play, s16 arg1, Actor* actor);
|
||||
/* 0x18794 */ s32 (*unk_18794)(struct PlayState* play, Player* player, s32 itemId, s32 arg3);
|
||||
/* 0x18798 */ s32 (*setPlayerTalkAnim)(struct PlayState* play, void* talkAnim, s32 arg2);
|
||||
/* 0x18790 */ void (*unk_18790)(struct PlayState* play, s16 arg1);
|
||||
/* 0x18794 */ PlayerActionParam (*unk_18794)(struct PlayState* play, Player* player, ItemId itemId);
|
||||
/* 0x18798 */ s32 (*setPlayerTalkAnim)(struct PlayState* play, LinkAnimationHeader* talkAnim, s32 animMode);
|
||||
/* 0x1879C */ s16 playerActorCsIds[10];
|
||||
/* 0x187B0 */ MtxF viewProjectionMtxF;
|
||||
/* 0x187F0 */ Vec3f unk_187F0;
|
||||
|
||||
+4
-3
@@ -19,6 +19,7 @@ struct Lights;
|
||||
struct CollisionPoly;
|
||||
|
||||
struct EnBox;
|
||||
struct EnTorch2;
|
||||
|
||||
typedef void(*ActorFunc)(struct Actor* this, struct PlayState* play);
|
||||
|
||||
@@ -208,7 +209,7 @@ typedef enum {
|
||||
* 0x040 : Has touched water (actor is responsible for unsetting this the frame it touches the water)
|
||||
* 0x080 : Similar to & 0x1 but with no velocity check and is cleared every frame
|
||||
* 0x100 : Crushed between a floor and ceiling (triggers a void for player)
|
||||
* 0x200 : Unknown (only set/used by player so far)
|
||||
* 0x200 : Only set/used by player, related to interacting with walls
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
@@ -224,7 +225,7 @@ typedef struct {
|
||||
} DynaPolyActor; // size = 0x15C
|
||||
|
||||
|
||||
typedef enum {
|
||||
typedef enum Item00Type {
|
||||
/* 0x00 */ ITEM00_RUPEE_GREEN,
|
||||
/* 0x01 */ ITEM00_RUPEE_BLUE,
|
||||
/* 0x02 */ ITEM00_RUPEE_RED,
|
||||
@@ -404,7 +405,7 @@ typedef struct ActorContext {
|
||||
/* 0x20C */ ActorContext_unk_20C unk_20C[8];
|
||||
/* 0x24C */ UNK_TYPE1 unk_24C[0x4];
|
||||
/* 0x250 */ void* absoluteSpace; // Space used to allocate actor overlays of alloc type ALLOCTYPE_ABSOLUTE
|
||||
/* 0x254 */ u32 unk254[5];
|
||||
/* 0x254 */ struct EnTorch2* elegyShells[5]; // PLAYER_FORM_MAX
|
||||
/* 0x268 */ u8 unk268;
|
||||
/* 0x269 */ UNK_TYPE1 pad269[0x3];
|
||||
/* 0x26C */ Input unk_26C;
|
||||
|
||||
@@ -9,9 +9,10 @@
|
||||
struct PlayState;
|
||||
struct Actor;
|
||||
struct SkelAnime;
|
||||
struct PlayerAnimationFrame;
|
||||
|
||||
#define LINK_ANIMETION_OFFSET(addr, offset) \
|
||||
(SEGMENT_ROM_START(link_animetion) + ((u32)addr & 0xFFFFFF) + ((u32)offset))
|
||||
(SEGMENT_ROM_START(link_animetion) + ((uintptr_t)addr & 0xFFFFFF) + ((u32)offset))
|
||||
#define LIMB_DONE 0xFF
|
||||
#define ANIMATION_ENTRY_MAX 50
|
||||
|
||||
@@ -20,14 +21,14 @@ struct SkelAnime;
|
||||
#define ANIM_FLAG_4 (1 << 2)
|
||||
#define ANIM_FLAG_NOMOVE (1 << 4)
|
||||
|
||||
typedef enum {
|
||||
typedef enum AnimationMode {
|
||||
/* 0 */ ANIMMODE_LOOP,
|
||||
/* 1 */ ANIMMODE_LOOP_INTERP,
|
||||
/* 2 */ ANIMMODE_ONCE,
|
||||
/* 3 */ ANIMMODE_ONCE_INTERP,
|
||||
/* 4 */ ANIMMODE_LOOP_PARTIAL,
|
||||
/* 5 */ ANIMMODE_LOOP_PARTIAL_INTERP
|
||||
} AnimationModes;
|
||||
} AnimationMode;
|
||||
|
||||
typedef enum {
|
||||
/* -1 */ ANIMTAPER_DECEL = -1,
|
||||
@@ -170,7 +171,10 @@ typedef struct AnimationContext {
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ AnimationHeaderCommon common;
|
||||
/* 0x4 */ u32 segment;
|
||||
/* 0x4 */ union {
|
||||
void* segmentVoid;
|
||||
struct PlayerAnimationFrame* segment;
|
||||
};
|
||||
} LinkAnimationHeader; // size = 0x8
|
||||
|
||||
typedef struct SkelAnime {
|
||||
|
||||
+32
-16
@@ -1,5 +1,5 @@
|
||||
#ifndef _Z64ITEM_H_
|
||||
#define _Z64ITEM_H_
|
||||
#ifndef Z64ITEM_H
|
||||
#define Z64ITEM_H
|
||||
|
||||
#define DROP_TABLE_SIZE 16
|
||||
#define DROP_TABLE_NUMBER 17
|
||||
@@ -134,7 +134,7 @@ typedef enum {
|
||||
/* 0xFF */ SLOT_NONE = 0xFF
|
||||
} InventorySlot;
|
||||
|
||||
typedef enum {
|
||||
typedef enum ItemId {
|
||||
/* 0x00 */ ITEM_OCARINA,
|
||||
/* 0x01 */ ITEM_BOW,
|
||||
/* 0x02 */ ITEM_ARROW_FIRE,
|
||||
@@ -248,7 +248,9 @@ typedef enum {
|
||||
/* 0x6E */ ITEM_SKULL_TOKEN,
|
||||
/* 0x6F */ ITEM_HEART_CONTAINER,
|
||||
/* 0x70 */ ITEM_HEART_PIECE,
|
||||
/* 0x73 */ ITEM_SONG_LULLABY_INTRO = 0x73,
|
||||
/* 0x71 */ ITEM_71,
|
||||
/* 0x72 */ ITEM_72,
|
||||
/* 0x73 */ ITEM_SONG_LULLABY_INTRO,
|
||||
/* 0x74 */ ITEM_KEY_BOSS,
|
||||
/* 0x75 */ ITEM_COMPASS,
|
||||
/* 0x76 */ ITEM_DUNGEON_MAP,
|
||||
@@ -297,17 +299,19 @@ typedef enum {
|
||||
/* 0xA1 */ ITEM_GOLD_DUST_2,
|
||||
/* 0xA2 */ ITEM_HYLIAN_LOACH_2,
|
||||
/* 0xA3 */ ITEM_SEAHORSE_CAUGHT,
|
||||
/* 0xF0 */ ITEM_F0 = 0xF0,
|
||||
/* 0xF1 */ ITEM_F1,
|
||||
/* 0xF2 */ ITEM_F2,
|
||||
/* 0xFD */ ITEM_FD = 0xFD,
|
||||
/* 0xF0 */ ITEM_F0 = 0xF0, // PLAYER_MASK_BLAST
|
||||
/* 0xF1 */ ITEM_F1, // PLAYER_MASK_BREMEN
|
||||
/* 0xF2 */ ITEM_F2, // PLAYER_MASK_KAMARO
|
||||
/* 0xFC */ ITEM_FC = 0xFC,
|
||||
/* 0xFD */ ITEM_FD,
|
||||
/* 0xFE */ ITEM_FE,
|
||||
/* 0xFF */ ITEM_NONE = 0xFF
|
||||
} ItemId;
|
||||
|
||||
#define BOTTLE_FIRST 0
|
||||
#define BOTTLE_MAX 6
|
||||
|
||||
typedef enum {
|
||||
typedef enum GetItemId {
|
||||
/* 0x00 */ GI_NONE,
|
||||
/* 0x01 */ GI_RUPEE_GREEN,
|
||||
/* 0x02 */ GI_RUPEE_BLUE,
|
||||
@@ -362,7 +366,8 @@ typedef enum {
|
||||
/* 0x3D */ GI_KEY_BOSS,
|
||||
/* 0x3E */ GI_MAP,
|
||||
/* 0x3F */ GI_COMPASS,
|
||||
/* 0x41 */ GI_HOOKSHOT = 0x41,
|
||||
/* 0x40 */ GI_40,
|
||||
/* 0x41 */ GI_HOOKSHOT,
|
||||
/* 0x42 */ GI_LENS,
|
||||
/* 0x43 */ GI_PICTO_BOX,
|
||||
/* 0x4C */ GI_OCARINA = 0x4C,
|
||||
@@ -391,9 +396,13 @@ typedef enum {
|
||||
/* 0x69 */ GI_ZORA_EGG,
|
||||
/* 0x6A */ GI_GOLD_DUST,
|
||||
/* 0x6B */ GI_MUSHROOM,
|
||||
/* 0x6E */ GI_SEAHORSE = 0x6E,
|
||||
/* 0x6C */ GI_6C,
|
||||
/* 0x6D */ GI_6D,
|
||||
/* 0x6E */ GI_SEAHORSE,
|
||||
/* 0x6F */ GI_CHATEAU_BOTTLE,
|
||||
/* 0x76 */ GI_ICE_TRAP = 0x76,
|
||||
/* 0x70 */ GI_HYLIAN_LOACH,
|
||||
/* 0x75 */ GI_75 = 0x75,
|
||||
/* 0x76 */ GI_ICE_TRAP,
|
||||
/* 0x78 */ GI_MASK_DEKU = 0x78,
|
||||
/* 0x79 */ GI_MASK_GORON,
|
||||
/* 0x7A */ GI_MASK_ZORA,
|
||||
@@ -421,7 +430,7 @@ typedef enum {
|
||||
/* 0x91 */ GI_CHATEAU = 0x91,
|
||||
/* 0x92 */ GI_MILK,
|
||||
/* 0x93 */ GI_GOLD_DUST_2,
|
||||
/* 0x94 */ GI_HYLIAN_LOACH, // Unused bottled eel
|
||||
/* 0x94 */ GI_HYLIAN_LOACH_2, // Unused bottled eel
|
||||
/* 0x95 */ GI_SEAHORSE_CAUGHT,
|
||||
/* 0x96 */ GI_MOON_TEAR,
|
||||
/* 0x97 */ GI_DEED_LAND,
|
||||
@@ -435,7 +444,14 @@ typedef enum {
|
||||
/* 0x9F */ GI_SHIELD_HERO_STOLEN, // Code that treats this as hero's shield is unused, implied as intended to be stolen
|
||||
/* 0xA0 */ GI_ROOM_KEY,
|
||||
/* 0xA1 */ GI_LETTER_TO_MAMA,
|
||||
/* 0xA9 */ GI_BOTTLE_STOLEN = 0xA9, // buy back stolen bottle
|
||||
/* 0xA2 */ GI_A2,
|
||||
/* 0xA3 */ GI_A3,
|
||||
/* 0xA4 */ GI_A4,
|
||||
/* 0xA5 */ GI_A5,
|
||||
/* 0xA6 */ GI_A6,
|
||||
/* 0xA7 */ GI_A7,
|
||||
/* 0xA8 */ GI_A8,
|
||||
/* 0xA9 */ GI_BOTTLE_STOLEN, // buy back stolen bottle
|
||||
/* 0xAA */ GI_LETTER_TO_KAFEI,
|
||||
/* 0xAB */ GI_PENDANT_OF_MEMORIES,
|
||||
/* 0xB4 */ GI_TINGLE_MAP_CLOCK_TOWN = 0xB4,
|
||||
@@ -447,8 +463,8 @@ typedef enum {
|
||||
/* 0xBA */ GI_MAX
|
||||
} GetItemId;
|
||||
|
||||
typedef enum {
|
||||
/* 0xFF */ GID_NONE = -1,
|
||||
typedef enum GetItemDrawId {
|
||||
/* -1 */ GID_NONE = -1,
|
||||
/* 0x00 */ GID_BOTTLE,
|
||||
/* 0x01 */ GID_KEY_SMALL,
|
||||
/* 0x02 */ GID_MASK_KAMARO,
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
#ifndef _Z64LIGHT_H_
|
||||
#define _Z64LIGHT_H_
|
||||
#ifndef Z64LIGHT_H
|
||||
#define Z64LIGHT_H
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "PR/gbi.h"
|
||||
@@ -12,8 +12,8 @@ typedef struct {
|
||||
/* 0x09 */ s8 diffusePos2[3];
|
||||
/* 0x0C */ u8 diffuseColor[3];
|
||||
/* 0x0F */ u8 fogColor[3];
|
||||
/* 0x12 */ u16 fogNear;
|
||||
/* 0x14 */ u16 fogFar;
|
||||
/* 0x12 */ s16 fogNear;
|
||||
/* 0x14 */ s16 fogFar;
|
||||
} LightSettings; // size = 0x16
|
||||
|
||||
typedef struct {
|
||||
|
||||
+287
-69
File diff suppressed because it is too large
Load Diff
+7
-1
@@ -311,7 +311,7 @@ typedef struct SaveContext {
|
||||
/* 0x3DB8 */ u16 entranceSound; // "player_wipe_door_SE"
|
||||
/* 0x3DBA */ u8 unk_3DBA; // "player_wipe_item"
|
||||
/* 0x3DBB */ u8 unk_3DBB; // "next_walk"
|
||||
/* 0x3DBC */ u16 dogParams; // "dog_flag"
|
||||
/* 0x3DBC */ s16 dogParams; // "dog_flag"
|
||||
/* 0x3DBE */ u8 textTriggerFlags; // "guide_status"
|
||||
/* 0x3DBF */ u8 showTitleCard; // "name_display"
|
||||
/* 0x3DC0 */ s16 unk_3DC0; // "shield_magic_timer"
|
||||
@@ -390,6 +390,8 @@ typedef enum SunsSongState {
|
||||
|
||||
#define CURRENT_DAY (((void)0, gSaveContext.save.day) % 5)
|
||||
|
||||
#define GET_PLAYER_FORM ((void)0, gSaveContext.save.playerForm)
|
||||
|
||||
#define SLOT(item) gItemSlots[item]
|
||||
#define AMMO(item) gSaveContext.save.inventory.ammo[SLOT(item)]
|
||||
#define INV_CONTENT(item) gSaveContext.save.inventory.items[SLOT(item)]
|
||||
@@ -430,6 +432,10 @@ typedef enum SunsSongState {
|
||||
#define GET_CUR_FORM_BTN_ITEM(btn) ((u8)((btn) == EQUIP_SLOT_B ? BUTTON_ITEM_EQUIP(CUR_FORM, btn) : BUTTON_ITEM_EQUIP(0, btn)))
|
||||
#define GET_CUR_FORM_BTN_SLOT(btn) ((u8)((btn) == EQUIP_SLOT_B ? C_SLOT_EQUIP(CUR_FORM, btn) : C_SLOT_EQUIP(0, btn)))
|
||||
|
||||
#define C_BTN_ITEM(btn) \
|
||||
((gSaveContext.buttonStatus[(btn)] != BTN_DISABLED) \
|
||||
? BUTTON_ITEM_EQUIP(0, (btn)) \
|
||||
: ((gSaveContext.hudVisibility == HUD_VISIBILITY_A_B_C) ? BUTTON_ITEM_EQUIP(0, (btn)) : ITEM_NONE))
|
||||
|
||||
#define SET_CUR_FORM_BTN_ITEM(btn, item) \
|
||||
if ((btn) == EQUIP_SLOT_B) { \
|
||||
|
||||
@@ -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 */
|
||||
|
||||
+43
-38
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
#include "prevent_bss_reordering.h"
|
||||
//#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
#include "z64quake.h"
|
||||
#include "z64shrink_window.h"
|
||||
|
||||
@@ -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];
|
||||
|
||||
+39
-44
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
+5
-4
@@ -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;
|
||||
|
||||
+11
-11
@@ -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);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user