Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wardrobe - New Addon - System to modify wearables #10606

Open
wants to merge 143 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
143 commits
Select commit Hold shift + click to select a range
ba089d4
init
OverlordZorn Dec 27, 2024
9c35545
compat integration
OverlordZorn Dec 27, 2024
4e3f2eb
Update config.cpp
OverlordZorn Dec 27, 2024
69d7810
Update config.cpp
OverlordZorn Dec 27, 2024
8c13b82
small fixes: Macro's and typo's
OverlordZorn Dec 27, 2024
cd57445
Create readme.md
OverlordZorn Dec 27, 2024
a096f91
fix compat macros
OverlordZorn Dec 28, 2024
90d775c
fix: ignore inherited subclasses
OverlordZorn Dec 28, 2024
f4b7180
reorganised
OverlordZorn Dec 28, 2024
c5bcc11
debug fnc
OverlordZorn Dec 28, 2024
e6ddc21
refactor of sound effects
OverlordZorn Dec 28, 2024
cb191af
purge tab
OverlordZorn Dec 28, 2024
fea7488
temp test mission
OverlordZorn Dec 28, 2024
653a205
Update Turbans.hpp
OverlordZorn Dec 28, 2024
3b7e08a
check for component implemented
OverlordZorn Dec 29, 2024
d8d0390
components fully supported
OverlordZorn Dec 29, 2024
2cdbd7b
wip contextmenu
OverlordZorn Dec 29, 2024
a4456cd
fix sound
OverlordZorn Dec 30, 2024
969051d
added sounds
OverlordZorn Dec 30, 2024
69fe0dd
Update addons/wardrobe/XEH/XEH_preInit.sqf
OverlordZorn Dec 30, 2024
ad8aa11
Update addons/compat_sog/compat_sog_wardrobe_uniform_fix/readme.md
OverlordZorn Dec 30, 2024
86d39b3
Update mission.sqm
OverlordZorn Dec 30, 2024
fc63919
macro conflict
OverlordZorn Dec 30, 2024
551fe63
fine-tuning helmet sound
OverlordZorn Dec 30, 2024
db2f605
wip
OverlordZorn Dec 31, 2024
fa21d31
Update CfgFunctions.hpp
OverlordZorn Jan 1, 2025
62afe5a
wip contextMenu
OverlordZorn Jan 1, 2025
5744936
added icon
OverlordZorn Jan 1, 2025
c3f31c2
Merge remote-tracking branch 'upstream/master' into ace-wardrobe
OverlordZorn Jan 2, 2025
9181352
polish
OverlordZorn Jan 2, 2025
ad9c632
compat facewear
OverlordZorn Jan 2, 2025
f8bd529
compat balaclava black
OverlordZorn Jan 2, 2025
177d48e
Update addons/compat_sog/compat_sog_wardrobe_uniform_fix/readme.md
OverlordZorn Jan 2, 2025
b0e91ad
renamed hemtt Launch preset to Wardrobe
OverlordZorn Jan 2, 2025
f423dbd
Merge branch 'ace-wardrobe' of https://github.com/OverlordZorn/ACE3 i…
OverlordZorn Jan 2, 2025
e2235f7
Update mission.sqm
OverlordZorn Jan 2, 2025
8cacab0
Refactored Components
OverlordZorn Jan 2, 2025
8a53f84
fix for cfgGlasses not having ItemInfo
OverlordZorn Jan 2, 2025
bbc33ac
Update Facewear.hpp
OverlordZorn Jan 2, 2025
13b3342
missed )
OverlordZorn Jan 2, 2025
b5c95e4
forgor "class"
OverlordZorn Jan 2, 2025
7b49f75
zrn macro cleanup
OverlordZorn Jan 3, 2025
3fea934
Update addons/compat_gm/compat_gm_wardrobe/config.cpp
OverlordZorn Jan 3, 2025
39f50cd
Update addons/compat_sog/compat_sog_wardrobe/config.cpp
OverlordZorn Jan 3, 2025
1ba5bd6
Update addons/compat_sog/compat_sog_wardrobe_uniform_fix/config.cpp
OverlordZorn Jan 3, 2025
5cd501f
Update addons/compat_ws/compat_ws_wardrobe/config.cpp
OverlordZorn Jan 3, 2025
45c3471
pvar -> ace_
OverlordZorn Jan 3, 2025
c4a98d9
-> QPATHTOF
OverlordZorn Jan 3, 2025
65da8c0
Merge branch 'ace-wardrobe' of https://github.com/OverlordZorn/ACE3 i…
OverlordZorn Jan 3, 2025
61eae5d
-> root + rename
OverlordZorn Jan 3, 2025
fe85915
comment cleanup
OverlordZorn Jan 3, 2025
4f9482b
comment cleanup
OverlordZorn Jan 3, 2025
a62e45a
wardrobe/config
OverlordZorn Jan 3, 2025
45e3ff0
sog/config
OverlordZorn Jan 3, 2025
dfb35a7
Delete notes.md
OverlordZorn Jan 3, 2025
344df47
Delete notes.md
OverlordZorn Jan 3, 2025
8db68fe
Update script_component.hpp
OverlordZorn Jan 3, 2025
4368ea4
ws\config
OverlordZorn Jan 3, 2025
5e4f12d
cleanup
OverlordZorn Jan 3, 2025
3b13160
gm/config
OverlordZorn Jan 3, 2025
f1063f4
fix path
OverlordZorn Jan 3, 2025
3861365
fixed error_2
OverlordZorn Jan 3, 2025
97b7c37
fixed config
OverlordZorn Jan 3, 2025
5d2bed4
config fix ` :`
OverlordZorn Jan 3, 2025
65a8bb1
tab -> spaces
OverlordZorn Jan 3, 2025
8637bb3
fix formatting
OverlordZorn Jan 3, 2025
e5c0dc1
formatting
OverlordZorn Jan 3, 2025
fd1a4b0
fix ID attribute
OverlordZorn Jan 3, 2025
e15e8e8
Q( -> QUOTE(
OverlordZorn Jan 3, 2025
3d8aa26
pruned SUBCOMPONENT_BEAUTIFIED
OverlordZorn Jan 3, 2025
8506f65
also adapt mass to 70
OverlordZorn Jan 3, 2025
401cd95
compat_vanilla -> root
OverlordZorn Jan 3, 2025
7d65631
-> PREP 💩
OverlordZorn Jan 3, 2025
a632d1d
"../../" -> "../"
OverlordZorn Jan 3, 2025
37c3fff
1 New Line at EOF
OverlordZorn Jan 3, 2025
70b17bb
fnc headers and minor polish here and there
OverlordZorn Jan 4, 2025
93f785d
disabled - to be deleted later
OverlordZorn Jan 4, 2025
978e5cf
WIP - Documentation
OverlordZorn Jan 4, 2025
4c2dad8
postInit -> XEH
OverlordZorn Jan 4, 2025
58cfa25
none -> None
OverlordZorn Jan 4, 2025
835aec0
Update addons/wardrobe/stringtable.xml
OverlordZorn Jan 4, 2025
cc3757c
Update addons/wardrobe/stringtable.xml
OverlordZorn Jan 4, 2025
b9b90a8
Drop Unneeded Description
OverlordZorn Jan 4, 2025
4aea498
ACE_SpareBarrel - needs testing
OverlordZorn Jan 4, 2025
e7781b2
Apply suggestions from code review
OverlordZorn Jan 4, 2025
4b47a02
cleanup
OverlordZorn Jan 4, 2025
769d746
fix
OverlordZorn Jan 5, 2025
972d9b9
Compat for ace_spareBarrel
OverlordZorn Jan 5, 2025
9a7f879
Update launch.toml
OverlordZorn Jan 5, 2025
82bb067
remove fnc_say3d.sqf
OverlordZorn Jan 5, 2025
e7e7f41
remove unused variables
OverlordZorn Jan 5, 2025
848a00d
refactor: goggles as components
OverlordZorn Jan 6, 2025
5ae5b57
remove whitespace
OverlordZorn Jan 6, 2025
d8900d6
more compats
OverlordZorn Jan 6, 2025
288a9e8
getMagIDs -> CBA fnc.
OverlordZorn Jan 6, 2025
9a128e4
added ace intel item
OverlordZorn Jan 6, 2025
d4f9e2f
condense replace functions
OverlordZorn Jan 6, 2025
8b42f50
remove func(cache_db)
OverlordZorn Jan 6, 2025
178e3be
unused function
OverlordZorn Jan 6, 2025
5bb2eb7
macrofied
OverlordZorn Jan 6, 2025
95bd7bc
fix inheritance
OverlordZorn Jan 6, 2025
b29b601
cleanup
OverlordZorn Jan 6, 2025
5518334
cleanup
OverlordZorn Jan 6, 2025
e3b1aa0
remove fnc_db_clear
OverlordZorn Jan 6, 2025
42e97af
reduce fnc clear cache
OverlordZorn Jan 6, 2025
62553d9
ws compats - helmets
OverlordZorn Jan 6, 2025
cfce465
# in macro -> select
OverlordZorn Jan 6, 2025
8911990
missing "class"
OverlordZorn Jan 6, 2025
3a22a5c
Finetuning
OverlordZorn Jan 6, 2025
fc2858d
added zeus module
OverlordZorn Jan 6, 2025
f260f79
moar GM Compats
OverlordZorn Jan 6, 2025
39cca80
ln sort
OverlordZorn Jan 6, 2025
68e0d51
fix mask turban mass config
OverlordZorn Jan 6, 2025
ae85d15
fix base inheritances
OverlordZorn Jan 6, 2025
0abd442
fix validation errors config
OverlordZorn Jan 6, 2025
a8a6526
Update mission.sqm
OverlordZorn Jan 6, 2025
8f11e7b
Update launch.toml
OverlordZorn Jan 6, 2025
883e21c
fixes
OverlordZorn Jan 7, 2025
eab28a7
Update wardrobe-framework.md
OverlordZorn Jan 7, 2025
afbb63e
revision docs
OverlordZorn Jan 7, 2025
ea82508
Update addons/compat_rf/compat_rf_wardrobe/config.cpp
OverlordZorn Jan 8, 2025
16a5edf
common structure
OverlordZorn Jan 8, 2025
0b88f00
restructure .hpp's
OverlordZorn Jan 8, 2025
152d583
fix macro's (;) and linebreaks.
OverlordZorn Jan 8, 2025
4310f97
EOF new line
OverlordZorn Jan 8, 2025
15227e8
macro;
OverlordZorn Jan 8, 2025
45a1fb6
merged uniform fix into sog compat
OverlordZorn Jan 9, 2025
8a7707c
Update addons/wardrobe/functions/fnc_replace_other.sqf
OverlordZorn Jan 10, 2025
d2bcdc7
Update docs/wiki/framework/wardrobe-framework.md
OverlordZorn Jan 10, 2025
2dd9760
Update docs/wiki/framework/wardrobe-framework.md
OverlordZorn Jan 10, 2025
93ee1aa
Update docs/wiki/framework/wardrobe-framework.md
OverlordZorn Jan 10, 2025
313ca2d
Update docs/wiki/framework/wardrobe-framework.md
OverlordZorn Jan 10, 2025
d7b0b29
Update addons/wardrobe/functions/fnc_replace_container.sqf
OverlordZorn Jan 10, 2025
fee0715
Update addons/wardrobe/functions/fnc_replace.sqf
OverlordZorn Jan 10, 2025
b726807
applying @rautamiekka magic
OverlordZorn Jan 10, 2025
b4f035c
Update addons/wardrobe/functions/fnc_getAllWardrobeItems.sqf
OverlordZorn Jan 10, 2025
482cd16
more rautamiekka magic
OverlordZorn Jan 10, 2025
d5631b9
rephrase comment
OverlordZorn Jan 10, 2025
65b7a2c
Update docs/wiki/framework/wardrobe-framework.md
OverlordZorn Jan 13, 2025
3b1d7c4
Update docs/wiki/framework/wardrobe-framework.md
OverlordZorn Jan 13, 2025
9e19841
Update docs/wiki/framework/wardrobe-framework.md
OverlordZorn Jan 13, 2025
945191b
Update docs/wiki/framework/wardrobe-framework.md
OverlordZorn Jan 13, 2025
b56dd5d
Merge remote-tracking branch 'upstream/master' into ace-wardrobe
OverlordZorn Jan 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions addons/wardrobe/$PBOPREFIX$
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
z\ace\addons\wardrobe
39 changes: 39 additions & 0 deletions addons/wardrobe/Baseclass.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
class GVAR(base)
{
modifiableTo[] = {""};

// WIP
modifiableToWithDependency = "";
dependency = "";

// Supports Multiple Sounds, will pick one by random.
sound[] = {"click"}; // I need a better default Sound
sound_timing = 1; // [0..1] 0 at the start of the action, 0.5 half way during the duration of the action - always, if completed or not. 1 at the end, only when completed.

// Gesture
gesture = "Gear";

// These will be read from the Target Class, so for example, the uniformclass with the rolled up sleaves, it should say "Roll Up Sleves"
alternativePicture = "";
alternativeDisplayName = "";

duration = 1; // Minimum Value: 1 - Anything above will produce a progressbar.
};

// Common Base Class for Uniforms with Sleeves Up/Down Variants
class GVAR(base_U_sleeves_up) : GVAR(base) { alternativeDisplayName = CSTRING(sleevesUp); };
class GVAR(base_U_sleeves_down) : GVAR(base) { alternativeDisplayName = CSTRING(sleevesDown); };

// Common Base Class for Uniforms with Sleeves Up/Down Variants
class GVAR(base_U_gloves_on) : GVAR(base) { alternativeDisplayName = CSTRING(glovesOn); };
class GVAR(base_U_gloves_off) : GVAR(base) { alternativeDisplayName = CSTRING(glovesOff); };


// Common Base Class for Uniforms who are open/closed in the front
class GVAR(base_U_jacket_open) : GVAR(base) { alternativeDisplayName = CSTRING(jacketOpen); };
class GVAR(base_U_jacket_closed) : GVAR(base) { alternativeDisplayName = CSTRING(jacketClose); };


// Common Base Class for Helmets with a Visor that can be flipped up or down
OverlordZorn marked this conversation as resolved.
Show resolved Hide resolved
class GVAR(base_H_visor_up) : GVAR(base) { gesture ="gestureNod"; sound[] = {""}; soundEnd[] = {"click"}; alternativeDisplayName = CSTRING(visorUp); };
class GVAR(base_H_visor_down) : GVAR(base) { gesture ="gestureNod"; sound[] = {""}; soundEnd[] = {"click"}; alternativeDisplayName = CSTRING(visorDown); };
69 changes: 69 additions & 0 deletions addons/wardrobe/CfgFunctions.hpp
OverlordZorn marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
class CfgFunctions
{
class ADDON
{
class COMPONENT
{
file = PATH_TO_FUNC;

class postInit { postInit = 1; };
OverlordZorn marked this conversation as resolved.
Show resolved Hide resolved
class say3d {};

class clearOnClose {};
class checkItem {};
class getCfgDataRandom {};

};

class ace_intel
{
file = PATH_TO_FUNC_SUB(ace_intel);
class getMagIDs {};
class getIndexFromMagID {};
class setIndexForMagID {};
};

class getItems
{
file = PATH_TO_FUNC_SUB(getItems);
class getItems_all {};
class getItems_modifiable_all {};
class getItems_modifiable_current {};

};

class replace
{
file = PATH_TO_FUNC_SUB(replace);

class replace {};
class replace_headgear {};
class replace_facewear {};
class replace_uniform {};
};

class action
{
file = PATH_TO_FUNC_SUB(action);

class addActions {};
class addActions_condition {};
class addActions_children {};

class getAction_Name {};
class getAction_Icon {};
};

class cache
{
file = PATH_TO_FUNC_SUB(cache);

class cache_db {};

class cache_get {};
class cache_set {};

class cache_clear {};
};
};
};
17 changes: 17 additions & 0 deletions addons/wardrobe/CfgVehicles.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
class CfgVehicles {
class Man;
class CAManBase: Man {
class ACE_SelfActions {
class ACE_Equipment {
class ADDON {
displayName = CSTRING(actionTitle); // Text shown to user
icon = "";
condition = Q([_player] call FUNC(addActions_condition));
statement = "";
insertChildren = Q([_player] call FUNC(addActions));
exceptions[] = {"isNotSwimming","isNotSitting"};
};
};
};
};
};
1 change: 1 addition & 0 deletions addons/wardrobe/TODO/gm/$PBOPREFIX$
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
z\ace\addons\gm
17 changes: 17 additions & 0 deletions addons/wardrobe/TODO/gm/CfgWardrobe.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
class EGVAR(wardrobe,base);

class EGVAR(wardrobe,base_H_visor_up);
class EGVAR(wardrobe,base_H_visor_down);

class EGVAR(wardrobe,base_U_sleeves_up);
class EGVAR(wardrobe,base_U_sleeves_down);

class EGVAR(wardrobe,base_U_gloves_on);
class EGVAR(wardrobe,base_U_gloves_off);

class CfgWeapons
{

Check failure on line 13 in addons/wardrobe/TODO/gm/CfgWardrobe.hpp

View workflow job for this annotation

GitHub Actions / windows

found "{" but expected one of ";", "8", "o", "D", "h", "b", "q", "s", "Q", "x", "P", "d", "e", "A", "L", "f", "a", "2", "m", "H", "X", "5", "E", "B", "R", "r", "g", "u", "V", "w", "_", "7", "9", "n", "G", "W", "i", "0", "N", "3", "p", "S", "4", "c", "l", end of input, "C", "I", "J", "U", "j", "Y", "K", "z", "F", "6", "M", "t", "y", "O", "T", "v", "k", "Z", "1"

found "{" but expected one of ";", "8", "o", "D", "h", "b", "q", "s", "Q", "x", "P", "d", "e", "A", "L", "f", "a", "2", "m", "H", "X", "5", "E", "B", "R", "r", "g", "u", "V", "w", "_", "7", "9", "n", "G", "W", "i", "0", "N", "3", "p", "S", "4", "c", "l", end of input, "C", "I", "J", "U", "j", "Y", "K", "z", "F", "6", "M", "t", "y", "O", "T", "v", "k", "Z", "1"
#include "Helmets.hpp"
#include "Uniforms.hpp"
};

14 changes: 14 additions & 0 deletions addons/wardrobe/TODO/gm/Helmets.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// CfgWeapons

// Base Classes
class gm_ge_headgear_psh77_cover_down_base;
class gm_ge_headgear_psh77_cover_up_base;
class gm_ge_headgear_psh77_down_base;
class gm_ge_headgear_psh77_up_base;

class gm_ge_bgs_headgear_psh77_cover_down_smp : gm_ge_headgear_psh77_cover_down_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_H_visor_down) { modifiableTo[] = { "gm_ge_bgs_headgear_psh77_cover_up_smp" }; }; };
class gm_ge_bgs_headgear_psh77_cover_up_smp : gm_ge_headgear_psh77_cover_up_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_H_visor_up) { modifiableTo[] = { "gm_ge_bgs_headgear_psh77_cover_down_smp" }; }; };
class gm_ge_bgs_headgear_psh77_cover_down_str : gm_ge_headgear_psh77_cover_down_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_H_visor_down) { modifiableTo[] = { "gm_ge_bgs_headgear_psh77_cover_up_str" }; }; };
class gm_ge_bgs_headgear_psh77_cover_up_str : gm_ge_headgear_psh77_cover_up_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_H_visor_up) { modifiableTo[] = { "gm_ge_bgs_headgear_psh77_cover_down_str" }; }; };
class gm_ge_headgear_psh77_down_oli : gm_ge_headgear_psh77_down_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_H_visor_down) { modifiableTo[] = { "gm_ge_headgear_psh77_up_oli" }; }; };
class gm_ge_headgear_psh77_up_oli : gm_ge_headgear_psh77_up_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_H_visor_up) { modifiableTo[] = { "gm_ge_headgear_psh77_down_oli" }; }; };
82 changes: 82 additions & 0 deletions addons/wardrobe/TODO/gm/Uniforms.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
// CfgWeapons

