mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
836be21f2d
Co-authored-by: PabstMirror <pabstmirror@gmail.com>
113 lines
4.0 KiB
C++
113 lines
4.0 KiB
C++
#include "\a3\ui_f\hpp\defineCommonGrids.inc"
|
|
|
|
#define TEXTURE_0 "\a3\ui_f_curator\Data\CfgIngameUI\Compass\texture0_ca.paa"
|
|
#define TEXTURE_1 "\a3\ui_f_curator\Data\CfgIngameUI\Compass\texture90_ca.paa"
|
|
#define TEXTURE_2 "\a3\ui_f_curator\Data\CfgIngameUI\Compass\texture180_ca.paa"
|
|
#define TEXTURE_3 "\a3\ui_f_curator\Data\CfgIngameUI\Compass\texture270_ca.paa"
|
|
|
|
#define BACKGROUND_COLOR {0.1,0.1,0.1,0.4}
|
|
#define POINTER_COLOR {0.1,0.1,0.1,1}
|
|
#define POINTER_WIDTH_FACTOR (1/128)
|
|
|
|
#define LEFT (0.5 - 8 * GUI_GRID_W)
|
|
#define TOP (safezoneY + 1.6 * GUI_GRID_H)
|
|
#define WIDTH (16 * GUI_GRID_W)
|
|
#define HEIGHT (0.5 * GUI_GRID_H)
|
|
|
|
class RscText;
|
|
class RscPicture;
|
|
class RscControlsGroupNoScrollbars;
|
|
|
|
class GVAR(CompassControl): RscControlsGroupNoScrollbars {
|
|
#pragma hemtt suppress pw3_padded_arg
|
|
onLoad = QUOTE(\
|
|
params ['_control'];\
|
|
private _display = ctrlParent _control;\
|
|
private _fnc_update = {\
|
|
params ['_display'];\
|
|
private _compassControl = _display getVariable 'GVAR(compassControl)';\
|
|
private _view = AGLToASL positionCameraToWorld [ARR_3(0,0,0)] vectorFromTo AGLToASL positionCameraToWorld [ARR_3(0,0,1)];\
|
|
private _viewHorizontal = vectorNormalized (_view vectorCrossProduct [ARR_3(0,0,1)]);\
|
|
private _dir = acos (_viewHorizontal select 0);\
|
|
if (_viewHorizontal select 1 > 0) then {\
|
|
_dir = 360 - _dir;\
|
|
};\
|
|
_compassControl ctrlSetPosition [ARR_2(-(16 * GUI_GRID_W) * (_dir / 360),0)];\
|
|
_compassControl ctrlCommit 0;\
|
|
};\
|
|
_display displayAddEventHandler [ARR_2('MouseMoving',_fnc_update)];\
|
|
_display displayAddEventHandler [ARR_2('MouseHolding',_fnc_update)];\
|
|
);
|
|
x = QUOTE(LEFT);
|
|
y = QUOTE(TOP);
|
|
w = QUOTE(WIDTH);
|
|
h = QUOTE(HEIGHT);
|
|
|
|
class controls {
|
|
class Background: RscText {
|
|
colorBackground[] = BACKGROUND_COLOR;
|
|
x = 0;
|
|
y = 0;
|
|
w = QUOTE(WIDTH);
|
|
h = QUOTE(HEIGHT);
|
|
};
|
|
class Pointer: RscText {
|
|
colorBackground[] = POINTER_COLOR;
|
|
x = QUOTE(WIDTH/2 - WIDTH*POINTER_WIDTH_FACTOR/2);
|
|
y = 0;
|
|
w = QUOTE(WIDTH*POINTER_WIDTH_FACTOR);
|
|
h = QUOTE(HEIGHT);
|
|
};
|
|
class CompassGroup: RscControlsGroupNoScrollbars {
|
|
#pragma hemtt suppress pw3_padded_arg
|
|
onLoad = QUOTE(\
|
|
params ['_control'];\
|
|
private _display = ctrlParent _control;\
|
|
_display setVariable [ARR_2('GVAR(compassControl)',_control)];\
|
|
);
|
|
x = 0;
|
|
y = 0;
|
|
w = QUOTE(2*WIDTH);
|
|
h = QUOTE(2*HEIGHT);
|
|
|
|
class controls {
|
|
class Compass0: RscPicture {
|
|
text = TEXTURE_0;
|
|
x = QUOTE(0 * (WIDTH / 4));
|
|
y = 0;
|
|
w = QUOTE(WIDTH/4);
|
|
h = QUOTE(HEIGHT);
|
|
};
|
|
class Compass1: Compass0 {
|
|
text = TEXTURE_1;
|
|
x = QUOTE(1 * (WIDTH / 4));
|
|
};
|
|
class Compass2: Compass0 {
|
|
text = TEXTURE_2;
|
|
x = QUOTE(2 * (WIDTH / 4));
|
|
};
|
|
class Compass3: Compass0 {
|
|
text = TEXTURE_3;
|
|
x = QUOTE(3 * (WIDTH / 4));
|
|
};
|
|
class Compass4: Compass0 {
|
|
text = TEXTURE_0;
|
|
x = QUOTE(4 * (WIDTH / 4));
|
|
};
|
|
class Compass5: Compass0 {
|
|
text = TEXTURE_1;
|
|
x = QUOTE(5 * (WIDTH / 4));
|
|
};
|
|
class Compass6: Compass0 {
|
|
text = TEXTURE_2;
|
|
x = QUOTE(6 * (WIDTH / 4));
|
|
};
|
|
class Compass7: Compass0 {
|
|
text = TEXTURE_3;
|
|
x = QUOTE(7 * (WIDTH / 4));
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|