mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Implemented the Kestrel4500 spinning wheel animation
This commit is contained in:
parent
1ff7218903
commit
705017f222
@ -65,7 +65,7 @@ class Kestrel4500_Display
|
||||
type=0;
|
||||
font="TahomaB";
|
||||
SizeEX=0.025;
|
||||
idc=-1;
|
||||
idc=74000;
|
||||
style=48;
|
||||
x=safezoneX;
|
||||
y=safezoneY;
|
||||
@ -73,7 +73,7 @@ class Kestrel4500_Display
|
||||
h=1.024*4/3;
|
||||
colorBackground[]={1,1,1,1};
|
||||
colorText[]={1,1,1,1};
|
||||
text=PATHTOF(UI\kestrel4500.paa);
|
||||
text=PATHTOF(UI\Kestrel4500.paa);
|
||||
};
|
||||
class POWER: Kestrel4500_RscButton
|
||||
{
|
||||
@ -237,7 +237,7 @@ class RscTitles
|
||||
h=1.024*4/3*0.75;
|
||||
colorBackground[]={1,1,1,1};
|
||||
colorText[]={1,1,1,1};
|
||||
text=PATHTOF(UI\kestrel4500.paa);
|
||||
text=PATHTOF(UI\Kestrel4500.paa);
|
||||
};
|
||||
class RscTextTop: Kestrel4500_RscText
|
||||
{
|
||||
|
BIN
addons/kestrel4500/UI/Kestrel4500_0.paa
Normal file
BIN
addons/kestrel4500/UI/Kestrel4500_0.paa
Normal file
Binary file not shown.
BIN
addons/kestrel4500/UI/Kestrel4500_1.paa
Normal file
BIN
addons/kestrel4500/UI/Kestrel4500_1.paa
Normal file
Binary file not shown.
BIN
addons/kestrel4500/UI/Kestrel4500_2.paa
Normal file
BIN
addons/kestrel4500/UI/Kestrel4500_2.paa
Normal file
Binary file not shown.
BIN
addons/kestrel4500/UI/Kestrel4500_3.paa
Normal file
BIN
addons/kestrel4500/UI/Kestrel4500_3.paa
Normal file
Binary file not shown.
BIN
addons/kestrel4500/UI/Kestrel4500_4.paa
Normal file
BIN
addons/kestrel4500/UI/Kestrel4500_4.paa
Normal file
Binary file not shown.
BIN
addons/kestrel4500/UI/Kestrel4500_5.paa
Normal file
BIN
addons/kestrel4500/UI/Kestrel4500_5.paa
Normal file
Binary file not shown.
BIN
addons/kestrel4500/UI/Kestrel4500_6.paa
Normal file
BIN
addons/kestrel4500/UI/Kestrel4500_6.paa
Normal file
Binary file not shown.
@ -16,5 +16,10 @@ GVAR(Direction) = 0;
|
||||
|
||||
GVAR(RefHeading) = 0;
|
||||
|
||||
GVAR(updateTimer) = 0;
|
||||
GVAR(outputData) = ["", "", "", "", "", "", "", "", "", ""];
|
||||
GVAR(MeasuredWindSpeed) = 0;
|
||||
GVAR(WheelState) = 0;
|
||||
|
||||
GVAR(Kestrel4500) = false;
|
||||
GVAR(Overlay) = false;
|
||||
|
@ -27,8 +27,6 @@
|
||||
#define __ctrlInfoLine1 (__dsp displayCtrl 75400)
|
||||
#define __ctrlInfoLine2 (__dsp displayCtrl 75401)
|
||||
|
||||
private ["_outputData"];
|
||||
|
||||
if (GVAR(Overlay)) exitWith {
|
||||
GVAR(Overlay) = false;
|
||||
3 cutText ["", "PLAIN"];
|
||||
@ -45,6 +43,8 @@ if (GVAR(Kestrel4500) && dialog) then {
|
||||
GVAR(Overlay) = true;
|
||||
|
||||
[{
|
||||
private ["_outputData", "_updateTimer"];
|
||||
|
||||
// abort condition
|
||||
if (!GVAR(Overlay) || {!(("ACE_Kestrel4500" in (uniformItems ACE_player)) || ("ACE_Kestrel4500" in (vestItems ACE_player)))}) exitWith {
|
||||
GVAR(Overlay) = false;
|
||||
@ -54,8 +54,17 @@ GVAR(Overlay) = true;
|
||||
|
||||
_outputData = [] call FUNC(generateOutputData);
|
||||
|
||||
if (diag_tickTime > GVAR(updateTimer)) then {
|
||||
GVAR(updateTimer) = diag_tickTime + 1;
|
||||
GVAR(outputData) = _outputData;
|
||||
};
|
||||
|
||||
_outputData = GVAR(outputData);
|
||||
|
||||
3 cutRsc ["RscKestrel4500", "PLAIN", 1, false];
|
||||
|
||||
__ctrlKestrel4500 ctrlSetText format [QUOTE(PATHTOF(UI\Kestrel4500_%1.paa)), floor(GVAR(WheelState) % 7)];
|
||||
|
||||
__ctrlTop ctrlSetText (_outputData select 0);
|
||||
__ctrlCenterBig ctrlSetText (_outputData select 1);
|
||||
|
||||
@ -72,6 +81,6 @@ GVAR(Overlay) = true;
|
||||
|
||||
__ctrlInfoLine1 ctrlSetText (_outputData select 8);
|
||||
__ctrlInfoLine2 ctrlSetText (_outputData select 9);
|
||||
}, 1, _this select 0] call CBA_fnc_addPerFrameHandler;
|
||||
}, 0.01, []] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
true
|
||||
|
@ -47,6 +47,18 @@ if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) t
|
||||
_windSpeed = cos(_playerDir - _windDir) * _windSpeed;
|
||||
};
|
||||
|
||||
if (_windSpeed > 0.3) then {
|
||||
GVAR(MeasuredWindSpeed) = _windSpeed;
|
||||
} else {
|
||||
GVAR(MeasuredWindSpeed) = GVAR(MeasuredWindSpeed) * 0.99;
|
||||
if (GVAR(MeasuredWindSpeed) < 0.05) then {
|
||||
GVAR(MeasuredWindSpeed) = 0;
|
||||
};
|
||||
};
|
||||
|
||||
GVAR(WheelState) = GVAR(WheelState) + (ceil(GVAR(MeasuredWindSpeed)) min 1) max GVAR(MeasuredWindSpeed);
|
||||
if (GVAR(WheelState) > 1000) then { GVAR(WheelState) = 0 };
|
||||
|
||||
GVAR(Direction) = 4 * floor(_playerDir / 90);
|
||||
if (_playerDir % 90 > 10) then { GVAR(Direction) = GVAR(Direction) + 1};
|
||||
if (_playerDir % 90 > 35) then { GVAR(Direction) = GVAR(Direction) + 1};
|
||||
@ -69,7 +81,7 @@ switch (GVAR(Menu)) do {
|
||||
};
|
||||
case 1: { // Wind SPD
|
||||
if (!GVAR(MinAvgMax)) then {
|
||||
_textCenterBig = Str(round(abs(_windSpeed) * 10) / 10);
|
||||
_textCenterBig = Str(round(abs(GVAR(MeasuredWindSpeed)) * 10) / 10);
|
||||
} else {
|
||||
_textCenterLine1Left = "Max";
|
||||
_textCenterLine2Left = "Avg";
|
||||
@ -95,11 +107,11 @@ switch (GVAR(Menu)) do {
|
||||
case 2: { // CROSSWIND
|
||||
if (!GVAR(MinAvgMax)) then {
|
||||
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
|
||||
_textCenterBig = Str(round(abs(sin(GVAR(RefHeading) - _playerDir) * _windSpeed) * 10) / 10);
|
||||
_textInfoLine1 = format["%1 m/s @ %2", round((cos(_playerDir - _windDir) * _windSpeed) * 10) / 10, round(_playerDir)];
|
||||
_textCenterBig = Str(round(abs(sin(GVAR(RefHeading) - _playerDir) * GVAR(MeasuredWindSpeed)) * 10) / 10);
|
||||
_textInfoLine1 = format["%1 m/s @ %2", round((cos(_playerDir - _windDir) * GVAR(MeasuredWindSpeed)) * 10) / 10, round(_playerDir)];
|
||||
} else {
|
||||
_textCenterBig = Str(round(abs(sin(GVAR(RefHeading)) * _windSpeed) * 10) / 10);
|
||||
_textInfoLine1 = format["%1 m/s @ %2", round(_windSpeed * 10) / 10, round(_windDir)];
|
||||
_textCenterBig = Str(round(abs(sin(GVAR(RefHeading)) * GVAR(MeasuredWindSpeed)) * 10) / 10);
|
||||
_textInfoLine1 = format["%1 m/s @ %2", round(GVAR(MeasuredWindSpeed) * 10) / 10, round(_windDir)];
|
||||
};
|
||||
_textInfoLine2 = "- set heading";
|
||||
} else {
|
||||
@ -127,11 +139,11 @@ switch (GVAR(Menu)) do {
|
||||
case 3: { // HEADWIND
|
||||
if (!GVAR(MinAvgMax)) then {
|
||||
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
|
||||
_textCenterBig = Str(round(abs(cos(GVAR(RefHeading) - _playerDir) * _windSpeed) * 10) / 10);
|
||||
_textInfoLine1 = format["%1 m/s @ %2", round((cos(_playerDir - _windDir) * _windSpeed) * 10) / 10, round(_playerDir)];
|
||||
_textCenterBig = Str(round(abs(cos(GVAR(RefHeading) - _playerDir) * GVAR(MeasuredWindSpeed)) * 10) / 10);
|
||||
_textInfoLine1 = format["%1 m/s @ %2", round((cos(_playerDir - _windDir) * GVAR(MeasuredWindSpeed)) * 10) / 10, round(_playerDir)];
|
||||
} else {
|
||||
_textCenterBig = Str(round(abs(cos(GVAR(RefHeading)) * _windSpeed) * 10) / 10);
|
||||
_textInfoLine1 = format["%1 m/s @ %2", round(_windSpeed * 10) / 10, round(_windDir)];
|
||||
_textCenterBig = Str(round(abs(cos(GVAR(RefHeading)) * GVAR(MeasuredWindSpeed)) * 10) / 10);
|
||||
_textInfoLine1 = format["%1 m/s @ %2", round(GVAR(MeasuredWindSpeed) * 10) / 10, round(_windDir)];
|
||||
};
|
||||
_textInfoLine2 = "- set heading";
|
||||
} else {
|
||||
@ -207,7 +219,7 @@ switch (GVAR(Menu)) do {
|
||||
case 8: { // User Screen 1
|
||||
_textCenterLine1Left = Str(round(_playerDir));
|
||||
_textCenterLine2Left = Str(round(EGVAR(weather,Altitude) + ((getPosASL ACE_player) select 2)));
|
||||
_textCenterLine3Left = Str(round(abs(_windSpeed) * 10) / 10);
|
||||
_textCenterLine3Left = Str(round(abs(GVAR(MeasuredWindSpeed)) * 10) / 10);
|
||||
_textCenterLine1Right = GVAR(Directions) select GVAR(Direction);
|
||||
_textCenterLine2Right = "m";
|
||||
_textCenterLine3Right = "m/s";
|
||||
|
@ -30,4 +30,4 @@ ctrlSetText [74304, _outputData select 6];
|
||||
ctrlSetText [74305, _outputData select 7];
|
||||
|
||||
ctrlSetText [74400, _outputData select 8];
|
||||
ctrlSetText [74401, _outputData select 9];
|
||||
ctrlSetText [74401, _outputData select 9];
|
Loading…
Reference in New Issue
Block a user