Added new filters for LOBOT (#145)

* Weapon class for SECONDHANDPOS items
* Check if weapon is two handed for HANDPOS and SECONDHANDPOS
This commit is contained in:
Asdow
2023-05-18 23:33:17 +03:00
committed by GitHub
parent a0aa58f9e5
commit 690d2054c6
3 changed files with 28 additions and 2 deletions
+9
View File
@@ -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;
+3
View File
@@ -56,9 +56,12 @@ public:
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,
+16 -2
View File
@@ -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
******************************************/