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/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