mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
commit
2d123f9fbb
16
.github/workflows/arma.yml
vendored
16
.github/workflows/arma.yml
vendored
@ -34,14 +34,16 @@ jobs:
|
|||||||
|
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: acemod/armake:master
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout the source code
|
- name: Checkout the source code
|
||||||
uses: actions/checkout@master
|
uses: actions/checkout@master
|
||||||
- name: Build (armake)
|
- name: Build using HEMTT
|
||||||
run: armake --version && make -j4
|
uses: arma-actions/hemtt@master
|
||||||
- name: Upload Artifact
|
|
||||||
uses: actions/upload-artifact@master
|
|
||||||
with:
|
with:
|
||||||
name: ace3-${{ github.sha }}-nobin
|
command: build --ci # no --release due to https://github.com/synixebrett/HEMTT/issues/227
|
||||||
path: '@ace'
|
# https://github.com/actions/upload-artifact/issues/3#issuecomment-524442814
|
||||||
|
# - name: Upload Artifact
|
||||||
|
# uses: actions/upload-artifact@master
|
||||||
|
# with:
|
||||||
|
# name: ace3-${{ github.sha }}-nobin
|
||||||
|
# path: '@ace'
|
||||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,8 +1,10 @@
|
|||||||
@*
|
@*
|
||||||
*.zip
|
*.zip
|
||||||
release/*
|
release/*
|
||||||
|
releases/*
|
||||||
|
hemtt
|
||||||
|
hemtt.exe
|
||||||
tools/temp
|
tools/temp
|
||||||
tools/armake.exe
|
|
||||||
*.cache
|
*.cache
|
||||||
*.pbo
|
*.pbo
|
||||||
texHeaders.bin
|
texHeaders.bin
|
||||||
|
91
Makefile
91
Makefile
@ -1,91 +0,0 @@
|
|||||||
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 *.so 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,4 +1,3 @@
|
|||||||
|
|
||||||
class Extended_PostInit_EventHandlers {
|
class Extended_PostInit_EventHandlers {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
clientInit = QUOTE(call COMPILE_FILE(XEH_postInitClient));
|
clientInit = QUOTE(call COMPILE_FILE(XEH_postInitClient));
|
||||||
|
@ -7,18 +7,17 @@ class CfgVehicles {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class Item_Base_F;
|
class Item_Base_F;
|
||||||
|
|
||||||
class ACE_Flashlight_MX991Item: Item_Base_F {
|
class ACE_Flashlight_MX991Item: Item_Base_F {
|
||||||
scope = 2;
|
scope = 2;
|
||||||
scopeCurator = 2;
|
scopeCurator = 2;
|
||||||
displayName = CSTRING(MX991_DisplayName);
|
displayName = CSTRING(MX991_DisplayName);
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
vehicleClass = "WeaponAccessories";
|
editorCategory = "EdCat_Equipment";
|
||||||
|
editorSubcategory = "EdSubcat_InventoryItems";
|
||||||
|
vehicleClass = "Items";
|
||||||
|
|
||||||
class TransportItems {
|
class TransportItems {
|
||||||
class ACE_Flashlight_MX991 {
|
MACRO_ADDITEM(ACE_Flashlight_MX991,1);
|
||||||
name = "ACE_Flashlight_MX991";
|
|
||||||
count = 1;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -27,12 +26,12 @@ class CfgVehicles {
|
|||||||
scopeCurator = 2;
|
scopeCurator = 2;
|
||||||
displayName = CSTRING(KSF1_DisplayName);
|
displayName = CSTRING(KSF1_DisplayName);
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
vehicleClass = "WeaponAccessories";
|
editorCategory = "EdCat_Equipment";
|
||||||
|
editorSubcategory = "EdSubcat_InventoryItems";
|
||||||
|
vehicleClass = "Items";
|
||||||
|
|
||||||
class TransportItems {
|
class TransportItems {
|
||||||
class ACE_Flashlight_KSF1 {
|
MACRO_ADDITEM(ACE_Flashlight_KSF1,1);
|
||||||
name = "ACE_Flashlight_KSF1";
|
|
||||||
count = 1;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -41,38 +40,52 @@ class CfgVehicles {
|
|||||||
scopeCurator = 2;
|
scopeCurator = 2;
|
||||||
displayName = CSTRING(XL50_DisplayName);
|
displayName = CSTRING(XL50_DisplayName);
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
vehicleClass = "WeaponAccessories";
|
editorCategory = "EdCat_Equipment";
|
||||||
|
editorSubcategory = "EdSubcat_InventoryItems";
|
||||||
|
vehicleClass = "Items";
|
||||||
|
|
||||||
class TransportItems {
|
class TransportItems {
|
||||||
class ACE_Flashlight_XL50 {
|
MACRO_ADDITEM(ACE_Flashlight_XL50,1);
|
||||||
name = "ACE_Flashlight_XL50";
|
};
|
||||||
count = 1;
|
};
|
||||||
};
|
|
||||||
|
class Pistol_Base_F;
|
||||||
|
class ACE_Item_Flashlight_Maglite_ML300L: Pistol_Base_F {
|
||||||
|
scope = 2;
|
||||||
|
scopeCurator = 2;
|
||||||
|
displayName = CSTRING(Maglite_ML300L_DisplayName);
|
||||||
|
author = ECSTRING(common,ACETeam);
|
||||||
|
editorCategory = "EdCat_Equipment";
|
||||||
|
editorSubcategory = "EdSubcat_InventoryItems";
|
||||||
|
vehicleClass = "Items";
|
||||||
|
|
||||||
|
class TransportItems {
|
||||||
|
MACRO_ADDITEM(ACE_Flashlight_Maglite_ML300L,1);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class NATO_Box_Base;
|
class NATO_Box_Base;
|
||||||
class EAST_Box_Base;
|
|
||||||
class IND_Box_Base;
|
|
||||||
class FIA_Box_Base_F;
|
|
||||||
|
|
||||||
class Box_NATO_Support_F: NATO_Box_Base {
|
class Box_NATO_Support_F: NATO_Box_Base {
|
||||||
class TransportItems {
|
class TransportItems {
|
||||||
MACRO_ADDITEM(ACE_Flashlight_MX991,12);
|
MACRO_ADDITEM(ACE_Flashlight_MX991,12);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class EAST_Box_Base;
|
||||||
class Box_East_Support_F: EAST_Box_Base {
|
class Box_East_Support_F: EAST_Box_Base {
|
||||||
class TransportItems {
|
class TransportItems {
|
||||||
MACRO_ADDITEM(ACE_Flashlight_KSF1,12);
|
MACRO_ADDITEM(ACE_Flashlight_KSF1,12);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class IND_Box_Base;
|
||||||
class Box_IND_Support_F: IND_Box_Base {
|
class Box_IND_Support_F: IND_Box_Base {
|
||||||
class TransportItems {
|
class TransportItems {
|
||||||
MACRO_ADDITEM(ACE_Flashlight_XL50,12);
|
MACRO_ADDITEM(ACE_Flashlight_XL50,12);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class FIA_Box_Base_F;
|
||||||
class Box_FIA_Support_F: FIA_Box_Base_F {
|
class Box_FIA_Support_F: FIA_Box_Base_F {
|
||||||
class TransportItems {
|
class TransportItems {
|
||||||
MACRO_ADDITEM(ACE_Flashlight_MX991,12);
|
MACRO_ADDITEM(ACE_Flashlight_MX991,12);
|
||||||
@ -84,6 +97,7 @@ class CfgVehicles {
|
|||||||
MACRO_ADDITEM(ACE_Flashlight_MX991,12);
|
MACRO_ADDITEM(ACE_Flashlight_MX991,12);
|
||||||
MACRO_ADDITEM(ACE_Flashlight_KSF1,12);
|
MACRO_ADDITEM(ACE_Flashlight_KSF1,12);
|
||||||
MACRO_ADDITEM(ACE_Flashlight_XL50,12);
|
MACRO_ADDITEM(ACE_Flashlight_XL50,12);
|
||||||
|
MACRO_ADDITEM(ACE_Flashlight_Maglite_ML300L,2);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,17 +1,81 @@
|
|||||||
class CfgWeapons {
|
class CfgWeapons {
|
||||||
|
class Pistol;
|
||||||
|
class Pistol_Base_F: Pistol {
|
||||||
|
class WeaponSlotsInfo;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Flashlight_Maglite_ML300L: Pistol_Base_F {
|
||||||
|
author = ECSTRING(common,ACETeam);
|
||||||
|
scope = 2;
|
||||||
|
displayName = CSTRING(Maglite_ML300L_DisplayName);
|
||||||
|
descriptionShort = CSTRING(Maglite_ML300L_Description);
|
||||||
|
model = QPATHTOF(data\maglite_ml300l.p3d);
|
||||||
|
picture = QPATHTOF(UI\maglite_ml300l_ca.paa);
|
||||||
|
cursor = "";
|
||||||
|
cursorAim = "";
|
||||||
|
|
||||||
|
// binarized rtm, animation in "extras/assets/maglite"
|
||||||
|
handAnim[] = {"OFP2_ManSkeleton", QPATHTOF(data\maglite_ml300l.rtm)};
|
||||||
|
recoil = "empty";
|
||||||
|
muzzlePos = "flash";
|
||||||
|
muzzleEnd = "flash dir";
|
||||||
|
magazines[] = {"FakeMagazine"}; // Required for the weapon info box to work correctly.
|
||||||
|
textureType = "default"; // empty texture
|
||||||
|
weaponInfoType = "RscWeaponEmpty";
|
||||||
|
|
||||||
|
class WeaponSlotsInfo: WeaponSlotsInfo {
|
||||||
|
holsterScale = 0; // Item does not fit a pistol holster, so hide it.
|
||||||
|
mass = 20;
|
||||||
|
|
||||||
|
class MuzzleSlot {};
|
||||||
|
class CowsSlot {};
|
||||||
|
};
|
||||||
|
|
||||||
|
inertia = 0.2;
|
||||||
|
dexterity = 1.8;
|
||||||
|
|
||||||
|
class FlashLight {
|
||||||
|
color[] = {180,180,190};
|
||||||
|
ambient[] = {0.9,0.81,0.7};
|
||||||
|
intensity = 85;
|
||||||
|
size = 1;
|
||||||
|
innerAngle = 5;
|
||||||
|
outerAngle = 80;
|
||||||
|
coneFadeCoef = 8;
|
||||||
|
position = "flash dir";
|
||||||
|
direction = "flash";
|
||||||
|
useFlare = 1;
|
||||||
|
flareSize = 0.8;
|
||||||
|
flareMaxDistance = 100;
|
||||||
|
dayLight = 1;
|
||||||
|
|
||||||
|
class Attenuation {
|
||||||
|
start = 0.25;
|
||||||
|
constant = 0;
|
||||||
|
linear = 0;
|
||||||
|
quadratic = 1;
|
||||||
|
hardLimitStart = 140;
|
||||||
|
hardLimitEnd = 150;
|
||||||
|
};
|
||||||
|
|
||||||
|
scale[] = {0};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
class ACE_ItemCore;
|
class ACE_ItemCore;
|
||||||
class CBA_MiscItem_ItemInfo;
|
class CBA_MiscItem_ItemInfo;
|
||||||
|
|
||||||
class ACE_Flashlight_MX991: ACE_ItemCore {
|
class ACE_Flashlight_MX991: ACE_ItemCore {
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
|
scope = 2;
|
||||||
displayName = CSTRING(MX991_DisplayName);
|
displayName = CSTRING(MX991_DisplayName);
|
||||||
descriptionShort = CSTRING(MX991_Description);
|
descriptionShort = CSTRING(MX991_Description);
|
||||||
model = QPATHTOF(data\MX_991.p3d);
|
model = QPATHTOF(data\mx_991.p3d);
|
||||||
picture = QPATHTOF(UI\mx991_ca.paa);
|
picture = QPATHTOF(UI\mx_991_ca.paa);
|
||||||
scope = 2;
|
|
||||||
class ItemInfo: CBA_MiscItem_ItemInfo {
|
class ItemInfo: CBA_MiscItem_ItemInfo {
|
||||||
mass = 1;
|
mass = 4;
|
||||||
|
|
||||||
class FlashLight {
|
class FlashLight {
|
||||||
ACE_Flashlight_Colour = "red";
|
ACE_Flashlight_Colour = "red";
|
||||||
ACE_Flashlight_Beam = QPATHTOF(UI\Flashlight_beam_red_ca.paa);
|
ACE_Flashlight_Beam = QPATHTOF(UI\Flashlight_beam_red_ca.paa);
|
||||||
@ -22,13 +86,15 @@ class CfgWeapons {
|
|||||||
|
|
||||||
class ACE_Flashlight_KSF1: ACE_ItemCore {
|
class ACE_Flashlight_KSF1: ACE_ItemCore {
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
|
scope = 2;
|
||||||
displayName = CSTRING(KSF1_DisplayName);
|
displayName = CSTRING(KSF1_DisplayName);
|
||||||
descriptionShort = CSTRING(KSF1_Description);
|
descriptionShort = CSTRING(KSF1_Description);
|
||||||
model = QPATHTOF(data\KSF_1.p3d);
|
model = QPATHTOF(data\ksf_1.p3d);
|
||||||
picture = QPATHTOF(UI\ksf1_ca.paa);
|
picture = QPATHTOF(UI\ksf_1_ca.paa);
|
||||||
scope = 2;
|
|
||||||
class ItemInfo: CBA_MiscItem_ItemInfo {
|
class ItemInfo: CBA_MiscItem_ItemInfo {
|
||||||
mass = 1;
|
mass = 4;
|
||||||
|
|
||||||
class FlashLight {
|
class FlashLight {
|
||||||
ACE_Flashlight_Colour = "red";
|
ACE_Flashlight_Colour = "red";
|
||||||
ACE_Flashlight_Beam = QPATHTOF(UI\Flashlight_beam_red_ca.paa);
|
ACE_Flashlight_Beam = QPATHTOF(UI\Flashlight_beam_red_ca.paa);
|
||||||
@ -39,13 +105,15 @@ class CfgWeapons {
|
|||||||
|
|
||||||
class ACE_Flashlight_XL50: ACE_ItemCore {
|
class ACE_Flashlight_XL50: ACE_ItemCore {
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
|
scope = 2;
|
||||||
displayName = CSTRING(XL50_DisplayName);
|
displayName = CSTRING(XL50_DisplayName);
|
||||||
descriptionShort = CSTRING(XL50_Description);
|
descriptionShort = CSTRING(XL50_Description);
|
||||||
model = QPATHTOF(data\Maglight.p3d);
|
model = QPATHTOF(data\maglite_xl50.p3d);
|
||||||
picture = QPATHTOF(UI\xl50_ca.paa);
|
picture = QPATHTOF(UI\maglite_xl50_ca.paa);
|
||||||
scope = 2;
|
|
||||||
class ItemInfo: CBA_MiscItem_ItemInfo {
|
class ItemInfo: CBA_MiscItem_ItemInfo {
|
||||||
mass = 1;
|
mass = 3;
|
||||||
|
|
||||||
class FlashLight {
|
class FlashLight {
|
||||||
ACE_Flashlight_Colour = "white";
|
ACE_Flashlight_Colour = "white";
|
||||||
ACE_Flashlight_Beam = QPATHTOF(UI\Flashlight_beam_white_ca.paa);
|
ACE_Flashlight_Beam = QPATHTOF(UI\Flashlight_beam_white_ca.paa);
|
||||||
|
BIN
addons/flashlights/UI/maglite_ml300l_ca.paa
Normal file
BIN
addons/flashlights/UI/maglite_ml300l_ca.paa
Normal file
Binary file not shown.
@ -3,12 +3,22 @@
|
|||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
name = COMPONENT_NAME;
|
name = COMPONENT_NAME;
|
||||||
units[] = {};
|
units[] = {
|
||||||
weapons[] = {"ACE_Flashlight_MX991", "ACE_Flashlight_KSF1", "ACE_Flashlight_XL50"};
|
"ACE_Flashlight_MX991Item",
|
||||||
|
"ACE_Flashlight_KSF1Item",
|
||||||
|
"ACE_Flashlight_XL50Item",
|
||||||
|
"ACE_Item_Flashlight_Maglite_ML300L"
|
||||||
|
};
|
||||||
|
weapons[] = {
|
||||||
|
"ACE_Flashlight_MX991",
|
||||||
|
"ACE_Flashlight_KSF1",
|
||||||
|
"ACE_Flashlight_XL50",
|
||||||
|
"ACE_Flashlight_Maglite_ML300L"
|
||||||
|
};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_interaction"};
|
requiredAddons[] = {"ace_interaction"};
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
authors[] = {"voiper"};
|
authors[] = {"voiper","bux","HorribleGoat"};
|
||||||
url = ECSTRING(main,URL);
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -8,7 +8,7 @@ PixelShaderID="Super";
|
|||||||
VertexShaderID="Super";
|
VertexShaderID="Super";
|
||||||
|
|
||||||
class Stage1 {
|
class Stage1 {
|
||||||
texture="z\ace\addons\flashlights\data\KSF_1_nohq.paa";
|
texture="z\ace\addons\flashlights\data\textures\ksf_1_nohq.paa";
|
||||||
uvSource="tex";
|
uvSource="tex";
|
||||||
class uvTransform {
|
class uvTransform {
|
||||||
aside[]={1,0,0};
|
aside[]={1,0,0};
|
||||||
@ -48,7 +48,7 @@ class Stage4 {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
class Stage5 {
|
class Stage5 {
|
||||||
texture="z\ace\addons\flashlights\data\KSF_1_smdi.paa";
|
texture="z\ace\addons\flashlights\data\textures\ksf_1_smdi.paa";
|
||||||
uvSource="tex";
|
uvSource="tex";
|
||||||
class uvTransform {
|
class uvTransform {
|
||||||
aside[]={1,0,0};
|
aside[]={1,0,0};
|
||||||
|
BIN
addons/flashlights/data/maglite_ml300l.p3d
Normal file
BIN
addons/flashlights/data/maglite_ml300l.p3d
Normal file
Binary file not shown.
BIN
addons/flashlights/data/maglite_ml300l.rtm
Normal file
BIN
addons/flashlights/data/maglite_ml300l.rtm
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
80
addons/flashlights/data/maglite_ml300l.rvmat
Normal file
80
addons/flashlights/data/maglite_ml300l.rvmat
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
ambient[] = {1,1,1,1};
|
||||||
|
diffuse[] = {1,1,1,1};
|
||||||
|
forcedDiffuse[] = {0,0,0,0};
|
||||||
|
emmisive[] = {0,0,0,1};
|
||||||
|
specular[] = {0.6,0.6,0.6,1}; //amount of glossiness - the higher the number, the higher the glossiness
|
||||||
|
specularPower = 700; //area of glossiness - the higher the number, the smaller the area
|
||||||
|
PixelShaderID = "Super";
|
||||||
|
VertexShaderID = "Super";
|
||||||
|
|
||||||
|
class Stage1 {
|
||||||
|
texture = "z\ace\addons\flashlights\data\textures\maglite_ml300l_nohq.paa";
|
||||||
|
uvSource = "tex";
|
||||||
|
|
||||||
|
class uvTransform {
|
||||||
|
aside[] = {1,0,0};
|
||||||
|
up[] = {0,1,0};
|
||||||
|
dir[] = {0,0,1};
|
||||||
|
pos[] = {0,0,0};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class Stage2 {
|
||||||
|
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,dt)";
|
||||||
|
uvSource = "tex";
|
||||||
|
|
||||||
|
class uvTransform {
|
||||||
|
aside[] = {1,0,0};
|
||||||
|
up[] = {0,1,0};
|
||||||
|
dir[] = {0,0,1};
|
||||||
|
pos[] = {0,0,0};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class Stage3 {
|
||||||
|
texture = "#(argb,8,8,3)color(0,0,0,0,mc)";
|
||||||
|
uvSource = "tex";
|
||||||
|
|
||||||
|
class uvTransform {
|
||||||
|
aside[] = {1,0,0};
|
||||||
|
up[] = {0,1,0};
|
||||||
|
dir[] = {0,0,1};
|
||||||
|
pos[] = {0,0,0};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class Stage4 {
|
||||||
|
texture = "z\ace\addons\flashlights\data\textures\maglite_ml300l_as.paa";
|
||||||
|
uvSource = "tex";
|
||||||
|
|
||||||
|
class uvTransform {
|
||||||
|
aside[] = {1,0,0};
|
||||||
|
up[] = {0,1,0};
|
||||||
|
dir[] = {0,0,1};
|
||||||
|
pos[] = {0,0,1};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class Stage5 {
|
||||||
|
texture = "z\ace\addons\flashlights\data\textures\maglite_ml300l_smdi.paa";
|
||||||
|
uvSource = "tex";
|
||||||
|
|
||||||
|
class uvTransform {
|
||||||
|
aside[] = {1,0,0};
|
||||||
|
up[] = {0,1,0};
|
||||||
|
dir[] = {0,0,1};
|
||||||
|
pos[] = {0,0,0};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class Stage6 {
|
||||||
|
texture = "#(ai,64,64,1)fresnel(4.7,1.2)";
|
||||||
|
uvSource = "tex";
|
||||||
|
|
||||||
|
class uvTransform {
|
||||||
|
aside[] = {1,0,0};
|
||||||
|
up[] = {0,1,0};
|
||||||
|
dir[] = {0,0,1};
|
||||||
|
pos[] = {0,0,0};
|
||||||
|
};
|
||||||
|
};
|
BIN
addons/flashlights/data/maglite_xl50.p3d
Normal file
BIN
addons/flashlights/data/maglite_xl50.p3d
Normal file
Binary file not shown.
@ -8,7 +8,7 @@ PixelShaderID="Super";
|
|||||||
VertexShaderID="Super";
|
VertexShaderID="Super";
|
||||||
|
|
||||||
class Stage1 {
|
class Stage1 {
|
||||||
texture="z\ace\addons\flashlights\data\Maglite_nohq.paa";
|
texture="z\ace\addons\flashlights\data\textures\maglite_xl50_nohq.paa";
|
||||||
uvSource="tex";
|
uvSource="tex";
|
||||||
class uvTransform {
|
class uvTransform {
|
||||||
aside[]={1,0,0};
|
aside[]={1,0,0};
|
||||||
@ -48,7 +48,7 @@ class Stage4 {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
class Stage5 {
|
class Stage5 {
|
||||||
texture="z\ace\addons\flashlights\data\Maglite_smdi.paa";
|
texture="z\ace\addons\flashlights\data\textures\maglite_xl50_smdi.paa";
|
||||||
uvSource="tex";
|
uvSource="tex";
|
||||||
class uvTransform {
|
class uvTransform {
|
||||||
aside[]={1,0,0};
|
aside[]={1,0,0};
|
175
addons/flashlights/data/model.cfg
Normal file
175
addons/flashlights/data/model.cfg
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
class CfgSkeletons {
|
||||||
|
class Default {
|
||||||
|
isDiscrete = 1;
|
||||||
|
skeletonInherit = "";
|
||||||
|
skeletonBones[] = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
class OFP2_ManSkeleton {
|
||||||
|
isDiscrete = 0;
|
||||||
|
skeletonInherit = "";
|
||||||
|
skeletonBones[] = {
|
||||||
|
"Pelvis","",
|
||||||
|
"Spine","Pelvis",
|
||||||
|
"Spine1","Spine",
|
||||||
|
"Spine2","Spine1",
|
||||||
|
"Spine3","Spine2",
|
||||||
|
"Camera","Pelvis",
|
||||||
|
"weapon","Spine1",
|
||||||
|
"launcher","Spine1",
|
||||||
|
|
||||||
|
// Head skeleton in hierarchy
|
||||||
|
"neck","Spine3",
|
||||||
|
"neck1","neck",
|
||||||
|
"head","neck1",
|
||||||
|
|
||||||
|
// New facial features
|
||||||
|
"Face_Hub","head",
|
||||||
|
"Face_Jawbone","Face_Hub",
|
||||||
|
"Face_Jowl","Face_Jawbone",
|
||||||
|
"Face_chopRight","Face_Jawbone",
|
||||||
|
"Face_chopLeft","Face_Jawbone",
|
||||||
|
"Face_LipLowerMiddle","Face_Jawbone",
|
||||||
|
"Face_LipLowerLeft","Face_Jawbone",
|
||||||
|
"Face_LipLowerRight","Face_Jawbone",
|
||||||
|
"Face_Chin","Face_Jawbone",
|
||||||
|
"Face_Tongue","Face_Jawbone",
|
||||||
|
"Face_CornerRight","Face_Hub",
|
||||||
|
"Face_CheekSideRight","Face_CornerRight",
|
||||||
|
"Face_CornerLeft","Face_Hub",
|
||||||
|
"Face_CheekSideLeft","Face_CornerLeft",
|
||||||
|
"Face_CheekFrontRight","Face_Hub",
|
||||||
|
"Face_CheekFrontLeft","Face_Hub",
|
||||||
|
"Face_CheekUpperRight","Face_Hub",
|
||||||
|
"Face_CheekUpperLeft","Face_Hub",
|
||||||
|
"Face_LipUpperMiddle","Face_Hub",
|
||||||
|
"Face_LipUpperRight","Face_Hub",
|
||||||
|
"Face_LipUpperLeft","Face_Hub",
|
||||||
|
"Face_NostrilRight","Face_Hub",
|
||||||
|
"Face_NostrilLeft","Face_Hub",
|
||||||
|
"Face_Forehead","Face_Hub",
|
||||||
|
"Face_BrowFrontRight","Face_Forehead",
|
||||||
|
"Face_BrowFrontLeft","Face_Forehead",
|
||||||
|
"Face_BrowMiddle","Face_Forehead",
|
||||||
|
"Face_BrowSideRight","Face_Forehead",
|
||||||
|
"Face_BrowSideLeft","Face_Forehead",
|
||||||
|
"Face_Eyelids","Face_Hub",
|
||||||
|
"Face_EyelidUpperRight","Face_Hub",
|
||||||
|
"Face_EyelidUpperLeft","Face_Hub",
|
||||||
|
"Face_EyelidLowerRight","Face_Hub",
|
||||||
|
"Face_EyelidLowerLeft","Face_Hub",
|
||||||
|
"EyeLeft","Face_Hub",
|
||||||
|
"EyeRight","Face_Hub",
|
||||||
|
|
||||||
|
// Left upper side
|
||||||
|
"LeftShoulder","Spine3",
|
||||||
|
"LeftArm","LeftShoulder",
|
||||||
|
"LeftArmRoll","LeftArm",
|
||||||
|
"LeftForeArm","LeftArmRoll",
|
||||||
|
"LeftForeArmRoll","LeftForeArm",
|
||||||
|
"LeftHand","LeftForeArmRoll",
|
||||||
|
"LeftHandRing","LeftHand",
|
||||||
|
"LeftHandRing1","LeftHandRing",
|
||||||
|
"LeftHandRing2","LeftHandRing1",
|
||||||
|
"LeftHandRing3","LeftHandRing2",
|
||||||
|
"LeftHandPinky1","LeftHandRing",
|
||||||
|
"LeftHandPinky2","LeftHandPinky1",
|
||||||
|
"LeftHandPinky3","LeftHandPinky2",
|
||||||
|
"LeftHandMiddle1","LeftHand",
|
||||||
|
"LeftHandMiddle2","LeftHandMiddle1",
|
||||||
|
"LeftHandMiddle3","LeftHandMiddle2",
|
||||||
|
"LeftHandIndex1","LeftHand",
|
||||||
|
"LeftHandIndex2","LeftHandIndex1",
|
||||||
|
"LeftHandIndex3","LeftHandIndex2",
|
||||||
|
"LeftHandThumb1","LeftHand",
|
||||||
|
"LeftHandThumb2","LeftHandThumb1",
|
||||||
|
"LeftHandThumb3","LeftHandThumb2",
|
||||||
|
|
||||||
|
// Right upper side
|
||||||
|
"RightShoulder","Spine3",
|
||||||
|
"RightArm","RightShoulder",
|
||||||
|
"RightArmRoll","RightArm",
|
||||||
|
"RightForeArm","RightArmRoll",
|
||||||
|
"RightForeArmRoll","RightForeArm",
|
||||||
|
"RightHand","RightForeArmRoll",
|
||||||
|
"RightHandRing","RightHand",
|
||||||
|
"RightHandRing1","RightHandRing",
|
||||||
|
"RightHandRing2","RightHandRing1",
|
||||||
|
"RightHandRing3","RightHandRing2",
|
||||||
|
"RightHandPinky1","RightHandRing",
|
||||||
|
"RightHandPinky2","RightHandPinky1",
|
||||||
|
"RightHandPinky3","RightHandPinky2",
|
||||||
|
"RightHandMiddle1","RightHand",
|
||||||
|
"RightHandMiddle2","RightHandMiddle1",
|
||||||
|
"RightHandMiddle3","RightHandMiddle2",
|
||||||
|
"RightHandIndex1","RightHand",
|
||||||
|
"RightHandIndex2","RightHandIndex1",
|
||||||
|
"RightHandIndex3","RightHandIndex2",
|
||||||
|
"RightHandThumb1","RightHand",
|
||||||
|
"RightHandThumb2","RightHandThumb1",
|
||||||
|
"RightHandThumb3","RightHandThumb2",
|
||||||
|
|
||||||
|
// Left lower side
|
||||||
|
"LeftUpLeg","Pelvis",
|
||||||
|
"LeftUpLegRoll","LeftUpLeg",
|
||||||
|
"LeftLeg","LeftUpLegRoll",
|
||||||
|
"LeftLegRoll","LeftLeg",
|
||||||
|
"LeftFoot","LeftLegRoll",
|
||||||
|
"LeftToeBase","LeftFoot",
|
||||||
|
|
||||||
|
// Right lower side
|
||||||
|
"RightUpLeg","Pelvis",
|
||||||
|
"RightUpLegRoll","RightUpLeg",
|
||||||
|
"RightLeg","RightUpLegRoll",
|
||||||
|
"RightLegRoll","RightLeg",
|
||||||
|
"RightFoot","RightLegRoll",
|
||||||
|
"RightToeBase","RightFoot"
|
||||||
|
};
|
||||||
|
|
||||||
|
// location of pivot points (local axes) for hierarchical animation
|
||||||
|
pivotsModel = "A3\anims_f\data\skeleton\SkeletonPivots.p3d";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class CfgModels {
|
||||||
|
class Default {
|
||||||
|
sectionsInherit = "";
|
||||||
|
sections[] = {};
|
||||||
|
skeletonName = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
class ArmaMan: Default {
|
||||||
|
htMin = 60; // Minimum half-cooling time (in seconds)
|
||||||
|
htMax = 1800; // Maximum half-cooling time (in seconds)
|
||||||
|
afMax = 30; // Maximum temperature in case the model is alive (in celsius)
|
||||||
|
mfMax = 0; // Maximum temperature when the model is moving (in celsius)
|
||||||
|
mFact = 1; // Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)).
|
||||||
|
tBody = 37; // Metabolism temperature of the model (in celsius)
|
||||||
|
|
||||||
|
sections[] = {
|
||||||
|
"osobnost",
|
||||||
|
"Head_Injury",
|
||||||
|
"Body_Injury",
|
||||||
|
"l_leg_injury",
|
||||||
|
"l_arm_injury",
|
||||||
|
"r_arm_injury",
|
||||||
|
"r_leg_injury",
|
||||||
|
"injury_body",
|
||||||
|
"injury_legs",
|
||||||
|
"injury_hands",
|
||||||
|
"clan",
|
||||||
|
"clan_sign",
|
||||||
|
"Camo",
|
||||||
|
"CamoB",
|
||||||
|
"Camo1",
|
||||||
|
"Camo2",
|
||||||
|
"personality",
|
||||||
|
"hl",
|
||||||
|
"injury_head",
|
||||||
|
"insignia",
|
||||||
|
"ghillie_hide"
|
||||||
|
};
|
||||||
|
|
||||||
|
skeletonName = "OFP2_ManSkeleton";
|
||||||
|
};
|
||||||
|
};
|
@ -8,7 +8,7 @@ PixelShaderID="Super";
|
|||||||
VertexShaderID="Super";
|
VertexShaderID="Super";
|
||||||
|
|
||||||
class Stage1 {
|
class Stage1 {
|
||||||
texture="z\ace\addons\flashlights\data\MX_991_nohq.paa";
|
texture="z\ace\addons\flashlights\data\textures\mx_991_nohq.paa";
|
||||||
uvSource="tex";
|
uvSource="tex";
|
||||||
class uvTransform {
|
class uvTransform {
|
||||||
aside[]={1,0,0};
|
aside[]={1,0,0};
|
||||||
|
BIN
addons/flashlights/data/textures/maglite_ml300l_as.paa
Normal file
BIN
addons/flashlights/data/textures/maglite_ml300l_as.paa
Normal file
Binary file not shown.
BIN
addons/flashlights/data/textures/maglite_ml300l_ca.paa
Normal file
BIN
addons/flashlights/data/textures/maglite_ml300l_ca.paa
Normal file
Binary file not shown.
BIN
addons/flashlights/data/textures/maglite_ml300l_nohq.paa
Normal file
BIN
addons/flashlights/data/textures/maglite_ml300l_nohq.paa
Normal file
Binary file not shown.
BIN
addons/flashlights/data/textures/maglite_ml300l_smdi.paa
Normal file
BIN
addons/flashlights/data/textures/maglite_ml300l_smdi.paa
Normal file
Binary file not shown.
@ -103,5 +103,15 @@
|
|||||||
<Russian>Цвет подсветки карты</Russian>
|
<Russian>Цвет подсветки карты</Russian>
|
||||||
<Portuguese>Cor da lanterna no mapa</Portuguese>
|
<Portuguese>Cor da lanterna no mapa</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Flashlights_Maglite_ML300L_DisplayName">
|
||||||
|
<English>Maglite ML300L</English>
|
||||||
|
<German>Maglite ML300L</German>
|
||||||
|
<Polish>Maglite ML300L</Polish>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Flashlights_Maglite_ML300L_Description">
|
||||||
|
<English>Powerful LED flashlight.</English>
|
||||||
|
<German>Leistungsstarke LED-Taschenlampe.</German>
|
||||||
|
<Polish>Mocna latarka LED.</Polish>
|
||||||
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/acemod/ACE3/releases/latest">
|
<a href="https://github.com/acemod/ACE3/releases/latest">
|
||||||
<img src="https://img.shields.io/badge/Version-3.12.6-blue.svg?style=flat-square" alt="ACE3 版本">
|
<img src="https://img.shields.io/badge/Version-0.0.0-blue.svg?style=flat-square" alt="ACE3 版本">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/acemod/ACE3/issues">
|
<a href="https://github.com/acemod/ACE3/issues">
|
||||||
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 問題">
|
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 問題">
|
BIN
extras/assets/maglite/maglite_animation.blend
Normal file
BIN
extras/assets/maglite/maglite_animation.blend
Normal file
Binary file not shown.
26
hemtt.toml
Normal file
26
hemtt.toml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
name = "ACE3"
|
||||||
|
prefix = "ace"
|
||||||
|
author = "ACE-Team"
|
||||||
|
files = [
|
||||||
|
"*.dll",
|
||||||
|
"*.so",
|
||||||
|
"mod.cpp",
|
||||||
|
"README.md",
|
||||||
|
"docs/README_DE.md",
|
||||||
|
"docs/README_PL.md",
|
||||||
|
"README.zh-TW.md",
|
||||||
|
"AUTHORS.txt",
|
||||||
|
"LICENSE",
|
||||||
|
"logo_ace3_ca.paa",
|
||||||
|
"meta.cpp"
|
||||||
|
]
|
||||||
|
|
||||||
|
keyname = "{{prefix}}_{{version}}"
|
||||||
|
signame = "{{prefix}}_{{version}}-{{git \"id 8\"}}"
|
||||||
|
|
||||||
|
releasebuild = [
|
||||||
|
"@zip ace3_{{semver.major}}.{{semver.minor}}.{{semver.patch}}"
|
||||||
|
]
|
||||||
|
|
||||||
|
[header_exts]
|
||||||
|
version= "{{git \"id 8\"}}"
|
0
include/a3/ui_f/hpp/defineCommonColors.inc
Executable file → Normal file
0
include/a3/ui_f/hpp/defineCommonColors.inc
Executable file → Normal file
@ -187,4 +187,3 @@
|
|||||||
|
|
||||||
|
|
||||||
#endif /* DIK_ESCAPE */
|
#endif /* DIK_ESCAPE */
|
||||||
|
|
||||||
|
130
tools/make.ps1
130
tools/make.ps1
@ -1,130 +0,0 @@
|
|||||||
$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
|
|
@ -72,7 +72,7 @@ dssignfile = ""
|
|||||||
prefix = "ace"
|
prefix = "ace"
|
||||||
pbo_name_prefix = "ace_"
|
pbo_name_prefix = "ace_"
|
||||||
signature_blacklist = []
|
signature_blacklist = []
|
||||||
importantFiles = ["mod.cpp", "README.md", "docs\\README_DE.md", "docs\\README_PL.md", "AUTHORS.txt", "LICENSE", "logo_ace3_ca.paa", "meta.cpp"]
|
importantFiles = ["mod.cpp", "README.md", "docs\\README_DE.md", "docs\\README_PL.md", "docs\\README.zh-TW.md", "AUTHORS.txt", "LICENSE", "logo_ace3_ca.paa", "meta.cpp"]
|
||||||
versionFiles = ["README.md", "docs\\README_DE.md", "docs\\README_PL.md", "mod.cpp"]
|
versionFiles = ["README.md", "docs\\README_DE.md", "docs\\README_PL.md", "mod.cpp"]
|
||||||
|
|
||||||
ciBuild = False # Used for CI builds
|
ciBuild = False # Used for CI builds
|
||||||
|
Loading…
Reference in New Issue
Block a user