diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 8493df3d..95fde85a 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -1288,7 +1288,7 @@ _ZN14AdventureFlags3SetEjb kind:function(arm,size=0x74) addr:0x209779c _ZN14AdventureFlags18func_Ov00_02097810Ei kind:function(arm,size=0x158) addr:0x2097810 _ZN14AdventureFlags18func_ov00_02097968Ei kind:function(arm,size=0xdc) addr:0x2097968 _ZN14AdventureFlags18func_ov00_02097a44Eii kind:function(arm,size=0x158) addr:0x2097a44 -_ZN14AdventureFlags18func_ov00_02097b9cEv kind:function(arm,size=0x10) addr:0x2097b9c +_ZN14AdventureFlags18func_ov00_02097b9cEi kind:function(arm,size=0x10) addr:0x2097b9c _ZN14AdventureFlags18func_ov00_02097bacEv kind:function(arm,size=0x10) addr:0x2097bac _ZN14AdventureFlags18func_ov00_02097bbcEv kind:function(arm,size=0x10) addr:0x2097bbc _ZN14AdventureFlags18func_ov00_02097bccEv kind:function(arm,size=0x10) addr:0x2097bcc diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 45a0c886..afb58cce 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -1288,7 +1288,7 @@ _ZN14AdventureFlags3SetEjb kind:function(arm,size=0x74) addr:0x209773c _ZN14AdventureFlags18func_Ov00_02097810Ei kind:function(arm,size=0x158) addr:0x20977b0 _ZN14AdventureFlags18func_ov00_02097968Ei kind:function(arm,size=0xdc) addr:0x2097908 _ZN14AdventureFlags18func_ov00_02097a44Eii kind:function(arm,size=0x158) addr:0x20979e4 -_ZN14AdventureFlags18func_ov00_02097b9cEv kind:function(arm,size=0x10) addr:0x2097b3c +_ZN14AdventureFlags18func_ov00_02097b9cEi kind:function(arm,size=0x10) addr:0x2097b3c _ZN14AdventureFlags18func_ov00_02097bacEv kind:function(arm,size=0x10) addr:0x2097b4c _ZN14AdventureFlags18func_ov00_02097bbcEv kind:function(arm,size=0x10) addr:0x2097b5c _ZN14AdventureFlags18func_ov00_02097bccEv kind:function(arm,size=0x10) addr:0x2097b6c diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp index 65831d20..2a353075 100644 --- a/include/Save/AdventureFlags.hpp +++ b/include/Save/AdventureFlags.hpp @@ -92,7 +92,7 @@ public: void func_Ov00_02097810(s32 param1); unk32 func_ov00_02097968(unk32 param1); unk32 func_ov00_02097a44(unk32 param1, s32 param2); - bool func_ov00_02097b9c(); + bool func_ov00_02097b9c(s32 param1); bool func_ov00_02097bac(); bool func_ov00_02097bbc(); bool func_ov00_02097bcc(); diff --git a/src/00_Core/Player/LinkStateItem.cpp b/src/00_Core/Player/LinkStateItem.cpp index ecedca78..6719ee12 100644 --- a/src/00_Core/Player/LinkStateItem.cpp +++ b/src/00_Core/Player/LinkStateItem.cpp @@ -1,10 +1,34 @@ +#include "Item/ItemManager.hpp" #include "Player/LinkStateItem.hpp" +#include "Save/AdventureFlags.hpp" void LinkStateItem::vfunc_00() {} -LinkStateId LinkStateItem::GetId() {} -s32 LinkStateItem::IsHammerEquipped() {} + +LinkStateId LinkStateItem::GetId() { + return 1; +} + +s32 LinkStateItem::IsHammerEquipped() { + switch (this->mEquipId) { + case 8: + return 0; + default: + return -1; + } +} + void LinkStateItem::OnStateLeave(s32 param1) {} -EquipBombchu *LinkStateItem::GetEquipBombchu() {} + +EquipBombchu *LinkStateItem::GetEquipBombchu() { + return (EquipBombchu *)ItemManager::GetEquipItemUnchecked(7); +} + LinkStateMove *LinkStateItem::GetLinkStateMove() {} -bool LinkStateItem::func_ov00_020abf70() {} -bool LinkStateItem::vfunc_28() {} + +bool LinkStateItem::func_ov00_020abf70() { + return gAdventureFlags->func_ov00_02097b9c(this->mUnk_5c); +} + +bool LinkStateItem::vfunc_28() { + return this->mUnk_5c < 0; +} diff --git a/src/00_Core/Save/AdventureFlags.cpp b/src/00_Core/Save/AdventureFlags.cpp index 03bb6c76..a6a944b5 100644 --- a/src/00_Core/Save/AdventureFlags.cpp +++ b/src/00_Core/Save/AdventureFlags.cpp @@ -14,7 +14,7 @@ void AdventureFlags::Set(AdventureFlag flag, bool value) {} void AdventureFlags::func_Ov00_02097810(s32 param1) {} unk32 AdventureFlags::func_ov00_02097968(unk32 param1) {} unk32 AdventureFlags::func_ov00_02097a44(unk32 param1, s32 param2) {} -bool AdventureFlags::func_ov00_02097b9c() {} +bool AdventureFlags::func_ov00_02097b9c(s32 param1) {} bool AdventureFlags::func_ov00_02097bac() {} bool AdventureFlags::func_ov00_02097bbc() {} bool AdventureFlags::func_ov00_02097bcc() {}