mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
2d scripted optics
This commit is contained in:
parent
ba00a31523
commit
6d3ddfeb5e
1
addons/optics/$PBOPREFIX$
Normal file
1
addons/optics/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
||||
z\ace\addons\optics
|
12
addons/optics/CfgEventHandlers.hpp
Normal file
12
addons/optics/CfgEventHandlers.hpp
Normal file
@ -0,0 +1,12 @@
|
||||
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_postInit));
|
||||
};
|
||||
};
|
31
addons/optics/CfgRscTitles.hpp
Normal file
31
addons/optics/CfgRscTitles.hpp
Normal file
@ -0,0 +1,31 @@
|
||||
|
||||
class RscText;
|
||||
|
||||
|
||||
class RscText;
|
||||
|
||||
class RscTitles {
|
||||
class ACE_Shortdot_Reticle {
|
||||
idd = -1;
|
||||
onLoad = "uiNamespace setVariable ['ACE_ctrlShortdotReticle', (_this select 0) displayCtrl 1];";
|
||||
duration = 999999;
|
||||
fadeIn = 0;
|
||||
fadeOut = 0;
|
||||
name = "ACE_Shortdot_Reticle";
|
||||
|
||||
class controlsBackground {
|
||||
class Debug_RscElement: RscText {
|
||||
idc = 1;
|
||||
style = 48;
|
||||
size = 1;
|
||||
sizeEx = 0;
|
||||
font = "TahomaB";
|
||||
text = "";
|
||||
x = 0;
|
||||
y = 0;
|
||||
w = 0;
|
||||
h = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
37
addons/optics/CfgWeapons.hpp
Normal file
37
addons/optics/CfgWeapons.hpp
Normal file
@ -0,0 +1,37 @@
|
||||
class CfgWeapons {
|
||||
class ItemCore;
|
||||
class InventoryOpticsItem_Base_F;
|
||||
|
||||
class optic_DMS: ItemCore {
|
||||
class ItemInfo: InventoryOpticsItem_Base_F {
|
||||
class OpticsModes {
|
||||
class Snip;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_optic_DMS: optic_DMS {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
_generalMacro = "ACE_optic_DMS";
|
||||
displayName = "LOCALIZE ACE DMS";
|
||||
//descriptionShort = "$STR_A3_CFGWEAPONS_ACC_DMS1";
|
||||
class ItemInfo: ItemInfo {
|
||||
modelOptics = QUOTE(PATHTOF(models\ace_shortdot_optics.p3d));
|
||||
|
||||
class OpticsModes: OpticsModes {
|
||||
class Snip: Snip {
|
||||
opticsZoomMin = 0.05;
|
||||
opticsZoomMax = 0.3;
|
||||
opticsZoomInit = 0.3;
|
||||
discretefov[] = {};
|
||||
modelOptics[] = {};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class SlotInfo;
|
||||
class CowsSlot: SlotInfo {
|
||||
compatibleItems[] += {"ACE_optic_DMS"};
|
||||
};
|
13
addons/optics/XEH_postInit.sqf
Normal file
13
addons/optics/XEH_postInit.sqf
Normal file
@ -0,0 +1,13 @@
|
||||
// by commy2
|
||||
#include "script_component.hpp"
|
||||
|
||||
// init RSC
|
||||
([QGVAR(reticle)] call BIS_fnc_rscLayer) cutRsc ["ACE_Shortdot_Reticle", "PLAIN", 0, false];
|
||||
|
||||
GVAR(isUsingOptic) = false;
|
||||
["cameraViewChanged", {_this call FUNC(handleCameraViewChanged)}] call EFUNC(common,addEventHandler);
|
||||
|
||||
GVAR(usedOptics) = [["","",{}],["","",{}],["","",{}]];
|
||||
["playerInventoryChanged", {_this call FUNC(handlePlayerInventoryChanged)}] call EFUNC(common,addEventHandler);
|
||||
|
||||
addMissionEventHandler ["Draw3D", {call FUNC(onDraw3D)}];
|
9
addons/optics/XEH_preInit.sqf
Normal file
9
addons/optics/XEH_preInit.sqf
Normal file
@ -0,0 +1,9 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
ADDON = false;
|
||||
|
||||
PREP(handleCameraViewChanged);
|
||||
PREP(handlePlayerInventoryChanged);
|
||||
PREP(onDraw3D);
|
||||
|
||||
ADDON = true;
|
19
addons/optics/config.cpp
Normal file
19
addons/optics/config.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common"};
|
||||
author[] = {""};
|
||||
authorUrl = "";
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgEventHandlers.hpp"
|
||||
|
||||
#include "CfgWeapons.hpp"
|
||||
|
||||
#include "CfgRscTitles.hpp"
|
7
addons/optics/functions/fnc_handleCameraViewChanged.sqf
Normal file
7
addons/optics/functions/fnc_handleCameraViewChanged.sqf
Normal file
@ -0,0 +1,7 @@
|
||||
// by commy2
|
||||
#include "script_component.hpp"
|
||||
|
||||
private "_cameraView";
|
||||
_cameraView = _this select 1;
|
||||
|
||||
GVAR(isUsingOptic) = _cameraView == "GUNNER";
|
30
addons/optics/functions/fnc_handlePlayerInventoryChanged.sqf
Normal file
30
addons/optics/functions/fnc_handlePlayerInventoryChanged.sqf
Normal file
@ -0,0 +1,30 @@
|
||||
// by commy2
|
||||
#include "script_component.hpp"
|
||||
|
||||
private "_usedOptics";
|
||||
_usedOptics = if (isNull (_this select 0)) then {["","",""]} else { //@todo fix eh
|
||||
[
|
||||
_this select 1 select 9 select 2,
|
||||
_this select 1 select 12 select 2,
|
||||
_this select 1 select 15 select 2
|
||||
]
|
||||
};
|
||||
|
||||
// update onDraw functions
|
||||
{
|
||||
if (_x != GVAR(usedOptics) select _forEachIndex select 0) then {
|
||||
private ["_opticsTexture", "_opticsScript"];
|
||||
|
||||
_opticsTexture = "";
|
||||
_opticsScript = {};
|
||||
|
||||
if (_x != "") then { // @todo
|
||||
_opticsTexture = "";
|
||||
_opticsScript = {};
|
||||
};
|
||||
|
||||
GVAR(usedOptics) set [_forEachIndex, [_x, _opticsTexture, _opticsScript]];
|
||||
};
|
||||
} forEach _usedOptics;
|
||||
|
||||
//(uiNamespace getVariable "ACE_ctrlShortdotReticle") ctrlSetText QUOTE(PATHTOF(reticles\ace_shortdot_reticle_1.paa));
|
@ -1,6 +1,15 @@
|
||||
// by commy2
|
||||
#include "script_component.hpp"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (GVAR(showShortdot)) then {
|
||||
|
||||
|
||||
|
||||
|
||||
private "_control";
|
||||
_control = uiNamespace getVariable ["ACE_ctrlShortdotReticle", controlNull];
|
||||
|
1
addons/optics/functions/script_component.hpp
Normal file
1
addons/optics/functions/script_component.hpp
Normal file
@ -0,0 +1 @@
|
||||
#include "\z\ace\addons\optics\script_component.hpp"
|
Binary file not shown.
12
addons/optics/script_component.hpp
Normal file
12
addons/optics/script_component.hpp
Normal file
@ -0,0 +1,12 @@
|
||||
#define COMPONENT optics
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#ifdef DEBUG_ENABLED_OPTICS
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_ENABLED_OPTICS
|
||||
#define DEBUG_SETTINGS DEBUG_ENABLED_OPTICS
|
||||
#endif
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
@ -40,29 +40,4 @@ class CfgWeapons {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_optic_DMS: optic_DMS {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
_generalMacro = "ACE_optic_DMS";
|
||||
displayName = "LOCALIZE ACE DMR";
|
||||
//descriptionShort = "$STR_A3_CFGWEAPONS_ACC_DMS1";
|
||||
class ItemInfo: ItemInfo {
|
||||
modelOptics = QUOTE(PATHTOF(ace_shortdot_optics.p3d));
|
||||
|
||||
class OpticsModes: OpticsModes {
|
||||
class Snip: Snip {
|
||||
opticsZoomMin = 0.05;
|
||||
opticsZoomMax = 0.3;
|
||||
opticsZoomInit = 0.3;
|
||||
discretefov[] = {};
|
||||
modelOptics[] = {};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class SlotInfo;
|
||||
class CowsSlot: SlotInfo {
|
||||
compatibleItems[] += {"ACE_optic_DMS"};
|
||||
};
|
||||
|
@ -68,30 +68,6 @@ class RscTitles {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_Shortdot_Reticle {
|
||||
idd = -1;
|
||||
onLoad = "uiNamespace setVariable ['ACE_ctrlShortdotReticle', (_this select 0) displayCtrl 1];";
|
||||
duration = 999999;
|
||||
fadeIn = 0;
|
||||
fadeOut = 0;
|
||||
name = "ACE_Shortdot_Reticle";
|
||||
|
||||
class controlsBackground {
|
||||
class Debug_RscElement: RscText {
|
||||
idc = 1;
|
||||
style = 48;
|
||||
size = 1;
|
||||
sizeEx = 0;
|
||||
font = "TahomaB";
|
||||
text = "";
|
||||
x = 0;
|
||||
y = 0;
|
||||
w = 0;
|
||||
h = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class RscInGameUI {
|
||||
|
@ -92,30 +92,3 @@ if !(hasInterface) exitWith {};
|
||||
},
|
||||
{false},
|
||||
[201, [false, true, false]], false] call cba_fnc_addKeybind;
|
||||
|
||||
// init shortdot
|
||||
GVAR(showShortdot) = false;
|
||||
|
||||
["playerInventoryChanged", {
|
||||
if (_this select 1 isEqualTo []) exitWith {}; //@todo fix eh
|
||||
|
||||
private "_showShortdot";
|
||||
_showShortdot = _this select 1 select 9 select 2 == "ACE_optic_DMS";
|
||||
|
||||
if (GVAR(showShortdot)) then {
|
||||
if (!_showShortdot) then {
|
||||
// hide control and turn onDraw handler off
|
||||
(uiNamespace getVariable ["ACE_ctrlShortdotReticle", controlNull]) ctrlShow false;
|
||||
GVAR(showShortdot) = false;
|
||||
};
|
||||
} else {
|
||||
if (_showShortdot) then {
|
||||
// create control and turn onDraw handler on
|
||||
([QGVAR(reticle)] call BIS_fnc_rscLayer) cutRsc ["ACE_Shortdot_Reticle", "PLAIN", 0, false];
|
||||
(uiNamespace getVariable "ACE_ctrlShortdotReticle") ctrlSetText QUOTE(PATHTOF(data\reticles\ace_shortdot_reticle_1.paa));
|
||||
GVAR(showShortdot) = true;
|
||||
};
|
||||
};
|
||||
}] call EFUNC(common,addEventHandler);
|
||||
|
||||
addMissionEventHandler ["Draw3D", {if (GVAR(showShortdot)) then {call FUNC(onDrawShortdot)};}];
|
||||
|
@ -7,7 +7,6 @@ PREP(canAdjustScope);
|
||||
PREP(firedEH);
|
||||
PREP(getOptics);
|
||||
PREP(inventoryCheck);
|
||||
PREP(onDrawShortdot);
|
||||
PREP(showZeroing);
|
||||
|
||||
GVAR(fadeScript) = scriptNull;
|
||||
|
Loading…
Reference in New Issue
Block a user