// Sleves
OverlordZorn marked this conversation as resolved.
Show resolved Hide resolved

class gm_ge_bgs_uniform_special_80_base;
class gm_ge_bgs_uniform_special_rolled_80_base;

class gm_ge_bgs_uniform_special_80_grn : gm_ge_bgs_uniform_special_80_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(gm_ge_bgs_uniform_special_rolled_80_grn) }; }; };
class gm_ge_bgs_uniform_special_rolled_80_grn : gm_ge_bgs_uniform_special_rolled_80_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_ge_bgs_uniform_special_80_grn) }; }; };

class gm_ge_bgs_uniform_special_80_blk : gm_ge_bgs_uniform_special_80_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(gm_ge_bgs_uniform_special_rolled_80_blk) }; }; };
class gm_ge_bgs_uniform_special_rolled_80_blk : gm_ge_bgs_uniform_special_rolled_80_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_ge_bgs_uniform_special_80_blk) }; }; };


class gm_ge_army_uniform_pilot_base;
class gm_ge_army_uniform_pilot_rolled_base;

class gm_ge_army_uniform_pilot_sar : gm_ge_army_uniform_pilot_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(gm_ge_army_uniform_pilot_rolled_sar) }; }; };
class gm_ge_army_uniform_pilot_rolled_sar : gm_ge_army_uniform_pilot_rolled_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_ge_army_uniform_pilot_sar) }; }; };

