update getItemType

This commit is contained in:
commy2 2015-04-02 07:37:44 +02:00
parent 411fb6bc62
commit 191126ecd6
3 changed files with 55 additions and 78 deletions

View File

@ -73,7 +73,6 @@ PREP(getHitPoints);
PREP(getHitPointsWithSelections);
PREP(getInPosition);
PREP(getItemType);
PREP(getItemTypeWeapon);
PREP(getMarkerType);
PREP(getName);
PREP(getNumberFromMissionSQM);

View File

@ -20,10 +20,62 @@ _item = _this select 0;
_cfgType = [_item] call FUNC(getConfigType);
if (_cfgType == "") exitWith {["",""]};
if (_cfgType == "CfgGlasses") exitWith {["item","glasses"]};
if (_cfgType == "CfgMagazines") exitWith { ["magazine", [_item] call FUNC(getItemTypeWeapon) select 1] };
private "_config";
_config = configFile >> _cfgType >> _item;
if (_cfgType == "CfgWeapons") exitWith { [_item] call FUNC(getItemTypeWeapon) };
private "_type";
_type = getNumber (_config >> "type");
["",""]
if (isNumber (_config >> "ItemInfo" >> "type")) then {
_type = getNumber (_config >> "ItemInfo" >> "type");
};
switch (true) do {
case (_type == 0): {["item","unknown"]};
case (_type == 2^0): {["weapon","primary"]};
case (_type == 2^1): {["weapon","handgun"]};
case (_type == 2^2): {["weapon","secondary"]};
case (_type < 2^4): {["weapon","unknown"]};
case (_type == 2^4): {["magazine","handgun"]}; // handgun
case (_type == 2^8): {["magazine","primary"]}; // rifle
case (_type == 2^9): {["magazine","secondary"]}; // rpg, mg, mines
case (_type == 768): {["magazine","secondary"]}; // NLAW
case (_type == 1536): {["magazine","secondary"]}; // titan
case (_type == 101): {["item","muzzle"]};
case (_type == 201): {["item","optics"]};
case (_type == 301): {["item","flashlight"]};
case (_type == 302): {["item","under"]}; // czech for bipod item
case (_type == 401): {["item","first_aid_kit"]};
case (_type == 501): {["item","fins"]}; // not implemented
case (_type == 601): {["item","breathing_bomb"]}; // not implemented
case (_type == 603): {["item","goggles"]};
case (_type == 604): {["item","scuba"]}; // not implemented
case (_type == 605): {["item","headgear"]};
case (_type == 611): {["item","radio"]};
case (_type == 616): {["item","hmd"]};
case (_type == 617): {["item","binocular"]};
case (_type == 619): {["item","medikit"]};
case (_type == 620): {["item","toolkit"]};
case (_type == 621): {["item","uav_terminal"]};
case (_type == 701): {["item","vest"]};
case (_type == 801): {["item","uniform"]};
case (_type == 2^12): {
switch (toLower getText (_config >> "simulation")) do {
case ("binocular"): {["weapon","binocular"]};
case ("nvgoggles"): {["item","nvgoggles"]};
case ("itemminedetector"): {["item","minedetector"]};
case ("weapon"): {["weapon","binocular"]};
default {["unknown","unknown"]};
};
};
case (_type == 2^16): {["weapon","vehicle"]};
case (_type == 2^17): {["item","unknown"]}; // ???
default {["item","unknown"]};
};

View File

@ -1,74 +0,0 @@
/*
* Author: commy2
*
* What kind of item is given classname. Has to be a CfgWeapons. Undefined behavior for CfgMagazine.
*
* Argument:
* 0: Classname of a CfgWeapon. (String)
*
* Return value:
* See ace_common_fnc_getItemType
*
*/
#include "script_component.hpp"
private "_item";
_item = _this select 0;
private "_config";
_config = configFile >> [_item] call FUNC(getConfigType) >> _item;
if (!isClass _config) exitWith {["",""]};
private "_type";
_type = getNumber (_config >> "type");
if (isNumber (_config >> "ItemInfo" >> "type")) then {
_type = getNumber (_config >> "ItemInfo" >> "type");
};
switch (true) do {
case (_type == 0): {["unknown","unknown"]};
case (_type == 2^0): {["weapon","primary"]};
case (_type == 2^1): {["weapon","handgun"]};
case (_type == 2^2): {["weapon","secondary"]};
case (_type < 2^4): {["weapon","unknown"]};
case (_type == 2^4): {["magazine","handgun"]}; // handgun
case (_type == 2^8): {["magazine","primary"]}; // rifle
case (_type == 2^9): {["magazine","secondary"]}; // rpg, mg, mines
case (_type == 768): {["magazine","secondary"]}; // NLAW
case (_type == 1536): {["magazine","secondary"]}; // titan
case (_type == 101): {["item","muzzle"]};
case (_type == 201): {["item","optics"]};
case (_type == 301): {["item","flashlight"]};
case (_type == 302): {["item","under"]}; // czech for bipod item
case (_type == 401): {["item","first_aid_kit"]};
case (_type == 501): {["item","fins"]}; // not implemented
case (_type == 601): {["item","breathing_bomb"]}; // not implemented
case (_type == 603): {["item","goggles"]};
case (_type == 604): {["item","scuba"]}; // not implemented
case (_type == 605): {["item","headgear"]};
case (_type == 611): {["item","radio"]};
case (_type == 616): {["item","hmd"]};
case (_type == 617): {["item","binocular"]};
case (_type == 619): {["item","medikit"]};
case (_type == 620): {["item","toolkit"]};
case (_type == 621): {["item","uav_terminal"]};
case (_type == 701): {["item","vest"]};
case (_type == 801): {["item","uniform"]};
case (_type == 2^12): {
switch (toLower getText (_config >> "simulation")) do {
case ("binocular"): {["weapon","binocular"]};
case ("nvgoggles"): {["item","nvgoggles"]};
case ("itemminedetector"): {["item","minedetector"]};
default {["weapon","unknown"]};
};
};
case (_type == 2^16): {["weapon","vehicle"]};
case (_type == 2^17): {["item","unknown"]}; // ???
default {["item","unknown"]};
};