Skip to content

Commit 50abb49

Browse files
Tagging - Improve: Rework Soundeffects and add Chalk Marker (#11297)
* Rework soundeffects based on item used * add Cooldown * add white chalk * cleanup * textures * add chalk tags * revert 1. -> 0. * fix paa resolution (1500 -> 256) * Update stringtable.xml * add color chalk items * Update config.cpp * Update CfgVehicles.hpp * cleanup * QUOTE -> CSTRING * mv define GLUE() to script_component * avoid ## and cleanup * sfx - finetuned random pitch * Update addons/tagging/functions/fnc_tag.sqf Co-authored-by: PabstMirror <pabstmirror@gmail.com> * Update addons/tagging/functions/fnc_createTag.sqf Co-authored-by: PabstMirror <pabstmirror@gmail.com> --------- Co-authored-by: PabstMirror <pabstmirror@gmail.com>
1 parent e4b4b9a commit 50abb49

36 files changed

+245
-136
lines changed

LICENSE

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,16 @@ Some folders of this project may contain a separate LICENSE file. Should
2626
that be the case, everything in that folder and all subfolders is subject
2727
to that license instead.
2828

29-
- ARMA PUBLIC LICENSE (\addons\apl)
30-
- CreativeCommons Attributions 3.0 (\addons\fastroping\data\sounds)
31-
- CreativeCommons Attributions 4.0 (\addons\refuel\sounds)
32-
33-
- CreativeCommons Zero 1.0 Universal (\addons\wardrobe\data\sounds)
29+
- ARMA PUBLIC LICENSE
30+
- \addons\apl
31+
- CreativeCommons Attributions 3.0
32+
- \addons\fastroping\data\sounds
33+
- \addons\tagging\sounds
34+
- CreativeCommons Attributions 4.0
35+
- \addons\refuel\sounds
36+
37+
- CreativeCommons Zero 1.0 Universal
38+
- \addons\wardrobe\data\sounds
3439

3540
============================================================================
3641
Full GNU General Public License Text

addons/tagging/ACE_Tags.hpp

Lines changed: 81 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,118 +1,89 @@
1-
#define GLUE(g1,g2) g1##g2
2-
#define TAG(name,col) class TRIPLES(ACE,name,col) { \
3-
displayName = CSTRING(name); \
4-
requiredItem = QUOTE(GLUE(ACE_Spraypaint,col)); \
5-
textures[] = {QPATHTOF(UI\tags\col\name.paa)}; \
6-
icon = QPATHTOF(UI\tags\col\name.paa); \
7-
}
1+
#define SPRAY_TAG(NAME,COL)\
2+
class TRIPLES(ACE,NAME,COL) {\
3+
displayName = CSTRING(NAME);\
4+
requiredItem = QUOTE(GLUE(ACE_Spraypaint,COL));\
5+
textures[] = {QPATHTOF(UI\tags\COL\NAME.paa)};\
6+
icon = QPATHTOF(UI\tags\COL\NAME.paa);\
7+
}
88

