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

Code Cleanup laser Self Designate Module #2168

Merged
merged 2 commits into from
Feb 20, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 11 additions & 18 deletions addons/laser_selfdesignate/functions/fnc_findLaserSource.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,21 @@
* Handler function for laser network code.
*
* Argument:
* 0: Emitter
* 1: Owner
*
* Return value:
* [position, direction]
* 0: Emitter <OBJECT>
*
* Return Value:
* 0: position <ARRAY>
* 1: direction <ARRAY>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capitalization and <ARRAY> instead of <POSTION>.

*
* Public: No
*/
//findLaserSource.sqf
//#define DEBUG_MODE_FULL
#include "script_component.hpp"

private["_emmiter", "_owner", "_gunnerInfo", "_turretInfo", "_povPos", "_povDir"];

_emmiter = _this select 0;
_owner = _this select 1;
private["_gunnerInfo", "_turretInfo"];
params ["_emmiter"];

_gunnerInfo = [_emmiter, (currentWeapon _emmiter)] call CBA_fnc_getFirer;
_turretInfo = [_emmiter, _gunnerInfo select 1] call EFUNC(common,getTurretDirection);
_povPos = _turretInfo select 0;
_povDir = _turretInfo select 1;

if(!isNil "_povPos" && !isNil "_povDir") exitWith {
[_povPos, _povDir]
};
_turretInfo params [["_povPos", -1], ["_povDir", -1]];

[-1,-1]
[_povPos, _povDir]
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,17 @@
* Author: esteldunedain
* Initializes the actions for turning on/off the laser for vehicles that have them
*
* Argument:
* Arguments:
* 0: Vehicle <OBJECT>
*
* Return value:
* NONE.
* Return Value:
* None
*
* Public: No
*/
#include "script_component.hpp"

EXPLODE_1_PVT(_this,_vehicle);
params ["_vehicle"];

// Add action to class if it is not already done
private ["_type", "_initializedClasses"];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,14 @@
* 0: Shooter, player shooting the laser
* 1: LaserUUID, the UUID of the laser returned by EFUNC(laser,laserOn)
* 2: Local laser target, unused.
*
* Return value:
* true
*
* Return Value:
* True <BOOL>
*/
#include "script_component.hpp"

