Change to an inline function with exitWith

In cases like this where only one selection is required, the switch option is not the best option because it is slow. Using an inline function with exitWith, the most common options are placed at the top with the least common options placed near the bottom.
This commit is contained in:
worldwidesorrow
2019-12-11 17:38:51 -06:00
committed by GitHub
parent 65221ec477
commit 1f60617862

View File

@@ -13,91 +13,38 @@ _text = getText (_config >> "displayName");
if (!_hasmeditem) exitWith {format[localize "str_player_31",_text,localize "str_player_31_use"] call dayz_rollingMessages;}; if (!_hasmeditem) exitWith {format[localize "str_player_31",_text,localize "str_player_31_use"] call dayz_rollingMessages;};
switch (_item) do { call {
case "ItemBandage": { if (_item == "ItemBandage") exitWith {[0,0,0,[player,"ItemBandage"]] execVM "\z\addons\dayz_code\medical\bandage.sqf";};
_id = [0,0,0,[player,"ItemBandage"]] execVM "\z\addons\dayz_code\medical\bandage.sqf"; if (_item == "ItemMorphine") exitWith {[0,0,0,[player,"ItemMorphine"]] execVM "\z\addons\dayz_code\medical\brokeBones.sqf";};
}; if (_item == "ItemPainkiller") exitWith {[0,0,0,[player]] execVM "\z\addons\dayz_code\medical\painkiller.sqf";};
case "ItemMorphine": { if (_item == "ItemAntibiotic") exitWith {[player,"ItemAntibiotic"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";};
_id = [0,0,0,[player]] execVM "\z\addons\dayz_code\medical\morphine.sqf"; if (_item == "ItemBloodbag") exitWith {[player,"ItemBloodbag"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";};
}; if (_item == "ItemAntibacterialWipe") exitWith {execVM "\z\addons\dayz_code\medical\wipes.sqf";};
case "equip_woodensplint": { if (_item == "ItemHeatPack") exitWith {player removeMagazine "ItemHeatPack"; r_player_warming_heatpack = [true, diag_tickTime]; localize "str_player_27" call dayz_rollingMessages;}; //dayz_temperatur = (dayz_temperatur + 5) min dayz_temperaturmax;
_id = [0,0,0,[player,"equip_woodensplint"]] execVM "\z\addons\dayz_code\medical\brokeBones.sqf"; if (_item == "equip_woodensplint") exitWith {[0,0,0,[player,"equip_woodensplint"]] execVM "\z\addons\dayz_code\medical\brokeBones.sqf";};
}; if (_item == "ItemSepsisBandage") exitWith {[0,0,0,[player,"ItemSepsisBandage"]] execVM "\z\addons\dayz_code\medical\bandage.sqf";};
case "ItemPainkiller": { if (_item == "ItemAntibiotic1") exitWith {[player,"ItemAntibiotic1"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";};
_id = [0,0,0,[player]] execVM "\z\addons\dayz_code\medical\painkiller.sqf"; if (_item == "ItemAntibiotic2") exitWith {[player,"ItemAntibiotic2"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";};
}; if (_item == "ItemAntibiotic3") exitWith {[player,"ItemAntibiotic3"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";};
//Antibiotic's system if (_item == "ItemAntibiotic3") exitWith {[player,"ItemAntibiotic3"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";};
case "ItemAntibiotic": { if (_item == "ItemAntibiotic4") exitWith {[player,"ItemAntibiotic4"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";};
_id = [player,"ItemAntibiotic"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf"; if (_item == "ItemAntibiotic5") exitWith {[player,"ItemAntibiotic5"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";};
}; if (_item == "ItemAntibiotic6") exitWith {[player,"ItemAntibiotic6"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";};
case "ItemAntibiotic1": { if (_item == "wholeBloodBagANEG") exitWith {[player,"wholeBloodBagANEG"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";};
_id = [player,"ItemAntibiotic1"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf"; if (_item == "wholeBloodBagAPOS") exitWith {[player,"wholeBloodBagAPOS"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";};
}; if (_item == "wholeBloodBagBNEG") exitWith {[player,"wholeBloodBagBNEG"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";};
case "ItemAntibiotic2": { if (_item == "wholeBloodBagBPOS") exitWith {[player,"wholeBloodBagBPOS"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";};
_id = [player,"ItemAntibiotic2"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf"; if (_item == "wholeBloodBagABNEG") exitWith {[player,"wholeBloodBagABNEG"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";};
}; if (_item == "wholeBloodBagABNEG") exitWith {[player,"wholeBloodBagABNEG"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";};
case "ItemAntibiotic3": { if (_item == "wholeBloodBagABPOS") exitWith {[player,"wholeBloodBagABPOS"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";};
_id = [player,"ItemAntibiotic3"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf"; if (_item == "wholeBloodBagONEG") exitWith {[player,"wholeBloodBagONEG"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";};
}; if (_item == "wholeBloodBagOPOS") exitWith {[player,"wholeBloodBagOPOS"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";};
case "ItemAntibiotic4": { if (_item == "bloodTester") exitWith {[0,0,0,[player]] execVM "\z\addons\dayz_code\medical\blood_test.sqf";};
_id = [player,"ItemAntibiotic4"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf"; if (_item == "transfusionKit") exitWith {[0,0,0,[player]] execVM "\z\addons\dayz_code\medical\fillBloodBag.sqf";};
}; if (_item == "emptyBloodBag") exitWith {[0,0,0,[player]] execVM "\z\addons\dayz_code\medical\fillBloodBag.sqf";};
case "ItemAntibiotic5": {
_id = [player,"ItemAntibiotic5"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";
};
case "ItemAntibiotic6": {
_id = [player,"ItemAntibiotic6"] execVM "\z\addons\dayz_code\medical\antibiotics.sqf";
};
case "ItemAntibacterialWipe": {
_id = [0,0,0,[player]] execVM "\z\addons\dayz_code\medical\wipes.sqf";
};
case "ItemHeatPack": {
player removeMagazine "ItemHeatPack";
//dayz_temperatur = (dayz_temperatur + 5) min dayz_temperaturmax;
r_player_warming_heatpack = [true, diag_tickTime];
localize "str_player_27" call dayz_rollingMessages;
};
case "bloodTester": {
_id = [0,0,0,[player]] execVM "\z\addons\dayz_code\medical\blood_test.sqf";
};
case "transfusionKit": {
_id = [0,0,0,[player]] execVM "\z\addons\dayz_code\medical\fillBloodBag.sqf";
};
case "emptyBloodBag": {
_id = [0,0,0,[player]] execVM "\z\addons\dayz_code\medical\fillBloodBag.sqf";
};
case "ItemSepsisBandage": {
_id = [0,0,0,[player,"ItemSepsisBandage"]] execVM "\z\addons\dayz_code\medical\bandage.sqf";
};
case "wholeBloodBagANEG": {
_id = [player,"wholeBloodBagANEG"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";
};
case "wholeBloodBagAPOS": {
_id = [player,"wholeBloodBagAPOS"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";
};
case "wholeBloodBagBNEG": {
_id = [player,"wholeBloodBagBNEG"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";
};
case "wholeBloodBagBPOS": {
_id = [player,"wholeBloodBagBPOS"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";
};
case "wholeBloodBagABNEG": {
_id = [player,"wholeBloodBagABNEG"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";
};
case "wholeBloodBagABPOS": {
_id = [player,"wholeBloodBagABPOS"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";
};
case "wholeBloodBagONEG": {
_id = [player,"wholeBloodBagONEG"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";
};
case "wholeBloodBagOPOS": {
_id = [player,"wholeBloodBagOPOS"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";
};
case "ItemBloodbag": {
_id = [player,"ItemBloodbag"] execVM "\z\addons\dayz_code\medical\selfbloodbag.sqf";
};
}; };
if (vehicle player != player) then { if (vehicle player != player) then {
_display = findDisplay 106; _display = findDisplay 106;
_display closeDisplay 0; _display closeDisplay 0;
}; };