class gm_ge_army_uniform_pilot_oli : gm_ge_army_uniform_pilot_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(gm_ge_army_uniform_pilot_oli) }; }; };
class gm_ge_army_uniform_pilot_rolled_oli : gm_ge_army_uniform_pilot_rolled_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_ge_army_uniform_pilot_rolled_oli) }; }; };

class gm_ge_pol_uniform_pilot_grn : gm_ge_army_uniform_pilot_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(gm_ge_pol_uniform_pilot_rolled_grn) }; }; };
class gm_ge_pol_uniform_pilot_rolled_grn : gm_ge_army_uniform_pilot_rolled_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_ge_pol_uniform_pilot_grn) }; }; };

class gm_ge_uniform_pilot_commando_base;
class gm_ge_uniform_pilot_commando_rolled_base;

class gm_ge_uniform_pilot_commando_oli : gm_ge_uniform_pilot_commando_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(gm_ge_uniform_pilot_commando_rolled_oli) }; }; };
class gm_ge_uniform_pilot_commando_rolled_oli : gm_ge_uniform_pilot_commando_rolled_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_ge_uniform_pilot_commando_oli) }; }; };

class gm_ge_uniform_pilot_commando_gry : gm_ge_uniform_pilot_commando_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(gm_ge_uniform_pilot_commando_rolled_gry) }; }; };
class gm_ge_uniform_pilot_commando_rolled_gry : gm_ge_uniform_pilot_commando_rolled_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_ge_uniform_pilot_commando_gry) }; }; };