if( (count _this) > 2) then {
EXPLODE_3_PVT(_this,_shooter,_laserUuid,_localLaserTarget);

params ["", "_laserUuid"];
[_laserUuid] call EFUNC(laser,laserOff);
// @TODO: Nou gets to field all tickets about missing lasers.
//deleteVehicle _localLaserTarget;
Expand All @@ -27,4 +26,4 @@ if(!isNil QGVAR(selfDesignateHandle)) then {
GVAR(selfDesignateHandle) = nil;
};

true
true
45 changes: 22 additions & 23 deletions addons/laser_selfdesignate/functions/fnc_laserHudDesignateOn.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
* Turns on laser self designation from this vehicle based on the turret.
* There are no arguments, because it is all strictly based on the users vehicle.
*
* Argument:
* Arguments:
* None
*
* Return value:
* N/A
* Return Value:
* None
*
* Public: No
*/
//#define DEBUG_MODE_FULL
#include "script_component.hpp"

TRACE_1("enter", _this);
Expand All @@ -17,36 +19,34 @@ TRACE_1("enter", _this);

FUNC(laserHudDesignatePFH) = {
private["_strongestResultPos", "_args", "_localLaserTarget", "_laserResultPosition", "_laserResult", "_shooter", "_vehicle", "_weapon", "_gunnerInfo", "_turretInfo", "_pov", "_gunBeg", "_gunEnd", "_povPos", "_povDir", "_result", "_resultPositions", "_firstResult", "_forceUpdateTime"];
_args = _this select 0;

_shooter = _args select 0;
_localLaserTarget = _args select 2;
params ["_args"];
_args params ["_shooter", "_localLaserTarget"];
_vehicle = vehicle _shooter;
TRACE_1("", _args);
if((vehicle _shooter) == _shooter || {!alive _shooter} || {isNull _vehicle} || {!GVAR(active)} ) exitWith {

if((vehicle _shooter) == _shooter || {!alive _shooter} || {isNull _vehicle} || {!GVAR(active)} ) exitWith {
_args call FUNC(laserHudDesignateOff);
};
if(!([_shooter] call FUNC(unitTurretHasDesignator)) ) exitWith {
_args call FUNC(laserHudDesignateOff);
};

if( (count _args) < 4) then {
_args set[3, ACE_diagTime + FCS_UPDATE_DELAY];
};
_forceUpdateTime = _args select 3;

// @TODO: We don't have anything here we need to do the calculations for right now
/*

_gunnerInfo = [_vehicle, (currentWeapon _vehicle)] call CBA_fnc_getFirer;
_turretInfo = [_vehicle, _gunnerInfo select 1] call EFUNC(common,getTurretDirection);
_povPos = _turretInfo select 0;

_laserCode = (vehicle ACE_player) getVariable["ace_laser_code", ACE_DEFAULT_LASER_CODE];
_waveLength = (vehicle ACE_player) getVariable["ace_laser_waveLength", ACE_DEFAULT_LASER_WAVELENGTH];


_laserResult = [_povPos, [_waveLength,_waveLength], _laserCode] call EFUNC(laser,seekerFindLaserSpot);
_laserResultPosition = _laserResult select 0;
TRACE_1("Search", _laserResult);
Expand All @@ -56,36 +56,35 @@ FUNC(laserHudDesignatePFH) = {
//_localLaserTarget setPosASL _laserResultPosition;
};
*/

if(ACE_diagTime > _forceUpdateTime) then {
["ace_fcs_forceUpdate", []] call ace_common_fnc_localEvent;
_args set[3, ACE_diagTime + FCS_UPDATE_DELAY];
};

_this set[0, _args];
};

private ["_laserTarget", "_handle", "_vehicle", "_laserUuid", "_waveLength", "_beamSpread", "_laserCode"];

if(!GVAR(active)) then {
GVAR(active) = true;

TRACE_1("Activating laser", "");

// Get the self-designation variables, or use defaults
_laserCode = (vehicle ACE_player) getVariable["ace_laser_code", ACE_DEFAULT_LASER_CODE];
_waveLength = (vehicle ACE_player) getVariable["ace_laser_waveLength", ACE_DEFAULT_LASER_WAVELENGTH];
_beamSpread = (vehicle ACE_player) getVariable["ace_laser_beamSpread", ACE_DEFAULT_LASER_BEAMSPREAD];

_laserUuid = [(vehicle ACE_player), ACE_player, QFUNC(findLaserSource), _waveLength, _laserCode, _beamSpread] call EFUNC(laser,laserOn);

// @TODO: Create the local target for the players side
// @TODO: Nou gets to field all tickets about missing lasers.
//_localLaserTarget = "LaserTargetW" createVehicleLocal (getpos ACE_player);

GVAR(selfDesignateHandle) = [FUNC(laserHudDesignatePFH), 0.1, [ACE_player, _laserUuid, nil]] call CBA_fnc_addPerFrameHandler;
} else {
[] call FUNC(laserHudDesignateOff);
[] call FUNC(laserHudDesignateOn);
};

Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,17 @@
* Author: esteldunedain
* Checks if the turret occupied by the given unit has a laser designator
*
* Argument:
* Arguments:
* 0: Unit <OBJECT>
*
* Return value:
* Has designator? <BOOL>
* Return Value:
* Has unit designator <BOOL>
*
* Public: No
*/
#include "script_component.hpp"

EXPLODE_1_PVT(_this,_unit);
params ["_unit"];

// Get the player turret path
private ["_turret","_config","_turretConfig"];
Expand Down