diff --git a/.github/workflows/arma.yml b/.github/workflows/arma.yml index d13cf910317..0e993654965 100644 --- a/.github/workflows/arma.yml +++ b/.github/workflows/arma.yml @@ -34,14 +34,16 @@ jobs: build: runs-on: ubuntu-latest - container: acemod/armake:master steps: - name: Checkout the source code uses: actions/checkout@master - - name: Build (armake) - run: armake --version && make -j4 - - name: Upload Artifact - uses: actions/upload-artifact@master + - name: Build using HEMTT + uses: arma-actions/hemtt@master with: - name: ace3-${{ github.sha }}-nobin - path: '@ace' + command: build --ci # no --release due to https://github.com/synixebrett/HEMTT/issues/227 + # 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' diff --git a/.gitignore b/.gitignore index 6a37c85d53d..a8f6a13221f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,10 @@ @* *.zip release/* +releases/* +hemtt +hemtt.exe tools/temp -tools/armake.exe *.cache *.pbo texHeaders.bin diff --git a/Makefile b/Makefile deleted file mode 100644 index f0b0810e3ef..00000000000 --- a/Makefile +++ /dev/null @@ -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 .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 diff --git a/VERSION b/VERSION deleted file mode 100644 index d87a10b4700..00000000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -3.12.6.43 diff --git a/addons/flashlights/CfgEventHandlers.hpp b/addons/flashlights/CfgEventHandlers.hpp index 58b84ad8642..bf70b57b884 100644 --- a/addons/flashlights/CfgEventHandlers.hpp +++ b/addons/flashlights/CfgEventHandlers.hpp @@ -1,4 +1,3 @@ - class Extended_PostInit_EventHandlers { class ADDON { clientInit = QUOTE(call COMPILE_FILE(XEH_postInitClient)); diff --git a/addons/flashlights/CfgVehicles.hpp b/addons/flashlights/CfgVehicles.hpp index fa766ad87bc..dbdf5421bc5 100644 --- a/addons/flashlights/CfgVehicles.hpp +++ b/addons/flashlights/CfgVehicles.hpp @@ -7,18 +7,17 @@ class CfgVehicles { }; class Item_Base_F; - class ACE_Flashlight_MX991Item: Item_Base_F { scope = 2; scopeCurator = 2; displayName = CSTRING(MX991_DisplayName); author = ECSTRING(common,ACETeam); - vehicleClass = "WeaponAccessories"; + editorCategory = "EdCat_Equipment"; + editorSubcategory = "EdSubcat_InventoryItems"; + vehicleClass = "Items"; + class TransportItems { - class ACE_Flashlight_MX991 { - name = "ACE_Flashlight_MX991"; - count = 1; - }; + MACRO_ADDITEM(ACE_Flashlight_MX991,1); }; }; @@ -27,12 +26,12 @@ class CfgVehicles { scopeCurator = 2; displayName = CSTRING(KSF1_DisplayName); author = ECSTRING(common,ACETeam); - vehicleClass = "WeaponAccessories"; + editorCategory = "EdCat_Equipment"; + editorSubcategory = "EdSubcat_InventoryItems"; + vehicleClass = "Items"; + class TransportItems { - class ACE_Flashlight_KSF1 { - name = "ACE_Flashlight_KSF1"; - count = 1; - }; + MACRO_ADDITEM(ACE_Flashlight_KSF1,1); }; }; @@ -41,38 +40,52 @@ class CfgVehicles { scopeCurator = 2; displayName = CSTRING(XL50_DisplayName); author = ECSTRING(common,ACETeam); - vehicleClass = "WeaponAccessories"; + editorCategory = "EdCat_Equipment"; + editorSubcategory = "EdSubcat_InventoryItems"; + vehicleClass = "Items"; + class TransportItems { - class ACE_Flashlight_XL50 { - name = "ACE_Flashlight_XL50"; - count = 1; - }; + MACRO_ADDITEM(ACE_Flashlight_XL50,1); }; }; - class NATO_Box_Base; - class EAST_Box_Base; - class IND_Box_Base; - class FIA_Box_Base_F; + 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 Box_NATO_Support_F: NATO_Box_Base { class TransportItems { MACRO_ADDITEM(ACE_Flashlight_MX991,12); }; }; + class EAST_Box_Base; class Box_East_Support_F: EAST_Box_Base { class TransportItems { MACRO_ADDITEM(ACE_Flashlight_KSF1,12); }; }; + class IND_Box_Base; class Box_IND_Support_F: IND_Box_Base { class TransportItems { MACRO_ADDITEM(ACE_Flashlight_XL50,12); }; }; + class FIA_Box_Base_F; class Box_FIA_Support_F: FIA_Box_Base_F { class TransportItems { MACRO_ADDITEM(ACE_Flashlight_MX991,12); @@ -84,6 +97,7 @@ class CfgVehicles { MACRO_ADDITEM(ACE_Flashlight_MX991,12); MACRO_ADDITEM(ACE_Flashlight_KSF1,12); MACRO_ADDITEM(ACE_Flashlight_XL50,12); + MACRO_ADDITEM(ACE_Flashlight_Maglite_ML300L,2); }; }; -}; \ No newline at end of file +}; diff --git a/addons/flashlights/CfgWeapons.hpp b/addons/flashlights/CfgWeapons.hpp index 41bfd4a8bb4..1ebc9a5a586 100644 --- a/addons/flashlights/CfgWeapons.hpp +++ b/addons/flashlights/CfgWeapons.hpp @@ -1,17 +1,81 @@ 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 CBA_MiscItem_ItemInfo; class ACE_Flashlight_MX991: ACE_ItemCore { author = ECSTRING(common,ACETeam); + scope = 2; displayName = CSTRING(MX991_DisplayName); descriptionShort = CSTRING(MX991_Description); - model = QPATHTOF(data\MX_991.p3d); - picture = QPATHTOF(UI\mx991_ca.paa); - scope = 2; + model = QPATHTOF(data\mx_991.p3d); + picture = QPATHTOF(UI\mx_991_ca.paa); + class ItemInfo: CBA_MiscItem_ItemInfo { - mass = 1; + mass = 4; + class FlashLight { ACE_Flashlight_Colour = "red"; ACE_Flashlight_Beam = QPATHTOF(UI\Flashlight_beam_red_ca.paa); @@ -22,13 +86,15 @@ class CfgWeapons { class ACE_Flashlight_KSF1: ACE_ItemCore { author = ECSTRING(common,ACETeam); + scope = 2; displayName = CSTRING(KSF1_DisplayName); descriptionShort = CSTRING(KSF1_Description); - model = QPATHTOF(data\KSF_1.p3d); - picture = QPATHTOF(UI\ksf1_ca.paa); - scope = 2; + model = QPATHTOF(data\ksf_1.p3d); + picture = QPATHTOF(UI\ksf_1_ca.paa); + class ItemInfo: CBA_MiscItem_ItemInfo { - mass = 1; + mass = 4; + class FlashLight { ACE_Flashlight_Colour = "red"; ACE_Flashlight_Beam = QPATHTOF(UI\Flashlight_beam_red_ca.paa); @@ -39,13 +105,15 @@ class CfgWeapons { class ACE_Flashlight_XL50: ACE_ItemCore { author = ECSTRING(common,ACETeam); + scope = 2; displayName = CSTRING(XL50_DisplayName); descriptionShort = CSTRING(XL50_Description); - model = QPATHTOF(data\Maglight.p3d); - picture = QPATHTOF(UI\xl50_ca.paa); - scope = 2; + model = QPATHTOF(data\maglite_xl50.p3d); + picture = QPATHTOF(UI\maglite_xl50_ca.paa); + class ItemInfo: CBA_MiscItem_ItemInfo { - mass = 1; + mass = 3; + class FlashLight { ACE_Flashlight_Colour = "white"; ACE_Flashlight_Beam = QPATHTOF(UI\Flashlight_beam_white_ca.paa); diff --git a/addons/flashlights/UI/KSF1_ca.paa b/addons/flashlights/UI/ksf_1_ca.paa similarity index 100% rename from addons/flashlights/UI/KSF1_ca.paa rename to addons/flashlights/UI/ksf_1_ca.paa diff --git a/addons/flashlights/UI/maglite_ml300l_ca.paa b/addons/flashlights/UI/maglite_ml300l_ca.paa new file mode 100644 index 00000000000..4a0440724f4 Binary files /dev/null and b/addons/flashlights/UI/maglite_ml300l_ca.paa differ diff --git a/addons/flashlights/UI/xl50_ca.paa b/addons/flashlights/UI/maglite_xl50_ca.paa similarity index 100% rename from addons/flashlights/UI/xl50_ca.paa rename to addons/flashlights/UI/maglite_xl50_ca.paa diff --git a/addons/flashlights/UI/mx991_ca.paa b/addons/flashlights/UI/mx_991_ca.paa similarity index 100% rename from addons/flashlights/UI/mx991_ca.paa rename to addons/flashlights/UI/mx_991_ca.paa diff --git a/addons/flashlights/config.cpp b/addons/flashlights/config.cpp index eefeb782f11..f88afc0663a 100644 --- a/addons/flashlights/config.cpp +++ b/addons/flashlights/config.cpp @@ -3,12 +3,22 @@ class CfgPatches { class ADDON { name = COMPONENT_NAME; - units[] = {}; - weapons[] = {"ACE_Flashlight_MX991", "ACE_Flashlight_KSF1", "ACE_Flashlight_XL50"}; + units[] = { + "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; requiredAddons[] = {"ace_interaction"}; author = ECSTRING(common,ACETeam); - authors[] = {"voiper"}; + authors[] = {"voiper","bux","HorribleGoat"}; url = ECSTRING(main,URL); VERSION_CONFIG; }; diff --git a/addons/flashlights/data/KSF_1.p3d b/addons/flashlights/data/KSF_1.p3d index 0ec2fd23c69..0059335bd6f 100644 Binary files a/addons/flashlights/data/KSF_1.p3d and b/addons/flashlights/data/KSF_1.p3d differ diff --git a/addons/flashlights/data/MX_991.p3d b/addons/flashlights/data/MX_991.p3d index c79c330ea35..a373dd3f740 100644 Binary files a/addons/flashlights/data/MX_991.p3d and b/addons/flashlights/data/MX_991.p3d differ diff --git a/addons/flashlights/data/Maglight.p3d b/addons/flashlights/data/Maglight.p3d deleted file mode 100644 index 6ce3b9fcd4b..00000000000 Binary files a/addons/flashlights/data/Maglight.p3d and /dev/null differ diff --git a/addons/flashlights/data/ksf_1.rvmat b/addons/flashlights/data/ksf_1.rvmat index 113fe0cc147..ed9e802c54d 100644 --- a/addons/flashlights/data/ksf_1.rvmat +++ b/addons/flashlights/data/ksf_1.rvmat @@ -8,7 +8,7 @@ PixelShaderID="Super"; VertexShaderID="Super"; 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"; class uvTransform { aside[]={1,0,0}; @@ -48,7 +48,7 @@ class Stage4 { }; }; 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"; class uvTransform { aside[]={1,0,0}; diff --git a/addons/flashlights/data/maglite_ml300l.p3d b/addons/flashlights/data/maglite_ml300l.p3d new file mode 100644 index 00000000000..e916514d513 Binary files /dev/null and b/addons/flashlights/data/maglite_ml300l.p3d differ diff --git a/addons/flashlights/data/maglite_ml300l.rtm b/addons/flashlights/data/maglite_ml300l.rtm new file mode 100644 index 00000000000..0a82508447c Binary files /dev/null and b/addons/flashlights/data/maglite_ml300l.rtm differ diff --git a/addons/flashlights/data/maglite_ml300l.rvmat b/addons/flashlights/data/maglite_ml300l.rvmat new file mode 100644 index 00000000000..a869bb93b45 --- /dev/null +++ b/addons/flashlights/data/maglite_ml300l.rvmat @@ -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}; + }; +}; diff --git a/addons/flashlights/data/maglite_xl50.p3d b/addons/flashlights/data/maglite_xl50.p3d new file mode 100644 index 00000000000..b5619337d44 Binary files /dev/null and b/addons/flashlights/data/maglite_xl50.p3d differ diff --git a/addons/flashlights/data/maglite.rvmat b/addons/flashlights/data/maglite_xl50.rvmat similarity index 90% rename from addons/flashlights/data/maglite.rvmat rename to addons/flashlights/data/maglite_xl50.rvmat index 960599813b6..c1450280f33 100644 --- a/addons/flashlights/data/maglite.rvmat +++ b/addons/flashlights/data/maglite_xl50.rvmat @@ -8,7 +8,7 @@ PixelShaderID="Super"; VertexShaderID="Super"; class Stage1 { - texture="z\ace\addons\flashlights\data\Maglite_nohq.paa"; + texture="z\ace\addons\flashlights\data\textures\maglite_xl50_nohq.paa"; uvSource="tex"; class uvTransform { aside[]={1,0,0}; @@ -48,7 +48,7 @@ class Stage4 { }; }; class Stage5 { - texture="z\ace\addons\flashlights\data\Maglite_smdi.paa"; + texture="z\ace\addons\flashlights\data\textures\maglite_xl50_smdi.paa"; uvSource="tex"; class uvTransform { aside[]={1,0,0}; diff --git a/addons/flashlights/data/model.cfg b/addons/flashlights/data/model.cfg new file mode 100644 index 00000000000..58bc63eb8dd --- /dev/null +++ b/addons/flashlights/data/model.cfg @@ -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"; + }; +}; diff --git a/addons/flashlights/data/mx_991.rvmat b/addons/flashlights/data/mx_991.rvmat index 0268d4903c8..040b3ea8c6d 100644 --- a/addons/flashlights/data/mx_991.rvmat +++ b/addons/flashlights/data/mx_991.rvmat @@ -8,7 +8,7 @@ PixelShaderID="Super"; VertexShaderID="Super"; 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"; class uvTransform { aside[]={1,0,0}; diff --git a/addons/flashlights/data/ksf_1_co.paa b/addons/flashlights/data/textures/ksf_1_co.paa similarity index 100% rename from addons/flashlights/data/ksf_1_co.paa rename to addons/flashlights/data/textures/ksf_1_co.paa diff --git a/addons/flashlights/data/KSF_1_nohq.paa b/addons/flashlights/data/textures/ksf_1_nohq.paa similarity index 100% rename from addons/flashlights/data/KSF_1_nohq.paa rename to addons/flashlights/data/textures/ksf_1_nohq.paa diff --git a/addons/flashlights/data/KSF_1_smdi.paa b/addons/flashlights/data/textures/ksf_1_smdi.paa similarity index 100% rename from addons/flashlights/data/KSF_1_smdi.paa rename to addons/flashlights/data/textures/ksf_1_smdi.paa diff --git a/addons/flashlights/data/textures/maglite_ml300l_as.paa b/addons/flashlights/data/textures/maglite_ml300l_as.paa new file mode 100644 index 00000000000..6dc466f969d Binary files /dev/null and b/addons/flashlights/data/textures/maglite_ml300l_as.paa differ diff --git a/addons/flashlights/data/textures/maglite_ml300l_ca.paa b/addons/flashlights/data/textures/maglite_ml300l_ca.paa new file mode 100644 index 00000000000..2a2368b6e30 Binary files /dev/null and b/addons/flashlights/data/textures/maglite_ml300l_ca.paa differ diff --git a/addons/flashlights/data/textures/maglite_ml300l_nohq.paa b/addons/flashlights/data/textures/maglite_ml300l_nohq.paa new file mode 100644 index 00000000000..4a08ff5925f Binary files /dev/null and b/addons/flashlights/data/textures/maglite_ml300l_nohq.paa differ diff --git a/addons/flashlights/data/textures/maglite_ml300l_smdi.paa b/addons/flashlights/data/textures/maglite_ml300l_smdi.paa new file mode 100644 index 00000000000..32cab82188d Binary files /dev/null and b/addons/flashlights/data/textures/maglite_ml300l_smdi.paa differ diff --git a/addons/flashlights/data/maglite_co.paa b/addons/flashlights/data/textures/maglite_xl50_co.paa similarity index 100% rename from addons/flashlights/data/maglite_co.paa rename to addons/flashlights/data/textures/maglite_xl50_co.paa diff --git a/addons/flashlights/data/Maglite_nohq.paa b/addons/flashlights/data/textures/maglite_xl50_nohq.paa similarity index 100% rename from addons/flashlights/data/Maglite_nohq.paa rename to addons/flashlights/data/textures/maglite_xl50_nohq.paa diff --git a/addons/flashlights/data/Maglite_smdi.paa b/addons/flashlights/data/textures/maglite_xl50_smdi.paa similarity index 100% rename from addons/flashlights/data/Maglite_smdi.paa rename to addons/flashlights/data/textures/maglite_xl50_smdi.paa diff --git a/addons/flashlights/data/mx_991_co.paa b/addons/flashlights/data/textures/mx_991_co.paa similarity index 100% rename from addons/flashlights/data/mx_991_co.paa rename to addons/flashlights/data/textures/mx_991_co.paa diff --git a/addons/flashlights/data/MX_991_nohq.paa b/addons/flashlights/data/textures/mx_991_nohq.paa similarity index 100% rename from addons/flashlights/data/MX_991_nohq.paa rename to addons/flashlights/data/textures/mx_991_nohq.paa diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index bd87c4e8470..913b688312b 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -103,5 +103,15 @@ Цвет подсветки карты Cor da lanterna no mapa + + Maglite ML300L + Maglite ML300L + Maglite ML300L + + + Powerful LED flashlight. + Leistungsstarke LED-Taschenlampe. + Mocna latarka LED. + diff --git a/build.bat b/build.bat new file mode 100644 index 00000000000..3392b5bf8d3 --- /dev/null +++ b/build.bat @@ -0,0 +1,3 @@ +@echo off +hemtt.exe build +pause diff --git a/README.zh-TW.md b/docs/README.zh-TW.md similarity index 98% rename from README.zh-TW.md rename to docs/README.zh-TW.md index 595d25d9ac7..933c2b50cb4 100644 --- a/README.zh-TW.md +++ b/docs/README.zh-TW.md @@ -4,7 +4,7 @@

