From 99de7fa00931d1d7c75a0c51d6fd38c09f60b160 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 4 Oct 2020 15:39:04 +0200 Subject: [PATCH] ksys/res: Add more LifeCondition functions --- data/uking_functions.csv | 32 +++++++++---------- .../Resource/resResourceLifeCondition.cpp | 3 +- .../Resource/resResourceLifeCondition.h | 24 ++++++++++---- 3 files changed, 35 insertions(+), 24 deletions(-) diff --git a/data/uking_functions.csv b/data/uking_functions.csv index c085b6a1..fa88e913 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -85848,25 +85848,25 @@ 0x0000007101099890,sub_7101099890,8,_ZThn632_NK4ksys3res4Drop10needsParseEv 0x0000007101099898,sub_7101099898,128,_ZThn664_N4ksys3res4DropD1Ev 0x0000007101099918,sub_7101099918,116,_ZThn664_N4ksys3res4DropD0Ev -0x0000007101099b00,nullsub_4471,4, -0x0000007101099b04,nullsub_4472,4, +0x0000007101099b00,nullsub_4471,4,_ZN4ksys3res13LifeCondition9doCreate_EPhjPN4sead4HeapE +0x0000007101099b04,nullsub_4472,4,_ZThn632_N4ksys3res13LifeCondition9doCreate_EPhjPN4sead4HeapE 0x0000007101099b08,Blifecondition::parse,1296,_ZN4ksys3res13LifeCondition6parse_EPhmPN4sead4HeapE? 0x000000710109a018,Blifecondition::parseArray,448,_ZN4ksys3res13LifeCondition10parseArrayEPKN3agl3utl15ResParameterObjEPNS3_13IParameterObjEPN4sead6BufferINS3_9ParameterINS9_14SafeStringBaseIcEEEEEERKSD_SI_PNS9_4HeapE 0x000000710109a1d8,ResourceBlifecondition::parse,28,_ZThn632_N4ksys3res13LifeCondition6parse_EPhmPN4sead4HeapE 0x000000710109a1f4,_ZNK3aal8ShapeMgr20isTemplateRegisteredERKN4sead14SafeStringBaseIcEE,280, -0x000000710109a30c,sub_710109A30C,156, -0x000000710109a3a8,sub_710109A3A8,144, -0x000000710109a438,sub_710109A438,8, -0x000000710109a440,sub_710109A440,8, -0x000000710109a448,sub_710109A448,92, -0x000000710109a4a4,sub_710109A4A4,8, -0x000000710109a4ac,sub_710109A4AC,8, -0x000000710109a4b4,sub_710109A4B4,92, -0x000000710109a510,sub_710109A510,152, -0x000000710109a5a8,sub_710109A5A8,140, -0x000000710109a634,ResourceBlifecondition::needsParse,8, -0x000000710109a63c,sub_710109A63C,160, -0x000000710109a6dc,sub_710109A6DC,148, +0x000000710109a30c,sub_710109A30C,156,_ZN4ksys3res13LifeConditionD2Ev +0x000000710109a3a8,sub_710109A3A8,144,_ZN4ksys3res13LifeConditionD0Ev +0x000000710109a438,sub_710109A438,8,_ZN4ksys3res13LifeCondition10ParamIO_m0Ev +0x000000710109a440,sub_710109A440,8,_ZNK4ksys3res13LifeCondition27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE? +0x000000710109a448,sub_710109A448,92,_ZNK4ksys3res13LifeCondition18getRuntimeTypeInfoEv +0x000000710109a4a4,sub_710109A4A4,8,_ZNK4ksys3res13LifeCondition10needsParseEv +0x000000710109a4ac,sub_710109A4AC,8,_ZThn632_NK4ksys3res13LifeCondition27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE? +0x000000710109a4b4,sub_710109A4B4,92,_ZThn632_NK4ksys3res13LifeCondition18getRuntimeTypeInfoEv +0x000000710109a510,sub_710109A510,152,_ZThn632_N4ksys3res13LifeConditionD1Ev +0x000000710109a5a8,sub_710109A5A8,140,_ZThn632_N4ksys3res13LifeConditionD0Ev +0x000000710109a634,ResourceBlifecondition::needsParse,8,_ZThn632_NK4ksys3res13LifeCondition10needsParseEv +0x000000710109a63c,sub_710109A63C,160,_ZThn664_N4ksys3res13LifeConditionD1Ev +0x000000710109a6dc,sub_710109A6DC,148,_ZThn664_N4ksys3res13LifeConditionD0Ev 0x000000710109a8e4,nullsub_4473,4, 0x000000710109a8e8,nullsub_4474,4, 0x000000710109a8ec,sub_710109A8EC,1460, @@ -88984,7 +88984,7 @@ 0x000000710118466c,sub_710118466C,156, 0x0000007101184708,sub_7101184708,8, 0x0000007101184710,sub_7101184710,8, -0x0000007101184718,Blifecondition::ctor,436, +0x0000007101184718,Blifecondition::ctor,436,_ZN4ksys3res13LifeConditionC1Ev 0x00000071011848cc,sub_71011848CC,192, 0x000000710118498c,sub_710118498C,200, 0x0000007101184a54,sub_7101184A54,132, diff --git a/src/KingSystem/Resource/resResourceLifeCondition.cpp b/src/KingSystem/Resource/resResourceLifeCondition.cpp index 3c2a1946..c32f7e02 100644 --- a/src/KingSystem/Resource/resResourceLifeCondition.cpp +++ b/src/KingSystem/Resource/resResourceLifeCondition.cpp @@ -1,8 +1,9 @@ #include "KingSystem/Resource/resResourceLifeCondition.h" -#include namespace ksys::res { +LifeCondition::LifeCondition() : ParamIO("lifecondition", 0) {} + // NON_MATCHING: two instructions swapped bool LifeCondition::parse_(u8* data, size_t, sead::Heap* heap) { if (!data) diff --git a/src/KingSystem/Resource/resResourceLifeCondition.h b/src/KingSystem/Resource/resResourceLifeCondition.h index 81983984..f9a03d92 100644 --- a/src/KingSystem/Resource/resResourceLifeCondition.h +++ b/src/KingSystem/Resource/resResourceLifeCondition.h @@ -7,19 +7,29 @@ namespace ksys::res { class LifeCondition : public ParamIO, public Resource { + SEAD_RTTI_OVERRIDE(LifeCondition, Resource) +public: + LifeCondition(); + ~LifeCondition() override = default; + + bool needsParse() const override { return true; } + bool ParamIO_m0() override { return true; } + +private: + void doCreate_(u8*, u32, sead::Heap*) override {} void parseArray(const agl::utl::ResParameterObj* data, agl::utl::IParameterObj* obj, sead::Buffer>* buffer, const sead::SafeString& key, const sead::SafeString& desc, sead::Heap* heap); bool parse_(u8* data, size_t size, sead::Heap* heap) override; - agl::utl::IParameterObj mInvalidWeathersObj; - agl::utl::IParameterObj mInvalidTimesObj; - agl::utl::IParameterObj mDisplayDistanceObj; - agl::utl::IParameterObj mDeleteWeathersObj; - agl::utl::IParameterObj mDeleteTimesObj; - agl::utl::IParameterObj mBoundingYObj; - agl::utl::IParameterObj mYLimitAlgorithmObj; + agl::utl::ParameterObj mInvalidWeathersObj; + agl::utl::ParameterObj mInvalidTimesObj; + agl::utl::ParameterObj mDisplayDistanceObj; + agl::utl::ParameterObj mDeleteWeathersObj; + agl::utl::ParameterObj mDeleteTimesObj; + agl::utl::ParameterObj mBoundingYObj; + agl::utl::ParameterObj mYLimitAlgorithmObj; sead::Buffer> mInvalidWeathersBuffer; sead::Buffer> mInvalidTimesBuffer;