diff --git a/CMakeLists.txt b/CMakeLists.txt index 3bcb68a8..4b0b22f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,6 +89,7 @@ add_executable(uking src/KingSystem/Resource/GeneralParamList/resGParamListObjectLiftable.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectLumberjackTree.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectMasterSword.h + src/KingSystem/Resource/GeneralParamList/resGParamListObjectNpc.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectPlayer.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectRod.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectRupee.h diff --git a/data/uking_functions.csv b/data/uking_functions.csv index a0f24131..92e258ba 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89092,7 +89092,7 @@ 0x0000007101196eec,BgparamlistObjectCureItem::ctor,456,_ZN4ksys3res24GParamListObjectCureItemC2Ev 0x00000071011970b4,BgparamlistObjectCookSpice::ctor,476,_ZN4ksys3res25GParamListObjectCookSpiceC2Ev 0x0000007101197290,BgparamlistObjectLumberjackTree::ctor,664,_ZN4ksys3res30GParamListObjectLumberjackTreeC2Ev -0x0000007101197528,BgparamlistObjectNpc::ctor,1232, +0x0000007101197528,BgparamlistObjectNpc::ctor,1232,_ZN4ksys3res19GParamListObjectNpcC2Ev 0x00000071011979f8,BgparamlistObjectNpcEquipment::ctor,1960, 0x00000071011981a0,BgparamlistObjectZora::ctor,508, 0x000000710119839c,BgparamlistObjectTraveler::ctor,29996,_ZN4ksys3res24GParamListObjectTravelerC1Ev @@ -89183,7 +89183,7 @@ 0x00000071011a7d40,sub_71011A7D40,12,_ZNK4ksys3res24GParamListObjectCureItem7getNameEv 0x00000071011a7d4c,sub_71011A7D4C,12,_ZNK4ksys3res25GParamListObjectCookSpice7getNameEv 0x00000071011a7d58,sub_71011A7D58,12,_ZNK4ksys3res30GParamListObjectLumberjackTree7getNameEv -0x00000071011a7d64,sub_71011A7D64,12, +0x00000071011a7d64,sub_71011A7D64,12,_ZNK4ksys3res19GParamListObjectNpc7getNameEv 0x00000071011a7d70,sub_71011A7D70,12, 0x00000071011a7d7c,sub_71011A7D7C,12, 0x00000071011a7d88,sub_71011A7D88,12,_ZNK4ksys3res24GParamListObjectTraveler7getNameEv diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectNpc.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectNpc.h new file mode 100644 index 00000000..12e7930c --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectNpc.h @@ -0,0 +1,52 @@ +#pragma once + +#include +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectNpc : public GParamListObject { +public: + GParamListObjectNpc(); + const char* getName() const override { return "Npc"; } + + agl::utl::Parameter mIsReactNakedPlayer; + agl::utl::Parameter mUseAutoLabel; + agl::utl::Parameter mIsOffPodFromWeapon; + agl::utl::Parameter mIsRunRainWhenGoToSleep; + agl::utl::Parameter mIsWalkUnderShelterFromRain; + agl::utl::Parameter mIsSlowWalkOnSandAndSnow; + agl::utl::Parameter mIsAlwaysCounterPlayerAttack; + agl::utl::Parameter mIsNotTurnDetect; + agl::utl::Parameter mIsNotEscapeFromTerror; + agl::utl::Parameter mTolerantTime; + agl::utl::Parameter mTolerantCount; + agl::utl::Parameter mCounterRate; + agl::utl::Parameter mChangeSearchModeFlagName; + agl::utl::Parameter mOnFlagWhenDelete; + agl::utl::Parameter mOffFlagWhenDelete; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectNpc, 0x230); + +inline GParamListObjectNpc::GParamListObjectNpc() { + auto* const obj = &mObj; + + mIsReactNakedPlayer.init(false, "IsReactNakedPlayer", "", obj); + mUseAutoLabel.init(true, "UseAutoLabel", "", obj); + mIsOffPodFromWeapon.init(false, "IsOffPodFromWeapon", "", obj); + mIsRunRainWhenGoToSleep.init(true, "IsRunRainWhenGoToSleep", "", obj); + mIsWalkUnderShelterFromRain.init(true, "IsWalkUnderShelterFromRain", "", obj); + mIsSlowWalkOnSandAndSnow.init(false, "IsSlowWalkOnSandAndSnow", "", obj); + mIsAlwaysCounterPlayerAttack.init(false, "IsAlwaysCounterPlayerAttack", "", obj); + mIsNotTurnDetect.init(false, "IsNotTurnDetect", "", obj); + mIsNotEscapeFromTerror.init(false, "IsNotEscapeFromTerror", "", obj); + mTolerantTime.init(20, "TolerantTime", "", obj); + mTolerantCount.init(10, "TolerantCount", "", obj); + mCounterRate.init(30, "CounterRate", "", obj); + mChangeSearchModeFlagName.init("", "ChangeSearchModeFlagName", "", obj); + mOnFlagWhenDelete.init("", "OnFlagWhenDelete", "", obj); + mOffFlagWhenDelete.init("", "OffFlagWhenDelete", "", obj); +} + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index 90e607f0..0ce80761 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -28,6 +28,7 @@ #include "KingSystem/Resource/GeneralParamList/resGParamListObjectLiftable.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectLumberjackTree.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectMasterSword.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectNpc.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectPlayer.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectRod.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectRupee.h" @@ -116,6 +117,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { add(archive.getRootList(), "CookSpice", heap, dummy_list); add(archive.getRootList(), "LumberjackTree", heap, dummy_list); + add(archive.getRootList(), "Npc", heap, dummy_list); // TODO: the rest