mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
bb03f55c5c
* Add garrison and un-garrison modules * Remove unnecessary text from garrison header * Add french translations to new strings * Add changes requested by review * Change pushback to pushBack * Move garrison funcs to ai, finish headers * Remove diag log debug * Fix typos and header issues * Add missing newlines * Fix strings, Fix typos and headers * Enable debug and disable compile cache, Add trace and comments * Rebase before review * Fix default case running instead of case 3 * Fix edge case related to players being in garrison group The player would make the enableAttack checks in ungarrison and garrisonMove fail, this is now fixed. * Fix some arrays in garrsionMove and garrison * Relax distance checks in garrisonMove, change AI behaviour while pathing to aware * Add debug view * Remove unused var, fix unit pos using the wrong format * Make debug more visually pleasing * Change garrison debug target to a waypoint icon * Change disableAI event to AISection, comment out doFollow in doMove EH * Fix locality issue
84 lines
3.3 KiB
Plaintext
84 lines
3.3 KiB
Plaintext
#include "script_component.hpp"
|
|
|
|
[QGVAR(AISection), {
|
|
params [["_units", [], [[]]], ["_sections", [], [[]]], ["_bool", true, [true]]];
|
|
{
|
|
private _section = _x;
|
|
{
|
|
if (_bool) then {
|
|
_x enableAI _section;
|
|
} else {
|
|
_x disableAI _section;
|
|
};
|
|
LOG(format [ARR_4("XEH_postInit: %1 disableAI %2 | ID %3", _x, _section, clientOwner)]);
|
|
} foreach (_units select {local _x});
|
|
} foreach _sections
|
|
}] call CBA_fnc_addEventHandler;
|
|
|
|
[QGVAR(unGarrison), FUNC(unGarrison)] call CBA_fnc_addEventHandler;
|
|
[QGVAR(doMove), {
|
|
params ["_unitsArray"];
|
|
{
|
|
_x params ["_unit", "_pos"];
|
|
//_unit doFollow leader _unit;
|
|
_unit setDestination [_pos, "LEADER PLANNED", true];
|
|
_unit doMove _pos;
|
|
LOG(format [ARR_4("XEH_postInit: %1 doMove %2 | ID %3", _unit, _pos, clientOwner)]);
|
|
} foreach _unitsArray
|
|
}] call CBA_fnc_addEventHandler;
|
|
[QGVAR(setBehaviour), {
|
|
params ["_groupsArray", "_behaviour"];
|
|
{
|
|
_x params ["_group"];
|
|
_group setBehaviour _behaviour;
|
|
LOG(format [ARR_4("XEH_postInit: %1 setBehaviour %2 | ID %3", _group, _behaviour, clientOwner)]);
|
|
} foreach _groupsArray
|
|
}] call CBA_fnc_addEventHandler;
|
|
[QGVAR(enableAttack), {
|
|
params ["_unitsArray", "_mode"];
|
|
{
|
|
_x params ["_unit"];
|
|
_unit enableAttack _mode;
|
|
LOG(format [ARR_4("XEH_postInit: %1 enableAttack %2 | ID %3", _unit, _mode, clientOwner)]);
|
|
} foreach _unitsArray
|
|
}] call CBA_fnc_addEventHandler;
|
|
|
|
#ifdef DEBUG_MODE_FULL
|
|
addMissionEventHandler ["Draw3D", {
|
|
private _unitMoveList = missionNameSpace getVariable [QGVAR(garrison_unitMoveList), []];
|
|
|
|
{
|
|
_x params ["_unit", "_pos"];
|
|
|
|
switch true do {
|
|
case (surfaceIsWater (getPos _unit) && {surfaceIsWater _pos}) : {
|
|
for "_i" from 0 to 3 do {
|
|
drawLine3D [_unit modelToWorldVisualWorld [0,0,1], (AGLtoASL _pos), [1,0,0,1]];
|
|
};
|
|
drawIcon3D ["\a3\ui_f\data\map\groupicons\waypoint.paa", [1,0,0,1], (AGLtoASL _pos), 0.75, 0.75, 0.75];
|
|
};
|
|
|
|
case (!surfaceIsWater (getPos _unit) && {!surfaceIsWater _pos}) : {
|
|
for "_i" from 0 to 3 do {
|
|
drawLine3D [_unit modelToWorldVisual [0,0,1], _pos, [1,0,0,1]];
|
|
};
|
|
drawIcon3D ["\a3\ui_f\data\map\groupicons\waypoint.paa", [1,0,0,1], _pos, 0.75, 0.75, 0.75];
|
|
};
|
|
|
|
case (!surfaceIsWater (getPos _unit) && {surfaceIsWater _pos}) : {
|
|
for "_i" from 0 to 3 do {
|
|
drawLine3D [_unit modelToWorldVisual [0,0,1], (AGLToASL _pos), [1,0,0,1]];
|
|
};
|
|
drawIcon3D ["\a3\ui_f\data\map\groupicons\waypoint.paa", [1,0,0,1], (AGLtoASL _pos), 0.75, 0.75, 0.75];
|
|
};
|
|
|
|
case (surfaceIsWater (getPos _unit) && {!surfaceIsWater _pos}) : {
|
|
for "_i" from 0 to 3 do {
|
|
drawLine3D [_unit modelToWorldVisualWorld [0,0,1], _pos, [1,0,0,1]];
|
|
};
|
|
drawIcon3D ["\a3\ui_f\data\map\groupicons\waypoint.paa", [1,0,0,1], _pos, 0.75, 0.75, 0.75];
|
|
};
|
|
};
|
|
} foreach _unitMoveList;
|
|
}];
|
|
#endif |