9-
class ACE_Tags {
10-
class ACE_XBlack {
11-
displayName = CSTRING(x);
12-
requiredItem = "ACE_SpraypaintBlack";
13-
textures[] = {QPATHTOF(UI\tags\black\0.paa), QPATHTOF(UI\tags\black\1.paa), QPATHTOF(UI\tags\black\2.paa)};
14-
icon = QPATHTOF(UI\tags\black\0.paa);
15-
};
16-
class ACE_XRed {
17-
displayName = CSTRING(x);
18-
requiredItem = "ACE_SpraypaintRed";
19-
textures[] = {QPATHTOF(UI\tags\red\0.paa), QPATHTOF(UI\tags\red\1.paa), QPATHTOF(UI\tags\red\2.paa)};
20-
icon = QPATHTOF(UI\tags\red\0.paa);
21-
};
22-
class ACE_XGreen {
23-
displayName = CSTRING(x);
24-
requiredItem = "ACE_SpraypaintGreen";
25-
textures[] = {QPATHTOF(UI\tags\green\0.paa), QPATHTOF(UI\tags\green\1.paa), QPATHTOF(UI\tags\green\2.paa)};
26-
icon = QPATHTOF(UI\tags\green\0.paa);
27-
};
28-
class ACE_XBlue {
29-
displayName = CSTRING(x);
30-
requiredItem = "ACE_SpraypaintBlue";
31-
textures[] = {QPATHTOF(UI\tags\blue\0.paa), QPATHTOF(UI\tags\blue\1.paa), QPATHTOF(UI\tags\blue\2.paa)};
32-
icon = QPATHTOF(UI\tags\blue\0.paa);
33-
};
34-
class ACE_XYellow {
35-
displayName = CSTRING(x);
36-
requiredItem = "ACE_SpraypaintYellow";
37-
textures[] = {QPATHTOF(UI\tags\yellow\0.paa), QPATHTOF(UI\tags\yellow\1.paa), QPATHTOF(UI\tags\yellow\2.paa)};
38-
icon = QPATHTOF(UI\tags\yellow\0.paa);
39-
};
40-
class ACE_XWhite {
41-
displayName = CSTRING(x);
42-
requiredItem = "ACE_SpraypaintWhite";
43-
textures[] = {QPATHTOF(UI\tags\white\0.paa), QPATHTOF(UI\tags\white\1.paa), QPATHTOF(UI\tags\white\2.paa)};
44-
icon = QPATHTOF(UI\tags\white\0.paa);
45-
};
9+
#define CHALK_TAG(NAME,COL)\
10+
class DOUBLES(TRIPLES(ACE,NAME,COL),chalk) {\
11+
displayName = CSTRING(NAME);\
12+
requiredItem = QUOTE(GLUE(ACE_Chalk,COL));\
13+
textures[] = { QPATHTOF(UI\tags\COL\NAME.paa) };\
14+
icon = QPATHTOF(UI\tags\COL\NAME.paa);\
15+
}
16+
17+
#define SPRAY_TAG_X(COLOR,FOLDER)\
18+
class DOUBLES(ACE,COLOR) {\
19+
displayName = CSTRING(x);\
20+
requiredItem = QUOTE(GLUE(ACE_Spraypaint,COLOR));\
21+
textures[] = { QPATHTOF(UI\tags\FOLDER\0.paa), QPATHTOF(UI\tags\FOLDER\1.paa), QPATHTOF(UI\tags\FOLDER\2.paa) };\
22+
icon = QPATHTOF(UI\tags\FOLDER\0.paa);\
23+
}
24+
25+
#define CHALK_TAG_X(COLOR,FOLDER)\
26+
class TRIPLES(ACE,COLOR,Chalk) {\
27+
displayName = CSTRING(x);\
28+
requiredItem = QUOTE(GLUE(ACE_Chalk,COLOR));\
29+
textures[] = {QPATHTOF(UI\tags\FOLDER\0.paa), QPATHTOF(UI\tags\FOLDER\1.paa), QPATHTOF(UI\tags\FOLDER\2.paa)};\
30+
icon = QPATHTOF(UI\tags\FOLDER\0.paa);\
31+
}
4632

47-
TAG(arrow_up,black);
48-
TAG(arrow_down,black);
49-
TAG(arrow_left,black);
50-
TAG(arrow_right,black);
51-
TAG(circle,black);
52-
TAG(cross,black);
53-
TAG(diamond,black);
54-
TAG(square,black);
55-
TAG(square_filled,black);
56-
TAG(triangle,black);
57-
TAG(triangle_inverted,black);
5833

59-
TAG(arrow_up,blue);
60-
TAG(arrow_down,blue);
61-
TAG(arrow_left,blue);
62-
TAG(arrow_right,blue);
63-
TAG(circle,blue);
64-
TAG(cross,blue);
65-
TAG(diamond,blue);
66-
TAG(square,blue);
67-
TAG(square_filled,blue);
68-
TAG(triangle,blue);
69-
TAG(triangle_inverted,blue);
34+
#define SPRAY_TAGS(COLOR)\
35+
SPRAY_TAG(arrow_up,COLOR);\
36+
SPRAY_TAG(arrow_down,COLOR);\
37+
SPRAY_TAG(arrow_left,COLOR);\
38+
SPRAY_TAG(arrow_right,COLOR);\
39+
SPRAY_TAG(circle,COLOR);\
40+
SPRAY_TAG(cross,COLOR);\
41+
SPRAY_TAG(diamond,COLOR);\
42+
SPRAY_TAG(square,COLOR);\
43+
SPRAY_TAG(square_filled,COLOR);\
44+
SPRAY_TAG(triangle,COLOR);\
45+
SPRAY_TAG(triangle_inverted,COLOR)
7046

71-
TAG(arrow_up,green);
72-
TAG(arrow_down,green);
73-
TAG(arrow_left,green);
74-
TAG(arrow_right,green);
75-
TAG(circle,green);
76-
TAG(cross,green);
77-
TAG(diamond,green);
78-
TAG(square,green);
79-
TAG(square_filled,green);
80-
TAG(triangle,green);
81-
TAG(triangle_inverted,green);
47+
#define CHALK_TAGS(COLOR)\
48+
CHALK_TAG(arrow_up,COLOR);\
49+
CHALK_TAG(arrow_down,COLOR);\
50+
CHALK_TAG(arrow_left,COLOR);\
51+
CHALK_TAG(arrow_right,COLOR);\
52+
CHALK_TAG(circle,COLOR);\
53+
CHALK_TAG(cross,COLOR);\
54+
CHALK_TAG(diamond,COLOR);\
55+
CHALK_TAG(square,COLOR);\
56+
CHALK_TAG(square_filled,COLOR);\
57+
CHALK_TAG(triangle,COLOR);\
58+
CHALK_TAG(triangle_inverted,COLOR)
59+
60+
61+
class ACE_Tags {
62+
SPRAY_TAG_X(Black,black);
63+
SPRAY_TAG_X(Blue,blue);
64+
SPRAY_TAG_X(Green,green);
65+
SPRAY_TAG_X(Red,red);
66+
SPRAY_TAG_X(Yellow,yellow);
67+
SPRAY_TAG_X(White,white);
8268

83-
TAG(arrow_up,red);
84-
TAG(arrow_down,red);
85-
TAG(arrow_left,red);
86-
TAG(arrow_right,red);
87-
TAG(circle,red);
88-
TAG(cross,red);
89-
TAG(diamond,red);
90-
TAG(square,red);
91-
TAG(square_filled,red);
92-
TAG(triangle,red);
93-
TAG(triangle_inverted,red);
69+
SPRAY_TAGS(black);
70+
SPRAY_TAGS(blue);
71+
SPRAY_TAGS(green);
72+
SPRAY_TAGS(red);
73+
SPRAY_TAGS(yellow);
74+
SPRAY_TAGS(white);
9475

95-
TAG(arrow_up,yellow);
96-
TAG(arrow_down,yellow);
97-
TAG(arrow_left,yellow);
98-
TAG(arrow_right,yellow);
99-
TAG(circle,yellow);
100-
TAG(cross,yellow);
101-
TAG(diamond,yellow);
102-
TAG(square,yellow);
103-
TAG(square_filled,yellow);
104-
TAG(triangle,yellow);
105-
TAG(triangle_inverted,yellow);
76+
CHALK_TAG_X(Black,black);
77+
CHALK_TAG_X(Blue,blue);
78+
CHALK_TAG_X(Green,green);
79+
CHALK_TAG_X(Red,red);
80+
CHALK_TAG_X(Yellow,yellow);
81+
CHALK_TAG_X(White,white);
10682

107-
TAG(arrow_up,white);
108-
TAG(arrow_down,white);
109-
TAG(arrow_left,white);
110-
TAG(arrow_right,white);
111-
TAG(circle,white);
112-
TAG(cross,white);
113-
TAG(diamond,white);
114-
TAG(square,white);
115-
TAG(square_filled,white);
116-
TAG(triangle,white);
117-
TAG(triangle_inverted,white);
83+
CHALK_TAGS(black);
84+
CHALK_TAGS(blue);
85+
CHALK_TAGS(green);
86+
CHALK_TAGS(red);
87+
CHALK_TAGS(yellow);
88+
CHALK_TAGS(white);
11889
};

addons/tagging/CfgSounds.hpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#define SOUNDEFFECT(NAME,VOLUME)\
2+
class GVAR(NAME) {\
3+
sound[] = { QUOTE(PATHTO_R(sounds\NAME.ogg)), VOLUME, 1, 25 };\
4+
titles[] = {};\
5+
}
6+
7+
class CfgSounds {
8+
SOUNDEFFECT(spray,5);
9+
SOUNDEFFECT(spray01,5);
10+
SOUNDEFFECT(spray02,5);
11+
12+
SOUNDEFFECT(chalk01,5);
13+
SOUNDEFFECT(chalk02,5);
14+
SOUNDEFFECT(chalk03,5);
15+
SOUNDEFFECT(chalk04,5);
16+
SOUNDEFFECT(chalk05,5);
17+
SOUNDEFFECT(chalk06,5);
18+
};

addons/tagging/CfgVehicles.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,12 @@ class CfgVehicles {
120120
MACRO_ADDITEM(ACE_SpraypaintGreen,5);
121121
MACRO_ADDITEM(ACE_SpraypaintYellow,5);
122122
MACRO_ADDITEM(ACE_SpraypaintWhite,5);
123+
MACRO_ADDITEM(ACE_ChalkBlack,5);
124+
MACRO_ADDITEM(ACE_ChalkRed,5);
125+
MACRO_ADDITEM(ACE_ChalkBlue,5);
126+
MACRO_ADDITEM(ACE_ChalkGreen,5);
127+
MACRO_ADDITEM(ACE_ChalkYellow,5);
128+
MACRO_ADDITEM(ACE_ChalkWhite,5);
123129
};
124130
};
125131
};

