Merge pull request #3747 from acemod/armake

Changes for Linux development and armake
This commit is contained in:
Thomas Kooi 2018-11-18 21:13:42 +01:00 committed by GitHub
commit 336c9ec31b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 1259 additions and 145 deletions

View File

@ -10,3 +10,6 @@ trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[Makefile]
indent_style = tab

3
.gitignore vendored
View File

@ -1,5 +1,8 @@
@*
*.zip
release/*
tools/temp
tools/armake.exe
*.cache
*.pbo
texHeaders.bin

91
Makefile Normal file
View File

@ -0,0 +1,91 @@
VERSION = $(shell cat "VERSION")
PREFIX = ace
BIN = @ace
ZIP = ace3
FLAGS = -i include -w unquoted-string -w redefinition-wo-undef
VERSION_FILES = README.md docs/README_DE.md docs/README_PL.md mod.cpp
MAJOR = $(word 1, $(subst ., ,$(VERSION)))
MINOR = $(word 2, $(subst ., ,$(VERSION)))
PATCH = $(word 3, $(subst ., ,$(VERSION)))
BUILD = $(word 4, $(subst ., ,$(VERSION)))
VERSION_S = $(MAJOR).$(MINOR).$(PATCH)
GIT_HASH = $(shell git log -1 --pretty=format:"%H" | head -c 8)
ifeq ($(OS), Windows_NT)
ARMAKE = ./tools/armake.exe # Downloaded via make.ps (rename armake_wXY.exe otherwise)
else
ARMAKE = armake
endif
$(BIN)/addons/$(PREFIX)_%.pbo: addons/%
@mkdir -p $(BIN)/addons
@echo " PBO $@"
@${ARMAKE} build ${FLAGS} -f -e "version=$(GIT_HASH)" $< $@
$(BIN)/optionals/$(PREFIX)_%.pbo: optionals/%
@mkdir -p $(BIN)/optionals
@echo " PBO $@"
@${ARMAKE} build ${FLAGS} -f -e "version=$(GIT_HASH)" $< $@
# Shortcut for building single addons (eg. "make <component>.pbo")
%.pbo:
"$(MAKE)" $(MAKEFLAGS) $(patsubst %, $(BIN)/addons/$(PREFIX)_%, $@)
all: $(patsubst addons/%, $(BIN)/addons/$(PREFIX)_%.pbo, $(wildcard addons/*)) \
$(patsubst optionals/%, $(BIN)/optionals/$(PREFIX)_%.pbo, $(wildcard optionals/*))
filepatching:
"$(MAKE)" $(MAKEFLAGS) FLAGS="-w unquoted-string -p"
$(BIN)/keys/%.biprivatekey:
@mkdir -p $(BIN)/keys
@echo " KEY $@"
@${ARMAKE} keygen -f $(patsubst $(BIN)/keys/%.biprivatekey, $(BIN)/keys/%, $@)
$(BIN)/addons/$(PREFIX)_%.pbo.$(PREFIX)_$(VERSION)-$(GIT_HASH).bisign: $(BIN)/addons/$(PREFIX)_%.pbo $(BIN)/keys/$(PREFIX)_$(VERSION).biprivatekey
@echo " SIG $@"
@${ARMAKE} sign -f -s $@ $(BIN)/keys/$(PREFIX)_$(VERSION).biprivatekey $<
$(BIN)/optionals/$(PREFIX)_%.pbo.$(PREFIX)_$(VERSION)-$(GIT_HASH).bisign: $(BIN)/optionals/$(PREFIX)_%.pbo $(BIN)/keys/$(PREFIX)_$(VERSION).biprivatekey
@echo " SIG $@"
@${ARMAKE} sign -f -s $@ $(BIN)/keys/$(PREFIX)_$(VERSION).biprivatekey $<
signatures: $(patsubst addons/%, $(BIN)/addons/$(PREFIX)_%.pbo.$(PREFIX)_$(VERSION)-$(GIT_HASH).bisign, $(wildcard addons/*)) \
$(patsubst optionals/%, $(BIN)/optionals/$(PREFIX)_%.pbo.$(PREFIX)_$(VERSION)-$(GIT_HASH).bisign, $(wildcard optionals/*))
extensions: $(wildcard extensions/*/*)
cd extensions/build && cmake .. && make
find ./extensions/build/ \( -name "*.so" -o -name "*.dll" \) -exec cp {} ./ \;
extensions-win64: $(wildcard extensions/*/*)
cd extensions/build && CXX=$(eval $(which g++-w64-mingw-i686)) cmake .. && make
version:
@echo " VER $(VERSION)"
$(shell sed -i -r -s 's/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/$(VERSION)/g' $(VERSION_FILES))
$(shell sed -i -r -s 's/[0-9]+\.[0-9]+\.[0-9]+/$(VERSION_S)/g' $(VERSION_FILES))
@echo -e "#define MAJOR $(MAJOR)\n#define MINOR $(MINOR)\n#define PATCHLVL $(PATCH)\n#define BUILD $(BUILD)" > "addons/main/script_version.hpp"
$(shell sed -i -r -s 's/ACE_VERSION_MAJOR [0-9]+/ACE_VERSION_MAJOR $(MAJOR)/g' extensions/CMakeLists.txt)
$(shell sed -i -r -s 's/ACE_VERSION_MINOR [0-9]+/ACE_VERSION_MINOR $(MINOR)/g' extensions/CMakeLists.txt)
$(shell sed -i -r -s 's/ACE_VERSION_REVISION [0-9]+/ACE_VERSION_REVISION $(PATCH)/g' extensions/CMakeLists.txt)
commit:
@echo " GIT commit release preparation"
@git add -A
@git diff-index --quiet HEAD || git commit -am "Prepare release $(VERSION_S)" -q
push: commit
@echo " GIT push release preparation"
@git push -q
release: clean version commit
@"$(MAKE)" $(MAKEFLAGS) signatures
@echo " ZIP $(ZIP)_$(VERSION_S).zip"
@cp *.dll mod.cpp README.md docs/README_DE.md docs/README_PL.md AUTHORS.txt LICENSE logo_ace3_ca.paa meta.cpp $(BIN)
@zip -qr $(ZIP)_$(VERSION_S).zip $(BIN)
clean:
rm -rf $(BIN) $(ZIP)_*.zip
.PHONY: all filepatching signatures extensions extensions-win64 version commit push release clean

1
VERSION Normal file
View File

@ -0,0 +1 @@
3.12.3.36

View File

@ -144,8 +144,8 @@ class GVAR(cam_dialog) {
idc = -1;
type = 0;
style = 48;
colorText[ ]={ 1,1,1,1 };
colorBackground[ ]={ 0.4,0.4,0.4,1 };
colorText[]={ 1,1,1,1 };
colorBackground[]={ 0.4,0.4,0.4,1 };
font = "RobotoCondensed";
sizeEx = 0.021;
lineSpacing = 1;

View File

@ -3,4 +3,4 @@ class CfgActions {
class Heal: None {
show = 0;
};
};
};

View File

@ -23,9 +23,9 @@ class CfgPatches {
#include "CfgEden.hpp"
#include "ACE_Medical_Treatments.hpp"
#include "ACE_Settings.hpp"
#include "UI\CfgInGameUI.hpp"
#include "UI\RscTitles.hpp"
#include "UI\triagecard.hpp"
#include "ui\CfgInGameUI.hpp"
#include "ui\RscTitles.hpp"
#include "ui\triagecard.hpp"
class ACE_newEvents {
medical_onUnconscious = "ace_unconscious";

View File

@ -4,13 +4,13 @@
displayName = CSTRING(Action_UnLock); \
condition = QUOTE(([ARR_2(_player, _target)] call FUNC(hasKeyForVehicle)) && {(locked _target) in [ARR_2(2,3)]}); \
statement = QUOTE([ARR_3(QUOTE(QGVAR(setVehicleLock)), [ARR_2(_target,false)], [_target])] call CBA_fnc_targetEvent); \
icon = QPATHTOF(UI\key_menuIcon_ca.paa); \
icon = QPATHTOF(ui\key_menuIcon_ca.paa); \
}; \
class ACE_lockVehicle { \
displayName = CSTRING(Action_Lock); \
condition = QUOTE(([ARR_2(_player, _target)] call FUNC(hasKeyForVehicle)) && {(locked _target) in [ARR_2(0,1)]}); \
statement = QUOTE([ARR_3(QUOTE(QGVAR(setVehicleLock)), [ARR_2(_target,true)], [_target])] call CBA_fnc_targetEvent); \
icon = QPATHTOF(UI\key_menuIcon_ca.paa); \
icon = QPATHTOF(ui\key_menuIcon_ca.paa); \
}; \
class ACE_lockpickVehicle { \
displayName = CSTRING(Action_Lockpick); \
@ -26,7 +26,7 @@
condition = QUOTE(([ARR_2(_player, _target)] call FUNC(hasKeyForVehicle)) && {(locked _target) in [ARR_2(2,3)]}); \
statement = QUOTE([ARR_3(QUOTE(QGVAR(setVehicleLock)), [ARR_2(_target,false)], [_target])] call CBA_fnc_targetEvent); \
exceptions[] = {"isNotSwimming"}; \
icon = QPATHTOF(UI\key_menuIcon_ca.paa); \
icon = QPATHTOF(ui\key_menuIcon_ca.paa); \
}; \
class ACE_lockVehicle { \
displayName = CSTRING(Action_Lock); \
@ -34,7 +34,7 @@
condition = QUOTE(([ARR_2(_player, _target)] call FUNC(hasKeyForVehicle)) && {(locked _target) in [ARR_2(0,1)]}); \
statement = QUOTE([ARR_3(QUOTE(QGVAR(setVehicleLock)), [ARR_2(_target,true)], [_target])] call CBA_fnc_targetEvent); \
exceptions[] = {"isNotSwimming"}; \
icon = QPATHTOF(UI\key_menuIcon_ca.paa); \
icon = QPATHTOF(ui\key_menuIcon_ca.paa); \
}; \
class ACE_lockpickVehicle { \
displayName = CSTRING(Action_Lockpick); \
@ -82,7 +82,7 @@ class CfgVehicles {
scope = 1;
isGlobal = 1;
isSingular = 1;
icon = QPATHTOF(UI\Icon_Module_VehicleLock_ca.paa);
icon = QPATHTOF(ui\Icon_Module_VehicleLock_ca.paa);
functionPriority = 0;
class Arguments {
class LockVehicleInventory {
@ -120,7 +120,7 @@ class CfgVehicles {
function = QFUNC(moduleSync);
scope = 2;
isGlobal = 0;
icon = QPATHTOF(UI\Icon_Module_VehicleKey_ca.paa);
icon = QPATHTOF(ui\Icon_Module_VehicleKey_ca.paa);
functionPriority = 0;
class Arguments {};
class ModuleDescription: ModuleDescription {

View File

@ -6,11 +6,15 @@ jobs:
steps:
- checkout
- run:
name: Validate SQF And Config style
name: Validate SQF and Config style
command: python tools/sqf_validator.py && python tools/config_style_checker.py
- run:
name: Build
name: Version
command: armake --version
- run:
name: Build
command: |
make -j 4
- deploy:
name: Update documentation and translation statistics
command: |

View File

@ -90,7 +90,7 @@ endif()
string(TIMESTAMP ACE_BUILDSTAMP "%Y-%m-%dT%H:%M:%SZ")
set(ACE_VERSION_MAJOR 3)
set(ACE_VERSION_MINOR 12)
set(ACE_VERSION_REVISION 0)
set(ACE_VERSION_REVISION 3)
EXECUTE_PROCESS(COMMAND git rev-parse --verify HEAD
OUTPUT_VARIABLE T_ACE_VERSION_BUILD
OUTPUT_STRIP_TRAILING_WHITESPACE

View File

@ -0,0 +1,3 @@
surfaceInfo="A3\data_f\Penetration\cloth.bisurf";
diffuse[]={0.75,0.80000001,0.30000001,1};
ambient[]={0.75,0.80000001,0.30000001,1};

View File

@ -0,0 +1,9 @@
surfaceInfo="A3\data_f\Penetration\default.bisurf";
ambient[]={0.48699999,0.32800001,0.249,1};
diffuse[]={0.48699999,0.32800001,0.249,1};
forcedDiffuse[]={0,0,0,0};
emmisive[]={0,0,0,1};
specular[]={0,0,0,1};
specularPower=1;
PixelShaderID="Normal";
VertexShaderID="Basic";

View File

@ -0,0 +1,9 @@
surfaceInfo="A3\data_f\Penetration\metal.bisurf";
ambient[]={0.69999999,0.80000001,0.77999997,1};
diffuse[]={0.69999999,0.80000001,0.77999997,1};
forcedDiffuse[]={0,0,0,0};
emmisive[]={0,0,0,1};
specular[]={0,0,0,1};
specularPower=1;
PixelShaderID="Normal";
VertexShaderID="Basic";

View File

@ -0,0 +1,9 @@
surfaceInfo="A3\data_f\Penetration\metal_plate.bisurf";
ambient[]={0.69999999,0.80000001,0.77999997,1};
diffuse[]={0.69999999,0.80000001,0.77999997,1};
forcedDiffuse[]={0,0,0,0};
emmisive[]={0,0,0,1};
specular[]={0,0,0,1};
specularPower=1;
PixelShaderID="Normal";
VertexShaderID="Basic";

View File

@ -0,0 +1,3 @@
surfaceInfo="A3\data_f\Penetration\plastic.bisurf";
diffuse[]={0.89999998,0.80000001,0.60000002,1};
ambient[]={0.89999998,0.80000001,0.60000002,1};

View File

@ -0,0 +1,3 @@
surfaceInfo="A3\data_f\Penetration\tyre.bisurf";
diffuse[]={0.1,0.1,0.1,1};
ambient[]={0.1,0.1,0.1,1};

View File

@ -0,0 +1,9 @@
surfaceInfo="A3\data_f\Penetration\wood.bisurf";
ambient[]={0.5,0.25,0,1};
diffuse[]={0.5,0.25,0,1};
forcedDiffuse[]={0,0,0,0};
emmisive[]={0,0,0,1};
specular[]={0,0,0,1};
specularPower=1;
PixelShaderID="Normal";
VertexShaderID="Basic";

View File

@ -0,0 +1,309 @@
///////////////////////////////////////////////////////////////////////////
/// GUI
///////////////////////////////////////////////////////////////////////////
//--- Background color with defaults (not multipliable)
#define GUI_BCG_RGB_R "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])"
#define GUI_BCG_RGB_G "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])"
#define GUI_BCG_RGB_B "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])"
#define GUI_BCG_ALPHA "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"
#define GUI_BCG_RGB GUI_BCG_RGB_R, GUI_BCG_RGB_G, GUI_BCG_RGB_B
#define GUI_BCG_COLOR {GUI_BCG_RGB,GUI_BCG_ALPHA}
#define GUI_BCG_COLOR_SELECTED {GUI_BCG_RGB,0.5}
//--- TitleBar text color
#define GUI_TITLETEXT_RGB_R "(profilenamespace getvariable ['GUI_TITLETEXT_RGB_R',1.0])"
#define GUI_TITLETEXT_RGB_G "(profilenamespace getvariable ['GUI_TITLETEXT_RGB_G',1.0])"
#define GUI_TITLETEXT_RGB_B "(profilenamespace getvariable ['GUI_TITLETEXT_RGB_B',1.0])"
#define GUI_TITLETEXT_ALPHA "(profilenamespace getvariable ['GUI_TITLETEXT_RGB_A',0.6])"
#define GUI_TITLETEXT_COLOR {GUI_TITLETEXT_RGB_R, GUI_TITLETEXT_RGB_G, GUI_TITLETEXT_RGB_B, GUI_TITLETEXT_ALPHA}
//--- Background for wGUI displays
#define GUI_BCG_MENU_RGB 0, 0, 0
#define GUI_BCG_MENU {GUI_BCG_MENU_RGB, 0.7}
//--- Background for editor
#define GUI_BCG_EDITOR_RGB 0.1, 0.1, 0.1
#define GUI_BCG_EDITOR {GUI_BCG_EDITOR_RGB, 1}
//--- Medium background (obsolete; Dwarden's displays)
#define GUI_BCG_MEDIUM_RGB GUI_BCG_RGB
#define GUI_BCG_MEDIUM_ALPHA GUI_BCG_ALPHA
#define GUI_BCG_MEDIUM_COLOR {GUI_BCG_MEDIUM_RGB,GUI_BCG_MEDIUM_ALPHA}
//--- Dark background (HUD)
#define GUI_BCG_DARK_RGB GUI_BCG_RGB
#define GUI_BCG_DARK_ALPHA 0.85
#define GUI_BCG_DARK_COLOR {GUI_BCG_DARK_RGB,GUI_BCG_DARK_ALPHA}
#define GUI_BCG_DARK_TRANSPARENT {GUI_BCG_DARK_RGB,GUI_BCG_DARK_ALPHA / 2}
//--- Active color (inversed to selected color)
#define GUI_BCG_ACTIVE_RGB 1, 1, 1
//--- Warning color (exit buttons)
#define GUI_BCG_ERROR_RGB 0.7, 0, 0
//--- Text color
#define GUI_TEXT_RGB 1, 1, 1
#define GUI_TEXT_ALPHA 1.0
#define GUI_TEXT_COLOR {GUI_TEXT_RGB,GUI_TEXT_ALPHA}
#define GUI_TEXT_SHADOW {0,0,0,0.5}
#define GUI_TEXT_HTML_COLOR "#ffffff"
#define GUI_TEXT_HTML_SHADOW "#80000000"
//--- List: text colors and background highlight
#define GUI_LIST_TEXT_COLOR {GUI_TEXT_RGB,0.8}
#define GUI_LIST_TEXT_COLOR_SELECTED {GUI_TEXT_RGB,1.0}
#define GUI_LIST_BCG_SELECTED {0,0,0,0.2}
//--- Tooltip colours
#define GUI_TOOLTIP_TEXT_COLOR {1, 1, 1, 1}
#define GUI_TOOLTIP_BOX_COLOR {1, 1, 1, 1}
#define GUI_TOOLTIP_SHADE_COLOR {0, 0, 0, 0.65}
///////////////////////////////////////////////////////////////////////////
/// iGUI
///////////////////////////////////////////////////////////////////////////
//--- IGUI Background color
#define IGUI_BCG_RGB_R "(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])"
#define IGUI_BCG_RGB_G "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])"
#define IGUI_BCG_RGB_B "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])"
#define IGUI_BCG_RGB_A "(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])"
#define IGUI_BCG_RGB IGUI_BCG_RGB_R, IGUI_BCG_RGB_G, IGUI_BCG_RGB_B
#define IGUI_BCG_COLOR {IGUI_BCG_RGB,IGUI_BCG_RGB_A}
//--- IGUI Text color
#define IGUI_TEXT_RGB_R "(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])"
#define IGUI_TEXT_RGB_G "(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])"
#define IGUI_TEXT_RGB_B "(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])"
#define IGUI_TEXT_RGB_A "(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])"
#define IGUI_TEXT_RGB IGUI_TEXT_RGB_R, IGUI_TEXT_RGB_G, IGUI_TEXT_RGB_B
#define IGUI_TEXT_COLOR {IGUI_TEXT_RGB,IGUI_TEXT_RGB_A}
//--- IGUI Warning color
#define IGUI_WARNING_RGB_R "(profilenamespace getvariable ['IGUI_WARNING_RGB_R',0.8])"
#define IGUI_WARNING_RGB_G "(profilenamespace getvariable ['IGUI_WARNING_RGB_G',0.5])"
#define IGUI_WARNING_RGB_B "(profilenamespace getvariable ['IGUI_WARNING_RGB_B',0.0])"
#define IGUI_WARNING_RGB_A "(profilenamespace getvariable ['IGUI_WARNING_RGB_A',0.8])"
#define IGUI_WARNING_RGB IGUI_WARNING_RGB_R, IGUI_WARNING_RGB_G, IGUI_WARNING_RGB_B
#define IGUI_WARNING_COLOR {IGUI_WARNING_RGB,IGUI_WARNING_RGB_A}
//--- IGUI Error color
#define IGUI_ERROR_RGB_R "(profilenamespace getvariable ['IGUI_ERROR_RGB_R',0.8])"
#define IGUI_ERROR_RGB_G "(profilenamespace getvariable ['IGUI_ERROR_RGB_G',0.0])"
#define IGUI_ERROR_RGB_B "(profilenamespace getvariable ['IGUI_ERROR_RGB_B',0.0])"
#define IGUI_ERROR_RGB_A "(profilenamespace getvariable ['IGUI_ERROR_RGB_A',1.0])"
#define IGUI_ERROR_RGB IGUI_ERROR_RGB_R, IGUI_ERROR_RGB_G, IGUI_ERROR_RGB_B
#define IGUI_ERROR_COLOR {IGUI_ERROR_RGB,IGUI_ERROR_RGB_A}
//--- HUD Text color (obsolete defines; ToDo: Replace with IGUI_TEXT_COLOR and IGUI_BCG_COLOR)
#define CA_UI_HUD IGUI_TEXT_COLOR
///////////////////////////////////////////////////////////////////////////
/// Sides
///////////////////////////////////////////////////////////////////////////
//--- BLUFOR
#define Map_BLUFOR_R "(profilenamespace getvariable ['Map_BLUFOR_R',0])"
#define Map_BLUFOR_G "(profilenamespace getvariable ['Map_BLUFOR_G',1])"
#define Map_BLUFOR_B "(profilenamespace getvariable ['Map_BLUFOR_B',1])"
#define Map_BLUFOR_A "(profilenamespace getvariable ['Map_BLUFOR_A',0.8])"
#define Map_BLUFOR_RGB Map_BLUFOR_R, Map_BLUFOR_G, Map_BLUFOR_B
#define Map_BLUFOR_RGBA {Map_BLUFOR_RGB,Map_BLUFOR_A}
//--- OPFOR
#define Map_OPFOR_R "(profilenamespace getvariable ['Map_OPFOR_R',0])"
#define Map_OPFOR_G "(profilenamespace getvariable ['Map_OPFOR_G',1])"
#define Map_OPFOR_B "(profilenamespace getvariable ['Map_OPFOR_B',1])"
#define Map_OPFOR_A "(profilenamespace getvariable ['Map_OPFOR_A',0.8])"
#define Map_OPFOR_RGB Map_OPFOR_R, Map_OPFOR_G, Map_OPFOR_B
#define Map_OPFOR_RGBA {Map_OPFOR_RGB,Map_OPFOR_A}
//--- Independent
#define Map_Independent_R "(profilenamespace getvariable ['Map_Independent_R',0])"
#define Map_Independent_G "(profilenamespace getvariable ['Map_Independent_G',1])"
#define Map_Independent_B "(profilenamespace getvariable ['Map_Independent_B',1])"
#define Map_Independent_A "(profilenamespace getvariable ['Map_Independent_A',0.8])"
#define Map_Independent_RGB Map_Independent_R, Map_Independent_G, Map_Independent_B
#define Map_Independent_RGBA {Map_Independent_RGB,Map_Independent_A}
//--- Civilian
#define Map_Civilian_R "(profilenamespace getvariable ['Map_Civilian_R',0])"
#define Map_Civilian_G "(profilenamespace getvariable ['Map_Civilian_G',1])"
#define Map_Civilian_B "(profilenamespace getvariable ['Map_Civilian_B',1])"
#define Map_Civilian_A "(profilenamespace getvariable ['Map_Civilian_A',0.8])"
#define Map_Civilian_RGB Map_Civilian_R, Map_Civilian_G, Map_Civilian_B
#define Map_Civilian_RGBA {Map_Civilian_RGB,Map_Civilian_A}
//--- Unknown
#define Map_Unknown_R "(profilenamespace getvariable ['Map_Unknown_R',0])"
#define Map_Unknown_G "(profilenamespace getvariable ['Map_Unknown_G',1])"
#define Map_Unknown_B "(profilenamespace getvariable ['Map_Unknown_B',1])"
#define Map_Unknown_A "(profilenamespace getvariable ['Map_Unknown_A',0.8])"
#define Map_Unknown_RGB Map_Unknown_R, Map_Unknown_G, Map_Unknown_B
#define Map_Unknown_RGBA {Map_Unknown_RGB,Map_Unknown_A}
///////////////////////////////////////////////////////////////////////////
/// Misc
///////////////////////////////////////////////////////////////////////////
//overwritten by Warka
#define CA_UI_ACTION {0.9,0.9,0.9,0.4}
#define CA_UI_ACTION_AVAILABLE IGUI_TEXT_COLOR
#define CA_UI_ACTION_ACTIVE {0.24,0.87,0,0.8}
#define CA_IGUI_Green {0.709,0.972,0.384,1}
#define CA_IGUI_GreenDark {0.259,0.463,0.149, 1} //MUF-added from A3 //{0.659,0.863,0.549,0.6}
#define CA_IGUI_Background IGUI_BCG_COLOR
#define Color_Orange {GUI_BCG_RGB, 1}
#define Color_DarkOrange {GUI_BCG_MEDIUM_RGB, 0.7}
#define CA_colordark {0, 0, 0, 1}
#define CA_UI_element_background Color_White
#define CA_UI_background {0.6, 0.6, 0.6, 0.4}
#define CA_UI_title_background {0.1961,0.1451,0.0941,1.0}
#define CA_UI_green {0.709,0.972,0.384,1}
#define CA_UI_red {0.58, 0.1147, 0.1108, 1}
#define CA_UI_grey {0.4,0.4,0.4,1}
#define CA_UI_transparent {1,1,1,0}
#define CA_IGUI_Red {0.706,0.0745,0.0196,1}
#define CA_IGUI_Orange {0.863,0.584,0.0,1}
#define CA_IGUI_YellowGreen {0.8275,0.8196,0.1961,1.0}
#define CA_IGUI_Blue {0.196,0.592,0.706, 1}
#define CA_IGUI_Grey {0.606,0.606,0.606,1}
#define Color_White {0.95, 0.95, 0.95, 1}
//#define Color_Black {0.023529, 0, 0.0313725, 1}
#define Color_Black {0, 0, 0, 1}
#define Color_Gray {1, 1, 1, 0.5}
#define Color_Empty {0, 0, 0, 0}
#define Color_Back {0.1, 0.1, 0.1, 0.4}
#define Color_BackList {0.2, 0.2, 0.2, 0.2}
#define ProcTextWhite "#(argb,8,8,3)color(1,1,1,1)"
#define ProcTextBlack "#(argb,8,8,3)color(0,0,0,1)"
#define ProcTextGray "#(argb,8,8,3)color(0.3,0.3,0.3,1)"
#define ProcTextRed "#(argb,8,8,3)color(1,0,0,1)"
#define ProcTextGreen "#(argb,8,8,3)color(0,1,0,1)"
#define ProcTextBlue "#(argb,8,8,3)color(0,0,1,1)"
#define ProcTextOrange "#(argb,8,8,3)color(1,0.5,0,1)"
#define ProcTextTransparent "#(argb,8,8,3)color(0,0,0,0)"
#define ProcTextHUD "#(argb,8,8,3)color(0.600,0.8392,0.4706,1.0)"
#define ProcTextPurple "#(argb,8,8,3)color(0.75,0,0.75,1)"
///////////////////////////////////////////////////////////////////////////
/// Task colors: 3D task marker
///////////////////////////////////////////////////////////////////////////
#define COLOR_TASK_ICON_UNASSIGNED_RGB 1,1,1
#define COLOR_TASK_ICON_UNASSIGNED_A 0.5
#define COLOR_TASK_ICON_UNASSIGNED_RGBA COLOR_TASK_ICON_UNASSIGNED_RGB,COLOR_TASK_ICON_UNASSIGNED_A
#define COLOR_TASK_ICON_ASSIGNED_RGB 1,0.72,0.3
#define COLOR_TASK_ICON_ASSIGNED_A 0.5
#define COLOR_TASK_ICON_ASSIGNED_RGBA COLOR_TASK_ICON_ASSIGNED_RGB,COLOR_TASK_ICON_ASSIGNED_A
#define COLOR_TASK_ICON_CUSTOM_RGB 0.3,0.72,1
#define COLOR_TASK_ICON_CUSTOM_A 0.5
#define COLOR_TASK_ICON_CUSTOM_RGBA COLOR_TASK_ICON_CUSTOM_RGB,COLOR_TASK_ICON_CUSTOM_A
#define COLOR_TASK_BACKGROUND_UNASSIGNED_RGB 1,1,1
#define COLOR_TASK_BACKGROUND_UNASSIGNED_A 1
#define COLOR_TASK_BACKGROUND_UNASSIGNED_RGBA COLOR_TASK_BACKGROUND_UNASSIGNED_RGB,COLOR_TASK_BACKGROUND_UNASSIGNED_A
#define COLOR_TASK_BACKGROUND_ASSIGNED_RGB 1,0.72,0.3
#define COLOR_TASK_BACKGROUND_ASSIGNED_A 1
#define COLOR_TASK_BACKGROUND_ASSIGNED_RGBA COLOR_TASK_BACKGROUND_ASSIGNED_RGB,COLOR_TASK_BACKGROUND_ASSIGNED_A
#define COLOR_TASK_BACKGROUND_CUSTOM_RGB 0.3,0.72,1
#define COLOR_TASK_BACKGROUND_CUSTOM_A 1
#define COLOR_TASK_BACKGROUND_CUSTOM_RGBA COLOR_TASK_BACKGROUND_CUSTOM_RGB,COLOR_TASK_BACKGROUND_CUSTOM_A
#define COLOR_TASK_TEXT_UNASSIGNED_RGB 0.91,0.91,0.91
#define COLOR_TASK_TEXT_UNASSIGNED_A 0.55
#define COLOR_TASK_TEXT_UNASSIGNED_RGBA COLOR_TASK_TEXT_UNASSIGNED_RGB,COLOR_TASK_TEXT_UNASSIGNED_A
#define COLOR_TASK_TEXT_ASSIGNED_RGB 0.91,0.65,0.27
#define COLOR_TASK_TEXT_ASSIGNED_A 0.55
#define COLOR_TASK_TEXT_ASSIGNED_RGBA COLOR_TASK_TEXT_ASSIGNED_RGB,COLOR_TASK_TEXT_ASSIGNED_A
#define COLOR_TASK_TEXT_CUSTOM_RGB 0.27,0.65,0.91
#define COLOR_TASK_TEXT_CUSTOM_A 0.55
#define COLOR_TASK_TEXT_CUSTOM_RGBA COLOR_TASK_TEXT_CUSTOM_RGB,COLOR_TASK_TEXT_CUSTOM_A
///////////////////////////////////////////////////////////////////////////
/// Task colors: generic
///////////////////////////////////////////////////////////////////////////
#define COLOR_TASK_UNASSIGNED_RGB COLOR_TASK_BACKGROUND_UNASSIGNED_RGB
#define COLOR_TASK_UNASSIGNED_RGBA COLOR_TASK_UNASSIGNED_RGB,1
#define COLOR_TASK_ASSIGNED_RGB COLOR_TASK_BACKGROUND_ASSIGNED_RGB
#define COLOR_TASK_ASSIGNED_RGBA COLOR_TASK_ASSIGNED_RGB,1
#define COLOR_TASK_CUSTOM_RGB COLOR_TASK_BACKGROUND_CUSTOM_RGB
#define COLOR_TASK_CUSTOM_RGBA COLOR_TASK_CUSTOM_RGB,1
//navigation elements
#define IGUI_CURSOR_COLOR {COLOR_TASK_TEXT_UNASSIGNED_RGBA}
///////////////////////////////////////////////////////////////////////////
/// Custom info / Sensors (duplicated in \A3\cfgSensors.hpp !!!)
///////////////////////////////////////////////////////////////////////////
#define COLOR_SENSORS_RADAR_RGB 0.0,1.0,1.0
#define COLOR_SENSORS_RADAR_A 1.0
#define COLOR_SENSORS_RADAR_RGBA {COLOR_SENSORS_RADAR_RGB,COLOR_SENSORS_RADAR_A}
#define COLOR_SENSORS_IR_RGB 1.0,0.0,0.0
#define COLOR_SENSORS_IR_A 1.0
#define COLOR_SENSORS_IR_RGBA {COLOR_SENSORS_IR_RGB,COLOR_SENSORS_IR_A}
#define COLOR_SENSORS_RWR_RGB 0.5, 1, 0.5
#define COLOR_SENSORS_RWR_A 0.5
#define COLOR_SENSORS_RWR_RGBA {COLOR_SENSORS_RWR_RGB,COLOR_SENSORS_RWR_A}
#define COLOR_SENSORS_NV_RGB 1,1,1
#define COLOR_SENSORS_NV_A 0
#define COLOR_SENSORS_NV_RGBA {COLOR_SENSORS_NV_RGB,COLOR_SENSORS_NV_A}
#define COLOR_SENSORS_LAS_RGB 1,1,1
#define COLOR_SENSORS_LAS_A 0
#define COLOR_SENSORS_LAS_RGBA {COLOR_SENSORS_LAS_RGB,COLOR_SENSORS_LAS_A}
#define COLOR_SENSORS_VIS_RGB 1.0,1.0,0.5
#define COLOR_SENSORS_VIS_A 0.8
#define COLOR_SENSORS_VIS_RGBA {COLOR_SENSORS_VIS_RGB,COLOR_SENSORS_VIS_A}
#define COLOR_SENSORS_MAN_RGB 1.0, 0.5, 1.0
#define COLOR_SENSORS_MAN_A 1.0
#define COLOR_SENSORS_MAN_RGBA {COLOR_SENSORS_MAN_RGB,COLOR_SENSORS_MAN_A}
#define COLOR_SENSORS_ENEMY_RGB 1.0, 0.0, 0.0
#define COLOR_SENSORS_ENEMY_A 1.0
#define COLOR_SENSORS_ENEMY_RGBA {COLOR_SENSORS_ENEMY_RGB,COLOR_SENSORS_ENEMY_A}
#define COLOR_SENSORS_FRIENDLY_RGB 0.0, 1.0, 0.0
#define COLOR_SENSORS_FRIENDLY_A 1.0
#define COLOR_SENSORS_FRIENDLY_RGBA {COLOR_SENSORS_FRIENDLY_RGB,COLOR_SENSORS_FRIENDLY_A}
#define COLOR_SENSORS_GROUP_RGB 0.7, 1.0, 0.4
#define COLOR_SENSORS_GROUP_A 1.0
#define COLOR_SENSORS_GROUP_RGBA {COLOR_SENSORS_GROUP_RGB,COLOR_SENSORS_GROUP_A}
#define COLOR_SENSORS_WARNING_RGB 1.0, 1.0, 0.0
#define COLOR_SENSORS_WARNING_A 1.0
#define COLOR_SENSORS_WARNING_RGBA {COLOR_SENSORS_WARNING_RGB,COLOR_SENSORS_WARNING_A}
#define COLOR_SENSORS_THREAT_RGB 1.0, 0.5, 0.0
#define COLOR_SENSORS_THREAT_A 1.0
#define COLOR_SENSORS_THREAT_RGBA {COLOR_SENSORS_THREAT_RGB,COLOR_SENSORS_THREAT_A}
#define COLOR_SENSORS_DEFAULT_RGB 1.0, 1.0, 1.0
#define COLOR_SENSORS_DEFAULT_A 1.0
#define COLOR_SENSORS_DEFAULT_RGBA {COLOR_SENSORS_DEFAULT_RGB,COLOR_SENSORS_DEFAULT_A}

View File

@ -0,0 +1,464 @@
///////////////////////////////////////////////////////////////////////////
/// GUI
///////////////////////////////////////////////////////////////////////////
//--- Hack to avoid too large display upon first startup (fixed in engine)
//#define GUI_GRID_OLD_WAbs ((safezoneW / ((floor (safezoneW / safezoneH)) max 1)) min 1.2)
//--- New grid for new A3 displays
#define GUI_GRID_WAbs ((safezoneW / safezoneH) min 1.2)
#define GUI_GRID_HAbs (GUI_GRID_WAbs / 1.2)
#define GUI_GRID_W (GUI_GRID_WAbs / 40)
#define GUI_GRID_H (GUI_GRID_HAbs / 25)
#define GUI_GRID_X (safezoneX)
#define GUI_GRID_Y (safezoneY + safezoneH - GUI_GRID_HAbs)
//--- MUF - Test grid used in MP
#define GUI_GRID_MP_WAbs GUI_GRID_WAbs
#define GUI_GRID_MP_HAbs GUI_GRID_HAbs
#define GUI_GRID_MP_W GUI_GRID_W
#define GUI_GRID_MP_H GUI_GRID_H
#define GUI_GRID_MP_X (SafezoneX)
#define GUI_GRID_MP_Y (safezoneY)
//--- Screen Center
#define GUI_GRID_CENTER_WAbs GUI_GRID_WAbs
#define GUI_GRID_CENTER_HAbs GUI_GRID_HAbs
#define GUI_GRID_CENTER_W GUI_GRID_W
#define GUI_GRID_CENTER_H GUI_GRID_H
#define GUI_GRID_CENTER_X (safezoneX + (safezoneW - GUI_GRID_CENTER_WAbs)/2)
#define GUI_GRID_CENTER_Y (safezoneY + (safezoneH - GUI_GRID_CENTER_HAbs)/2)
//--- Bottom center position (used by Revive UI)
#define GUI_GRID_CENTER_BOTTOM_WAbs GUI_GRID_WAbs
#define GUI_GRID_CENTER_BOTTOM_HAbs GUI_GRID_HAbs
#define GUI_GRID_CENTER_BOTTOM_W GUI_GRID_W
#define GUI_GRID_CENTER_BOTTOM_H GUI_GRID_H
#define GUI_GRID_CENTER_BOTTOM_X (safezoneX + (safezoneW - GUI_GRID_CENTER_WAbs)/2)
#define GUI_GRID_CENTER_BOTTOM_Y (safezoneY + safezoneH - GUI_GRID_CENTER_HAbs)
//--- Screen Top Center
#define GUI_GRID_TOPCENTER_WAbs GUI_GRID_WAbs
#define GUI_GRID_TOPCENTER_HAbs GUI_GRID_HAbs
#define GUI_GRID_TOPCENTER_W GUI_GRID_W
#define GUI_GRID_TOPCENTER_H GUI_GRID_H
#define GUI_GRID_TOPCENTER_X GUI_GRID_CENTER_X
#define GUI_GRID_TOPCENTER_Y safezoneY
//--- Screen Bottom Center
#define GUI_GRID_BOTTOMCENTER_WAbs GUI_GRID_WAbs
#define GUI_GRID_BOTTOMCENTER_HAbs GUI_GRID_HAbs
#define GUI_GRID_BOTTOMCENTER_W GUI_GRID_W
#define GUI_GRID_BOTTOMCENTER_H GUI_GRID_H
#define GUI_GRID_BOTTOMCENTER_X GUI_GRID_CENTER_X
#define GUI_GRID_BOTTOMCENTER_Y GUI_GRID_Y
//--- 2D Editor - TEST A3
#define GUI_GRID_EDITOR_WAbs GUI_GRID_CENTER_WAbs
#define GUI_GRID_EDITOR_HAbs GUI_GRID_CENTER_HAbs
#define GUI_GRID_EDITOR_W GUI_GRID_CENTER_W
#define GUI_GRID_EDITOR_H GUI_GRID_CENTER_H
#define GUI_GRID_EDITOR_X (safezoneX)
#define GUI_GRID_EDITOR_Y (safezoneY)
//--- Diary
#define GUI_GRID_DIARY_WAbs GUI_GRID_WAbs
#define GUI_GRID_DIARY_HAbs GUI_GRID_HAbs
#define GUI_GRID_DIARY_W GUI_GRID_W
#define GUI_GRID_DIARY_H GUI_GRID_H
#define GUI_GRID_DIARY_X (safezoneX)
#define GUI_GRID_DIARY_Y (safezoneY)
//--- Top left
#define GUI_GRID_TOPLEFT_WAbs GUI_GRID_WAbs
#define GUI_GRID_TOPLEFT_HAbs GUI_GRID_HAbs
#define GUI_GRID_TOPLEFT_W GUI_GRID_W
#define GUI_GRID_TOPLEFT_H GUI_GRID_H
#define GUI_GRID_TOPLEFT_X (safezoneX)
#define GUI_GRID_TOPLEFT_Y (safezoneY)
///////////////////////////////////////////////////////////////////////////
/// iGUI
///////////////////////////////////////////////////////////////////////////
//--- IGUI Vehicle
#define IGUI_GRID_VEHICLE_WAbs (10 * GUI_GRID_W)
#define IGUI_GRID_VEHICLE_HAbs (4.5 * GUI_GRID_H)
#define IGUI_GRID_VEHICLE_XDef (safezoneX + 0.5 * GUI_GRID_W)
#define IGUI_GRID_VEHICLE_YDef (safezoneY + 0.5 * GUI_GRID_H)
#define IGUI_GRID_VEHICLE_X (profilenamespace getvariable ["IGUI_GRID_VEHICLE_X",IGUI_GRID_VEHICLE_XDef])
#define IGUI_GRID_VEHICLE_Y (profilenamespace getvariable ["IGUI_GRID_VEHICLE_Y",IGUI_GRID_VEHICLE_YDef])
#define IGUI_GRID_VEHICLE_W GUI_GRID_W
#define IGUI_GRID_VEHICLE_H GUI_GRID_H
//--- IGUI Radar
#define IGUI_GRID_RADAR_WAbs (5.6 * GUI_GRID_W)
#define IGUI_GRID_RADAR_HAbs (5.6 * GUI_GRID_H)
#define IGUI_GRID_RADAR_XDef (safezoneX + safezoneW / 2 - 2.8 * GUI_GRID_W)
#define IGUI_GRID_RADAR_YDef (safezoneY + 0.5 * GUI_GRID_H)
#define IGUI_GRID_RADAR_X (profilenamespace getvariable ["IGUI_GRID_RADAR_X",IGUI_GRID_RADAR_XDef])
#define IGUI_GRID_RADAR_Y (profilenamespace getvariable ["IGUI_GRID_RADAR_Y",IGUI_GRID_RADAR_YDef])
#define IGUI_GRID_RADAR_W GUI_GRID_W
#define IGUI_GRID_RADAR_H GUI_GRID_H
//--- IGUI Weapon
#define IGUI_GRID_WEAPON_WAbs (10 * GUI_GRID_W)
#define IGUI_GRID_WEAPON_HAbs (4.5 * GUI_GRID_H)
#define IGUI_GRID_WEAPON_XDef ((safezoneX + safezoneW) - IGUI_GRID_WEAPON_WAbs - 4.3 * GUI_GRID_W)
#define IGUI_GRID_WEAPON_YDef (safezoneY + 0.5 * GUI_GRID_H)
#define IGUI_GRID_WEAPON_X (profilenamespace getvariable ["IGUI_GRID_WEAPON_X",IGUI_GRID_WEAPON_XDef])
#define IGUI_GRID_WEAPON_Y (profilenamespace getvariable ["IGUI_GRID_WEAPON_Y",IGUI_GRID_WEAPON_YDef])
#define IGUI_GRID_WEAPON_W GUI_GRID_W
#define IGUI_GRID_WEAPON_H GUI_GRID_H
//--- IGUI Stance indicator
#define IGUI_GRID_STANCE_WAbs (3.7 * GUI_GRID_W)
#define IGUI_GRID_STANCE_HAbs (3.7 * GUI_GRID_H)
#define IGUI_GRID_STANCE_XDef ((safezoneX + safezoneW) - IGUI_GRID_STANCE_WAbs - 0.5 * GUI_GRID_W)
#define IGUI_GRID_STANCE_YDef (safezoneY + 0.5 * GUI_GRID_H)
#define IGUI_GRID_STANCE_X (profilenamespace getvariable ["IGUI_GRID_STANCE_X",IGUI_GRID_STANCE_XDef])
#define IGUI_GRID_STANCE_Y (profilenamespace getvariable ["IGUI_GRID_STANCE_Y",IGUI_GRID_STANCE_YDef])
#define IGUI_GRID_STANCE_W GUI_GRID_W
#define IGUI_GRID_STANCE_H GUI_GRID_H
//--- IGUI Stamina Bar
#define IGUI_GRID_STAMINA_WAbs (10 * GUI_GRID_W)
#define IGUI_GRID_STAMINA_HAbs (1 * GUI_GRID_H)
#define IGUI_GRID_STAMINA_XDef IGUI_GRID_WEAPON_XDef
#define IGUI_GRID_STAMINA_YDef (safezoneY + 4.05 * GUI_GRID_H)
#define IGUI_GRID_STAMINA_X (profilenamespace getvariable ["IGUI_GRID_STAMINA_X",IGUI_GRID_STAMINA_XDef])
#define IGUI_GRID_STAMINA_Y (profilenamespace getvariable ["IGUI_GRID_STAMINA_Y",IGUI_GRID_STAMINA_YDef])
#define IGUI_GRID_STAMINA_W GUI_GRID_W
#define IGUI_GRID_STAMINA_H GUI_GRID_H
//--- IGUI Notification
#define IGUI_GRID_NOTIFICATION_WAbs (12 * GUI_GRID_W)
#define IGUI_GRID_NOTIFICATION_HAbs (6 * GUI_GRID_H)
#define IGUI_GRID_NOTIFICATION_XDef (0.5 - 6 * GUI_GRID_W)
#define IGUI_GRID_NOTIFICATION_YDef (safezoneY + 6.5 * GUI_GRID_H)
#define IGUI_GRID_NOTIFICATION_X (profilenamespace getvariable ["IGUI_GRID_NOTIFICATION_X",IGUI_GRID_NOTIFICATION_XDef])
#define IGUI_GRID_NOTIFICATION_Y (profilenamespace getvariable ["IGUI_GRID_NOTIFICATION_Y",IGUI_GRID_NOTIFICATION_YDef])
#define IGUI_GRID_NOTIFICATION_W GUI_GRID_W
#define IGUI_GRID_NOTIFICATION_H GUI_GRID_H
//--- IGUI Action / Command Menu
#define IGUI_GRID_MENU_WAbs (4.5 * GUI_GRID_W)
#define IGUI_GRID_MENU_HAbs (13.5 * IGUI_TEXT_SIZE_MEDIUM)
#define IGUI_GRID_MENU_XDef (1.5 * GUI_GRID_W + safezoneX)
#define IGUI_GRID_MENU_YDef (5 * GUI_GRID_H + safezoneY)
#define IGUI_GRID_MENU_X (profilenamespace getvariable ["IGUI_GRID_MENU_X",IGUI_GRID_MENU_XDef])
#define IGUI_GRID_MENU_Y (profilenamespace getvariable ["IGUI_GRID_MENU_Y",IGUI_GRID_MENU_YDef])
#define IGUI_GRID_MENU_W GUI_GRID_W
#define IGUI_GRID_MENU_H GUI_GRID_H
//--- IGUI Communication menu icons
#define IGUI_GRID_COMM_WAbs (1.5 * GUI_GRID_W)
#define IGUI_GRID_COMM_HAbs (15 * GUI_GRID_H)
#define IGUI_GRID_COMM_XDef (0 * GUI_GRID_W + safezoneX)
#define IGUI_GRID_COMM_YDef (5 * GUI_GRID_H + safezoneY)
#define IGUI_GRID_COMM_X (profilenamespace getvariable ["IGUI_GRID_COMM_X",IGUI_GRID_COMM_XDef])
#define IGUI_GRID_COMM_Y (profilenamespace getvariable ["IGUI_GRID_COMM_Y",IGUI_GRID_COMM_YDef])
#define IGUI_GRID_COMM_W GUI_GRID_W
#define IGUI_GRID_COMM_H GUI_GRID_H
//--- IGUI Hint
#define IGUI_GRID_HINT_WAbs (12 * GUI_GRID_W)
#define IGUI_GRID_HINT_HAbs (8 * GUI_GRID_H)
#define IGUI_GRID_HINT_XDef ((safezoneX + safezoneW) - IGUI_GRID_HINT_WAbs - 1 * GUI_GRID_W)
#define IGUI_GRID_HINT_YDef (safezoneY + 6 * GUI_GRID_H)
#define IGUI_GRID_HINT_X (profilenamespace getvariable ["IGUI_GRID_HINT_X",IGUI_GRID_HINT_XDef])
#define IGUI_GRID_HINT_Y (profilenamespace getvariable ["IGUI_GRID_HINT_Y",IGUI_GRID_HINT_YDef])
#define IGUI_GRID_HINT_W GUI_GRID_W
#define IGUI_GRID_HINT_H GUI_GRID_H
//--- IGUI GPS
#define IGUI_GRID_GPS_XDef (safezoneX + safezoneW - 11 * GUI_GRID_W)
#define IGUI_GRID_GPS_YDef (safezoneY + safezoneH - 20.5 * GUI_GRID_H)
#define IGUI_GRID_GPS_WDef (10 * GUI_GRID_W)
#define IGUI_GRID_GPS_HDef (10 * GUI_GRID_H)
#define IGUI_GRID_GPS_X (profilenamespace getvariable ['IGUI_GRID_GPS_X',IGUI_GRID_GPS_XDef])
#define IGUI_GRID_GPS_Y (profilenamespace getvariable ['IGUI_GRID_GPS_Y',IGUI_GRID_GPS_YDef])
#define IGUI_GRID_GPS_WAbs (profilenamespace getvariable ['IGUI_GRID_GPS_W',IGUI_GRID_GPS_WDef])
#define IGUI_GRID_GPS_HAbs (profilenamespace getvariable ['IGUI_GRID_GPS_H',IGUI_GRID_GPS_HDef])
//--- IGUI AV Camera
#define IGUI_GRID_AVCAMERA_XDef (safezoneX + safezoneW - 11.6 * GUI_GRID_W)
#define IGUI_GRID_AVCAMERA_YDef (safezoneY + safezoneH - 17.2 * GUI_GRID_H)
#define IGUI_GRID_AVCAMERA_WDef (10.6 * GUI_GRID_W)
#define IGUI_GRID_AVCAMERA_HDef (6.7 * GUI_GRID_H)
#define IGUI_GRID_AVCAMERA_X (profilenamespace getvariable ['IGUI_GRID_AVCAMERA_X',IGUI_GRID_AVCAMERA_XDef])
#define IGUI_GRID_AVCAMERA_Y (profilenamespace getvariable ['IGUI_GRID_AVCAMERA_Y',IGUI_GRID_AVCAMERA_YDef])
#define IGUI_GRID_AVCAMERA_WAbs (profilenamespace getvariable ['IGUI_GRID_AVCAMERA_W',IGUI_GRID_AVCAMERA_WDef])
#define IGUI_GRID_AVCAMERA_HAbs (profilenamespace getvariable ['IGUI_GRID_AVCAMERA_H',IGUI_GRID_AVCAMERA_HDef])
//--- IGUI IGUI Chat Log
#define IGUI_GRID_CHAT_XDef (safezoneX + 1 * GUI_GRID_W)
#define IGUI_GRID_CHAT_YDef (safezoneY + safezoneH - 10.5 * GUI_GRID_H)
#define IGUI_GRID_CHAT_WDef (20 * GUI_GRID_W)
#define IGUI_GRID_CHAT_HDef (5 * GUI_GRID_H)
#define IGUI_GRID_CHAT_X (profilenamespace getvariable ["IGUI_GRID_CHAT_X",IGUI_GRID_CHAT_XDef])
#define IGUI_GRID_CHAT_Y (profilenamespace getvariable ["IGUI_GRID_CHAT_Y",IGUI_GRID_CHAT_YDef])
#define IGUI_GRID_CHAT_WAbs (profilenamespace getvariable ["IGUI_GRID_CHAT_W",IGUI_GRID_CHAT_WDef])
#define IGUI_GRID_CHAT_HAbs (profilenamespace getvariable ["IGUI_GRID_CHAT_H",IGUI_GRID_CHAT_HDef])
//--- IGUI Command Bar
#define IGUI_GRID_BAR_WAbs (36 * GUI_GRID_W)
#define IGUI_GRID_BAR_HAbs (4 * GUI_GRID_H)
#define IGUI_GRID_BAR_XDef (safezoneX + 1 * GUI_GRID_W)
#define IGUI_GRID_BAR_YDef (safezoneY + safezoneH - 4.5 * GUI_GRID_H)
#define IGUI_GRID_BAR_X (profilenamespace getvariable ["IGUI_GRID_BAR_X",IGUI_GRID_BAR_XDef])
#define IGUI_GRID_BAR_Y (profilenamespace getvariable ["IGUI_GRID_BAR_Y",IGUI_GRID_BAR_YDef])
#define IGUI_GRID_BAR_W GUI_GRID_W
#define IGUI_GRID_BAR_H GUI_GRID_H
//--- IGUI MP Progress
#define IGUI_GRID_MP_WAbs (2.5 * GUI_GRID_W)
#define IGUI_GRID_MP_HAbs (15 * GUI_GRID_H)
#define IGUI_GRID_MP_XDef (safezoneX + safezoneW - 2 * GUI_GRID_W)
#define IGUI_GRID_MP_YDef (5 * GUI_GRID_H + safezoneY)
#define IGUI_GRID_MP_X (profilenamespace getvariable ["IGUI_GRID_MP_X",IGUI_GRID_MP_XDef])
#define IGUI_GRID_MP_Y (profilenamespace getvariable ["IGUI_GRID_MP_Y",IGUI_GRID_MP_YDef])
#define IGUI_GRID_MP_W GUI_GRID_W
#define IGUI_GRID_MP_H GUI_GRID_H
//--- IGUI Custom Mission Display
#define IGUI_GRID_MISSION_WAbs (20 * GUI_GRID_W)
#define IGUI_GRID_MISSION_HAbs (5 * GUI_GRID_H)
#define IGUI_GRID_MISSION_XDef (safezoneX + safezoneW - 21 * GUI_GRID_W)
#define IGUI_GRID_MISSION_YDef (safezoneY + safezoneH - 10.5 * GUI_GRID_H)
#define IGUI_GRID_MISSION_X (profilenamespace getvariable ["IGUI_GRID_MISSION_X",IGUI_GRID_MISSION_XDef])
#define IGUI_GRID_MISSION_Y (profilenamespace getvariable ["IGUI_GRID_MISSION_Y",IGUI_GRID_MISSION_YDef])
#define IGUI_GRID_MISSION_W GUI_GRID_W
#define IGUI_GRID_MISSION_H GUI_GRID_H
//--- IGUI Custom Info
#define IGUI_GRID_CUSTOMINFO_WDef (10 * GUI_GRID_W)
#define IGUI_GRID_CUSTOMINFO_HDef (10 * GUI_GRID_H)
#define IGUI_GRID_CUSTOMINFOLEFT_XDef (safezoneX + 0.5 * GUI_GRID_W)
#define IGUI_GRID_CUSTOMINFOLEFT_YDef (safezoneY + safezoneH - 21 * GUI_GRID_H)
#define IGUI_GRID_CUSTOMINFORIGHT_XDef ((safezoneX + safezoneW) - (IGUI_GRID_CUSTOMINFO_WDef + 0.5 * GUI_GRID_W))
#define IGUI_GRID_CUSTOMINFORIGHT_YDef (safezoneY + safezoneH - 21 * GUI_GRID_H)
#define IGUI_GRID_CUSTOMINFOLEFT_X (profilenamespace getvariable ["IGUI_GRID_CUSTOMINFOLEFT_X",IGUI_GRID_CUSTOMINFOLEFT_XDef])
#define IGUI_GRID_CUSTOMINFOLEFT_Y (profilenamespace getvariable ["IGUI_GRID_CUSTOMINFOLEFT_Y",IGUI_GRID_CUSTOMINFOLEFT_YDef])
#define IGUI_GRID_CUSTOMINFORIGHT_X (profilenamespace getvariable ["IGUI_GRID_CUSTOMINFORIGHT_X",IGUI_GRID_CUSTOMINFORIGHT_XDef])
#define IGUI_GRID_CUSTOMINFORIGHT_Y (profilenamespace getvariable ["IGUI_GRID_CUSTOMINFORIGHT_Y",IGUI_GRID_CUSTOMINFORIGHT_YDef])
#define IGUI_GRID_CUSTOMINFO_WAbs (profilenamespace getvariable ["IGUI_GRID_CUSTOMINFORIGHT_W",IGUI_GRID_CUSTOMINFO_WDef])
#define IGUI_GRID_CUSTOMINFO_HAbs (profilenamespace getvariable ["IGUI_GRID_CUSTOMINFORIGHT_H",IGUI_GRID_CUSTOMINFO_HDef])
#define IGUI_GRID_CUSTOMINFO_INNER_WAbs IGUI_GRID_CUSTOMINFO_WAbs - 0.25 * GUI_GRID_W
#define IGUI_GRID_CUSTOMINFO_INNER_HAbs IGUI_GRID_CUSTOMINFO_HAbs - 1.25 * GUI_GRID_H
///////////////////////////////////////////////////////////////////////////
/// Old
///////////////////////////////////////////////////////////////////////////
//--- Old grid, that is used for old A3 and TKOH displays
#define GUI_GRID_OLD_WAbs ((safezoneW / safezoneH) min 1.2)
#define GUI_GRID_OLD_HAbs (GUI_GRID_OLD_WAbs / 1.2)
#define GUI_GRID_OLD_W (GUI_GRID_OLD_WAbs / 32)
#define GUI_GRID_OLD_H (GUI_GRID_OLD_HAbs / 20)
#define GUI_GRID_OLD_X (safezoneX)
#define GUI_GRID_OLD_Y (safezoneY + safezoneH - GUI_GRID_OLD_HAbs)
//--- Centered
//#define GUI_GRID_OLD_X (safezoneX + (safezoneW - GUI_GRID_OLD_CENTER_WAbs)/2)
//--- Dark magic
//#define GUI_GRID_OLD_X (profilenamespace getvariable ['GUI_GRID_OLD_X',(safezoneX + (safezoneW - GUI_GRID_OLD_CENTER_WAbs)/2)])
//#define GUI_GRID_OLD_Y (profilenamespace getvariable ['GUI_GRID_OLD_Y',(safezoneY + safezoneH - GUI_GRID_OLD_HAbs)])
//MUF-TEST: Anchor near the right edge of the screen - when changing Interface size, this point doesn't change its X position
#define GUI_ANCHOR_RIGHT (0.983 * safezoneW + safezoneX)
#define GUI_ANCHOR_LEFT 0
//--- Screen Center
#define GUI_GRID_OLD_CENTER_WAbs GUI_GRID_OLD_WAbs
#define GUI_GRID_OLD_CENTER_HAbs GUI_GRID_OLD_HAbs
#define GUI_GRID_OLD_CENTER_W GUI_GRID_OLD_W
#define GUI_GRID_OLD_CENTER_H GUI_GRID_OLD_H
#define GUI_GRID_OLD_CENTER_X (safezoneX + (safezoneW - GUI_GRID_OLD_CENTER_WAbs)/2)
#define GUI_GRID_OLD_CENTER_Y (safezoneY + (safezoneH - GUI_GRID_OLD_CENTER_HAbs)/2)
//--- 2D Editor
#define GUI_GRID_OLD_EDITOR_WAbs GUI_GRID_OLD_CENTER_WAbs
#define GUI_GRID_OLD_EDITOR_HAbs GUI_GRID_OLD_CENTER_HAbs
#define GUI_GRID_OLD_EDITOR_W GUI_GRID_OLD_CENTER_W
#define GUI_GRID_OLD_EDITOR_H GUI_GRID_OLD_CENTER_H
#define GUI_GRID_OLD_EDITOR_X GUI_GRID_OLD_CENTER_X
#define GUI_GRID_OLD_EDITOR_Y (safezoneY)
//--- Debug console (center down)
#define GUI_GRID_OLD_DEBUG_WAbs GUI_GRID_OLD_WAbs
#define GUI_GRID_OLD_DEBUG_HAbs GUI_GRID_OLD_HAbs
#define GUI_GRID_OLD_DEBUG_W GUI_GRID_OLD_W
#define GUI_GRID_OLD_DEBUG_H GUI_GRID_OLD_H
#define GUI_GRID_OLD_DEBUG_X (safezoneX + (safezoneW - GUI_GRID_OLD_DEBUG_WAbs)/2)
#define GUI_GRID_OLD_DEBUG_Y (safezoneY + safezoneH - GUI_GRID_OLD_DEBUG_HAbs)
//--- IGUI Common
#define IGUI_GRID_OLD_WAbs GUI_GRID_OLD_WAbs
#define IGUI_GRID_OLD_HAbs GUI_GRID_OLD_HAbs
#define IGUI_GRID_OLD_W GUI_GRID_OLD_W
#define IGUI_GRID_OLD_H GUI_GRID_OLD_H
#define IGUI_GRID_OLD_X (safezoneX + (safezoneW - IGUI_GRID_OLD_WAbs) / 2)
#define IGUI_GRID_OLD_Y (safezoneY + safezoneH - IGUI_GRID_OLD_HAbs)
//--- IGUI Bottom
#define IGUI_GRID_OLD_BOTTOM_WAbs IGUI_GRID_OLD_WAbs
#define IGUI_GRID_OLD_BOTTOM_HAbs IGUI_GRID_OLD_HAbs
#define IGUI_GRID_OLD_BOTTOM_W IGUI_GRID_OLD_W
#define IGUI_GRID_OLD_BOTTOM_H IGUI_GRID_OLD_H
#define IGUI_GRID_OLD_BOTTOM_X (safezoneX + (safezoneW - IGUI_GRID_OLD_BOTTOM_WAbs) / 2)
#define IGUI_GRID_OLD_BOTTOM_Y (safezoneY + safezoneH - IGUI_GRID_OLD_BOTTOM_HAbs)
//--- IGUI Analogue Gauges -----------------------------------------------------------------------------------------------------
//--- Analogue gauge - Speed
#define IGUI_GRID_GAUGESPEED_XDef (safezoneX + (safezoneW / 2) - 19.75 * GUI_GRID_W)
#define IGUI_GRID_GAUGESPEED_YDef (safezoneY + safezoneH - 11.7 * GUI_GRID_H)
#define IGUI_GRID_GAUGESPEED_X (profilenamespace getvariable ['IGUI_GRID_GAUGESPEED_X',IGUI_GRID_GAUGESPEED_XDef])
#define IGUI_GRID_GAUGESPEED_Y (profilenamespace getvariable ['IGUI_GRID_GAUGESPEED_Y',IGUI_GRID_GAUGESPEED_YDef])
#define IGUI_GRID_GAUGESPEED_WAbs (7.5 * GUI_GRID_W)
#define IGUI_GRID_GAUGESPEED_HAbs (7.5 * GUI_GRID_H)
//--- Analogue gauge - Alt
#define IGUI_GRID_GAUGEALT_XDef (safezoneX + (safezoneW / 2) - 11.75 * GUI_GRID_W)
#define IGUI_GRID_GAUGEALT_YDef (safezoneY + safezoneH - 11.7 * GUI_GRID_H)
#define IGUI_GRID_GAUGEALT_X (profilenamespace getvariable ['IGUI_GRID_GAUGEALT_X',IGUI_GRID_GAUGEALT_XDef])
#define IGUI_GRID_GAUGEALT_Y (profilenamespace getvariable ['IGUI_GRID_GAUGEALT_Y',IGUI_GRID_GAUGEALT_YDef])
#define IGUI_GRID_GAUGEALT_WAbs (7.5 * GUI_GRID_W)
#define IGUI_GRID_GAUGEALT_HAbs (7.5 * GUI_GRID_H)
//--- Analogue gauge - Horizon
#define IGUI_GRID_GAUGEHORIZON_XDef (safezoneX + ((safezoneW - 7.5 * GUI_GRID_W) / 2))
#define IGUI_GRID_GAUGEHORIZON_YDef (safezoneY + safezoneH - 11.7 * GUI_GRID_H)
#define IGUI_GRID_GAUGEHORIZON_X (profilenamespace getvariable ['IGUI_GRID_GAUGEHORIZON_X',IGUI_GRID_GAUGEHORIZON_XDef])
#define IGUI_GRID_GAUGEHORIZON_Y (profilenamespace getvariable ['IGUI_GRID_GAUGEHORIZON_Y',IGUI_GRID_GAUGEHORIZON_YDef])
#define IGUI_GRID_GAUGEHORIZON_WAbs (7.5 * GUI_GRID_W)
#define IGUI_GRID_GAUGEHORIZON_HAbs (7.5 * GUI_GRID_H)
//--- Analogue gauge - Stability
#define IGUI_GRID_GAUGESTABILITY_XDef (safezoneX + (safezoneW / 2) + 4.25 * GUI_GRID_W)
#define IGUI_GRID_GAUGESTABILITY_YDef (safezoneY + safezoneH - 11.7 * GUI_GRID_H)
#define IGUI_GRID_GAUGESTABILITY_X (profilenamespace getvariable ['IGUI_GRID_GAUGESTABILITY_X',IGUI_GRID_GAUGESTABILITY_XDef])
#define IGUI_GRID_GAUGESTABILITY_Y (profilenamespace getvariable ['IGUI_GRID_GAUGESTABILITY_Y',IGUI_GRID_GAUGESTABILITY_YDef])
#define IGUI_GRID_GAUGESTABILITY_WAbs (7.5 * GUI_GRID_W)
#define IGUI_GRID_GAUGESTABILITY_HAbs (7.5 * GUI_GRID_H)
//--- Analogue gauge - Compass
#define IGUI_GRID_GAUGECOMPASS_XDef (safezoneX + (safezoneW / 2) + 12.25 * GUI_GRID_W)
#define IGUI_GRID_GAUGECOMPASS_YDef (safezoneY + safezoneH - 11.7 * GUI_GRID_H)
#define IGUI_GRID_GAUGECOMPASS_X (profilenamespace getvariable ['IGUI_GRID_GAUGECOMPASS_X',IGUI_GRID_GAUGECOMPASS_XDef])
#define IGUI_GRID_GAUGECOMPASS_Y (profilenamespace getvariable ['IGUI_GRID_GAUGECOMPASS_Y',IGUI_GRID_GAUGECOMPASS_YDef])
#define IGUI_GRID_GAUGECOMPASS_WAbs (7.5 * GUI_GRID_W)
#define IGUI_GRID_GAUGECOMPASS_HAbs (7.5 * GUI_GRID_H)
//--- Analogue gauge - Damage indicators
// #define IGUI_GRID_GAUGEDAMAGE_XDef (safezoneX + (safezoneW / 2) - 19 * GUI_GRID_W)
// #define IGUI_GRID_GAUGEDAMAGE_YDef (safezoneY + safezoneH - 7 * GUI_GRID_H)
// #define IGUI_GRID_GAUGEDAMAGE_X (profilenamespace getvariable ['IGUI_GRID_GAUGEDAMAGE_X',IGUI_GRID_GAUGEDAMAGE_XDef])
// #define IGUI_GRID_GAUGEDAMAGE_Y (profilenamespace getvariable ['IGUI_GRID_GAUGEDAMAGE_Y',IGUI_GRID_GAUGEDAMAGE_YDef])
// #define IGUI_GRID_GAUGEDAMAGE_WAbs (9.6 * GUI_GRID_W)
// #define IGUI_GRID_GAUGEDAMAGE_HAbs (2.4 * GUI_GRID_H)
//--- IGUI Analogue Gauges -----------------------------------------------------------------------------------------------------
//--- Sling Load Assistant
#define IGUI_GRID_SLINGLOADASSISTANT_XDef (safezoneX + safezoneW - 8 * GUI_GRID_W)
#define IGUI_GRID_SLINGLOADASSISTANT_YDef (safezoneY + safezoneH - 19.5 * GUI_GRID_H)
#define IGUI_GRID_SLINGLOADASSISTANT_WDef (7 * GUI_GRID_W)
#define IGUI_GRID_SLINGLOADASSISTANT_HDef (9.5 * GUI_GRID_H)
#define IGUI_GRID_SLINGLOADASSISTANT_X (profilenamespace getvariable ['IGUI_GRID_SLINGLOADASSISTANT_X',IGUI_GRID_SLINGLOADASSISTANT_XDef])
#define IGUI_GRID_SLINGLOADASSISTANT_Y (profilenamespace getvariable ['IGUI_GRID_SLINGLOADASSISTANT_Y',IGUI_GRID_SLINGLOADASSISTANT_YDef])
#define IGUI_GRID_SLINGLOADASSISTANT_WAbs (profilenamespace getvariable ['IGUI_GRID_SLINGLOADASSISTANT_W',IGUI_GRID_SLINGLOADASSISTANT_WDef])
#define IGUI_GRID_SLINGLOADASSISTANT_HAbs (profilenamespace getvariable ['IGUI_GRID_SLINGLOADASSISTANT_H',IGUI_GRID_SLINGLOADASSISTANT_HDef])
//--- Squad Radar
// #define IGUI_GRID_SQUADRADAR_XDef (safezoneX + (safezoneW / 2) - 3 * GUI_GRID_W)
// #define IGUI_GRID_SQUADRADAR_YDef (safezoneY + safezoneH - 10.9 * GUI_GRID_H)
// #define IGUI_GRID_SQUADRADAR_X (profilenamespace getvariable ['IGUI_GRID_SQUADRADAR_X',IGUI_GRID_SQUADRADAR_XDef])
// #define IGUI_GRID_SQUADRADAR_Y (profilenamespace getvariable ['IGUI_GRID_SQUADRADAR_Y',IGUI_GRID_SQUADRADAR_YDef])
// #define IGUI_GRID_SQUADRADAR_WAbs (6 * GUI_GRID_W)
// #define IGUI_GRID_SQUADRADAR_HAbs (6 * GUI_GRID_H)
// #define IGUI_GRID_SQUADRADAR_LIST1_XDef (IGUI_GRID_SQUADRADAR_XDef + IGUI_GRID_SQUADRADAR_WAbs)
// #define IGUI_GRID_SQUADRADAR_LIST1_YDef (IGUI_GRID_SQUADRADAR_YDef)
// #define IGUI_GRID_SQUADRADAR_LIST1_X (profilenamespace getvariable ['IGUI_GRID_SQUADRADAR_LIST1_X',IGUI_GRID_SQUADRADAR_LIST1_XDef])
// #define IGUI_GRID_SQUADRADAR_LIST1_Y (profilenamespace getvariable ['IGUI_GRID_SQUADRADAR_LIST1_Y',IGUI_GRID_SQUADRADAR_LIST1_YDef])
// #define IGUI_GRID_SQUADRADAR_LIST1_WAbs (6 * GUI_GRID_W)
// #define IGUI_GRID_SQUADRADAR_LIST1_HAbs (6 * GUI_GRID_H)
// #define IGUI_GRID_SQUADRADAR_LIST2_XDef (IGUI_GRID_SQUADRADAR_LIST1_XDef + IGUI_GRID_SQUADRADAR_LIST1_WAbs)
// #define IGUI_GRID_SQUADRADAR_LIST2_YDef (IGUI_GRID_SQUADRADAR_LIST1_YDef)
// #define IGUI_GRID_SQUADRADAR_LIST2_X (profilenamespace getvariable ['IGUI_GRID_SQUADRADAR_LIST2_X',IGUI_GRID_SQUADRADAR_LIST2_XDef])
// #define IGUI_GRID_SQUADRADAR_LIST2_Y (profilenamespace getvariable ['IGUI_GRID_SQUADRADAR_LIST2_Y',IGUI_GRID_SQUADRADAR_LIST2_YDef])
// #define IGUI_GRID_SQUADRADAR_LIST2_WAbs (6 * GUI_GRID_W)
// #define IGUI_GRID_SQUADRADAR_LIST2_HAbs (6 * GUI_GRID_H)
//--- IGUI Action / Command Menu
#define IGUI_GRID_OLD_MENU_WAbs (4.5 * IGUI_GRID_OLD_W)
#define IGUI_GRID_OLD_MENU_HAbs (10 * (IGUI_TEXT_SIZE_MEDIUM * 1.3))
#define IGUI_GRID_OLD_MENU_XDef (1 * IGUI_GRID_OLD_W + safezoneX)
#define IGUI_GRID_OLD_MENU_YDef (5 * IGUI_GRID_OLD_H + safezoneY)
#define IGUI_GRID_OLD_MENU_X (profilenamespace getvariable ["IGUI_GRID_OLD_MENU_X",IGUI_GRID_OLD_MENU_XDef])
#define IGUI_GRID_OLD_MENU_Y (profilenamespace getvariable ["IGUI_GRID_OLD_MENU_Y",IGUI_GRID_OLD_MENU_YDef])
#define IGUI_GRID_OLD_MENU_W IGUI_GRID_OLD_W
#define IGUI_GRID_OLD_MENU_H IGUI_GRID_OLD_H
//--- E3
/*
#define IGUI_GRID_OLD_MENU_WAbs (4.5 * IGUI_GRID_OLD_W)
#define IGUI_GRID_OLD_MENU_HAbs (10 * (IGUI_TEXT_SIZE_MEDIUM * 1.3))
#define IGUI_GRID_OLD_MENU_XDef (0.6)
#define IGUI_GRID_OLD_MENU_YDef (0.55)
#define IGUI_GRID_OLD_MENU_X (profilenamespace getvariable ["IGUI_GRID_OLD_MENU_X",IGUI_GRID_OLD_MENU_XDef])
#define IGUI_GRID_OLD_MENU_Y (profilenamespace getvariable ["IGUI_GRID_OLD_MENU_Y",IGUI_GRID_OLD_MENU_YDef])
#define IGUI_GRID_OLD_MENU_W IGUI_GRID_OLD_W
#define IGUI_GRID_OLD_MENU_H IGUI_GRID_OLD_H
*/
//--- IGUI Task
#define IGUI_GRID_OLD_TASK_WAbs (12 * IGUI_GRID_OLD_W)
#define IGUI_GRID_OLD_TASK_HAbs (2 * IGUI_GRID_OLD_H)
#define IGUI_GRID_OLD_TASK_XDef (10 * IGUI_GRID_OLD_W + IGUI_GRID_OLD_X)
#define IGUI_GRID_OLD_TASK_YDef (1 * IGUI_GRID_OLD_H + safezoneY)
#define IGUI_GRID_OLD_TASK_X IGUI_GRID_OLD_TASK_XDef
#define IGUI_GRID_OLD_TASK_Y IGUI_GRID_OLD_TASK_YDef
#define IGUI_GRID_OLD_TASK_W IGUI_GRID_OLD_W
#define IGUI_GRID_OLD_TASK_H IGUI_GRID_OLD_H
//--- IGUI PIP
#define IGUI_GRID_OLD_PIP_XDef (safezoneX + safezoneW - 6.8 * IGUI_GRID_OLD_W)
#define IGUI_GRID_OLD_PIP_YDef (7 * IGUI_GRID_OLD_H + IGUI_GRID_OLD_Y)
#define IGUI_GRID_OLD_PIP_WDef (6 * IGUI_GRID_OLD_W)
#define IGUI_GRID_OLD_PIP_HDef (IGUI_GRID_OLD_PIP_WDef)
//#define IGUI_GRID_OLD_PIP_X (profilenamespace getvariable ['IGUI_GRID_OLD_PIP_X',IGUI_GRID_OLD_PIP_XDef])
//#define IGUI_GRID_OLD_PIP_Y (profilenamespace getvariable ['IGUI_GRID_OLD_PIP_Y',IGUI_GRID_OLD_PIP_YDef])
//#define IGUI_GRID_OLD_PIP_WAbs (profilenamespace getvariable ['IGUI_GRID_OLD_PIP_W',IGUI_GRID_OLD_PIP_WDef])
#define IGUI_GRID_OLD_PIP_X IGUI_GRID_OLD_PIP_XDef
#define IGUI_GRID_OLD_PIP_Y IGUI_GRID_OLD_PIP_YDef
#define IGUI_GRID_OLD_PIP_WAbs IGUI_GRID_OLD_PIP_WDef
#define IGUI_GRID_OLD_PIP_HAbs (IGUI_GRID_OLD_PIP_WAbs)
//--- MUF - experimental optics grid
// #define GUI_GRID_OLD_OPTICS_X (SafezoneX + ((SafezoneW - SafezoneH) / 2))
// #define GUI_GRID_OLD_OPTICS_Y (SafezoneY)
// #define GUI_GRID_OLD_OPTICS_W (0.01875)
// #define GUI_GRID_OLD_OPTICS_H (0.025)
// #define GUI_GRID_OLD_OPTICS_WAbs ((SafezoneX + ((SafezoneW - SafezoneH) / 2)) / 0.01875)
// #define GUI_GRID_OLD_OPTICS_HAbs (SafezoneH / 0.01875)
#define GUI_GRID_OLD_OPTICS_X (SafezoneX + ((SafezoneW - SafezoneH) / 2))
#define GUI_GRID_OLD_OPTICS_Y (SafezoneY)
#define GUI_GRID_OLD_OPTICS_W (0.01875 * SafezoneH)
#define GUI_GRID_OLD_OPTICS_H (0.025 * SafezoneH)
#define GUI_GRID_OLD_OPTICS_WAbs (SafezoneH)
#define GUI_GRID_OLD_OPTICS_HAbs (SafezoneH)
//--- MUF - experimental AV Terminal grid
#define GUI_GRID_OLD_AV_TERMINAL_X (safezoneX)
#define GUI_GRID_OLD_AV_TERMINAL_Y (safezoneY)
#define GUI_GRID_OLD_AV_TERMINAL_W (safezoneW / 64)
#define GUI_GRID_OLD_AV_TERMINAL_H (safezoneH / 40)
#define GUI_GRID_OLD_AV_TERMINAL_WAbs (safezoneW)
#define GUI_GRID_OLD_AV_TERMINAL_HAbs (safezoneH)

View File

@ -354,6 +354,27 @@ Author:
------------------------------------------- */
#define MESSAGE_WITH_TITLE(TITLE,MESSAGE) LOG_SYS_FILELINENUMBERS(TITLE,MESSAGE)
/* -------------------------------------------
Macro: RETDEF()
If a variable is undefined, return the default value. Otherwise, return the
variable itself.
Parameters:
VARIABLE - the variable to check
DEFAULT_VALUE - the default value to use if variable is undefined
Example:
(begin example)
// _var is undefined
hintSilent format ["_var=%1", RETDEF(_var,5)]; // "_var=5"
_var = 7;
hintSilent format ["_var=%1", RETDEF(_var,5)]; // "_var=7"
(end example)
Author:
654wak654
------------------------------------------- */
#define RETDEF(VARIABLE,DEFAULT_VALUE) (if (isNil {VARIABLE}) then [{DEFAULT_VALUE}, {VARIABLE}])
/* -------------------------------------------
Macro: RETNIL()
If a variable is undefined, return the value nil. Otherwise, return the
@ -365,13 +386,13 @@ Parameters:
Example:
(begin example)
// _var is undefined
hintSilent format ["_var=%1", RETNIL(_var) ]; // "_var=any"
hintSilent format ["_var=%1", RETNIL(_var)]; // "_var=any"
(end example)
Author:
Alef (see CBA issue #8514)
------------------------------------------- */
#define RETNIL(VARIABLE) if (isNil{VARIABLE}) then {nil} else {VARIABLE}
#define RETNIL(VARIABLE) RETDEF(VARIABLE,nil)
/* -------------------------------------------
Macros: TRACE_n()
@ -457,8 +478,8 @@ Group: General
// *************************************
// Internal Functions
#define DOUBLES(var1,var2) ##var1##_##var2
#define TRIPLES(var1,var2,var3) ##var1##_##var2##_##var3
#define DOUBLES(var1,var2) var1##_##var2
#define TRIPLES(var1,var2,var3) var1##_##var2##_##var3
#define QUOTE(var1) #var1
#ifdef MODULAR
@ -712,29 +733,29 @@ Examples:
Author:
Sickboy
------------------------------------------- */
#define ISNILS(VARIABLE,DEFAULT_VALUE) if (isNil #VARIABLE) then { ##VARIABLE = ##DEFAULT_VALUE }
#define ISNILS(VARIABLE,DEFAULT_VALUE) if (isNil #VARIABLE) then { VARIABLE = DEFAULT_VALUE }
#define ISNILS2(var1,var2,var3,var4) ISNILS(TRIPLES(var1,var2,var3),var4)
#define ISNILS3(var1,var2,var3) ISNILS(DOUBLES(var1,var2),var3)
#define ISNIL(var1,var2) ISNILS2(PREFIX,COMPONENT,var1,var2)
#define ISNILMAIN(var1,var2) ISNILS3(PREFIX,var1,var2)
#define CREATELOGICS(var1,var2) ##var1##_##var2## = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit ["LOGIC", [0, 0, 0], [], 0, "NONE"]
#define CREATELOGICLOCALS(var1,var2) ##var1##_##var2## = "LOGIC" createVehicleLocal [0, 0, 0]
#define CREATELOGICGLOBALS(var1,var2) ##var1##_##var2## = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit ["LOGIC", [0, 0, 0], [], 0, "NONE"]; publicVariable QUOTE(DOUBLES(var1,var2))
#define CREATELOGICGLOBALTESTS(var1,var2) ##var1##_##var2## = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit [QUOTE(DOUBLES(ADDON,logic)), [0, 0, 0], [], 0, "NONE"]
#define CREATELOGICS(var1,var2) var1##_##var2 = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit ["LOGIC", [0, 0, 0], [], 0, "NONE"]
#define CREATELOGICLOCALS(var1,var2) var1##_##var2 = "LOGIC" createVehicleLocal [0, 0, 0]
#define CREATELOGICGLOBALS(var1,var2) var1##_##var2 = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit ["LOGIC", [0, 0, 0], [], 0, "NONE"]; publicVariable QUOTE(DOUBLES(var1,var2))
#define CREATELOGICGLOBALTESTS(var1,var2) var1##_##var2 = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit [QUOTE(DOUBLES(ADDON,logic)), [0, 0, 0], [], 0, "NONE"]
#define GETVARS(var1,var2,var3) (##var1##_##var2 getVariable #var3)
#define GETVARS(var1,var2,var3) (var1##_##var2 getVariable #var3)
#define GETVARMAINS(var1,var2) GETVARS(var1,MAINLOGIC,var2)
#ifndef PATHTO_SYS
#define PATHTO_SYS(var1,var2,var3) \MAINPREFIX\##var1\SUBPREFIX\##var2\##var3.sqf
#define PATHTO_SYS(var1,var2,var3) \MAINPREFIX\var1\SUBPREFIX\var2\var3.sqf
#endif
#ifndef PATHTOF_SYS
#define PATHTOF_SYS(var1,var2,var3) \MAINPREFIX\##var1\SUBPREFIX\##var2\##var3
#define PATHTOF_SYS(var1,var2,var3) \MAINPREFIX\var1\SUBPREFIX\var2\var3
#endif
#ifndef PATHTOF2_SYS
#define PATHTOF2_SYS(var1,var2,var3) MAINPREFIX\##var1\SUBPREFIX\##var2\##var3
#define PATHTOF2_SYS(var1,var2,var3) MAINPREFIX\var1\SUBPREFIX\var2\var3
#endif
#define PATHTO_R(var1) PATHTOF2_SYS(PREFIX,COMPONENT_C,var1)
@ -760,9 +781,9 @@ Author:
#define COMPILE_FILE_SYS(var1,var2,var3) COMPILE_FILE2_SYS('PATHTO_SYS(var1,var2,var3)')
#define COMPILE_FILE_CFG_SYS(var1,var2,var3) COMPILE_FILE2_CFG_SYS('PATHTO_SYS(var1,var2,var3)')
#define SETVARS(var1,var2) ##var1##_##var2 setVariable
#define SETVARS(var1,var2) var1##_##var2 setVariable
#define SETVARMAINS(var1) SETVARS(var1,MAINLOGIC)
#define GVARMAINS(var1,var2) ##var1##_##var2##
#define GVARMAINS(var1,var2) var1##_##var2
#define CFGSETTINGSS(var1,var2) configFile >> "CfgSettings" >> #var1 >> #var2
//#define SETGVARS(var1,var2,var3) ##var1##_##var2##_##var3 =
//#define SETGVARMAINS(var1,var2) ##var1##_##var2 =
@ -773,9 +794,9 @@ Author:
// #define PREP_SYS2(var1,var2,var3,var4) ##var1##_##var2##_fnc_##var4 = { ##var1##_##var2##_fnc_##var4 = COMPILE_FILE_SYS(var1,var3,DOUBLES(fnc,var4)); if (isNil "_this") then { call ##var1##_##var2##_fnc_##var4 } else { _this call ##var1##_##var2##_fnc_##var4 } }
// Compile-Once, at Macro. As opposed to Compile-Once, on first use.
#define PREPMAIN_SYS(var1,var2,var3) ##var1##_fnc_##var3 = COMPILE_FILE_SYS(var1,var2,DOUBLES(fnc,var3))
#define PREP_SYS(var1,var2,var3) ##var1##_##var2##_fnc_##var3 = COMPILE_FILE_SYS(var1,var2,DOUBLES(fnc,var3))
#define PREP_SYS2(var1,var2,var3,var4) ##var1##_##var2##_fnc_##var4 = COMPILE_FILE_SYS(var1,var3,DOUBLES(fnc,var4))
#define PREPMAIN_SYS(var1,var2,var3) var1##_fnc_##var3 = COMPILE_FILE_SYS(var1,var2,DOUBLES(fnc,var3))
#define PREP_SYS(var1,var2,var3) var1##_##var2##_fnc_##var3 = COMPILE_FILE_SYS(var1,var2,DOUBLES(fnc,var3))
#define PREP_SYS2(var1,var2,var3,var4) var1##_##var2##_fnc_##var4 = COMPILE_FILE_SYS(var1,var3,DOUBLES(fnc,var4))
#define LSTR(var1) TRIPLES(ADDON,STR,var1)
@ -867,7 +888,7 @@ Author:
#define GETVAR(var1) GETVARS(PREFIX,COMPONENT,var1)
#define SETVAR SETVARS(PREFIX,COMPONENT)
#define SETVARMAIN SETVARMAINS(PREFIX)
#define IFCOUNT(var1,var2,var3) if (count ##var1 > ##var2) then { ##var3 = ##var1 select ##var2 };
#define IFCOUNT(var1,var2,var3) if (count var1 > var2) then { var3 = var1 select var2 };
//#define PREP(var1) PREP_SYS(PREFIX,COMPONENT_F,var1)
@ -1039,7 +1060,7 @@ Parameters:
Author:
Spooner
------------------------------------------- */
#define IS_META_SYS(VAR,TYPE) (if (isNil {VAR}) then { false } else { (VAR) isEqualType TYPE })
#define IS_META_SYS(VAR,TYPE) (if (isNil {VAR}) then {false} else {(VAR) isEqualType TYPE})
#define IS_ARRAY(VAR) IS_META_SYS(VAR,[])
#define IS_BOOL(VAR) IS_META_SYS(VAR,false)
#define IS_CODE(VAR) IS_META_SYS(VAR,{})
@ -1057,10 +1078,10 @@ Author:
#define IS_BOOLEAN(VAR) IS_BOOL(VAR)
#define IS_FUNCTION(VAR) IS_CODE(VAR)
#define IS_INTEGER(VAR) if ( IS_SCALAR(VAR) ) then { (floor(VAR) == (VAR)) } else { false }
#define IS_INTEGER(VAR) (if (IS_SCALAR(VAR)) then {floor (VAR) == (VAR)} else {false})
#define IS_NUMBER(VAR) IS_SCALAR(VAR)
#define FLOAT_TO_STRING(num) (str parseNumber (str (_this%_this) + str floor abs _this) + "." + (str (abs _this-floor abs _this) select [2]) + "0")
#define FLOAT_TO_STRING(num) (if (_this == 0) then {"0"} else {str parseNumber (str (_this % _this) + str floor abs _this) + "." + (str (abs _this - floor abs _this) select [2]) + "0"})
/* -------------------------------------------
Macro: SCRIPT()
@ -1173,6 +1194,9 @@ Author:
#define ELSTRING(var1,var2) QUOTE(TRIPLES(STR,DOUBLES(PREFIX,var1),var2))
#define CSTRING(var1) QUOTE(TRIPLES($STR,ADDON,var1))
#define ECSTRING(var1,var2) QUOTE(TRIPLES($STR,DOUBLES(PREFIX,var1),var2))
#define LLSTRING(var1) localize QUOTE(TRIPLES(STR,ADDON,var1))
#define LELSTRING(var1,var2) localize QUOTE(TRIPLES(STR,DOUBLES(PREFIX,var1),var2))
#endif
@ -1704,3 +1728,36 @@ Author:
commy2
------------------------------------------- */
#define IS_ADMIN_LOGGED serverCommandAvailable "#shutdown"
/* -------------------------------------------
Macro: FILE_EXISTS
Check if a file exists on machines with interface
Reports "false" if the file does not exist and throws an error in RPT.
Parameters:
FILE - Path to the file
Example:
(begin example)
// print "true" if file exists
systemChat str FILE_EXISTS("\A3\ui_f\data\igui\cfg\cursors\weapon_ca.paa");
(end)
Author:
commy2
------------------------------------------- */
#define FILE_EXISTS(FILE) (call {\
private _return = false;\
isNil {\
private _control = (uiNamespace getVariable ["RscDisplayMain", displayNull]) ctrlCreate ["RscHTML", -1];\
if (isNull _control) then {\
_return = loadFile (FILE) != "";\
} else {\
_control htmlLoad (FILE);\
_return = ctrlHTMLLoaded _control;\
ctrlDelete _control;\
};\
};\
_return\
})