class gm_ge_uniform_pilot_commando_blk : gm_ge_uniform_pilot_commando_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(gm_ge_uniform_pilot_commando_rolled_blk) }; }; };
class gm_ge_uniform_pilot_commando_rolled_blk : gm_ge_uniform_pilot_commando_rolled_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_ge_uniform_pilot_commando_blk) }; }; };

class gm_pl_uniform_soldier_80_base;

class gm_pl_army_uniform_soldier_80_frog : gm_pl_uniform_soldier_80_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(gm_pl_army_uniform_soldier_rolled_80_frog) }; }; };
class gm_pl_army_uniform_soldier_rolled_80_frog : gm_pl_uniform_soldier_80_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_pl_army_uniform_soldier_80_frog) }; }; };

class gm_pl_army_uniform_soldier_80_moro : gm_pl_uniform_soldier_80_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(gm_pl_army_uniform_soldier_rolled_80_moro) }; }; };
class gm_pl_army_uniform_soldier_rolled_80_moro : gm_pl_uniform_soldier_80_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_pl_army_uniform_soldier_80_moro) }; }; };


class gm_ge_uniform_soldier_90_base;

class gm_ge_uniform_soldier_90_trp : gm_ge_uniform_soldier_90_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(gm_ge_uniform_soldier_rolled_90_trp) }; }; };
class gm_ge_uniform_soldier_rolled_90_trp : gm_ge_uniform_soldier_90_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_ge_uniform_soldier_90_trp) }; }; };

