mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Gforces - Add ace_setting to only run in aircraft
This commit is contained in:
parent
0762e13816
commit
236ad912af
8
addons/gforces/ACE_Settings.hpp
Normal file
8
addons/gforces/ACE_Settings.hpp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
class ACE_Settings {
|
||||||
|
class GVAR(enabledFor) {
|
||||||
|
displayName = CSTRING(enabledFor_displayName);
|
||||||
|
typeName = "SCALAR";
|
||||||
|
value = 2;
|
||||||
|
values[] = {ECSTRING(Common,Disabled), CSTRING(enabledFor_onlyAircraft), ECSTRING(Common,Enabled)};
|
||||||
|
};
|
||||||
|
};
|
@ -1,2 +1,2 @@
|
|||||||
|
PREP(addPFEH);
|
||||||
PREP(pfhUpdateGForces);
|
PREP(pfhUpdateGForces);
|
||||||
|
@ -2,14 +2,38 @@
|
|||||||
|
|
||||||
if (!hasInterface) exitWith {};
|
if (!hasInterface) exitWith {};
|
||||||
|
|
||||||
// Setup ppEffect
|
GVAR(pfID) = -1;
|
||||||
GVAR(GForces_CC) = ppEffectCreate ["ColorCorrections", 4215];
|
|
||||||
GVAR(GForces_CC) ppEffectEnable true;
|
|
||||||
GVAR(GForces_CC) ppEffectForceInNVG true;
|
|
||||||
GVAR(GForces_CC) ppEffectAdjust [1,1,0,[0,0,0,1],[0,0,0,0],[1,1,1,1],[10,10,0,0,0,0.1,0.5]];
|
|
||||||
GVAR(GForces_CC) ppEffectCommit 0.4;
|
|
||||||
|
|
||||||
GVAR(lastUpdateTime) = 0;
|
["SettingsInitialized", {
|
||||||
GVAR(oldVel) = [0,0,0];
|
TRACE_1("SettingsInitialized eh",GVAR(enabledFor));
|
||||||
|
|
||||||
[DFUNC(pfhUpdateGForces), 0, []] call CBA_fnc_addPerFrameHandler;
|
if (GVAR(enabledFor) == 0) exitWith {}; //Module has no effect if enabledFor is "None"
|
||||||
|
if (GVAR(enabledFor) == 2) exitWith { //PFEH is always on when enabledFor is "All"
|
||||||
|
[] call FUNC(addPFEH);
|
||||||
|
TRACE_1("adding perm PFEH",GVAR(pfID));
|
||||||
|
};
|
||||||
|
|
||||||
|
//PFEH only runs when player is in a type "Air" vehicle when enabledFor is "Aircraft"
|
||||||
|
|
||||||
|
if ((!isNull (vehicle ACE_player)) && {(vehicle ACE_player) isKindOf "Air"}) then { //"playerVehicleChanged" can happen before "settingInit"
|
||||||
|
[] call FUNC(addPFEH);
|
||||||
|
TRACE_1("adding temp PFEH [start in]",GVAR(pfID));
|
||||||
|
};
|
||||||
|
["playerVehicleChanged", {
|
||||||
|
params ["", "_vehicle"];
|
||||||
|
TRACE_2("playerVehicleChanged",_vehicle,typeOf _vehicle);
|
||||||
|
if (_vehicle isKindOf "Air") then {
|
||||||
|
if (GVAR(pfID) == -1) then {
|
||||||
|
[] call FUNC(addPFEH);
|
||||||
|
TRACE_1("adding temp PFEH",GVAR(pfID));
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
if (GVAR(pfID) != -1) then {
|
||||||
|
TRACE_1("removing temp PFEH",GVAR(pfID));
|
||||||
|
ppEffectDestroy GVAR(GForces_CC);
|
||||||
|
[GVAR(pfID)] call CBA_fnc_removePerFrameHandler;
|
||||||
|
GVAR(pfID) = -1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}] call EFUNC(common,addEventHandler);
|
||||||
|
}] call EFUNC(common,addEventHandler);
|
||||||
|
29
addons/gforces/functions/fnc_addPFEH.sqf
Normal file
29
addons/gforces/functions/fnc_addPFEH.sqf
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* Author: KoffeinFlummi and esteldunedain
|
||||||
|
* Adds the PFEH
|
||||||
|
*
|
||||||
|
* Argument:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Return value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
//Reset forces array
|
||||||
|
GVAR(GForces) = [];
|
||||||
|
GVAR(GForces_Index) = 0;
|
||||||
|
|
||||||
|
// Setup ppEffect
|
||||||
|
GVAR(GForces_CC) = ppEffectCreate ["ColorCorrections", 4215];
|
||||||
|
GVAR(GForces_CC) ppEffectEnable true;
|
||||||
|
GVAR(GForces_CC) ppEffectForceInNVG true;
|
||||||
|
GVAR(GForces_CC) ppEffectAdjust [1,1,0,[0,0,0,1],[0,0,0,0],[1,1,1,1],[10,10,0,0,0,0.1,0.5]];
|
||||||
|
GVAR(GForces_CC) ppEffectCommit 0.4;
|
||||||
|
|
||||||
|
GVAR(lastUpdateTime) = 0;
|
||||||
|
GVAR(oldVel) = [0,0,0];
|
||||||
|
|
||||||
|
GVAR(pfID) = [DFUNC(pfhUpdateGForces), 0, []] call CBA_fnc_addPerFrameHandler;
|
@ -13,14 +13,14 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
EXPLODE_2_PVT(_this,_params,_pfhId);
|
|
||||||
|
|
||||||
// Update the g-forces at constant mission time intervals (taking accTime into account)
|
// Update the g-forces at constant mission time intervals (taking accTime into account)
|
||||||
if ((ACE_time - GVAR(lastUpdateTime)) < INTERVAL) exitWith {};
|
if ((ACE_time - GVAR(lastUpdateTime)) < INTERVAL) exitWith {};
|
||||||
GVAR(lastUpdateTime) = ACE_time;
|
GVAR(lastUpdateTime) = ACE_time;
|
||||||
|
|
||||||
if (isNull ACE_player || !(alive ACE_player)) exitWith {};
|
if (isNull ACE_player || !(alive ACE_player)) exitWith {};
|
||||||
|
|
||||||
|
BEGIN_COUNTER(everyInterval);
|
||||||
|
|
||||||
private _newVel = velocity (vehicle ACE_player);
|
private _newVel = velocity (vehicle ACE_player);
|
||||||
private _accel = ((_newVel vectorDiff GVAR(oldVel)) vectorMultiply (1 / INTERVAL)) vectorAdd [0, 0, 9.8];
|
private _accel = ((_newVel vectorDiff GVAR(oldVel)) vectorMultiply (1 / INTERVAL)) vectorAdd [0, 0, 9.8];
|
||||||
// Cap maximum G's to +- 10 to avoid g-effects when the update is low fps.
|
// Cap maximum G's to +- 10 to avoid g-effects when the update is low fps.
|
||||||
@ -91,3 +91,5 @@ if !(ACE_player getVariable ["ACE_isUnconscious", false]) then {
|
|||||||
};
|
};
|
||||||
|
|
||||||
GVAR(GForces_CC) ppEffectCommit INTERVAL;
|
GVAR(GForces_CC) ppEffectCommit INTERVAL;
|
||||||
|
|
||||||
|
END_COUNTER(everyInterval);
|
||||||
|
15
addons/gforces/stringtable.xml
Normal file
15
addons/gforces/stringtable.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project name="ACE">
|
||||||
|
<Package name="gforces">
|
||||||
|
<Key ID="STR_ACE_gforces_enabledFor_displayName">
|
||||||
|
<English>Gforces Effects</English>
|
||||||
|
<German>Gforces Effekte</German>
|
||||||
|
<Spanish>Efectos Gforces</Spanish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_gforces_enabledFor_onlyAircraft">
|
||||||
|
<English>Only Aircraft</English>
|
||||||
|
<German>Nur Luftfahrzeug</German>
|
||||||
|
<Spanish>Sólo Aeronave</Spanish>
|
||||||
|
</Key>
|
||||||
|
</Package>
|
||||||
|
</Project>
|
Loading…
Reference in New Issue
Block a user