View File

@ -0,0 +1,110 @@
/*
Header: script_xeh.hpp
Description:
Used internally.
*/
/////////////////////////////////////////////////////////////////////////////////
// MACRO: EXTENDED_EVENTHANDLERS
// Add all XEH event handlers
/////////////////////////////////////////////////////////////////////////////////
#define EXTENDED_EVENTHANDLERS init = "call cba_xeh_fnc_init"; \
fired = "call cba_xeh_fnc_fired"; \
animChanged = "call cba_xeh_fnc_animChanged"; \
animDone = "call cba_xeh_fnc_animDone"; \
animStateChanged = "call cba_xeh_fnc_animStateChanged"; \
containerClosed = "call cba_xeh_fnc_containerClosed"; \
containerOpened = "call cba_xeh_fnc_containerOpened"; \
controlsShifted = "call cba_xeh_fnc_controlsShifted"; \
dammaged = "call cba_xeh_fnc_dammaged"; \
engine = "call cba_xeh_fnc_engine"; \
epeContact = "call cba_xeh_fnc_epeContact"; \
epeContactEnd = "call cba_xeh_fnc_epeContactEnd"; \
epeContactStart = "call cba_xeh_fnc_epeContactStart"; \
explosion = "call cba_xeh_fnc_explosion"; \
firedNear = "call cba_xeh_fnc_firedNear"; \
fuel = "call cba_xeh_fnc_cba_xeh_fuel"; \
gear = "call cba_xeh_fnc_gear"; \
getIn = "call cba_xeh_fnc_getIn"; \
getInMan = "call cba_xeh_fnc_getInMan"; \
getOut = "call cba_xeh_fnc_getOut"; \
getOutMan = "call cba_xeh_fnc_getOutMan"; \
handleHeal = "call cba_xeh_fnc_handleHeal"; \
hit = "call cba_xeh_fnc_hit"; \
hitPart = "call cba_xeh_fnc_hitPart"; \
incomingMissile = "call cba_xeh_fnc_incomingMissile"; \
inventoryClosed = "call cba_xeh_fnc_inventoryClosed"; \
inventoryOpened = "call cba_xeh_fnc_inventoryOpened"; \
killed = "call cba_xeh_fnc_killed"; \
landedTouchDown = "call cba_xeh_fnc_landedTouchDown"; \
landedStopped = "call cba_xeh_fnc_landedStopped"; \
local = "call cba_xeh_fnc_local"; \
respawn = "call cba_xeh_fnc_respawn"; \
put = "call cba_xeh_fnc_put"; \
take = "call cba_xeh_fnc_take"; \
seatSwitched = "call cba_xeh_fnc_seatSwitched"; \
seatSwitchedMan = "call cba_xeh_fnc_seatSwitchedMan"; \
soundPlayed = "call cba_xeh_fnc_soundPlayed"; \
weaponAssembled = "call cba_xeh_fnc_weaponAssembled"; \
weaponDisassembled = "call cba_xeh_fnc_weaponDisassembled"; \
weaponDeployed = "call cba_xeh_fnc_weaponDeployed"; \
weaponRested = "call cba_xeh_fnc_weaponRested"; \
reloaded = "call cba_xeh_fnc_reloaded"; \
firedMan = "call cba_xeh_fnc_firedMan"; \
turnIn = "call cba_xeh_fnc_turnIn"; \
turnOut = "call cba_xeh_fnc_turnOut"; \
deleted = "call cba_xeh_fnc_deleted";
/*
MACRO: DELETE_EVENTHANDLERS
Removes all event handlers.
*/
#define DELETE_EVENTHANDLERS init = ""; \
fired = ""; \
animChanged = ""; \
animDone = ""; \
animStateChanged = ""; \
containerClosed = ""; \
containerOpened = ""; \
controlsShifted = ""; \
dammaged = ""; \
engine = ""; \
epeContact = ""; \
epeContactEnd = ""; \
epeContactStart = ""; \
explosion = ""; \
firedNear = ""; \
fuel = ""; \
gear = ""; \
getIn = ""; \
getInMan = ""; \
getOut = ""; \
getOutMan = ""; \
handleHeal = ""; \
hit = ""; \
hitPart = ""; \
incomingMissile = ""; \
inventoryClosed = ""; \
inventoryOpened = ""; \
killed = ""; \
landedTouchDown = ""; \
landedStopped = ""; \
local = ""; \
respawn = ""; \
put = ""; \
take = ""; \
seatSwitched = ""; \
seatSwitchedMan = ""; \
soundPlayed = ""; \
weaponAssembled = ""; \
weaponDisassembled = ""; \
weaponDeployed = ""; \
weaponRested = ""; \
reloaded = ""; \
firedMan = ""; \
turnIn = ""; \
turnOut = ""; \
deleted = "";