class gm_ge_uniform_soldier_90_flk : gm_ge_uniform_soldier_90_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(gm_ge_uniform_soldier_rolled_90_flk) }; }; };
class gm_ge_uniform_soldier_rolled_90_flk : gm_ge_uniform_soldier_90_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_ge_uniform_soldier_90_flk) }; }; };




// Gloves

class gm_gc_uniform_soldier_80_base;
class gm_gc_army_uniform_soldier_gloves_80_str : gm_gc_uniform_soldier_80_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_gloves_on) { modifiableTo[] = { Q(gm_gc_army_uniform_soldier_80_str) }; }; };
class gm_gc_army_uniform_soldier_80_str : gm_gc_uniform_soldier_80_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_gloves_off) { modifiableTo[] = { Q(gm_gc_army_uniform_soldier_gloves_80_str) }; }; };

class gm_ge_uniform_soldier_80_base;
class gm_ge_army_uniform_soldier_gloves_80_ols : gm_ge_uniform_soldier_80_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_gloves_on) { modifiableTo[] = { Q(gm_ge_army_uniform_soldier_80_ols) }; }; };
class gm_ge_army_uniform_soldier_80_ols : gm_ge_uniform_soldier_80_base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_gloves_off) { modifiableTo[] = { Q(gm_ge_army_uniform_soldier_gloves_80_ols) }; }; };