addons/tagging/CfgWeapons.hpp

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ class CfgWeapons {
22
class ACE_ItemCore;
33
class CBA_MiscItem_ItemInfo;
44

5+
//Spraypaints
56
class ACE_SpraypaintBlack: ACE_ItemCore {
67
author = "jokoho48";
78
displayname = CSTRING(spraypaintBlack);
@@ -15,6 +16,11 @@ class CfgWeapons {
1516
mass = 10;
1617
};
1718
GVAR(textColor) = "000000FE";
19+
sounds[] = {
20+
QGVAR(spray),
21+
QGVAR(spray01),
22+
QGVAR(spray02)
23+
};
1824
};
1925
class ACE_SpraypaintRed: ACE_SpraypaintBlack {
2026
displayname = CSTRING(spraypaintRed);
@@ -46,4 +52,37 @@ class CfgWeapons {
4652
hiddenSelectionsTextures[] = {QPATHTOF(data\spraycanWhite_co.paa)};
4753
GVAR(textColor) = "FFFFFFFE";
4854
};
55+
56+
// Chalks
57+
class ACE_ChalkWhite: ACE_SpraypaintWhite {
58+
author = "zorn";
59+
displayname = CSTRING(chalkWhite);
60+
descriptionShort = CSTRING(descSpraypaint);
61+
model = "\A3\weapons_F\ammo\mag_univ.p3d";
62+
scope = 2;
63+
picture = QPATHTOF(UI\items\itemChalkWhite.paa);
64+
GVAR(textColor) = "FFFFFFFE";
65+
sounds[] = {
66+
QGVAR(chalk01),
67+
QGVAR(chalk02),
68+
QGVAR(chalk03),
69+
QGVAR(chalk04),
70+
QGVAR(chalk05),
71+
QGVAR(chalk06)
72+
};
73+
};
74+
75+
#define ACE_CHALK(COLOR,HEX)\
76+
class GLUE(ACE_Chalk,COLOR): ACE_ChalkWhite {\
77+
displayName = CSTRING(GLUE(chalk,COLOR));\
78+
picture = QPATHTOF(UI\items\GLUE(itemChalk,COLOR).paa);\
79+
GVAR(textColor) = QUOTE(HEX);\
80+
}
81+
82+
ACE_CHALK(Black,000000FE);
83+
ACE_CHALK(Blue,0000FFFE);
84+
ACE_CHALK(Red,FF0000FE);
85+
ACE_CHALK(Green,00FF00FE);
86+
ACE_CHALK(Yellow,FFFF00FE);
87+
4988
};
106 KB
Binary file not shown.
36.6 KB
Binary file not shown.
37.4 KB
Binary file not shown.
111 KB
Binary file not shown.
39.2 KB
Binary file not shown.

0 commit comments

Comments
 (0)