Selaa lähdekoodia

Add Macros and Config

m3ales 4 vuotta sitten
vanhempi
commit
fd9f2a22c2

+ 27 - 2
addons - Copy/RD501_Markers/config.cpp

@@ -4,6 +4,7 @@
 * - ui/markers/logo/some_fixed_colour_logo.paa
 * - ui/markers/outline/some_variable_colour_outline.paa
 */
+#include "rd501_marker_macros.hpp"
 class CfgPatches
 {
 	class RD501_Markers
@@ -16,13 +17,37 @@ class CfgPatches
 		requiredaddons[] = {};
 	};
 };
-
 class CfgMarkers
 {
-	//Marker definitions, ensure link to marker classes
+	// Default Emblem Size
+	#define RD501_MARKERS_EMBLEM_SIZE 48
+
+	// Marker definitions, ensure link to marker CfgMarker
+	// Avalanche Company Markers [Colourable]
+	RD501_MARKER_ANYCOLOUR_NOSHADOW_GROUPED_PUBLIC(RD501_MARKER_CLASSNAME(avalanche_1,outline),"Avalanche 1",RD501_MARKER_OUTLINE_PATH(avalanche_1),RD501_MARKERS_EMBLEM_SIZE);
+	RD501_MARKER_ANYCOLOUR_NOSHADOW_GROUPED_PUBLIC(RD501_MARKER_CLASSNAME(avalanche_2,outline),"Avalanche 2",RD501_MARKER_OUTLINE_PATH(avalanche_2),RD501_MARKERS_EMBLEM_SIZE);
+	RD501_MARKER_ANYCOLOUR_NOSHADOW_GROUPED_PUBLIC(RD501_MARKER_CLASSNAME(avalanche_3,outline),"Avalanche 3",RD501_MARKER_OUTLINE_PATH(avalanche_3),RD501_MARKERS_EMBLEM_SIZE);
+
+	// Cyclone Company Markers [Colourable]
+	RD501_MARKER_ANYCOLOUR_NOSHADOW_GROUPED_PUBLIC(RD501_MARKER_CLASSNAME(cyclone_1,outline),"Cyclone 1",RD501_MARKER_OUTLINE_PATH(cyclone_1),RD501_MARKERS_EMBLEM_SIZE);
+	RD501_MARKER_ANYCOLOUR_NOSHADOW_GROUPED_PUBLIC(RD501_MARKER_CLASSNAME(cyclone_2,outline),"Cyclone 2",RD501_MARKER_OUTLINE_PATH(cyclone_2),RD501_MARKERS_EMBLEM_SIZE);
+	RD501_MARKER_ANYCOLOUR_NOSHADOW_GROUPED_PUBLIC(RD501_MARKER_CLASSNAME(cyclone_3,outline),"Cyclone 3",RD501_MARKER_OUTLINE_PATH(cyclone_3),RD501_MARKERS_EMBLEM_SIZE);
+
+	// Avalanche Company Logos [Fixed Colour]
+	RD501_MARKER_SOURCECOLOUR_NOSHADOW_GROUPED_PUBLIC(RD501_MARKER_CLASSNAME(avalanche_1,logo),"Avalanche 1 Logo",RD501_MARKER_LOGO_PATH(avalanche_1),RD501_MARKERS_EMBLEM_SIZE);
+	RD501_MARKER_SOURCECOLOUR_NOSHADOW_GROUPED_PUBLIC(RD501_MARKER_CLASSNAME(avalanche_2,logo),"Avalanche 2 Logo",RD501_MARKER_LOGO_PATH(avalanche_2),RD501_MARKERS_EMBLEM_SIZE);
+	RD501_MARKER_SOURCECOLOUR_NOSHADOW_GROUPED_PUBLIC(RD501_MARKER_CLASSNAME(avalanche_3,logo),"Avalanche 3 Logo",RD501_MARKER_LOGO_PATH(avalanche_3),RD501_MARKERS_EMBLEM_SIZE);
+	
+	// Cyclone Company Logos [Fixed Colour]
+	RD501_MARKER_SOURCECOLOUR_NOSHADOW_GROUPED_PUBLIC(RD501_MARKER_CLASSNAME(cyclone_1,logo),"Cyclone 1 Logo",RD501_MARKER_LOGO_PATH(cyclone_1),RD501_MARKERS_EMBLEM_SIZE);
+	RD501_MARKER_SOURCECOLOUR_NOSHADOW_GROUPED_PUBLIC(RD501_MARKER_CLASSNAME(cyclone_2,logo),"Cyclone 2 Logo",RD501_MARKER_LOGO_PATH(cyclone_2),RD501_MARKERS_EMBLEM_SIZE);
+	RD501_MARKER_SOURCECOLOUR_NOSHADOW_GROUPED_PUBLIC(RD501_MARKER_CLASSNAME(cyclone_3,logo),"Cyclone 3 Logo",RD501_MARKER_LOGO_PATH(cyclone_3),RD501_MARKERS_EMBLEM_SIZE);
 };
 
 class CfgMarkerClasses
 {
 	// Used to group markers and provide ordering in the marker dropdown -- is alphabetical
+	class RD501_Markers{
+		displayname="RD501 Markers";
+	};
 };