// Mixed case -> Base Interaction
class gm_ge_army_uniform_soldier_bdu_80_wdl;
class gm_ge_army_uniform_soldier_bdu_rolled_80_wdl;

class gm_xx_uniform_soldier_bdu_80_wdl : gm_ge_army_uniform_soldier_bdu_80_wdl { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_gloves_on) { modifiableTo[] = { Q(gm_xx_uniform_soldier_bdu_rolled_80_wdl), Q(gm_xx_uniform_soldier_bdu_nogloves_80_wdl) }; }; };
class gm_xx_uniform_soldier_bdu_rolled_80_wdl : gm_ge_army_uniform_soldier_bdu_rolled_80_wdl { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_xx_uniform_soldier_bdu_80_wdl), Q(gm_xx_uniform_soldier_bdu_nogloves_80_wdl) }; }; };
class gm_xx_uniform_soldier_bdu_nogloves_80_wdl : gm_ge_army_uniform_soldier_bdu_80_wdl { class PVAR(wardrobe) : EGVAR(wardrobe,base) { modifiableTo[] = { Q(gm_xx_uniform_soldier_bdu_80_wdl), Q(gm_xx_uniform_soldier_bdu_rolled_80_wdl) }; }; };

class gm_xx_uniform_soldier_bdu_80_oli : gm_ge_army_uniform_soldier_bdu_80_wdl { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_gloves_on) { modifiableTo[] = { Q(gm_xx_uniform_soldier_bdu_rolled_80_oli), Q(gm_xx_uniform_soldier_bdu_nogloves_80_oli) }; }; };
class gm_xx_uniform_soldier_bdu_rolled_80_oli : gm_ge_army_uniform_soldier_bdu_rolled_80_wdl { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(gm_xx_uniform_soldier_bdu_80_oli), Q(gm_xx_uniform_soldier_bdu_nogloves_80_oli) }; }; };
class gm_xx_uniform_soldier_bdu_nogloves_80_oli : gm_ge_army_uniform_soldier_bdu_80_wdl { class PVAR(wardrobe) : EGVAR(wardrobe,base) { modifiableTo[] = { Q(gm_xx_uniform_soldier_bdu_80_oli), Q(gm_xx_uniform_soldier_bdu_rolled_80_oli) }; }; };


