mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
155 lines
5.6 KiB
Plaintext
155 lines
5.6 KiB
Plaintext
// ACE - Common
|
|
#include "script_component.hpp"
|
|
|
|
QGVAR(remoteFnc) addPublicVariableEventHandler {
|
|
(_this select 1) call FUNC(execRemoteFnc);
|
|
};
|
|
|
|
[missionNamespace] call FUNC(executePersistent);
|
|
|
|
// check previous version number from profile
|
|
_currentVersion = getText (configFile >> "CfgPatches" >> QUOTE(ADDON) >> "version");
|
|
_previousVersion = profileNamespace getVariable ["ACE_VersionNumberString", ""];
|
|
|
|
if (_currentVersion != _previousVersion) then {
|
|
// do something
|
|
|
|
profileNamespace setVariable ["ACE_VersionNumberString", _currentVersion];
|
|
};
|
|
|
|
0 spawn COMPILE_FILE(scripts\Version\checkVersionNumber);
|
|
|
|
//add network event handlers
|
|
"ACEg" addPublicVariableEventHandler { _this call FUNC(_handletNetEvent); };
|
|
"ACEc" addPublicVariableEventHandler { _this call FUNC(_handletNetEvent); };
|
|
|
|
// everything that only player controlled machines need, goes below this
|
|
if (!hasInterface) exitWith {};
|
|
|
|
call COMPILE_FILE(scripts\assignedItemFix);
|
|
|
|
GVAR(keyInput) = COMPILE_FILE(scripts\keyInput);
|
|
GVAR(keyRelease) = COMPILE_FILE(scripts\keyRelease);
|
|
GVAR(editKey) = COMPILE_FILE(scripts\editKey);
|
|
GVAR(openMenu) = COMPILE_FILE(scripts\openMenu);
|
|
GVAR(closeMenu) = COMPILE_FILE(scripts\closeMenu);
|
|
GVAR(nextKeys) = COMPILE_FILE(scripts\nextKeys);
|
|
GVAR(toggleState) = COMPILE_FILE(scripts\toggleState);
|
|
|
|
[false] call FUNC(setKeyDefault);
|
|
|
|
GVAR(keyStates) = [];
|
|
GVAR(keyTimes) = [];
|
|
for "_index" from 0 to 300 do {
|
|
GVAR(keyStates) set [_index, 0];
|
|
GVAR(keyTimes) set [_index, -1];
|
|
};
|
|
|
|
call COMPILE_FILE(scripts\KeyInput\initCanInteractFunction);
|
|
call COMPILE_FILE(scripts\KeyInput\initKeys);
|
|
call COMPILE_FILE(scripts\KeyInput\initScrollWheel);
|
|
|
|
0 spawn {
|
|
while {true} do {
|
|
waitUntil {!isNull (findDisplay 46)}; sleep 0.1;
|
|
findDisplay 46 displayAddEventHandler ["KeyDown", QUOTE( _this call GVAR(onKeyDown) )];
|
|
findDisplay 46 displayAddEventHandler ["KeyUp", QUOTE( _this call GVAR(onKeyUp) )];
|
|
findDisplay 46 displayAddEventHandler ["MouseZChanged", QUOTE( _this call GVAR(onScrollWheel) )];
|
|
[false] call FUNC(disableUserInput);
|
|
waitUntil {isNull (findDisplay 46)};
|
|
};
|
|
};
|
|
|
|
enableCamShake true;
|
|
|
|
// Set the name for the current player
|
|
["playerChanged", {
|
|
EXPLODE_2_PVT(_this,_newPlayer,_oldPlayer);
|
|
|
|
if (alive _newPlayer) then {
|
|
[_newPlayer] call FUNC(setName)
|
|
};
|
|
if (alive _oldPlayer) then {
|
|
[_oldPlayer] call FUNC(setName)
|
|
};
|
|
|
|
}] call FUNC(addEventhandler);
|
|
|
|
GVAR(OldPlayerInventory) = ACE_player call FUNC(getAllGear);
|
|
GVAR(OldPlayerVisionMode) = currentVisionMode ACE_player;
|
|
GVAR(OldZeusDisplayIsOpen) = !(isNull findDisplay 312);
|
|
GVAR(OldCameraView) = cameraView;
|
|
GVAR(OldPlayerVehicle) = vehicle ACE_player;
|
|
GVAR(OldPlayerTurret) = [ACE_player] call FUNC(getTurretIndex);
|
|
|
|
// PFH to raise varios events
|
|
[{
|
|
|
|
// "playerInventoryChanged" event
|
|
_newPlayerInventory = ACE_player call FUNC(getAllGear);
|
|
if !(_newPlayerInventory isEqualTo GVAR(OldPlayerInventory)) then {
|
|
// Raise ACE event locally
|
|
GVAR(OldPlayerInventory) = _newPlayerInventory;
|
|
["playerInventoryChanged", [ACE_player, _newPlayerInventory]] call FUNC(localEvent);
|
|
};
|
|
|
|
// "playerVisionModeChanged" event
|
|
_newPlayerVisionMode = currentVisionMode ACE_player;
|
|
if !(_newPlayerVisionMode isEqualTo GVAR(OldPlayerVisionMode)) then {
|
|
// Raise ACE event locally
|
|
GVAR(OldPlayerVisionMode) = _newPlayerVisionMode;
|
|
["playerVisionModeChanged", [ACE_player, _newPlayerVisionMode]] call FUNC(localEvent);
|
|
};
|
|
|
|
// "zeusDisplayChanged" event
|
|
_newZeusDisplayIsOpen = !(isNull findDisplay 312);
|
|
if !(_newZeusDisplayIsOpen isEqualTo GVAR(OldZeusDisplayIsOpen)) then {
|
|
// Raise ACE event locally
|
|
GVAR(OldZeusDisplayIsOpen) = _newZeusDisplayIsOpen;
|
|
["zeusDisplayChanged", [ACE_player, _newZeusDisplayIsOpen]] call FUNC(localEvent);
|
|
};
|
|
|
|
// "cameraViewChanged" event
|
|
_newCameraView = cameraView;
|
|
if !(_newCameraView isEqualTo GVAR(OldCameraView)) then {
|
|
// Raise ACE event locally
|
|
GVAR(OldCameraView) = _newCameraView;
|
|
["cameraViewChanged", [ACE_player, _newCameraView]] call FUNC(localEvent);
|
|
};
|
|
|
|
// "playerVehicleChanged" event
|
|
_newPlayerVehicle = vehicle ACE_player;
|
|
if !(_newPlayerVehicle isEqualTo GVAR(OldPlayerVehicle)) then {
|
|
// Raise ACE event locally
|
|
GVAR(OldPlayerVehicle) = _newPlayerVehicle;
|
|
["playerVehicleChanged", [ACE_player, _newPlayerVehicle]] call FUNC(localEvent);
|
|
};
|
|
|
|
// "playerTurretChanged" event
|
|
[ACE_player] call FUNC(getTurretIndex);
|
|
if !(_newPlayerTurret isEqualTo GVAR(OldPlayerTurret)) then {
|
|
// Raise ACE event locally
|
|
GVAR(OldPlayerTurret) = _newPlayerTurret;
|
|
["playerTurretChanged", [ACE_player, _newPlayerTurret]] call FUNC(localEvent);
|
|
};
|
|
|
|
}, 0, []] call cba_fnc_addPerFrameHandler;
|
|
|
|
|
|
[QGVAR(reviveCounter_f), 0, false, QGVAR(ADDON)] call FUNC(defineVariable);
|
|
[QGVAR(inReviveState), false, true, QGVAR(ADDON)] call FUNC(defineVariable);
|
|
[QGVAR(isDead),false,true,QUOTE(ADDON)] call FUNC(defineVariable);
|
|
[QGVAR(isDeadPlayer), false, true, QUOTE(ADDON)] call FUNC(defineVariable);
|
|
[QGVAR(StateArrested),false,true,QUOTE(ADDON)] call FUNC(defineVariable);
|
|
["ACE_isUnconscious",false,true,QUOTE(ADDON)] call FUNC(defineVariable);
|
|
[QGVAR(ENABLE_REVIVE_SETDEAD_F),0,false,QUOTE(ADDON)] call FUNC(defineVariable);
|
|
[QGVAR(carriedBy),objNull,false,QUOTE(ADDON)] call FUNC(defineVariable);
|
|
|
|
if (isNil QGVAR(ENABLE_REVIVE_F)) then {
|
|
GVAR(ENABLE_REVIVE_F) = 0;
|
|
};
|
|
|
|
|
|
[
|
|
{((_this select 0) getvariable [QGVAR(inReviveState), false])}
|
|
] call EFUNC(common,registerUnconsciousCondition); |