+ 33 - 0
addons - Copy/RD501_Markers/rd501_marker_macros.hpp

@@ -0,0 +1,33 @@
+
+#ifndef RD501_MARKER_CONFIG_MACROS
+#define RD501_MARKER_CONFIG_MACROS
+#define RD501_MARKER_ADDON RD501_Markers
+#define RD501_MARKER_QUOTE(target) #target
+#define RD501_MARKER_CONCAT(a,b) a##b
+//Convention: ui\markers\outline\rd501_marker_name_outline.paa
+#define RD501_MARKER_OUTLINE_PATH(name) RD501_MARKER_CONCAT(RD501_MARKER_ADDON,RD501_MARKER_CONCAT(\ui\markers\outline\rd501_marker_,RD501_MARKER_CONCAT(name,_outline.paa)))
+//Convention: ui\markers\logo\rd501_marker_name_logo.paa
+#define RD501_MARKER_LOGO_PATH(name) RD501_MARKER_CONCAT(RD501_MARKER_ADDON,RD501_MARKER_CONCAT(\ui\markers\logo\rd501_marker_,RD501_MARKER_CONCAT(name,_logo.paa)))
+#define RD501_MARKER_ARR_4(a,b,c,d) a, b, c, d
+//CfgMarker class, accepts typical vars and sets them, is wrapped by others below
+#define RD501_MARKER_CLASS_BASE(className,displayName,iconPath,hasShadow,markerSize,markerColour,markerGroup,markerScope) class className\
+	{\
+		name = displayName;\
+		icon = iconPath;\
+		texture = iconPath;\
+		color[] = markerColour;\
+		size = markerSize;\
+		shadow = hasShadow;\
+		markerClass = markerGroup;\
+		scope = markerScope;\
+	}
+// Group used for ordering in the marker menu
+#define RD501_MARKER_GROUP RD501 Map Markers
+#define RD501_MARKER_GROUP_QUOTED RD501_MARKER_QUOTE(RD501_MARKER_GROUP)
+// SOURCECOLOUR -> Logos, things that need to keep their colour, generally only are white.
+// RD501_Marker_name_type
+#define RD501_MARKER_CLASSNAME(name,type) RD501_MARKER_CONCAT(RD501_Marker_,RD501_MARKER_CONCAT(name,RD501_MARKER_CONCAT(_,type)))
+#define RD501_MARKER_SOURCECOLOUR_NOSHADOW_GROUPED_PUBLIC(className,displayName,iconPath,markerSize) RD501_MARKER_CLASS_BASE(className,displayName,iconPath,false,markerSize,{RD501_MARKER_ARR_4(0,0,0,1)},RD501_MARKER_GROUP_QUOTED,2)
+// ANYCOLOUR -> Normal Map Markers, things that are colourable, or atleast survive being coloured well.
+#define RD501_MARKER_ANYCOLOUR_NOSHADOW_GROUPED_PUBLIC(className,displayName,iconPath,markerSize) RD501_MARKER_CLASS_BASE(className,displayName,iconPath,false,markerSize,{RD501_MARKER_ARR_4(0,0,0,1)},RD501_MARKER_GROUP_QUOTED,2)
+#endif