summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-09-20 14:51:14 +0200
committerLéo Lam <leo@leolam.fr>2020-09-20 14:54:40 +0200
commit5dc9b9542e6a7146ce48b06cf746ed592fb15feb (patch)
treed77d533664799f353cd8fed3c6e5743e077a461e /src
parentba8edc3d450ff79c470f3e5ee661408ff659eb60 (diff)
ksys/res: Add getters for GParam objects
Diffstat (limited to 'src')
-rw-r--r--src/KingSystem/Resource/resResourceGParamList.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/KingSystem/Resource/resResourceGParamList.h b/src/KingSystem/Resource/resResourceGParamList.h
index 139f63bd..c421fe2d 100644
--- a/src/KingSystem/Resource/resResourceGParamList.h
+++ b/src/KingSystem/Resource/resResourceGParamList.h
@@ -2,6 +2,7 @@
#include <container/seadBuffer.h>
#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
+#include "KingSystem/Resource/GeneralParamList/resGParamListTraits.h"
#include "KingSystem/Resource/resResource.h"
#include "KingSystem/Utils/ParamIO.h"
#include "KingSystem/Utils/Types.h"
@@ -18,6 +19,97 @@ public:
void doCreate_(u8* buffer, u32 bufferSize, sead::Heap* heap) override;
bool needsParse() const override { return true; }
+ template <GParamListObjType Type>
+ const auto& get() const {
+ using Traits = GParamListObjTypeTraits<Type>;
+ return *reinterpret_cast<typename Traits::type*>(mObjects[Traits::index]);
+ }
+
+#define KSYS_GPARAM_DEFINE_GETTER_(NAME) \
+ const auto& get##NAME() const { return get<GParamListObjType::NAME>(); }
+
+ KSYS_GPARAM_DEFINE_GETTER_(System)
+ KSYS_GPARAM_DEFINE_GETTER_(General)
+ KSYS_GPARAM_DEFINE_GETTER_(Enemy)
+ KSYS_GPARAM_DEFINE_GETTER_(EnemyLevel)
+ KSYS_GPARAM_DEFINE_GETTER_(EnemyRace)
+ KSYS_GPARAM_DEFINE_GETTER_(AttackInterval)
+ KSYS_GPARAM_DEFINE_GETTER_(EnemyShown)
+ KSYS_GPARAM_DEFINE_GETTER_(BindBone)
+ KSYS_GPARAM_DEFINE_GETTER_(Attack)
+ KSYS_GPARAM_DEFINE_GETTER_(WeaponCommon)
+ KSYS_GPARAM_DEFINE_GETTER_(WeaponThrow)
+ KSYS_GPARAM_DEFINE_GETTER_(Sandworm)
+ KSYS_GPARAM_DEFINE_GETTER_(SmallSword)
+ KSYS_GPARAM_DEFINE_GETTER_(Rod)
+ KSYS_GPARAM_DEFINE_GETTER_(LargeSword)
+ KSYS_GPARAM_DEFINE_GETTER_(Spear)
+ KSYS_GPARAM_DEFINE_GETTER_(Shield)
+ KSYS_GPARAM_DEFINE_GETTER_(Bow)
+ KSYS_GPARAM_DEFINE_GETTER_(WeaponOption)
+ KSYS_GPARAM_DEFINE_GETTER_(MasterSword)
+ KSYS_GPARAM_DEFINE_GETTER_(GuardianMiniWeapon)
+ KSYS_GPARAM_DEFINE_GETTER_(Player)
+ KSYS_GPARAM_DEFINE_GETTER_(Camera)
+ KSYS_GPARAM_DEFINE_GETTER_(Grab)
+ KSYS_GPARAM_DEFINE_GETTER_(Armor)
+ KSYS_GPARAM_DEFINE_GETTER_(ArmorEffect)
+ KSYS_GPARAM_DEFINE_GETTER_(ArmorHead)
+ KSYS_GPARAM_DEFINE_GETTER_(ArmorUpper)
+ KSYS_GPARAM_DEFINE_GETTER_(ShiekerStone)
+ KSYS_GPARAM_DEFINE_GETTER_(SeriesArmor)
+ KSYS_GPARAM_DEFINE_GETTER_(Liftable)
+ KSYS_GPARAM_DEFINE_GETTER_(Item)
+ KSYS_GPARAM_DEFINE_GETTER_(Rupee)
+ KSYS_GPARAM_DEFINE_GETTER_(Arrow)
+ KSYS_GPARAM_DEFINE_GETTER_(Bullet)
+ KSYS_GPARAM_DEFINE_GETTER_(CureItem)
+ KSYS_GPARAM_DEFINE_GETTER_(CookSpice)
+ KSYS_GPARAM_DEFINE_GETTER_(LumberjackTree)
+ KSYS_GPARAM_DEFINE_GETTER_(Npc)
+ KSYS_GPARAM_DEFINE_GETTER_(NpcEquipment)
+ KSYS_GPARAM_DEFINE_GETTER_(Zora)
+ KSYS_GPARAM_DEFINE_GETTER_(Traveler)
+ KSYS_GPARAM_DEFINE_GETTER_(Prey)
+ KSYS_GPARAM_DEFINE_GETTER_(AnimalFollowOffset)
+ KSYS_GPARAM_DEFINE_GETTER_(ExtendedEntity)
+ KSYS_GPARAM_DEFINE_GETTER_(BindActor)
+ KSYS_GPARAM_DEFINE_GETTER_(EatTarget)
+ KSYS_GPARAM_DEFINE_GETTER_(AnimalUnit)
+ KSYS_GPARAM_DEFINE_GETTER_(Insect)
+ KSYS_GPARAM_DEFINE_GETTER_(Fish)
+ KSYS_GPARAM_DEFINE_GETTER_(Rope)
+ KSYS_GPARAM_DEFINE_GETTER_(Horse)
+ KSYS_GPARAM_DEFINE_GETTER_(HorseUnit)
+ KSYS_GPARAM_DEFINE_GETTER_(HorseObject)
+ KSYS_GPARAM_DEFINE_GETTER_(HorseRider)
+ KSYS_GPARAM_DEFINE_GETTER_(HorseCreator)
+ KSYS_GPARAM_DEFINE_GETTER_(GiantArmorSlot)
+ KSYS_GPARAM_DEFINE_GETTER_(GiantArmor)
+ KSYS_GPARAM_DEFINE_GETTER_(Guardian)
+ KSYS_GPARAM_DEFINE_GETTER_(MonsterShop)
+ KSYS_GPARAM_DEFINE_GETTER_(Swarm)
+ KSYS_GPARAM_DEFINE_GETTER_(GelEnemy)
+ KSYS_GPARAM_DEFINE_GETTER_(Nest)
+ KSYS_GPARAM_DEFINE_GETTER_(Wizzrobe)
+ KSYS_GPARAM_DEFINE_GETTER_(StalEnemy)
+ KSYS_GPARAM_DEFINE_GETTER_(GuardianMini)
+ KSYS_GPARAM_DEFINE_GETTER_(ClothReaction)
+ KSYS_GPARAM_DEFINE_GETTER_(Global)
+ KSYS_GPARAM_DEFINE_GETTER_(Beam)
+ KSYS_GPARAM_DEFINE_GETTER_(AutoGen)
+ KSYS_GPARAM_DEFINE_GETTER_(ChemicalType)
+ KSYS_GPARAM_DEFINE_GETTER_(Golem)
+ KSYS_GPARAM_DEFINE_GETTER_(HorseTargetedInfo)
+ KSYS_GPARAM_DEFINE_GETTER_(WolfLink)
+ KSYS_GPARAM_DEFINE_GETTER_(Event)
+ KSYS_GPARAM_DEFINE_GETTER_(GolemIK)
+ KSYS_GPARAM_DEFINE_GETTER_(PictureBook)
+ KSYS_GPARAM_DEFINE_GETTER_(AirWall)
+ KSYS_GPARAM_DEFINE_GETTER_(Motorcycle)
+
+#undef KSYS_GPARAM_DEFINE_GETTER_
+
protected:
bool parse_(u8* data, size_t size, sead::Heap* heap) override;
void finalize_() override;