- ACE3 版本 + ACE3 版本 ACE3 問題 diff --git a/extras/assets/maglite/maglite_animation.blend b/extras/assets/maglite/maglite_animation.blend new file mode 100644 index 00000000000..1e1733b44d8 Binary files /dev/null and b/extras/assets/maglite/maglite_animation.blend differ diff --git a/hemtt.toml b/hemtt.toml new file mode 100644 index 00000000000..7962d508a26 --- /dev/null +++ b/hemtt.toml @@ -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\"}}" diff --git a/include/a3/ui_f/hpp/defineCommonColors.inc b/include/a3/ui_f/hpp/defineCommonColors.inc old mode 100755 new mode 100644 diff --git a/include/a3/ui_f/hpp/defineDIKCodes.inc b/include/a3/ui_f/hpp/defineDIKCodes.inc index c641d601326..eb914f94829 100644 --- a/include/a3/ui_f/hpp/defineDIKCodes.inc +++ b/include/a3/ui_f/hpp/defineDIKCodes.inc @@ -187,4 +187,3 @@ #endif /* DIK_ESCAPE */ - diff --git a/tools/make.ps1 b/tools/make.ps1 deleted file mode 100644 index 2aac0f2c9fd..00000000000 --- a/tools/make.ps1 +++ /dev/null @@ -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 "" - 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 diff --git a/tools/make.py b/tools/make.py index ccb9d75d924..1db6b039ede 100644 --- a/tools/make.py +++ b/tools/make.py @@ -72,7 +72,7 @@ prefix = "ace" pbo_name_prefix = "ace_" 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"] ciBuild = False # Used for CI builds