From b16ba552db85d87409a610ab39fbde6670f73bde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Tue, 13 Oct 2020 02:11:12 +0200 Subject: [PATCH] ksys/res: Implement all of Handle --- data/uking_functions.csv | 51 +-- src/KingSystem/Resource/CMakeLists.txt | 1 - src/KingSystem/Resource/resHandle.cpp | 416 ++++++++++++++++++- src/KingSystem/Resource/resHandle.h | 39 +- src/KingSystem/Resource/resInfoContainer.cpp | 2 +- src/KingSystem/Resource/resLoadRequest.cpp | 20 - src/KingSystem/Resource/resResourceMgrTask.h | 10 +- src/KingSystem/Resource/resUnit.cpp | 30 +- src/KingSystem/Resource/resUnit.h | 21 +- 9 files changed, 509 insertions(+), 81 deletions(-) delete mode 100644 src/KingSystem/Resource/resLoadRequest.cpp diff --git a/data/uking_functions.csv b/data/uking_functions.csv index dce5125f..27559ca2 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -90789,33 +90789,33 @@ 0x00000071012017d4,ResourceLoadArg3::ctor,60,_ZN4ksys3res23SimplePackedLoadRequestC1Ev 0x0000007101201810,Res::ctor,72,_ZN4ksys3res6HandleC1Ev 0x0000007101201858,Res::dtor,156,_ZN4ksys3res6HandleD1Ev -0x00000071012018f4,Res::unload,136,_ZN4ksys3res6Handle6unloadEv +0x00000071012018f4,Res::unload,136,_ZN4ksys3res6Handle13requestUnloadEv 0x000000710120197c,Res::dtorDelete,164,_ZN4ksys3res6HandleD0Ev -0x0000007101201a20,Res::getResource,104, -0x0000007101201a88,Res::hasResourceAndIsParseOk,96, -0x0000007101201ae8,Res::getResourceWithoutChecks,12, -0x0000007101201af4,Res::getError,8, -0x0000007101201afc,Res::setError,12, -0x0000007101201b08,Res::submitLoadForSyncRequestAndGetResource,444, -0x0000007101201cc4,Res::isStartedLoadAndFailed,12, +0x0000007101201a20,Res::getResource,104,_ZNK4ksys3res6Handle11getResourceEv +0x0000007101201a88,Res::hasResourceAndIsParseOk,96,_ZNK4ksys3res6Handle9isSuccessEv +0x0000007101201ae8,Res::getResourceWithoutChecks,12,_ZNK4ksys3res6Handle20getResourceUncheckedEv +0x0000007101201af4,Res::getError,8,_ZNK4ksys3res6Handle9getStatusEv +0x0000007101201afc,Res::setError,12,_ZN4ksys3res6Handle24setStatusForResourceMgr_ERKNS1_6StatusE +0x0000007101201b08,Res::submitLoadForSyncRequestAndGetResource,444,_ZN4ksys3res6Handle4loadERKN4sead14SafeStringBaseIcEEPKNS0_12ILoadRequestEPNS1_6StatusE +0x0000007101201cc4,Res::isStartedLoadAndFailed,12,_ZNK4ksys3res6Handle10isFlag2SetEv 0x0000007101201cd0,ResourceLoadArg::dtor,20,_ZN4ksys3res11LoadRequestD2Ev -0x0000007101201ce4,Res::submitLoadRequest,380, -0x0000007101201e60,Res::waitForReady,68, -0x0000007101201ea4,sub_7101201EA4,104, -0x0000007101201f0c,Res::parseResource,404, -0x00000071012020a0,Res::k,12, -0x00000071012020ac,Res::setSomeFlagOnResMgrDependingOnPath,784, -0x00000071012023bc,Res::c,260, -0x00000071012024c0,Res::submitUnloadRequest,136, -0x0000007101202548,Res::submitUnloadForSyncRequest,132, -0x00000071012025cc,Res::submitUnloadForSyncRequest2,148, -0x0000007101202660,Res::resetBinderStatusMaybe,112, -0x00000071012026d0,sub_71012026D0,84, -0x0000007101202724,Res::isReady,128, -0x00000071012027a4,Res::isReady_,220, -0x0000007101202880,Res::i,148, -0x0000007101202914,Res::makeEmptyString,32, -0x0000007101202934,Res::parse,204, +0x0000007101201ce4,Res::submitLoadRequest,380,_ZN4ksys3res6Handle11requestLoadERKN4sead14SafeStringBaseIcEEPKNS0_12ILoadRequestEPNS1_6StatusE +0x0000007101201e60,Res::waitForReady,68,_ZN4ksys3res6Handle12waitForReadyEv +0x0000007101201ea4,sub_7101201EA4,104,_ZN4ksys3res6Handle12waitForReadyERKN4sead8TickSpanE +0x0000007101201f0c,Res::parseResource,404,_ZN4ksys3res6Handle13parseResourceEPNS0_7ContextE +0x00000071012020a0,Res::k,12,_ZNK4ksys3res6Handle10isFlag8SetEv +0x00000071012020ac,Res::setSomeFlagOnResMgrDependingOnPath,784,_ZN4ksys3res6Handle22updateResourceMgrFlag_Ev! +0x00000071012023bc,Res::c,260,_ZN4ksys3res6Handle22updateStatusAndUnload_Ev +0x00000071012024c0,Res::submitUnloadRequest,136,_ZN4ksys3res6Handle14requestUnload2Ev +0x0000007101202548,Res::submitUnloadForSyncRequest,132,_ZN4ksys3res6Handle6unloadEv +0x00000071012025cc,Res::submitUnloadForSyncRequest2,148,_ZN4ksys3res6Handle27unloadAndResetUnitFlag20000Ev +0x0000007101202660,Res::resetBinderStatusMaybe,112,_ZN4ksys3res6Handle27resetUnitFlag20000IfSuccessEv +0x00000071012026d0,sub_71012026D0,84,_ZNK4ksys3res6Handle6isBusyEv +0x0000007101202724,Res::isReady,128,_ZNK4ksys3res6Handle19isReadyOrNeedsParseEv +0x00000071012027a4,Res::isReady_,220,_ZNK4ksys3res6Handle7isReadyEv +0x0000007101202880,Res::i,148,_ZNK4ksys3res6Handle15checkLoadStatusEv +0x0000007101202914,Res::makeEmptyString,32,_ZN4ksys3res6Handle15makeEmptyStringEv +0x0000007101202934,Res::parse,204,_ZN4ksys3res6Handle24waitForResourceAndParse_EPNS0_7ContextE 0x0000007101202a00,ResourceLoadArgBase::rtti1,112,_ZNK4ksys3res12ILoadRequest27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE 0x0000007101202a70,ResourceLoadArgBase::rtti2,92,_ZNK4ksys3res12ILoadRequest18getRuntimeTypeInfoEv 0x0000007101202acc,Res::rtti1,112,_ZNK4ksys3res6Handle27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE @@ -91011,6 +91011,7 @@ 0x000000710120dca4,ResourceBinder::errorIsZero,16,_ZNK4ksys3res12ResourceUnit9isStatus0Ev 0x000000710120dcb4,ResourceBinder::needsPrepareLoad,80,_ZNK4ksys3res12ResourceUnit22isTask1ActiveOrStatus7Ev 0x000000710120dd04,ResourceBinder::errorIsOne,16,_ZNK4ksys3res12ResourceUnit9isStatus1Ev +0x000000710120dd14,_ZNK4ksys3res12ResourceUnit10needsParseEv,0xc8,_ZNK4ksys3res12ResourceUnit10needsParseEv 0x000000710120dddc,ResourceBinder::errorMinus9Stuff,44,_ZNK4ksys3res12ResourceUnit15isStatus9_12_15Ev 0x000000710120de08,ResourceBinder::isParseOk,228,_ZNK4ksys3res12ResourceUnit9isParseOkEv? 0x000000710120deec,ResourceBinder::getStatusByteRightShift7Stuff,12,_ZNK4ksys3res12ResourceUnit19isStatusFlag8000SetEv diff --git a/src/KingSystem/Resource/CMakeLists.txt b/src/KingSystem/Resource/CMakeLists.txt index 068e3f13..abf6860e 100644 --- a/src/KingSystem/Resource/CMakeLists.txt +++ b/src/KingSystem/Resource/CMakeLists.txt @@ -100,7 +100,6 @@ target_sources(uking PRIVATE resHandle.h resInfoContainer.cpp resInfoContainer.h - resLoadRequest.cpp resLoadRequest.h resMemoryTask.cpp resMemoryTask.h diff --git a/src/KingSystem/Resource/resHandle.cpp b/src/KingSystem/Resource/resHandle.cpp index 1655a485..81e43aa2 100644 --- a/src/KingSystem/Resource/resHandle.cpp +++ b/src/KingSystem/Resource/resHandle.cpp @@ -2,8 +2,11 @@ #include #include #include