From 41c17b1a258cf09182d2525e4b25848f143ba3e3 Mon Sep 17 00:00:00 2001 From: Asdow <20314541+Asdow@users.noreply.github.com> Date: Thu, 19 Jan 2023 14:14:23 +0200 Subject: [PATCH] Add ability to match against leg armor attachments --- Tactical/LogicalBodyTypes/Filter.cpp | 12 ++++++++++++ Tactical/LogicalBodyTypes/Filter.h | 4 ++++ Tactical/LogicalBodyTypes/FilterDB.cpp | 8 ++++++-- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Tactical/LogicalBodyTypes/Filter.cpp b/Tactical/LogicalBodyTypes/Filter.cpp index 519289c56..9db01c0f3 100644 --- a/Tactical/LogicalBodyTypes/Filter.cpp +++ b/Tactical/LogicalBodyTypes/Filter.cpp @@ -237,6 +237,18 @@ bool Filter::Match(SOLDIERTYPE* pSoldier) { case REQ_HELMETPOSATTACHMENT3: cmp_val = CompareAttachment(pSoldier, HELMETPOS, 3); break; + case REQ_LEGPOSATTACHMENT0: + cmp_val = CompareAttachment(pSoldier, LEGPOS, 0); + break; + case REQ_LEGPOSATTACHMENT1: + cmp_val = CompareAttachment(pSoldier, LEGPOS, 1); + break; + case REQ_LEGPOSATTACHMENT2: + cmp_val = CompareAttachment(pSoldier, LEGPOS, 2); + break; + case REQ_LEGPOSATTACHMENT3: + cmp_val = CompareAttachment(pSoldier, LEGPOS, 3); + break; default: if (q < NUM_REQTYPESINV) { cmp_val = pSoldier->inv[q].usItem; diff --git a/Tactical/LogicalBodyTypes/Filter.h b/Tactical/LogicalBodyTypes/Filter.h index 9649d7b71..e0f4d7198 100644 --- a/Tactical/LogicalBodyTypes/Filter.h +++ b/Tactical/LogicalBodyTypes/Filter.h @@ -68,6 +68,10 @@ class Filter { REQ_HELMETPOSATTACHMENT1, REQ_HELMETPOSATTACHMENT2, REQ_HELMETPOSATTACHMENT3, + REQ_LEGPOSATTACHMENT0, + REQ_LEGPOSATTACHMENT1, + REQ_LEGPOSATTACHMENT2, + REQ_LEGPOSATTACHMENT3, NUM_REQTYPES, // 3rd byte is for operator flags _REQ_BTWN = 0x20000, diff --git a/Tactical/LogicalBodyTypes/FilterDB.cpp b/Tactical/LogicalBodyTypes/FilterDB.cpp index 3c5a3d4b8..78f9662ea 100644 --- a/Tactical/LogicalBodyTypes/FilterDB.cpp +++ b/Tactical/LogicalBodyTypes/FilterDB.cpp @@ -270,7 +270,7 @@ namespace LogicalBodyTypes { /***************************************** Filter enum criterion types ******************************************/ - LOGBT_ENUMDB_ADD("IntegerFilterCriterionTypes", 37, + LOGBT_ENUMDB_ADD("IntegerFilterCriterionTypes", 41, Filter::REQ_HELMETPOS, Filter::REQ_VESTPOS, Filter::REQ_LEGPOS, @@ -307,7 +307,11 @@ namespace LogicalBodyTypes { Filter::REQ_HELMETPOSATTACHMENT0, Filter::REQ_HELMETPOSATTACHMENT1, Filter::REQ_HELMETPOSATTACHMENT2, - Filter::REQ_HELMETPOSATTACHMENT3 + Filter::REQ_HELMETPOSATTACHMENT3, + Filter::REQ_LEGPOSATTACHMENT0, + Filter::REQ_LEGPOSATTACHMENT1, + Filter::REQ_LEGPOSATTACHMENT2, + Filter::REQ_LEGPOSATTACHMENT3 ); /*****************************************