diff --git a/Tactical/LogicalBodyTypes/Filter.cpp b/Tactical/LogicalBodyTypes/Filter.cpp index 9db01c0f3..648105bfc 100644 --- a/Tactical/LogicalBodyTypes/Filter.cpp +++ b/Tactical/LogicalBodyTypes/Filter.cpp @@ -201,6 +201,9 @@ bool Filter::Match(SOLDIERTYPE* pSoldier) { case REQ_WEAPON_CLASS: cmp_val = Weapon[pSoldier->inv[HANDPOS].usItem].ubWeaponClass; break; + case REQ_LEFT_WEAPON_CLASS: + cmp_val = Weapon[pSoldier->inv[SECONDHANDPOS].usItem].ubWeaponClass; + break; case REQ_WEAPON_TYPE: cmp_val = Weapon[pSoldier->inv[HANDPOS].usItem].ubWeaponType; break; @@ -210,6 +213,12 @@ bool Filter::Match(SOLDIERTYPE* pSoldier) { case REQ_CALIBRE: cmp_val = Weapon[pSoldier->inv[HANDPOS].usItem].ubCalibre; break; + case REQ_WEAPON_TWOHANDED: + cmp_val = TwoHandedItem(pSoldier->inv[HANDPOS].usItem); + break; + case REQ_LEFT_WEAPON_TWOHANDED: + cmp_val = TwoHandedItem(pSoldier->inv[SECONDHANDPOS].usItem); + break; case REQ_VEST_AMOR_PROTECTION: cmp_val = Armour[Item[pSoldier->inv[VESTPOS].usItem].ubClassIndex].ubProtection; break; diff --git a/Tactical/LogicalBodyTypes/Filter.h b/Tactical/LogicalBodyTypes/Filter.h index e0f4d7198..b8a865d27 100644 --- a/Tactical/LogicalBodyTypes/Filter.h +++ b/Tactical/LogicalBodyTypes/Filter.h @@ -56,9 +56,12 @@ class Filter { REQ_NICKNAME, REQ_WEAPON_IN_HAND, REQ_WEAPON_CLASS, + REQ_LEFT_WEAPON_CLASS, REQ_WEAPON_TYPE, REQ_LEFT_WEAPON_TYPE, REQ_CALIBRE, + REQ_WEAPON_TWOHANDED, + REQ_LEFT_WEAPON_TWOHANDED, REQ_VEST_AMOR_PROTECTION, REQ_VEST_AMOR_COVERAGE, REQ_HELMET_AMOR_PROTECTION, diff --git a/Tactical/LogicalBodyTypes/FilterDB.cpp b/Tactical/LogicalBodyTypes/FilterDB.cpp index 78f9662ea..747d19f11 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", 41, + LOGBT_ENUMDB_ADD("IntegerFilterCriterionTypes", 43, Filter::REQ_HELMETPOS, Filter::REQ_VESTPOS, Filter::REQ_LEGPOS, @@ -299,6 +299,8 @@ namespace LogicalBodyTypes { Filter::REQ_FACEINDEX, Filter::REQ_WEAPON_IN_HAND, Filter::REQ_CALIBRE, + Filter::REQ_WEAPON_TWOHANDED, + Filter::REQ_LEFT_WEAPON_TWOHANDED, Filter::REQ_VEST_AMOR_PROTECTION, Filter::REQ_VEST_AMOR_COVERAGE, Filter::REQ_HELMET_AMOR_PROTECTION, @@ -317,13 +319,14 @@ namespace LogicalBodyTypes { /***************************************** Filter enum criterion types ******************************************/ - LOGBT_ENUMDB_ADD("EnumFilterCriterionTypes", 8, + LOGBT_ENUMDB_ADD("EnumFilterCriterionTypes", 9, Filter::REQ_SEX, Filter::REQ_MERC_TYPE, Filter::REQ_SOLDIER_CLASS, Filter::REQ_CIVILIANGROUP, Filter::REQ_BODYTYPE, Filter::REQ_WEAPON_CLASS, + Filter::REQ_LEFT_WEAPON_CLASS, Filter::REQ_WEAPON_TYPE, Filter::REQ_LEFT_WEAPON_TYPE ); @@ -679,6 +682,17 @@ namespace LogicalBodyTypes { MONSTERCLASS ); + LOGBT_ENUMDB_ADD("LEFT_WEAPON_CLASS", NUM_WEAPON_CLASSES, + NOGUNCLASS, + HANDGUNCLASS, + SMGCLASS, + RIFLECLASS, + MGCLASS, + SHOTGUNCLASS, + KNIFECLASS, + MONSTERCLASS + ); + /***************************************** Weapon Type ******************************************/