mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
64 lines
1.6 KiB
Plaintext
64 lines
1.6 KiB
Plaintext
#include "script_component.hpp"
|
|
|
|
#define VALID_NUMBER(ctrl,vari) (vari != 0 || (vari == 0 && ctrl == "0"))
|
|
|
|
_control = _this;
|
|
_type = getNumber(_control >> "type");
|
|
_idc = getNumber(_control >> "idc");
|
|
_bcsType = getNumber(_control >> "ACE_BCS_Type");
|
|
if(isNil "_bcsType") then {
|
|
_bcsType = BCS_FIELD_DEFAULT;
|
|
};
|
|
_ctrlText = ctrlText _idc;
|
|
_validate = true;
|
|
switch (_bcsType) do {
|
|
case BCS_FIELD_DEFAULT: {
|
|
if(_ctrlText == "") then {
|
|
_validate = false;
|
|
};
|
|
};
|
|
case BCS_FIELD_NUMBER: {
|
|
if(_ctrlText != "") then {
|
|
_test = parseNumber _ctrlText;
|
|
if(VALID_NUMBER(_ctrlText,_test)) then {
|
|
if((isNumber(_control >> "ACE_BCS_MinNumber"))) then {
|
|
_minValue = getNumber(_control >> "ACE_BCS_MinNumber");
|
|
if(!(isNil "_minValue")) then {
|
|
if(_test < _minValue) then {
|
|
_validate = false;
|
|
};
|
|
};
|
|
};
|
|
if((isNumber(_control >> "ACE_BCS_MaxNumber"))) then {
|
|
_maxValue = getNumber(_control >> "ACE_BCS_MaxNumber");
|
|
if(!(isNil "_maxValue")) then {
|
|
if(_test > _maxValue) then {
|
|
_validate = false;
|
|
};
|
|
};
|
|
};
|
|
} else {
|
|
_validate = false;
|
|
};
|
|
} else {
|
|
_validate = false;
|
|
};
|
|
};
|
|
case BCS_FIELD_GRID: {
|
|
if(_ctrlText != "") then {
|
|
_test = parseNumber _ctrlText;
|
|
if(VALID_NUMBER(_ctrlText,_test)) then {
|
|
_strArray = toArray _ctrlText;
|
|
_valid = [2,4,6,8,10];
|
|
if(!((count _strArray) in _valid)) then {
|
|
_validate = false;
|
|
};
|
|
} else {
|
|
_validate = false;
|
|
};
|
|
} else {
|
|
_validate = false;
|
|
};
|
|
};
|
|
};
|
|
_validate |