summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-09-20 13:08:12 +0200
committerLéo Lam <leo@leolam.fr>2020-09-20 13:08:12 +0200
commit5407926f7e5f7265b0e0e488ab589ef7bdc5a720 (patch)
tree27ffbf3ea93f19c60a7c9c9079d727361547b9d2
parentf2d0fcc8c06d0cdbbfd7fa957e1d76eee6bf56e9 (diff)
ksys/res: Implement GParamList Beam
-rw-r--r--CMakeLists.txt1
-rw-r--r--data/uking_functions.csv2
-rw-r--r--src/KingSystem/Resource/GeneralParamList/resGParamListObjectBeam.h24
-rw-r--r--src/KingSystem/Resource/resResourceGParamList.cpp2
4 files changed, 28 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 16d52f54..906a67e5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -73,6 +73,7 @@ add_executable(uking
src/KingSystem/Resource/GeneralParamList/resGParamListObjectArrow.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectAttack.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectAttackInterval.h
+ src/KingSystem/Resource/GeneralParamList/resGParamListObjectBeam.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectBindActor.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectBindBone.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectBow.h
diff --git a/data/uking_functions.csv b/data/uking_functions.csv
index 766ce061..cd1d80dd 100644
--- a/data/uking_functions.csv
+++ b/data/uking_functions.csv
@@ -89213,7 +89213,7 @@
0x00000071011a7ea8,sub_71011A7EA8,12,_ZNK4ksys3res28GParamListObjectGuardianMini7getNameEv
0x00000071011a7eb4,sub_71011A7EB4,12,_ZNK4ksys3res29GParamListObjectClothReaction7getNameEv
0x00000071011a7ec0,sub_71011A7EC0,12,_ZNK4ksys3res22GParamListObjectGlobal7getNameEv
-0x00000071011a7ecc,sub_71011A7ECC,12,
+0x00000071011a7ecc,sub_71011A7ECC,12,_ZNK4ksys3res20GParamListObjectBeam7getNameEv
0x00000071011a7ed8,sub_71011A7ED8,12,
0x00000071011a7ee4,sub_71011A7EE4,12,
0x00000071011a7ef0,sub_71011A7EF0,12,
diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectBeam.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectBeam.h
new file mode 100644
index 00000000..f12652dd
--- /dev/null
+++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectBeam.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include <agl/Utils/aglParameter.h>
+#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
+#include "KingSystem/Utils/Types.h"
+
+namespace ksys::res {
+
+class GParamListObjectBeam : public GParamListObject {
+public:
+ GParamListObjectBeam();
+ const char* getName() const override { return "Beam"; }
+
+ agl::utl::Parameter<s32> mBeamLevel;
+};
+KSYS_CHECK_SIZE_NX150(GParamListObjectBeam, 0x58);
+
+inline GParamListObjectBeam::GParamListObjectBeam() {
+ auto* const obj = &mObj;
+
+ mBeamLevel.init(511, "BeamLevel", "", obj);
+}
+
+} // namespace ksys::res
diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp
index 830507ae..4424d96f 100644
--- a/src/KingSystem/Resource/resResourceGParamList.cpp
+++ b/src/KingSystem/Resource/resResourceGParamList.cpp
@@ -12,6 +12,7 @@
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectArrow.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectAttack.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectAttackInterval.h"
+#include "KingSystem/Resource/GeneralParamList/resGParamListObjectBeam.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectBindActor.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectBindBone.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectBow.h"
@@ -179,6 +180,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) {
add<GParamListObjType::GuardianMini>(archive.getRootList(), "GuardianMini", heap, dummy_list);
add<GParamListObjType::ClothReaction>(archive.getRootList(), "ClothReaction", heap, dummy_list);
add<GParamListObjType::Global>(archive.getRootList(), "Global", heap, dummy_list);
+ add<GParamListObjType::Beam>(archive.getRootList(), "Beam", heap, dummy_list);
// TODO: the rest