diff --git a/config/eur/arm9/overlays/ov012/symbols.txt b/config/eur/arm9/overlays/ov012/symbols.txt index b1e3309f..84b02182 100644 --- a/config/eur/arm9/overlays/ov012/symbols.txt +++ b/config/eur/arm9/overlays/ov012/symbols.txt @@ -216,30 +216,30 @@ func_ov012_0211aa4c kind:function(arm,size=0x20) addr:0x211aa4c func_ov012_0211aa6c kind:function(arm,size=0xc) addr:0x211aa6c func_ov012_0211aa78 kind:function(arm,size=0x1c) addr:0x211aa78 func_ov012_0211aa94 kind:function(arm,size=0xc) addr:0x211aa94 -func_ov012_0211aaa0 kind:function(arm,size=0x268) addr:0x211aaa0 -func_ov012_0211ad08 kind:function(arm,size=0x5c) addr:0x211ad08 -func_ov012_0211ad64 kind:function(arm,size=0x64) addr:0x211ad64 -func_ov012_0211adc8 kind:function(arm,size=0xc) addr:0x211adc8 -func_ov012_0211add4 kind:function(arm,size=0x10) addr:0x211add4 -func_ov012_0211ade4 kind:function(arm,size=0x44) addr:0x211ade4 -func_ov012_0211ae28 kind:function(arm,size=0x24) addr:0x211ae28 -func_ov012_0211ae4c kind:function(arm,size=0x114) addr:0x211ae4c -func_ov012_0211af60 kind:function(arm,size=0x10) addr:0x211af60 -func_ov012_0211af70 kind:function(arm,size=0x15c) addr:0x211af70 -func_ov012_0211b0cc kind:function(arm,size=0x24) addr:0x211b0cc -func_ov012_0211b0f0 kind:function(arm,size=0x1b0) addr:0x211b0f0 -func_ov012_0211b2a0 kind:function(arm,size=0xe4) addr:0x211b2a0 -func_ov012_0211b384 kind:function(arm,size=0xc) addr:0x211b384 -func_ov012_0211b390 kind:function(arm,size=0x144) addr:0x211b390 -func_ov012_0211b4d4 kind:function(arm,size=0x18) addr:0x211b4d4 -func_ov012_0211b4ec kind:function(arm,size=0x1ac) addr:0x211b4ec -func_ov012_0211b698 kind:function(arm,size=0x224) addr:0x211b698 -func_ov012_0211b8bc kind:function(arm,size=0xdc) addr:0x211b8bc -func_ov012_0211b998 kind:function(arm,size=0x2c) addr:0x211b998 -func_ov012_0211b9c4 kind:function(arm,size=0xd0) addr:0x211b9c4 -func_ov012_0211ba94 kind:function(arm,size=0x74) addr:0x211ba94 -func_ov012_0211bb08 kind:function(arm,size=0xcc) addr:0x211bb08 -func_ov012_0211bbd4 kind:function(arm,size=0x8) addr:0x211bbd4 +_ZN27PlayerBattleLinkControlDataC2Ev kind:function(arm,size=0x268) addr:0x211aaa0 +_ZN27PlayerBattleLinkControlDataD1Ev kind:function(arm,size=0x5c) addr:0x211ad08 +_ZN27PlayerBattleLinkControlDataD0Ev kind:function(arm,size=0x64) addr:0x211ad64 +_ZN27PlayerBattleLinkControlData8vfunc_18Ev kind:function(arm,size=0xc) addr:0x211adc8 +_ZN27PlayerBattleLinkControlData8vfunc_14Ei kind:function(arm,size=0x10) addr:0x211add4 +_ZN27PlayerBattleLinkControlData8vfunc_60Eiii kind:function(arm,size=0x44) addr:0x211ade4 +_ZN27PlayerBattleLinkControlData8vfunc_68Eii kind:function(arm,size=0x24) addr:0x211ae28 +_ZN27PlayerBattleLinkControlData8vfunc_64Ej kind:function(arm,size=0x114) addr:0x211ae4c +_ZN27PlayerBattleLinkControlData8vfunc_6cEiP5Vec3p kind:function(arm,size=0x10) addr:0x211af60 +_ZN27PlayerBattleLinkControlData19func_ov012_0211af70Ev kind:function(arm,size=0x15c) addr:0x211af70 +_ZN27PlayerBattleLinkControlData8vfunc_20Ev kind:function(arm,size=0x24) addr:0x211b0cc +_ZN27PlayerBattleLinkControlData8vfunc_80Ei kind:function(arm,size=0x1b0) addr:0x211b0f0 +_ZN27PlayerBattleLinkControlData8vfunc_2cEv kind:function(arm,size=0xe4) addr:0x211b2a0 +_Z19func_ov012_0211b384Pii kind:function(arm,size=0xc) addr:0x211b384 +_ZN27PlayerBattleLinkControlData8vfunc_30Ev kind:function(arm,size=0x144) addr:0x211b390 +_ZN27PlayerBattleLinkControlData8vfunc_38Eii kind:function(arm,size=0x18) addr:0x211b4d4 +_ZN27PlayerBattleLinkControlData8vfunc_40EPtP5Vec3pic kind:function(arm,size=0x1ac) addr:0x211b4ec +_ZN27PlayerBattleLinkControlData8vfunc_3cEii kind:function(arm,size=0x224) addr:0x211b698 +_ZN27PlayerBattleLinkControlData8vfunc_44EiPiis kind:function(arm,size=0xdc) addr:0x211b8bc +_ZN27PlayerBattleLinkControlData8vfunc_70Ei kind:function(arm,size=0x2c) addr:0x211b998 +_ZN27PlayerBattleLinkControlData19func_ov012_0211b9c4EiP5Vec3p kind:function(arm,size=0xd0) addr:0x211b9c4 +_ZN27PlayerBattleLinkControlData8vfunc_4cEiP5Vec3p kind:function(arm,size=0x74) addr:0x211ba94 +_ZN27PlayerBattleLinkControlData19func_ov012_0211bb08Ei kind:function(arm,size=0xcc) addr:0x211bb08 +_ZN27PlayerBattleLinkControlData14GetCharacterIdEv kind:function(arm,size=0x8) addr:0x211bbd4 func_ov012_0211bbdc kind:function(arm,size=0x44) addr:0x211bbdc func_ov012_0211bc20 kind:function(arm,size=0x34) addr:0x211bc20 func_ov012_0211bc54 kind:function(arm,size=0x10) addr:0x211bc54 @@ -1155,7 +1155,7 @@ data_ov012_02135e18 kind:data(any) addr:0x2135e18 data_ov012_02135e1c kind:data(any) addr:0x2135e1c data_ov012_02135e40 kind:data(any) addr:0x2135e40 data_ov012_02135e70 kind:data(any) addr:0x2135e70 -data_ov012_02135e80 kind:data(any) addr:0x2135e80 +_ZTV27PlayerBattleLinkControlData kind:data(any) addr:0x2135e80 data_ov012_02135f04 kind:data(any) addr:0x2135f04 data_ov012_02135f18 kind:data(any) addr:0x2135f18 data_ov012_02135f20 kind:data(any) addr:0x2135f20 diff --git a/config/usa/arm9/overlays/ov012/symbols.txt b/config/usa/arm9/overlays/ov012/symbols.txt index 7342f7ee..028f78c9 100644 --- a/config/usa/arm9/overlays/ov012/symbols.txt +++ b/config/usa/arm9/overlays/ov012/symbols.txt @@ -216,30 +216,30 @@ func_ov012_0211aa4c kind:function(arm,size=0x20) addr:0x211a9cc func_ov012_0211aa6c kind:function(arm,size=0xc) addr:0x211a9ec func_ov012_0211aa78 kind:function(arm,size=0x1c) addr:0x211a9f8 func_ov012_0211aa94 kind:function(arm,size=0xc) addr:0x211aa14 -func_ov012_0211aaa0 kind:function(arm,size=0x268) addr:0x211aa20 -func_ov012_0211ad08 kind:function(arm,size=0x5c) addr:0x211ac88 -func_ov012_0211ad64 kind:function(arm,size=0x64) addr:0x211ace4 -func_ov012_0211adc8 kind:function(arm,size=0xc) addr:0x211ad48 -func_ov012_0211add4 kind:function(arm,size=0x10) addr:0x211ad54 -func_ov012_0211ade4 kind:function(arm,size=0x44) addr:0x211ad64 -func_ov012_0211ae28 kind:function(arm,size=0x24) addr:0x211ada8 -func_ov012_0211ae4c kind:function(arm,size=0x114) addr:0x211adcc -func_ov012_0211af60 kind:function(arm,size=0x10) addr:0x211aee0 -func_ov012_0211af70 kind:function(arm,size=0x15c) addr:0x211aef0 -func_ov012_0211b0cc kind:function(arm,size=0x24) addr:0x211b04c -func_ov012_0211b0f0 kind:function(arm,size=0x1b0) addr:0x211b070 -func_ov012_0211b2a0 kind:function(arm,size=0xe4) addr:0x211b220 -func_ov012_0211b384 kind:function(arm,size=0xc) addr:0x211b304 -func_ov012_0211b390 kind:function(arm,size=0x144) addr:0x211b310 -func_ov012_0211b4d4 kind:function(arm,size=0x18) addr:0x211b454 -func_ov012_0211b4ec kind:function(arm,size=0x1ac) addr:0x211b46c -func_ov012_0211b698 kind:function(arm,size=0x224) addr:0x211b618 -func_ov012_0211b8bc kind:function(arm,size=0xdc) addr:0x211b83c -func_ov012_0211b998 kind:function(arm,size=0x2c) addr:0x211b918 -func_ov012_0211b9c4 kind:function(arm,size=0xd0) addr:0x211b944 -func_ov012_0211ba94 kind:function(arm,size=0x74) addr:0x211ba14 -func_ov012_0211bb08 kind:function(arm,size=0xcc) addr:0x211ba88 -func_ov012_0211bbd4 kind:function(arm,size=0x8) addr:0x211bb54 +_ZN27PlayerBattleLinkControlDataC2Ev kind:function(arm,size=0x268) addr:0x211aa20 +_ZN27PlayerBattleLinkControlDataD1Ev kind:function(arm,size=0x5c) addr:0x211ac88 +_ZN27PlayerBattleLinkControlDataD0Ev kind:function(arm,size=0x64) addr:0x211ace4 +_ZN27PlayerBattleLinkControlData8vfunc_18Ev kind:function(arm,size=0xc) addr:0x211ad48 +_ZN27PlayerBattleLinkControlData8vfunc_14Ei kind:function(arm,size=0x10) addr:0x211ad54 +_ZN27PlayerBattleLinkControlData8vfunc_60Eiii kind:function(arm,size=0x44) addr:0x211ad64 +_ZN27PlayerBattleLinkControlData8vfunc_68Eii kind:function(arm,size=0x24) addr:0x211ada8 +_ZN27PlayerBattleLinkControlData8vfunc_64Ej kind:function(arm,size=0x114) addr:0x211adcc +_ZN27PlayerBattleLinkControlData8vfunc_6cEiP5Vec3p kind:function(arm,size=0x10) addr:0x211aee0 +_ZN27PlayerBattleLinkControlData19func_ov012_0211af70Ev kind:function(arm,size=0x15c) addr:0x211aef0 +_ZN27PlayerBattleLinkControlData8vfunc_20Ev kind:function(arm,size=0x24) addr:0x211b04c +_ZN27PlayerBattleLinkControlData8vfunc_80Ei kind:function(arm,size=0x1b0) addr:0x211b070 +_ZN27PlayerBattleLinkControlData8vfunc_2cEv kind:function(arm,size=0xe4) addr:0x211b220 +_Z19func_ov012_0211b384Pii kind:function(arm,size=0xc) addr:0x211b304 +_ZN27PlayerBattleLinkControlData8vfunc_30Ev kind:function(arm,size=0x144) addr:0x211b310 +_ZN27PlayerBattleLinkControlData8vfunc_38Eii kind:function(arm,size=0x18) addr:0x211b454 +_ZN27PlayerBattleLinkControlData8vfunc_40EPtP5Vec3pic kind:function(arm,size=0x1ac) addr:0x211b46c +_ZN27PlayerBattleLinkControlData8vfunc_3cEii kind:function(arm,size=0x224) addr:0x211b618 +_ZN27PlayerBattleLinkControlData8vfunc_44EiPiis kind:function(arm,size=0xdc) addr:0x211b83c +_ZN27PlayerBattleLinkControlData8vfunc_70Ei kind:function(arm,size=0x2c) addr:0x211b918 +_ZN27PlayerBattleLinkControlData19func_ov012_0211b9c4EiP5Vec3p kind:function(arm,size=0xd0) addr:0x211b944 +_ZN27PlayerBattleLinkControlData8vfunc_4cEiP5Vec3p kind:function(arm,size=0x74) addr:0x211ba14 +_ZN27PlayerBattleLinkControlData19func_ov012_0211bb08Ei kind:function(arm,size=0xcc) addr:0x211ba88 +_ZN27PlayerBattleLinkControlData14GetCharacterIdEv kind:function(arm,size=0x8) addr:0x211bb54 func_ov012_0211bbdc kind:function(arm,size=0x44) addr:0x211bb5c func_ov012_0211bc20 kind:function(arm,size=0x34) addr:0x211bba0 func_ov012_0211bc54 kind:function(arm,size=0x10) addr:0x211bbd4 @@ -1155,7 +1155,7 @@ data_ov012_02135e18 kind:data(any) addr:0x2135d98 data_ov012_02135e1c kind:data(any) addr:0x2135d9c data_ov012_02135e40 kind:data(any) addr:0x2135dc0 data_ov012_02135e70 kind:data(any) addr:0x2135df0 -data_ov012_02135e80 kind:data(any) addr:0x2135e00 +_ZTV27PlayerBattleLinkControlData kind:data(any) addr:0x2135e00 data_ov012_02135f04 kind:data(any) addr:0x2135e84 data_ov012_02135f18 kind:data(any) addr:0x2135e98 data_ov012_02135f20 kind:data(any) addr:0x2135ea0 diff --git a/docs/overlays.md b/docs/overlays.md index f19d28f8..d966dd91 100644 --- a/docs/overlays.md +++ b/docs/overlays.md @@ -16,7 +16,7 @@ contribute to this list! `09` | --- | 3 | `10` | --- | 3 | `11` | --- | 3 | -`12` | --- | 3 | +`12` | Battle | 3 | Handles battle mode. `13` | --- | 3 | `14` | Land | 4 | Link and essential land-based actors `15` | --- | 4 | diff --git a/include/Player/Battle/PlayerBattleLinkControlData.hpp b/include/Player/Battle/PlayerBattleLinkControlData.hpp new file mode 100644 index 00000000..5c895618 --- /dev/null +++ b/include/Player/Battle/PlayerBattleLinkControlData.hpp @@ -0,0 +1,51 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Item/ItemModelLoader.hpp" +#include "Player/PlayerControlData.hpp" +#include "Unknown/UnkStruct_02035064.hpp" + +class PlayerBattleLinkControlData : public PlayerControlData { +public: + /* 000 (base) */ + /* 1a0 */ s32 mUnk_1a0; + /* 1a4 */ unk32 mUnk_1a4; + /* 1a8 */ UnkStruct_02035064 mUnk_1a8; + /* 230 */ unk32 mUnk_230; + /* 234 */ unk32 mUnk_234; + /* 238 */ ItemModelLoader *mUnk_238; + /* 23c */ unk32 mUnk_23c; + /* 240 */ unk32 mUnk_240; + /* 244 */ u8 mUnk_244; + /* 245 */ u8 mUnk_245; + /* 246 */ u8 mUnk_246; + /* 247 */ unk8 mUnk_247; + /* 248 */ + + /* 04 */ ~PlayerBattleLinkControlData() override; + /* 10 */ unk32 GetCharacterId() override; + /* 14 */ void vfunc_14(s32 param1) override; + /* 18 */ void vfunc_18() override; + /* 20 */ void vfunc_20() override; + /* 2c */ void vfunc_2c() override; + /* 30 */ void vfunc_30() override; + /* 38 */ void vfunc_38(s32 param1, s32 param2) override; + /* 3c */ void vfunc_3c(s32 param1, s32 param2) override; + /* 40 */ void vfunc_40(u16 *param1, Vec3p *param2, unk32 param3, char param4) override; + /* 44 */ void vfunc_44(unk32 param1, unk32 *param2, unk32 param3, unk16 param4) override; + /* 4c */ void vfunc_4c(unk32 param1, Vec3p *param2) override; + /* 60 */ void vfunc_60(unk32 param1, unk32 param2, s32 param3) override; + /* 64 */ void vfunc_64(u32 param1) override; + /* 68 */ void vfunc_68(unk32 param1, unk32 param2) override; + /* 6c */ void vfunc_6c(s32 param1, Vec3p *param2) override; + /* 70 */ void vfunc_70(s32 param1) override; + /* 80 */ void vfunc_80(s32 param1) override; + /* 84 */ + + PlayerBattleLinkControlData(); + void func_ov012_0211af70(); + bool func_ov012_0211b9c4(s32 param1, Vec3p *param2); + void func_ov012_0211bb08(s32 param1); +}; diff --git a/include/Player/PlayerControlData.hpp b/include/Player/PlayerControlData.hpp index 99802698..3527810c 100644 --- a/include/Player/PlayerControlData.hpp +++ b/include/Player/PlayerControlData.hpp @@ -62,8 +62,8 @@ public: /* 00 */ virtual void vfunc_00(); /* 04 */ virtual ~PlayerControlData(); /* 0c */ virtual unk32 vfunc_0c(); - /* 10 */ virtual void vfunc_10() = 0; - /* 14 */ virtual void vfunc_14() = 0; + /* 10 */ virtual unk32 GetCharacterId() = 0; + /* 14 */ virtual void vfunc_14(s32 param1) = 0; /* 18 */ virtual void vfunc_18(); /* 1c */ virtual void vfunc_1c(); /* 20 */ virtual void vfunc_20(); @@ -72,21 +72,21 @@ public: /* 2c */ virtual void vfunc_2c(); /* 30 */ virtual void vfunc_30(); /* 34 */ virtual void vfunc_34(); - /* 38 */ virtual void vfunc_38() = 0; - /* 3c */ virtual void vfunc_3c(); - /* 40 */ virtual void vfunc_40(); - /* 44 */ virtual void vfunc_44(); + /* 38 */ virtual void vfunc_38(s32 param1, s32 param2) = 0; + /* 3c */ virtual void vfunc_3c(s32 param1, s32 param2); + /* 40 */ virtual void vfunc_40(u16 *param1, Vec3p *param2, unk32 param3, char param4); + /* 44 */ virtual void vfunc_44(unk32 param1, unk32 *param2, unk32 param3, unk16 param4); /* 48 */ virtual void vfunc_48(unk32 param1, unk32 param2, unk32 param3, s16 param4); - /* 4c */ virtual void vfunc_4c(); + /* 4c */ virtual void vfunc_4c(unk32 param1, Vec3p *param2); /* 50 */ virtual void vfunc_50(); /* 54 */ virtual void vfunc_54(); /* 58 */ virtual void vfunc_58(); /* 5c */ virtual void vfunc_5c(); /* 60 */ virtual void vfunc_60(unk32 param1, unk32 param2, s32 param3); - /* 64 */ virtual void vfunc_64(); + /* 64 */ virtual void vfunc_64(u32 param1); /* 68 */ virtual void vfunc_68(unk32 param1, unk32 param2); /* 6c */ virtual void vfunc_6c(s32 param1, Vec3p *param2); - /* 70 */ virtual void vfunc_70(); + /* 70 */ virtual void vfunc_70(s32 param1); /* 74 */ virtual unk32 vfunc_74(); /* 78 */ virtual unk32 vfunc_78(); /* 7c */ virtual unk32 vfunc_7c(); diff --git a/src/00_Core/Player/PlayerControlData.cpp b/src/00_Core/Player/PlayerControlData.cpp index ae27e116..50e6c853 100644 --- a/src/00_Core/Player/PlayerControlData.cpp +++ b/src/00_Core/Player/PlayerControlData.cpp @@ -10,7 +10,7 @@ void PlayerControlData::func_ov000_020b45f8(unk32 *param1, unk8 param2, unk8 par void PlayerControlData::func_ov000_020b464c(unk32 *param1, unk8 param2, unk8 param3) {} void PlayerControlData::vfunc_60(unk32 param1, unk32 param2, s32 param3) {} void PlayerControlData::vfunc_68(unk32 param1, unk32 param2) {} -void PlayerControlData::vfunc_64() {} +void PlayerControlData::vfunc_64(u32 param1) {} void PlayerControlData::vfunc_20() {} void PlayerControlData::vfunc_24() {} void PlayerControlData::vfunc_28() {} @@ -23,12 +23,12 @@ unk32 PlayerControlData::vfunc_78() {} void PlayerControlData::func_ov000_020b484c(s32 param1, s32 param2, s32 param3) {} void PlayerControlData::vfunc_6c(s32 param1, Vec3p *param2) {} void PlayerControlData::vfunc_5c() {} -void PlayerControlData::vfunc_3c() {} -void PlayerControlData::vfunc_40() {} -void PlayerControlData::vfunc_44() {} +void PlayerControlData::vfunc_3c(s32 param1, s32 param2) {} +void PlayerControlData::vfunc_40(u16 *param1, Vec3p *param2, unk32 param3, char param4) {} +void PlayerControlData::vfunc_44(unk32 param1, unk32 *param2, unk32 param3, unk16 param4) {} void PlayerControlData::vfunc_48(unk32 param1, unk32 param2, unk32 param3, s16 param4) {} -void PlayerControlData::vfunc_4c() {} -void PlayerControlData::vfunc_70() {} +void PlayerControlData::vfunc_4c(unk32 param1, Vec3p *param2) {} +void PlayerControlData::vfunc_70(s32 param1) {} void PlayerControlData::vfunc_50() {} void PlayerControlData::vfunc_54() {} void PlayerControlData::vfunc_58() {} diff --git a/src/12_Battle/Player/Battle/PlayerBattleLinkControlData.cpp b/src/12_Battle/Player/Battle/PlayerBattleLinkControlData.cpp new file mode 100644 index 00000000..59cfa4a6 --- /dev/null +++ b/src/12_Battle/Player/Battle/PlayerBattleLinkControlData.cpp @@ -0,0 +1,25 @@ +#include "Player/Battle/PlayerBattleLinkControlData.hpp" + +PlayerBattleLinkControlData::PlayerBattleLinkControlData() {} +PlayerBattleLinkControlData::~PlayerBattleLinkControlData() {} +void PlayerBattleLinkControlData::vfunc_18() {} +void PlayerBattleLinkControlData::vfunc_14(s32 param1) {} +void PlayerBattleLinkControlData::vfunc_60(unk32 param1, unk32 param2, s32 param3) {} +void PlayerBattleLinkControlData::vfunc_68(unk32 param1, unk32 param2) {} +void PlayerBattleLinkControlData::vfunc_64(u32 param1) {} +void PlayerBattleLinkControlData::vfunc_6c(s32 param1, Vec3p *param2) {} +void PlayerBattleLinkControlData::func_ov012_0211af70() {} +void PlayerBattleLinkControlData::vfunc_20() {} +void PlayerBattleLinkControlData::vfunc_80(s32 param1) {} +void PlayerBattleLinkControlData::vfunc_2c() {} +void func_ov012_0211b384(unk32 *param1, s32 param2) {} +void PlayerBattleLinkControlData::vfunc_30() {} +void PlayerBattleLinkControlData::vfunc_38(s32 param1, s32 param2) {} +void PlayerBattleLinkControlData::vfunc_40(u16 *param1, Vec3p *param2, unk32 param3, char param4) {} +void PlayerBattleLinkControlData::vfunc_3c(s32 param1, s32 param2) {} +void PlayerBattleLinkControlData::vfunc_44(unk32 param1, unk32 *param2, unk32 param3, unk16 param4) {} +void PlayerBattleLinkControlData::vfunc_70(s32 param1) {} +bool PlayerBattleLinkControlData::func_ov012_0211b9c4(s32 param1, Vec3p *param2) {} +void PlayerBattleLinkControlData::vfunc_4c(unk32 param1, Vec3p *param2) {} +void PlayerBattleLinkControlData::func_ov012_0211bb08(s32 param1) {} +unk32 PlayerBattleLinkControlData::GetCharacterId() {}