z_player_lib: Part 1 (#688)

* fix some symbols and file splits

* PLAYER_STATE macros

* Move over a few functions

* AP functions and update struct

* another small bunch

* Add player_lib prototypes

* A few more functions

* Some fixes and add stuff to actorfixer

* format

* bss

* Elliptic's review

* Engineer's review

* Some renames and cleanups

* bss

* A bit of cleaning up

* Player_DrawZoraShield

* format

* actorfixer, bss and format

* Forgot to merge master again

* Rename some LinkGoron dlists

* PlayerMeleeWeaponAnimation enum

* format

* actorfixer, bss and format

* more bss

* actorfixer

* format

* actorfixer and format

* bss

* Update src/code/z_player_lib.c

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* sEnvironmentTextTriggers

* Update include/z64save.h

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Update src/code/z_player_lib.c

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Update src/code/z_player_lib.c

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Update src/code/z_player_lib.c

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* breman mask march comment

* fix

* fixes

* bss

* RESPAWN_MODE_RETURN

* review

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* format

* Engineer's review

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update src/code/z_player_lib.c

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* review

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Update include/z64player.h

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* review

Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* format

* unused mwas

* fixes

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>
This commit is contained in:
Anghelo Carvajal
2022-07-11 23:43:46 -04:00
committed by GitHub
co-authored by Derek Hensley EllipticEllipsis engineer124 EllipticEllipsis
parent cd5de59431
commit 87506f7c19
71 changed files with 1729 additions and 454 deletions
+3 -3
View File
@@ -35,7 +35,7 @@
<DList Name="object_link_goron_DL_00A0A0" Offset="0xA0A0" />
<DList Name="object_link_goron_DL_00A220" Offset="0xA220" />
<DList Name="object_link_goron_DL_00A500" Offset="0xA500" />
<DList Name="object_link_goron_DL_00BDD8" Offset="0xBDD8" />
<DList Name="gLinkGoronCurledDL" Offset="0xBDD8" />
<DList Name="object_link_goron_DL_00C540" Offset="0xC540" />
<Texture Name="object_link_goron_Tex_00C6B8" OutName="tex_00C6B8" Format="ci8" Width="32" Height="64" Offset="0xC6B8" />
<Texture Name="object_link_goron_Tex_00CEB8" OutName="tex_00CEB8" Format="rgba16" Width="8" Height="16" Offset="0xCEB8" />
@@ -62,7 +62,7 @@
<DList Name="object_link_goron_DL_011468" Offset="0x11468" />
<Texture Name="object_link_goron_Tex_011628" OutName="tex_011628" Format="ci8" Width="16" Height="16" Offset="0x11628" />
<Texture Name="object_link_goron_Tex_011728" OutName="tex_011728" Format="rgba16" Width="8" Height="32" Offset="0x11728" />
<DList Name="object_link_goron_DL_011AB8" Offset="0x11AB8" />
<DList Name="gLinkGoronGoronPunchEffectDL" Offset="0x11AB8" />
<Texture Name="object_link_goron_Tex_011C10" OutName="tex_011C10" Format="i4" Width="32" Height="32" Offset="0x11C10" />
<Texture Name="object_link_goron_Tex_011E10" OutName="tex_011E10" Format="i4" Width="64" Height="64" Offset="0x11E10" />
<DList Name="object_link_goron_DL_0127B0" Offset="0x127B0" />
@@ -72,7 +72,7 @@
<Texture Name="object_link_goron_Tex_013660" OutName="tex_013660" Format="i4" Width="64" Height="64" Offset="0x13660" />
<Texture Name="object_link_goron_Tex_013E60" OutName="tex_013E60" Format="i4" Width="64" Height="64" Offset="0x13E60" />
<TextureAnimation Name="object_link_goron_Matanimheader_014684" Offset="0x14684" />
<DList Name="object_link_goron_DL_014690" Offset="0x14690" />
<DList Name="gLinkGoronRollingSpikesAndEffectDL" Offset="0x14690" />
<DList Name="object_link_goron_DL_016A88" Offset="0x16A88" />
<DList Name="object_link_goron_DL_017180" Offset="0x17180" />
<DList Name="object_link_goron_DL_017620" Offset="0x17620" />
+8 -1
View File
@@ -56,7 +56,14 @@
<DList Name="object_link_zora_DL_010978" Offset="0x10978" />
<DList Name="object_link_zora_DL_010D08" Offset="0x10D08" />
<DList Name="object_link_zora_DL_0110A8" Offset="0x110A8" />
<!-- <Blob Name="object_link_zora_Blob_011710" Size="0x50" Offset="0x11710" /> -->
<Array Name="object_link_zora_Vtx_011210" Count="80" Offset="0x011210">
<Vtx/>
</Array>
<Array Name="object_link_zora_U8_011710" Count="80" Offset="0x011710">
<Scalar Type="x8"/>
</Array>
<DList Name="object_link_zora_DL_011760" Offset="0x11760" />
<DList Name="object_link_zora_DL_011A58" Offset="0x11A58" />
<Texture Name="object_link_zora_Tex_011A60" OutName="tex_011A60" Format="i8" Width="64" Height="32" Offset="0x11A60" />
+65 -87
View File
@@ -542,7 +542,7 @@ void EffectSsDFire_Spawn(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* ac
void EffectSsBubble_Spawn(PlayState* play, Vec3f* pos, f32 yPosOffset, f32 yPosRandScale, f32 xzPosRandScale, f32 scale);
void EffectSsGRipple_Spawn(PlayState* play, Vec3f* pos, s16 radius, s16 radiusMax, s16 life);
void EffectSsGSplash_Spawn(PlayState* play, Vec3f* pos, Color_RGBA8* primColor, Color_RGBA8* envColor, s16 type, s16 scale);
// void EffectSsGFire_Spawn(UNK_TYPE4 uParm1, Vec3f* pzParm2);
void EffectSsGFire_Spawn(PlayState* play, Vec3f* pos);
// void EffectSsLightning_Spawn(UNK_TYPE4 uParm1, Vec3f* pzParm2, Color_RGBA8* pzParm3, Color_RGBA8* pzParm4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8);
void EffectSsDtBubble_SpawnColorProfile(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 scale, s16 life, s16 colorProfile, s16 randXZ);
void EffectSsDtBubble_SpawnCustomColor(PlayState* play, Vec3f* pos, Vec3f* velocity, Vec3f* accel, Color_RGBA8* primColor, Color_RGBA8* envColor, s16 scale, s16 life, s16 randXZ);
@@ -1123,7 +1123,7 @@ void func_800DFC90(Vec3s* arg0, Camera* camera);
s16 Camera_GetCamDirPitch(Camera* camera);
s16 Camera_GetCamDirYaw(Camera* camera);
void func_800DFD04(Camera* camera, s32 arg1, s32 arg2, s32 arg3);
// void func_800DFD78(void);
void func_800DFD78(Camera* camera, s32 paramFlag, void* value);
// UNK_TYPE4 func_800DFEF0(s32 param_1, u16 param_2);
// UNK_TYPE4 func_800DFF18(Camera* iParm1, UNK_TYPE2 uParm2);
// UNK_TYPE4 func_800DFF34(s32 param_1);
@@ -1893,7 +1893,7 @@ void func_801149A0(s32 itemId, s16 slotId);
// void func_80114CA0(void);
s32 Interface_HasEmptyBottle(void);
s32 Interface_HasItemInBottle(u8 itemId);
// void func_80114FD0(void);
void func_80114FD0(PlayState* play, u8 itemId, u8 heldItemButton);
// void func_80115130(void);
// void func_801152B8(void);
// void func_801153C8(void);
@@ -1943,108 +1943,86 @@ void func_80121FC4(PlayState* play);
Path* Path_GetByIndex(PlayState* play, s16 index, s16 max);
f32 Path_OrientAndGetDistSq(Actor* actor, Path* path, s16 waypoint, s16* yaw);
void Path_CopyLastPoint(Path* path, Vec3f* dest);
void FrameAdvance_Init(FrameAdvanceContext* frameAdvCtx);
s32 FrameAdvance_Update(FrameAdvanceContext* frameAdvCtx, Input* input);
void func_801226E0(PlayState* play, s8 arg1);
void func_80122744(PlayState* play, UNK_PTR arg1, u32 arg2, Vec3s* arg3);
s32 func_80122760(PlayState* play, UNK_PTR arg1, f32 arg2);
s32 func_801226E0(PlayState* play, s32 arg1);
s32 func_80122744(PlayState* play, struct_80122744_arg1* arg1, u32 arg2, Vec3s* arg3);
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(void);
// void func_801229FC(void);
// void func_80122BA4(void);
// void func_80122C20(void);
// void func_80122D44(void);
// void func_80122ED8(void);
// void func_80122EEC(void);
void func_801229EC(UNK_TYPE arg0, UNK_TYPE arg1);
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);
void func_80122D44(PlayState* play, struct_80122D44_arg1* arg1);
u8 Player_MaskIdToItemId(s32 maskIdMinusOne);
u8 Player_GetCurMaskItemId(PlayState* play);
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(s32 iParm1, PlayState* play);
void func_8012301C(Player* player, PlayState* play);
void func_80123140(PlayState* play, Player* player);
u32 func_80123358(PlayState* play, Player* player);
s32 Player_InCsMode(GameState* gameState);
// void func_80123420(void);
// void func_80123434(void);
// void func_80123448(void);
// void func_801234B0(void);
// void func_801234D4(void);
s32 Player_InBlockingCsMode(PlayState* play, Player* player);
s32 Player_InCsMode(PlayState* play);
s32 func_80123420(Player* player);
s32 func_80123434(Player* player);
s32 func_80123448(PlayState* play);
s32 Player_IsGoronOrDeku(Player* player);
s32 func_801234D4(PlayState* play);
s32 func_80123590(PlayState* play, Actor* actor);
// void func_8012364C(void);
s32 func_8012364C(PlayState* play, Player* player, s32 arg2);
s32 func_80123810(PlayState* play);
// void func_80123960(void);
// void func_801239AC(void);
void func_80123AA4(Player* player, s32 arg1);
// void func_80123BD4(void);
// void func_80123C58(void);
void Player_SetEquipmentData(PlayState* play, Player* this);
void func_80123D50(PlayState* play, Player* player, UNK_TYPE arg2, UNK_TYPE arg3);
s32 Player_ActionToModelGroup(Player* player, s32 actionParam);
void func_801239AC(Player* player);
void Player_SetModels(Player* player, s32 arg1);
void Player_SetModelGroup(Player* player, s32 modelGroup);
void func_80123C58(Player* player);
void Player_SetEquipmentData(PlayState* play, Player* this);
void func_80123D50(PlayState* play, Player* player, s32 itemId, s32 actionParam);
void func_80123DA4(Player* player);
// void func_80123DC0(void);
void func_80123DC0(Player* player);
void func_80123E90(PlayState* play, Actor* actor);
void func_80123F2C(PlayState* play, s32 arg1);
s32 func_80123F48(PlayState* play, Vec3f* arg1, f32 arg2, f32 arg3);
s32 func_80124020(void);
s32 func_80123F2C(PlayState* play, s32 ammo);
s32 Player_IsBurningStickInRange(PlayState* play, Vec3f* pos, f32 xzRange, f32 yRange);
u8 Player_GetStrength(void);
u8 Player_GetMask(PlayState* play);
void Player_RemoveMask(PlayState* play);
s32 func_8012405C(PlayState* play);
s32 func_80124088(PlayState* play);
s32 func_801240C8(Player* player);
// void func_801240DC(void);
// void func_80124110(void);
// void func_80124148(void);
// void func_80124168(void);
s32 func_80124190(Player* player);
// void func_801241B4(void);
// void func_801241E0(void);
// void func_8012420C(void);
// void func_8012422C(void);
s32 Player_HasMirrorShieldEquipped(PlayState* play);
s32 Player_IsHoldingMirrorShield(PlayState* play);
s32 Player_IsHoldingHookshot(Player* player);
s32 func_801240DC(Player* player);
s32 func_80124110(Player* player, s32 actionParam);
s32 func_80124148(Player* player);
s32 Player_ActionToMeleeWeapon(s32 actionParam);
s32 Player_GetMeleeWeaponHeld(Player* player);
s32 Player_IsHoldingTwoHandedWeapon(Player* player);
s32 Player_ActionToBottle(Player* player, s32 actionParam);
s32 Player_GetBottleHeld(Player* Player);
s32 Player_ActionToExplosive(Player* player, s32 actionParam);
s32 Player_GetExplosiveHeld(Player* player);
// void func_80124278(void);
s32 func_80124278(Actor* actor, s32 arg1);
s32 func_801242B4(Player* player);
// void func_801242DC(void);
// void func_80124420(void);
// void func_80124618(void);
// void func_801246F4(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_TYPE1 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10, UNK_TYPE4 param_11);
// void func_80124870(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_80124CC4(void);
// void func_80124F18(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
// void func_80124FF0(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, UNK_TYPE4 param_9, UNK_TYPE2 param_10);
// void func_801251C4(void);
// void func_80125318(void);
// void func_80125340(void);
// void func_8012536C(void);
// void func_801253A4(void);
// void func_80125500(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
// void func_80125580(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
// void func_80125CE0(void);
// void func_80125D4C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
// void func_801262C8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
// void func_801263FC(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
s32 func_801242DC(PlayState* play);
void func_80124420(Player* player);
void func_80124618(struct_80124618 arg0[], f32 curFrame, Vec3f* arg2);
void func_801246F4(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dListCount, s32 lod, s32 tunic, s32 boots, s32 face, OverrideLimbDrawFlex overrideLimbDraw, PostLimbDrawFlex postLimbDraw, Actor* actor);
void func_80125318(Vec3f* arg0, Vec3s* arg1);
void Player_DrawZoraShield(PlayState* play, Player* player);
void func_80125500(PlayState* play, Player* player, s32 limbIndex, Vec3f* pos, Vec3s* rot);
s32 func_80125D4C(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* actor);
s32 func_801262C8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* actor);
s32 func_801263FC(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx);
s32 func_80126440(PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo, Vec3f* arg3, Vec3f* arg4);
// void func_801265C8(void);
// void func_8012669C(void);
// void func_80126808(void);
void func_8012697C(PlayState* play, Player* player);
// void func_80126AB4(void);
// void func_80126B8C(void);
// void func_80126BD0(void);
// void func_801271B0(void);
// void func_80127438(void);
// void func_80127488(void);
// void func_8012754C(void);
// void func_80127594(void);
// void func_801278F8(void);
// void func_80127A60(void);
// void func_80127B64(void);
// void func_80127BE8(void);
// void func_80127DA4(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);
// void func_80128388(void);
// void func_801284A0(void);
// void func_80128640(void);
// void func_80128B74(void);
// void func_80128BD0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE1 param_5, UNK_TYPE4 param_6);
void Player_DrawGetItem(PlayState* play, Player* player);
void func_80126B8C(PlayState* play, Player* player);
s32 func_80127438(PlayState* play, Player* player, s32 maskId);
s32 func_80128640(PlayState* play, Player* player, Gfx* dlist);
void func_80128B74(PlayState* play, Player* player, s32 limbIndex);
void func_80128BD0(PlayState* play, s32 limbIndex, Gfx** dList1, Gfx** dList2, Vec3s* rot, Actor* actor);
void PreNMI_Stop(PreNMIContext* prenmiCtx);
void PreNMI_Update(PreNMIContext* prenmiCtx);
void PreNMI_Draw(PreNMIContext* prenmiCtx);
+5 -33
View File
@@ -1160,31 +1160,18 @@ extern UNK_PTR D_801BF5C0;
// extern UNK_TYPE1 D_801BFD8C;
// extern UNK_TYPE1 D_801BFD94;
// extern UNK_TYPE2 D_801BFD98;
// extern UNK_TYPE1 D_801BFD9E;
// extern UNK_TYPE1 D_801BFDD0;
// extern UNK_TYPE1 D_801BFDE8;
// extern UNK_TYPE1 D_801BFE00;
// extern UNK_TYPE1 D_801BFE14;
// extern UNK_TYPE2 D_801BFF34;
// extern UNK_TYPE1 D_801BFF3C;
// extern UNK_TYPE1 D_801BFF90;
// extern UNK_TYPE1 D_801BFF98;
// extern UNK_TYPE1 D_801BFFA0;
// extern UNK_TYPE1 D_801BFFB0;
extern u8 gPlayerModelTypes[][5];
// extern UNK_TYPE1 D_801BFFFC;
// extern UNK_TYPE1 D_801C0000;
// extern UNK_TYPE1 D_801C0001;
// extern UNK_TYPE1 D_801C0002;
// extern UNK_TYPE1 D_801C0008;
// extern UNK_TYPE1 D_801C0010;
// extern UNK_TYPE1 D_801C0024;
// extern UNK_TYPE1 D_801C0034;
// extern UNK_TYPE1 D_801C0040;
// extern UNK_TYPE1 D_801C005C;
// extern UNK_TYPE1 D_801C0060;
// extern UNK_TYPE1 D_801C0070;
// extern UNK_TYPE1 D_801C0084;
// extern UNK_TYPE1 D_801C00A0;
// extern UNK_TYPE1 D_801C00AC;
// extern UNK_TYPE1 D_801C00BC;
// extern UNK_TYPE1 D_801C00D4;
@@ -1204,7 +1191,6 @@ extern UNK_PTR D_801BF5C0;
// extern UNK_TYPE1 D_801C02BC;
// extern UNK_TYPE1 D_801C02D0;
// extern UNK_TYPE1 D_801C02E4;
extern UNK_PTR D_801C02F8;
// extern UNK_TYPE1 D_801C0340;
// extern UNK_TYPE1 D_801C0368;
// extern UNK_TYPE1 D_801C03A0;
@@ -1222,8 +1208,6 @@ extern UNK_PTR D_801C02F8;
// extern UNK_TYPE1 D_801C05C8;
// extern UNK_TYPE1 D_801C05D8;
// extern UNK_TYPE1 D_801C05F0;
// extern UNK_TYPE2 D_801C05F2;
// extern UNK_TYPE1 D_801C05FA;
// extern UNK_TYPE1 D_801C0608;
// extern UNK_TYPE1 D_801C0628;
// extern UNK_TYPE1 D_801C0678;
@@ -1247,14 +1231,12 @@ extern Gfx D_801C0850[];
extern UNK_PTR D_801C0870;
// extern UNK_TYPE1 D_801C0890;
// extern UNK_TYPE1 D_801C08A0;
// extern UNK_TYPE1 D_801C08A1;
// extern UNK_TYPE1 D_801C08C0;
// extern UNK_TYPE1 D_801C08FC;
// extern UNK_TYPE1 D_801C0910;
// extern UNK_TYPE1 D_801C0924;
// extern UNK_TYPE1 D_801C0938;
// extern UNK_TYPE1 D_801C094C;
// extern UNK_TYPE4 D_801C0954;
// extern UNK_TYPE4 D_801C0958;
extern UNK_PTR D_801C095C;
// extern UNK_TYPE1 D_801C0964;
@@ -1281,26 +1263,17 @@ extern UNK_PTR D_801C0B0C;
// extern UNK_TYPE1 D_801C0B20;
// extern UNK_TYPE1 D_801C0B90;
// extern UNK_TYPE4 D_801C0BA8;
// extern UNK_TYPE4 D_801C0BAC;
// extern UNK_TYPE4 D_801C0BB0;
// extern UNK_TYPE1 D_801C0BB4;
// extern UNK_TYPE4 D_801C0BB8;
// extern UNK_TYPE1 D_801C0BC0;
// extern UNK_TYPE1 D_801C0BD0;
// extern UNK_TYPE4 D_801C0BE0;
// extern UNK_TYPE4 D_801C0BE4;
// extern UNK_TYPE4 D_801C0BE8;
// extern UNK_TYPE4 D_801C0BEC;
// extern UNK_TYPE4 D_801C0BF0;
// extern UNK_TYPE4 D_801C0BF4;
// extern UNK_TYPE1 D_801C0BF8;
// extern UNK_TYPE1 D_801C0BFC;
// extern UNK_TYPE1 D_801C0C00;
// extern UNK_TYPE4 D_801C0C0C;
// extern UNK_TYPE1 D_801C0C30;
// extern UNK_TYPE1 D_801C0C54;
// extern UNK_TYPE1 D_801C0C78;
// extern UNK_TYPE1 D_801C0C94;
// extern UNK_TYPE1 D_801C0CA8;
// extern UNK_TYPE4 D_801C0CE8;
// extern UNK_TYPE1 D_801C0D24;
@@ -1323,6 +1296,7 @@ extern UNK_PTR D_801C0B0C;
// extern UNK_TYPE1 D_801C0EA0;
// extern UNK_TYPE1 D_801C0EAC;
// extern UNK_TYPE1 D_801C0EB8;
extern Gfx sSetupDL[438];
extern Gfx sFillSetupDL[12];
extern Gfx gEmptyDL[1];
@@ -1343,8 +1317,8 @@ extern u8 gItemSlots[];
extern s16 gItemPrices[];
extern u16 gScenesPerRegion[11][27];
extern u32 D_801C2410[];
extern s16 gLinkFormObjectIndexes[8];
extern RomFile objectFileTable[643];
extern s16 gPlayerFormObjectIndices[8];
extern RomFile gObjectTable[643];
extern SceneTableEntry gSceneTable[];
extern UNK_PTR D_801C5C50;
// extern UNK_TYPE1 D_801C5C9C;
@@ -3212,8 +3186,6 @@ extern s16 D_801F4E7A;
// extern UNK_TYPE1 D_801F59E0;
// extern UNK_TYPE1 D_801F59E4;
// extern UNK_TYPE1 D_801F59E8;
// extern UNK_TYPE1 D_801F59EC;
// extern UNK_TYPE1 D_801F59F0;
// extern UNK_TYPE1 D_801F59F4;
// extern UNK_TYPE1 D_801F59F8;
// extern UNK_TYPE1 sSkyboxDrawMatrix;
+3 -3
View File
@@ -552,7 +552,7 @@ typedef struct {
/* 0x214 */ u16 unk_214;
/* 0x218 */ f32 unk_218;
/* 0x21C */ s16 unk_21C;
/* 0x21E */ s16 unk_21E;
/* 0x21E */ s16 bButtonDoAction;
/* 0x220 */ s16 unk_220;
/* 0x222 */ s16 unk_222;
/* 0x224 */ s16 unk_224;
@@ -1300,7 +1300,7 @@ struct PlayState {
/* 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 */ void* unk_18794; //! @TODO: Determine function prototype
/* 0x18794 */ s32 (*unk_18794)(struct PlayState* play, Player* player, s32 arg2, s32 arg3);
/* 0x18798 */ s32 (*setPlayerTalkAnim)(struct PlayState* play, void* talkAnim, s32 arg2);
/* 0x1879C */ s16 playerActorCsIds[10];
/* 0x187B0 */ MtxF viewProjectionMtxF;
@@ -1327,7 +1327,7 @@ struct PlayState {
/* 0x18876 */ s16 unk_18876;
/* 0x18878 */ s16 bgCoverAlpha;
/* 0x1887A */ u16 nextEntranceIndex;
/* 0x1887C */ s8 unk_1887C;
/* 0x1887C */ s8 unk_1887C; // shootingGalleryStatus?
/* 0x1887D */ s8 unk_1887D;
/* 0x1887E */ s8 unk_1887E;
/* 0x1887F */ u8 unk_1887F; // fadeTransition
+5
View File
@@ -80,6 +80,11 @@ typedef struct {
/* 0x3A */ s16 unk3A;
} ActorEnTest20C; // size = 0x3C
typedef struct {
/* 0x0 */ s16 unk_0; // frame?
/* 0x2 */ Vec3s unk_2; // pos?
} struct_80124618; // size = 0x8
typedef struct {
/* 0x00 */ s16 id;
/* 0x02 */ u8 type;
+4 -1
View File
@@ -261,7 +261,10 @@ typedef enum {
/* 0xA1 */ ITEM_GOLD_DUST_2,
/* 0xA2 */ ITEM_HYLIAN_LOACH_2,
/* 0xA3 */ ITEM_SEA_HORSE_CAUGHT,
/* 0xFD */ ITEM_UNK_FD = 0xFD,
/* 0xF0 */ ITEM_F0 = 0xF0,
/* 0xF1 */ ITEM_F1,
/* 0xF2 */ ITEM_F2,
/* 0xFD */ ITEM_FD = 0xFD,
/* 0xFF */ ITEM_NONE = 0xFF
} ItemID;
+278 -12
View File
@@ -24,6 +24,14 @@ typedef enum {
/* 0x07 */ PLAYER_BOOTS_MAX
} PlayerBoots;
typedef enum {
/* 0x00 */ PLAYER_STRENGTH_DEKU,
/* 0x01 */ PLAYER_STRENGTH_HUMAN,
/* 0x02 */ PLAYER_STRENGTH_ZORA,
/* 0x03 */ PLAYER_STRENGTH_GORON,
/* 0x04 */ PLAYER_STRENGTH_MAX
} PlayerStrength;
typedef enum {
/* 0x00 */ PLAYER_FORM_FIERCE_DEITY,
/* 0x01 */ PLAYER_FORM_GORON,
@@ -64,14 +72,14 @@ typedef enum {
typedef enum {
/* 0x00 */ PLAYER_AP_NONE,
/* 0x01 */ PLAYER_AP_UNK_1,
/* 0x02 */ PLAYER_AP_UNK_2,
/* 0x01 */ PLAYER_AP_LAST_USED,
/* 0x02 */ PLAYER_AP_FISHING_POLE,
/* 0x03 */ PLAYER_AP_SWORD_KOKIRI,
/* 0x04 */ PLAYER_AP_SWORD_RAZOR,
/* 0x05 */ PLAYER_AP_SWORD_GILDED,
/* 0x06 */ PLAYER_AP_SWORD_GREAT_FAIRY,
/* 0x07 */ PLAYER_AP_STICK,
/* 0x08 */ PLAYER_AP_UNK_8,
/* 0x08 */ PLAYER_AP_ZORA_FINS,
/* 0x09 */ PLAYER_AP_BOW,
/* 0x0A */ PLAYER_AP_BOW_FIRE,
/* 0x0B */ PLAYER_AP_BOW_ICE,
@@ -141,6 +149,44 @@ typedef enum {
/* 0xFD */ PLAYER_AP_MAX = 0xFD
} PlayerActionParam;
typedef enum {
/* 0 */ PLAYER_MWA_FORWARD_SLASH_1H, // Vertical one-handed slash
/* 1 */ PLAYER_MWA_FORWARD_SLASH_2H, // Vertical two-handed slash
/* 2 */ PLAYER_MWA_FORWARD_COMBO_1H, // Third vertical one-handed slash
/* 3 */ PLAYER_MWA_FORWARD_COMBO_2H, // Third vertical two-handed slash
/* 4 */ PLAYER_MWA_RIGHT_SLASH_1H, // Horizontal one-handed slash
/* 5 */ PLAYER_MWA_RIGHT_SLASH_2H, // Horizontal two-handed slash
/* 6 */ PLAYER_MWA_RIGHT_COMBO_1H, // Third horizontal one-handed slash
/* 7 */ PLAYER_MWA_RIGHT_COMBO_2H, // Third horizontal two-handed slash
/* 8 */ PLAYER_MWA_LEFT_SLASH_1H, // Targeted one-handed rightwalk slash
/* 9 */ PLAYER_MWA_LEFT_SLASH_2H, // Targeted two-handed rightwalk slash
/* 10 */ PLAYER_MWA_LEFT_COMBO_1H, // Third targeted one-handed rightwalk slash
/* 11 */ PLAYER_MWA_LEFT_COMBO_2H, // Third targeted two-handed rightwalk slash
/* 12 */ PLAYER_MWA_STAB_1H, // Crouch stab/targeted one-handed stab
/* 13 */ PLAYER_MWA_STAB_2H, // Targeted two-handed stab
/* 14 */ PLAYER_MWA_STAB_COMBO_1H, // Third targeted one-handed stab
/* 15 */ PLAYER_MWA_STAB_COMBO_2H, // Third targeted two-handed stab
/* 16 */ PLAYER_MWA_FLIPSLASH_START, // unused
/* 17 */ PLAYER_MWA_JUMPSLASH_START, // Start of jumpslash
/* 18 */ PLAYER_MWA_ZORA_JUMPKICK_START, // Start of Zora jump attack
/* 19 */ PLAYER_MWA_FLIPSLASH_FINISH, // unused
/* 20 */ PLAYER_MWA_JUMPSLASH_FINISH, // End of jumpslash
/* 21 */ PLAYER_MWA_ZORA_JUMPKICK_FINISH, // End of Zora jump attack
/* 22 */ PLAYER_MWA_BACKSLASH_RIGHT, // unused
/* 23 */ PLAYER_MWA_BACKSLASH_LEFT, // unused
/* 24 */ PLAYER_MWA_GORON_PUNCH_LEFT, // Goron punch
/* 25 */ PLAYER_MWA_GORON_PUNCH_RIGHT, // Second Goron punch
/* 26 */ PLAYER_MWA_GORON_PUNCH_BUTT, // Goron butt punch
/* 27 */ PLAYER_MWA_ZORA_PUNCH_LEFT, // Zora punch
/* 28 */ PLAYER_MWA_ZORA_PUNCH_COMBO, // Second Zora punch
/* 29 */ PLAYER_MWA_ZORA_PUNCH_KICK, // Zora kick
/* 30 */ PLAYER_MWA_SPIN_ATTACK_1H, // Half-charged one-handed spin
/* 31 */ PLAYER_MWA_SPIN_ATTACK_2H, // Half-charged two-handed spin
/* 32 */ PLAYER_MWA_BIG_SPIN_1H, // Fully-charged one-handed spin
/* 33 */ PLAYER_MWA_BIG_SPIN_2H, // Fully-charged two-handed spin
/* 34 */ PLAYER_MWA_MAX
} PlayerMeleeWeaponAnimation;
typedef struct {
/* 0x00 */ f32 unk_00;
/* 0x04 */ f32 unk_04;
@@ -178,7 +224,6 @@ typedef struct {
/* 0xD4 */ LinkAnimationHeader* unk_D4[2];
} PlayerAgeProperties; // size = 0xDC
typedef struct {
/* 0x00 */ s32 active;
/* 0x04 */ Vec3f tip;
@@ -188,6 +233,226 @@ typedef struct {
typedef void (*PlayerFuncD58)(struct PlayState*, struct Player*);
typedef struct {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 alpha;
/* 0x02 */ char unk_02[2]; // probably alignment padding
/* 0x04 */ MtxF mf;
} struct_80122D44_arg1_unk_04; // size = 0x44
typedef struct {
/* 0x00 */ u8 unk_00;
/* 0x01 */ s8 unk_01;
/* 0x02 */ char unk_02[2]; // probably alignment padding
/* 0x04 */ struct_80122D44_arg1_unk_04 unk_04[4];
} struct_80122D44_arg1; // size >= 0x114
typedef struct struct_80122744_arg1 {
/* 0x00 */ s8 unk_00;
/* 0x01 */ s8 unk_01;
/* 0x02 */ s8 unk_02;
/* 0x03 */ s8 unk_03;
/* 0x04 */ Vec3s* unk_04;
} struct_80122744_arg1; // size = 0x08
//
#define PLAYER_STATE1_1 (1 << 0)
//
#define PLAYER_STATE1_2 (1 << 1)
//
#define PLAYER_STATE1_4 (1 << 2)
//
#define PLAYER_STATE1_8 (1 << 3)
//
#define PLAYER_STATE1_10 (1 << 4)
//
#define PLAYER_STATE1_20 (1 << 5)
//
#define PLAYER_STATE1_40 (1 << 6)
//
#define PLAYER_STATE1_80 (1 << 7)
//
#define PLAYER_STATE1_100 (1 << 8)
//
#define PLAYER_STATE1_200 (1 << 9)
//
#define PLAYER_STATE1_400 (1 << 10)
//
#define PLAYER_STATE1_800 (1 << 11)
//
#define PLAYER_STATE1_1000 (1 << 12)
//
#define PLAYER_STATE1_2000 (1 << 13)
//
#define PLAYER_STATE1_4000 (1 << 14)
//
#define PLAYER_STATE1_8000 (1 << 15)
//
#define PLAYER_STATE1_10000 (1 << 16)
//
#define PLAYER_STATE1_20000 (1 << 17)
//
#define PLAYER_STATE1_40000 (1 << 18)
//
#define PLAYER_STATE1_80000 (1 << 19)
//
#define PLAYER_STATE1_100000 (1 << 20)
//
#define PLAYER_STATE1_200000 (1 << 21)
//
#define PLAYER_STATE1_400000 (1 << 22)
//
#define PLAYER_STATE1_800000 (1 << 23)
//
#define PLAYER_STATE1_1000000 (1 << 24)
//
#define PLAYER_STATE1_2000000 (1 << 25)
//
#define PLAYER_STATE1_4000000 (1 << 26)
// Swimming?
#define PLAYER_STATE1_8000000 (1 << 27)
//
#define PLAYER_STATE1_10000000 (1 << 28)
//
#define PLAYER_STATE1_20000000 (1 << 29)
//
#define PLAYER_STATE1_40000000 (1 << 30)
//
#define PLAYER_STATE1_80000000 (1 << 31)
//
#define PLAYER_STATE2_1 (1 << 0)
//
#define PLAYER_STATE2_2 (1 << 1)
//
#define PLAYER_STATE2_4 (1 << 2)
//
#define PLAYER_STATE2_8 (1 << 3)
//
#define PLAYER_STATE2_10 (1 << 4)
//
#define PLAYER_STATE2_20 (1 << 5)
//
#define PLAYER_STATE2_40 (1 << 6)
//
#define PLAYER_STATE2_80 (1 << 7)
//
#define PLAYER_STATE2_100 (1 << 8)
//
#define PLAYER_STATE2_200 (1 << 9)
//
#define PLAYER_STATE2_400 (1 << 10)
//
#define PLAYER_STATE2_800 (1 << 11)
//
#define PLAYER_STATE2_1000 (1 << 12)
//
#define PLAYER_STATE2_2000 (1 << 13)
//
#define PLAYER_STATE2_4000 (1 << 14)
//
#define PLAYER_STATE2_8000 (1 << 15)
//
#define PLAYER_STATE2_10000 (1 << 16)
//
#define PLAYER_STATE2_20000 (1 << 17)
//
#define PLAYER_STATE2_40000 (1 << 18)
//
#define PLAYER_STATE2_80000 (1 << 19)
//
#define PLAYER_STATE2_100000 (1 << 20)
//
#define PLAYER_STATE2_200000 (1 << 21)
//
#define PLAYER_STATE2_400000 (1 << 22)
//
#define PLAYER_STATE2_800000 (1 << 23)
//
#define PLAYER_STATE2_1000000 (1 << 24)
//
#define PLAYER_STATE2_2000000 (1 << 25)
//
#define PLAYER_STATE2_4000000 (1 << 26)
//
#define PLAYER_STATE2_8000000 (1 << 27)
//
#define PLAYER_STATE2_10000000 (1 << 28)
//
#define PLAYER_STATE2_20000000 (1 << 29)
//
#define PLAYER_STATE2_40000000 (1 << 30)
//
#define PLAYER_STATE2_80000000 (1 << 31)
//
#define PLAYER_STATE3_1 (1 << 0)
//
#define PLAYER_STATE3_2 (1 << 1)
//
#define PLAYER_STATE3_4 (1 << 2)
//
#define PLAYER_STATE3_8 (1 << 3)
//
#define PLAYER_STATE3_10 (1 << 4)
//
#define PLAYER_STATE3_20 (1 << 5)
//
#define PLAYER_STATE3_40 (1 << 6)
//
#define PLAYER_STATE3_80 (1 << 7)
//
#define PLAYER_STATE3_100 (1 << 8)
//
#define PLAYER_STATE3_200 (1 << 9)
//
#define PLAYER_STATE3_400 (1 << 10)
//
#define PLAYER_STATE3_800 (1 << 11)
//
#define PLAYER_STATE3_1000 (1 << 12)
//
#define PLAYER_STATE3_2000 (1 << 13)
//
#define PLAYER_STATE3_4000 (1 << 14)
//
#define PLAYER_STATE3_8000 (1 << 15)
//
#define PLAYER_STATE3_10000 (1 << 16)
//
#define PLAYER_STATE3_20000 (1 << 17)
//
#define PLAYER_STATE3_40000 (1 << 18)
//
#define PLAYER_STATE3_80000 (1 << 19)
//
#define PLAYER_STATE3_100000 (1 << 20)
//
#define PLAYER_STATE3_200000 (1 << 21)
//
#define PLAYER_STATE3_400000 (1 << 22)
//
#define PLAYER_STATE3_800000 (1 << 23)
//
#define PLAYER_STATE3_1000000 (1 << 24)
//
#define PLAYER_STATE3_2000000 (1 << 25)
//
#define PLAYER_STATE3_4000000 (1 << 26)
//
#define PLAYER_STATE3_8000000 (1 << 27)
//
#define PLAYER_STATE3_10000000 (1 << 28)
// breman mask march?
#define PLAYER_STATE3_20000000 (1 << 29)
//
#define PLAYER_STATE3_40000000 (1 << 30)
//
#define PLAYER_STATE3_80000000 (1 << 31)
typedef struct Player {
/* 0x000 */ Actor actor;
/* 0x144 */ s8 currentShield;
@@ -238,7 +503,7 @@ typedef struct Player {
/* 0x1DC */ OSMesgQueue giObjectLoadQueue;
/* 0x1F4 */ OSMesg giObjectLoadMsg;
/* 0x1F8 */ void* giObjectSegment;
/* 0x1FC */ u8 maskObjectLoading;
/* 0x1FC */ u8 maskObjectLoadState;
/* 0x1FD */ s8 maskId;
/* 0x200 */ DmaRequest maskDmaRequest;
/* 0x220 */ OSMesgQueue maskObjectLoadQueue;
@@ -266,7 +531,7 @@ typedef struct Player {
/* 0x38C */ s8 mountSide;
/* 0x390 */ Actor* rideActor;
/* 0x394 */ u8 csMode;
/* 0x395 */ u8 unk_395;
/* 0x395 */ u8 unk_395; // prevCsMode?
/* 0x396 */ u8 unk_396;
/* 0x397 */ u8 unk_397;
/* 0x398 */ Actor* unk_398;
@@ -282,15 +547,16 @@ typedef struct Player {
/* 0x3CC */ s16 unk_3CC;
/* 0x3CE */ s8 unk_3CE;
/* 0x3CF */ u8 unk_3CF;
/* 0x3D0 */ char unk_3D0[0x148];
/* 0x3D0 */ struct_80122D44_arg1 unk_3D0;
/* 0x404 */ UNK_TYPE1 unk_404[0x34];
/* 0x518 */ ColliderCylinder cylinder;
/* 0x564 */ ColliderQuad swordQuads[2];
/* 0x564 */ ColliderQuad meleeWeaponQuads[2];
/* 0x664 */ ColliderQuad shieldQuad;
/* 0x6E4 */ ColliderCylinder shieldCylinder;
/* 0x730 */ Actor* unk_730;
/* 0x734 */ char unk_734[4];
/* 0x738 */ s32 unk_738;
/* 0x73C */ s32 blureEffectIndex[3];
/* 0x73C */ s32 meleeWeaponEffectIndex[3];
/* 0x748 */ char unk_748[0x320];
/* 0xA68 */ PlayerAgeProperties* ageProperties; // repurposed as "transformation properties"?
/* 0xA6C */ u32 stateFlags1;
@@ -328,8 +594,8 @@ typedef struct Player {
/* 0xAD4 */ s16 currentYaw;
/* 0xAD6 */ s16 targetYaw;
/* 0xAD8 */ u16 unk_AD8;
/* 0xADA */ s8 swordAnimation;
/* 0xADB */ s8 swordState;
/* 0xADA */ s8 meleeWeaponAnimation;
/* 0xADB */ s8 meleeWeaponState;
/* 0xADC */ s8 unk_ADC;
/* 0xADD */ s8 unk_ADD;
/* 0xADE */ u8 unk_ADE;
@@ -389,7 +655,7 @@ typedef struct Player {
/* 0xB92 */ s16 unk_B92;
/* 0xB94 */ s16 unk_B94;
/* 0xB96 */ s16 unk_B96;
/* 0xB98 */ WeaponInfo swordInfo[3];
/* 0xB98 */ WeaponInfo meleeWeaponInfo[3];
/* 0xBEC */ Vec3f bodyPartsPos[18];
/* 0xCC4 */ MtxF mf_CC4;
/* 0xD04 */ MtxF shieldMf;
+4 -4
View File
@@ -11,10 +11,10 @@ struct FileChooseContext;
// TODO: properly name DOWN, RETURN and TOP
typedef enum RespawnMode {
/* 0 */ RESTART_MODE_DOWN, // "RESTART_MODE_DOWN"
/* 1 */ RESTART_MODE_RETURN, // "RESTART_MODE_RETURN"
/* 2 */ RESTART_MODE_TOP, // "RESTART_MODE_TOP"
/* 3 */ RESPAWN_MODE_UNK_3, // Maybe related to grottos
/* 0 */ RESPAWN_MODE_DOWN, // "RESTART_MODE_DOWN"
/* 1 */ RESPAWN_MODE_RETURN, // "RESTART_MODE_RETURN"
/* 2 */ RESPAWN_MODE_TOP, // "RESTART_MODE_TOP"
/* 3 */ RESPAWN_MODE_UNK_3, // Related to grottos
/* 4 */ RESPAWN_MODE_GORON, // "RESTART_MODE_GORON"
/* 5 */ RESPAWN_MODE_ZORA, // "RESTART_MODE_ZORA"
/* 6 */ RESPAWN_MODE_DEKU, // "RESTART_MODE_NUTS"
+1 -1
View File
@@ -260,7 +260,7 @@ typedef union {
typedef struct {
/* 0x00 */ s8 num;
/* 0x01 */ u8 unk1;
/* 0x02 */ u8 unk2;
/* 0x02 */ u8 unk2; // 3: Room is hot
/* 0x03 */ u8 unk3;
/* 0x04 */ s8 echo;
/* 0x05 */ u8 unk5;
+2 -2
View File
@@ -481,8 +481,8 @@ s32 Inventory_GetBtnBItem(PlayState* play) {
return ITEM_NONE;
} else if (CUR_FORM_EQUIP(EQUIP_SLOT_B) == ITEM_NONE) {
if (play->interfaceCtx.unk_21C != 0) {
if (play->interfaceCtx.unk_21E != 0) {
return play->interfaceCtx.unk_21E;
if (play->interfaceCtx.bButtonDoAction != 0) {
return play->interfaceCtx.bButtonDoAction;
}
}
return ITEM_NONE;
+5 -6
View File
@@ -1856,8 +1856,7 @@ s32 Actor_ProcessTalkRequest(Actor* actor, GameState* gameState) {
s32 func_800B8500(Actor* actor, PlayState* play, f32 xzRange, f32 yRange, s32 exchangeItemId) {
Player* player = GET_PLAYER(play);
if ((player->actor.flags & ACTOR_FLAG_100) ||
((exchangeItemId > EXCH_ITEM_NONE) && Player_InCsMode(&play->state)) ||
if ((player->actor.flags & ACTOR_FLAG_100) || ((exchangeItemId > EXCH_ITEM_NONE) && Player_InCsMode(play)) ||
(!actor->isTargeted &&
((fabsf(actor->playerHeightRel) > fabsf(yRange)) || ((actor->xzDistToPlayer > player->targetActorDistance)) ||
(xzRange < actor->xzDistToPlayer)))) {
@@ -1933,7 +1932,7 @@ s32 func_800B8718(Actor* actor, GameState* gameState) {
s32 func_800B874C(Actor* actor, PlayState* play, f32 xzRange, f32 yRange) {
Player* player = GET_PLAYER(play);
if ((player->actor.flags & ACTOR_FLAG_20000000) || Player_InCsMode(&play->state) ||
if ((player->actor.flags & ACTOR_FLAG_20000000) || Player_InCsMode(play) ||
(yRange < fabsf(actor->playerHeightRel)) || ((player->unk_A94 < actor->xzDistToPlayer)) ||
(xzRange < actor->xzDistToPlayer)) {
return false;
@@ -2205,8 +2204,8 @@ void func_800B9098(Actor* actor) {
actor->audioFlags |= 0x40;
}
s32 func_800B90AC(PlayState* play, Actor* actor, CollisionPoly* polygon, s32 index, s32 arg4) {
if (func_800C99D4(&play->colCtx, polygon, index) == 8) {
s32 func_800B90AC(PlayState* play, Actor* actor, CollisionPoly* polygon, s32 bgId, s32 arg4) {
if (func_800C99D4(&play->colCtx, polygon, bgId) == 8) {
return true;
}
@@ -4352,7 +4351,7 @@ s32 func_800BE184(PlayState* play, Actor* actor, f32 xzDist, s16 arg3, s16 arg4,
s16 phi_v0 = BINANG_SUB(BINANG_ROT180(actor->yawTowardsPlayer), player->actor.shape.rot.y);
s16 temp_t0 = actor->yawTowardsPlayer - arg5;
if ((actor->xzDistToPlayer <= xzDist) && (player->swordState != 0)) {
if ((actor->xzDistToPlayer <= xzDist) && (player->meleeWeaponState != 0)) {
if ((arg4 >= ABS_ALT(phi_v0)) && (arg3 >= ABS_ALT(temp_t0))) {
return true;
}
+1 -1
View File
@@ -1454,7 +1454,7 @@ void func_800EDA04(PlayState* play, CutsceneContext* csCtx) {
}
void func_800EDA84(PlayState* play, CutsceneContext* csCtx) {
if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_0) && !Player_InCsMode(&play->state)) {
if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_0) && !Player_InCsMode(play)) {
gSaveContext.save.cutscene = 0xFFFD;
}
+1 -1
View File
@@ -119,7 +119,7 @@ void FireObj_UpdateStateTransitions(PlayState* play, FireObj* fire) {
FireObj_SetState(fire, fire->dynamicSizeStep, FIRE_STATE_3);
}
if ((fire->flags & 2) && (player->itemActionParam == PLAYER_AP_STICK)) {
Math_Vec3f_Diff(&player->swordInfo[0].tip, &fire->position, &dist);
Math_Vec3f_Diff(&player->meleeWeaponInfo[0].tip, &fire->position, &dist);
if (Math3D_LengthSquared(&dist) < 400.0f) {
sp40 = true;
}
+1 -1
View File
@@ -398,7 +398,7 @@ void LifeMeter_UpdateSizeAndBeep(PlayState* play) {
if (interfaceCtx->lifeSizeChange <= 0) {
interfaceCtx->lifeSizeChange = 0;
interfaceCtx->lifeSizeChangeDirection = 0;
if (!Player_InCsMode(&play->state) && (play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0) &&
if (!Player_InCsMode(play) && (play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0) &&
LifeMeter_IsCritical() && !Play_InCsMode(play)) {
play_sound(NA_SE_SY_HITPOINT_ALARM);
}
+6 -6
View File
@@ -59,7 +59,7 @@
#pragma GLOBAL_ASM("asm/non_matchings/code/z_play/Play_Update.s")
s32 Play_InCsMode(PlayState* this) {
return (this->csCtx.state != 0) || Player_InCsMode(&this->state);
return (this->csCtx.state != 0) || Player_InCsMode(this);
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_play/func_80169100.s")
@@ -209,10 +209,10 @@ void func_80169ECC(PlayState* this) {
void func_80169EFC(GameState* thisx) {
PlayState* this = (PlayState*)thisx;
gSaveContext.respawn[RESTART_MODE_DOWN].tempSwitchFlags = this->actorCtx.flags.switches[2];
gSaveContext.respawn[RESTART_MODE_DOWN].unk_18 = this->actorCtx.flags.collectible[1];
gSaveContext.respawn[RESTART_MODE_DOWN].tempCollectFlags = this->actorCtx.flags.collectible[2];
this->nextEntranceIndex = gSaveContext.respawn[RESTART_MODE_DOWN].entranceIndex;
gSaveContext.respawn[RESPAWN_MODE_DOWN].tempSwitchFlags = this->actorCtx.flags.switches[2];
gSaveContext.respawn[RESPAWN_MODE_DOWN].unk_18 = this->actorCtx.flags.collectible[1];
gSaveContext.respawn[RESPAWN_MODE_DOWN].tempCollectFlags = this->actorCtx.flags.collectible[2];
this->nextEntranceIndex = gSaveContext.respawn[RESPAWN_MODE_DOWN].entranceIndex;
gSaveContext.respawnFlag = 1;
func_80169ECC(this);
this->sceneLoadFlag = 0x14;
@@ -224,7 +224,7 @@ void func_80169EFC(GameState* thisx) {
void func_80169F78(GameState* thisx) {
PlayState* this = (PlayState*)thisx;
this->nextEntranceIndex = gSaveContext.respawn[RESTART_MODE_TOP].entranceIndex;
this->nextEntranceIndex = gSaveContext.respawn[RESPAWN_MODE_TOP].entranceIndex;
gSaveContext.respawnFlag = -1;
func_80169ECC(this);
this->sceneLoadFlag = 0x14;
+1079 -74
View File
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -4,12 +4,12 @@ s32 Object_Spawn(ObjectContext* objectCtx, s16 id) {
size_t size;
objectCtx->status[objectCtx->num].id = id;
size = objectFileTable[id].vromEnd - objectFileTable[id].vromStart;
size = gObjectTable[id].vromEnd - gObjectTable[id].vromStart;
if (1) {}
if (size != 0) {
DmaMgr_SendRequest0(objectCtx->status[objectCtx->num].segment, objectFileTable[id].vromStart, size);
DmaMgr_SendRequest0(objectCtx->status[objectCtx->num].segment, gObjectTable[id].vromStart, size);
}
if (objectCtx->num < OBJECT_EXCHANGE_BANK_MAX - 1) {
@@ -66,7 +66,7 @@ void Object_UpdateBank(ObjectContext* objectCtx) {
s32 id = -status->id;
if (status->dmaReq.vromAddr == 0) {
objectFile = &objectFileTable[id];
objectFile = &gObjectTable[id];
size = objectFile->vromEnd - objectFile->vromStart;
if (size == 0) {
@@ -112,13 +112,13 @@ void Object_LoadAll(ObjectContext* objectCtx) {
for (i = 0; i < objectCtx->num; i++) {
id = objectCtx->status[i].id;
vromSize = objectFileTable[id].vromEnd - objectFileTable[id].vromStart;
vromSize = gObjectTable[id].vromEnd - gObjectTable[id].vromStart;
if (vromSize == 0) {
continue;
}
DmaMgr_SendRequest0(objectCtx->status[i].segment, objectFileTable[id].vromStart, vromSize);
DmaMgr_SendRequest0(objectCtx->status[i].segment, gObjectTable[id].vromStart, vromSize);
}
}
@@ -130,7 +130,7 @@ void* func_8012F73C(ObjectContext* objectCtx, s32 iParm2, s16 id) {
objectCtx->status[iParm2].id = -id;
objectCtx->status[iParm2].dmaReq.vromAddr = 0;
fileTableEntry = &objectFileTable[id];
fileTableEntry = &gObjectTable[id];
vromSize = fileTableEntry->vromEnd - fileTableEntry->vromStart;
// TODO: UB to cast void to u32
@@ -149,7 +149,7 @@ 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[RESTART_MODE_RETURN].playerParams == 0x0CFF)) {
(gSaveContext.respawnFlag == 0x02 && gSaveContext.respawn[RESPAWN_MODE_RETURN].playerParams == 0x0CFF)) {
// Skull Kid Object
Object_Spawn(&play->objectCtx, OBJECT_STK);
return;
@@ -159,7 +159,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 = gLinkFormObjectIndexes[(void)0, gSaveContext.save.playerForm];
playerObjectId = gPlayerFormObjectIndices[(void)0, gSaveContext.save.playerForm];
gActorOverlayTable[0].initInfo->objectId = playerObjectId;
Object_Spawn(&play->objectCtx, playerObjectId);
+1 -1
View File
@@ -596,7 +596,7 @@ ItemEquips sSaveDefaultItemEquips = {
{ ITEM_SWORD_KOKIRI, ITEM_NONE, ITEM_NONE, ITEM_NONE },
{ ITEM_SWORD_KOKIRI, ITEM_NONE, ITEM_NONE, ITEM_NONE },
{ ITEM_SWORD_KOKIRI, ITEM_NONE, ITEM_NONE, ITEM_NONE },
{ ITEM_UNK_FD, ITEM_NONE, ITEM_NONE, ITEM_NONE },
{ ITEM_FD, ITEM_NONE, ITEM_NONE, ITEM_NONE },
},
{
{ SLOT_OCARINA, SLOT_NONE, SLOT_NONE, SLOT_NONE },
@@ -107,7 +107,7 @@ void ArmsHook_DetachHookFromActor(ArmsHook* this) {
s32 ArmsHook_CheckForCancel(ArmsHook* this) {
Player* player = (Player*)this->actor.parent;
if (func_801240C8(player)) {
if (Player_IsHoldingHookshot(player)) {
if ((player->heldItemActionParam != player->itemActionParam) || ((player->actor.flags & ACTOR_FLAG_100)) ||
((player->stateFlags1 & 0x4000080))) {
this->timer = 0;
@@ -128,7 +128,7 @@ void ArmsHook_AttachHookToActor(ArmsHook* this, Actor* actor) {
void ArmsHook_Shoot(ArmsHook* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if ((this->actor.parent == NULL) || (!func_801240C8(player))) {
if ((this->actor.parent == NULL) || (!Player_IsHoldingHookshot(player))) {
ArmsHook_DetachHookFromActor(this);
Actor_MarkForDeath(&this->actor);
return;
@@ -311,13 +311,13 @@ void ArmsHook_Draw(Actor* thisx, PlayState* play) {
Matrix_MultVec3f(&D_808C1C10, &this->unk1E0);
Matrix_MultVec3f(&D_808C1C28, &sp5C);
Matrix_MultVec3f(&D_808C1C34, &sp50);
this->unk1C4.active = false;
this->unk_1C4.active = false;
} else {
Matrix_MultVec3f(&D_808C1C1C, &this->unk1E0);
Matrix_MultVec3f(&D_808C1C40, &sp5C);
Matrix_MultVec3f(&D_808C1C4C, &sp50);
}
func_80126440(play, &this->collider, &this->unk1C4, &sp5C, &sp50);
func_80126440(play, &this->collider, &this->unk_1C4, &sp5C, &sp50);
func_8012C28C(play->state.gfxCtx);
func_80122868(play, player);

Some files were not shown because too many files have changed in this diff Show More