From 1a373891590050d5c9fa5e5988158a3e971a8a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 20 Sep 2020 13:11:10 +0200 Subject: [PATCH] ksys/res: Implement GParamList ChemicalType --- CMakeLists.txt | 1 + data/uking_functions.csv | 4 +-- .../resGParamListObjectChemicalType.h | 25 +++++++++++++++++++ .../Resource/resResourceGParamList.cpp | 2 ++ 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 src/KingSystem/Resource/GeneralParamList/resGParamListObjectChemicalType.h diff --git a/CMakeLists.txt b/CMakeLists.txt index e934c8c8..e4a3383f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,6 +80,7 @@ add_executable(uking src/KingSystem/Resource/GeneralParamList/resGParamListObjectBow.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectBullet.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectCamera.h + src/KingSystem/Resource/GeneralParamList/resGParamListObjectChemicalType.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectClothReaction.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectCookSpice.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectCureItem.h diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 0a1abbed..3a673b57 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89115,7 +89115,7 @@ 0x00000071011a2a74,BgparamlistObjectClothReaction::ctor,1460,_ZN4ksys3res29GParamListObjectClothReactionC2Ev 0x00000071011a3028,BgparamlistObjectGlobal::ctor,6116,_ZN4ksys3res22GParamListObjectGlobalC2Ev 0x00000071011a480c,BgparamlistObjectAutoGen::ctor,404,_ZN4ksys3res23GParamListObjectAutoGenC2Ev -0x00000071011a49a0,BgparamlistObjectChemicalType::ctor,336, +0x00000071011a49a0,BgparamlistObjectChemicalType::ctor,336,_ZN4ksys3res28GParamListObjectChemicalTypeC2Ev 0x00000071011a4af0,BgparamlistObjectGolem::ctor,676, 0x00000071011a4d94,BgparamlistObjectHorseTargetedInfo::ctor,356, 0x00000071011a4ef8,BgparamlistObjectWolfLink::ctor,4548, @@ -89215,7 +89215,7 @@ 0x00000071011a7ec0,sub_71011A7EC0,12,_ZNK4ksys3res22GParamListObjectGlobal7getNameEv 0x00000071011a7ecc,sub_71011A7ECC,12,_ZNK4ksys3res20GParamListObjectBeam7getNameEv 0x00000071011a7ed8,sub_71011A7ED8,12,_ZNK4ksys3res23GParamListObjectAutoGen7getNameEv -0x00000071011a7ee4,sub_71011A7EE4,12, +0x00000071011a7ee4,sub_71011A7EE4,12,_ZNK4ksys3res28GParamListObjectChemicalType7getNameEv 0x00000071011a7ef0,sub_71011A7EF0,12, 0x00000071011a7efc,sub_71011A7EFC,12, 0x00000071011a7f08,sub_71011A7F08,12, diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectChemicalType.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectChemicalType.h new file mode 100644 index 00000000..5bd305d0 --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectChemicalType.h @@ -0,0 +1,25 @@ +#pragma once + +#include +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectChemicalType : public GParamListObject { +public: + GParamListObjectChemicalType() { + auto* const obj = &mObj; + + mChemicalType.init("Normal", "ChemicalType", "", obj); + mEmitChemicalActor.init("", "EmitChemicalActor", "", obj); + } + + const char* getName() const override { return "ChemicalType"; } + + agl::utl::Parameter mChemicalType; + agl::utl::Parameter mEmitChemicalActor; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectChemicalType, 0x88); + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index d2c163d5..8d3eb431 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -19,6 +19,7 @@ #include "KingSystem/Resource/GeneralParamList/resGParamListObjectBow.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectBullet.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectCamera.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectChemicalType.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectClothReaction.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectCookSpice.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectCureItem.h" @@ -183,6 +184,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { add(archive.getRootList(), "Global", heap, dummy_list); add(archive.getRootList(), "Beam", heap, dummy_list); add(archive.getRootList(), "AutoGen", heap, dummy_list); + add(archive.getRootList(), "ChemicalType", heap, dummy_list); // TODO: the rest