mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
- self designate capabilities read from config
- add designator on/off actions to the interact_menu
This commit is contained in:
parent
63ac3bb768
commit
c82cef1b28
@ -10,18 +10,10 @@ class Extended_PostInit_EventHandlers {
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_GetIn_EventHandlers {
|
||||
class B_Heli_Attack_01_F {
|
||||
class Extended_Init_EventHandlers {
|
||||
class Helicopter {
|
||||
class ADDON {
|
||||
clientGetIn = QUOTE(_this call FUNC(onGetIn));
|
||||
init = QUOTE(_this call DFUNC(initDesignatorActions));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_GetOut_EventHandlers {
|
||||
class B_Heli_Attack_01_F {
|
||||
class ADDON {
|
||||
clientGetOut = QUOTE(_this call FUNC(onGetOut));
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -1,12 +1,11 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
PREP(onGetIn);
|
||||
PREP(onGetOut);
|
||||
|
||||
PREP(initDesignatorActions);
|
||||
PREP(laserHudDesignateOn);
|
||||
PREP(laserHudDesignateOff);
|
||||
PREP(unitTurretHasDesignator);
|
||||
|
||||
GVAR(laser) = nil;
|
||||
GVAR(laserActive) = false;
|
||||
GVAR(laserActive) = false;
|
||||
|
||||
FUNC(getPosASL) = {visiblePositionASL (_this select 0)};
|
||||
FUNC(getPosASL) = {visiblePositionASL (_this select 0)};
|
||||
|
@ -5,7 +5,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_main", "ace_laser"};
|
||||
requiredAddons[] = {"ace_interaction", "ace_laser"};
|
||||
version = VERSION;
|
||||
};
|
||||
};
|
||||
|
@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Author: esteldunedain
|
||||
* Initializes the actions for turning on/off the laser for vehicles that have them
|
||||
*
|
||||
* Argument:
|
||||
* 0: Vehicle <OBJECT>
|
||||
*
|
||||
* Return value:
|
||||
* NONE.
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
EXPLODE_1_PVT(_this,_vehicle);
|
||||
|
||||
{
|
||||
private ["_turretConfig","_onAction","_offAction"];
|
||||
_turretConfig = [configFile >> "CfgVehicles" >> typeOf _vehicle, _x] call EFUNC(common,getTurretConfigPath);
|
||||
|
||||
if (getNumber (_turretConfig >> QGVAR(Enabled)) == 1) exitWith {
|
||||
// @todo: Add the state variables to the vehicle, instead of to the client
|
||||
// e.g.: _vehicle setVariable [format ["%1_%2", QGVAR(laserActive), _x], false];
|
||||
|
||||
// Add actions
|
||||
_onAction = [QGVAR(LaserOn), localize "STR_ACE_Laser_SelfDesignate_DesignatorOn", "",
|
||||
{
|
||||
// Statement
|
||||
_this call FUNC(laserHudDesignateOn)
|
||||
},
|
||||
{
|
||||
// Condition
|
||||
!GVAR(laserActive) && {[ACE_player] call FUNC(unitTurretHasDesignator)}
|
||||
}] call EFUNC(interact_menu,createAction);
|
||||
|
||||
_offAction = [QGVAR(LaserOff), localize "STR_ACE_Laser_SelfDesignate_DesignatorOff", "",
|
||||
{
|
||||
// Statement
|
||||
_this call FUNC(laserHudDesignateOff)
|
||||
},
|
||||
{
|
||||
// Condition
|
||||
GVAR(laserActive) && {[ACE_player] call FUNC(unitTurretHasDesignator)}
|
||||
}] call EFUNC(interact_menu,createAction);
|
||||
|
||||
[typeOf _vehicle, 1, ["ACE_SelfActions"], _onAction] call EFUNC(interact_menu,addActionToClass);
|
||||
[typeOf _vehicle, 1, ["ACE_SelfActions"], _offAction] call EFUNC(interact_menu,addActionToClass);
|
||||
};
|
||||
} forEach allTurrets _vehicle;
|
@ -1,13 +0,0 @@
|
||||
//#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
// TODO: we should do this differently eventually
|
||||
private["_onActionId", "_offActionId"];
|
||||
TRACE_1("ENTER", _this);
|
||||
|
||||
// TODO: THIS SHOULD NOT BE ACTIONS EVENTUALLY
|
||||
|
||||
_onActionId = player addAction ["Laser Designator On", { _this call FUNC(laserHudDesignateOn) }, [], 1, false, false, "", QUOTE( (gunner (vehicle player)) == player && !GVAR(laserActive))];
|
||||
player setVariable[QGVAR(onActionId), _onActionId, false];
|
||||
|
||||
_offActionId = player addAction ["Laser Designator Off", { _this call FUNC(laserHudDesignateOff) }, [], 1, false, false, "", QUOTE( (gunner (vehicle player)) == player && GVAR(laserActive))];
|
||||
player setVariable[QGVAR(offActionId), _offActionId, false];
|
@ -1,10 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
_onActionId = player getVariable[QGVAR(onActionId), -1];
|
||||
_offActionId = player getVariable[QGVAR(offActionId), -1];
|
||||
|
||||
player removeAction _onActionId;
|
||||
player removeAction _offActionId;
|
||||
|
||||
player setVariable[QGVAR(onActionId), -1, false];
|
||||
player setVariable[QGVAR(offActionId), -1, false];
|
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Author: esteldunedain
|
||||
* Checks if the turret occupied by the given unit has a laser designator
|
||||
*
|
||||
* Argument:
|
||||
* 0: Unit <OBJECT>
|
||||
*
|
||||
* Return value:
|
||||
* Has designator? <BOOL>
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
EXPLODE_1_PVT(_this,_unit);
|
||||
|
||||
// Get the player turret path
|
||||
private ["_turret","_config","_turretConfig"];
|
||||
_turret = [_unit] call EFUNC(common,getTurretIndex);
|
||||
_config = configFile >> "CfgVehicles" >> typeOf vehicle _unit;
|
||||
_turretConfig = [_config, _turret] call EFUNC(common,getTurretConfigPath);
|
||||
|
||||
getNumber (_turretConfig >> QGVAR(Enabled)) > 0
|
12
addons/laser_selfdesignate/stringtable.xml
Normal file
12
addons/laser_selfdesignate/stringtable.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Edited with tabler - 2015-04-03 -->
|
||||
<Project name="ACE">
|
||||
<Package name="Laser_SelfDesignate">
|
||||
<Key ID="STR_ACE_Laser_SelfDesignate_DesignatorOn">
|
||||
<English>Laser<br/>Designator On</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Laser_SelfDesignate_DesignatorOff">
|
||||
<English>Laser<br/>Designator Off</English>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
Loading…
Reference in New Issue
Block a user