diff options
Diffstat (limited to 'src/Game/AI/Query/queryHasPorchItemByCategory.cpp')
| -rw-r--r-- | src/Game/AI/Query/queryHasPorchItemByCategory.cpp | 69 |
1 files changed, 67 insertions, 2 deletions
diff --git a/src/Game/AI/Query/queryHasPorchItemByCategory.cpp b/src/Game/AI/Query/queryHasPorchItemByCategory.cpp index e9ac46a9..fea15c52 100644 --- a/src/Game/AI/Query/queryHasPorchItemByCategory.cpp +++ b/src/Game/AI/Query/queryHasPorchItemByCategory.cpp @@ -1,5 +1,7 @@ #include "Game/AI/Query/queryHasPorchItemByCategory.h" #include <evfl/Query.h> +#include "Game/UI/uiPauseMenuDataMgr.h" +#include "KingSystem/ActorSystem/actTag.h" namespace uking::query { @@ -7,9 +9,72 @@ HasPorchItemByCategory::HasPorchItemByCategory(const InitArg& arg) : ksys::act:: HasPorchItemByCategory::~HasPorchItemByCategory() = default; -// FIXME: implement int HasPorchItemByCategory::doQuery() { - return -1; + s32 result = 0; + using namespace ksys::act::tags; + + auto* pm = ui::PauseMenuDataMgr::instance(); + if (pm == nullptr) + return 1; + + switch (*mCategory) { + case 0: + result = pm->countItemsWithProfile("WeaponBow", true); + break; + case 1: + result = pm->countItemsWithProfile("WeaponShield", true); + break; + case 2: + result = pm->countItemsWithProfile("WeaponSpear", true); + break; + case 3: + result = pm->countItemsWithProfile("WeaponSmallSword", true); + break; + case 4: + result = pm->countItemsWithTag(Arrow, false); + break; + case 16: + result = pm->countItemsWithTag(Arrow, true); + break; + case 5: + result = pm->countItemsWithProfile("WeaponLargeSword", true); + break; + case 6: + result = pm->countItemsWithTag(CookMushroom, true); + break; + case 7: + result = pm->countItemsWithTag(RoastItem, true); + break; + case 8: + result = pm->countItemsWithTag(CookFruit, true); + break; + case 9: + result = pm->countItemsWithTag(CookOre, true); + break; + case 10: + result = pm->countItemsWithTag(CookPlant, true); + break; + case 11: + result = pm->countItemsWithTag(EnemyMaterial, true); + break; + case 12: + result = pm->countItemsWithTag(CookMeat, true); + break; + case 13: + result = pm->countItemsWithTag(CookMaterial, true); + break; + case 14: + result = pm->countItemsWithProfile("HorseReins", true); + break; + case 15: + result = pm->countItemsWithProfile("HorseSaddle", true); + break; + default: + result = 0; + break; + } + + return result < *mCount; } void HasPorchItemByCategory::loadParams(const evfl::QueryArg& arg) { |