35 changes: 35 additions & 0 deletions addons/wardrobe/TODO/gm/config.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#include "script_component.hpp"

class CfgPatches {
class ADDON {

// Meta information for editor
name = ADDON_NAME;
author = "$STR_mod_author";
authors[] = {"OverlordZorn [CVO]"};

url = "$STR_mod_URL";

VERSION_CONFIG;

// Addon Specific Information
// Minimum compatible version. When the game's version is lower, pop-up warning will appear when launching the game.
requiredVersion = 2.02;

// Required addons, used for setting load order.
// When any of the addons is missing, pop-up warning will appear when launching the game.
requiredAddons[] = {QPVAR(main),"cba_main", "gm_core"};

// Optional. If this is 1, if any of requiredAddons[] entry is missing in your game the entire config will be ignored and return no error (but in rpt) so useful to make a compat Mod (Since Arma 3 2.14)
skipWhenMissingDependencies = 1;

// List of objects (CfgVehicles classes) contained in the addon. Important also for Zeus content (units and groups)
units[] = {};

// List of weapons (CfgWeapons classes) contained in the addon.
weapons[] = {};

};
};

#include "CfgWardrobe.hpp"
4 changes: 4 additions & 0 deletions addons/wardrobe/TODO/gm/notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
lxWS_H_turban_01_black
lxWS_H_turban_02_black
lxWS_H_turban_03_black
lxWS_H_turban_04_black
9 changes: 9 additions & 0 deletions addons/wardrobe/TODO/gm/script_component.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#define COMPONENT ws


// This is being used for the Addon's Name and can be "My Addon Template Framework"
#define COMPONENT_BEAUTIFIED Compatibility for Western Sahara


#include "\z\ace\addons\main\script_mod.hpp"
#include "\z\ace\addons\main\script_macros.hpp"
1 change: 1 addition & 0 deletions addons/wardrobe/TODO/rf/$PBOPREFIX$
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
z\ace\addons\rf
21 changes: 21 additions & 0 deletions addons/wardrobe/TODO/rf/CfgWardrobe.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
class EGVAR(wardrobe,base);
class EGVAR(wardrobe,base_U_sleeves_up);
class EGVAR(wardrobe,base_U_sleeves_down);
class EGVAR(wardrobe,base_U_jacket_open);
class EGVAR(wardrobe,base_U_jacket_closed);
class EGVAR(wardrobe,base_H_visor_up);
class EGVAR(wardrobe,base_H_visor_down);

class CfgWeapons
{

Check failure on line 10 in addons/wardrobe/TODO/rf/CfgWardrobe.hpp

View workflow job for this annotation

GitHub Actions / windows

found "{" but expected one of ";", "8", "o", "D", "h", "b", "q", "s", "Q", "x", "P", "d", "e", "A", "L", "f", "a", "2", "m", "H", "X", "5", "E", "B", "R", "r", "g", "u", "V", "w", "_", "7", "9", "n", "G", "W", "i", "0", "N", "3", "p", "S", "4", "c", "l", end of input, "C", "I", "J", "U", "j", "Y", "K", "z", "F", "6", "M", "t", "y", "O", "T", "v", "k", "Z", "1"

found "{" but expected one of ";", "8", "o", "D", "h", "b", "q", "s", "Q", "x", "P", "d", "e", "A", "L", "f", "a", "2", "m", "H", "X", "5", "E", "B", "R", "r", "g", "u", "V", "w", "_", "7", "9", "n", "G", "W", "i", "0", "N", "3", "p", "S", "4", "c", "l", end of input, "C", "I", "J", "U", "j", "Y", "K", "z", "F", "6", "M", "t", "y", "O", "T", "v", "k", "Z", "1"
#include "Helmets.hpp"
#include "Uniforms.hpp"


// Cap (Ion) Forward and Reversed
class lxWS_H_CapB_rvs_blk;
class lxWS_H_CapB_rvs_blk_ION: lxWS_H_CapB_rvs_blk { class PVAR(wardrobe) : EGVAR(wardrobe,base) { modifiableTo[] = { "H_Cap_headphones_ion_lxws" }; }; };
class H_Cap_headphones_ion_lxws: lxWS_H_CapB_rvs_blk_ION { class PVAR(wardrobe) : EGVAR(wardrobe,base) { modifiableTo[] = { "lxWS_H_CapB_rvs_blk_ION" }; }; };
};