View File

@ -43,14 +43,13 @@
interval = 1; \
}; \
}
#define MERGE(var1,var2) ##var1####var2
#define EFFECT_AFTER_WATER(color) class ACE_SmokeAfterWater##color##: ACE_SmokeAfterWaterWhite { \
#define EFFECT_AFTER_WATER(color) class ACE_SmokeAfterWater##color: ACE_SmokeAfterWaterWhite { \
class SmokeAfterWater: SmokeAfterWater { \
type = QUOTE(MERGE(ACE_SmokeAfterWater,color)); \
type = QUOTE(ACE_SmokeAfterWater##color); \
}; \
}
#define CLOUDLET_UNDERWATER(color) class SmokeShell##color##UW; \
class SmokeShell##color##2UW: SmokeShell##color##UW { \
postEffects = QUOTE(MERGE(ACE_SmokeAfterWater,color)); \
postEffects = QUOTE(ACE_SmokeAfterWater##color); \
}

View File

@ -1,102 +0,0 @@
/*
Header: script_xeh.hpp
Description:
Used internally.
*/
/////////////////////////////////////////////////////////////////////////////////
// MACRO: EXTENDED_EVENTHANDLERS
// Add all XEH event handlers
/////////////////////////////////////////////////////////////////////////////////
#define EXTENDED_EVENTHANDLERS init = "(_this select 0) call CBA_fnc_initEvents; (_this select 0) call CBA_fnc_init"; \
fired = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_fired"")"; \
animChanged = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_animChanged"")"; \
animDone = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_animDone"")"; \
animStateChanged = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_animStateChanged"")"; \
containerClosed = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_containerClosed"")"; \
containerOpened = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_containerOpened"")"; \
controlsShifted = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_controlsShifted"")"; \
dammaged = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_dammaged"")"; \
engine = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_engine"")"; \
epeContact = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_epeContact"")"; \
epeContactEnd = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_epeContactEnd"")"; \
epeContactStart = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_epeContactStart"")"; \
explosion = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_explosion"")"; \
firedNear = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_firedNear"")"; \
fuel = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_cba_xeh_fuel"")"; \
gear = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_gear"")"; \
getIn = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_getIn"")"; \
getInMan = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_getInMan"")"; \
getOut = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_getOut"")"; \
getOutMan = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_getOutMan"")"; \
handleHeal = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_handleHeal"")"; \
hit = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_hit"")"; \
hitPart = "{_this call _x} forEach ((_this select 0 select 0) getVariable ""cba_xeh_hitPart"")"; \
incomingMissile = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_incomingMissile"")"; \
inventoryClosed = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_inventoryClosed"")"; \
inventoryOpened = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_inventoryOpened"")"; \
killed = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_killed"")"; \
landedTouchDown = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_landedTouchDown"")"; \
landedStopped = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_landedStopped"")"; \
local = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_local"")"; \
respawn = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_respawn"")"; \
put = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_put"")"; \
take = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_take"")"; \
seatSwitched = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_seatSwitched"")"; \
seatSwitchedMan = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_seatSwitchedMan"")"; \
soundPlayed = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_soundPlayed"")"; \
weaponAssembled = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_weaponAssembled"")"; \
weaponDisassembled = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_weaponDisassembled"")"; \
weaponDeployed = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_weaponDeployed"")"; \
weaponRested = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_weaponRested"")"; \
reloaded = "{_this call _x} forEach ((_this select 0) getVariable ""cba_xeh_reloaded"")";
/*
MACRO: DELETE_EVENTHANDLERS
Removes all event handlers.
*/
#define DELETE_EVENTHANDLERS init = ""; \
fired = ""; \
animChanged = ""; \
animDone = ""; \
animStateChanged = ""; \
containerClosed = ""; \
containerOpened = ""; \
controlsShifted = ""; \
dammaged = ""; \
engine = ""; \
epeContact = ""; \
epeContactEnd = ""; \
epeContactStart = ""; \
explosion = ""; \
firedNear = ""; \
fuel = ""; \
gear = ""; \
getIn = ""; \
getInMan = ""; \
getOut = ""; \
getOutMan = ""; \
handleHeal = ""; \
hit = ""; \
hitPart = ""; \
incomingMissile = ""; \
inventoryClosed = ""; \
inventoryOpened = ""; \
killed = ""; \
landedTouchDown = ""; \
landedStopped = ""; \
local = ""; \
respawn = ""; \
put = ""; \
take = ""; \
seatSwitched = ""; \
soundPlayed = ""; \
weaponAssembled = ""; \
weaponDisassembled = ""; \
weaponDeployed = ""; \
weaponRested = ""; \
reloaded = "";

