mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
1ab7a886e7
* Optimise cursor object updates * Restrict distance units can be selected from * Fix potential for no icons to render in FPP * Limit projectile drawing distance * Optimise icon updates * Fix group names not being drawn in vehicles * Fix selection nameplate not drawing for vehicles * Fix selection of non-spectatable entities
53 lines
1.4 KiB
Plaintext
53 lines
1.4 KiB
Plaintext
/*
|
|
* Author: Nelson Duarte, AACO, SilentSpike
|
|
* Function used to handle mouse down event
|
|
*
|
|
* Expected behaviour:
|
|
* Left clicking a unit focuses the camera on that unit (in any camera mode)
|
|
* Left clicking empty space removes the current camera focus in free camera
|
|
* Right clicking removes the camera lock, but retains the focus in free camera
|
|
* Right clicking and dragging orbits around the unit in follow camera
|
|
*
|
|
* Arguments:
|
|
* 0: Control <CONTROL>
|
|
* 1: Mouse button pressed <NUMBER>
|
|
*
|
|
* Return Value:
|
|
* None
|
|
*
|
|
* Example:
|
|
* _this call ace_spectator_fnc_ui_handleMouseButtonDown
|
|
*
|
|
* Public: No
|
|
*/
|
|
|
|
#include "script_component.hpp"
|
|
|
|
params ["", "_button"];
|
|
|
|
// Left click
|
|
if (_button == 0) exitWith {
|
|
if (isNull GVAR(cursorObject)) then {
|
|
if (GVAR(camMode) == MODE_FREE && { !isNull GVAR(camTarget) }) then {
|
|
playSound "ReadoutHideClick1";
|
|
[objNull] call FUNC(setFocus);
|
|
};
|
|
} else {
|
|
if (GVAR(cursorObject) in ([] call FUNC(getTargetEntities))) then {
|
|
playSound "ReadoutClick";
|
|
|
|
// Focus will be at screen center
|
|
[GVAR(cursorObject)] call FUNC(setFocus);
|
|
setMousePosition [0.5, 0.5];
|
|
};
|
|
};
|
|
};
|
|
|
|
// Right click
|
|
if (_button == 1) then {
|
|
if (GVAR(camMode) == MODE_FREE && { !isNull GVAR(camTarget) } && { !isNull (attachedTo GVAR(camDummy)) }) then {
|
|
[] call FUNC(cam_resetTarget);
|
|
};
|
|
GVAR(holdingRMB) = true;
|
|
};
|