FavBar: performance optimization

This commit is contained in:
Raymix 2017-08-02 21:48:09 +01:00
parent 082036236a
commit a0e9ddbbef
8 changed files with 24 additions and 36 deletions

@ -39,7 +39,7 @@ if !(alive player) exitWith{ false };
EPOCH_doRotate = false;
EPOCH_modKeys = [_shift,_ctrl,_alt];
'modifier' spawn epoch_favBar_draw;
call epoch_favBar_modifier;
//Favorites bar
if (_dikCode in [EPOCH_keysfav1,EPOCH_keysfav2,EPOCH_keysfav3,EPOCH_keysfav4,EPOCH_keysfav5]) then {

@ -35,7 +35,7 @@ _this call Epoch_custom_EH_KeyUp;
if (_handled) exitWith{ true };
EPOCH_modKeys = [_shift,_ctrl,_alt];
'modifier' spawn epoch_favBar_draw;
call epoch_favBar_modifier;
//Main actions
if (_dikCode == EPOCH_keysAction) then {

@ -40,8 +40,8 @@ if (_item == "") exitWith {_return};
_slot = _item call epoch_itemTypeSlot;
_loadout = getUnitLoadout player;
_uniform = _loadout param [3,[]];
_vest = _loadout param [4,[]]
_bpack = _loadout param [5,[]]
_vest = _loadout param [4,[]];
_bpack = _loadout param [5,[]];
_uniformItems = _uniform param [1,[]];
_vestItems = _vest param [1,[]];
_bPackItems = _bPack param [1,[]];

@ -14,12 +14,13 @@
Usage: none
*/
disableSerialization;
private ["_action","_idx","_bidx","_mod"];
params ["_action","_idx","_bidx","_mod"];
switch _action do {
case "load":
{
private ["_tmp","_c","_p"];
if (EPOCH_fav_resetOnLogin) then {
profileNamespace setVariable ["rmx_var_favBar_MNone",nil];
profileNamespace setVariable ["rmx_var_favBar_MCtrl",nil];
@ -46,18 +47,13 @@ switch _action do {
_c ctrlCommit 0;
};
"draw_current" call epoch_favBar_draw;
call epoch_favBar_drawCurrent;
call epoch_favBar_refresh;
};
case "draw_current":
{
for "_i" from 0 to 4 do {
_c = (["fav_pic", _i+1] call epoch_getHUDCtrl);
_c ctrlSetText ((rmx_var_favBar_current select _i) call EPOCH_itemPicture);
};
};
case "add":
{
private ["_type","_isBanned","_isAmmo","_isChemlight","_itemIsWeapon","_itemHasInteraction","_c"];
if (rmx_var_favBar_Item in EPOCH_fav_BannedItems) exitWith {"Item is not allowed in favorites!" call epoch_message; false};
if (rmx_var_favBar_Item in rmx_var_favBar_current) exitWith {"Item already exists in favorites!" call epoch_message; false}; //if duplicate
@ -115,28 +111,6 @@ switch _action do {
_c ctrlSetText "";
};
};
case "modifier":
{
switch EPOCH_modKeys do {
case [true,false,false]: //shift
{
rmx_var_favBar_current = rmx_var_favBar_MShift;
};
case [false,true,false]: //Ctrl
{
rmx_var_favBar_current = rmx_var_favBar_MCtrl;
};
case [false,false,true]: //Alt
{
rmx_var_favBar_current = rmx_var_favBar_MAlt;
};
default { //Any other combo or no modifier
rmx_var_favBar_current = rmx_var_favBar_MNone;
};
};
'draw_current' call epoch_favBar_draw;
call epoch_favBar_refresh;
};
default {systemChat "fail"};
};

@ -0,0 +1,4 @@
for "_i" from 0 to 4 do {
_c = (["fav_pic", _i+1] call epoch_getHUDCtrl);
_c ctrlSetText ((rmx_var_favBar_current select _i) call EPOCH_itemPicture);
};

@ -41,7 +41,7 @@ rmx_var_fav_selected = false;
//(_this select 1 select 0 select 2)
{
_c = _display displayCtrl _x;
_c ctrlAddEventHandler ["MouseButtonDown",(format ["'modifier' spawn epoch_favBar_draw; rmx_var_favBar_Item = %1 call epoch_favBar_getItemByIDC; rmx_var_fav_selected = true",_x])];
_c ctrlAddEventHandler ["MouseButtonDown",(format ["call epoch_favBar_modifier; rmx_var_favBar_Item = %1 call epoch_favBar_getItemByIDC; rmx_var_fav_selected = true",_x])];
} forEach [610,620,641,622,621,644,623,611,624,642,626,625,627,612,628,643,630,629,631,6240,6216,6217,6238];
_gIdx = 0;

@ -0,0 +1,8 @@
switch EPOCH_modKeys do {
case [true,false,false]:{rmx_var_favBar_current = rmx_var_favBar_MShift;};
case [false,true,false]:{rmx_var_favBar_current = rmx_var_favBar_MCtrl;};
case [false,false,true]:{rmx_var_favBar_current = rmx_var_favBar_MAlt;};
default {rmx_var_favBar_current = rmx_var_favBar_MNone;};
};
call epoch_favBar_drawCurrent;
call epoch_favBar_refresh;

@ -324,11 +324,13 @@ class CfgClientFunctions
class favBar {
file = "epoch_code\gui\scripts\favBar";
class favBar_draw {};
class favBar_drawCurrent {};
class favBar_refresh {};
class favBar_action{};
class favBar_getItemByIDC {};
class favBar_inventory {};
class favBar_getGearItem {};
class favBar_modifier {};
};
};
};