mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge remote-tracking branch 'origin' into agmRespawnPort
This commit is contained in:
commit
5ffe1fa3e5
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,4 @@
|
||||
*.pbo
|
||||
|
||||
texHeaders.bin
|
||||
*.swp
|
||||
*.swo
|
||||
|
@ -1,23 +0,0 @@
|
||||
/*
|
||||
Author(s):
|
||||
bux578
|
||||
*/
|
||||
|
||||
0 spawn {
|
||||
private ["_side"];
|
||||
|
||||
waitUntil {sleep 0.5; AGM_SwitchUnits_EnableSwitchUnits};
|
||||
|
||||
//_side = [west, east, independent, civilian] select AGM_SwitchUnits_SwitchUnitsAllowedForSide;
|
||||
|
||||
_sides = [];
|
||||
|
||||
if(AGM_SwitchUnits_SwitchToWest) then {_sides pushBack west};
|
||||
if(AGM_SwitchUnits_SwitchToEast) then {_sides pushBack east};
|
||||
if(AGM_SwitchUnits_SwitchToIndependent) then {_sides pushBack independent};
|
||||
if(AGM_SwitchUnits_SwitchToCivilian) then {_sides pushBack civilian};
|
||||
|
||||
if (player getVariable ["AGM_CanSwitchUnits", false]) then {
|
||||
[player, _sides] call AGM_SwitchUnits_fnc_initPlayer;
|
||||
};
|
||||
};
|
@ -1,140 +0,0 @@
|
||||
class CfgPatches {
|
||||
class AGM_SwitchUnits {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.60;
|
||||
requiredAddons[] = {AGM_Core};
|
||||
version = "0.95";
|
||||
versionStr = "0.95";
|
||||
versionAr[] = {0,95,0};
|
||||
author[] = {"bux578"};
|
||||
authorUrl = "https://github.com/bux578/";
|
||||
};
|
||||
};
|
||||
|
||||
class CfgFunctions {
|
||||
class AGM_SwitchUnits {
|
||||
class AGM_SwitchUnits {
|
||||
file = "AGM_SwitchUnits\functions";
|
||||
class addMapFunction;
|
||||
class handleMapClick;
|
||||
class initPlayer;
|
||||
class isValidAi;
|
||||
class markAiOnMap;
|
||||
class module;
|
||||
class nearestPlayers;
|
||||
class switchBack;
|
||||
class switchUnit;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class AGM_SwitchUnits {
|
||||
clientInit = "call compile preprocessFileLineNumbers '\AGM_SwitchUnits\clientInit.sqf'";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class CfgVehicles {
|
||||
class Module_F;
|
||||
class AGM_ModuleSwitchUnits: Module_F {
|
||||
author = "AGM Team";
|
||||
category = "AGM";
|
||||
displayName = "SwitchUnits System";
|
||||
function = "AGM_SwitchUnits_fnc_module";
|
||||
scope = 2;
|
||||
isGlobal = 1;
|
||||
icon = "\AGM_SwitchUnits\UI\IconSwitchUnits_ca.paa";
|
||||
class Arguments {
|
||||
class SwitchToWest {
|
||||
displayName = "Switch to West?";
|
||||
description = "Allow switching to west units?";
|
||||
typeName = "BOOL";
|
||||
class values {
|
||||
class Yes {name = "Yes"; value = 1;};
|
||||
class No {default = 1; name = "No"; value = 0;};
|
||||
};
|
||||
};
|
||||
class SwitchToEast {
|
||||
displayName = "Switch to East?";
|
||||
description = "Allow switching to east units?";
|
||||
typeName = "BOOL";
|
||||
class values {
|
||||
class Yes {name = "Yes"; value = 1;};
|
||||
class No {default = 1; name = "No"; value = 0;};
|
||||
};
|
||||
};
|
||||
class SwitchToIndependent {
|
||||
displayName = "Switch to Independent?";
|
||||
description = "Allow switching to independent units?";
|
||||
typeName = "BOOL";
|
||||
class values {
|
||||
class Yes {name = "Yes"; value = 1;};
|
||||
class No {default = 1; name = "No"; value = 0;};
|
||||
};
|
||||
};
|
||||
class SwitchToCivilian {
|
||||
displayName = "Switch to Civilian?";
|
||||
description = "Allow switching to civilian units?";
|
||||
typeName = "BOOL";
|
||||
class values {
|
||||
class Yes {name = "Yes"; value = 1;};
|
||||
class No {default = 1; name = "No"; value = 0;};
|
||||
};
|
||||
};
|
||||
class EnableSafeZone {
|
||||
displayName = "Enable Safe Zone?";
|
||||
description = "Enable a safe zone around enemy units? Players can't switch to units inside of the safe zone.";
|
||||
typeName = "BOOL";
|
||||
class values {
|
||||
class Yes {default = 1; name = "Yes"; value = 1;};
|
||||
class No {name = "No"; value = 0;};
|
||||
};
|
||||
};
|
||||
class SafeZoneRadius {
|
||||
displayName = "Safe Zone Radius";
|
||||
description = "The safe zone around players from a different team. Default: 200";
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 100;
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
class EnableSwitchUnits {
|
||||
displayName = "Enable SwitchUnits?";
|
||||
description = "Enable to switch to AI units? Default: No";
|
||||
typeName = "BOOL";
|
||||
class values {
|
||||
class Yes {name = "Yes"; value = 1;};
|
||||
class No {default = 1; name = "No"; value = 0;};
|
||||
};
|
||||
};
|
||||
|
||||
class SwitchUnitsAllowedForSide {
|
||||
displayName = "Allow for which side?";
|
||||
description = "Which side should be allowed to switch to AI units?";
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class West {name = "West"; value = 0;};
|
||||
class East {default = 1; name = "East"; value = 1;};
|
||||
class Independent {name = "Independent"; value = 2;};
|
||||
class Civilian {name = "Civilian"; value = 3;};
|
||||
};
|
||||
};*/
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class AGM_Parameters_Numeric {
|
||||
AGM_SwitchUnits_SafeZoneRadius = 100;
|
||||
};
|
||||
class AGM_Parameters_Boolean {
|
||||
AGM_SwitchUnits_EnableSwitchUnits = 0;
|
||||
AGM_SwitchUnits_SwitchToWest = 0;
|
||||
AGM_SwitchUnits_SwitchToEast = 0;
|
||||
AGM_SwitchUnits_SwitchToIndependent = 0;
|
||||
AGM_SwitchUnits_SwitchToCivilian = 0;
|
||||
AGM_SwitchUnits_EnableSafeZone = 1;
|
||||
};
|
@ -1,23 +0,0 @@
|
||||
/*
|
||||
Name: AGM_SwitchUnits_fnc_addMapFunction
|
||||
|
||||
Author(s):
|
||||
bux578
|
||||
|
||||
Description:
|
||||
Adds a mapClick Eventhandler
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - unit
|
||||
1: ARRAY<OBJECT> - sided
|
||||
|
||||
Returns:
|
||||
VOID
|
||||
*/
|
||||
|
||||
private ["_unit"];
|
||||
_unit = _this select 0;
|
||||
|
||||
["theMapClick", "onMapSingleClick", {
|
||||
[_this, _pos, _shift, _alt] call AGM_SwitchUnits_fnc_handleMapClick;
|
||||
}, [_unit, _sides]] call BIS_fnc_addStackedEventHandler;
|
@ -1,41 +0,0 @@
|
||||
/*
|
||||
Name: AGM_SwitchUnits_fnc_handleMapClick
|
||||
|
||||
Author(s):
|
||||
bux578
|
||||
|
||||
Description:
|
||||
Finds the clicked unit
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - MapClickEventHandlerArgs
|
||||
0: OBJECT - unit to switch to
|
||||
1: ARRAY<OBJECT> - sides
|
||||
|
||||
Returns:
|
||||
VOID
|
||||
*/
|
||||
|
||||
private ["_args", "_currentPlayerUnit", "_sides", "_pos", "_sideNearest"];
|
||||
|
||||
_currentPlayerUnit = (_this select 0) select 0;
|
||||
_sides = (_this select 0) select 1;
|
||||
_pos = _this select 1;
|
||||
|
||||
_sideNearest = [];
|
||||
|
||||
{
|
||||
if ([_x] call AGM_SwitchUnits_fnc_isValidAi && (side group _x in _sides)) then {
|
||||
_sideNearest pushBack _x;
|
||||
};
|
||||
} forEach (nearestObjects [_pos, ["Man"], 20]);
|
||||
|
||||
|
||||
if (count _sideNearest > 0) then {
|
||||
private ["_switchUnit"];
|
||||
|
||||
_switchUnit = _sideNearest select 0;
|
||||
[_currentPlayerUnit, _switchUnit] call AGM_SwitchUnits_fnc_switchUnit;
|
||||
|
||||
openMap false;
|
||||
};
|
@ -1,48 +0,0 @@
|
||||
/*
|
||||
Name: AGM_SwitchUnits_fnc_initPlayer
|
||||
|
||||
Author(s):
|
||||
bux578
|
||||
|
||||
Description:
|
||||
Initializes the player
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - player
|
||||
1: ARRAY<OBJECT> - Array containing selected sides
|
||||
|
||||
Returns:
|
||||
VOID
|
||||
*/
|
||||
|
||||
private ["_playerUnit", "_sides"];
|
||||
|
||||
_playerUnit = _this select 0;
|
||||
_sides = _this select 1;
|
||||
|
||||
if (vehicle _playerUnit == _playerUnit) then {
|
||||
|
||||
[_sides] call AGM_SwitchUnits_fnc_markAiOnMap;
|
||||
|
||||
_playerUnit setVariable ["AGM_SwitchUnits_IsPlayerUnit", true];
|
||||
_playerUnit allowDamage false;
|
||||
|
||||
AGM_SwitchUnits_OriginalUnit = _playerUnit;
|
||||
AGM_SwitchUnits_OriginalName = [_playerUnit] call AGM_Core_fnc_getName;
|
||||
AGM_SwitchUnits_OriginalGroup = group _playerUnit;
|
||||
|
||||
// remove all starting gear of a player
|
||||
removeAllWeapons _playerUnit;
|
||||
removeGoggles _playerUnit;
|
||||
removeHeadgear _playerUnit;
|
||||
removeVest _playerUnit;
|
||||
removeAllAssignedItems _playerUnit;
|
||||
clearAllItemsFromBackpack _playerUnit;
|
||||
removeBackpack _playerUnit;
|
||||
_playerUnit linkItem "ItemMap";
|
||||
removeUniform _playerUnit;
|
||||
|
||||
[_playerUnit, "AGM_SwitchUnits", true] call AGM_Core_fnc_setForceWalkStatus;
|
||||
|
||||
[_playerUnit, _sides] call AGM_SwitchUnits_fnc_addMapFunction;
|
||||
};
|
@ -1,25 +0,0 @@
|
||||
/*
|
||||
Name: AGM_SwitchUnits_fnc_isValidAi
|
||||
|
||||
Author(s):
|
||||
bux578
|
||||
|
||||
Description:
|
||||
Checks if AI is a valid target for switching
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - unit
|
||||
|
||||
Returns:
|
||||
VOID
|
||||
*/
|
||||
|
||||
private ["_unit"];
|
||||
|
||||
_unit = _this select 0;
|
||||
|
||||
!([_unit] call AGM_Core_fnc_isPlayer
|
||||
|| {_unit in playableUnits}
|
||||
|| {vehicle _unit != _unit}
|
||||
|| {_unit getVariable ["AGM_SwitchUnits_IsPlayerUnit", false]}
|
||||
|| {_unit getVariable ["AGM_SwitchUnits_IsPlayerControlled", false]})
|
@ -1,64 +0,0 @@
|
||||
/*
|
||||
Name: AGM_SwitchUnits_fnc_markAiOnMap
|
||||
|
||||
Author(s):
|
||||
bux578
|
||||
|
||||
Description:
|
||||
Creates markers for AI units for given sides
|
||||
Marks players in a different color
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - side
|
||||
|
||||
Returns:
|
||||
VOID
|
||||
*/
|
||||
|
||||
private ["_sidesToShow"];
|
||||
_sidesToShow = _this select 0;
|
||||
|
||||
_sidesToShow spawn {
|
||||
|
||||
private ["_sides", "_allMarkerNames"];
|
||||
_sides = _this;
|
||||
_allMarkerNames = [];
|
||||
|
||||
while { true } do {
|
||||
sleep 1.5;
|
||||
|
||||
// delete markers
|
||||
{
|
||||
deleteMarkerLocal _x;
|
||||
} forEach _allMarkerNames;
|
||||
|
||||
// create markers
|
||||
{
|
||||
if (([_x] call AGM_SwitchUnits_fnc_isValidAi && (side group _x in _sides)) || (_x getVariable ["AGM_SwitchUnits_IsPlayerControlled", false])) then {
|
||||
private ["_markerName", "_marker", "_markerColor"];
|
||||
|
||||
//_markerName = format ["%1", [_x] call AGM_Core_fnc_getName];
|
||||
_markerName = str _x;
|
||||
|
||||
_marker = createMarkerLocal [_markerName, position _x];
|
||||
_markerName setMarkerTypeLocal "mil_triangle";
|
||||
_markerName setMarkerShapeLocal "ICON";
|
||||
_markerName setMarkerSizeLocal [0.5,0.7];
|
||||
_markerName setMarkerDirLocal getDir _x;
|
||||
|
||||
// commy's one liner magic
|
||||
_markerColor = format ["Color%1", side group _x];
|
||||
|
||||
if ((_x getVariable ["AGM_SwitchUnits_IsPlayerControlled", false])) then {
|
||||
_markerName setMarkerColorLocal "ColorOrange";
|
||||
_markerName setMarkerTextLocal (_x getVariable ["AGM_SwitchUnits_PlayerControlledName",""]);
|
||||
} else {
|
||||
_markerName setMarkerColorLocal _markerColor;
|
||||
_markerName setMarkerTextLocal (getText (configFile >> "CfgVehicles" >> typeOf _x >> "displayName"));
|
||||
};
|
||||
|
||||
_allMarkerNames pushBack _markerName;
|
||||
};
|
||||
} forEach allUnits;
|
||||
};
|
||||
};
|
@ -1,38 +0,0 @@
|
||||
/*
|
||||
Name: AGM_SwitchUnits_fnc_module
|
||||
|
||||
Author(s):
|
||||
bux578
|
||||
|
||||
Description:
|
||||
Initializes the SwitchUnits module
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - module logic
|
||||
1: ARRAY<OBJECT> - list of affected units
|
||||
2: BOOLEAN - isActivated
|
||||
|
||||
Returns:
|
||||
BOOLEAN (Good practice to include one)
|
||||
*/
|
||||
|
||||
if !(isServer) exitWith {};
|
||||
|
||||
_logic = _this select 0;
|
||||
_activated = _this select 2;
|
||||
|
||||
if !(_activated) exitWith {};
|
||||
|
||||
AGM_SwitchUnits_Module = true;
|
||||
|
||||
["AGM_SwitchUnits_EnableSwitchUnits", true] call AGM_Core_fnc_setParameter;
|
||||
|
||||
[_logic, "AGM_SwitchUnits_SwitchToWest", "SwitchToWest"] call AGM_Core_fnc_readBooleanParameterFromModule;
|
||||
[_logic, "AGM_SwitchUnits_SwitchToEast", "SwitchToEast"] call AGM_Core_fnc_readBooleanParameterFromModule;
|
||||
[_logic, "AGM_SwitchUnits_SwitchToIndependent", "SwitchToIndependent"] call AGM_Core_fnc_readBooleanParameterFromModule;
|
||||
[_logic, "AGM_SwitchUnits_SwitchToCivilian", "SwitchToCivilian"] call AGM_Core_fnc_readBooleanParameterFromModule;
|
||||
|
||||
[_logic, "AGM_SwitchUnits_EnableSafeZone", "EnableSafeZone"] call AGM_Core_fnc_readBooleanParameterFromModule;
|
||||
[_logic, "AGM_SwitchUnits_SafeZoneRadius", "SafeZoneRadius"] call AGM_Core_fnc_readNumericParameterFromModule;
|
||||
|
||||
diag_log text "[AGM]: SwitchUnits Module Initialized.";
|
@ -1,31 +0,0 @@
|
||||
/*
|
||||
Name: AGM_SwitchUnits_fnc_nearestPlayers
|
||||
|
||||
Author(s):
|
||||
bux578
|
||||
|
||||
Description:
|
||||
Returns an array of alive players in a given radius around a given location
|
||||
|
||||
Parameters:
|
||||
0: POSTION - Center position
|
||||
1: NUMBER - Radius
|
||||
|
||||
Returns:
|
||||
ARRAY<OBJECT> - Player units
|
||||
*/
|
||||
|
||||
private ["_position", "_radius", "_nearestPlayers"];
|
||||
|
||||
_position = _this select 0;
|
||||
_radius = _this select 1;
|
||||
|
||||
_nearestPlayers = [];
|
||||
|
||||
{
|
||||
if ([_x] call AGM_Core_fnc_isPlayer && {alive _x}) then {
|
||||
_nearestPlayers pushBack _x;
|
||||
};
|
||||
} forEach (nearestObjects [_position, ["Man"], _radius]);
|
||||
|
||||
_nearestPlayers
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
Name: AGM_SwitchUnits_fnc_switchBack
|
||||
|
||||
Author(s):
|
||||
bux578
|
||||
|
||||
Description:
|
||||
Switches back to the original player unit
|
||||
This method needs to be "spawn"ed
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - original player unit
|
||||
1: OBJECT - respawned unit
|
||||
|
||||
Returns:
|
||||
VOID
|
||||
*/
|
||||
|
||||
private ["_originalPlayerUnit", "_currentUnit"];
|
||||
_originalPlayerUnit = _this select 0;
|
||||
_currentUnit = _this select 1;
|
||||
|
||||
[_originalPlayerUnit] joinSilent AGM_SwitchUnits_OriginalGroup;
|
||||
|
||||
waitUntil {local _originalPlayerUnit};
|
||||
|
||||
selectPlayer _originalPlayerUnit;
|
||||
|
||||
deleteVehicle _currentUnit;
|
@ -1,79 +0,0 @@
|
||||
/*
|
||||
Name: AGM_SwitchUnits_fnc_switchUnit
|
||||
|
||||
Author(s):
|
||||
bux578
|
||||
|
||||
Description:
|
||||
Selects the new given player unit
|
||||
|
||||
Parameters:
|
||||
0: OBJECT - the unit to switch to
|
||||
|
||||
Returns:
|
||||
VOID
|
||||
*/
|
||||
|
||||
private ["_newUnit"];
|
||||
|
||||
_newUnit = _this select 1;
|
||||
|
||||
// don't switch to original player units
|
||||
if (!([_newUnit] call AGM_SwitchUnits_fnc_isValidAi)) exitWith {};
|
||||
|
||||
_newUnit spawn {
|
||||
private ["_unit", "_allNearestPlayers", "_oldUnit", "_respawnEhId", "_oldOwner", "_leave"];
|
||||
|
||||
_unit = _this;
|
||||
|
||||
_leave = false;
|
||||
|
||||
if (AGM_SwitchUnits_EnableSafeZone) then {
|
||||
|
||||
_allNearestPlayers = [position _unit, AGM_SwitchUnits_SafeZoneRadius] call AGM_SwitchUnits_fnc_nearestPlayers;
|
||||
_nearestEnemyPlayers = [_allNearestPlayers, {((side AGM_SwitchUnits_OriginalGroup) getFriend (side _this) < 0.6) && !(_this getVariable ["AGM_SwitchUnits_IsPlayerControlled", false])}] call AGM_Core_fnc_filter;
|
||||
|
||||
if (count _nearestEnemyPlayers > 0) exitWith {
|
||||
_leave = true;
|
||||
};
|
||||
};
|
||||
|
||||
// exitWith doesn't exit past the "if(EnableSafeZone)" block
|
||||
if (_leave) exitWith {
|
||||
[localize "STR_AGM_SwitchUnits_TooCloseToEnemy"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
||||
|
||||
// should switch locality
|
||||
// This doesn't work anymore, because one's now able to switch to units from a different side
|
||||
//[_unit] joinSilent group player;
|
||||
[[_unit, player], "{(_this select 0) setVariable ['AGM_SwitchUnits_OriginalOwner', owner (_this select 0), true]; (_this select 0) setOwner owner (_this select 1)}", 1] call AGM_Core_fnc_execRemoteFnc;
|
||||
|
||||
_oldUnit = player;
|
||||
waitUntil {sleep 0.2; local _unit};
|
||||
|
||||
_oldUnit setVariable ["AGM_SwitchUnits_IsPlayerControlled", false, true];
|
||||
_oldUnit setVariable ["AGM_SwitchUnits_PlayerControlledName", "", true];
|
||||
|
||||
_respawnEhId = _unit getVariable ["AGM_SwitchUnits_RespawnEhId", -1];
|
||||
if (_respawnEhId != -1) then {
|
||||
_oldUnit removeEventHandler ["Respawn", _respawnEhId];
|
||||
};
|
||||
|
||||
selectPlayer _unit;
|
||||
|
||||
_unit setVariable ["AGM_SwitchUnits_IsPlayerControlled", true, true];
|
||||
_unit setVariable ["AGM_SwitchUnits_PlayerControlledName", AGM_SwitchUnits_OriginalName, true];
|
||||
|
||||
_respawnEhId = _unit addEventHandler ["Respawn", {
|
||||
[AGM_SwitchUnits_OriginalUnit, _this select 0] spawn AGM_SwitchUnits_fnc_switchBack;
|
||||
}];
|
||||
_unit setVariable ["AGM_SwitchUnits_RespawnEhId", _respawnEhId, true];
|
||||
|
||||
// set owner back to original owner
|
||||
_oldOwner = _oldUnit getVariable["AGM_SwitchUnits_OriginalOwner", -1];
|
||||
if (_oldOwner > -1) then {
|
||||
[[_oldUnit, _oldOwner], "{(_this select 0) setOwner (_this select 1)}", 1] call AGM_Core_fnc_execRemoteFnc;
|
||||
};
|
||||
|
||||
[localize "STR_AGM_SwitchUnits_SwitchedUnit"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
31
TO_MERGE/cse/f_configuration/CfgFunctions.h
Normal file
31
TO_MERGE/cse/f_configuration/CfgFunctions.h
Normal file
@ -0,0 +1,31 @@
|
||||
class CfgFunctions {
|
||||
class CSE {
|
||||
class Configuration {
|
||||
file = "cse\cse_f_configuration\functions";
|
||||
class addKeyBindingForMenu_f { recompile = 1; };
|
||||
class addKeyBindingForAction_f { recompile = 1; };
|
||||
class onKeyPressed_f { recompile = 1; };
|
||||
class onKeyReleased_f { recompile = 1; };
|
||||
class getKeyBindingFromProfile_f { recompile = 1; };
|
||||
class saveKeyBindingToProfile_f { recompile = 1; };
|
||||
class updateActionKeyBinding_f { recompile = 1; };
|
||||
class updateMenuKeyBinding_f { recompile = 1; };
|
||||
class updateAllKeyBindings_f { recompile = 1; };
|
||||
class settingsMenuUpdateKeyBinding_f { recompile = 1; };
|
||||
class onSettingsMenuOpen { recompile = 1; };
|
||||
class settingsMenuUpdateList { recompile = 1; };
|
||||
class onListBoxShowSelectionChanged { recompile = 1; };
|
||||
class settingsMenuUpdateKeyView { recompile = 1; };
|
||||
class settingsDefineDetails_f { recompile = 1; };
|
||||
class getSettingDetails_f { recompile = 1; };
|
||||
class onListBoxKeyBindingChanged { recompile = 1; };
|
||||
class onListBoxSettingsChanged { recompile = 1; };
|
||||
class getClientSideOptionFromProfile_f { recompile = 1; };
|
||||
class addClientSideOptions_f { recompile = 1; };
|
||||
class saveClientSideOptionToProfile_f { recompile = 1; };
|
||||
class updateClientSideOption_f { recompile = 1; };
|
||||
class parseConfigForConfigurations { recompile = 1; };
|
||||
class parseModuleForConfigurations { recompile = 1; };
|
||||
};
|
||||
};
|
||||
};
|
51
TO_MERGE/cse/f_configuration/CfgHints.h
Normal file
51
TO_MERGE/cse/f_configuration/CfgHints.h
Normal file
@ -0,0 +1,51 @@
|
||||
class CfgHints
|
||||
{
|
||||
class Combat_Space_Enhancement
|
||||
{
|
||||
displayName = "Combat Space Enhancement";
|
||||
class Cse_configure {
|
||||
displayName = "Configuration";
|
||||
displayNameShort = "Configuration";
|
||||
description = "You can configure CSE keybindings and settings through the configuration menu.";
|
||||
tip = "Keybindings and settings are stored in your profile.";
|
||||
arguments[] = {};
|
||||
image = "";
|
||||
noImage = true;
|
||||
};
|
||||
class menuKeyBindings_subHint
|
||||
{
|
||||
displayName = "Menu Keybindings";
|
||||
displayNameShort = "Menu Keybindings";
|
||||
description = "Menu %11 will when their key is pressed open a menu.";
|
||||
tip = "You can hold down the key for a longer period and when released, the menu will close.";
|
||||
arguments[] = {
|
||||
{"Keybindings"}
|
||||
};
|
||||
image = "";
|
||||
noImage = true;
|
||||
};
|
||||
class actionKeyBindings_subHint
|
||||
{
|
||||
displayName = "Action Keybindings";
|
||||
displayNameShort = "Action Keybindings";
|
||||
description = "Action %11 are used for specific actions performed by the player character.";
|
||||
tip = "Use Ctrl, Alt or Shift combinations to increase the amount of actions you can bind.";
|
||||
arguments[] = {
|
||||
{"Keybindings"}
|
||||
};
|
||||
image = "";
|
||||
noImage = true;
|
||||
};
|
||||
class clientSettings
|
||||
{
|
||||
displayName = "Client Settings";
|
||||
displayNameShort = "Client Settings";
|
||||
description = "Client settings do not affect MP gameplay but allows players to customize their gameplay to their likings.";
|
||||
tip = "If you are having low frames, try turning off some client settings..";
|
||||
arguments[] = {};
|
||||
image = "";
|
||||
noImage = true;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
9
TO_MERGE/cse/f_configuration/Combat_Space_Enhancement.h
Normal file
9
TO_MERGE/cse/f_configuration/Combat_Space_Enhancement.h
Normal file
@ -0,0 +1,9 @@
|
||||
class Combat_Space_Enhancement {
|
||||
class EventHandlers {
|
||||
class PostInit_EventHandlers {
|
||||
class cse_f_configuration_handleKeys {
|
||||
init = " call compile preprocessFile 'cse\cse_f_configuration\displayEventHandler_keys.sqf';"; // [configFile] call cse_fnc_parseConfigForConfigurations;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
3
TO_MERGE/cse/f_configuration/GUI.h
Normal file
3
TO_MERGE/cse/f_configuration/GUI.h
Normal file
@ -0,0 +1,3 @@
|
||||
#include "gui\define.h"
|
||||
#include "gui\settingsMenu.h"
|
||||
#include "gui\pauseMenu.h"
|
26
TO_MERGE/cse/f_configuration/config.cpp
Normal file
26
TO_MERGE/cse/f_configuration/config.cpp
Normal file
@ -0,0 +1,26 @@
|
||||
#define _ARMA_
|
||||
class CfgPatches
|
||||
{
|
||||
class cse_f_configuration
|
||||
{
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.1;
|
||||
requiredAddons[] = {"a3_ui_f", "cse_gui"};
|
||||
version = "0.10.0_rc";
|
||||
author[] = {"Combat Space Enhancement"};
|
||||
authorUrl = "http://csemod.com";
|
||||
};
|
||||
};
|
||||
class CfgAddons {
|
||||
class PreloadAddons {
|
||||
class cse_f_configuration {
|
||||
list[] = {"cse_f_configuration"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgFunctions.h"
|
||||
#include "CfgHints.h"
|
||||
#include "Combat_Space_Enhancement.h"
|
||||
#include "GUI.h"
|
23
TO_MERGE/cse/f_configuration/displayEventHandler_keys.sqf
Normal file
23
TO_MERGE/cse/f_configuration/displayEventHandler_keys.sqf
Normal file
@ -0,0 +1,23 @@
|
||||
if (isnil "CSE_F_KEYBINDINGS_MENUS") then {
|
||||
CSE_F_KEYBINDINGS_MENUS = [];
|
||||
};
|
||||
if (isnil "CSE_F_KEYBINDINGS_ACTIONS") then {
|
||||
CSE_F_KEYBINDINGS_ACTIONS = [];
|
||||
};
|
||||
if (isnil "CSE_F_CLIENT_SIDE_SETTINGS") then {
|
||||
CSE_F_CLIENT_SIDE_SETTINGS = [];
|
||||
};
|
||||
|
||||
CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F = false;
|
||||
CSE_DISPLAY_MENU = false;
|
||||
CSE_KEY_RELEASED = false;
|
||||
CSE_DISABLE_KEY_INPUT_F = false;
|
||||
CSE_KEY_COMBINATION_PRESSED = [0,0,0,0];
|
||||
if (hasInterface) then {
|
||||
[] spawn {
|
||||
waitUntil {!isNull player && (player == player) && !(isNull (findDisplay 46))};
|
||||
sleep 3;
|
||||
cse_displayEventHandler_config_keyPressed_f = findDisplay 46 displayAddEventHandler ["keyDown", cse_fnc_onKeyPressed_f ];
|
||||
cse_displayEventHandler_config_keyReleaded_f = findDisplay 46 displayAddEventHandler ["keyUp", cse_fnc_onKeyReleased_f];
|
||||
};
|
||||
};
|
@ -0,0 +1,25 @@
|
||||
/**
|
||||
* fn_addClientSideOptions_f.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_name", "_possibleValues", "_defaultValue"];
|
||||
_name = _this select 0;
|
||||
_possibleValues = _this select 1;
|
||||
_defaultValue = _this select 2;
|
||||
_onChange = _this select 3;
|
||||
|
||||
if (isnil "CSE_F_CLIENT_SIDE_SETTINGS") then {
|
||||
CSE_F_CLIENT_SIDE_SETTINGS = [];
|
||||
};
|
||||
|
||||
// missionNamespace setvariable[_name, _defaultValue];
|
||||
|
||||
CSE_F_CLIENT_SIDE_SETTINGS pushBack [ _name, _possibleValues, _defaultValue, _onChange];
|
||||
|
||||
[_name, _defaultValue] call _onChange;
|
@ -0,0 +1,25 @@
|
||||
/**
|
||||
* fn_addKeyBindingForAction_f.sqf
|
||||
* @Descr: Add a new action keybinding
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [name STRING, keybinding ARRAY, action CODE]
|
||||
* @Return: void
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_name","_keyBinding","_action","_idd","_keyCodePressed","_shiftPressed","_altPressed","_ctrlPressed"];
|
||||
_name = _this select 0;
|
||||
_keyBinding = _this select 1;
|
||||
_action = _this select 2;
|
||||
|
||||
_keyCodePressed = _keyBinding select 0;
|
||||
_shiftPressed = _keyBinding select 1;
|
||||
_ctrlPressed = _keyBinding select 2;
|
||||
_altPressed = _keyBinding select 3;
|
||||
|
||||
if (isnil "CSE_F_KEYBINDINGS_ACTIONS") then {
|
||||
CSE_F_KEYBINDINGS_ACTIONS = [];
|
||||
};
|
||||
CSE_F_KEYBINDINGS_ACTIONS pushBack [ _name, _keyBinding, _action ];
|
||||
[_name, "action"] call cse_fnc_saveKeyBindingToProfile_f;
|
@ -0,0 +1,26 @@
|
||||
/**
|
||||
* fn_addKeyBindingForMenu_f.sqf
|
||||
* @Descr: Add a new menu keybinding
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [name STRING, keybinding ARRAY, action CODE]
|
||||
* @Return: void
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_name","_keyBinding","_action","_idd","_keyCodePressed","_shiftPressed","_altPressed","_ctrlPressed"];
|
||||
_name = _this select 0;
|
||||
_keyBinding = _this select 1;
|
||||
_action = _this select 2;
|
||||
_idd = _this select 3;
|
||||
|
||||
_keyCodePressed = _keyBinding select 0;
|
||||
_shiftPressed = _keyBinding select 1;
|
||||
_ctrlPressed = _keyBinding select 2;
|
||||
_altPressed = _keyBinding select 3;
|
||||
|
||||
if (isnil "CSE_F_KEYBINDINGS_MENUS") then {
|
||||
CSE_F_KEYBINDINGS_MENUS = [];
|
||||
};
|
||||
CSE_F_KEYBINDINGS_MENUS pushBack [_name, _keyBinding, _action, _idd, [false, false] ];
|
||||
[_name, "menu"] call cse_fnc_saveKeyBindingToProfile_f;
|
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* fn_getClientSideOptionFromProfile_f.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_name","_default","_settingValue"];
|
||||
_name = _this select 0;
|
||||
_default = _this select 1;
|
||||
|
||||
_settingValue = profileNamespace getvariable ["cse_f_clientSideSetting_"+_name, _default];
|
||||
|
||||
_settingValue
|
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* fn_getKeyBindingFromProfile_f.sqf
|
||||
* @Descr: Grab a keybinding settings saved in the profile.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [name STRING, type STRING (Can be: Action or Menu), defaultValue ARRAY (Format: [keyCode, shift, ctrl], alt)]
|
||||
* @Return: ARRAY Format: [keyCode, shift, ctrl, alt]
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_name","_default","_keyBinding"];
|
||||
_name = _this select 0;
|
||||
_type = _this select 1;
|
||||
_default = _this select 2;
|
||||
|
||||
_keyBinding = profileNamespace getvariable ["cse_f_keybinding_"+_type+"_"+_name, _default];
|
||||
|
||||
_keyBinding
|
@ -0,0 +1,44 @@
|
||||
/**
|
||||
* fn_getSettingDetails_f.sqf
|
||||
* @Descr: Returns the details of current setting
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [name STRING, type STRING]
|
||||
* @Return: ARRAY Array with the current settings
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_name","_type", "_title","_desc", "_return"];
|
||||
_name = _this select 0;
|
||||
_type = _this select 1;
|
||||
|
||||
_return = [_name,""];
|
||||
if (isnil "CSE_SETTINGS_MENUS_DETAILS_F") then {
|
||||
CSE_SETTINGS_MENUS_DETAILS_F = [];
|
||||
CSE_SETTINGS_ACTIONS_DETAILS_F = [];
|
||||
CSE_SETTINGS_CLIENTSIDE_DETAILS_F = [];
|
||||
};
|
||||
|
||||
if (_type == "menu") then {
|
||||
{
|
||||
if (_name == (_x select 0)) exitwith {
|
||||
_return = [_x select 1, _x select 2];
|
||||
};
|
||||
}foreach CSE_SETTINGS_MENUS_DETAILS_F;
|
||||
} else {
|
||||
if (_type == "action") then {
|
||||
{
|
||||
if (_name == (_x select 0)) exitwith {
|
||||
_return = [_x select 1, _x select 2];
|
||||
};
|
||||
}foreach CSE_SETTINGS_ACTIONS_DETAILS_F;
|
||||
} else {
|
||||
{
|
||||
if (_name == (_x select 0)) exitwith {
|
||||
_return = [_x select 1, _x select 2, _x select 3];
|
||||
};
|
||||
}foreach CSE_SETTINGS_CLIENTSIDE_DETAILS_F;
|
||||
};
|
||||
};
|
||||
|
||||
_return
|
105
TO_MERGE/cse/f_configuration/functions/fn_onKeyPressed_f.sqf
Normal file
105
TO_MERGE/cse/f_configuration/functions/fn_onKeyPressed_f.sqf
Normal file
@ -0,0 +1,105 @@
|
||||
/**
|
||||
* fn_onKeyPressed_f.sqf
|
||||
* @Descr: Executed on a key pressed. Handles all CSE keybindings
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
|
||||
// Returns the control, the keyboard code and the state of Shift, Ctrl and Alt.
|
||||
private ["_control","_var","_keyBinding","_keyCodePressed","_shiftPressed","_ctrlPressed","_altPressed","_name","_onPressed","_idd", "_state","_STARTINGTIME","_handle", "_returnOnPressed"];
|
||||
_control = _this select 0;
|
||||
_keyCodePressed = _this select 1;
|
||||
_shiftPressed = _this select 2;
|
||||
_ctrlPressed = _this select 3;
|
||||
_altPressed = _this select 4;
|
||||
|
||||
if (missionNamespace getVariable ['CSE_SETTINGS_MENU_OPEN', false]) exitwith {
|
||||
false;
|
||||
};
|
||||
_returnOnPressed = false;
|
||||
if ((findDisplay 46) == _control && _keyCodePressed != 0) then {
|
||||
if ([player] call cse_fnc_canInteract) then {
|
||||
{
|
||||
_name = _x select 0;
|
||||
_keyBinding = _x select 1;
|
||||
_onPressed = _x select 2;
|
||||
_idd = _x select 3;
|
||||
_state = _x select 4;
|
||||
|
||||
_shiftBinding = _keyBinding select 1;
|
||||
_ctrlBinding = _keyBinding select 2;
|
||||
_altBinding = _keyBinding select 3;
|
||||
|
||||
if ((_keyBinding select 0) == _keyCodePressed) then {
|
||||
|
||||
if ((_shiftBinding == 0) && _shiftPressed) exitwith {};
|
||||
if ((_shiftBinding == 1) && !_shiftPressed) exitwith {};
|
||||
|
||||
if ((_ctrlBinding == 0) && _ctrlPressed) exitwith {};
|
||||
if ((_ctrlBinding == 1) && !_ctrlPressed) exitwith {};
|
||||
|
||||
if ((_altBinding == 0) && _altPressed) exitwith {};
|
||||
if ((_altBinding == 1) && !_altPressed) exitwith {};
|
||||
|
||||
if (CSE_DISPLAY_MENU && !CSE_KEY_RELEASED) exitwith {};
|
||||
if (CSE_DISPLAY_MENU && CSE_KEY_RELEASED) exitwith { closeDialog _idd;};
|
||||
|
||||
if (dialog) exitwith { closeDialog 0; };
|
||||
_state set [ 0, true]; // activated/open , not released
|
||||
_state set [ 1, false];
|
||||
CSE_KEY_COMBINATION_PRESSED = _keyBinding;
|
||||
CSE_DISPLAY_MENU = true;
|
||||
CSE_KEY_RELEASED = false;
|
||||
|
||||
_handle = [_forEachIndex, time] spawn {
|
||||
_menu = CSE_F_KEYBINDINGS_MENUS select (_this select 0);
|
||||
_state = _menu select 4;
|
||||
waituntil{CSE_KEY_RELEASED || (time - ((_this select 1) ) > (0.25 * accTime))};
|
||||
if (!CSE_KEY_RELEASED) then {
|
||||
waituntil {CSE_KEY_RELEASED};
|
||||
closeDialog (_menu select 3);
|
||||
} else {
|
||||
CSE_KEY_RELEASED = true;
|
||||
};
|
||||
waituntil {!dialog};
|
||||
_state set [ 0, false];
|
||||
CSE_DISPLAY_MENU = false;
|
||||
};
|
||||
_returnOnPressed = _this call _onPressed;
|
||||
};
|
||||
}foreach CSE_F_KEYBINDINGS_MENUS;
|
||||
|
||||
if (isNil "_returnOnPressed") then {
|
||||
{
|
||||
_name = _x select 0;
|
||||
_keyBinding = _x select 1;
|
||||
_onPressed = _x select 2;
|
||||
|
||||
_shiftBinding = _keyBinding select 1;
|
||||
_ctrlBinding = _keyBinding select 2;
|
||||
_altBinding = _keyBinding select 3;
|
||||
|
||||
if ((_keyBinding select 0) == _keyCodePressed) then {
|
||||
if ((_shiftBinding == 0) && _shiftPressed) exitwith {};
|
||||
if ((_shiftBinding == 1) && !_shiftPressed) exitwith {};
|
||||
|
||||
if ((_ctrlBinding == 0) && _ctrlPressed) exitwith {};
|
||||
if ((_ctrlBinding == 1) && !_ctrlPressed) exitwith {};
|
||||
|
||||
if ((_altBinding == 0) && _altPressed) exitwith {};
|
||||
if ((_altBinding == 1) && !_altPressed) exitwith {};
|
||||
|
||||
CSE_KEY_COMBINATION_PRESSED = _keyBinding;
|
||||
_returnOnPressed = _this call _onPressed;
|
||||
};
|
||||
}foreach CSE_F_KEYBINDINGS_ACTIONS;
|
||||
};
|
||||
};
|
||||
};
|
||||
if (isnil "_returnOnPressed") exitwith {false};
|
||||
//_returnOnPressed
|
||||
false;
|
@ -0,0 +1,33 @@
|
||||
/**
|
||||
* fn_onKeyReleased_f.sqf
|
||||
* @Descr: Handles all keyreleased from CSE
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
|
||||
// _this = the control, the keyboard code and the state of Shift, Ctrl and Alt.
|
||||
|
||||
|
||||
if (CSE_DISABLE_KEY_INPUT_F) exitwith {
|
||||
(( _this select 1) > 0);
|
||||
};
|
||||
|
||||
if ((findDisplay 46) == (_this select 0)) then {
|
||||
_keyCodePressed = _this select 1;
|
||||
{
|
||||
_keyBinding = _x select 1;
|
||||
_state = _x select 4;
|
||||
if ((_keyBinding select 0) == _keyCodePressed) then {
|
||||
if (!(_state select 0) ) exitwith {};
|
||||
_state set [ 0, false];
|
||||
CSE_KEY_RELEASED = true;
|
||||
};
|
||||
}foreach CSE_F_KEYBINDINGS_MENUS;
|
||||
} else {
|
||||
false;
|
||||
};
|
||||
false;
|
@ -0,0 +1,54 @@
|
||||
/**
|
||||
* fn_onListBoxKeyBindingChanged.sqf
|
||||
* @Descr: called when the listbox keybinding has changed. Updates the configuration menu with new information.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_settingsMenu","_ctrlSelected","_ctrlPressed","_ctrlTextLabel","_keyCodePressed","_shiftSelected","_shiftPressed","_altSelected","_altPressed","_possibleOptions",'_keyBinding',"_fnc","_collection"];
|
||||
_settingsMenu = uiNamespace getVariable 'cse_settingsMenu';
|
||||
|
||||
_shiftSelected = lbCurSel 400;
|
||||
_ctrlSelected = lbCurSel 401;
|
||||
_altSelected = lbCurSel 402;
|
||||
|
||||
_possibleOptions = [0,1,2];
|
||||
|
||||
if (_shiftSelected < 0) then {
|
||||
_shiftSelected = 0;
|
||||
};
|
||||
if (_ctrlSelected < 0) then {
|
||||
_ctrlSelected = 0;
|
||||
};
|
||||
if (_altSelected < 0) then {
|
||||
_altSelected = 0;
|
||||
};
|
||||
|
||||
_func = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do {
|
||||
case "menu": {cse_fnc_updateMenuKeyBinding_F};
|
||||
case "action": {cse_fnc_updateActionKeyBinding_F};
|
||||
default {{}};
|
||||
};
|
||||
_collection = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do {
|
||||
case "menu": {CSE_F_KEYBINDINGS_MENUS};
|
||||
case "action": {CSE_F_KEYBINDINGS_ACTIONS};
|
||||
default {[]};
|
||||
};
|
||||
if (count _collection > 0) then {
|
||||
_selectedSetting = (lbCurSel (_settingsMenu displayCtrl 200));
|
||||
if (_selectedSetting > (count _collection)) then {
|
||||
_selectedSetting = count _collection - 1;
|
||||
};
|
||||
if (_selectedSetting < 0) then {
|
||||
_selectedSetting = 0;
|
||||
};
|
||||
_nameOfSetting = (_collection select _selectedSetting) select 0;
|
||||
_keyBinding = [_nameOfSetting,CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F,[0,0,0,0]] call cse_fnc_getKeyBindingFromProfile_F;
|
||||
_keyBinding = [_keyBinding select 0, _possibleOptions select _shiftSelected, _possibleOptions select _ctrlSelected, _possibleOptions select _altSelected];
|
||||
[_nameOfSetting,_keyBinding] call _func;
|
||||
|
||||
[false] call cse_fnc_settingsMenuUpdateList;
|
||||
};
|
@ -0,0 +1,40 @@
|
||||
/**
|
||||
* fn_onListBoxSettingsChanged.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_settingsMenu", "_ctrlTextLabel", "_optionSelected", "_func", "_collection", "_selectedSetting", "_nameOfSetting"];
|
||||
_settingsMenu = uiNamespace getVariable 'cse_settingsMenu';
|
||||
|
||||
_optionSelected = lbCurSel 400;
|
||||
|
||||
if (_optionSelected < 0) then {
|
||||
_optionSelected = 0;
|
||||
};
|
||||
|
||||
_func = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do {
|
||||
case "option": {cse_fnc_updateClientSideOption_F};
|
||||
default {{}};
|
||||
};
|
||||
_collection = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do {
|
||||
case "option": {CSE_F_CLIENT_SIDE_SETTINGS};
|
||||
default {[]};
|
||||
};
|
||||
if !(_collection isEqualTo []) then {
|
||||
_selectedSetting = (lbCurSel (_settingsMenu displayCtrl 200));
|
||||
if (_selectedSetting > (count _collection)) then {
|
||||
_selectedSetting = count _collection - 1;
|
||||
};
|
||||
if (_selectedSetting < 0) then {
|
||||
_selectedSetting = 0;
|
||||
};
|
||||
_nameOfSetting = (_collection select _selectedSetting) select 0;
|
||||
[_nameOfSetting, _optionSelected] call _func;
|
||||
[_nameOfSetting, _optionSelected] call ((_collection select _selectedSetting) select 3);
|
||||
[false] call cse_fnc_settingsMenuUpdateList;
|
||||
};
|
@ -0,0 +1,55 @@
|
||||
/**
|
||||
* fn_onListBoxShowSelectionChanged.sqf
|
||||
* @Descr: called when the listbox selection has changed. Updates configuration menu information
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_first", "_settingsMenu", "_ctrlLb", "_ctrlLbShow"];
|
||||
_first = (_this select 0);
|
||||
|
||||
disableSerialization;
|
||||
_settingsMenu = uiNamespace getVariable 'cse_settingsMenu';
|
||||
_ctrlLbShow = _settingsMenu displayCtrl 100;
|
||||
if (isnil "_first") then {
|
||||
_ctrlLbShow lbSetCurSel (_this select 1);
|
||||
};
|
||||
|
||||
if ((_this select 1) > -1) then {
|
||||
private ["_options"];
|
||||
_options = ["menu","action", "option", "color"];
|
||||
CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F = _options select (_this select 1);
|
||||
[true] call cse_fnc_settingsMenuUpdateList;
|
||||
_textOptions = ["Menu Keybindings", "Action Keybindings", "Client Settings"];
|
||||
ctrlSetText [13, ("Current selected settings list: " + (_textOptions select (_this select 1)))];
|
||||
if (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F == "color") exitwith {};
|
||||
|
||||
if ((_this select 1) > 1) then {
|
||||
(_settingsMenu displayCtrl 400) ctrlShow true;
|
||||
lbClear 400;
|
||||
(_settingsMenu displayCtrl 401) ctrlShow false;
|
||||
(_settingsMenu displayCtrl 402) ctrlShow false;
|
||||
|
||||
(_settingsMenu displayCtrl 301) ctrlSetText "Value:";
|
||||
(_settingsMenu displayCtrl 302) ctrlSetText "";
|
||||
(_settingsMenu displayCtrl 303) ctrlSetText "";
|
||||
|
||||
} else {
|
||||
(_settingsMenu displayCtrl 400) ctrlShow true;
|
||||
LbClear 400;
|
||||
_ctrlLb = _settingsMenu displayCtrl 400;
|
||||
_ctrlLb lbadd "No";
|
||||
_ctrlLb lbadd "Yes";
|
||||
_ctrlLb lbadd "Ignore";
|
||||
|
||||
(_settingsMenu displayCtrl 401) ctrlShow true;
|
||||
(_settingsMenu displayCtrl 402) ctrlShow true;
|
||||
|
||||
(_settingsMenu displayCtrl 301) ctrlSetText "Shift:";
|
||||
(_settingsMenu displayCtrl 302) ctrlSetText "Ctrl:";
|
||||
(_settingsMenu displayCtrl 303) ctrlSetText "Alt:";
|
||||
};
|
||||
};
|
104
TO_MERGE/cse/f_configuration/functions/fn_onSettingsMenuOpen.sqf
Normal file
104
TO_MERGE/cse/f_configuration/functions/fn_onSettingsMenuOpen.sqf
Normal file
@ -0,0 +1,104 @@
|
||||
/**
|
||||
* fn_onSettingsMenuOpen.sqf
|
||||
* @Descr: called when the settings or configuration menu has opened. Do not use anywhere else.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
|
||||
|
||||
_settingsMenu = uiNamespace getVariable 'cse_settingsMenu';
|
||||
_ctrlLbShow = _settingsMenu displayCtrl 100;
|
||||
_ctrlLbShow lbadd "Menu Keybindings";
|
||||
_ctrlLbShow lbadd "Action Keybindings";
|
||||
_ctrlLbShow lbadd "Client Settings";
|
||||
_ctrlLbShow lbadd "Colors";
|
||||
_ctrlLbShow lbSetCurSel 0;
|
||||
|
||||
|
||||
(_settingsMenu displayCtrl 1003) ctrlEnable false;
|
||||
//lbadd[100,"Other settings"];
|
||||
CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F = false;
|
||||
_settingsMenu displayAddEventHandler ["KeyDown", {
|
||||
_keyCodePressed = _this select 1;
|
||||
_shiftPressed = _this select 2;
|
||||
_ctrlPressed = _this select 3;
|
||||
_altPressed = _this select 4;
|
||||
_var = uiNamespace getVariable 'cse_settingsMenu';
|
||||
if (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F != "option") then {
|
||||
if !(isnil "_var") then {
|
||||
if (CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F) then {
|
||||
if (_keyCodePressed > 1) then {
|
||||
[_keyCodePressed,_shiftPressed, _ctrlPressed, _altPressed] call cse_fnc_settingsMenuUpdateKeyBinding_F;
|
||||
true;
|
||||
} else {
|
||||
false;
|
||||
};
|
||||
} else {
|
||||
false;
|
||||
};
|
||||
} else {
|
||||
false;
|
||||
};
|
||||
} else {
|
||||
false;
|
||||
};
|
||||
}];
|
||||
|
||||
_settingsMenu displayAddEventHandler ["KeyUp", {
|
||||
_keyCodePressed = _this select 1;
|
||||
_shiftPressed = _this select 2;
|
||||
_ctrlPressed = _this select 3;
|
||||
_altPressed = _this select 4;
|
||||
_var = uiNamespace getVariable 'cse_settingsMenu';
|
||||
if (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F != "option") then {
|
||||
if !(isnil "_var") then {
|
||||
if (CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F) then {
|
||||
if (_keyCodePressed > 1) then {
|
||||
CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F = false;
|
||||
true;
|
||||
} else {
|
||||
false;
|
||||
};
|
||||
} else {
|
||||
false;
|
||||
};
|
||||
} else {
|
||||
false;
|
||||
};
|
||||
} else {
|
||||
false;
|
||||
};
|
||||
}];
|
||||
|
||||
(_settingsMenu displayCtrl 200) ctrlSetEventHandler ["LBSelChanged", "_this call cse_fnc_settingsMenuUpdateKeyView;"];
|
||||
|
||||
_textOptions = ["Menu Keybindings", "Action Keybindings"];
|
||||
(_settingsMenu displayCtrl 13) ctrlSetText ("Current selected settings list: " + (_textOptions select 0));
|
||||
|
||||
_ctrlLb = _settingsMenu displayCtrl 400;
|
||||
_ctrlLb lbadd "No";
|
||||
_ctrlLb lbadd "Yes";
|
||||
_ctrlLb lbadd "Ignore";
|
||||
_ctrlLb ctrlSetEventHandler ["LBSelChanged", "if (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F != 'option') then { _this call cse_fnc_onListBoxKeyBindingChanged; } else { _this call cse_fnc_onListBoxSettingsChanged; };"];
|
||||
|
||||
_ctrlLb = _settingsMenu displayCtrl 401;
|
||||
_ctrlLb lbadd "No";
|
||||
_ctrlLb lbadd "Yes";
|
||||
_ctrlLb lbadd "Ignore";
|
||||
_ctrlLb ctrlSetEventHandler ["LBSelChanged", " _this call cse_fnc_onListBoxKeyBindingChanged;"];
|
||||
|
||||
_ctrlLb = _settingsMenu displayCtrl 402;
|
||||
_ctrlLb lbadd "No";
|
||||
_ctrlLb lbadd "Yes";
|
||||
_ctrlLb lbadd "Ignore";
|
||||
_ctrlLb ctrlSetEventHandler ["LBSelChanged", " _this call cse_fnc_onListBoxKeyBindingChanged;"];
|
||||
|
||||
CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F = false;
|
||||
CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F = "menu";
|
||||
[true] call cse_fnc_settingsMenuUpdateList;
|
||||
|
||||
(_settingsMenu displayCtrl 200) lbSetCurSel 0;
|
@ -0,0 +1,22 @@
|
||||
/**
|
||||
* fn_parseConfigForConfigurations.sqf
|
||||
* @Descr: Collect all configurations defined in CfgModules
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [config CONFIG]
|
||||
* @Return: nil
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
#define MENU_KEYBINDING 1
|
||||
#define ACTION_KEYBINDING 2
|
||||
#define CLIENT_SETTING 3
|
||||
|
||||
private ["_config","_cfgRoot","_amountOfClasses","_i","_moduleName","_configurationClass","_nOfConfgClasses","_j","_configuration","_configurationName","_title","_desc","_defaultValue","_code","_idd","_availableSettings","_valuesCfg","_nOfValues","_k"];
|
||||
_config = _this select 0;
|
||||
|
||||
_cfgRoot = (_config >> "Combat_Space_Enhancement" >> "CfgModules");
|
||||
_amountOfClasses = count _cfgRoot;
|
||||
for [{_i=0}, {_i < _amountOfClasses}, {_i=_i+1}] do {
|
||||
[ConfigName (_cfgRoot select _i)] call cse_fnc_parseModuleForConfigurations;
|
||||
};
|
@ -0,0 +1,63 @@
|
||||
/**
|
||||
* fn_parseModuleForConfigurations.sqf
|
||||
* @Descr: Collects all configurations defined in the CfgModules entry
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [cfgModulesName STRING (Name of the module defined in CfgModules)]
|
||||
* @Return: nil
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
#define MENU_KEYBINDING 1
|
||||
#define ACTION_KEYBINDING 2
|
||||
#define CLIENT_SETTING 3
|
||||
|
||||
private ["_config","_cfgRoot","_amountOfClasses","_i","_moduleName","_configurationClass","_nOfConfgClasses","_j","_configuration","_configurationName","_title","_desc","_defaultValue","_code","_idd","_availableSettings","_valuesCfg","_nOfValues","_k"];
|
||||
_moduleName = _this select 0;
|
||||
_cfgRoot = (configFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _moduleName);
|
||||
|
||||
if (isClass (_cfgRoot >> "Configurations")) then {
|
||||
_configurationClass = (_cfgRoot >> "Configurations");
|
||||
_nOfConfgClasses = count _configurationClass;
|
||||
for [{_j=0}, {_j < _nOfConfgClasses}, {_j=_j+1}] do {
|
||||
_configuration = _configurationClass select _j;
|
||||
_configurationName = ConfigName _configuration;
|
||||
|
||||
_title = [_configuration, "title", ""] call BIS_fnc_returnConfigEntry;
|
||||
_desc = [_configuration, "description", ""] call BIS_fnc_returnConfigEntry;
|
||||
|
||||
switch (getNumber(_configuration >> "type")) do {
|
||||
case MENU_KEYBINDING: {
|
||||
_defaultValue = [_configuration, "value", [0,0,0,0]] call BIS_fnc_returnConfigEntry;
|
||||
_code = compile (format["disableSerialization; if (['%1'] call cse_fnc_isModuleEnabled_F) then {", _moduleName] + ([_configuration, "onPressed", ""] call BIS_fnc_returnConfigEntry) + "};");
|
||||
_idd = [_configuration, "idd", 0] call BIS_fnc_returnConfigEntry;
|
||||
[format["name: %1, default %2, code %3, idd %4, title %5, desc %6",_configurationName, _defaultValue, _code, _idd, _title, _desc]] call cse_fnc_debug;
|
||||
[_configurationName, ([_configurationName,"menu",_defaultValue] call cse_fnc_getKeyBindingFromProfile_F), _code, _idd] call cse_fnc_addKeyBindingForMenu_F;
|
||||
[_configurationName,"menu", _title, _desc] call cse_fnc_settingsDefineDetails_F;
|
||||
};
|
||||
case ACTION_KEYBINDING: {
|
||||
_defaultValue = [_configuration, "value", [0,0,0,0]] call BIS_fnc_returnConfigEntry;
|
||||
_code = compile (format["disableSerialization; if (['%1'] call cse_fnc_isModuleEnabled_F) then {", _moduleName] + ([_configuration, "onPressed", ""] call BIS_fnc_returnConfigEntry) + "};");
|
||||
[format["name: %1, default %2, code %3, title %4, desc %5",_configurationName, _defaultValue, _code, _title, _desc]] call cse_fnc_debug;
|
||||
[_configurationName, ([_configurationName,"action",_defaultValue] call cse_fnc_getKeyBindingFromProfile_F), _code] call cse_fnc_addKeyBindingForAction_F;
|
||||
[_configurationName,"action", _title, _desc] call cse_fnc_settingsDefineDetails_F;
|
||||
|
||||
};
|
||||
case CLIENT_SETTING: {
|
||||
_defaultValue = [_configuration, "value", 0] call BIS_fnc_returnConfigEntry;
|
||||
_code = compile (format["disableSerialization; if (['%1'] call cse_fnc_isModuleEnabled_F) then {", _moduleName] + ([_configuration, "onChanged", ""] call BIS_fnc_returnConfigEntry) + "};");
|
||||
_availableSettings = [];
|
||||
_valuesCfg = (_configuration >> "Values");
|
||||
if (isClass _valuesCfg) then {
|
||||
_nOfValues = count _valuesCfg;
|
||||
for [{_k=0}, {_k < _amountOfClasses}, {_k=_k+1}] do {
|
||||
if (isClass (_valuesCfg select _k)) then {
|
||||
_availableSettings pushback (configName (_valuesCfg select _k));
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
default {}; // invalid, do nothing
|
||||
};
|
||||
};
|
||||
};
|
@ -0,0 +1,25 @@
|
||||
/**
|
||||
* fn_saveClientSideOptionToProfile_f.sqf
|
||||
* @Descr: Save the clientside option to the profile.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [name STRING (Name of setting)]
|
||||
* @Return: BOOL True if saved.
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_name","_nameSelected", "_saved"];
|
||||
_name = _this select 0;
|
||||
if (isnil "CSE_F_CLIENT_SIDE_SETTINGS") then {
|
||||
CSE_F_CLIENT_SIDE_SETTINGS = [];
|
||||
};
|
||||
_saved = false;
|
||||
{
|
||||
_nameSelected = _x select 0;
|
||||
if (_nameSelected == _name) exitwith {
|
||||
profileNamespace setvariable ["cse_f_clientSideSetting_"+_name, _x select 2];
|
||||
_saved = true;
|
||||
};
|
||||
}foreach CSE_F_CLIENT_SIDE_SETTINGS;
|
||||
|
||||
_saved
|
@ -0,0 +1,41 @@
|
||||
/**
|
||||
* fn_saveKeyBindingToProfile_f.sqf
|
||||
* @Descr: Saves a keybinding to the profile
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_name","_nameSelected", "_saved", "_type"];
|
||||
_name = _this select 0;
|
||||
_type = _this select 1;
|
||||
if (isnil "CSE_F_KEYBINDINGS_MENUS") then {
|
||||
CSE_F_KEYBINDINGS_MENUS = [];
|
||||
};
|
||||
if (isnil "CSE_F_KEYBINDINGS_ACTIONS") then {
|
||||
CSE_F_KEYBINDINGS_ACTIONS = [];
|
||||
};
|
||||
_saved = false;
|
||||
if (_type == "menu") then {
|
||||
{
|
||||
_nameSelected = _x select 0;
|
||||
if (_nameSelected == _name) exitwith {
|
||||
profileNamespace setvariable ["cse_f_keybinding_menu_"+_name, _x select 1];
|
||||
_saved = true;
|
||||
};
|
||||
}foreach CSE_F_KEYBINDINGS_MENUS;
|
||||
} else {
|
||||
if (_type == "action") then {
|
||||
{
|
||||
_nameSelected = _x select 0;
|
||||
if (_nameSelected == _name) exitwith {
|
||||
profileNamespace setvariable ["cse_f_keybinding_action_"+_name, _x select 1];
|
||||
_saved = true;
|
||||
};
|
||||
}foreach CSE_F_KEYBINDINGS_ACTIONS;
|
||||
};
|
||||
};
|
||||
|
||||
_saved
|
@ -0,0 +1,33 @@
|
||||
/**
|
||||
* fn_settingsDefineDetails_f.sqf
|
||||
* @Descr:
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_name","_type", "_title","_descr"];
|
||||
_name = _this select 0;
|
||||
_type = _this select 1;
|
||||
_title = _this select 2;
|
||||
_descr = _this select 3;
|
||||
|
||||
if (isnil "CSE_SETTINGS_MENUS_DETAILS_F") then {
|
||||
CSE_SETTINGS_MENUS_DETAILS_F = [];
|
||||
CSE_SETTINGS_ACTIONS_DETAILS_F = [];
|
||||
CSE_SETTINGS_CLIENTSIDE_DETAILS_F = [];
|
||||
};
|
||||
|
||||
if (_type == "menu") then {
|
||||
CSE_SETTINGS_MENUS_DETAILS_F pushback [_name, _title, _descr];
|
||||
} else {
|
||||
if (_type == "action") then {
|
||||
CSE_SETTINGS_ACTIONS_DETAILS_F pushback [_name, _title, _descr];
|
||||
} else {
|
||||
if (_type == "option") then {
|
||||
CSE_SETTINGS_CLIENTSIDE_DETAILS_F pushback [_name, _title, _descr];
|
||||
};
|
||||
};
|
||||
};
|
@ -0,0 +1,65 @@
|
||||
/**
|
||||
* fn_settingsMenuUpdateKeyBinding_f.sqf
|
||||
* @Descr:
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_settingsMenu","_ctrlSelected","_ctrlPressed","_ctrlTextLabel","_keyCodePressed","_shiftSelected","_shiftPressed","_altSelected","_altPressed","_possibleOptions",'_keyBinding',"_fnc","_collection"];
|
||||
_settingsMenu = uiNamespace getVariable 'cse_settingsMenu';
|
||||
_ctrlTextLabel = (_settingsMenu displayCtrl 300);
|
||||
|
||||
_keyCodePressed = _this select 0;
|
||||
_shiftPressed = _this select 1;
|
||||
_ctrlPressed = _this select 2;
|
||||
_altPressed = _this select 3;
|
||||
|
||||
ctrlSetText [252, ''];
|
||||
//(_settingsMenu displayCtrl 300) ctrlSetText ("Key: " + (keyName _keyCodePressed));
|
||||
|
||||
_shiftSelected = lbCurSel 400;
|
||||
_ctrlSelected = lbCurSel 401;
|
||||
_altSelected = lbCurSel 402;
|
||||
|
||||
_possibleOptions = [0,1,2];
|
||||
|
||||
if (_shiftSelected < 0) then {
|
||||
_shiftSelected = 0;
|
||||
};
|
||||
if (_ctrlSelected < 0) then {
|
||||
_ctrlSelected = 0;
|
||||
};
|
||||
if (_altSelected < 0) then {
|
||||
_altSelected = 0;
|
||||
};
|
||||
|
||||
_keyBinding = [_keyCodePressed, _possibleOptions select _shiftSelected, _possibleOptions select _ctrlSelected, _possibleOptions select _altSelected];
|
||||
//CSE_CURRENT_KEYBINDING_SETTING_NAME_F = ["cse_sys_weaponRestAction","action"];
|
||||
|
||||
_func = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do {
|
||||
case "menu": {cse_fnc_updateMenuKeyBinding_F};
|
||||
case "action": {cse_fnc_updateActionKeyBinding_F};
|
||||
case "option": {{}};
|
||||
default {{}};
|
||||
};
|
||||
_collection = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do {
|
||||
case "menu": {CSE_F_KEYBINDINGS_MENUS};
|
||||
case "action": {CSE_F_KEYBINDINGS_ACTIONS};
|
||||
case "option": {CSE_F_CLIENT_SIDE_SETTINGS};
|
||||
default {[]};
|
||||
};
|
||||
if (count _collection > 0) then {
|
||||
_selectedSetting = (lbCurSel 200);
|
||||
if (_selectedSetting > (count _collection)) then {
|
||||
_selectedSetting = count _collection - 1;
|
||||
};
|
||||
if (_selectedSetting < 0) then {
|
||||
_selectedSetting = 0;
|
||||
};
|
||||
_nameOfSetting = (_collection select _selectedSetting) select 0;
|
||||
[_nameOfSetting,_keyBinding] call _func;
|
||||
[true] call cse_fnc_settingsMenuUpdateList;
|
||||
};
|
@ -0,0 +1,74 @@
|
||||
/**
|
||||
* fn_settingsMenuUpdateKeyView.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
|
||||
private ["_setting","_ctrlList","_collection","_settingsMenu", "_keybinding","_keyCode","_shiftPressed","_altPressed","_ctrlPressed"];
|
||||
disableSerialization;
|
||||
_settingsMenu = uiNamespace getVariable 'cse_settingsMenu';
|
||||
_ctrlList = _settingsMenu displayCtrl 200;
|
||||
_collection = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do {
|
||||
case "menu": {CSE_F_KEYBINDINGS_MENUS};
|
||||
case "action": {CSE_F_KEYBINDINGS_ACTIONS};
|
||||
case "option": {CSE_F_CLIENT_SIDE_SETTINGS};
|
||||
default {[]};
|
||||
};
|
||||
|
||||
|
||||
if (count _collection > 0) then {
|
||||
_selectedSetting = (lbCurSel _ctrlList);
|
||||
if (_selectedSetting > (count _collection)) then {
|
||||
_selectedSetting = count _collection - 1;
|
||||
};
|
||||
|
||||
if (_selectedSetting < 0) exitwith {
|
||||
_selectedSetting = 0;
|
||||
};
|
||||
_setting = _collection select _selectedSetting;
|
||||
|
||||
_details = [_setting select 0, CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F] call cse_fnc_getSettingDetails_F;
|
||||
(_settingsMenu displayCtrl 250) ctrlSetText (_details select 0);
|
||||
(_settingsMenu displayCtrl 251) ctrlSetText (_details select 1);
|
||||
|
||||
if (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F != "option") then {
|
||||
_keybinding = _setting select 1;
|
||||
|
||||
_keyCode = _keybinding select 0;
|
||||
_shiftPressed = _keybinding select 1;
|
||||
_ctrlPressed = _keybinding select 2;
|
||||
_altPressed = _keybinding select 3;
|
||||
|
||||
_keyBindingText = keyName _keyCode;
|
||||
if (_keyBindingText == '""') then {
|
||||
_keyBindingText = "No key assigned";
|
||||
};
|
||||
(_settingsMenu displayCtrl 300) ctrlSetText ("Key: " + _keyBindingText);
|
||||
|
||||
lbClear 400;
|
||||
lbadd [400, "No"];
|
||||
lbadd [400, "Yes"];
|
||||
lbadd [400, "Ignore"];
|
||||
(_settingsMenu displayCtrl 400) lbSetCurSel _shiftPressed;
|
||||
(_settingsMenu displayCtrl 401) lbSetCurSel _ctrlPressed;
|
||||
(_settingsMenu displayCtrl 402) lbSetCurSel _altPressed;
|
||||
} else {
|
||||
_possibleValues = _setting select 1;
|
||||
_settingsValue = _setting select 2;
|
||||
|
||||
lbClear 400;
|
||||
|
||||
_settingsText = (_possibleValues select _settingsValue); // expecting: value [[any, TEXT (DESCRIPTION)]]
|
||||
(_settingsMenu displayCtrl 300) ctrlSetText ("Setting: " + _settingsText);
|
||||
{
|
||||
lbAdd [400, _x];
|
||||
}foreach _possibleValues;
|
||||
|
||||
(_settingsMenu displayCtrl 400) lbSetCurSel _settingsValue;
|
||||
};
|
||||
};
|
@ -0,0 +1,56 @@
|
||||
/**
|
||||
* fn_settingsMenuUpdateList.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_settingsMenu","_ctrlList","_collection","_keyBindingText","_keybinding", "_updateKeyView"];
|
||||
disableSerialization;
|
||||
|
||||
_updateKeyView = [_this, 0, true, [true]] call BIS_fnc_Param;
|
||||
|
||||
_settingsMenu = uiNamespace getVariable 'cse_settingsMenu';
|
||||
_ctrlList = _settingsMenu displayCtrl 200;
|
||||
_collection = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do {
|
||||
case "menu": {CSE_F_KEYBINDINGS_MENUS};
|
||||
case "action": {CSE_F_KEYBINDINGS_ACTIONS};
|
||||
case "option": {CSE_F_CLIENT_SIDE_SETTINGS};
|
||||
default {[]};
|
||||
};
|
||||
|
||||
lbclear _ctrlList;
|
||||
if (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F != "option") then {
|
||||
{
|
||||
_keybinding = (_x select 1);
|
||||
_keyBindingText = keyName (_keybinding select 0);
|
||||
if (_keyBindingText == '""') then {
|
||||
_keyBindingText = "";
|
||||
} else {
|
||||
if ((_keybinding select 1) == 1) then {
|
||||
_keyBindingText = _keyBindingText + " + shift";
|
||||
};
|
||||
if ((_keybinding select 2) == 1) then {
|
||||
_keyBindingText = _keyBindingText + " + ctrl";
|
||||
};
|
||||
if ((_keybinding select 3) == 1) then {
|
||||
_keyBindingText = _keyBindingText + " + alt";
|
||||
};
|
||||
};
|
||||
_ctrlList lbadd (([_x select 0, CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F] call cse_fnc_getSettingDetails_F) select 0);
|
||||
_ctrlList lbadd (_keyBindingText);
|
||||
}foreach _collection;
|
||||
} else {
|
||||
{
|
||||
_settingsText = ((_x select 1) select (_x select 2));
|
||||
_ctrlList lbadd (([_x select 0, CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F] call cse_fnc_getSettingDetails_F) select 0);
|
||||
_ctrlList lbadd (_settingsText);
|
||||
}foreach _collection;
|
||||
|
||||
};
|
||||
if (_updateKeyView) then {
|
||||
[] call cse_fnc_settingsMenuUpdateKeyView;
|
||||
};
|
@ -0,0 +1,24 @@
|
||||
/**
|
||||
* fn_updateActionKeybinding_f.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_name","_keyBinding","_action","_idd","_keyCodePressed","_shiftPressed","_altPressed","_ctrlPressed"];
|
||||
_name = _this select 0;
|
||||
_keyBinding = _this select 1;
|
||||
|
||||
if (isnil "CSE_F_KEYBINDINGS_ACTIONS") then {
|
||||
CSE_F_KEYBINDINGS_ACTIONS = [];
|
||||
};
|
||||
{
|
||||
if ((_x select 0) == _name) exitwith {
|
||||
_x set [ 1, _keyBinding];
|
||||
};
|
||||
}foreach CSE_F_KEYBINDINGS_ACTIONS;
|
||||
|
||||
[_name,"action"] call cse_fnc_saveKeyBindingToProfile_F;
|
@ -0,0 +1,23 @@
|
||||
/**
|
||||
* fn_updateAllKeyBindings_f.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
|
||||
private ["_name","_currentKeyBinding"];
|
||||
{
|
||||
_name = _x select 0;
|
||||
_currentKeyBinding = _x select 1;
|
||||
_x set [1,([_name, _currentKeyBinding, "menu"] call cse_fnc_getKeyBindingFromProfile_F)];
|
||||
}foreach CSE_F_KEYBINDINGS_MENUS;
|
||||
|
||||
{
|
||||
_name = _x select 0;
|
||||
_currentKeyBinding = _x select 1;
|
||||
_x set [1,([_name, _currentKeyBinding, "action"] call cse_fnc_getKeyBindingFromProfile_F)];
|
||||
}foreach CSE_F_KEYBINDINGS_ACTIONS;
|
@ -0,0 +1,24 @@
|
||||
/**
|
||||
* fn_updateClientSideOption_f.sqf
|
||||
* @Descr:
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_name","_keyBinding","_action","_idd","_keyCodePressed","_shiftPressed","_altPressed","_ctrlPressed"];
|
||||
_name = _this select 0;
|
||||
_keyBinding = _this select 1;
|
||||
|
||||
if (isnil "CSE_F_CLIENT_SIDE_SETTINGS") then {
|
||||
CSE_F_CLIENT_SIDE_SETTINGS = [];
|
||||
};
|
||||
{
|
||||
if ((_x select 0) == _name) exitwith {
|
||||
_x set [ 2, _keyBinding];
|
||||
};
|
||||
}foreach CSE_F_CLIENT_SIDE_SETTINGS;
|
||||
|
||||
[_name] spawn cse_fnc_saveClientSideOptionToProfile_F;
|
@ -0,0 +1,24 @@
|
||||
/**
|
||||
* fn_updateMenuKeyBinding_f.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_name","_keyBinding","_action","_idd","_keyCodePressed","_shiftPressed","_altPressed","_ctrlPressed"];
|
||||
_name = _this select 0;
|
||||
_keyBinding = _this select 1;
|
||||
|
||||
if (isnil "CSE_F_KEYBINDINGS_MENUS") then {
|
||||
CSE_F_KEYBINDINGS_MENUS = [];
|
||||
};
|
||||
{
|
||||
if ((_x select 0) == _name) exitwith {
|
||||
_x set [ 1, _keyBinding];
|
||||
};
|
||||
}foreach CSE_F_KEYBINDINGS_MENUS;
|
||||
|
||||
[_name,"menu"] call cse_fnc_saveKeyBindingToProfile_F;
|
797
TO_MERGE/cse/f_configuration/gui/define.h
Normal file
797
TO_MERGE/cse/f_configuration/gui/define.h
Normal file
@ -0,0 +1,797 @@
|
||||
|
||||
#ifndef CSE_DEFINE_H
|
||||
#define CSE_DEFINE_H
|
||||
// define.hpp
|
||||
|
||||
#define true 1
|
||||
#define false 0
|
||||
|
||||
#define CT_STATIC 0
|
||||
#define CT_BUTTON 1
|
||||
#define CT_EDIT 2
|
||||
#define CT_SLIDER 3
|
||||
#define CT_COMBO 4
|
||||
#define CT_LISTBOX 5
|
||||
#define CT_TOOLBOX 6
|
||||
#define CT_CHECKBOXES 7
|
||||
#define CT_PROGRESS 8
|
||||
#define CT_HTML 9
|
||||
#define CT_STATIC_SKEW 10
|
||||
#define CT_ACTIVETEXT 11
|
||||
#define CT_TREE 12
|
||||
#define CT_STRUCTURED_TEXT 13
|
||||
#define CT_CONTEXT_MENU 14
|
||||
#define CT_CONTROLS_GROUP 15
|
||||
#define CT_SHORTCUTBUTTON 16
|
||||
#define CT_XKEYDESC 40
|
||||
#define CT_XBUTTON 41
|
||||
#define CT_XLISTBOX 42
|
||||
#define CT_XSLIDER 43
|
||||
#define CT_XCOMBO 44
|
||||
#define CT_ANIMATED_TEXTURE 45
|
||||
#define CT_OBJECT 80
|
||||
#define CT_OBJECT_ZOOM 81
|
||||
#define CT_OBJECT_CONTAINER 82
|
||||
#define CT_OBJECT_CONT_ANIM 83
|
||||
#define CT_LINEBREAK 98
|
||||
#define CT_ANIMATED_USER 99
|
||||
#define CT_MAP 100
|
||||
#define CT_MAP_MAIN 101
|
||||
#define CT_LISTNBOX 102
|
||||
|
||||
// Static styles
|
||||
#define ST_POS 0x0F
|
||||
#define ST_HPOS 0x03
|
||||
#define ST_VPOS 0x0C
|
||||
#define ST_LEFT 0x00
|
||||
#define ST_RIGHT 0x01
|
||||
#define ST_CENTER 0x02
|
||||
#define ST_DOWN 0x04
|
||||
#define ST_UP 0x08
|
||||
#define ST_VCENTER 0x0c
|
||||
|
||||
#define ST_TYPE 0xF0
|
||||
#define ST_SINGLE 0
|
||||
#define ST_MULTI 16
|
||||
#define ST_TITLE_BAR 32
|
||||
#define ST_PICTURE 48
|
||||
#define ST_FRAME 64
|
||||
#define ST_BACKGROUND 80
|
||||
#define ST_GROUP_BOX 96
|
||||
#define ST_GROUP_BOX2 112
|
||||
#define ST_HUD_BACKGROUND 128
|
||||
#define ST_TILE_PICTURE 144
|
||||
#define ST_WITH_RECT 160
|
||||
#define ST_LINE 176
|
||||
|
||||
#define ST_SHADOW 0x100
|
||||
#define ST_NO_RECT 0x200 // this style works for CT_STATIC in conjunction with ST_MULTI
|
||||
#define ST_KEEP_ASPECT_RATIO 0x800
|
||||
|
||||
#define ST_TITLE ST_TITLE_BAR + ST_CENTER
|
||||
|
||||
// Slider styles
|
||||
#define SL_DIR 0x400
|
||||
#define SL_VERT 0
|
||||
#define SL_HORZ 0x400
|
||||
|
||||
#define SL_TEXTURES 0x10
|
||||
|
||||
// Listbox styles
|
||||
#define LB_TEXTURES 0x10
|
||||
#define LB_MULTI 0x20
|
||||
#define FontCSE "PuristaMedium"
|
||||
|
||||
class cse_gui_backgroundBase {
|
||||
type = CT_STATIC;
|
||||
idc = -1;
|
||||
style = ST_PICTURE;
|
||||
colorBackground[] = {0,0,0,0};
|
||||
colorText[] = {1, 1, 1, 1};
|
||||
font = FontCSE;
|
||||
text = "";
|
||||
sizeEx = 0.032;
|
||||
};
|
||||
class cse_gui_editBase
|
||||
{
|
||||
access = 0;
|
||||
type = 2;
|
||||
x = 0;
|
||||
y = 0;
|
||||
h = 0.04;
|
||||
w = 0.2;
|
||||
colorBackground[] =
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
};
|
||||
colorText[] =
|
||||
{
|
||||
0.95,
|
||||
0.95,
|
||||
0.95,
|
||||
1
|
||||
};
|
||||
colorSelection[] =
|
||||
{
|
||||
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])",
|
||||
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])",
|
||||
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",
|
||||
1
|
||||
};
|
||||
autocomplete = "";
|
||||
text = "";
|
||||
size = 0.2;
|
||||
style = "0x00 + 0x40";
|
||||
font = "PuristaMedium";
|
||||
shadow = 2;
|
||||
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
|
||||
colorDisabled[] =
|
||||
{
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0.25
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
class cse_gui_buttonBase {
|
||||
idc = -1;
|
||||
type = 16;
|
||||
style = ST_LEFT;
|
||||
text = "";
|
||||
action = "";
|
||||
x = 0.0;
|
||||
y = 0.0;
|
||||
w = 0.25;
|
||||
h = 0.04;
|
||||
size = 0.03921;
|
||||
sizeEx = 0.03921;
|
||||
color[] = {1.0, 1.0, 1.0, 1};
|
||||
color2[] = {1.0, 1.0, 1.0, 1};
|
||||
/*colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.5])"};
|
||||
colorbackground2[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.4};
|
||||
colorDisabled[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.25};
|
||||
colorFocused[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])", 0.8};
|
||||
colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.8};
|
||||
*/
|
||||
|
||||
colorBackground[] = {1,1,1,0.95};
|
||||
colorbackground2[] = {1,1,1,0.95};
|
||||
colorDisabled[] = {1,1,1,0.6};
|
||||
colorFocused[] = {1,1,1,1};
|
||||
colorBackgroundFocused[] = {1,1,1,1};
|
||||
periodFocus = 1.2;
|
||||
periodOver = 0.8;
|
||||
default = false;
|
||||
class HitZone {
|
||||
left = 0.00;
|
||||
top = 0.00;
|
||||
right = 0.00;
|
||||
bottom = 0.00;
|
||||
};
|
||||
|
||||
class ShortcutPos {
|
||||
left = 0.00;
|
||||
top = 0.00;
|
||||
w = 0.00;
|
||||
h = 0.00;
|
||||
};
|
||||
|
||||
class TextPos {
|
||||
left = 0.002;
|
||||
top = 0.0004;
|
||||
right = 0.0;
|
||||
bottom = 0.00;
|
||||
};
|
||||
textureNoShortcut = "";
|
||||
animTextureNormal = "cse\cse_gui\data\buttonNormal_gradient_top.paa";
|
||||
animTextureDisabled = "cse\cse_gui\data\buttonDisabled_gradient.paa";
|
||||
animTextureOver = "cse\cse_gui\data\buttonNormal_gradient_top.paa";
|
||||
animTextureFocused = "cse\cse_gui\data\buttonNormal_gradient_top.paa";
|
||||
animTexturePressed = "cse\cse_gui\data\buttonNormal_gradient_top.paa";
|
||||
animTextureDefault = "cse\cse_gui\data\buttonNormal_gradient_top.paa";
|
||||
period = 0.5;
|
||||
font = FontCSE;
|
||||
soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1};
|
||||
soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.0,0};
|
||||
soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.07,1};
|
||||
soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1};
|
||||
class Attributes {
|
||||
font = FontCSE;
|
||||
color = "#E5E5E5";
|
||||
align = "center";
|
||||
shadow = "true";
|
||||
};
|
||||
class AttributesImage {
|
||||
font = FontCSE;
|
||||
color = "#E5E5E5";
|
||||
align = "left";
|
||||
shadow = "true";
|
||||
};
|
||||
};
|
||||
|
||||
class cse_gui_RscProgress {
|
||||
type = 8;
|
||||
style = 0;
|
||||
colorFrame[] = {1,1,1,0.7};
|
||||
colorBar[] = {1,1,1,0.7};
|
||||
texture = "#(argb,8,8,3)color(1,1,1,0.7)";
|
||||
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "0.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
};
|
||||
|
||||
|
||||
class cse_gui_staticBase {
|
||||
idc = -1;
|
||||
type = CT_STATIC;
|
||||
x = 0.0;
|
||||
y = 0.0;
|
||||
w = 0.183825;
|
||||
h = 0.104575;
|
||||
style = ST_LEFT;
|
||||
font = FontCSE;
|
||||
sizeEx = 0.03921;
|
||||
colorText[] = {0.95, 0.95, 0.95, 1.0};
|
||||
colorBackground[] = {0, 0, 0, 0};
|
||||
text = "";
|
||||
};
|
||||
|
||||
class RscListBox;
|
||||
class cse_gui_listBoxBase : RscListBox{
|
||||
type = CT_LISTBOX;
|
||||
style = ST_MULTI;
|
||||
font = FontCSE;
|
||||
sizeEx = 0.03921;
|
||||
color[] = {1, 1, 1, 1};
|
||||
colorText[] = {0.543, 0.5742, 0.4102, 1.0};
|
||||
colorScrollbar[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelect[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelect2[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelectBackground[] = {0, 0, 0, 1};
|
||||
colorSelectBackground2[] = {0.543, 0.5742, 0.4102, 1.0};
|
||||
colorDisabled[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.25};
|
||||
period = 1.2;
|
||||
rowHeight = 0.03;
|
||||
colorBackground[] = {0, 0, 0, 1};
|
||||
maxHistoryDelay = 1.0;
|
||||
autoScrollSpeed = -1;
|
||||
autoScrollDelay = 5;
|
||||
autoScrollRewind = 0;
|
||||
soundSelect[] = {"",0.1,1};
|
||||
soundExpand[] = {"",0.1,1};
|
||||
soundCollapse[] = {"",0.1,1};
|
||||
class ListScrollBar {
|
||||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
|
||||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
|
||||
autoScrollDelay = 5;
|
||||
autoScrollEnabled = 0;
|
||||
autoScrollRewind = 0;
|
||||
autoScrollSpeed = -1;
|
||||
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
|
||||
color[] = {1,1,1,0.6};
|
||||
colorActive[] = {1,1,1,1};
|
||||
colorDisabled[] = {1,1,1,0.3};
|
||||
height = 0;
|
||||
scrollSpeed = 0.06;
|
||||
shadow = 0;
|
||||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
|
||||
width = 0;
|
||||
};
|
||||
class ScrollBar {
|
||||
color[] = {1, 1, 1, 0.6};
|
||||
colorActive[] = {1, 1, 1, 1};
|
||||
colorDisabled[] = {1, 1, 1, 0.3};
|
||||
thumb = "";
|
||||
arrowFull = "";
|
||||
arrowEmpty = "";
|
||||
border = "";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class cse_gui_listNBox {
|
||||
access = 0;
|
||||
type = CT_LISTNBOX;// 102;
|
||||
style =ST_MULTI;
|
||||
w = 0.4;
|
||||
h = 0.4;
|
||||
font = FontCSE;
|
||||
sizeEx = 0.031;
|
||||
|
||||
autoScrollSpeed = -1;
|
||||
autoScrollDelay = 5;
|
||||
autoScrollRewind = 0;
|
||||
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
columns[] = {0.0};
|
||||
color[] = {1, 1, 1, 1};
|
||||
|
||||
rowHeight = 0.03;
|
||||
colorBackground[] = {0, 0, 0, 0.2};
|
||||
colorText[] = {1,1, 1, 1.0};
|
||||
colorScrollbar[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelect[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelect2[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelectBackground[] = {0, 0, 0, 0.0};
|
||||
colorSelectBackground2[] = {0.0, 0.0, 0.0, 0.5};
|
||||
colorActive[] = {0,0,0,1};
|
||||
colorDisabled[] = {0,0,0,0.3};
|
||||
rows = 1;
|
||||
|
||||
drawSideArrows = 0;
|
||||
idcLeft = -1;
|
||||
idcRight = -1;
|
||||
maxHistoryDelay = 1;
|
||||
soundSelect[] = {"", 0.1, 1};
|
||||
period = 1;
|
||||
shadow = 2;
|
||||
class ScrollBar {
|
||||
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
border = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
color[] = {1,1,1,0.6};
|
||||
colorActive[] = {1,1,1,1};
|
||||
colorDisabled[] = {1,1,1,0.3};
|
||||
thumb = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
};
|
||||
class ListScrollBar {
|
||||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
|
||||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
|
||||
autoScrollDelay = 5;
|
||||
autoScrollEnabled = 0;
|
||||
autoScrollRewind = 0;
|
||||
autoScrollSpeed = -1;
|
||||
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
|
||||
color[] = {1,1,1,0.6};
|
||||
colorActive[] = {1,1,1,1};
|
||||
colorDisabled[] = {1,1,1,0.3};
|
||||
height = 0;
|
||||
scrollSpeed = 0.06;
|
||||
shadow = 0;
|
||||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
|
||||
width = 0;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class RscCombo;
|
||||
class cse_gui_comboBoxBase: RscCombo {
|
||||
idc = -1;
|
||||
type = 4;
|
||||
style = "0x10 + 0x200";
|
||||
x = 0;
|
||||
y = 0;
|
||||
w = 0.3;
|
||||
h = 0.035;
|
||||
color[] = {0,0,0,0.6};
|
||||
colorActive[] = {1,0,0,1};
|
||||
colorBackground[] = {0,0,0,1};
|
||||
colorDisabled[] = {1,1,1,0.25};
|
||||
colorScrollbar[] = {1,0,0,1};
|
||||
colorSelect[] = {0,0,0,1};
|
||||
colorSelectBackground[] = {1,1,1,0.7};
|
||||
colorText[] = {1,1,1,1};
|
||||
|
||||
arrowEmpty = "";
|
||||
arrowFull = "";
|
||||
wholeHeight = 0.45;
|
||||
font = FontCSE;
|
||||
sizeEx = 0.031;
|
||||
soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect",0.1,1};
|
||||
soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1};
|
||||
soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1};
|
||||
maxHistoryDelay = 1.0;
|
||||
class ScrollBar
|
||||
{
|
||||
color[] = {0.3,0.3,0.3,0.6};
|
||||
colorActive[] = {0.3,0.3,0.3,1};
|
||||
colorDisabled[] = {0.3,0.3,0.3,0.3};
|
||||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
|
||||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
|
||||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
|
||||
border = "";
|
||||
};
|
||||
class ComboScrollBar {
|
||||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
|
||||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
|
||||
autoScrollDelay = 5;
|
||||
autoScrollEnabled = 0;
|
||||
autoScrollRewind = 0;
|
||||
autoScrollSpeed = -1;
|
||||
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
|
||||
color[] = {0.3,0.3,0.3,0.6};
|
||||
colorActive[] = {0.3,0.3,0.3,1};
|
||||
colorDisabled[] = {0.3,0.3,0.3,0.3};
|
||||
height = 0;
|
||||
scrollSpeed = 0.06;
|
||||
shadow = 0;
|
||||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
|
||||
width = 0;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
class cse_gui_mapBase {
|
||||
moveOnEdges = 1;
|
||||
x = "SafeZoneXAbs";
|
||||
y = "SafeZoneY + 1.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
w = "SafeZoneWAbs";
|
||||
h = "SafeZoneH - 1.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
type = 100; // Use 100 to hide markers
|
||||
style = 48;
|
||||
shadow = 0;
|
||||
|
||||
ptsPerSquareSea = 5;
|
||||
ptsPerSquareTxt = 3;
|
||||
ptsPerSquareCLn = 10;
|
||||
ptsPerSquareExp = 10;
|
||||
ptsPerSquareCost = 10;
|
||||
ptsPerSquareFor = 9;
|
||||
ptsPerSquareForEdge = 9;
|
||||
ptsPerSquareRoad = 6;
|
||||
ptsPerSquareObj = 9;
|
||||
showCountourInterval = 0;
|
||||
scaleMin = 0.001;
|
||||
scaleMax = 1.0;
|
||||
scaleDefault = 0.16;
|
||||
maxSatelliteAlpha = 0.85;
|
||||
alphaFadeStartScale = 0.35;
|
||||
alphaFadeEndScale = 0.4;
|
||||
colorBackground[] = {0.969,0.957,0.949,1.0};
|
||||
colorSea[] = {0.467,0.631,0.851,0.5};
|
||||
colorForest[] = {0.624,0.78,0.388,0.5};
|
||||
colorForestBorder[] = {0.0,0.0,0.0,0.0};
|
||||
colorRocks[] = {0.0,0.0,0.0,0.3};
|
||||
colorRocksBorder[] = {0.0,0.0,0.0,0.0};
|
||||
colorLevels[] = {0.286,0.177,0.094,0.5};
|
||||
colorMainCountlines[] = {0.572,0.354,0.188,0.5};
|
||||
colorCountlines[] = {0.572,0.354,0.188,0.25};
|
||||
colorMainCountlinesWater[] = {0.491,0.577,0.702,0.6};
|
||||
colorCountlinesWater[] = {0.491,0.577,0.702,0.3};
|
||||
colorPowerLines[] = {0.1,0.1,0.1,1.0};
|
||||
colorRailWay[] = {0.8,0.2,0.0,1.0};
|
||||
colorNames[] = {0.1,0.1,0.1,0.9};
|
||||
colorInactive[] = {1.0,1.0,1.0,0.5};
|
||||
colorOutside[] = {0.0,0.0,0.0,1.0};
|
||||
colorTracks[] = {0.84,0.76,0.65,0.15};
|
||||
colorTracksFill[] = {0.84,0.76,0.65,1.0};
|
||||
colorRoads[] = {0.7,0.7,0.7,1.0};
|
||||
colorRoadsFill[] = {1.0,1.0,1.0,1.0};
|
||||
colorMainRoads[] = {0.9,0.5,0.3,1.0};
|
||||
colorMainRoadsFill[] = {1.0,0.6,0.4,1.0};
|
||||
colorGrid[] = {0.1,0.1,0.1,0.6};
|
||||
colorGridMap[] = {0.1,0.1,0.1,0.6};
|
||||
colorText[] = {1, 1, 1, 0.85};
|
||||
font = "PuristaMedium";
|
||||
sizeEx = 0.0270000;
|
||||
stickX[] = {0.20, {"Gamma", 1.00, 1.50} };
|
||||
stickY[] = {0.20, {"Gamma", 1.00, 1.50} };
|
||||
onMouseButtonClick = "";
|
||||
onMouseButtonDblClick = "";
|
||||
|
||||
fontLabel = "PuristaMedium";
|
||||
sizeExLabel = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
fontGrid = "TahomaB";
|
||||
sizeExGrid = 0.02;
|
||||
fontUnits = "TahomaB";
|
||||
sizeExUnits = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
fontNames = "PuristaMedium";
|
||||
sizeExNames = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8) * 2";
|
||||
fontInfo = "PuristaMedium";
|
||||
sizeExInfo = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
fontLevel = "TahomaB";
|
||||
sizeExLevel = 0.02;
|
||||
text = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
class ActiveMarker {
|
||||
color[] = {0.30, 0.10, 0.90, 1.00};
|
||||
size = 50;
|
||||
};
|
||||
class Legend
|
||||
{
|
||||
x = "SafeZoneX + ( ((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
y = "SafeZoneY + safezoneH - 4.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "3.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
font = "PuristaMedium";
|
||||
sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
colorBackground[] = {1,1,1,0.5};
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Task
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\taskIcon_CA.paa";
|
||||
iconCreated = "\A3\ui_f\data\map\mapcontrol\taskIconCreated_CA.paa";
|
||||
iconCanceled = "\A3\ui_f\data\map\mapcontrol\taskIconCanceled_CA.paa";
|
||||
iconDone = "\A3\ui_f\data\map\mapcontrol\taskIconDone_CA.paa";
|
||||
iconFailed = "\A3\ui_f\data\map\mapcontrol\taskIconFailed_CA.paa";
|
||||
color[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])"};
|
||||
colorCreated[] = {1,1,1,1};
|
||||
colorCanceled[] = {0.7,0.7,0.7,1};
|
||||
colorDone[] = {0.7,1,0.3,1};
|
||||
colorFailed[] = {1,0.3,0.2,1};
|
||||
size = 27;
|
||||
importance = 1;
|
||||
coefMin = 1;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Waypoint
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa";
|
||||
color[] = {0,0,0,1};
|
||||
size = 20;
|
||||
importance = "1.2 * 16 * 0.05";
|
||||
coefMin = 0.900000;
|
||||
coefMax = 4;
|
||||
};
|
||||
class WaypointCompleted
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\waypointCompleted_ca.paa";
|
||||
color[] = {0,0,0,1};
|
||||
size = 20;
|
||||
importance = "1.2 * 16 * 0.05";
|
||||
coefMin = 0.900000;
|
||||
coefMax = 4;
|
||||
};
|
||||
class CustomMark
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\custommark_ca.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 1;
|
||||
coefMax = 1;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Command
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa";
|
||||
size = 18;
|
||||
importance = 1;
|
||||
coefMin = 1;
|
||||
coefMax = 1;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class Bush
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa";
|
||||
color[] = {0.45,0.64,0.33,0.4};
|
||||
size = "14/2";
|
||||
importance = "0.2 * 14 * 0.05 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Rock
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\rock_ca.paa";
|
||||
color[] = {0.1,0.1,0.1,0.8};
|
||||
size = 12;
|
||||
importance = "0.5 * 12 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class SmallTree
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa";
|
||||
color[] = {0.45,0.64,0.33,0.4};
|
||||
size = 12;
|
||||
importance = "0.6 * 12 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Tree
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa";
|
||||
color[] = {0.45,0.64,0.33,0.4};
|
||||
size = 12;
|
||||
importance = "0.9 * 16 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class busstop
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\busstop_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class fuelstation
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\fuelstation_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class hospital
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\hospital_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class church
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\church_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class lighthouse
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\lighthouse_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class power
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\power_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class powersolar
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\powersolar_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class powerwave
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\powerwave_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class powerwind
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\powerwind_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class quay
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\quay_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class shipwreck
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\shipwreck_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class transmitter
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\transmitter_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class watertower
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\watertower_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class Cross
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\Cross_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Chapel
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\Chapel_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Bunker
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa";
|
||||
size = 14;
|
||||
importance = "1.5 * 14 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Fortress
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa";
|
||||
size = 16;
|
||||
importance = "2 * 16 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Fountain
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\fountain_ca.paa";
|
||||
size = 11;
|
||||
importance = "1 * 12 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Ruin
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\ruin_ca.paa";
|
||||
size = 16;
|
||||
importance = "1.2 * 16 * 0.05";
|
||||
coefMin = 1;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Stack
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\stack_ca.paa";
|
||||
size = 20;
|
||||
importance = "2 * 16 * 0.05";
|
||||
coefMin = 0.9;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Tourism
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\tourism_ca.paa";
|
||||
size = 16;
|
||||
importance = "1 * 16 * 0.05";
|
||||
coefMin = 0.7;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class ViewTower
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\viewtower_ca.paa";
|
||||
size = 16;
|
||||
importance = "2.5 * 16 * 0.05";
|
||||
coefMin = 0.5;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
46
TO_MERGE/cse/f_configuration/gui/pauseMenu.h
Normal file
46
TO_MERGE/cse/f_configuration/gui/pauseMenu.h
Normal file
@ -0,0 +1,46 @@
|
||||
class CSE_Open_SettingsMenu_BtnBase : cse_gui_buttonBase {
|
||||
idc = -1;
|
||||
text = "Configure [CSE]";
|
||||
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)";
|
||||
y = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + safezoneY";
|
||||
w = "14 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.8)";
|
||||
animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.5)";
|
||||
animTextureOver = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
color[] = {1, 1, 1, 1};
|
||||
color2[] = {0,0,0, 1};
|
||||
colorBackgroundFocused[] = {1,1,1,1};
|
||||
colorBackground[] = {1,1,1,1};
|
||||
colorbackground2[] = {1,1,1,1};
|
||||
colorDisabled[] = {0.5,0.5,0.5,0.8};
|
||||
colorFocused[] = {0,0,0,1};
|
||||
periodFocus = 1;
|
||||
periodOver = 1;
|
||||
action = "(findDisplay 49) closeDisplay 0; createDialog 'cse_settingsMenu';";
|
||||
};
|
||||
|
||||
class RscStandardDisplay;
|
||||
class RscDisplayMPInterrupt: RscStandardDisplay {
|
||||
class controls {
|
||||
class cse_Open_settingsMenu_Btn : CSE_Open_SettingsMenu_BtnBase {};
|
||||
};
|
||||
};
|
||||
class RscDisplayInterruptEditorPreview: RscStandardDisplay {
|
||||
class controls {
|
||||
class cse_Open_settingsMenu_Btn : CSE_Open_SettingsMenu_BtnBase {};
|
||||
};
|
||||
};
|
||||
class RscDisplayInterrupt: RscStandardDisplay {
|
||||
class controls {
|
||||
class cse_Open_settingsMenu_Btn : CSE_Open_SettingsMenu_BtnBase {};
|
||||
};
|
||||
};
|
||||
class RscDisplayInterruptEditor3D: RscStandardDisplay {
|
||||
class controls {
|
||||
class cse_Open_settingsMenu_Btn : CSE_Open_SettingsMenu_BtnBase {};
|
||||
};
|
||||
};
|
259
TO_MERGE/cse/f_configuration/gui/settingsMenu.h
Normal file
259
TO_MERGE/cse/f_configuration/gui/settingsMenu.h
Normal file
@ -0,0 +1,259 @@
|
||||
class cse_settingsMenu {
|
||||
idd = 145246;
|
||||
movingEnable = false;
|
||||
onLoad = "uiNamespace setVariable ['cse_settingsMenu', _this select 0]; [] call cse_fnc_onSettingsMenuOpen; ['cse_settingsMenu', true] call cse_fnc_gui_blurScreen;missionNamespace setVariable ['CSE_SETTINGS_MENU_OPEN', true];";
|
||||
onUnload = "uiNamespace setVariable ['cse_settingsMenu', nil]; saveProfileNamespace; ['cse_settingsMenu', false] call cse_fnc_gui_blurScreen; missionNamespace setVariable ['CSE_SETTINGS_MENU_OPEN', nil];";
|
||||
class controlsBackground {
|
||||
class HeaderBackground: cse_gui_backgroundBase{
|
||||
idc = -1;
|
||||
type = CT_STATIC;
|
||||
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
style = ST_LEFT + ST_SHADOW;
|
||||
font = "PuristaMedium";
|
||||
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
|
||||
colorText[] = {0.95, 0.95, 0.95, 0.75};
|
||||
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"};
|
||||
text = "";
|
||||
};
|
||||
class CenterBackground: HeaderBackground {
|
||||
y = "2.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
h = "2.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
text = "";
|
||||
colorText[] = {0, 0, 0, "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"};
|
||||
colorBackground[] = {0,0,0,"(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"};
|
||||
};
|
||||
class LeftBackground: CenterBackground {
|
||||
y = "4.8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
h = "12.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
w = "25 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
};
|
||||
class RightBackground: LeftBackground {
|
||||
x = "26.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
w = "12.9 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
};
|
||||
};
|
||||
|
||||
class controls {
|
||||
class HeaderName {
|
||||
idc = 1;
|
||||
type = CT_STATIC;
|
||||
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
style = ST_LEFT + ST_SHADOW;
|
||||
font = "PuristaMedium";
|
||||
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
|
||||
colorText[] = {0.95, 0.95, 0.95, 0.75};
|
||||
colorBackground[] = {0,0,0,0};
|
||||
text = "Configure [CSE]";
|
||||
};
|
||||
|
||||
class actionClose : cse_gui_buttonBase {
|
||||
idc = 10;
|
||||
text = "Close";
|
||||
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "17.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "6 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.8)";
|
||||
animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.5)";
|
||||
animTextureOver = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
color[] = {1, 1, 1, 1};
|
||||
color2[] = {0,0,0, 1};
|
||||
colorBackgroundFocused[] = {1,1,1,1};
|
||||
colorBackground[] = {1,1,1,1};
|
||||
colorbackground2[] = {1,1,1,1};
|
||||
colorDisabled[] = {0.5,0.5,0.5,0.8};
|
||||
colorFocused[] = {0,0,0,1};
|
||||
periodFocus = 1;
|
||||
periodOver = 1;
|
||||
action = "closedialog 0;";
|
||||
};
|
||||
class actionUnassign: actionClose {
|
||||
idc = 11;
|
||||
text = "Unassign";
|
||||
x = "33 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "17.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
action = "[0, 0, 0, 0] call cse_fnc_settingsMenuUpdateKeyBinding_F;";
|
||||
};
|
||||
|
||||
class labelShow : cse_gui_staticBase {
|
||||
idc = 12;
|
||||
x = "2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "2.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "4 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
text = "Show:";
|
||||
};
|
||||
class labelShow2: cse_gui_staticBase {
|
||||
idc = 13;
|
||||
x = "2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "3.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "30 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
text = "";
|
||||
};
|
||||
|
||||
class selectionAction_1 : cse_gui_buttonBase {
|
||||
idc = 1000;
|
||||
text = "Menus";
|
||||
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "2.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "9.5 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.9)";
|
||||
animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.8)";
|
||||
animTextureOver = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
color[] = {1, 1, 1, 1};
|
||||
color2[] = {0,0,0, 1};
|
||||
colorBackgroundFocused[] = {1,1,1,1};
|
||||
colorBackground[] = {1,1,1,1};
|
||||
colorbackground2[] = {1,1,1,1};
|
||||
colorDisabled[] = {0.5,0.5,0.5,0.8};
|
||||
colorFocused[] = {0,0,0,1};
|
||||
periodFocus = 1;
|
||||
periodOver = 1;
|
||||
action = "[nil, 0] call cse_fnc_onListBoxShowSelectionChanged;";
|
||||
};
|
||||
class selectionAction_2 : selectionAction_1 {
|
||||
idc = 1001;
|
||||
text = "Actions";
|
||||
x = "10.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
action = "[nil, 1] call cse_fnc_onListBoxShowSelectionChanged;";
|
||||
};
|
||||
class selectionAction_3 : selectionAction_1 {
|
||||
idc = 1002;
|
||||
text = "Settings";
|
||||
x = "20 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
action = "[nil, 2] call cse_fnc_onListBoxShowSelectionChanged;";
|
||||
};
|
||||
class selectionAction_4 : selectionAction_1 {
|
||||
idc = 1003;
|
||||
text = "Colors";
|
||||
x = "29.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
action = "[nil, 3] call cse_fnc_onListBoxShowSelectionChanged;";
|
||||
};
|
||||
|
||||
class listBoxSettingsList: cse_gui_listNBox {
|
||||
idc = 200;
|
||||
x = "2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "5.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "23 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.7)";
|
||||
colorBackground[] = {0, 0, 0, 0.9};
|
||||
colorSelectBackground[] = {0, 0, 0, 0.9};
|
||||
columns[] = {0.0, 0.5};
|
||||
};
|
||||
|
||||
class labelTitle: cse_gui_staticBase {
|
||||
idc = 250;
|
||||
x = "27.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "5.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "10 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
text = "";
|
||||
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
|
||||
};
|
||||
|
||||
class labelKey: cse_gui_staticBase {
|
||||
idc = 300;
|
||||
x = "27.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "6.2 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "10 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
text = "Key:";
|
||||
};
|
||||
|
||||
class Label2: labelKey {
|
||||
idc = 301;
|
||||
y = "7.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
text = "Shift:";
|
||||
};
|
||||
|
||||
class Label3: labelKey {
|
||||
idc = 302;
|
||||
y = "8.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
text = "Ctrl:";
|
||||
};
|
||||
class Label4: labelKey {
|
||||
idc = 303;
|
||||
y = "9.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
text = "Alt:";
|
||||
};
|
||||
class comboBox1: cse_gui_comboBoxBase {
|
||||
idc = 400;
|
||||
x = "32.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "7.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "6 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
};
|
||||
class comboBox2: comboBox1 {
|
||||
idc = 401;
|
||||
y = "8.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
};
|
||||
class comboBox3: comboBox1 {
|
||||
idc = 402;
|
||||
y = "9.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
};
|
||||
|
||||
class labelDesc: cse_gui_staticBase {
|
||||
idc = 251;
|
||||
x = "27.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "11 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "11 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "6 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
text = "";
|
||||
style = ST_LEFT + ST_MULTI;
|
||||
lineSpacing = 1;
|
||||
sizeEx = 0.03;
|
||||
};
|
||||
|
||||
class actionEdit: actionClose {
|
||||
idc = 150;
|
||||
text = "Edit";
|
||||
x = "26.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "17.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
action = "if (!CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F) then{ ctrlSetText [252, 'Press the key you want to assign to this action..']; CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F = true; };";
|
||||
};
|
||||
class actionCancel: actionClose {
|
||||
idc = 151;
|
||||
text = "Cancel";
|
||||
x = "20 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "17.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
action = "ctrlSetText [252, '']; CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F = false; ";
|
||||
};
|
||||
|
||||
|
||||
class notificationDesc: cse_gui_staticBase {
|
||||
idc = 252;
|
||||
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "18 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "6 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
text = "";
|
||||
style = ST_CENTER + ST_SHADOW;
|
||||
sizeEx = 0.05;
|
||||
};
|
||||
|
||||
class selectionAction_5 : selectionAction_1 {
|
||||
idc = 1100;
|
||||
text = "Fix Animation";
|
||||
x = "7.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "17.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "6 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
action = "if ([player] call cse_fnc_canInteract && {animationState player == 'deadState' || animationState player == 'unconscious'} && {(vehicle player == player)}) then { [player, 'amovppnemstpsnonwnondnon'] call cse_fnc_broadcastAnim; };";
|
||||
};
|
||||
};
|
||||
};
|
20
TO_MERGE/cse/f_eh/CfgFunctions.h
Normal file
20
TO_MERGE/cse/f_eh/CfgFunctions.h
Normal file
@ -0,0 +1,20 @@
|
||||
class CfgFunctions {
|
||||
class CSE {
|
||||
class eventhandlers {
|
||||
file = "cse\cse_f_eh\functions";
|
||||
class initialization_f {
|
||||
preInit = 1;
|
||||
postInit = 1;
|
||||
recompile = 1;
|
||||
};
|
||||
class eventHandler_f { recompile = 1; };
|
||||
class HandleHeal_EH_F { recompile = 1; };
|
||||
class HandleDamage_EH_F { recompile = 1; };
|
||||
class customEventHandler_F { recompile = 1; };
|
||||
class getCustomResults_F { recompile = 1; };
|
||||
class setEventhandler_f { recompile = 1; };
|
||||
class removeEventHandler_f { recompile = 1; };
|
||||
class addModuleEventHandlers_f { recompile = 1; };
|
||||
};
|
||||
};
|
||||
};
|
180
TO_MERGE/cse/f_eh/CfgVehicles.h
Normal file
180
TO_MERGE/cse/f_eh/CfgVehicles.h
Normal file
@ -0,0 +1,180 @@
|
||||
class CfgVehicles {
|
||||
class All;
|
||||
class AllVehicles : All {
|
||||
class EventHandlers {
|
||||
handleDamage = "[_this,'handleDamage'] call CSE_fnc_HandleDamage_EH_F;";
|
||||
HandleHeal = "[_this,'handleHeal'] call CSE_fnc_HandleHeal_EH_F;";
|
||||
local = "_this call cse_eh_cba_compat_local;";
|
||||
killed = "_this call cse_eh_cba_compat_Killed";
|
||||
firedNear = "_this call cse_eh_cba_compat_FiredNear";
|
||||
fired = "_this call cse_eh_cba_compat_Fired";
|
||||
respawn = "_this call cse_eh_cba_compat_Respawn";
|
||||
Take = "_this call cse_eh_cba_compat_Take";
|
||||
Put = "_this call cse_eh_cba_compat_Put";
|
||||
GetIn = "_this call cse_eh_cba_compat_GetIn";
|
||||
GetOut = "_this call cse_eh_cba_compat_GetOut";
|
||||
};
|
||||
};
|
||||
|
||||
class Man;
|
||||
class CAManBase: Man {
|
||||
class EventHandlers {
|
||||
handleDamage = "[_this,'handleDamage'] call CSE_fnc_HandleDamage_EH_F;";
|
||||
HandleHeal = "[_this,'handleHeal'] call CSE_fnc_HandleHeal_EH_F;";
|
||||
local = "_this call cse_eh_cba_compat_local;";
|
||||
killed = "_this call cse_eh_cba_compat_Killed";
|
||||
firedNear = "_this call cse_eh_cba_compat_FiredNear";
|
||||
fired = "_this call cse_eh_cba_compat_Fired";
|
||||
respawn = "_this call cse_eh_cba_compat_Respawn";
|
||||
Take = "_this call cse_eh_cba_compat_Take";
|
||||
Put = "_this call cse_eh_cba_compat_Put";
|
||||
GetIn = "_this call cse_eh_cba_compat_GetIn";
|
||||
GetOut = "_this call cse_eh_cba_compat_GetOut";
|
||||
};
|
||||
};
|
||||
|
||||
class SoldierGB : CAManBase{
|
||||
class EventHandlers {
|
||||
handleDamage = "[_this,'handleDamage'] call CSE_fnc_HandleDamage_EH_F;";
|
||||
HandleHeal = "[_this,'handleHeal'] call CSE_fnc_HandleHeal_EH_F;";
|
||||
local = "_this call cse_eh_cba_compat_local;";
|
||||
killed = "_this call cse_eh_cba_compat_Killed";
|
||||
firedNear = "_this call cse_eh_cba_compat_FiredNear";
|
||||
fired = "_this call cse_eh_cba_compat_Fired";
|
||||
respawn = "_this call cse_eh_cba_compat_Respawn";
|
||||
Take = "_this call cse_eh_cba_compat_Take";
|
||||
Put = "_this call cse_eh_cba_compat_Put";
|
||||
GetIn = "_this call cse_eh_cba_compat_GetIn";
|
||||
GetOut = "_this call cse_eh_cba_compat_GetOut";
|
||||
};
|
||||
};
|
||||
class SoldierWB : CAManBase {
|
||||
class EventHandlers {
|
||||
handleDamage = "[_this,'handleDamage'] call CSE_fnc_HandleDamage_EH_F;";
|
||||
HandleHeal = "[_this,'handleHeal'] call CSE_fnc_HandleHeal_EH_F;";
|
||||
local = "_this call cse_eh_cba_compat_local;";
|
||||
killed = "_this call cse_eh_cba_compat_Killed";
|
||||
firedNear = "_this call cse_eh_cba_compat_FiredNear";
|
||||
fired = "_this call cse_eh_cba_compat_Fired";
|
||||
respawn = "_this call cse_eh_cba_compat_Respawn";
|
||||
Take = "_this call cse_eh_cba_compat_Take";
|
||||
Put = "_this call cse_eh_cba_compat_Put";
|
||||
GetIn = "_this call cse_eh_cba_compat_GetIn";
|
||||
GetOut = "_this call cse_eh_cba_compat_GetOut";
|
||||
};
|
||||
};
|
||||
class SoldierEB : CAManBase{
|
||||
class EventHandlers {
|
||||
handleDamage = "[_this,'handleDamage'] call CSE_fnc_HandleDamage_EH_F;";
|
||||
HandleHeal = "[_this,'handleHeal'] call CSE_fnc_HandleHeal_EH_F;";
|
||||
local = "_this call cse_eh_cba_compat_local;";
|
||||
killed = "_this call cse_eh_cba_compat_Killed";
|
||||
firedNear = "_this call cse_eh_cba_compat_FiredNear";
|
||||
fired = "_this call cse_eh_cba_compat_Fired";
|
||||
respawn = "_this call cse_eh_cba_compat_Respawn";
|
||||
Take = "_this call cse_eh_cba_compat_Take";
|
||||
Put = "_this call cse_eh_cba_compat_Put";
|
||||
GetIn = "_this call cse_eh_cba_compat_GetIn";
|
||||
GetOut = "_this call cse_eh_cba_compat_GetOut";
|
||||
};
|
||||
};
|
||||
class B_Soldier_base_F: SoldierWB {
|
||||
class EventHandlers {
|
||||
handleDamage = "[_this,'handleDamage'] call CSE_fnc_HandleDamage_EH_F;";
|
||||
HandleHeal = "[_this,'handleHeal'] call CSE_fnc_HandleHeal_EH_F;";
|
||||
local = "_this call cse_eh_cba_compat_local;";
|
||||
killed = "_this call cse_eh_cba_compat_Killed";
|
||||
firedNear = "_this call cse_eh_cba_compat_FiredNear";
|
||||
fired = "_this call cse_eh_cba_compat_Fired";
|
||||
respawn = "_this call cse_eh_cba_compat_Respawn";
|
||||
Take = "_this call cse_eh_cba_compat_Take";
|
||||
Put = "_this call cse_eh_cba_compat_Put";
|
||||
GetIn = "_this call cse_eh_cba_compat_GetIn";
|
||||
GetOut = "_this call cse_eh_cba_compat_GetOut";
|
||||
};
|
||||
};
|
||||
class B_Soldier_03_f: B_Soldier_base_F {
|
||||
class EventHandlers {
|
||||
handleDamage = "[_this,'handleDamage'] call CSE_fnc_HandleDamage_EH_F;";
|
||||
HandleHeal = "[_this,'handleHeal'] call CSE_fnc_HandleHeal_EH_F;";
|
||||
local = "_this call cse_eh_cba_compat_local;";
|
||||
killed = "_this call cse_eh_cba_compat_Killed";
|
||||
firedNear = "_this call cse_eh_cba_compat_FiredNear";
|
||||
fired = "_this call cse_eh_cba_compat_Fired";
|
||||
respawn = "_this call cse_eh_cba_compat_Respawn";
|
||||
Take = "_this call cse_eh_cba_compat_Take";
|
||||
Put = "_this call cse_eh_cba_compat_Put";
|
||||
GetIn = "_this call cse_eh_cba_compat_GetIn";
|
||||
GetOut = "_this call cse_eh_cba_compat_GetOut";
|
||||
};
|
||||
};
|
||||
|
||||
class LandVehicle;
|
||||
class Car: LandVehicle {
|
||||
class EventHandlers {
|
||||
local = "_this call cse_eh_cba_compat_local;";
|
||||
killed = "_this call cse_eh_cba_compat_Killed";
|
||||
firedNear = "_this call cse_eh_cba_compat_FiredNear";
|
||||
fired = "_this call cse_eh_cba_compat_Fired";
|
||||
respawn = "_this call cse_eh_cba_compat_Respawn";
|
||||
Take = "_this call cse_eh_cba_compat_Take";
|
||||
Put = "_this call cse_eh_cba_compat_Put";
|
||||
GetIn = "_this call cse_eh_cba_compat_GetIn";
|
||||
GetOut = "_this call cse_eh_cba_compat_GetOut";
|
||||
};
|
||||
};
|
||||
class Tank: LandVehicle {
|
||||
class EventHandlers {
|
||||
local = "_this call cse_eh_cba_compat_local;";
|
||||
killed = "_this call cse_eh_cba_compat_Killed";
|
||||
firedNear = "_this call cse_eh_cba_compat_FiredNear";
|
||||
fired = "_this call cse_eh_cba_compat_Fired";
|
||||
respawn = "_this call cse_eh_cba_compat_Respawn";
|
||||
Take = "_this call cse_eh_cba_compat_Take";
|
||||
Put = "_this call cse_eh_cba_compat_Put";
|
||||
GetIn = "_this call cse_eh_cba_compat_GetIn";
|
||||
GetOut = "_this call cse_eh_cba_compat_GetOut";
|
||||
};
|
||||
};
|
||||
|
||||
class Air;
|
||||
class Helicopter: Air {
|
||||
class EventHandlers {
|
||||
local = "_this call cse_eh_cba_compat_local;";
|
||||
killed = "_this call cse_eh_cba_compat_Killed";
|
||||
firedNear = "_this call cse_eh_cba_compat_FiredNear";
|
||||
fired = "_this call cse_eh_cba_compat_Fired";
|
||||
respawn = "_this call cse_eh_cba_compat_Respawn";
|
||||
Take = "_this call cse_eh_cba_compat_Take";
|
||||
Put = "_this call cse_eh_cba_compat_Put";
|
||||
GetIn = "_this call cse_eh_cba_compat_GetIn";
|
||||
GetOut = "_this call cse_eh_cba_compat_GetOut";
|
||||
};
|
||||
};
|
||||
class Plane: Air {
|
||||
class EventHandlers {
|
||||
local = "_this call cse_eh_cba_compat_local;";
|
||||
killed = "_this call cse_eh_cba_compat_Killed";
|
||||
firedNear = "_this call cse_eh_cba_compat_FiredNear";
|
||||
fired = "_this call cse_eh_cba_compat_Fired";
|
||||
respawn = "_this call cse_eh_cba_compat_Respawn";
|
||||
Take = "_this call cse_eh_cba_compat_Take";
|
||||
Put = "_this call cse_eh_cba_compat_Put";
|
||||
GetIn = "_this call cse_eh_cba_compat_GetIn";
|
||||
GetOut = "_this call cse_eh_cba_compat_GetOut";
|
||||
};
|
||||
};
|
||||
class Ship: AllVehicles {
|
||||
class EventHandlers {
|
||||
local = "_this call cse_eh_cba_compat_local;";
|
||||
killed = "_this call cse_eh_cba_compat_Killed";
|
||||
firedNear = "_this call cse_eh_cba_compat_FiredNear";
|
||||
fired = "_this call cse_eh_cba_compat_Fired";
|
||||
respawn = "_this call cse_eh_cba_compat_Respawn";
|
||||
Take = "_this call cse_eh_cba_compat_Take";
|
||||
Put = "_this call cse_eh_cba_compat_Put";
|
||||
GetIn = "_this call cse_eh_cba_compat_GetIn";
|
||||
GetOut = "_this call cse_eh_cba_compat_GetOut";
|
||||
};
|
||||
};
|
||||
};
|
13
TO_MERGE/cse/f_eh/Combat_Space_Enhancement.h
Normal file
13
TO_MERGE/cse/f_eh/Combat_Space_Enhancement.h
Normal file
@ -0,0 +1,13 @@
|
||||
|
||||
class Combat_Space_Enhancement {
|
||||
class EventHandlers {
|
||||
class PreInit_EventHandlers {
|
||||
class cse_xeh_fired_eventHandler_Compat {
|
||||
init = "call compile preprocessFile 'cse\cse_f_eh\cba_compat_init.sqf';";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CustomResults {};
|
||||
class CustomEventHandlers {};
|
||||
};
|
103
TO_MERGE/cse/f_eh/Extended_Init_EventHandlers.h
Normal file
103
TO_MERGE/cse/f_eh/Extended_Init_EventHandlers.h
Normal file
@ -0,0 +1,103 @@
|
||||
class Extended_Fired_Eventhandlers
|
||||
{
|
||||
class AllVehicles
|
||||
{
|
||||
class cse_CBA_COMPAT_XEH
|
||||
{
|
||||
Fired = "[_this,'fired'] call cse_fnc_eventHandler_F;";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_HandleDamage_Eventhandlers
|
||||
{
|
||||
class AllVehicles
|
||||
{
|
||||
class cse_CBA_COMPAT_XEH
|
||||
{
|
||||
handleDamage = "[_this,'handleDamage'] call CSE_fnc_HandleDamage_EH_F;";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_FiredNear_Eventhandlers
|
||||
{
|
||||
class AllVehicles
|
||||
{
|
||||
class cse_CBA_COMPAT_XEH
|
||||
{
|
||||
FiredNear = "[_this,'firedNear'] call cse_fnc_eventHandler_F;";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Killed_Eventhandlers
|
||||
{
|
||||
class AllVehicles
|
||||
{
|
||||
class cse_CBA_COMPAT_XEH
|
||||
{
|
||||
Killed = "[_this,'killed'] call cse_fnc_eventHandler_F;";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Local_Eventhandlers
|
||||
{
|
||||
class AllVehicles
|
||||
{
|
||||
class cse_CBA_COMPAT_XEH
|
||||
{
|
||||
Local = "[_this,'local'] call cse_fnc_eventHandler_F;";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Respawn_Eventhandlers
|
||||
{
|
||||
class AllVehicles
|
||||
{
|
||||
class cse_CBA_COMPAT_XEH {
|
||||
Respawn = "[_this,'respawn'] call cse_fnc_eventHandler_F;";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Take_Eventhandlers
|
||||
{
|
||||
class AllVehicles
|
||||
{
|
||||
class cse_CBA_COMPAT_XEH {
|
||||
Take = "[_this,'take'] call cse_fnc_eventHandler_F;";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Put_Eventhandlers
|
||||
{
|
||||
class AllVehicles
|
||||
{
|
||||
class cse_CBA_COMPAT_XEH {
|
||||
Put = "[_this,'put'] call cse_fnc_eventHandler_F;";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_GetIn_Eventhandlers
|
||||
{
|
||||
class AllVehicles
|
||||
{
|
||||
class cse_CBA_COMPAT_XEH {
|
||||
GetIn = "[_this,'getIn'] call cse_fnc_eventHandler_F;";
|
||||
};
|
||||
};
|
||||
};
|
||||
class Extended_GetOut_EventHandlers
|
||||
{
|
||||
class AllVehicles
|
||||
{
|
||||
class cse_CBA_COMPAT_XEH {
|
||||
GetOut = "[_this,'getOut'] call cse_fnc_eventHandler_F;";
|
||||
};
|
||||
};
|
||||
};
|
19
TO_MERGE/cse/f_eh/cba_compat_init.sqf
Normal file
19
TO_MERGE/cse/f_eh/cba_compat_init.sqf
Normal file
@ -0,0 +1,19 @@
|
||||
/**
|
||||
* cba_compat_init.sqf
|
||||
* @Descr: CBA compatability wrapper.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return: void
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
cse_eh_cba_compat_local = if (!isClass (configFile >> 'CfgPatches' >> 'CBA_main')) then { {[_this,'local'] call cse_fnc_eventHandler_F;} } else {{}};
|
||||
cse_eh_cba_compat_Respawn = if (!isClass (configFile >> 'CfgPatches' >> 'CBA_main')) then { {[_this,'respawn'] call cse_fnc_eventHandler_F;} } else {{}};
|
||||
cse_eh_cba_compat_Killed = if (!isClass (configFile >> 'CfgPatches' >> 'CBA_main')) then { {[_this,'killed'] call cse_fnc_eventHandler_F;} } else {{}};
|
||||
cse_eh_cba_compat_FiredNear = if (!isClass (configFile >> 'CfgPatches' >> 'CBA_main')) then { {[_this,'firedNear'] call cse_fnc_eventHandler_F;} } else {{}};
|
||||
cse_eh_cba_compat_Fired = if (!isClass (configFile >> 'CfgPatches' >> 'CBA_main')) then { {[_this,'fired'] call cse_fnc_eventHandler_F;} } else {{}};
|
||||
cse_eh_cba_compat_Take = if (!isClass (configFile >> 'CfgPatches' >> 'CBA_main')) then { {[_this,'Take'] call cse_fnc_eventHandler_F;} } else {{}};
|
||||
cse_eh_cba_compat_Put = if (!isClass (configFile >> 'CfgPatches' >> 'CBA_main')) then { {[_this,'Put'] call cse_fnc_eventHandler_F;} } else {{}};
|
||||
cse_eh_cba_compat_GetIn = if (!isClass (configFile >> 'CfgPatches' >> 'CBA_main')) then { {[_this,'GetIn'] call cse_fnc_eventHandler_F;} } else {{}};
|
||||
cse_eh_cba_compat_GetOut = if (!isClass (configFile >> 'CfgPatches' >> 'CBA_main')) then { {[_this,'GetOut'] call cse_fnc_eventHandler_F;} } else {{}};
|
31
TO_MERGE/cse/f_eh/config.cpp
Normal file
31
TO_MERGE/cse/f_eh/config.cpp
Normal file
@ -0,0 +1,31 @@
|
||||
class CfgPatches
|
||||
{
|
||||
class cse_f_eh
|
||||
{
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.1;
|
||||
requiredAddons[] = {/*"cba_extended_eventhandlers", "cba_xeh", "extended_eventhandlers"*/ "A3_Characters_F","A3_Boat_F","A3_animals_f","A3_air_f","A3_soft_f","A3_static_f","A3_weapons_f","a3_structures_f"};
|
||||
version = "0.10.0_rc";
|
||||
author[] = {"Combat Space Enhancement"};
|
||||
authorUrl = "http://csemod.com";
|
||||
};
|
||||
};
|
||||
class CfgAddons {
|
||||
class PreloadAddons {
|
||||
class cse_f_eh {
|
||||
list[] = {"cse_f_eh"};
|
||||
};
|
||||
};
|
||||
};
|
||||
/* Event handlers */
|
||||
#include "CfgVehicles.h"
|
||||
|
||||
/* For CBA Compatability */
|
||||
#include "Extended_Init_EventHandlers.h"
|
||||
|
||||
/* Ensures that the functions are being compiled */
|
||||
#include "CfgFunctions.h"
|
||||
|
||||
/* To ensure that the custom eventhandler classes exist */
|
||||
#include "Combat_Space_Enhancement.h"
|
54
TO_MERGE/cse/f_eh/functions/fn_HandleHeal_eh_f.sqf
Normal file
54
TO_MERGE/cse/f_eh/functions/fn_HandleHeal_eh_f.sqf
Normal file
@ -0,0 +1,54 @@
|
||||
/**
|
||||
* fn_HandleHeal_eh_f.sqf
|
||||
* @Descr: Execute the handleHeal Eventhandlers. Is currently bugged due to Arma Engine problem?
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return: BOOL Returns true if handleHeal has been fully handled
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_vehicle","_allPreInitHandlers","_handle","_totalValue","_cfg","_amountOfHandlers", "_newCfg","_returnValue","_ehCfg"];
|
||||
_vehicle = (_this select 0) select 1;
|
||||
_handle = _this select 1;
|
||||
_allPreInitHandlers = [];
|
||||
|
||||
if (!local _vehicle) exitwith {};
|
||||
if (isnil "CSE_fnc_HandleHeal_EH_F") then {
|
||||
CSE_fnc_HandleHeal_EH_F = compile preProcessFileLineNumbers '\cse\cse_f_eh\fn_HandleHeal_EH_F.sqf';
|
||||
};
|
||||
|
||||
if (isnil "CSE_F_MODULE_OBJ_EH") then {
|
||||
CSE_F_MODULE_OBJ_EH = [];
|
||||
};
|
||||
{
|
||||
|
||||
_cfg = (ConfigFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _x);
|
||||
if (isClass _cfg) then {
|
||||
if (isClass (_cfg >> "EventHandlers")) then {
|
||||
_numberOfEH = count (_cfg >> "EventHandlers");
|
||||
for "_j" from 0 to (_numberOfEH -1) /* step +1 */ do {
|
||||
//for [{_j=0}, {_j< _numberOfEH}, {_j=_j+1}] do {
|
||||
_ehCfg = ((_cfg >> "EventHandlers") select _j);
|
||||
if (isClass _ehCfg) then {
|
||||
if (_vehicle isKindOf (ConfigName _ehCfg)) then {
|
||||
_allPreInitHandlers pushback compile getText(_ehCfg >> _handle);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}foreach CSE_F_MODULE_OBJ_EH;
|
||||
{
|
||||
private ["_returnValue"];
|
||||
_returnValue = (_this select 0) call _x;
|
||||
}foreach _allPreInitHandlers;
|
||||
[_allPreInitHandlers] call cse_fnc_debug;
|
||||
|
||||
AISFinishHeal [(_this select 0) select 0, (_this select 0) select 1, (_this select 0) select 2];
|
||||
|
||||
if (count _allPreInitHandlers > 0) then {
|
||||
true;
|
||||
} else {
|
||||
false;
|
||||
};
|
64
TO_MERGE/cse/f_eh/functions/fn_addModuleEventhandlers_f.sqf
Normal file
64
TO_MERGE/cse/f_eh/functions/fn_addModuleEventhandlers_f.sqf
Normal file
@ -0,0 +1,64 @@
|
||||
/**
|
||||
* fn_addModuleEventhandlers_f.sqf
|
||||
* @Descr: N/A
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_entity", "_handle", "_eventHandlerName", "_eventHandlerCollection", "_cfg", "_numberOfEH", "_ehCfg", "_classType", "_text", "_code", "_eventHandlerCollection","_collectedEHIDs", "_collectedID_VarName"];
|
||||
_entity = _this select 0;
|
||||
_handle = _this select 1;
|
||||
|
||||
_eventHandlerName = ("cse_f_eventhandler_" + _handle);
|
||||
|
||||
_eventHandlerCollection = missionNamespace getvariable _eventHandlerName;
|
||||
if (isnil "_eventHandlerCollection") then {
|
||||
_eventHandlerCollection = [];
|
||||
{
|
||||
_cfg = (ConfigFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _x >> "EventHandlers");
|
||||
if (isClass (_cfg)) then {
|
||||
_numberOfEH = count (_cfg);
|
||||
|
||||
for "_EHiterator" from 0 to (_numberOfEH -1) do {
|
||||
_ehCfg = ((_cfg) select _EHiterator);
|
||||
if (isClass _ehCfg) then {
|
||||
_classType = (ConfigName _ehCfg);
|
||||
_text = getText(_ehCfg >> _handle);
|
||||
if (_text != "") then {
|
||||
_code = (compile _text);
|
||||
_eventHandlerCollection pushBack [_classType, _code, _x];
|
||||
true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}count CSE_F_MODULE_OBJ_EH;
|
||||
missionNamespace setvariable [_eventHandlerName, _eventHandlerCollection];
|
||||
if (isnil "cse_f_eventhandlers_collection") then {
|
||||
cse_f_eventhandlers_collection = [];
|
||||
};
|
||||
cse_f_eventhandlers_collection pushBack _eventHandlerName;
|
||||
};
|
||||
|
||||
_collectedID_VarName = format["cse_addModuleEventHandlers_f_%1_ids", _handle];
|
||||
|
||||
// clear all module eventhandlers first
|
||||
_collectedEHIDs = _entity getvariable [_collectedID_VarName, []];
|
||||
{
|
||||
[_entity, _handle, _x] call cse_fnc_removeEventHandler_F;
|
||||
}foreach _collectedEHIDs;
|
||||
|
||||
// now we add the new ones
|
||||
_collectedEHIDs = [];
|
||||
{
|
||||
if (_entity isKindOf (_x select 0)) then {
|
||||
_collectedEHIDs pushback (format["cse_moduleEventhandlerID_", _foreachIndex]);
|
||||
[_entity, _handle, format["cse_moduleEventhandlerID_", _foreachIndex], _x select 1] call cse_fnc_setEventhandler_f;
|
||||
};
|
||||
}foreach _eventHandlerCollection;
|
||||
|
||||
// Store the new IDs
|
||||
_entity setvariable [_collectedID_VarName, _collectedEHIDs];
|
61
TO_MERGE/cse/f_eh/functions/fn_customEventHandler_f.sqf
Normal file
61
TO_MERGE/cse/f_eh/functions/fn_customEventHandler_f.sqf
Normal file
@ -0,0 +1,61 @@
|
||||
/**
|
||||
* fn_customEventHandler_f.sqf
|
||||
* @Descr: Execute a custom defined eventhandler.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [arguments ANY, handle STRING (The name of the eventhandler)]
|
||||
* @Return: ARRAY Array containing the results of the called eventhandlers.
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
|
||||
private ["_arguments","_handle","_ehCfg","_eventHandlerCollection","_eventHandlerName","_cfg","_code","_classType", "_return"];
|
||||
_arguments = _this select 0;
|
||||
_handle = _this select 1;
|
||||
|
||||
_eventHandlerName = ("cse_f_custom_eventhandler_" + _handle);
|
||||
_eventHandlerCollection = missionNamespace getvariable _eventHandlerName;
|
||||
if (isnil "_eventHandlerCollection") then {
|
||||
_eventHandlerCollection = [];
|
||||
[format["caching Custom Eventhandler: %1",_handle]] call cse_fnc_debug;
|
||||
_cfg = (ConfigFile >> "Combat_Space_Enhancement" >> "CustomEventHandlers" >> _handle);
|
||||
if (isClass _cfg) then {
|
||||
_numberOfEH = count _cfg;
|
||||
|
||||
for "_EHiterator" from 0 to (_numberOfEH -1) /* step +1 */ do {
|
||||
//for [{_EHiterator=0}, {(_EHiterator< _numberOfEH)}, {_EHiterator=_EHiterator+1}] do {
|
||||
_ehCfg = _cfg select _EHiterator;
|
||||
if (isClass _ehCfg) then {
|
||||
_classType = (ConfigName _ehCfg);
|
||||
_code = (compile getText(_ehCfg >> "onCall"));
|
||||
_eventHandlerCollection pushback [_classType, _code];
|
||||
true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
_cfg = (MissionConfigFile >> "Combat_Space_Enhancement" >> "CustomEventHandlers" >> _handle);
|
||||
if (isClass _cfg) then {
|
||||
_numberOfEH = count _cfg;
|
||||
for "_EHiterator" from 0 to (_numberOfEH -1) /* step +1 */ do {
|
||||
//for [{_EHiterator=0}, {(_EHiterator< _numberOfEH)}, {_EHiterator=_EHiterator+1}] do {
|
||||
_ehCfg = _cfg select _EHiterator;
|
||||
if (isClass _ehCfg) then {
|
||||
_classType = (ConfigName _ehCfg);
|
||||
_code = (compile getText(_ehCfg >> "onCall"));
|
||||
_eventHandlerCollection pushback [_classType, _code];
|
||||
true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
missionNamespace setvariable [_eventHandlerName, _eventHandlerCollection];
|
||||
[format["Custom Eventhandler: %1 cache: %2",_handle, _eventHandlerCollection]] call cse_fnc_debug;
|
||||
};
|
||||
|
||||
_return = [];
|
||||
{
|
||||
_return pushback (_arguments call (_x select 1));
|
||||
}foreach _eventHandlerCollection;
|
||||
|
||||
_return
|
65
TO_MERGE/cse/f_eh/functions/fn_eventHandler_f.sqf
Normal file
65
TO_MERGE/cse/f_eh/functions/fn_eventHandler_f.sqf
Normal file
@ -0,0 +1,65 @@
|
||||
/**
|
||||
* fn_eventHandler_f.sqf
|
||||
* @Descr: Execute eventhandlers
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return: void
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_args","_handle","_entity","_cfgFile","_cfg","_numberOfEH","_ehCfg","_value", "_code", "_eventHandlerCollection", "_classType", "_eventHandlerName"];
|
||||
_args = _this select 0;
|
||||
_handle = _this select 1;
|
||||
_entity = _args select 0;
|
||||
|
||||
if (isnil "CSE_F_MODULE_OBJ_EH") then {
|
||||
CSE_F_MODULE_OBJ_EH = [];
|
||||
};
|
||||
|
||||
if (!(local _entity) && _handle != "fired") exitwith {};
|
||||
_eventHandlerName = ("cse_f_eventhandler_" + _handle);
|
||||
|
||||
_eventHandlerCollection = missionNamespace getvariable _eventHandlerName;
|
||||
if (isnil "_eventHandlerCollection") then {
|
||||
_eventHandlerCollection = [];
|
||||
{
|
||||
_cfg = (ConfigFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _x >> "EventHandlers");
|
||||
if (isClass (_cfg)) then {
|
||||
_numberOfEH = count (_cfg);
|
||||
|
||||
for "_EHiterator" from 0 to (_numberOfEH -1) do {
|
||||
_ehCfg = ((_cfg) select _EHiterator);
|
||||
if (isClass _ehCfg) then {
|
||||
_classType = (ConfigName _ehCfg);
|
||||
_text = getText(_ehCfg >> _handle);
|
||||
if (_text != "") then {
|
||||
_code = (compile _text);
|
||||
_eventHandlerCollection pushBack [_classType, _code, _x];
|
||||
true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}count CSE_F_MODULE_OBJ_EH;
|
||||
missionNamespace setvariable [_eventHandlerName, _eventHandlerCollection];
|
||||
if (isnil "cse_f_eventhandlers_collection") then {
|
||||
cse_f_eventhandlers_collection = [];
|
||||
};
|
||||
cse_f_eventhandlers_collection pushBack _eventHandlerName;
|
||||
};
|
||||
|
||||
_setHandler = _entity getvariable ("cse_f_setEventhandler_" + _handle);
|
||||
if (isnil "_setHandler") then {
|
||||
{
|
||||
if (_entity isKindOf (_x select 0)) then {
|
||||
_args call (_x select 1);
|
||||
};
|
||||
false;
|
||||
}count _eventHandlerCollection;
|
||||
} else {
|
||||
{
|
||||
_args call (_X select 1);
|
||||
false;
|
||||
}count _setHandler;
|
||||
};
|
42
TO_MERGE/cse/f_eh/functions/fn_getCustomResults_f.sqf
Normal file
42
TO_MERGE/cse/f_eh/functions/fn_getCustomResults_f.sqf
Normal file
@ -0,0 +1,42 @@
|
||||
/**
|
||||
* fn_getCustomResults_f.sqf
|
||||
* @Descr: Executes custom results eventhandlers, collects their output and returns this.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [arguments ANY, handle STRING]
|
||||
* @Return: ARRAY Collection of all return values of all executed CustomResult handlers
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
|
||||
private ["_arguments","_handle","_ehCfg","_eventHandlerCollection","_eventHandlerName","_cfg","_code","_classType", "_return"];
|
||||
_arguments = _this select 0;
|
||||
_handle = _this select 1;
|
||||
|
||||
_eventHandlerName = ("cse_f_custom_results_eventhandler_" + _handle);
|
||||
_eventHandlerCollection = missionNamespace getvariable _eventHandlerName;
|
||||
if (isnil "_eventHandlerCollection") then {
|
||||
_eventHandlerCollection = [];
|
||||
|
||||
_cfg = (ConfigFile >> "Combat_Space_Enhancement" >> "CustomResults" >> _handle);
|
||||
if (isClass _cfg) then {
|
||||
_numberOfEH = count _cfg;
|
||||
for [{_EHiterator=0}, {(_EHiterator< _numberOfEH)}, {_EHiterator=_EHiterator+1}] do {
|
||||
_ehCfg = _cfg select _EHiterator;
|
||||
if (isClass _ehCfg) then {
|
||||
_classType = (ConfigName _ehCfg);
|
||||
_code = (compile getText(_ehCfg >> "onCall"));
|
||||
_eventHandlerCollection set [ count _eventHandlerCollection, [_classType, _code]];
|
||||
true;
|
||||
};
|
||||
};
|
||||
};
|
||||
missionNamespace setvariable [_eventHandlerName, _eventHandlerCollection];
|
||||
};
|
||||
|
||||
_return = [];
|
||||
{
|
||||
_return set [ count _return, _arguments call (_x select 1) ];
|
||||
}foreach _eventHandlerCollection;
|
||||
|
||||
_return
|
79
TO_MERGE/cse/f_eh/functions/fn_handleDamage_eh_f.sqf
Normal file
79
TO_MERGE/cse/f_eh/functions/fn_handleDamage_eh_f.sqf
Normal file
@ -0,0 +1,79 @@
|
||||
/**
|
||||
* fn_handleDamage_eh_f.sqf
|
||||
* @Descr: Execute the handleDamage Eventhandler
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return: NUMBER Returns a number based on output of executed eventhandlers
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_vehicle","_allPreInitHandlers","_handle","_totalValue","_cfg","_amountOfHandlers", "_newCfg","_returnValue","_ehCfg", "_fullDamage", "_returnDamage"];
|
||||
_vehicle = (_this select 0) select 0;
|
||||
_handle = _this select 1;
|
||||
if (!local _vehicle) exitwith {};
|
||||
if (_vehicle isKindOf "CAManBase") then {
|
||||
_name = _vehicle getVariable "cse_name";
|
||||
if (isNil "_name") then {
|
||||
_vehicle setvariable ["cse_name", name _vehicle, true];
|
||||
};
|
||||
};
|
||||
|
||||
_eventHandlerName = "cse_f_eventhandler_handleDamage";
|
||||
_eventHandlerCollection = missionNamespace getvariable _eventHandlerName;
|
||||
if (isnil "_eventHandlerCollection") then {
|
||||
_eventHandlerCollection = [];
|
||||
if (isnil "CSE_F_MODULE_OBJ_EH") then {
|
||||
CSE_F_MODULE_OBJ_EH = [];
|
||||
};
|
||||
{
|
||||
_cfg = (ConfigFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _x);
|
||||
if (isClass _cfg) then {
|
||||
if (isClass (_cfg >> "EventHandlers")) then {
|
||||
_numberOfEH = count (_cfg >> "EventHandlers");
|
||||
|
||||
for "_j" from 0 to (_numberOfEH -1) /* step +1 */ do {
|
||||
//for [{_j=0}, {_j< _numberOfEH}, {_j=_j+1}] do {
|
||||
_ehCfg = ((_cfg >> "EventHandlers") select _j);
|
||||
if (isClass _ehCfg) then {
|
||||
if (getText(_ehCfg >> _handle) != "") then {
|
||||
_eventHandlerCollection pushBack [(ConfigName _ehCfg), compile getText(_ehCfg >> _handle)];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}foreach CSE_F_MODULE_OBJ_EH;
|
||||
missionNamespace setvariable [_eventHandlerName, _eventHandlerCollection];
|
||||
|
||||
if (isnil "cse_f_eventhandlers_collection") then {
|
||||
cse_f_eventhandlers_collection = [];
|
||||
};
|
||||
cse_f_eventhandlers_collection pushBack _eventHandlerName;
|
||||
};
|
||||
_returnDamage = (_this select 0) select 2;
|
||||
{
|
||||
if (_vehicle isKindOf (_x select 0)) then {
|
||||
private "_returnValue";
|
||||
_returnValue = (_this select 0) call (_x select 1);
|
||||
if (!isnil "_returnValue") then {
|
||||
if (typeName _returnValue == typeName 0) then {
|
||||
_returnDamage = _returnValue;
|
||||
};
|
||||
};
|
||||
};
|
||||
}foreach _eventHandlerCollection;
|
||||
|
||||
if (typeName _returnDamage == typeName 0) then {
|
||||
if (_returnDamage >= 0.9) then {
|
||||
if (isnil "CSE_ENABLE_REVIVE_F") then {
|
||||
CSE_ENABLE_REVIVE_F = 0;
|
||||
};
|
||||
if ((CSE_ENABLE_REVIVE_F == 1 && isPlayer _vehicle) || (CSE_ENABLE_REVIVE_F == 2)) then {
|
||||
_returnDamage = 0.9;
|
||||
};
|
||||
};
|
||||
} else {
|
||||
_returnDamage = (_this select 0) select 2;
|
||||
};
|
||||
_returnDamage
|
55
TO_MERGE/cse/f_eh/functions/fn_initialization_f.sqf
Normal file
55
TO_MERGE/cse/f_eh/functions/fn_initialization_f.sqf
Normal file
@ -0,0 +1,55 @@
|
||||
/**
|
||||
* fn_initialization_f.sqf
|
||||
* @Descr: Grabs all pre and post init defined events from the config files and executes those.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [setToExecute STRING]
|
||||
* @Return: void
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_allPreInitHandlers","_cfg","_cfgOpt","_text"];
|
||||
_allPreInitHandlers = [];
|
||||
|
||||
if ((_this select 0) == "preInit") then {
|
||||
_cfg = (ConfigFile >> "Combat_Space_Enhancement" >> "EventHandlers" >> "PreInit_EventHandlers");
|
||||
|
||||
for "_i" from 0 to ((count _cfg)-1) /* step +1 */ do {
|
||||
_this spawn (compile (getText ((_cfg select _i) >> "init")));
|
||||
};
|
||||
} else {
|
||||
if ((_this select 0) == "postInit") then {
|
||||
_cfg = (ConfigFile >> "Combat_Space_Enhancement" >> "EventHandlers" >> "PostInit_EventHandlers");
|
||||
|
||||
for "_i" from 0 to ((count _cfg)-1) /* step +1 */ do {
|
||||
_this spawn (compile (getText ((_cfg select _i) >> "init")));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
if (isnil "CSE_F_EH_ALLOW_MISSION_CONFIG") then {
|
||||
CSE_F_EH_ALLOW_MISSION_CONFIG = true;
|
||||
};
|
||||
|
||||
if (CSE_F_EH_ALLOW_MISSION_CONFIG) then {
|
||||
_allPreInitHandlers = [];
|
||||
if ((_this select 0) == "preInit") then {
|
||||
_cfg = (missionConfigFile >> "Combat_Space_Enhancement" >> "EventHandlers" >> "PreInit_EventHandlers");
|
||||
|
||||
for "_i" from 0 to ((count _cfg)-1) /* step +1 */ do {
|
||||
_this spawn (compile (getText ((_cfg select _i) >> "init")));
|
||||
};
|
||||
} else {
|
||||
if ((_this select 0) == "postInit") then {
|
||||
_cfg = (missionConfigFile >> "Combat_Space_Enhancement" >> "EventHandlers" >> "PostInit_EventHandlers");
|
||||
|
||||
for "_i" from 0 to ((count _cfg)-1) /* step +1 */ do {
|
||||
_this spawn (compile (getText ((_cfg select _i) >> "init")));
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
if ((_this select 0) == "postInit") then {
|
||||
cse_postInit = true;
|
||||
};
|
33
TO_MERGE/cse/f_eh/functions/fn_removeEventhandler_f.sqf
Normal file
33
TO_MERGE/cse/f_eh/functions/fn_removeEventhandler_f.sqf
Normal file
@ -0,0 +1,33 @@
|
||||
/**
|
||||
* fn_removeEventhandler_f.sqf
|
||||
* @Descr: Removes an eventhandler with the specified ID
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [object OBJECT, handler STRING, id STRING]
|
||||
* @Return: nil
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_obj", "_handler", "_id", "_varName", "_handlers", "_newHandlers"];
|
||||
_obj = _this select 0;
|
||||
_handler = _this select 1;
|
||||
_id = _this select 2;
|
||||
|
||||
_varName = "cse_f_setEventhandler_" + _handler;
|
||||
_handlers = _obj getvariable [_varName, []];
|
||||
|
||||
_newHandlers = [];
|
||||
{
|
||||
if (_x select 0 != _id) then {
|
||||
_newHandlers pushback _x;
|
||||
};
|
||||
}foreach _handlers;
|
||||
|
||||
if (count _newHandlers > 0) then {
|
||||
_obj setvariable [_varName, _newHandlers];
|
||||
} else {
|
||||
// remove and default to original CSE handlers
|
||||
_obj setvariable [_varName, nil];
|
||||
};
|
||||
|
||||
true;
|
35
TO_MERGE/cse/f_eh/functions/fn_setEventhandler_f.sqf
Normal file
35
TO_MERGE/cse/f_eh/functions/fn_setEventhandler_f.sqf
Normal file
@ -0,0 +1,35 @@
|
||||
/**
|
||||
* fn_setEventhandler_f.sqf
|
||||
* @Descr: Set the event handler for a specific object. Stacks. Overwrites the CSE module eventhandlers.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [object OBJECT, handler STRING, id STRING, code CODE]
|
||||
* @Return: nil
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_obj", "_handler", "_id", "_code", "_varName", "_handlers", "_found"];
|
||||
_obj = _this select 0;
|
||||
_handler = _this select 1;
|
||||
_id = _this select 2;
|
||||
_code = _this select 3;
|
||||
|
||||
_varName = "cse_f_setEventhandler_" + _handler;
|
||||
_handlers = _obj getvariable [_varName, []];
|
||||
|
||||
_found = -1;
|
||||
{
|
||||
if (_x select 0 == _id) exitwith {
|
||||
_found = _foreachIndex;
|
||||
};
|
||||
}foreach _handlers;
|
||||
|
||||
if (_found < 0) then {
|
||||
_handlers pushback [_id, _code];
|
||||
} else {
|
||||
_handlers set [_found, [_id, _code]];
|
||||
};
|
||||
|
||||
_obj setvariable [_varName, _handlers];
|
||||
|
||||
true;
|
7
TO_MERGE/cse/f_eh/stringtable.xml
Normal file
7
TO_MERGE/cse/f_eh/stringtable.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Project name="Combat Space Enhancement">
|
||||
<Package name="cse_sys_weaponrest">
|
||||
<Container ID="WeaponResting">
|
||||
</Container>
|
||||
</Package>
|
||||
</Project>
|
22
TO_MERGE/cse/f_modules/CfgFunctions.h
Normal file
22
TO_MERGE/cse/f_modules/CfgFunctions.h
Normal file
@ -0,0 +1,22 @@
|
||||
class CfgFunctions
|
||||
{
|
||||
class CSE
|
||||
{
|
||||
|
||||
class Modules
|
||||
{
|
||||
file = "cse\cse_f_modules\functions";
|
||||
class initalizeModule_F { recompile = 1; };
|
||||
class isModuleEnabled_F { recompile = 1; };
|
||||
class getModule_f { recompile = 1; };
|
||||
class getModuleCondition_f { recompile = 1; };
|
||||
class getModules_f { recompile = 1; };
|
||||
class initalizeModuleObjEH { recompile = 1; };
|
||||
class moduleIsActive_f { recompile = 1; };
|
||||
class enableModule_f { recompile = 1; };
|
||||
class getCfgModuleInits_f { recompile = 1; };
|
||||
class getCfgModuleArguments_f { recompile = 1; };
|
||||
class remoteModuleInit { recompile = 1; };
|
||||
};
|
||||
};
|
||||
};
|
21
TO_MERGE/cse/f_modules/Combat_Space_Enhancement.h
Normal file
21
TO_MERGE/cse/f_modules/Combat_Space_Enhancement.h
Normal file
@ -0,0 +1,21 @@
|
||||
class Combat_Space_Enhancement {
|
||||
class EventHandlers {
|
||||
class PreInit_EventHandlers {
|
||||
class cse_f_modules {
|
||||
init = " call compile preprocessFile 'cse\cse_f_modules\init.sqf';";
|
||||
};
|
||||
};
|
||||
class PostInit_EventHandlers {
|
||||
class cse_f_modules {
|
||||
init = " call compile preprocessFile 'cse\cse_f_modules\post-init.sqf';";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CustomEventHandlers {
|
||||
/**
|
||||
* Called when the enableModule_f function is called. Third argument is whatever or not the module has initalized.
|
||||
*/
|
||||
class moduleEnabled_f; // [moduleName, arguments, enabled]
|
||||
};
|
||||
};
|
23
TO_MERGE/cse/f_modules/config.cpp
Normal file
23
TO_MERGE/cse/f_modules/config.cpp
Normal file
@ -0,0 +1,23 @@
|
||||
class CfgPatches
|
||||
{
|
||||
class cse_f_modules
|
||||
{
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.1;
|
||||
requiredAddons[] = {"cse_main"};
|
||||
version = "0.10.0_rc";
|
||||
author[] = {"Combat Space Enhancement"};
|
||||
authorUrl = "http://csemod.com";
|
||||
};
|
||||
};
|
||||
class CfgAddons {
|
||||
class PreloadAddons {
|
||||
class cse_f_modules {
|
||||
list[] = {"cse_f_modules"};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgFunctions.h"
|
||||
#include "Combat_Space_Enhancement.h"
|
36
TO_MERGE/cse/f_modules/functions/fn_enableModule_f.sqf
Normal file
36
TO_MERGE/cse/f_modules/functions/fn_enableModule_f.sqf
Normal file
@ -0,0 +1,36 @@
|
||||
/**
|
||||
* fn_enableModule_f.sqf
|
||||
* @Descr: Enable a CSE Module
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [moduleName STRING, arguments ARRAY (Format: [[name STRING, value ANY]])]
|
||||
* @Return: void
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_moduleName", "_arguments", "_moduleInfo"];
|
||||
_moduleName = _this select 0;
|
||||
_arguments = _this select 1;
|
||||
|
||||
[format["enableModule_f %1 %2",_this, ([_moduleName] call cse_fnc_isModuleEnabled_F)]] call cse_fnc_debug;
|
||||
if ([_moduleName] call cse_fnc_isModuleEnabled_F) exitwith {
|
||||
[[_moduleName, _arguments, false],"moduleEnabled_f"] call cse_fnc_customEventHandler_F;
|
||||
};
|
||||
if (isnil "CSE_F_MODULE_OBJ_EH") then {
|
||||
CSE_F_MODULE_OBJ_EH = [];
|
||||
};
|
||||
CSE_F_MODULE_OBJ_EH pushback _moduleName;
|
||||
|
||||
_initField = getText(ConfigFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _moduleName >> "init");
|
||||
_arguments call compile _initField;
|
||||
|
||||
if !(isnil "cse_f_eventhandlers_collection") then {
|
||||
{
|
||||
missionNamespace setvariable [_x, nil]; // clear all eventhandlers.
|
||||
}foreach cse_f_eventhandlers_collection;
|
||||
};
|
||||
[_moduleName] call cse_fnc_parseModuleForConfigurations;
|
||||
|
||||
[[_moduleName, _arguments, true],"moduleEnabled_f"] call cse_fnc_customEventHandler_F;
|
||||
|
||||
[format["Initalize module: %1 COMPLETED. Arguments: %2", _moduleName, _arguments], 3] call cse_fnc_debug;
|
@ -0,0 +1,98 @@
|
||||
/**
|
||||
* fn_getCfgModuleArguments_f.sqf
|
||||
* @Descr: Grab Module arguments for a specific module in a config file.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [moduleName STRING (The classname of the CSE module), configPath CONFIG (Path to the module Config)]
|
||||
* @Return: ARRAY An array with parameters for given module. If the parameters for the provided module have not been found within the config, default values will be used.
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_configOfModule","_collectedInits","_cfgRoot","_amountOfClasses","_i","_arguments","_moduleName","_CfgVehEntry","_CfgModuleEntry","_moduleArguments","_j","_cfg","_value","_typeNameArgument", "_return"];
|
||||
_moduleName = _this select 0;
|
||||
_configOfModule = _this select 1;
|
||||
_return = [];
|
||||
// Array for collection all initalization arguments for the given module.
|
||||
_arguments = [];
|
||||
// Grab necessary config entries
|
||||
|
||||
_CfgVehEntry = (ConfigFile >> "CfgVehicles" >> _moduleName);
|
||||
_CfgModuleEntry = (ConfigFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _moduleName);
|
||||
|
||||
if (isClass _CfgModuleEntry) then {
|
||||
if (isClass _CfgVehEntry) then {
|
||||
// init with parameters
|
||||
_moduleArguments = (_CfgVehEntry >> "Arguments");
|
||||
if (isClass _moduleArguments) then {
|
||||
|
||||
// Looping through the expected arguments, based on what is defined in the module Argument Class in CfgVehicles.
|
||||
for [{_j=0}, {_j < (count _moduleArguments)}, {_j=_j+1}] do {
|
||||
// if the argument is a class, parse it. Otherwise we will be ignoring it.
|
||||
if (isClass (_moduleArguments select _j)) then {
|
||||
|
||||
// Grab the value from the argument defined in the description.ext and current class.
|
||||
_value = 0; // (_configOfModule >> configName(_moduleArguments select _j)) call bis_fnc_getCfgData;
|
||||
// This will be used to validate the retrieved value for a proper value.
|
||||
_typeNameArgument = getText((_moduleArguments select _j) >> "typeName");
|
||||
|
||||
call {
|
||||
if (_typeNameArgument == "BOOL") exitwith {
|
||||
_value = getNumber(_configOfModule >> configName(_moduleArguments select _j)) == 1;
|
||||
};
|
||||
if (_typeNameArgument == "NUMBER") exitwith {
|
||||
_value = getNumber(_configOfModule >> configName(_moduleArguments select _j));
|
||||
};
|
||||
if (_typeNameArgument == "STRING") exitwith {
|
||||
_value = getText(_configOfModule >> configName(_moduleArguments select _j));
|
||||
};
|
||||
};
|
||||
|
||||
// If the argument is defined in the description.ext, we will validate the typeName of the argument and store it in the argument array.
|
||||
if (!isnil "_value") then {
|
||||
if (typeName _value == _typeNameArgument || TRUE) then { // lets assume the values are correct until we write a function to properly compare the typeNames.
|
||||
_arguments pushback [(ConfigName (_moduleArguments select _j)), _value];
|
||||
} else {
|
||||
// Incase the typeName is invalid, we will set a default value and store this instead.
|
||||
call {
|
||||
if (_typeNameArgument == "BOOL") exitwith {
|
||||
_value = getNumber((_moduleArguments select _j) >> "defaultValue") == 1;
|
||||
};
|
||||
if (_typeNameArgument == "NUMBER") exitwith {
|
||||
_value = getNumber((_moduleArguments select _j) >> "defaultValue");
|
||||
};
|
||||
if (_typeNameArgument == "STRING") exitwith {
|
||||
_value = getText((_moduleArguments select _j) >> "defaultValue");
|
||||
};
|
||||
};
|
||||
[format["Module Argument has not been set %1 %2. Module need to be replaced. Value used: %4", _moduleName, (ConfigName (_moduleArguments select _j)), _typeNameArgument, _value], 1] call cse_fnc_debug;
|
||||
_arguments pushback [(ConfigName (_moduleArguments select _j)), _value];
|
||||
};
|
||||
} else {
|
||||
[format["Value is nil for %1 %2", _moduleName, (ConfigName (_moduleArguments select _j))], 1] call cse_fnc_debug;
|
||||
// Because the value has not been defined, we will use a default value instead.
|
||||
// TODO implement defaultValue retrieval for non defined arguments.
|
||||
_value = "";
|
||||
if (_typeNameArgument != "") then {
|
||||
call {
|
||||
if (_typeNameArgument == "BOOL") exitwith {
|
||||
_value = getNumber((_moduleArguments select _j) >> "defaultValue") == 1;
|
||||
};
|
||||
if (_typeNameArgument == "NUMBER") exitwith {
|
||||
_value = getNumber((_moduleArguments select _j) >> "defaultValue");
|
||||
};
|
||||
if (_typeNameArgument == "STRING") exitwith {
|
||||
_value = getText((_moduleArguments select _j) >> "defaultValue");
|
||||
};
|
||||
};
|
||||
[format["Module Argument has not been set %1 %2. Module need to be replaced. Value used: %4", _moduleName, (ConfigName (_moduleArguments select _j)), _typeNameArgument, _value], 1] call cse_fnc_debug;
|
||||
_arguments pushback [(ConfigName (_moduleArguments select _j)), _value];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
} else {
|
||||
// init with no parameters. We do not have to collect anything for this.
|
||||
};
|
||||
};
|
||||
_arguments
|
28
TO_MERGE/cse/f_modules/functions/fn_getCfgModuleInits_f.sqf
Normal file
28
TO_MERGE/cse/f_modules/functions/fn_getCfgModuleInits_f.sqf
Normal file
@ -0,0 +1,28 @@
|
||||
/**
|
||||
* fn_getCfgModuleInits_f.sqf
|
||||
* @Descr: Grab all defined modules in the given config space, collect their arguments and return them.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [config CONFIG (For example: MissionConfigFile or ConfigFile)]
|
||||
* @Return: ARRAY Array with format: [[moduleName STRING, moduleArgs ARRAY (Format: [argumentName STRING, value ANY])], ...]
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_config","_collectedInits","_cfgRoot","_amountOfClasses","_i","_arguments","_moduleName","_CfgVehEntry","_CfgModuleEntry","_moduleArguments","_j","_cfg","_value","_moduleArgs"];
|
||||
_config = [_this, 0, MissionConfigFile, [MissionConfigFile]] call BIS_fnc_Param;
|
||||
|
||||
_collectedInits = [];
|
||||
_cfgRoot = (_config >> "Combat_Space_Enhancement" >> "Modules");
|
||||
_amountOfClasses = count _cfgRoot;
|
||||
for [{_i=0}, {_i < _amountOfClasses}, {_i=_i+1}] do {
|
||||
if (isClass (_cfgRoot select _i)) then {
|
||||
_moduleName = ConfigName (_cfgRoot select _i);
|
||||
_disableConfigExecution = getNumber (ConfigFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _moduleName >> "disableConfigExecution");
|
||||
if (_disableConfigExecution > 0) exitwith {};
|
||||
if (!([_moduleName] call cse_fnc_isModuleEnabled_f)) then {
|
||||
_moduleArgs = [_moduleName, (_cfgRoot select _i)] call cse_fnc_getCfgModuleArguments_f;
|
||||
_collectedInits pushback [_moduleName, _moduleArgs];
|
||||
};
|
||||
};
|
||||
};
|
||||
_collectedInits
|
20
TO_MERGE/cse/f_modules/functions/fn_getModuleCondition_f.sqf
Normal file
20
TO_MERGE/cse/f_modules/functions/fn_getModuleCondition_f.sqf
Normal file
@ -0,0 +1,20 @@
|
||||
/**
|
||||
* fn_getModuleCondition_f.sqf
|
||||
* @Descr: N/A DEPRECATED
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return:
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_moduleName","_condition","_return","_cfgFile"];
|
||||
|
||||
_moduleName = _this select 0;
|
||||
_return = "";
|
||||
_cfgFile = (ConfigFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _moduleName);
|
||||
if (isClass _cfgFile) then {
|
||||
_return = format["CSE_MODULE_CONDITION_%1",_moduleName];
|
||||
|
||||
};
|
||||
_return
|
22
TO_MERGE/cse/f_modules/functions/fn_getModule_f.sqf
Normal file
22
TO_MERGE/cse/f_modules/functions/fn_getModule_f.sqf
Normal file
@ -0,0 +1,22 @@
|
||||
/**
|
||||
* fn_getModule_f.sqf
|
||||
* @Descr: Gets module information. DEPRECATED
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [ModuleName STRING]
|
||||
* @Return: ARRAY Returns an array with [ModuleName STRING, initLine STRING]
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_module","_cfg","_init","_name"];
|
||||
_moduleName = _this select 0;
|
||||
_cfg = (ConfigFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _moduleName);
|
||||
_module = [];
|
||||
if (isClass _cfg) then {
|
||||
_init = getText (_cfg >> "init");
|
||||
_name = getText (_cfg >> "name");
|
||||
//_module set [count _module,[_name,_init]];
|
||||
_module = [_name,_init];
|
||||
};
|
||||
|
||||
_module
|
15
TO_MERGE/cse/f_modules/functions/fn_getModules_f.sqf
Normal file
15
TO_MERGE/cse/f_modules/functions/fn_getModules_f.sqf
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* fn_getModules_f.sqf
|
||||
* @Descr: Returns all current active CSE Modules
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return: ARRAY List of all current Modules [moduleName STRING (Module classname), ...]
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
if (isnil "CSE_F_MODULE_OBJ_EH") then {
|
||||
CSE_F_MODULE_OBJ_EH = [];
|
||||
};
|
||||
|
||||
CSE_F_MODULE_OBJ_EH;
|
59
TO_MERGE/cse/f_modules/functions/fn_initalizeModuleObjEH.sqf
Normal file
59
TO_MERGE/cse/f_modules/functions/fn_initalizeModuleObjEH.sqf
Normal file
@ -0,0 +1,59 @@
|
||||
/**
|
||||
* fn_initalizeModuleObjEH.sqf
|
||||
* @Descr: initalize module Object init Eventhandlers. DEPRICATED. DO NOT USE.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [object OBJECT, eventhandler STRING]
|
||||
* @Return: void
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
|
||||
private ["_entity","_handle","_cfg","_ehCfg","_numberOfEH"];
|
||||
_entity = (_this select 0) select 0;
|
||||
_handle = _this select 1;
|
||||
|
||||
if (!local _entity) exitwith{};
|
||||
if (isnil "cse_postInit") then {
|
||||
_this spawn {
|
||||
private ["_entity"];
|
||||
_entity = (_this select 0) select 0;
|
||||
_handle = _this select 1;
|
||||
waituntil{(!isnil 'cse_postInit')};
|
||||
{
|
||||
_cfg = (ConfigFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _x);
|
||||
if (isClass _cfg) then {
|
||||
if (isClass (_cfg >> "EventHandlers")) then {
|
||||
_numberOfEH = count (_cfg >> "EventHandlers");
|
||||
for [{_j=0}, {_j< _numberOfEH}, {_j=_j+1}] do {
|
||||
_ehCfg = ((_cfg >> "EventHandlers") select _j);
|
||||
if (isClass _ehCfg) then {
|
||||
if (_entity isKindOf (ConfigName _ehCfg)) then {
|
||||
(_this select 0) call (compile getText(_ehCfg >> _handle));
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}foreach (call cse_fnc_getModules);
|
||||
};
|
||||
} else {
|
||||
|
||||
if (!local _entity) exitwith{};
|
||||
{
|
||||
_cfg = (ConfigFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _x);
|
||||
if (isClass _cfg) then {
|
||||
if (isClass (_cfg >> "EventHandlers")) then {
|
||||
_numberOfEH = count (_cfg >> "EventHandlers");
|
||||
for [{_j=0}, {_j< _numberOfEH}, {_j=_j+1}] do {
|
||||
_ehCfg = ((_cfg >> "EventHandlers") select _j);
|
||||
if (isClass _ehCfg) then {
|
||||
if (_entity isKindOf (ConfigName _ehCfg)) then {
|
||||
(_this select 0) call (compile getText(_ehCfg >> _handle));
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}foreach (call cse_fnc_getModules);
|
||||
};
|
59
TO_MERGE/cse/f_modules/functions/fn_initalizeModule_F.sqf
Normal file
59
TO_MERGE/cse/f_modules/functions/fn_initalizeModule_F.sqf
Normal file
@ -0,0 +1,59 @@
|
||||
/**
|
||||
* fn_initalizeModule_F.sqf
|
||||
* @Descr: Initalize a CSE Module. To be called through the BI A3 Module Framework
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: []
|
||||
* @Return: void
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_moduleName","_arguments","_logic","_units", "_activated","_cfg", "_moduleInfo", "_value", "_typeNameArgument"];
|
||||
if (count _this > 1) then {
|
||||
_moduleName = typeOf (_this select 0);
|
||||
} else {
|
||||
_moduleName = _this select 0;
|
||||
};
|
||||
[format["Initalize module: %1 IN QUE",_moduleName], 3] call cse_fnc_debug;
|
||||
waituntil {(!isnil 'cse_f_modules')};
|
||||
[format["Initalize module: %1 STARTED",_moduleName], 3] call cse_fnc_debug;
|
||||
|
||||
_arguments = [];
|
||||
if (count _this >1) then {
|
||||
_logic = [_this,0,objNull,[objNull]] call BIS_fnc_param;
|
||||
_units = [_this,1,[],[[]]] call BIS_fnc_param;
|
||||
_activated = [_this,2,true,[true]] call BIS_fnc_param;
|
||||
_moduleName = typeOf _logic;
|
||||
_cfg = (ConfigFile >> "CfgVehicles" >> _moduleName >> "Arguments");
|
||||
if (isClass _cfg) then {
|
||||
for [{_i=0}, {_i < (count _cfg)}, {_i=_i+1}] do {
|
||||
if (isClass (_cfg select _i)) then {
|
||||
_value = _logic getvariable (ConfigName (_cfg select _i));
|
||||
if (!isnil "_value") then {
|
||||
_arguments pushback [(ConfigName (_cfg select _i)), _value];
|
||||
} else {
|
||||
_typeNameArgument = getText ((_cfg select _i) >> "typeName");
|
||||
_value = "";
|
||||
if (_typeNameArgument != "") then {
|
||||
call {
|
||||
if (_typeNameArgument == "BOOL") exitwith {
|
||||
_value = getNumber((_cfg select _i) >> "defaultValue") == 1;
|
||||
};
|
||||
if (_typeNameArgument == "NUMBER") exitwith {
|
||||
_value = getNumber((_cfg select _i) >> "defaultValue");
|
||||
};
|
||||
if (_typeNameArgument == "STRING") exitwith {
|
||||
_value = getText((_cfg select _i) >> "defaultValue");
|
||||
};
|
||||
};
|
||||
[format["Module Argument has not been set %1 %2. Module need to be replaced. Value used: %4", _moduleName, (ConfigName (_cfg select _i)), _typeNameArgument, _value], 1] call cse_fnc_debug;
|
||||
_arguments pushback [(ConfigName (_cfg select _i)), _value];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
} else {
|
||||
_moduleName = _this select 0;
|
||||
};
|
||||
[_moduleName, _arguments] call cse_fnc_enableModule_f;
|
14
TO_MERGE/cse/f_modules/functions/fn_isModuleEnabled_F.sqf
Normal file
14
TO_MERGE/cse/f_modules/functions/fn_isModuleEnabled_F.sqf
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* fn_isModuleEnabled_F.sqf
|
||||
* @Descr: Check if given CSE Module class is enabled
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [moduleName STRING]
|
||||
* @Return: BOOL Returns true if module is currently enabled
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
if (isnil "CSE_F_MODULE_OBJ_EH") then {
|
||||
CSE_F_MODULE_OBJ_EH = [];
|
||||
};
|
||||
((_this select 0) in CSE_F_MODULE_OBJ_EH);
|
19
TO_MERGE/cse/f_modules/functions/fn_moduleIsActive_f.sqf
Normal file
19
TO_MERGE/cse/f_modules/functions/fn_moduleIsActive_f.sqf
Normal file
@ -0,0 +1,19 @@
|
||||
/**
|
||||
* fn_moduleIsActive_f.sqf
|
||||
* @Descr: Check if given module name is active. DEPRICATED. DO NOT USE.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [moduleName STRING]
|
||||
* @Return: BOOL Returns true if moduel is currently active
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_moduleName","_return","_condition"];
|
||||
_moduleName = _this select 0;
|
||||
_return = false;
|
||||
|
||||
_condition = [_moduleNAme] call cse_fnc_getModuleCondition_F;
|
||||
if (!isnil "_condition") then {
|
||||
call compile format["_return = %1;",_condition];
|
||||
};
|
||||
_return
|
17
TO_MERGE/cse/f_modules/functions/fn_remoteModuleInit.sqf
Normal file
17
TO_MERGE/cse/f_modules/functions/fn_remoteModuleInit.sqf
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* fn_remoteModuleInit.sqf
|
||||
* @Descr: Called by remote execution script to initialize modules.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [[moduleName STRING, arguments ARRAY (Format: [argumentName STRING, value ANY])], ...]
|
||||
* @Return: nil
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
private ["_toinitalizeModules"];
|
||||
_toinitalizeModules = _this select 0;
|
||||
sleep 5;
|
||||
{
|
||||
[format["initalize module through Cfg REMOTE: %1",_x]] call cse_fnc_debug;
|
||||
_x call cse_fnc_enableModule_f;
|
||||
}foreach _toinitalizeModules;
|
3
TO_MERGE/cse/f_modules/init.sqf
Normal file
3
TO_MERGE/cse/f_modules/init.sqf
Normal file
@ -0,0 +1,3 @@
|
||||
|
||||
|
||||
cse_f_modules = true;
|
21
TO_MERGE/cse/f_modules/post-init.sqf
Normal file
21
TO_MERGE/cse/f_modules/post-init.sqf
Normal file
@ -0,0 +1,21 @@
|
||||
// Collect cfg modules and initalize them.
|
||||
[] spawn {
|
||||
// by waiting, we ensure that CSE Config modules aren't initalized before the modules have been.
|
||||
sleep 5;
|
||||
_toinitalizeModules = [MissionConfigFile] call cse_fnc_getCfgModuleInits_f;
|
||||
{
|
||||
[format["initalize module through cfg: %1",_x]] call cse_fnc_debug;
|
||||
_x call cse_fnc_enableModule_f;
|
||||
}foreach _toinitalizeModules;
|
||||
|
||||
// Check if we want to collect server side modules
|
||||
_allowCfg = ((getNumber(MissionConfigFile >> "Combat_Space_Enhancement" >> "DisableModuleConfig")) == 0);
|
||||
if (isServer && _allowCfg) then {
|
||||
_toinitalizeModules = [configFile] call cse_fnc_getCfgModuleInits_f;
|
||||
|
||||
[format["initalize modules through server cfg: %1",_toinitalizeModules]] call cse_fnc_debug;
|
||||
if !(_toinitalizeModules isEqualTo []) then {
|
||||
[[_toinitalizeModules], "cse_fnc_remoteModuleInit", true, true] spawn BIS_fnc_MP;
|
||||
};
|
||||
};
|
||||
};
|
7
TO_MERGE/cse/f_modules/stringtable.xml
Normal file
7
TO_MERGE/cse/f_modules/stringtable.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Project name="Combat Space Enhancement">
|
||||
<Package name="cse_f_modules">
|
||||
<Container ID="Modules">
|
||||
</Container>
|
||||
</Package>
|
||||
</Project>
|
49
TO_MERGE/cse/f_states/CfgFunctions.h
Normal file
49
TO_MERGE/cse/f_states/CfgFunctions.h
Normal file
@ -0,0 +1,49 @@
|
||||
class CfgFunctions {
|
||||
class CSE {
|
||||
class Carry {
|
||||
file = "cse\cse_f_states\carry\functions";
|
||||
class carryObj { recompile = 1; };
|
||||
class carriedByObj { recompile = 1; };
|
||||
class getCarriedObj { recompile = 1; };
|
||||
class getCarriedBy { recompile = 1; };
|
||||
class beingCarried { recompile = 1; };
|
||||
class setCarriedBy { recompile = 1; }; /* Should not be used by other developers */
|
||||
};
|
||||
class Unconscious {
|
||||
file = "cse\cse_f_states\unconscious\functions";
|
||||
class setUnconsciousState { recompile = 1; };
|
||||
class isUnconscious { recompile = 1; };
|
||||
class getUnconsciousCondition { recompile = 1; };
|
||||
class registerUnconsciousCondition { recompile = 1; };
|
||||
class setCaptiveSwitch { recompile = 1; };
|
||||
class moveToTempGroup { recompile = 1; };
|
||||
class canGoUnconsciousState { recompile = 1; };
|
||||
class setWeaponsCorrectUnconscious { recompile = 1; };
|
||||
};
|
||||
class Visual {
|
||||
file = "cse\cse_f_states\visual\functions";
|
||||
class effectPain { recompile = 1; };
|
||||
class effectBleeding { recompile = 1; };
|
||||
class effectBlackOut { recompile = 1; };
|
||||
};
|
||||
class Movement {
|
||||
file = "cse\cse_f_states\movement\functions";
|
||||
class limitMovementSpeed { recompile = 1; };
|
||||
class limitSpeed { recompile = 1; };
|
||||
};
|
||||
class Arrest {
|
||||
file = "cse\cse_f_states\arrest\functions";
|
||||
class setArrestState { recompile = 1; };
|
||||
class isArrested { recompile = 1; };
|
||||
};
|
||||
class LoadPerson {
|
||||
file = "cse\cse_f_states\LoadPerson\functions";
|
||||
class loadPerson_F { recompile = 1; };
|
||||
class loadPersonLocal_F {recompile = 1; };
|
||||
class makeCopyOfBody_F { recompile = 1; };
|
||||
class makeCopyOfBodyLocal_F { recompile = 1; };
|
||||
class unloadPerson_F { recompile = 1; };
|
||||
class cleanUpCopyOfBody_F { recompile = 1; };
|
||||
};
|
||||
};
|
||||
};
|
26
TO_MERGE/cse/f_states/Combat_Space_Enhancement.h
Normal file
26
TO_MERGE/cse/f_states/Combat_Space_Enhancement.h
Normal file
@ -0,0 +1,26 @@
|
||||
class Combat_Space_Enhancement
|
||||
{
|
||||
class EventHandlers
|
||||
{
|
||||
class PostInit_EventHandlers
|
||||
{
|
||||
class cse_f_states
|
||||
{
|
||||
init = " call compile preprocessFile 'cse\cse_f_states\init.sqf';";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class CustomEventHandlers {
|
||||
class setUnconsciousState {}; // [unit, bool]
|
||||
class setArrestState {}; // [unit, bool]
|
||||
class carryObject {}; // [_unit, _to, _fallDown],"carryObject"
|
||||
|
||||
class carryObjectDropped {
|
||||
class cleanUpCopiesAfterDrag { // [unit, droppedObject]
|
||||
onCall = "[_this select 1] call cse_fnc_cleanUpCopyOfBody_f;";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
11
TO_MERGE/cse/f_states/arrest/functions/fn_isArrested.sqf
Normal file
11
TO_MERGE/cse/f_states/arrest/functions/fn_isArrested.sqf
Normal file
@ -0,0 +1,11 @@
|
||||
/**
|
||||
* fn_isArrested.sqf
|
||||
* @Descr: Check if unit is in arrested state
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [unit OBJECT]
|
||||
* @Return: BOOL Returns true if unit or object is in arrest state
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
((_this select 0) getvariable ["cse_state_arrested",false])
|
43
TO_MERGE/cse/f_states/arrest/functions/fn_setArrestState.sqf
Normal file
43
TO_MERGE/cse/f_states/arrest/functions/fn_setArrestState.sqf
Normal file
@ -0,0 +1,43 @@
|
||||
/**
|
||||
* fn_setArrestState.sqf
|
||||
* @Descr: Set a unit in arrest state
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [unitToBeArrested OBJECT, setArrested BOOL]
|
||||
* @Return: void
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_unit","_setArrest"];
|
||||
_unit = [_this, 0, objNull, [objNull]] call BIS_fnc_Param;
|
||||
_setArrest = [_this, 1, false, [false]] call BIS_fnc_Param;
|
||||
|
||||
if (_setArrest) then {
|
||||
[_unit, "cse_state_arrested", true] call cse_fnc_setVariable;
|
||||
|
||||
if ([_unit] call cse_fnc_isAwake) then {
|
||||
if (vehicle _unit == _unit) then {
|
||||
[_unit,"UnaErcPoslechVelitele2",true] call cse_fnc_broadcastAnim;
|
||||
};
|
||||
};
|
||||
if (IsPlayer _unit) then {
|
||||
[["arrested", true],"cse_fnc_disableUserInput_f",_unit,false] call BIS_fnc_MP;
|
||||
};
|
||||
_unit disableAI "Move";
|
||||
_unit disableAI "ANIM";
|
||||
} else {
|
||||
[_unit, "cse_state_arrested", false] call cse_fnc_setVariable;
|
||||
|
||||
if ([_unit] call cse_fnc_isAwake) then {
|
||||
if (vehicle _unit == _unit) then {
|
||||
[_unit,"",true] call cse_fnc_broadcastAnim;
|
||||
};
|
||||
_unit enableAI "Move";
|
||||
_unit enableAI "ANIM";
|
||||
};
|
||||
if (IsPlayer _unit) then {
|
||||
[["arrested", false],"cse_fnc_disableUserInput_f",_unit,false] call BIS_fnc_MP;
|
||||
};
|
||||
};
|
||||
|
||||
[[_unit, _setArrest],"setArrestState"] call cse_fnc_customEventHandler_F;
|
13
TO_MERGE/cse/f_states/carry/functions/fn_beingCarried.sqf
Normal file
13
TO_MERGE/cse/f_states/carry/functions/fn_beingCarried.sqf
Normal file
@ -0,0 +1,13 @@
|
||||
/**
|
||||
* fn_beingCarried.sqf
|
||||
* @Descr: Check if object is being carried
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [object OBJECT]
|
||||
* @Return: BOOL True if object is being carried
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private["_object"];
|
||||
_object = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_Param;
|
||||
!(isNull ([_object] call cse_fnc_getCarriedObj));
|
15
TO_MERGE/cse/f_states/carry/functions/fn_carriedByObj.sqf
Normal file
15
TO_MERGE/cse/f_states/carry/functions/fn_carriedByObj.sqf
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* fn_carriedByObj.sqf
|
||||
* @Descr: Check if object A is being carried by object B.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [object OBJECT, unit OBJECT]
|
||||
* @Return: BOOL True if B is carrying A.
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_unit","_to"];
|
||||
_to = _this select 0;
|
||||
_unit = _this select 1;
|
||||
|
||||
([_to] call cse_fnc_getCarriedBy == [_unit] call cse_fnc_getCarriedBy);
|
74
TO_MERGE/cse/f_states/carry/functions/fn_carryObj.sqf
Normal file
74
TO_MERGE/cse/f_states/carry/functions/fn_carryObj.sqf
Normal file
@ -0,0 +1,74 @@
|
||||
/**
|
||||
* fn_carryObj.sqf
|
||||
* @Descr: Have a unit carry an object. Use ObjNull for second parameter if you want the unit to carry nothing
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [unit OBJECT, objectToCarry OBJECT, attachToVector ARRAY (Optional)]
|
||||
* @Return: BOOL Returns true if succesful
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_unit","_to","_return", "_fallDown", "_carriedObj", "_positionUnit"];
|
||||
_unit = [_this, 0,ObjNull, [ObjNull]] call bis_fnc_param;
|
||||
_to = [_this, 1,ObjNull, [ObjNull]] call bis_fnc_param;
|
||||
_fallDown = false;
|
||||
if (count _this > 3) then {
|
||||
_fallDown = _this select 3;
|
||||
};
|
||||
_return = false;
|
||||
|
||||
[format["fnc_carryObj - UNIT: %1 ATTEMPTS TO CARRY %2",_unit,_to],2] call cse_fnc_debug;
|
||||
|
||||
if (((typeName _to) == "OBJECT" && (isNull ([_unit] call cse_fnc_getCarriedObj))) || isNull _to) then {
|
||||
if (vehicle _unit != _unit) exitwith {};
|
||||
if (!isNull _to) then {
|
||||
if ((isNull ([_to] call cse_fnc_getCarriedObj)) && ([_unit] call cse_fnc_canInteract)) then {
|
||||
_return = true;
|
||||
_unit setvariable ["cse_carriedObj",_to,true];
|
||||
if (_fallDown) then {
|
||||
// [_unit,_fallDown] call cse_fnc_limitMovementSpeed;
|
||||
};
|
||||
[_to, _unit] call cse_fnc_setCarriedBy;
|
||||
if (count _this > 2) then {
|
||||
if (count (_this select 2) == 3) then {
|
||||
_to attachTo [_unit,(_this select 2)];
|
||||
[format["fnc_carryObj - UNIT: %1 TO %2 - attachTo offset: %3",_unit,_to,(_this select 2)],2] call cse_fnc_debug;
|
||||
};
|
||||
} else {
|
||||
[format["fnc_carryObj - UNIT: %1 TO %2 - Script expects external handling of attachTo Command. Exiting",_unit,_to],2] call cse_fnc_debug;
|
||||
};
|
||||
|
||||
[[_unit, _to, _fallDown],"carryObject"] call cse_fnc_customEventHandler_F;
|
||||
|
||||
};
|
||||
} else {
|
||||
if (!isNull ([_unit] call cse_fnc_getCarriedObj)) then {
|
||||
[format["fnc_carryObj - UNIT: %1 DROPING CARRIED OBJECT",_unit],2] call cse_fnc_debug;
|
||||
_carriedObj = ([_unit] call cse_fnc_getCarriedObj);
|
||||
|
||||
detach _carriedObj;
|
||||
//_carriedObj setPosATL [(getPosATL _carriedObj) select 0, (getPosATL _carriedObj) select 1,0];
|
||||
if (!surfaceIsWater getPos _unit) then {
|
||||
_positionUnit = getPosATL _carriedObj;
|
||||
_positionUnit set [2, ((getPosATL _unit) select 2) + 0.1];
|
||||
_carriedObj setPosATL _positionUnit;
|
||||
} else {
|
||||
_positionUnit = getPosASL _carriedObj;
|
||||
_positionUnit set [2, ((getPosASL _unit) select 2) + 0.1];
|
||||
_carriedObj setPosASL _positionUnit;
|
||||
};
|
||||
[[_unit, _carriedObj],"carryObjectDropped"] call cse_fnc_customEventHandler_F;
|
||||
|
||||
[[_unit] call cse_fnc_getCarriedObj, objNull] call cse_fnc_setCarriedBy;
|
||||
_unit setvariable ["cse_carriedObj",_to,true];
|
||||
_return = true;
|
||||
|
||||
[[_unit, _to, _fallDown],"carryObject"] call cse_fnc_customEventHandler_F;
|
||||
};
|
||||
};
|
||||
} else {
|
||||
[format["fnc_carryObj - UNIT: %1 FAILED TO CARRY %2 - not an object or already carrying",_unit,_to],2] call cse_fnc_debug;
|
||||
};
|
||||
|
||||
//[format["UNIT: %1 ATTEMPTS TO CARRY %2",_unit,_to],2] call cse_fnc_debug;
|
||||
_return
|
14
TO_MERGE/cse/f_states/carry/functions/fn_getCarriedBy.sqf
Normal file
14
TO_MERGE/cse/f_states/carry/functions/fn_getCarriedBy.sqf
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* fn_getCarriedBy.sqf
|
||||
* @Descr: Get the object that is carrying given unit or object
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [unit OBJECT]
|
||||
* @Return: OBJECT Returns the object that is carrying the unit. Otherwise returns ObjNull
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_unit","_return"];
|
||||
_unit = [_this, 0, objNull, [objNull]] call BIS_fnc_param;
|
||||
_return = _unit getvariable ["cse_carriedBy",objNull];
|
||||
_return
|
14
TO_MERGE/cse/f_states/carry/functions/fn_getCarriedObj.sqf
Normal file
14
TO_MERGE/cse/f_states/carry/functions/fn_getCarriedObj.sqf
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* fn_getCarriedObj.sqf
|
||||
* @Descr: Grab the registered carried object
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [unit OBJECT]
|
||||
* @Return: OBJECT Returns the object that the unit is currently carrying. If not carrying, returns ObjNull
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_unit","_return"];
|
||||
_unit = _this select 0;
|
||||
_return = _unit getvariable ["cse_carriedObj",objNull];
|
||||
_return
|
20
TO_MERGE/cse/f_states/carry/functions/fn_setCarriedBy.sqf
Normal file
20
TO_MERGE/cse/f_states/carry/functions/fn_setCarriedBy.sqf
Normal file
@ -0,0 +1,20 @@
|
||||
/**
|
||||
* fn_setCarriedBy.sqf
|
||||
* @Descr: Registers an object being carried by another object
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [unitToBeCarried OBJECT, objectCarrying OBJECT]
|
||||
* @Return: BOOL True if succesfully registered
|
||||
* @PublicAPI: false
|
||||
*/
|
||||
|
||||
|
||||
private ["_unit","_to","_return"];
|
||||
_unit = [_this, 0, ObjNull,[ObjNull]] call BIS_fnc_Param;
|
||||
_to = [_this, 1, ObjNull,[ObjNull]] call BIS_fnc_Param;
|
||||
_return = false;
|
||||
if ((isNull ([_unit] call cse_fnc_getCarriedBy)) || isNull _to) then {
|
||||
_return = true;
|
||||
_unit setvariable ["cse_carriedBy",_to,true];
|
||||
};
|
||||
_return
|
26
TO_MERGE/cse/f_states/config.cpp
Normal file
26
TO_MERGE/cse/f_states/config.cpp
Normal file
@ -0,0 +1,26 @@
|
||||
#define _ARMA_
|
||||
class CfgPatches
|
||||
{
|
||||
class cse_f_states
|
||||
{
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.1;
|
||||
requiredAddons[] = {"cse_main"};
|
||||
version = "0.5";
|
||||
author[] = {"Combat Space Enhancement"};
|
||||
authorUrl = "http://csemod.com";
|
||||
};
|
||||
};
|
||||
class CfgAddons {
|
||||
class PreloadAddons {
|
||||
class cse_f_states {
|
||||
list[] = {"cse_f_states"};
|
||||
};
|
||||
};
|
||||
};
|
||||
#include "CfgFunctions.h"
|
||||
#include "Combat_Space_Enhancement.h"
|
||||
#include "define.hpp"
|
||||
#include "visual\empty.hpp"
|
||||
#include "visual\effects.hpp"
|
BIN
TO_MERGE/cse/f_states/data/black_out1.paa
Normal file
BIN
TO_MERGE/cse/f_states/data/black_out1.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/f_states/data/cse_bleedingscreen_v5.paa
Normal file
BIN
TO_MERGE/cse/f_states/data/cse_bleedingscreen_v5.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/f_states/data/cse_blurryScreen.paa
Normal file
BIN
TO_MERGE/cse/f_states/data/cse_blurryScreen.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/f_states/data/cse_fadingblack.paa
Normal file
BIN
TO_MERGE/cse/f_states/data/cse_fadingblack.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/f_states/data/cse_painscreen.paa
Normal file
BIN
TO_MERGE/cse/f_states/data/cse_painscreen.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/f_states/data/hit_screen1.paa
Normal file
BIN
TO_MERGE/cse/f_states/data/hit_screen1.paa
Normal file
Binary file not shown.
BIN
TO_MERGE/cse/f_states/data/pain_screen3.paa
Normal file
BIN
TO_MERGE/cse/f_states/data/pain_screen3.paa
Normal file
Binary file not shown.
797
TO_MERGE/cse/f_states/define.hpp
Normal file
797
TO_MERGE/cse/f_states/define.hpp
Normal file
@ -0,0 +1,797 @@
|
||||
|
||||
#ifndef CSE_DEFINE_H
|
||||
#define CSE_DEFINE_H
|
||||
// define.hpp
|
||||
|
||||
#define true 1
|
||||
#define false 0
|
||||
|
||||
#define CT_STATIC 0
|
||||
#define CT_BUTTON 1
|
||||
#define CT_EDIT 2
|
||||
#define CT_SLIDER 3
|
||||
#define CT_COMBO 4
|
||||
#define CT_LISTBOX 5
|
||||
#define CT_TOOLBOX 6
|
||||
#define CT_CHECKBOXES 7
|
||||
#define CT_PROGRESS 8
|
||||
#define CT_HTML 9
|
||||
#define CT_STATIC_SKEW 10
|
||||
#define CT_ACTIVETEXT 11
|
||||
#define CT_TREE 12
|
||||
#define CT_STRUCTURED_TEXT 13
|
||||
#define CT_CONTEXT_MENU 14
|
||||
#define CT_CONTROLS_GROUP 15
|
||||
#define CT_SHORTCUTBUTTON 16
|
||||
#define CT_XKEYDESC 40
|
||||
#define CT_XBUTTON 41
|
||||
#define CT_XLISTBOX 42
|
||||
#define CT_XSLIDER 43
|
||||
#define CT_XCOMBO 44
|
||||
#define CT_ANIMATED_TEXTURE 45
|
||||
#define CT_OBJECT 80
|
||||
#define CT_OBJECT_ZOOM 81
|
||||
#define CT_OBJECT_CONTAINER 82
|
||||
#define CT_OBJECT_CONT_ANIM 83
|
||||
#define CT_LINEBREAK 98
|
||||
#define CT_ANIMATED_USER 99
|
||||
#define CT_MAP 100
|
||||
#define CT_MAP_MAIN 101
|
||||
#define CT_LISTNBOX 102
|
||||
|
||||
// Static styles
|
||||
#define ST_POS 0x0F
|
||||
#define ST_HPOS 0x03
|
||||
#define ST_VPOS 0x0C
|
||||
#define ST_LEFT 0x00
|
||||
#define ST_RIGHT 0x01
|
||||
#define ST_CENTER 0x02
|
||||
#define ST_DOWN 0x04
|
||||
#define ST_UP 0x08
|
||||
#define ST_VCENTER 0x0c
|
||||
|
||||
#define ST_TYPE 0xF0
|
||||
#define ST_SINGLE 0
|
||||
#define ST_MULTI 16
|
||||
#define ST_TITLE_BAR 32
|
||||
#define ST_PICTURE 48
|
||||
#define ST_FRAME 64
|
||||
#define ST_BACKGROUND 80
|
||||
#define ST_GROUP_BOX 96
|
||||
#define ST_GROUP_BOX2 112
|
||||
#define ST_HUD_BACKGROUND 128
|
||||
#define ST_TILE_PICTURE 144
|
||||
#define ST_WITH_RECT 160
|
||||
#define ST_LINE 176
|
||||
|
||||
#define ST_SHADOW 0x100
|
||||
#define ST_NO_RECT 0x200 // this style works for CT_STATIC in conjunction with ST_MULTI
|
||||
#define ST_KEEP_ASPECT_RATIO 0x800
|
||||
|
||||
#define ST_TITLE ST_TITLE_BAR + ST_CENTER
|
||||
|
||||
// Slider styles
|
||||
#define SL_DIR 0x400
|
||||
#define SL_VERT 0
|
||||
#define SL_HORZ 0x400
|
||||
|
||||
#define SL_TEXTURES 0x10
|
||||
|
||||
// Listbox styles
|
||||
#define LB_TEXTURES 0x10
|
||||
#define LB_MULTI 0x20
|
||||
#define FontCSE "PuristaMedium"
|
||||
|
||||
class cse_gui_backgroundBase {
|
||||
type = CT_STATIC;
|
||||
idc = -1;
|
||||
style = ST_PICTURE;
|
||||
colorBackground[] = {0,0,0,0};
|
||||
colorText[] = {1, 1, 1, 1};
|
||||
font = FontCSE;
|
||||
text = "";
|
||||
sizeEx = 0.032;
|
||||
};
|
||||
class cse_gui_editBase
|
||||
{
|
||||
access = 0;
|
||||
type = 2;
|
||||
x = 0;
|
||||
y = 0;
|
||||
h = 0.04;
|
||||
w = 0.2;
|
||||
colorBackground[] =
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
};
|
||||
colorText[] =
|
||||
{
|
||||
0.95,
|
||||
0.95,
|
||||
0.95,
|
||||
1
|
||||
};
|
||||
colorSelection[] =
|
||||
{
|
||||
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])",
|
||||
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])",
|
||||
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",
|
||||
1
|
||||
};
|
||||
autocomplete = "";
|
||||
text = "";
|
||||
size = 0.2;
|
||||
style = "0x00 + 0x40";
|
||||
font = "PuristaMedium";
|
||||
shadow = 2;
|
||||
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
|
||||
colorDisabled[] =
|
||||
{
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0.25
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
class cse_gui_buttonBase {
|
||||
idc = -1;
|
||||
type = 16;
|
||||
style = ST_LEFT;
|
||||
text = "";
|
||||
action = "";
|
||||
x = 0.0;
|
||||
y = 0.0;
|
||||
w = 0.25;
|
||||
h = 0.04;
|
||||
size = 0.03921;
|
||||
sizeEx = 0.03921;
|
||||
color[] = {1.0, 1.0, 1.0, 1};
|
||||
color2[] = {1.0, 1.0, 1.0, 1};
|
||||
/*colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.5])"};
|
||||
colorbackground2[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.4};
|
||||
colorDisabled[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.25};
|
||||
colorFocused[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])", 0.8};
|
||||
colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.8};
|
||||
*/
|
||||
|
||||
colorBackground[] = {1,1,1,0.95};
|
||||
colorbackground2[] = {1,1,1,0.95};
|
||||
colorDisabled[] = {1,1,1,0.6};
|
||||
colorFocused[] = {1,1,1,1};
|
||||
colorBackgroundFocused[] = {1,1,1,1};
|
||||
periodFocus = 1.2;
|
||||
periodOver = 0.8;
|
||||
default = false;
|
||||
class HitZone {
|
||||
left = 0.00;
|
||||
top = 0.00;
|
||||
right = 0.00;
|
||||
bottom = 0.00;
|
||||
};
|
||||
|
||||
class ShortcutPos {
|
||||
left = 0.00;
|
||||
top = 0.00;
|
||||
w = 0.00;
|
||||
h = 0.00;
|
||||
};
|
||||
|
||||
class TextPos {
|
||||
left = 0.002;
|
||||
top = 0.0004;
|
||||
right = 0.0;
|
||||
bottom = 0.00;
|
||||
};
|
||||
textureNoShortcut = "";
|
||||
animTextureNormal = "cse\cse_gui\data\buttonNormal_gradient_top.paa";
|
||||
animTextureDisabled = "cse\cse_gui\data\buttonDisabled_gradient.paa";
|
||||
animTextureOver = "cse\cse_gui\data\buttonNormal_gradient_top.paa";
|
||||
animTextureFocused = "cse\cse_gui\data\buttonNormal_gradient_top.paa";
|
||||
animTexturePressed = "cse\cse_gui\data\buttonNormal_gradient_top.paa";
|
||||
animTextureDefault = "cse\cse_gui\data\buttonNormal_gradient_top.paa";
|
||||
period = 0.5;
|
||||
font = FontCSE;
|
||||
soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1};
|
||||
soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.0,0};
|
||||
soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.07,1};
|
||||
soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1};
|
||||
class Attributes {
|
||||
font = FontCSE;
|
||||
color = "#E5E5E5";
|
||||
align = "center";
|
||||
shadow = "true";
|
||||
};
|
||||
class AttributesImage {
|
||||
font = FontCSE;
|
||||
color = "#E5E5E5";
|
||||
align = "left";
|
||||
shadow = "true";
|
||||
};
|
||||
};
|
||||
|
||||
class cse_gui_RscProgress {
|
||||
type = 8;
|
||||
style = 0;
|
||||
colorFrame[] = {1,1,1,0.7};
|
||||
colorBar[] = {1,1,1,0.7};
|
||||
texture = "#(argb,8,8,3)color(1,1,1,0.7)";
|
||||
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
y = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
|
||||
w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "0.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
};
|
||||
|
||||
|
||||
class cse_gui_staticBase {
|
||||
idc = -1;
|
||||
type = CT_STATIC;
|
||||
x = 0.0;
|
||||
y = 0.0;
|
||||
w = 0.183825;
|
||||
h = 0.104575;
|
||||
style = ST_LEFT;
|
||||
font = FontCSE;
|
||||
sizeEx = 0.03921;
|
||||
colorText[] = {0.95, 0.95, 0.95, 1.0};
|
||||
colorBackground[] = {0, 0, 0, 0};
|
||||
text = "";
|
||||
};
|
||||
|
||||
class RscListBox;
|
||||
class cse_gui_listBoxBase : RscListBox{
|
||||
type = CT_LISTBOX;
|
||||
style = ST_MULTI;
|
||||
font = FontCSE;
|
||||
sizeEx = 0.03921;
|
||||
color[] = {1, 1, 1, 1};
|
||||
colorText[] = {0.543, 0.5742, 0.4102, 1.0};
|
||||
colorScrollbar[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelect[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelect2[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelectBackground[] = {0, 0, 0, 1};
|
||||
colorSelectBackground2[] = {0.543, 0.5742, 0.4102, 1.0};
|
||||
colorDisabled[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.25};
|
||||
period = 1.2;
|
||||
rowHeight = 0.03;
|
||||
colorBackground[] = {0, 0, 0, 1};
|
||||
maxHistoryDelay = 1.0;
|
||||
autoScrollSpeed = -1;
|
||||
autoScrollDelay = 5;
|
||||
autoScrollRewind = 0;
|
||||
soundSelect[] = {"",0.1,1};
|
||||
soundExpand[] = {"",0.1,1};
|
||||
soundCollapse[] = {"",0.1,1};
|
||||
class ListScrollBar {
|
||||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
|
||||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
|
||||
autoScrollDelay = 5;
|
||||
autoScrollEnabled = 0;
|
||||
autoScrollRewind = 0;
|
||||
autoScrollSpeed = -1;
|
||||
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
|
||||
color[] = {1,1,1,0.6};
|
||||
colorActive[] = {1,1,1,1};
|
||||
colorDisabled[] = {1,1,1,0.3};
|
||||
height = 0;
|
||||
scrollSpeed = 0.06;
|
||||
shadow = 0;
|
||||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
|
||||
width = 0;
|
||||
};
|
||||
class ScrollBar {
|
||||
color[] = {1, 1, 1, 0.6};
|
||||
colorActive[] = {1, 1, 1, 1};
|
||||
colorDisabled[] = {1, 1, 1, 0.3};
|
||||
thumb = "";
|
||||
arrowFull = "";
|
||||
arrowEmpty = "";
|
||||
border = "";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class cse_gui_listNBox {
|
||||
access = 0;
|
||||
type = CT_LISTNBOX;// 102;
|
||||
style =ST_MULTI;
|
||||
w = 0.4;
|
||||
h = 0.4;
|
||||
font = FontCSE;
|
||||
sizeEx = 0.031;
|
||||
|
||||
autoScrollSpeed = -1;
|
||||
autoScrollDelay = 5;
|
||||
autoScrollRewind = 0;
|
||||
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
columns[] = {0.0};
|
||||
color[] = {1, 1, 1, 1};
|
||||
|
||||
rowHeight = 0.03;
|
||||
colorBackground[] = {0, 0, 0, 0.2};
|
||||
colorText[] = {1,1, 1, 1.0};
|
||||
colorScrollbar[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelect[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelect2[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelectBackground[] = {0, 0, 0, 0.0};
|
||||
colorSelectBackground2[] = {0.0, 0.0, 0.0, 0.5};
|
||||
colorActive[] = {0,0,0,1};
|
||||
colorDisabled[] = {0,0,0,0.3};
|
||||
rows = 1;
|
||||
|
||||
drawSideArrows = 0;
|
||||
idcLeft = -1;
|
||||
idcRight = -1;
|
||||
maxHistoryDelay = 1;
|
||||
soundSelect[] = {"", 0.1, 1};
|
||||
period = 1;
|
||||
shadow = 2;
|
||||
class ScrollBar {
|
||||
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
border = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
color[] = {1,1,1,0.6};
|
||||
colorActive[] = {1,1,1,1};
|
||||
colorDisabled[] = {1,1,1,0.3};
|
||||
thumb = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
};
|
||||
class ListScrollBar {
|
||||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
|
||||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
|
||||
autoScrollDelay = 5;
|
||||
autoScrollEnabled = 0;
|
||||
autoScrollRewind = 0;
|
||||
autoScrollSpeed = -1;
|
||||
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
|
||||
color[] = {1,1,1,0.6};
|
||||
colorActive[] = {1,1,1,1};
|
||||
colorDisabled[] = {1,1,1,0.3};
|
||||
height = 0;
|
||||
scrollSpeed = 0.06;
|
||||
shadow = 0;
|
||||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
|
||||
width = 0;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class RscCombo;
|
||||
class cse_gui_comboBoxBase: RscCombo {
|
||||
idc = -1;
|
||||
type = 4;
|
||||
style = "0x10 + 0x200";
|
||||
x = 0;
|
||||
y = 0;
|
||||
w = 0.3;
|
||||
h = 0.035;
|
||||
color[] = {0,0,0,0.6};
|
||||
colorActive[] = {1,0,0,1};
|
||||
colorBackground[] = {0,0,0,1};
|
||||
colorDisabled[] = {1,1,1,0.25};
|
||||
colorScrollbar[] = {1,0,0,1};
|
||||
colorSelect[] = {0,0,0,1};
|
||||
colorSelectBackground[] = {1,1,1,0.7};
|
||||
colorText[] = {1,1,1,1};
|
||||
|
||||
arrowEmpty = "";
|
||||
arrowFull = "";
|
||||
wholeHeight = 0.45;
|
||||
font = FontCSE;
|
||||
sizeEx = 0.031;
|
||||
soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect",0.1,1};
|
||||
soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1};
|
||||
soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1};
|
||||
maxHistoryDelay = 1.0;
|
||||
class ScrollBar
|
||||
{
|
||||
color[] = {0.3,0.3,0.3,0.6};
|
||||
colorActive[] = {0.3,0.3,0.3,1};
|
||||
colorDisabled[] = {0.3,0.3,0.3,0.3};
|
||||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
|
||||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
|
||||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
|
||||
border = "";
|
||||
};
|
||||
class ComboScrollBar {
|
||||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
|
||||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
|
||||
autoScrollDelay = 5;
|
||||
autoScrollEnabled = 0;
|
||||
autoScrollRewind = 0;
|
||||
autoScrollSpeed = -1;
|
||||
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
|
||||
color[] = {0.3,0.3,0.3,0.6};
|
||||
colorActive[] = {0.3,0.3,0.3,1};
|
||||
colorDisabled[] = {0.3,0.3,0.3,0.3};
|
||||
height = 0;
|
||||
scrollSpeed = 0.06;
|
||||
shadow = 0;
|
||||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
|
||||
width = 0;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
class cse_gui_mapBase {
|
||||
moveOnEdges = 1;
|
||||
x = "SafeZoneXAbs";
|
||||
y = "SafeZoneY + 1.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
w = "SafeZoneWAbs";
|
||||
h = "SafeZoneH - 1.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
type = 100; // Use 100 to hide markers
|
||||
style = 48;
|
||||
shadow = 0;
|
||||
|
||||
ptsPerSquareSea = 5;
|
||||
ptsPerSquareTxt = 3;
|
||||
ptsPerSquareCLn = 10;
|
||||
ptsPerSquareExp = 10;
|
||||
ptsPerSquareCost = 10;
|
||||
ptsPerSquareFor = 9;
|
||||
ptsPerSquareForEdge = 9;
|
||||
ptsPerSquareRoad = 6;
|
||||
ptsPerSquareObj = 9;
|
||||
showCountourInterval = 0;
|
||||
scaleMin = 0.001;
|
||||
scaleMax = 1.0;
|
||||
scaleDefault = 0.16;
|
||||
maxSatelliteAlpha = 0.85;
|
||||
alphaFadeStartScale = 0.35;
|
||||
alphaFadeEndScale = 0.4;
|
||||
colorBackground[] = {0.969,0.957,0.949,1.0};
|
||||
colorSea[] = {0.467,0.631,0.851,0.5};
|
||||
colorForest[] = {0.624,0.78,0.388,0.5};
|
||||
colorForestBorder[] = {0.0,0.0,0.0,0.0};
|
||||
colorRocks[] = {0.0,0.0,0.0,0.3};
|
||||
colorRocksBorder[] = {0.0,0.0,0.0,0.0};
|
||||
colorLevels[] = {0.286,0.177,0.094,0.5};
|
||||
colorMainCountlines[] = {0.572,0.354,0.188,0.5};
|
||||
colorCountlines[] = {0.572,0.354,0.188,0.25};
|
||||
colorMainCountlinesWater[] = {0.491,0.577,0.702,0.6};
|
||||
colorCountlinesWater[] = {0.491,0.577,0.702,0.3};
|
||||
colorPowerLines[] = {0.1,0.1,0.1,1.0};
|
||||
colorRailWay[] = {0.8,0.2,0.0,1.0};
|
||||
colorNames[] = {0.1,0.1,0.1,0.9};
|
||||
colorInactive[] = {1.0,1.0,1.0,0.5};
|
||||
colorOutside[] = {0.0,0.0,0.0,1.0};
|
||||
colorTracks[] = {0.84,0.76,0.65,0.15};
|
||||
colorTracksFill[] = {0.84,0.76,0.65,1.0};
|
||||
colorRoads[] = {0.7,0.7,0.7,1.0};
|
||||
colorRoadsFill[] = {1.0,1.0,1.0,1.0};
|
||||
colorMainRoads[] = {0.9,0.5,0.3,1.0};
|
||||
colorMainRoadsFill[] = {1.0,0.6,0.4,1.0};
|
||||
colorGrid[] = {0.1,0.1,0.1,0.6};
|
||||
colorGridMap[] = {0.1,0.1,0.1,0.6};
|
||||
colorText[] = {1, 1, 1, 0.85};
|
||||
font = "PuristaMedium";
|
||||
sizeEx = 0.0270000;
|
||||
stickX[] = {0.20, {"Gamma", 1.00, 1.50} };
|
||||
stickY[] = {0.20, {"Gamma", 1.00, 1.50} };
|
||||
onMouseButtonClick = "";
|
||||
onMouseButtonDblClick = "";
|
||||
|
||||
fontLabel = "PuristaMedium";
|
||||
sizeExLabel = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
fontGrid = "TahomaB";
|
||||
sizeExGrid = 0.02;
|
||||
fontUnits = "TahomaB";
|
||||
sizeExUnits = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
fontNames = "PuristaMedium";
|
||||
sizeExNames = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8) * 2";
|
||||
fontInfo = "PuristaMedium";
|
||||
sizeExInfo = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
fontLevel = "TahomaB";
|
||||
sizeExLevel = 0.02;
|
||||
text = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
class ActiveMarker {
|
||||
color[] = {0.30, 0.10, 0.90, 1.00};
|
||||
size = 50;
|
||||
};
|
||||
class Legend
|
||||
{
|
||||
x = "SafeZoneX + ( ((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
y = "SafeZoneY + safezoneH - 4.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "3.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
font = "PuristaMedium";
|
||||
sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
colorBackground[] = {1,1,1,0.5};
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Task
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\taskIcon_CA.paa";
|
||||
iconCreated = "\A3\ui_f\data\map\mapcontrol\taskIconCreated_CA.paa";
|
||||
iconCanceled = "\A3\ui_f\data\map\mapcontrol\taskIconCanceled_CA.paa";
|
||||
iconDone = "\A3\ui_f\data\map\mapcontrol\taskIconDone_CA.paa";
|
||||
iconFailed = "\A3\ui_f\data\map\mapcontrol\taskIconFailed_CA.paa";
|
||||
color[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])"};
|
||||
colorCreated[] = {1,1,1,1};
|
||||
colorCanceled[] = {0.7,0.7,0.7,1};
|
||||
colorDone[] = {0.7,1,0.3,1};
|
||||
colorFailed[] = {1,0.3,0.2,1};
|
||||
size = 27;
|
||||
importance = 1;
|
||||
coefMin = 1;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Waypoint
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa";
|
||||
color[] = {0,0,0,1};
|
||||
size = 20;
|
||||
importance = "1.2 * 16 * 0.05";
|
||||
coefMin = 0.900000;
|
||||
coefMax = 4;
|
||||
};
|
||||
class WaypointCompleted
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\waypointCompleted_ca.paa";
|
||||
color[] = {0,0,0,1};
|
||||
size = 20;
|
||||
importance = "1.2 * 16 * 0.05";
|
||||
coefMin = 0.900000;
|
||||
coefMax = 4;
|
||||
};
|
||||
class CustomMark
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\custommark_ca.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 1;
|
||||
coefMax = 1;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Command
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa";
|
||||
size = 18;
|
||||
importance = 1;
|
||||
coefMin = 1;
|
||||
coefMax = 1;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class Bush
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa";
|
||||
color[] = {0.45,0.64,0.33,0.4};
|
||||
size = "14/2";
|
||||
importance = "0.2 * 14 * 0.05 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Rock
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\rock_ca.paa";
|
||||
color[] = {0.1,0.1,0.1,0.8};
|
||||
size = 12;
|
||||
importance = "0.5 * 12 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class SmallTree
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa";
|
||||
color[] = {0.45,0.64,0.33,0.4};
|
||||
size = 12;
|
||||
importance = "0.6 * 12 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Tree
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa";
|
||||
color[] = {0.45,0.64,0.33,0.4};
|
||||
size = 12;
|
||||
importance = "0.9 * 16 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class busstop
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\busstop_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class fuelstation
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\fuelstation_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class hospital
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\hospital_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class church
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\church_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class lighthouse
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\lighthouse_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class power
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\power_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class powersolar
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\powersolar_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class powerwave
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\powerwave_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class powerwind
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\powerwind_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class quay
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\quay_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class shipwreck
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\shipwreck_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class transmitter
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\transmitter_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class watertower
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\watertower_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {1,1,1,1};
|
||||
};
|
||||
class Cross
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\Cross_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Chapel
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\Chapel_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1.0;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Bunker
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa";
|
||||
size = 14;
|
||||
importance = "1.5 * 14 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Fortress
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa";
|
||||
size = 16;
|
||||
importance = "2 * 16 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Fountain
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\fountain_ca.paa";
|
||||
size = 11;
|
||||
importance = "1 * 12 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Ruin
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\ruin_ca.paa";
|
||||
size = 16;
|
||||
importance = "1.2 * 16 * 0.05";
|
||||
coefMin = 1;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Stack
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\stack_ca.paa";
|
||||
size = 20;
|
||||
importance = "2 * 16 * 0.05";
|
||||
coefMin = 0.9;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class Tourism
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\tourism_ca.paa";
|
||||
size = 16;
|
||||
importance = "1 * 16 * 0.05";
|
||||
coefMin = 0.7;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
class ViewTower
|
||||
{
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\viewtower_ca.paa";
|
||||
size = 16;
|
||||
importance = "2.5 * 16 * 0.05";
|
||||
coefMin = 0.5;
|
||||
coefMax = 4;
|
||||
color[] = {0,0,0,1};
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
104
TO_MERGE/cse/f_states/functions.sqf
Normal file
104
TO_MERGE/cse/f_states/functions.sqf
Normal file
@ -0,0 +1,104 @@
|
||||
/*
|
||||
|
||||
*/
|
||||
|
||||
|
||||
cse_fnc_setCanSwitchAnim = {
|
||||
private ["_unit","_to","_return"];
|
||||
_unit = _this select 0;
|
||||
_to = _this select 1;
|
||||
_return = false;
|
||||
if (((typeName _to) == "BOOL")) then {
|
||||
_unit setvariable ["cse_canSwitchAnimation",_to,true];
|
||||
_return = true;
|
||||
};
|
||||
_return
|
||||
};
|
||||
cse_fnc_getCanSwitchAnim = {
|
||||
private ["_unit","_return"];
|
||||
_unit = _this select 0;
|
||||
_return = _unit getvariable "cse_canSwitchAnimation";
|
||||
_return
|
||||
};
|
||||
|
||||
cse_fnc_setCurrentMenu = {
|
||||
_unit = _this select 0;
|
||||
_to = _this select 1;
|
||||
_return = false;
|
||||
if ((typeName _to) == "STRING") then {
|
||||
_unit setvariable ["cse_currentMenu",_to,true];
|
||||
_return = true;
|
||||
};
|
||||
_return
|
||||
};
|
||||
cse_fnc_getCurrentMenu = {
|
||||
_unit = _this select 0;
|
||||
_return = _unit getvariable ["cse_currentMenu",""];
|
||||
_return
|
||||
};
|
||||
|
||||
cse_fnc_changeBlurialVisionState = {
|
||||
private ["_unit","_to"];
|
||||
_unit = _this select 0;
|
||||
_to = _this select 1;
|
||||
_return = false;
|
||||
if (((typeName _to) == "SCALAR")) then {
|
||||
if (_to < -1) then {
|
||||
_to = -1;
|
||||
} else {
|
||||
if (_to > 1) then {
|
||||
_to = 1;
|
||||
};
|
||||
};
|
||||
_unit setvariable ["cse_blurialVisualState", [_unit] call cse_fnc_getBlurialVisionState + _to,false];
|
||||
_return = true;
|
||||
};
|
||||
_return
|
||||
};
|
||||
cse_fnc_getBlurialVisionState = {
|
||||
private ["_unit"];
|
||||
_unit = _this select 0;
|
||||
_return = _unit getvariable ["cse_blurialVisualState",0];
|
||||
_return
|
||||
};
|
||||
|
||||
// EVERYTHING BELOW HERE IS STILL WORK IN PROGRESS
|
||||
|
||||
cse_fnc_setMovementState = {
|
||||
private ["_unit","_to"];
|
||||
_unit = _this select 0;
|
||||
_to = _this select 1;
|
||||
_return = false;
|
||||
if (((typeName _to) == "SCALAR")) then {
|
||||
_unit setvariable ["cse_movementState",_to,false];
|
||||
_return = true;
|
||||
};
|
||||
_return
|
||||
};
|
||||
cse_fnc_getMovementState = {
|
||||
private ["_unit"];
|
||||
_unit = _this select 0;
|
||||
_return = _unit getvariable ["cse_movementState",0];
|
||||
_return
|
||||
};
|
||||
|
||||
cse_fnc_setHearingState = {
|
||||
private ["_unit","_to"];
|
||||
_unit = _this select 0;
|
||||
_to = _this select 1;
|
||||
_return = false;
|
||||
if (((typeName _to) == "SCALAR")) then {
|
||||
_unit setvariable ["cse_hearingState",_to,false];
|
||||
_return = true;
|
||||
};
|
||||
_return
|
||||
};
|
||||
cse_fnc_getHearingState = {
|
||||
private ["_unit"];
|
||||
_unit = _this select 0;
|
||||
_return = _unit getvariable ["cse_hearingState",0];
|
||||
_return
|
||||
};
|
||||
|
||||
|
||||
|
37
TO_MERGE/cse/f_states/init.sqf
Normal file
37
TO_MERGE/cse/f_states/init.sqf
Normal file
@ -0,0 +1,37 @@
|
||||
/*
|
||||
|
||||
*/
|
||||
|
||||
call compileFinal preprocessFile "cse\cse_f_states\functions.sqf";
|
||||
|
||||
if (!isDedicated) then {
|
||||
45 cutRsc ["RscCSEScreenEffectsBlack","PLAIN"];
|
||||
};
|
||||
|
||||
if (isServer) then {
|
||||
CSE_LOGIC_OBJECT = (createGroup sideLogic) createUnit ["logic", [1,1,1], [], 0, "FORM"];
|
||||
publicVariable "CSE_LOGIC_OBJECT";
|
||||
};
|
||||
|
||||
|
||||
["cse_isDead",false,true,"cse"] call cse_fnc_defineVariable;
|
||||
["cse_isDeadPlayer", false, true, "cse"] call cse_fnc_defineVariable;
|
||||
["cse_state_arrested",false,true,"cse"] call cse_fnc_defineVariable;
|
||||
["cse_state_unconscious",false,true,"cse"] call cse_fnc_defineVariable;
|
||||
["CSE_ENABLE_REVIVE_SETDEAD_F",0,false,"cse"] call cse_fnc_defineVariable;
|
||||
["cse_carriedBy",objNull,false,"cse"] call cse_fnc_defineVariable;
|
||||
|
||||
if (isnil "CSE_MARKED_FOR_GABAGE_COLLECTION") then {
|
||||
CSE_MARKED_FOR_GABAGE_COLLECTION = [];
|
||||
};
|
||||
|
||||
[] spawn {
|
||||
waituntil {
|
||||
{
|
||||
deleteVehicle _x;
|
||||
false;
|
||||
}count CSE_MARKED_FOR_GABAGE_COLLECTION;
|
||||
CSE_MARKED_FOR_GABAGE_COLLECTION = CSE_MARKED_FOR_GABAGE_COLLECTION - [objNull];
|
||||
false;
|
||||
};
|
||||
};
|
@ -0,0 +1,24 @@
|
||||
/**
|
||||
* fn_cleanUpCopyOfBody_f.sqf
|
||||
* @Descr: Called from a custom eventhandler to ensure that any copies of bodies are cleaned up.
|
||||
* @Author: Glowbal
|
||||
*
|
||||
* @Arguments: [unit OBJECT]
|
||||
* @Return: BOOL
|
||||
* @PublicAPI: true
|
||||
*/
|
||||
|
||||
private ["_unit", "_copy"];
|
||||
_unit = _this select 0;
|
||||
|
||||
_copy = _unit getvariable "cse_copyOfBody_f";
|
||||
if (isnil "_copy") exitwith {false};
|
||||
[format["Cleaning up a copy of Body: %1 %2", _unit, _copy]] call cse_fnc_debug;
|
||||
// lets clean it up
|
||||
_unit setvariable ["cse_originalCopy_f", nil, true];
|
||||
_unit setvariable ["cse_copyOfBody_f", nil, true];
|
||||
if (!isNull _copy) then {
|
||||
deleteVehicle _copy;
|
||||
};
|
||||
|
||||
true;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user