Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move SelfActions from postInit to config #6791

Merged
merged 10 commits into from
Feb 24, 2019
24 changes: 24 additions & 0 deletions addons/interaction/CfgVehicles.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -706,6 +706,30 @@ class CfgVehicles {
};
};

class Land_Camping_Light_off_F: ThingX {
class ACE_Actions {
class ACE_MainActions {
displayName = CSTRING(MainAction);
distance = 2;

// to make "Camping Lantern (Off)" be turned on we replace it with "Camping Lantern"
class GVAR(TurnOn) {
displayName = CSTRING(TurnOn);
icon = "\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\LightsIconOn_ca.paa";
condition = QUOTE(alive _target);
statement = QUOTE(\
private _position = getPosATL _target;\
private _vectorDirAndUp = [ARR_2(vectorDir _target,vectorUp _target)];\
deleteVehicle _target;\
private _newLamp = 'Land_Camping_Light_F' createVehicle [ARR_3(0,0,0)];\
_newLamp setPosATL _position;\
_newLamp setVectorDirAndUp _vectorDirAndUp;\
);
};
};
};
};

class RoadCone_F: ThingX {
class ACE_Actions {
class ACE_MainActions {
Expand Down
18 changes: 0 additions & 18 deletions addons/interaction/XEH_postInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -135,21 +135,3 @@ GVAR(isOpeningDoor) = false;
}];
};
}] call CBA_fnc_addEventHandler;


// to make "Camping Lantern (Off)" be turned on we replace it with "Camping Lantern"
private _action = [
QGVAR(TurnOn),
localize LSTRING(TurnOn),
"\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\LightsIconOn_ca.paa",
{
private _position = getPosATL _target;
private _vectorDirAndUp = [vectorDir _target, vectorUp _target];
deleteVehicle _target;
private _newLamp = "Land_Camping_Light_F" createVehicle [0,0,0];
_newLamp setPosATL _position;
_newLamp setVectorDirAndUp _vectorDirAndUp;
},
{alive _target}
] call EFUNC(interact_menu,createAction);
["Land_Camping_Light_off_F", 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToClass);
23 changes: 23 additions & 0 deletions addons/zeus/CfgVehicles.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -324,4 +324,27 @@ class CfgVehicles {
class ModuleArsenal_F: Module_F {
function=QFUNC(bi_moduleArsenal);
};

class Man;
class CAManBase: Man {
class ACE_SelfActions {
class GVAR(create) {
displayName = CSTRING(CreateZeus);
condition = QUOTE(call FUNC(canCreateModule));
exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"};
//Set GVAR(zeus) to null first to disable the action through the isNil check
statement = QUOTE(GVAR(zeus) = objNull; [ARR_2(QQGVAR(createZeus), ACE_player)] call CBA_fnc_serverEvent);
showDisabled = 1;
icon = "\A3\Ui_F_Curator\Data\Logos\arma3_curator_eye_32_ca.paa";
};
class GVAR(delete) {
displayName = CSTRING(DeleteZeus);
condition = QUOTE(!(isNil QQGVAR(zeus) || {isNull GVAR(zeus)}));
exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"};
statement = QUOTE(deleteVehicle GVAR(zeus); GVAR(zeus) = nil);
showDisabled = 1;
icon = "\A3\Ui_F_Curator\Data\Logos\arma3_curator_eye_32_ca.paa";
};
};
};
};
1 change: 1 addition & 0 deletions addons/zeus/XEH_PREP.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ PREP(bi_moduleCurator);
PREP(bi_moduleMine);
PREP(bi_moduleProjectile);
PREP(bi_moduleRemoteControl);
PREP(canCreateModule);
PREP(getModuleDestination);
PREP(handleZeusUnitAssigned);
PREP(moduleAddArsenal);
Expand Down
38 changes: 0 additions & 38 deletions addons/zeus/XEH_postInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -81,42 +81,4 @@ if (hasInterface) then {
GVAR(zeus) = _zeus;
[localize "str_a3_cfgvehicles_moduletasksetstate_f_arguments_state_values_created_0"] call EFUNC(common,displayTextStructured);
}] call CBA_fnc_addEventHandler;

[QEGVAR(interact_menu,newControllableObject), {
params ["_type"];
if (!(_type isKindOf "CAManBase")) exitWith {};
TRACE_1("Adding zeus actions",_type);

private _action = [
QGVAR(create),
LLSTRING(CreateZeus),
"\A3\Ui_F_Curator\Data\Logos\arma3_curator_eye_32_ca.paa",
{
GVAR(zeus) = objNull; // to disable menu while zeus is being created
[QGVAR(createZeus), ACE_player] call CBA_fnc_serverEvent;
},
{
switch (GVAR(canCreateZeus)) do {
case CAN_CREATE_ADMIN: {isServer || {IS_ADMIN_LOGGED}};
case CAN_CREATE_CONSOLE: {call BIS_fnc_isDebugConsoleAllowed};
case CAN_CREATE_ALL: {true};
default {false};
}
&& {isNil QGVAR(zeus)}
}
] call EFUNC(interact_menu,createAction);
[_type, 1, ["ACE_SelfActions"], _action] call EFUNC(interact_menu,addActionToClass);

_action = [
QGVAR(delete),
LLSTRING(DeleteZeus),
"\A3\Ui_F_Curator\Data\Logos\arma3_curator_eye_32_ca.paa",
{
deleteVehicle GVAR(zeus);
GVAR(zeus) = nil;
},
{!(isNil QGVAR(zeus) || {isNull GVAR(zeus)})}
] call EFUNC(interact_menu,createAction);
[_type, 1, ["ACE_SelfActions"], _action] call EFUNC(interact_menu,addActionToClass);
}] call CBA_fnc_addEventHandler;
};
26 changes: 26 additions & 0 deletions addons/zeus/functions/fnc_canCreateModule.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#include "script_component.hpp"
/*
* Author: Dystopian
* Check whether local player is currently allowed to create a Zeus Module
*
* Arguments:
* None
*
* Return Value:
* Allowed to create module <BOOL>
*
* Example:
* call ace_zeus_fnc_canCreateModule
*
* Public: No
*/

isNil QQGVAR(zeus) &&
dedmen marked this conversation as resolved.
Show resolved Hide resolved
{
dedmen marked this conversation as resolved.
Show resolved Hide resolved
switch (GVAR(canCreateZeus)) do {
case CAN_CREATE_ADMIN: {isServer || {IS_ADMIN_LOGGED}};
case CAN_CREATE_CONSOLE: {call BIS_fnc_isDebugConsoleAllowed};
case CAN_CREATE_ALL: {true};
default {false};
}
}
dedmen marked this conversation as resolved.
Show resolved Hide resolved
4 changes: 2 additions & 2 deletions include/x/cba/addons/main/script_macros_common.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1707,7 +1707,7 @@ Macro: IS_ADMIN
Author:
commy2
------------------------------------------- */
#define IS_ADMIN serverCommandAvailable "#kick"
#define IS_ADMIN serverCommandAvailable '#kick'

/* -------------------------------------------
Macro: IS_ADMIN_LOGGED
Expand All @@ -1727,7 +1727,7 @@ Macro: IS_ADMIN_LOGGED
Author:
commy2
------------------------------------------- */
#define IS_ADMIN_LOGGED serverCommandAvailable "#shutdown"
#define IS_ADMIN_LOGGED serverCommandAvailable '#shutdown'

/* -------------------------------------------
Macro: FILE_EXISTS
Expand Down