24 changes: 24 additions & 0 deletions addons/wardrobe/TODO/rf/Helmets.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// CfgWeapons

// Macros
#define CN(color) H_HelmetHeavy_##color##_RF
#define CN_VU(color) H_HelmetHeavy_VisorUp_##color##_RF


#define HELMET_VARIANT(color)\
class CN(color): H_HelmetHeavy_Black_RF { class PVAR(wardrobe) : EGVAR(wardrobe,base_H_visor_down) { modifiableTo[] = { Q(CN_VU(color)) }; }; };\
class CN_VU(color): H_HelmetHeavy_VisorUp_Black_RF { class PVAR(wardrobe) : EGVAR(wardrobe,base_H_visor_up) { modifiableTo[] = { Q(CN(color)) }; }; };\


// Base Classes
class H_HelmetAggressor_F;

class H_HelmetHeavy_Black_RF : H_HelmetAggressor_F { class PVAR(wardrobe) : EGVAR(wardrobe,base_H_visor_down) { modifiableTo[] = { "H_HelmetHeavy_VisorUp_Black_RF" }; }; };
class H_HelmetHeavy_VisorUp_Black_RF : H_HelmetHeavy_Black_RF { class PVAR(wardrobe) : EGVAR(wardrobe,base_H_visor_up) { modifiableTo[] = { "H_HelmetHeavy_Black_RF" }; }; };

// Variants
HELMET_VARIANT(Hex)
HELMET_VARIANT(GHex)
HELMET_VARIANT(Sand)
HELMET_VARIANT(Olive)
HELMET_VARIANT(White)
23 changes: 23 additions & 0 deletions addons/wardrobe/TODO/rf/Uniforms.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// CfgWeapons

class Uniform_Base;

// Macros
#define UNIFORM_BASE(class1,class2)\
class class1: Uniform_Base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_down) { modifiableTo[] = { Q(class2) }; }; };\
class class2: Uniform_Base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_sleeves_up) { modifiableTo[] = { Q(class1) }; }; };\
OverlordZorn marked this conversation as resolved.
Show resolved Hide resolved

// Simple Variants
UNIFORM_BASE(U_C_FirefighterFatigues_RF,U_C_FirefighterFatigues_RolledUp_RF)
UNIFORM_BASE(U_BG_Guerrilla_6_1,U_BG_Guerrilla_RF)


// Pilot Jackets
class U_C_PilotJacket_black_RF : Uniform_Base { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_jacket_closed) { modifiableTo[] = { Q(U_C_PilotJacket_open_black_RF) }; }; };
class U_C_PilotJacket_open_black_RF : U_C_PilotJacket_black_RF { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_jacket_open) { modifiableTo[] = { Q(U_C_PilotJacket_black_RF) }; }; };

class U_C_PilotJacket_brown_RF : U_C_PilotJacket_black_RF { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_jacket_closed) { modifiableTo[] = { Q(U_C_PilotJacket_open_brown_RF) }; }; };
class U_C_PilotJacket_open_brown_RF : U_C_PilotJacket_brown_RF { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_jacket_open) { modifiableTo[] = { Q(U_C_PilotJacket_brown_RF) }; }; };

class U_C_PilotJacket_lbrown_RF : U_C_PilotJacket_black_RF { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_jacket_closed) { modifiableTo[] = { Q(U_C_PilotJacket_open_lbrown_RF) }; }; };
class U_C_PilotJacket_open_lbrown_RF : U_C_PilotJacket_lbrown_RF { class PVAR(wardrobe) : EGVAR(wardrobe,base_U_jacket_open) { modifiableTo[] = { Q(U_C_PilotJacket_lbrown_RF) }; }; };
Loading
Loading