mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Working save.
This commit is contained in:
parent
9d06d7c7ca
commit
aee7eb9406
@ -7,4 +7,4 @@ GVAR(position) = [0,0,0];
|
||||
#include "initKeybinds.sqf"
|
||||
|
||||
// Register event for global updates
|
||||
[QGVAR(forceUpdate), FUNC(onForceUpdate)] call ace_common_fnc_addEventHandler
|
||||
[QGVAR(forceUpdate), FUNC(onForceUpdate)] call ace_common_fnc_addEventHandler;
|
@ -7,6 +7,7 @@ class Extended_PreInit_EventHandlers {
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_post_init));
|
||||
clientInit = QUOTE(call COMPILE_FILE(XEH_clientInit));
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1,200 +0,0 @@
|
||||
class RscControlsGroup;
|
||||
class RscPicture;
|
||||
class RscMapControl;
|
||||
class VScrollbar;
|
||||
class HScrollbar;
|
||||
|
||||
|
||||
// Taken from AGM for optics management.
|
||||
|
||||
class RscInGameUI {
|
||||
class RscOptics_titan {
|
||||
idd = 300;
|
||||
controls[] = {"ACE_Titan_elements_group"};
|
||||
class ACE_Titan_elements_group: RscControlsGroup
|
||||
{
|
||||
x = "SafezoneX";
|
||||
y = "SafezoneY";
|
||||
w = "SafezoneW";
|
||||
h = "SafezoneH";
|
||||
idc = 170;
|
||||
class VScrollbar: VScrollbar
|
||||
{
|
||||
autoScrollSpeed = -1;
|
||||
autoScrollDelay = 5;
|
||||
autoScrollRewind = 0;
|
||||
color[] = {1,1,1,0};
|
||||
width = 0.001;
|
||||
};
|
||||
class HScrollbar: HScrollbar
|
||||
{
|
||||
color[] = {1,1,1,0};
|
||||
height = 0.001;
|
||||
};
|
||||
class Controls
|
||||
{
|
||||
class GetLockedTarget: RscMapControl {
|
||||
onDraw = QUOTE(_this call FUNC(onGetLockedTarget));
|
||||
idc = -1;
|
||||
w = 0;
|
||||
h = 0;
|
||||
};
|
||||
|
||||
class ACE_Titan_Day_mode_off: RscPicture {
|
||||
idc = 1001;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.03/4)*3*SafezoneH - SafezoneX";
|
||||
y = "SafezoneY+SafezoneH*0.031 - SafezoneY";
|
||||
w = "0.1045752* (((SafezoneW*3)/4)/SafezoneW)/(1/SafezoneH)";
|
||||
h = "SafezoneH*0.1045752";
|
||||
colorText[] = {0.2941,0.2941,0.2941,1.0};
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\day_co.paa";
|
||||
};
|
||||
|
||||
class ACE_Titan_Day_mode: ACE_Titan_Day_mode_off {
|
||||
idc = 160;
|
||||
colorText[] = {0.2941,0.8745,0.2157,1.0};
|
||||
};
|
||||
class ACE_Titan_WFOV_mode_off: ACE_Titan_Day_mode_off {
|
||||
idc = 1004;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.307/4)*3*SafezoneH - SafezoneX";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\wfov_co.paa";
|
||||
};
|
||||
|
||||
class ACE_Titan_WFOV_mode_group: RscControlsGroup {
|
||||
x = "SafezoneX";
|
||||
y = "SafezoneY";
|
||||
w = "SafezoneW";
|
||||
h = "SafezoneH";
|
||||
idc = 163;
|
||||
class VScrollbar: VScrollbar {
|
||||
autoScrollSpeed = -1;
|
||||
autoScrollDelay = 5;
|
||||
autoScrollRewind = 0;
|
||||
color[] = {1,1,1,0};
|
||||
width = 0.001;
|
||||
};
|
||||
class HScrollbar: HScrollbar {
|
||||
color[] = {1,1,1,0};
|
||||
height = 0.001;
|
||||
};
|
||||
class Controls {
|
||||
class ACE_Titan_WFOV_mode: ACE_Titan_WFOV_mode_off {
|
||||
idc = -1;
|
||||
y = "0.031*SafeZoneH - SafezoneY";
|
||||
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.307/4)*3*SafezoneH - SafezoneX";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1.0};
|
||||
};
|
||||
};
|
||||
};
|
||||
class ACE_Titan_NFOV_mode_off: ACE_Titan_Day_mode_off {
|
||||
idc = 1003;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.586/4)*3*SafezoneH - SafezoneX";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\nfov_co.paa";
|
||||
};
|
||||
class ACE_Titan_NFOV_mode_group: RscControlsGroup {
|
||||
x = "SafezoneX";
|
||||
y = "SafezoneY";
|
||||
w = "SafezoneW-SafezoneX";
|
||||
h = "SafezoneH-SafezoneY";
|
||||
idc = 162;
|
||||
class VScrollbar: VScrollbar
|
||||
{
|
||||
autoScrollSpeed = -1;
|
||||
autoScrollDelay = 5;
|
||||
autoScrollRewind = 0;
|
||||
color[] = {1,1,1,0};
|
||||
width = 0.001;
|
||||
};
|
||||
class HScrollbar: HScrollbar {
|
||||
color[] = {1,1,1,0};
|
||||
height = 0.001;
|
||||
};
|
||||
class Controls {
|
||||
class ACE_Titan_NFOV_mode: ACE_Titan_NFOV_mode_off {
|
||||
idc = -1;
|
||||
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.586/4)*3*SafezoneH - SafezoneX";
|
||||
y = "0.031*SafeZoneH - SafezoneY";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1.0};
|
||||
};
|
||||
};
|
||||
};
|
||||
class ACE_Titan_SEEK_off: ACE_Titan_Day_mode_off {
|
||||
idc = 1005;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.863/4)*3*SafezoneH - SafezoneX";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\seek_co.paa";
|
||||
};
|
||||
class ACE_Titan_SEEK: ACE_Titan_SEEK_off {
|
||||
idc = 166;
|
||||
colorText[] = {0.2941,0.8745,0.2157,1.0};
|
||||
};
|
||||
class ACE_Titan_Missle_off: ACE_Titan_Day_mode_off {
|
||||
idc = 1032;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (-0.134/4)*3*SafezoneH - SafezoneX";
|
||||
y = "(SafezoneY + 0.208*SafezoneH) - SafezoneY";
|
||||
colorText[] = {0.2941,0.2941,0.2941,1.0};
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\missle_co.paa";
|
||||
};
|
||||
class ACE_Titan_Missle: ACE_Titan_Missle_off {
|
||||
idc = 167;
|
||||
colorText[] = {0.9255,0.5216,0.1216,1.0};
|
||||
};
|
||||
class ACE_Titan_CLU_off: ACE_Titan_Missle_off {
|
||||
idc = 1027;
|
||||
y = "(SafezoneY + 0.436*SafezoneH) - SafezoneY";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\clu_co.paa";
|
||||
};
|
||||
class ACE_Titan_HangFire_off: ACE_Titan_Missle_off {
|
||||
idc = 1028;
|
||||
y = "(SafezoneY + 0.669*SafezoneH) - SafezoneY";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\hangfire_co.paa";
|
||||
};
|
||||
class ACE_Titan_TOP_off: ACE_Titan_Day_mode_off {
|
||||
idc = 1006;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (1.023/4)*3*SafezoneH - SafezoneX";
|
||||
y = "(SafezoneY + 0.208*SafezoneH) - SafezoneY";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\top_co.paa";
|
||||
};
|
||||
class ACE_Titan_DIR: ACE_Titan_Day_mode {
|
||||
idc = 1007;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (1.023/4)*3*SafezoneH - SafezoneX";
|
||||
y = "(SafezoneY + 0.436*SafezoneH) - SafezoneY";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\dir_co.paa";
|
||||
};
|
||||
class ACE_Titan_FLTR_mode_off: ACE_Titan_Day_mode_off {
|
||||
idc = 1002;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (1.023/4)*3*SafezoneH - SafezoneX";
|
||||
y = "(SafezoneY + 0.669*SafezoneH) - SafezoneY";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\fltr_co.paa";
|
||||
};
|
||||
class ACE_Titan_FLTR_mode: ACE_Titan_FLTR_mode_off {
|
||||
idc = 161;
|
||||
colorText[] = {0.2941,0.8745,0.2157,1.0};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// on colorText[] = {0.2941, 0.8745, 0.2157, 1.0};
|
||||
// off colorText[] = {0.2941, 0.2941, 0.2941, 1.0};
|
||||
// orange colorText[] = {0.9255, 0.5216, 0.1216, 1.0};
|
||||
|
||||
/*
|
||||
ACE_Titan_elements_group: 170
|
||||
ACE_Titan_Day_mode_off: 1001
|
||||
ACE_Titan_Day_mode: 160
|
||||
ACE_Titan_WFOV_mode_off: 1004
|
||||
ACE_Titan_WFOV_mode_group: 163
|
||||
ACE_Titan_NFOV_mode_off: 1003
|
||||
ACE_Titan_NFOV_mode_group: 162
|
||||
ACE_Titan_SEEK_off: 1005 //1001
|
||||
ACE_Titan_SEEK: 166
|
||||
ACE_Titan_Missle_off: 1032
|
||||
ACE_Titan_Missle: 167
|
||||
ACE_Titan_CLU_off: 1027
|
||||
ACE_Titan_HangFire_off: 1028
|
||||
ACE_Titan_TOP_off: 1006
|
||||
ACE_Titan_DIR: 1007
|
||||
ACE_Titan_FLTR_mode_off: 1002
|
||||
ACE_Titan_FLTR_mode: 161
|
||||
*/
|
454
addons/wep_javelin/RscInGameUI.hpp
Normal file
454
addons/wep_javelin/RscInGameUI.hpp
Normal file
@ -0,0 +1,454 @@
|
||||
class RscOpticsValue;
|
||||
class RscControlsGroup;
|
||||
class RscPicture;
|
||||
class RscMapControl;
|
||||
class VScrollbar;
|
||||
class HScrollbar;
|
||||
class RscLine;
|
||||
|
||||
|
||||
// Taken from AGM for optics management.
|
||||
|
||||
class RscInGameUI {
|
||||
class RscOptics_titan {
|
||||
idd = 300;
|
||||
controls[] = {"ACE_javelin_elements_group"};
|
||||
onLoad = QUOTE(_this call FUNC(onOpticLoad));
|
||||
onUnload = "uiNameSpace setVariable ['ACE_RscOptics_javelin',nil];";
|
||||
|
||||
class CA_Distance: RscOpticsValue {
|
||||
idc = 151;
|
||||
sizeEx = "0";
|
||||
colorText[] = {0,0,0,0};
|
||||
x = 0;
|
||||
y = 0;
|
||||
w = 0;
|
||||
h = 0;
|
||||
};
|
||||
|
||||
class ACE_javelin_elements_group: RscControlsGroup
|
||||
{
|
||||
x = "SafezoneX";
|
||||
y = "SafezoneY";
|
||||
w = "SafezoneW";
|
||||
h = "SafezoneH";
|
||||
idc = 170;
|
||||
class VScrollbar {
|
||||
autoScrollSpeed = -1;
|
||||
autoScrollDelay = 5;
|
||||
autoScrollRewind = 0;
|
||||
color[] = {1,1,1,0};
|
||||
width = 0.001;
|
||||
};
|
||||
class HScrollbar {
|
||||
color[] = {1,1,1,0};
|
||||
height = 0.001;
|
||||
};
|
||||
class Controls {
|
||||
class JavelinLocking : RscMapControl {
|
||||
onDraw = QUOTE(_this call FUNC(onOpticDraw));
|
||||
idc = -1;
|
||||
w = 0;
|
||||
h = 0;
|
||||
};
|
||||
|
||||
class ACE_javelin_Day_mode_off: RscPicture {
|
||||
idc = 1001;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.03/4)*3*SafezoneH - SafezoneX";
|
||||
y = "SafezoneY+SafezoneH*0.031 - SafezoneY";
|
||||
w = "0.1045752* (((SafezoneW*3)/4)/SafezoneW)/(1/SafezoneH)";
|
||||
h = "SafezoneH*0.1045752";
|
||||
colorText[] = {0.2941,0.2941,0.2941,1};
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\day_co.paa";
|
||||
};
|
||||
class ACE_javelin_Day_mode: ACE_javelin_Day_mode_off {
|
||||
idc = 160;
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class ACE_javelin_WFOV_mode_off: ACE_javelin_Day_mode_off {
|
||||
idc = 1004;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.307/4)*3*SafezoneH - SafezoneX";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\wfov_co.paa";
|
||||
};
|
||||
class ACE_javelin_WFOV_mode_group: RscControlsGroup {
|
||||
x = "SafezoneX";
|
||||
y = "SafezoneY";
|
||||
w = "SafezoneW";
|
||||
h = "SafezoneH";
|
||||
idc = 163;
|
||||
class VScrollbar {
|
||||
autoScrollSpeed = -1;
|
||||
autoScrollDelay = 5;
|
||||
autoScrollRewind = 0;
|
||||
color[] = {1,1,1,0};
|
||||
width = 0.001;
|
||||
};
|
||||
class HScrollbar {
|
||||
color[] = {1,1,1,0};
|
||||
height = 0.001;
|
||||
};
|
||||
class Controls {
|
||||
class ACE_javelin_WFOV_mode: ACE_javelin_WFOV_mode_off {
|
||||
idc = -1;
|
||||
y = "0.031*SafezoneH - SafezoneY";
|
||||
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.307/4)*3*SafezoneH - SafezoneX";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class StadiaL: RscLine {
|
||||
x = "0.4899*SafezoneW - SafezoneX";
|
||||
y = "0.171*SafezoneH - SafezoneY";
|
||||
w = 0;
|
||||
h = "0.049*SafezoneH";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class StadiaR: RscLine {
|
||||
x = "0.5109*SafezoneW- SafezoneX";
|
||||
y = "0.171*SafezoneH - SafezoneY";
|
||||
w = 0;
|
||||
h = "0.049*SafezoneH";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class BracketL: RscLine {
|
||||
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.293/4)*3*SafezoneH - SafezoneX";
|
||||
y = "0.4677*SafezoneH - SafezoneY";
|
||||
w = 0;
|
||||
h = "0.0646*SafezoneH";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class BracketR: RscLine {
|
||||
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.70/4)*3*SafezoneH - SafezoneX";
|
||||
y = "0.4677*SafezoneH - SafezoneY";
|
||||
w = 0;
|
||||
h = "0.0646*SafezoneH";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class BracketT: RscLine {
|
||||
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.467/4)*3*SafezoneH - SafezoneX";
|
||||
y = "0.3535*SafezoneH - SafezoneY";
|
||||
w = "0.065* (((SafezoneW*3)/4)/SafezoneW)/(1/SafezoneH)";
|
||||
h = 0;
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class BracketB: RscLine {
|
||||
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.467/4)*3*SafezoneH - SafezoneX";
|
||||
y = "0.6465*SafezoneH - SafezoneY";
|
||||
w = "0.065* (((SafezoneW*3)/4)/SafezoneW)/(1/SafezoneH)";
|
||||
h = 0;
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
};
|
||||
};
|
||||
class ACE_javelin_NFOV_mode_off: ACE_javelin_Day_mode_off {
|
||||
idc = 1003;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.586/4)*3*SafezoneH - SafezoneX";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\nfov_co.paa";
|
||||
};
|
||||
class ACE_javelin_NFOV_mode_group: RscControlsGroup {
|
||||
x = "SafezoneX";
|
||||
y = "SafezoneY";
|
||||
w = "SafezoneW-SafezoneX";
|
||||
h = "SafezoneH-SafezoneY";
|
||||
idc = 162;
|
||||
class VScrollbar {
|
||||
autoScrollSpeed = -1;
|
||||
autoScrollDelay = 5;
|
||||
autoScrollRewind = 0;
|
||||
color[] = {1,1,1,0};
|
||||
width = 0.001;
|
||||
};
|
||||
class HScrollbar {
|
||||
color[] = {1,1,1,0};
|
||||
height = 0.001;
|
||||
};
|
||||
class Controls {
|
||||
class ACE_javelin_NFOV_mode: ACE_javelin_NFOV_mode_off {
|
||||
idc = 699003;
|
||||
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.586/4)*3*SafezoneH - SafezoneX";
|
||||
y = "0.031*SafezoneH - SafezoneY";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class StadiaL: RscLine {
|
||||
x = "0.4788*SafezoneW - SafezoneX";
|
||||
y = "0.171*SafezoneH - SafezoneY";
|
||||
w = 0;
|
||||
h = "0.049*SafezoneH";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class StadiaR: RscLine {
|
||||
x = "0.5212*SafezoneW - SafezoneX";
|
||||
y = "0.171*SafezoneH - SafezoneY";
|
||||
w = 0;
|
||||
h = "0.049*SafezoneH";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class LineHL: RscLine {
|
||||
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.01/4)*3*SafezoneH - SafezoneX";
|
||||
y = "SafezoneH*0.5 - SafezoneY";
|
||||
w = "0.29* (((SafezoneW*3)/4)/SafezoneW)/(1/SafezoneH)";
|
||||
h = "SafezoneH*0.0";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class LineHR: RscLine {
|
||||
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.695/4)*3*SafezoneH - SafezoneX";
|
||||
y = "SafezoneH*0.5 - SafezoneY";
|
||||
w = "0.29* (((SafezoneW*3)/4)/SafezoneW)/(1/SafezoneH)";
|
||||
h = "SafezoneH*0.0";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class LineVT: RscLine {
|
||||
x = "0.5*SafezoneW - SafezoneX";
|
||||
y = "0.171*SafezoneH - SafezoneY";
|
||||
w = 0;
|
||||
h = "0.1825*SafezoneH";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class LineVB: RscLine {
|
||||
x = "0.5*SafezoneW - SafezoneX";
|
||||
y = "0.6465*SafezoneH - SafezoneY";
|
||||
w = 0;
|
||||
h = "0.1895*SafezoneH";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
};
|
||||
};
|
||||
class TargetingConstrains: RscControlsGroup {
|
||||
idc = 699100;
|
||||
x = "SafezoneX";
|
||||
y = "SafezoneY";
|
||||
w = "SafezoneW-SafezoneX";
|
||||
h = "SafezoneH-SafezoneY";
|
||||
class VScrollbar {
|
||||
autoScrollSpeed = -1;
|
||||
autoScrollDelay = 5;
|
||||
autoScrollRewind = 0;
|
||||
color[] = {1,1,1,0};
|
||||
width = 0.001;
|
||||
};
|
||||
class HScrollbar {
|
||||
color[] = {1,1,1,0};
|
||||
height = 0.001;
|
||||
};
|
||||
class Controls {
|
||||
class Top: RscPicture {
|
||||
idc = 699101;
|
||||
text = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
colorText[] = {0.2941,0.2941,0.2941,1};
|
||||
x = "((SafezoneW -(3/4)*SafezoneH)/2) - SafezoneX";
|
||||
y = "0.15*SafezoneH-SafezoneY";
|
||||
w = "(3/4)*SafezoneH";
|
||||
h = "0.21*SafezoneH";
|
||||
};
|
||||
class Bottom: Top {
|
||||
idc = 699102;
|
||||
y = "0.64*SafezoneH-SafezoneY";
|
||||
};
|
||||
class Left: Top {
|
||||
idc = 699103;
|
||||
x = "((SafezoneW -(3/4)*SafezoneH)/2) - SafezoneX";
|
||||
y = "0.36*SafezoneH-SafezoneY";
|
||||
w = "0.31*(3/4)*SafezoneH";
|
||||
h = "0.28*SafezoneH";
|
||||
};
|
||||
class Right: Left {
|
||||
idc = 699104;
|
||||
x = "((SafezoneW -(3/4)*SafezoneH)/2)+ 0.69*(3/4)*SafezoneH - SafezoneX";
|
||||
};
|
||||
class OpticsBorders: RscPicture {
|
||||
idc = 699105;
|
||||
text = PATHTOF(data\javelin_ui_border_ca.paa);
|
||||
colorText[] = {0,0,0,1};
|
||||
x = "((SafezoneW -(3/4)*SafezoneH)/2) - SafezoneX";
|
||||
y = "0.15*SafezoneH-SafezoneY";
|
||||
w = "(3/4)*SafezoneH";
|
||||
h = "0.7*SafezoneH";
|
||||
};
|
||||
};
|
||||
};
|
||||
class TargetingGate: TargetingConstrains {
|
||||
idc = 699200;
|
||||
class Controls {
|
||||
class TargetingGateTL: TargetingConstrains {
|
||||
x = "((SafezoneW -(3/4)*SafezoneH)/2) - SafezoneX";
|
||||
y = "0.15*SafezoneH - SafezoneY";
|
||||
idc = 699201;
|
||||
class Controls {
|
||||
class LineH: RscLine {
|
||||
idc = 699210;
|
||||
x = "0";
|
||||
y = "0";
|
||||
w = "0.025*(3/4)*SafezoneH";
|
||||
h = "0";
|
||||
colorText[] = {0.8745,0.8745,0.8745,1};
|
||||
};
|
||||
class LineV: LineH {
|
||||
idc = 699211;
|
||||
w = "0";
|
||||
h = "0.025*SafezoneH";
|
||||
};
|
||||
};
|
||||
};
|
||||
class TargetingGateTR: TargetingGateTL {
|
||||
x = "((SafezoneW -(3/4)*SafezoneH)/2) - SafezoneX + 0.975*(3/4)*SafezoneH";
|
||||
y = "0.15*SafezoneH - SafezoneY";
|
||||
idc = 699202;
|
||||
class Controls {
|
||||
class LineH: RscLine {
|
||||
idc = 699220;
|
||||
x = "0";
|
||||
y = "0";
|
||||
w = "0.025*(3/4)*SafezoneH";
|
||||
h = "0";
|
||||
colorText[] = {0.8745,0.8745,0.8745,1};
|
||||
};
|
||||
class LineV: LineH {
|
||||
idc = 699221;
|
||||
x = "0.025*(3/4)*SafezoneH";
|
||||
w = "0";
|
||||
h = "0.025*SafezoneH";
|
||||
};
|
||||
};
|
||||
};
|
||||
class TargetingGateBL: TargetingGateTL {
|
||||
x = "((SafezoneW -(3/4)*SafezoneH)/2) - SafezoneX";
|
||||
y = "0.825*SafezoneH - SafezoneY";
|
||||
idc = 699203;
|
||||
class Controls {
|
||||
class LineH: RscLine {
|
||||
x = "0";
|
||||
y = "0.025*SafezoneH";
|
||||
w = "0.025*(3/4)*SafezoneH";
|
||||
h = "0";
|
||||
colorText[] = {0.8745,0.8745,0.8745,1};
|
||||
};
|
||||
class LineV: LineH {
|
||||
y = "0";
|
||||
w = "0";
|
||||
h = "0.025*SafezoneH";
|
||||
};
|
||||
};
|
||||
};
|
||||
class TargetingGateBR: TargetingGateBL {
|
||||
x = "((SafezoneW -(3/4)*SafezoneH)/2) - SafezoneX + 0.975*(3/4)*SafezoneH";
|
||||
y = "0.825*SafezoneH - SafezoneY";
|
||||
idc = 699204;
|
||||
class Controls {
|
||||
class LineH: RscLine {
|
||||
x = "0";
|
||||
y = "0.025*SafezoneH";
|
||||
w = "0.025*(3/4)*SafezoneH";
|
||||
h = "0";
|
||||
colorText[] = {0.8745,0.8745,0.8745,1};
|
||||
};
|
||||
class LineV: LineH {
|
||||
x = "0.025*(3/4)*SafezoneH";
|
||||
y = "0";
|
||||
w = "0";
|
||||
h = "0.025*SafezoneH";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
class TargetingLines: TargetingConstrains {
|
||||
idc = 699300;
|
||||
class Controls {
|
||||
class LineH: RscLine {
|
||||
idc = 699301;
|
||||
x = "((SafezoneW -(3/4)*SafezoneH)/2) - SafezoneX";
|
||||
y = "0.5*SafezoneH - SafezoneY";
|
||||
w = "(3/4)*SafezoneH";
|
||||
h = "0";
|
||||
colorText[] = {0.8745,0.8745,0.8745,1};
|
||||
};
|
||||
class LineV: RscLine {
|
||||
idc = 699302;
|
||||
x = "0.5*SafezoneW - SafezoneX";
|
||||
y = "0.15*SafezoneH - SafezoneY";
|
||||
w = "0";
|
||||
h = "0.7*SafezoneH";
|
||||
colorText[] = {0.8745,0.8745,0.8745,1};
|
||||
};
|
||||
};
|
||||
};
|
||||
class ACE_javelin_SEEK_off: ACE_javelin_Day_mode_off {
|
||||
idc = 699000;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.863/4)*3*SafezoneH - SafezoneX";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\seek_co.paa";
|
||||
};
|
||||
class ACE_javelin_SEEK: ACE_javelin_SEEK_off {
|
||||
idc = 166;
|
||||
colorText[] = {0.2941,0.8745,0.2157,0};
|
||||
};
|
||||
class ACE_javelin_Missle_off: ACE_javelin_Day_mode_off {
|
||||
idc = 1032;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (-0.134/4)*3*SafezoneH - SafezoneX";
|
||||
y = "(SafezoneY + 0.208*SafezoneH) - SafezoneY";
|
||||
colorText[] = {0.2941,0.2941,0.2941,1};
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\missle_co.paa";
|
||||
};
|
||||
class ACE_javelin_Missle: ACE_javelin_Missle_off {
|
||||
idc = 167;
|
||||
colorText[] = {0.9255,0.5216,0.1216,0};
|
||||
};
|
||||
class ACE_javelin_CLU_off: ACE_javelin_Missle_off {
|
||||
idc = 1027;
|
||||
y = "(SafezoneY + 0.436*SafezoneH) - SafezoneY";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\clu_co.paa";
|
||||
};
|
||||
class ACE_javelin_HangFire_off: ACE_javelin_Missle_off {
|
||||
idc = 1028;
|
||||
y = "(SafezoneY + 0.669*SafezoneH) - SafezoneY";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\hangfire_co.paa";
|
||||
};
|
||||
class ACE_javelin_TOP_off: ACE_javelin_Day_mode_off {
|
||||
idc = 699001;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (1.023/4)*3*SafezoneH - SafezoneX";
|
||||
y = "(SafezoneY + 0.208*SafezoneH) - SafezoneY";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\top_co.paa";
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
class ACE_javelin_DIR: ACE_javelin_Day_mode {
|
||||
idc = 699002;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (1.023/4)*3*SafezoneH - SafezoneX";
|
||||
y = "(SafezoneY + 0.436*SafezoneH) - SafezoneY";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\dir_co.paa";
|
||||
colorText[] = {0.2941,0.2941,0.2941,1};
|
||||
};
|
||||
class ACE_javelin_FLTR_mode_off: ACE_javelin_Day_mode_off {
|
||||
idc = 1002;
|
||||
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (1.023/4)*3*SafezoneH - SafezoneX";
|
||||
y = "(SafezoneY + 0.669*SafezoneH) - SafezoneY";
|
||||
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\fltr_co.paa";
|
||||
};
|
||||
class ACE_javelin_FLTR_mode: ACE_javelin_FLTR_mode_off {
|
||||
idc = 161;
|
||||
colorText[] = {0.2941,0.8745,0.2157,1};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// on colorText[] = {0.2941, 0.8745, 0.2157, 1.0};
|
||||
// off colorText[] = {0.2941, 0.2941, 0.2941, 1.0};
|
||||
// orange colorText[] = {0.9255, 0.5216, 0.1216, 1.0};
|
||||
|
||||
/*
|
||||
ACE_Titan_elements_group: 170
|
||||
ACE_Titan_Day_mode_off: 1001
|
||||
ACE_Titan_Day_mode: 160
|
||||
ACE_Titan_WFOV_mode_off: 1004
|
||||
ACE_Titan_WFOV_mode_group: 163
|
||||
ACE_Titan_NFOV_mode_off: 1003
|
||||
ACE_Titan_NFOV_mode_group: 162
|
||||
ACE_Titan_SEEK_off: 1005 //1001
|
||||
ACE_Titan_SEEK: 166
|
||||
ACE_Titan_Missle_off: 1032
|
||||
ACE_Titan_Missle: 167
|
||||
ACE_Titan_CLU_off: 1027
|
||||
ACE_Titan_HangFire_off: 1028
|
||||
ACE_Titan_TOP_off: 1006
|
||||
ACE_Titan_DIR: 1007
|
||||
ACE_Titan_FLTR_mode_off: 1002
|
||||
ACE_Titan_FLTR_mode: 161
|
||||
*/
|
3
addons/wep_javelin/XEH_clientInit.sqf
Normal file
3
addons/wep_javelin/XEH_clientInit.sqf
Normal file
@ -0,0 +1,3 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
#include "initKeybinds.sqf"
|
@ -1,3 +1,2 @@
|
||||
#include "script_component.hpp"
|
||||
NO_DEDICATED;
|
||||
|
||||
|
@ -1,7 +1,15 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
PREP(fired);
|
||||
PREP(onGetLockedTarget);
|
||||
|
||||
PREP(translateToWeaponSpace);
|
||||
PREP(translateToModelSpace);
|
||||
PREP(translateToModelSpace);
|
||||
|
||||
PREP(lockKeyDown);
|
||||
PREP(lockKeyUp);
|
||||
PREP(cycleFireMode);
|
||||
|
||||
PREP(onOpticLoad);
|
||||
PREP(onOpticDraw);
|
||||
|
||||
GVAR(isLockKeyDown) = false;
|
@ -11,5 +11,5 @@ class CfgPatches {
|
||||
};
|
||||
|
||||
#include "CfgEventhandlers.hpp"
|
||||
#include "CfgOptics.hpp"
|
||||
#include "RscInGameUI.hpp"
|
||||
#include "CfgSounds.hpp"
|
BIN
addons/wep_javelin/data/jav_disp.paa
Normal file
BIN
addons/wep_javelin/data/jav_disp.paa
Normal file
Binary file not shown.
BIN
addons/wep_javelin/data/jav_ring.paa
Normal file
BIN
addons/wep_javelin/data/jav_ring.paa
Normal file
Binary file not shown.
BIN
addons/wep_javelin/data/javelin_ui_border_ca.paa
Normal file
BIN
addons/wep_javelin/data/javelin_ui_border_ca.paa
Normal file
Binary file not shown.
19
addons/wep_javelin/functions/fnc_cycleFireMode.sqf
Normal file
19
addons/wep_javelin/functions/fnc_cycleFireMode.sqf
Normal file
@ -0,0 +1,19 @@
|
||||
#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
TRACE_1("enter", _this);
|
||||
|
||||
private["_player", "_currentFireMode"];
|
||||
|
||||
_currentFireMode = ACE_player getVariable["ACE_FIRE_SELECTION", ACE_JAV_FIREMODE_TOP];
|
||||
if(_currentFireMode == ACE_JAV_FIREMODE_DIR) then {
|
||||
_currentFireMode = ACE_JAV_FIREMODE_TOP;
|
||||
|
||||
__JavelinIGUITop ctrlSetTextColor __ColorGreen;
|
||||
__JavelinIGUIDir ctrlSetTextColor __ColorGray;
|
||||
} else {
|
||||
_currentFireMode = ACE_JAV_FIREMODE_DIR;
|
||||
|
||||
__JavelinIGUITop ctrlSetTextColor __ColorGray;
|
||||
__JavelinIGUIDir ctrlSetTextColor __ColorGreen;
|
||||
};
|
||||
ACE_player setVariable["ACE_FIRE_SELECTION", _currentFireMode, false];
|
@ -4,9 +4,14 @@
|
||||
TRACE_1("Launch", _this);
|
||||
PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
|
||||
|
||||
FUNC(guidance_Javelin_LOBL_HI_PFH) = {
|
||||
FUNC(guidance_Javelin_LOBL_DIR_PFH) = {
|
||||
|
||||
};
|
||||
|
||||
FUNC(guidance_Javelin_LOBL_TOP_PFH) = {
|
||||
TRACE_1("enter", _this);
|
||||
private["_pitch", "_yaw", "_wentTerminal", "_target", "_targetPos", "_curVelocity", "_missile", "_launchPos", "_targetStartPos" ];
|
||||
private["_pitch", "_yaw", "_wentTerminal", "_target", "_targetPos", "_curVelocity", "_missile",
|
||||
"_launchPos", "_targetStartPos", "_defPitch", "_defYaw"];
|
||||
_args = _this select 0;
|
||||
//PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
|
||||
_shooter = _args select 0;
|
||||
@ -21,18 +26,18 @@ FUNC(guidance_Javelin_LOBL_HI_PFH) = {
|
||||
} else {
|
||||
_wentTerminal = false;
|
||||
_launchPos = getPosASL _shooter;
|
||||
_target = GVAR(currentTarget);
|
||||
_targetStartPos = GVAR(currentTargetPos);
|
||||
_target = ACE_player getVariable[QGVAR(currentTarget), objNull];
|
||||
_targetStartPos = ACE_player getVariable[QGVAR(currentTargetPos), [0,0,0]];
|
||||
};
|
||||
|
||||
if(!alive _missile || isNull _missile || isNull _target) exitWith {
|
||||
[(_this select 1)] call cba_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
_targetPos = getPosASL _target;
|
||||
_curVelocity = velocity _missile;
|
||||
|
||||
TRACE_4("", _target, _targetPos, _launchPos, _targetStartPos);
|
||||
|
||||
if(!alive _missile || isNull _missile) exitWith {
|
||||
[(_this select 1)] call cba_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
_addHeight = [0,0,0];
|
||||
if(!isNil "_target") then {
|
||||
@ -47,22 +52,25 @@ FUNC(guidance_Javelin_LOBL_HI_PFH) = {
|
||||
TRACE_4("Phase Check", _launchPos, _missilePos, _targetPos, (_missilePos distance _targetPos));
|
||||
if((count _targetPos) > 0) then {
|
||||
_distanceToTarget = [(_missilePos select 0), (_missilePos select 1), (_targetPos select 2)] vectorDistance _targetPos;
|
||||
|
||||
|
||||
|
||||
|
||||
if( (_missilePos select 2) < (_targetPos select 2) + 200 && !_wentTerminal) then {
|
||||
_addHeight = [0,0,(_targetPos select 2) + ( (_distanceToTarget * 2) + 200)];
|
||||
TRACE_1("Climb phase", _addHeight);
|
||||
_addHeight = [0,0, ( (_distanceToTarget * 2) + 400)];
|
||||
|
||||
_defPitch = 0.25;
|
||||
_defYaw = 0.035;
|
||||
|
||||
TRACE_1("Climb phase", _addHeight);
|
||||
} else {
|
||||
_wentTerminal = true;
|
||||
_this set[2, _wentTerminal];
|
||||
TRACE_1("TERMINAL", "");
|
||||
|
||||
_defPitch = 0.25;
|
||||
_defYaw = 0.25;
|
||||
|
||||
TRACE_1("TERMINAL", "");
|
||||
};
|
||||
_targetPos = _targetPos vectorAdd _addHeight;
|
||||
|
||||
_defPitch = 0.25;
|
||||
_defYaw = 0.035;
|
||||
|
||||
|
||||
_targetVectorSeeker = [_missile, [_xVec, _yVec, _zVec], _targetPos] call FUNC(translateToWeaponSpace);
|
||||
_yaw = 0.0;
|
||||
TRACE_5("", _missile, _xVec, _yVec, _zVec, _targetPos);
|
||||
@ -119,23 +127,34 @@ FUNC(guidance_Javelin_LOBL_HI_PFH) = {
|
||||
_this set[0, _args];
|
||||
};
|
||||
|
||||
FUNC(guidance_Javelin_LOBL_HI) = {
|
||||
FUNC(guidance_Javelin_LOBL_TOP) = {
|
||||
PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
|
||||
|
||||
GVAR(lastTime) = time;
|
||||
[FUNC(guidance_Javelin_LOBL_HI_PFH), 0, _this] call cba_fnc_addPerFrameHandler;
|
||||
[FUNC(guidance_Javelin_LOBL_TOP_PFH), 0, _this] call cba_fnc_addPerFrameHandler;
|
||||
};
|
||||
|
||||
FUNC(guidance_Javelin_LOBL_DIR) = {
|
||||
PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
|
||||
|
||||
GVAR(lastTime) = time;
|
||||
[FUNC(guidance_Javelin_LOBL_DIR_PFH), 0, _this] call cba_fnc_addPerFrameHandler;
|
||||
};
|
||||
|
||||
if(!local _shooter) exitWith { false };
|
||||
if(_ammo == "M_Titan_AT") then {
|
||||
_fireMode = _shooter getVariable ["ACE_FIRE_SELECTION", ACE_DEFAULT_FIRE_SELECTION];
|
||||
_fireMode = _shooter getVariable ["ACE_FIRE_SELECTION", ACE_JAV_FIREMODE_TOP];
|
||||
|
||||
switch (_fireMode select 0) do {
|
||||
// Default to FIREMODE_DIRECT_LOAL
|
||||
// FIREMODE_DIRECT_LOAL
|
||||
default {
|
||||
LOG("Initiating Javelin FIREMODE_LOBL_HI");
|
||||
_this call FUNC(guidance_Javelin_LOBL_HI);
|
||||
};
|
||||
};
|
||||
switch (_fireMode) do {
|
||||
// Default to FIREMODE_DIRECT_LOAL
|
||||
// FIREMODE_DIRECT_LOAL
|
||||
case ACE_JAV_FIREMODE_DIR: {
|
||||
LOG("Initiating Javelin FIREMODE_LOBL_DIR");
|
||||
_this call FUNC(guidance_Javelin_LOBL_DIR);
|
||||
};
|
||||
default {
|
||||
LOG("Initiating Javelin FIREMODE_LOBL_TOP");
|
||||
_this call FUNC(guidance_Javelin_LOBL_TOP);
|
||||
};
|
||||
};
|
||||
};
|
3
addons/wep_javelin/functions/fnc_lockKeyDown.sqf
Normal file
3
addons/wep_javelin/functions/fnc_lockKeyDown.sqf
Normal file
@ -0,0 +1,3 @@
|
||||
#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
TRACE_1("enter", _this);
|
3
addons/wep_javelin/functions/fnc_lockKeyUp.sqf
Normal file
3
addons/wep_javelin/functions/fnc_lockKeyUp.sqf
Normal file
@ -0,0 +1,3 @@
|
||||
#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
TRACE_1("enter", _this);
|
@ -1,24 +0,0 @@
|
||||
//#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
|
||||
// Store the current cursor target for guidance
|
||||
GVAR(currentTarget) = cursorTarget;
|
||||
GVAR(currentTargetPos) = screenToWorld [0.5,0.5];
|
||||
|
||||
TRACE_2("Tracking optics target draw", GVAR(currentTarget), GVAR(currentTargetPos));
|
||||
|
||||
if(isNil QGVAR(nextSoundPlay)) then {
|
||||
GVAR(nextSoundPlay) = diag_tickTime + 0.25;
|
||||
};
|
||||
|
||||
hint format["T: %1", GVAR(currentTarget)];
|
||||
|
||||
if(diag_tickTime > GVAR(nextSoundPlay) ) then {
|
||||
GVAR(nextSoundPlay) = diag_tickTime + 0.25;
|
||||
|
||||
if(!isNull GVAR(currentTarget)) then {
|
||||
playSound "ACE_Javelin_Locked";
|
||||
} else {
|
||||
playSound "ACE_Javelin_Locking";
|
||||
};
|
||||
};
|
104
addons/wep_javelin/functions/fnc_onOpticDraw.sqf
Normal file
104
addons/wep_javelin/functions/fnc_onOpticDraw.sqf
Normal file
@ -0,0 +1,104 @@
|
||||
#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
TRACE_1("enter", _this);
|
||||
|
||||
#define __TRACKINTERVAL 0.1 // how frequent the check should be.
|
||||
#define __LOCKONTIME 1.85 // Lock on won't occur sooner
|
||||
#define __LOCKONTIMERANDOM 0.3 // Deviation in lock on time
|
||||
#define __SENSORSQUARE 1 // Locking on sensor square side in angles
|
||||
|
||||
#define __ConstraintTop (((ctrlPosition __JavelinIGUITargetingConstrainTop) select 1) + ((ctrlPosition (__JavelinIGUITargetingConstrainTop)) select 3))
|
||||
#define __ConstraintBottom ((ctrlPosition __JavelinIGUITargetingConstrainBottom) select 1)
|
||||
#define __ConstraintLeft (((ctrlPosition __JavelinIGUITargetingConstrainLeft) select 0) + ((ctrlPosition (__JavelinIGUITargetingConstrainLeft)) select 2))
|
||||
#define __ConstraintRight ((ctrlPosition __JavelinIGUITargetingConstrainRight) select 0)
|
||||
|
||||
#define __OffsetX ((ctrlPosition __JavelinIGUITargetingLineV) select 0) - 0.5
|
||||
#define __OffsetY ((ctrlPosition __JavelinIGUITargetingLineH) select 1) - 0.5
|
||||
|
||||
|
||||
private["_args", "_lastTick"];
|
||||
|
||||
// Reset arguments if we havnt rendered in over a second
|
||||
_args = uiNamespace getVariable[QGVAR(arguments), [] ];
|
||||
if( (count _args) > 0) then {
|
||||
_lastTick = _args select 0;
|
||||
if(diag_tickTime - _lastTick > 1) then {
|
||||
[] call FUNC(onOpticLoad);
|
||||
};
|
||||
};
|
||||
|
||||
// Pull the arguments
|
||||
_currentTarget = _args select 1;
|
||||
|
||||
|
||||
// Find a target within the optic range
|
||||
_newTarget = objNull;
|
||||
|
||||
_range = parseNumber (ctrlText __JavelinIGUIRangefinder);
|
||||
if (_range > 50 && {_range < 2500}) then {
|
||||
_pos = positionCameraToWorld [0,0,_range];
|
||||
_targetArray = _pos nearEntities ["AllVehicles", _range/25];
|
||||
if (count (_targetArray) > 0) then {
|
||||
_newTarget = _targetArray select 0;
|
||||
};
|
||||
};
|
||||
|
||||
if (isNull _newTarget) then {
|
||||
_newTarget = cursorTarget;
|
||||
};
|
||||
|
||||
if ((velocity ACE_player) distance [0,0,0] > 0.5 && {cameraView == "GUNNER"} && {cameraOn == ACE_player}) then { // keep it steady.
|
||||
ACE_player switchCamera "INTERNAL";
|
||||
};
|
||||
|
||||
if (isNull _newTarget) then {
|
||||
// No targets found
|
||||
_currentTarget = objNull;
|
||||
|
||||
__JavelinIGUISeek ctrlSetTextColor __ColorGray;
|
||||
__JavelinIGUINFOV ctrlSetTextColor __ColorGreen;
|
||||
__JavelinIGUITargetingConstrains ctrlShow false;
|
||||
__JavelinIGUITargetingGate ctrlShow false;
|
||||
__JavelinIGUITargetingLines ctrlShow false;
|
||||
|
||||
ACE_player setVariable [QGVAR(currentTarget),nil, false];
|
||||
|
||||
// Disallow fire
|
||||
//if (ACE_player ammo "Javelin" > 0 || {ACE_player ammo "ACE_Javelin_Direct" > 0}) then {ACE_player setWeaponReloadingTime //[player, "Javelin", 0.2];};
|
||||
} else {
|
||||
if (_newTarget distance ACE_player < 2500 &&
|
||||
{(call CBA_fnc_getFoV) select 1 > 7} &&
|
||||
{ (currentVisionMode ACE_player == 2)}
|
||||
) then {
|
||||
|
||||
// THIS IS A PROPER LOCK
|
||||
_currentTarget = _newTarget;
|
||||
__JavelinIGUISeek ctrlSetTextColor __ColorGreen;
|
||||
__JavelinIGUINFOV ctrlSetTextColor __ColorNull;
|
||||
__JavelinIGUITargetingConstrains ctrlShow true;
|
||||
|
||||
ACE_player setVariable[QGVAR(currentTarget), _currentTarget, false];
|
||||
ACE_player setVariable[QGVAR(currentTargetPos), getPosASL _currentTarget, false];
|
||||
|
||||
} else {
|
||||
// Something is wrong with our seek
|
||||
_currentTarget = objNull;
|
||||
|
||||
__JavelinIGUISeek ctrlSetTextColor __ColorGray;
|
||||
__JavelinIGUINFOV ctrlSetTextColor __ColorGray;
|
||||
__JavelinIGUITargetingConstrains ctrlShow false;
|
||||
__JavelinIGUITargetingGate ctrlShow false;
|
||||
__JavelinIGUITargetingLines ctrlShow false;
|
||||
|
||||
ACE_player setVariable [QGVAR(currentTarget),nil, false];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
TRACE_2("", _newTarget, _currentTarget);
|
||||
|
||||
_args set[0, diag_tickTime];
|
||||
_args set[1, _currentTarget];
|
||||
|
||||
uiNamespace setVariable[QGVAR(arguments), _args ];
|
14
addons/wep_javelin/functions/fnc_onOpticLoad.sqf
Normal file
14
addons/wep_javelin/functions/fnc_onOpticLoad.sqf
Normal file
@ -0,0 +1,14 @@
|
||||
#define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
TRACE_1("enter", _this);
|
||||
|
||||
if((count _this) > 0) then {
|
||||
uiNameSpace setVariable ['ACE_RscOptics_javelin',_this select 0];
|
||||
};
|
||||
|
||||
uiNameSpace setVariable [QGVAR(arguments),
|
||||
[
|
||||
0, // Last runtime
|
||||
objNull // currentTargetObject
|
||||
]
|
||||
];
|
30
addons/wep_javelin/initKeybinds.sqf
Normal file
30
addons/wep_javelin/initKeybinds.sqf
Normal file
@ -0,0 +1,30 @@
|
||||
// by commy2
|
||||
|
||||
["ACE3", QGVAR(lockTarget), localize "STR_ACE_WEP_JAVELIN_LockTarget",
|
||||
{
|
||||
if (GETGVAR(isLockKeyDown,false)) exitWith {false};
|
||||
|
||||
GVAR(isLockKeyDown) = true;
|
||||
|
||||
// Statement
|
||||
[ACE_player] call FUNC(lockKeyDown);
|
||||
// Return false so it doesn't block the rest weapon action
|
||||
false
|
||||
},
|
||||
{
|
||||
// prevent holding down
|
||||
GVAR(isLockKeyDown) = false;
|
||||
|
||||
// Statement
|
||||
[ACE_player] call FUNC(lockKeyUp);
|
||||
false
|
||||
},
|
||||
[15, [false, false, false]], false] call cba_fnc_addKeybind; //Tab Key
|
||||
|
||||
["ACE3", QGVAR(cycleFireMode), localize "STR_ACE_WEP_JAVELIN_CycleFireMode",
|
||||
{ false },
|
||||
{
|
||||
[ACE_player] call FUNC(cycleFireMode);
|
||||
false
|
||||
},
|
||||
[15, [false, true, false]], false] call cba_fnc_addKeybind; //Shift+Tab Key
|
@ -10,3 +10,44 @@
|
||||
#endif
|
||||
|
||||
#include "\z\ace\Addons\main\script_macros.hpp"
|
||||
|
||||
#define ACE_JAV_FIREMODE_DIR 1
|
||||
#define ACE_JAV_FIREMODE_TOP 2
|
||||
|
||||
|
||||
// Javelin IGUI defines
|
||||
#define __JavelinIGUI (uinamespace getVariable "ACE_RscOptics_javelin")
|
||||
|
||||
// Custom controls
|
||||
#define __JavelinIGUISeek (__JavelinIGUI displayCtrl 699000)
|
||||
#define __JavelinIGUITop (__JavelinIGUI displayCtrl 699001)
|
||||
#define __JavelinIGUIDir (__JavelinIGUI displayCtrl 699002)
|
||||
#define __JavelinIGUINFOV (__JavelinIGUI displayCtrl 699003)
|
||||
|
||||
// Constrains
|
||||
#define __JavelinIGUITargetingConstrains (__JavelinIGUI displayCtrl 699100)
|
||||
#define __JavelinIGUITargetingConstrainTop (__JavelinIGUI displayCtrl 699101)
|
||||
#define __JavelinIGUITargetingConstrainBottom (__JavelinIGUI displayCtrl 699102)
|
||||
#define __JavelinIGUITargetingConstrainLeft (__JavelinIGUI displayCtrl 699103)
|
||||
#define __JavelinIGUITargetingConstrainRight (__JavelinIGUI displayCtrl 699104)
|
||||
|
||||
// Targeting gate (not present yet)
|
||||
#define __JavelinIGUITargetingGate (__JavelinIGUI displayCtrl 699200)
|
||||
#define __JavelinIGUITargetingGateTL (__JavelinIGUI displayCtrl 699201)
|
||||
#define __JavelinIGUITargetingGateTR (__JavelinIGUI displayCtrl 699202)
|
||||
#define __JavelinIGUITargetingGateBL (__JavelinIGUI displayCtrl 699203)
|
||||
#define __JavelinIGUITargetingGateBR (__JavelinIGUI displayCtrl 699204)
|
||||
|
||||
// Rangefinder
|
||||
#define __JavelinIGUIRangefinder (__JavelinIGUI displayCtrl 151)
|
||||
|
||||
// Targeting lines
|
||||
#define __JavelinIGUITargetingLines (__JavelinIGUI displayCtrl 699300)
|
||||
#define __JavelinIGUITargetingLineH (__JavelinIGUI displayCtrl 699301)
|
||||
#define __JavelinIGUITargetingLineV (__JavelinIGUI displayCtrl 699302)
|
||||
|
||||
// Colors for controls
|
||||
#define __ColorOrange [0.9255,0.5216,0.1216,1]
|
||||
#define __ColorGreen [0.2941,0.8745,0.2157,1]
|
||||
#define __ColorGray [0.2941,0.2941,0.2941,1]
|
||||
#define __ColorNull [0,0,0,0]
|
24
addons/wep_javelin/stringtable.xml
Normal file
24
addons/wep_javelin/stringtable.xml
Normal file
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Edited with tabler - 2014-12-19 -->
|
||||
<Project name="ACE">
|
||||
<Package name="WEP_JAVELIN">
|
||||
<Key ID="STR_ACE_WEP_JAVELIN_LockTarget">
|
||||
<English>Lock Target (Hold)</English>
|
||||
<German>Lock Target (Hold)</German>
|
||||
<French>Lock Target (Hold)</French>
|
||||
<Polish>Lock Target (Hold)</Polish>
|
||||
<Czech>Lock Target (Hold)</Czech>
|
||||
<Spanish>Lock Target (Hold)</Spanish>
|
||||
<Russian>Lock Target (Hold)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_WEP_JAVELIN_CycleFireMode">
|
||||
<English>Cycle Fire Mode</English>
|
||||
<German>Cycle Fire Mode</German>
|
||||
<French>Cycle Fire Mode</French>
|
||||
<Polish>Cycle Fire Mode</Polish>
|
||||
<Czech>Cycle Fire Mode</Czech>
|
||||
<Spanish>Cycle Fire Mode</Spanish>
|
||||
<Russian>Cycle Fire Mode</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
Loading…
Reference in New Issue
Block a user