130
tools/make.ps1 Normal file
View File

@ -0,0 +1,130 @@
$projectRoot = Split-Path -Parent $PSScriptRoot
$releasePage = "https://github.com/KoffeinFlummi/armake/releases"
$downloadPage = "https://github.com/KoffeinFlummi/armake/releases/download/v{0}/armake_v{0}.zip"
$armake = "$projectRoot\tools\armake.exe"
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
function Compare-VersionNewerThan {
param(
[Parameter(Mandatory=$True)]
$version1,
[Parameter(Mandatory=$True)]
$version2
)
$version1 = $version1.Split(".") | % {[int] $_}
$version2 = $version2.Split(".") | % {[int] $_}
$newer = $False
for ($i = 0; $i -lt $version1.Length; $i++) {
if ($version1[$i] -gt $version2[$i]) {
$newer = $True
break
}
}
$newer
}
function Get-InstalledArmakeVersion {
if (Test-Path $armake) {
$version = & $armake --version
$version = $version.Substring(1)
} else {
$version = "0.0.0"
}
$version
}
function Get-LatestArmakeVersion {
$client = New-Object Net.WebClient
$content = $client.DownloadString($releasePage)
$client.dispose()
$match = $content -match "<a href="".*?/releases/download/v(.*?)/.*?.zip"".*?>"
if (!$match) {
Write-Error "Failed to find valid armake download link."
$version = "0.0.0"
} else {
$version = $matches[1]
}
$version
}
function Update-Armake {
param(
[Parameter(Mandatory=$True)]
$url
)
New-Item "$PSScriptRoot\temp" -ItemType "directory" -Force | Out-Null
Write-Output "Downloading armake..."
$client = New-Object Net.WebClient
$client.DownloadFile($url, "$PSScriptRoot\temp\armake.zip")
$client.dispose()
Write-Output "Download complete, unpacking..."
Expand-Archive "$PSScriptRoot\temp\armake.zip" "$PSScriptRoot\temp\armake"
Remove-Item "$PSScriptRoot\temp\armake.zip"
if ([Environment]::Is64BitProcess) {
$binary = Get-ChildItem -Path "$PSScriptRoot\temp\armake" -Include "*.exe" -Recurse | Where-Object {$_.Name -match ".*w64.exe"}
} else {
$binary = Get-ChildItem -Path "$PSScriptRoot\temp\armake" -Include "*.exe" -Recurse | Where-Object {$_.Name -match ".*w64.exe"}
}
Move-Item $binary.FullName $armake -Force
Remove-Item "$PSScriptRoot\temp" -Recurse -Force
}
function Build-Directory {
param(
[Parameter(Mandatory=$True)]
$directory
)
$component = $directory.Name
$fullPath = $directory.FullName
$parent = $directory.Parent
$binPath = "$projectRoot\@ace\$parent\ace_$component.pbo"
Write-Output " PBO $component"
& $armake build -i "$projectRoot\include" -w unquoted-string -w redefinition-wo-undef -f $fullPath $binPath
if ($LastExitCode -ne 0) {
Write-Error "Failed to build $component."
}
}
function Main {
$installed = Get-InstalledArmakeVersion
$latest = Get-LatestArmakeVersion
if (Compare-VersionNewerThan $latest $installed) {
Write-Output "Found newer version of armake:" " Installed: $installed" " Latest: $latest"
Update-Armake ($downloadPage -f $latest)
Write-Output "Update complete, armake up-to-date."
}
$orgLocation = Get-Location
Set-Location -Path $projectRoot
foreach ($folder in "addons", "optionals") {
New-Item "$projectRoot\@ace\$folder" -ItemType "directory" -Force | Out-Null
foreach ($component in Get-ChildItem -Directory "$PSScriptRoot\..\$folder") {
Build-Directory $component
}
}
Set-Location $orgLocation
}
Main

View File

@ -96,10 +96,10 @@ def main():
return -1
try:
shutil.copytree(os.path.join(projectpath, "tools", "cba"), CBA)
shutil.copytree(os.path.join(projectpath, "include", "x", "cba"), CBA)
except:
raise
print("Something went wrong while copying CBA includes. Please copy tools\\cba to {} manually.".format(CBA))
print("Something went wrong while copying CBA includes. Please copy include\\x\\cba to {} manually.".format(CBA))
return 7
print("# CBA includes copied successfully to {}.".format(CBA))