]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/impulses/all.qh
Merge branch 'terencehill/menu_more_disabled_items' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / impulses / all.qh
index a0c6e4b20dd2d9cdb74ac6b972e95bc21a859df1..6780ac16d0fa1ddd83c766319d05f2d9289b2c01 100644 (file)
@@ -6,33 +6,39 @@ REGISTER_REGISTRY(IMPULSES)
 REGISTRY_SORT(IMPULSES)
 STATIC_INIT(IMPULSES_renumber)
 {
-       FOREACH(IMPULSES, true, LAMBDA(it.m_id = i));
+       FOREACH(IMPULSES, true, it.m_id = i);
 }
 REGISTRY_CHECK(IMPULSES)
 
 .void(entity this) impulse_handle;
 
 #if defined(CSQC)
-#define IMPULSE_ALIAS(alias, id) localcmd("\nalias " #alias " \"" id "\"\n")
+#define IMPULSE_ALIAS(alias, id) localcmd("\nalias " #alias " \"", id ,"\"\n")
 #else
 #define IMPULSE_ALIAS(alias, id)
 #endif
 
 #define REGISTER_IMPULSE(id, n) _REGISTER_IMPULSE(IMP_##id, id, n)
 #define _REGISTER_IMPULSE(id, alias, n) \
-       REGISTER(IMPULSES, id, m_id, new(Impulse)) \
+       REGISTER(IMPULSES, id, m_id, new_pure(Impulse)) \
        { \
-               make_pure(this); \
                this.impulse = n; \
                IMPULSE_ALIAS(alias, "impulse " #n); \
        }
 
+#define LEGACY_IMPULSE_ID(alias, id) LEGACY_IMPULSE(alias, id, sprintf("impulse %d", IMP_##alias.impulse))
+
 #define LEGACY_IMPULSE(alias, id, new) \
-       STATIC_INIT(legacy_##alias) { IMPULSE_ALIAS(alias, new); } \
+       STATIC_INIT(legacy_##alias) { \
+               string s = new; \
+               if (s == #alias) LOG_FATALF("LEGACY_IMPULSE: would define a recursive alias for '%s', use LEGACY_IMPULSE_ID instead", s); \
+               IMPULSE_ALIAS(alias, s); \
+       } \
        SHUTDOWN(legacy_##alias) { IMPULSE_ALIAS(alias, "impulse " #id); }
 
 #define X(slot, imp) \
-       REGISTER_IMPULSE(weapon_group_##slot, imp) LEGACY_IMPULSE(weapon_group_##slot, imp, "impulse " #imp)
+       REGISTER_IMPULSE(weapon_group_##slot, imp) \
+       LEGACY_IMPULSE(weapon_group_##slot, imp, "impulse " #imp)
 X(1, 1)
 X(2, 2)
 X(3, 3)
@@ -45,6 +51,73 @@ X(9, 9)
 X(0, 14)
 #undef X
 
+#define X(slot, dir, imp) \
+       REGISTER_IMPULSE(weapon_priority_##slot##_##dir, imp) \
+       LEGACY_IMPULSE(weapon_priority_##slot##_##dir, imp, "impulse " #imp)
+X(0, prev, 200)
+X(1, prev, 201)
+X(2, prev, 202)
+X(3, prev, 203)
+X(4, prev, 204)
+X(5, prev, 205)
+X(6, prev, 206)
+X(7, prev, 207)
+X(8, prev, 208)
+X(9, prev, 209)
+
+X(0, best, 210)
+X(1, best, 211)
+X(2, best, 212)
+X(3, best, 213)
+X(4, best, 214)
+X(5, best, 215)
+X(6, best, 216)
+X(7, best, 217)
+X(8, best, 218)
+X(9, best, 219)
+
+X(0, next, 220)
+X(1, next, 221)
+X(2, next, 222)
+X(3, next, 223)
+X(4, next, 224)
+X(5, next, 225)
+X(6, next, 226)
+X(7, next, 227)
+X(8, next, 228)
+X(9, next, 229)
+#undef X
+
+// direct weapons
+
+#define X(i, imp) \
+       REGISTER_IMPULSE(weapon_byid_##i, imp)
+X(0, 230)
+X(1, 231)
+X(2, 232)
+X(3, 233)
+X(4, 234)
+X(5, 235)
+X(6, 236)
+X(7, 237)
+X(8, 238)
+X(9, 239)
+X(10, 240)
+X(11, 241)
+X(12, 242)
+X(13, 243)
+X(14, 244)
+X(15, 245)
+X(16, 246)
+X(17, 247)
+X(18, 248)
+X(19, 249)
+X(20, 250)
+X(21, 251)
+X(22, 252)
+X(23, 253)
+#undef X
+
 REGISTER_IMPULSE(weapon_next_byid, 10)
 LEGACY_IMPULSE(_weapnext_2, 10, "weapon_next_byid")
 
@@ -76,7 +149,7 @@ REGISTER_IMPULSE(weapon_reload, 20)
 LEGACY_IMPULSE(reload, 20, "weapon_reload")
 
 REGISTER_IMPULSE(use, 21)
-LEGACY_IMPULSE(use, 21, "use")
+LEGACY_IMPULSE_ID(use, 21)
 
 REGISTER_IMPULSE(waypoint_personal_here, 30)
 LEGACY_IMPULSE(g_waypointsprite_personal, 30, "waypoint_personal_here")
@@ -131,9 +204,8 @@ LEGACY_IMPULSE(g_waypointeditor_unreachable, 107, "navwaypoint_unreachable")
 
 #define CHIMPULSE(id, n) _CHIMPULSE(CHIMPULSE_##id, n)
 #define _CHIMPULSE(id, n) \
-       REGISTER(IMPULSES, id, m_id, new(Impulse)) \
+       REGISTER(IMPULSES, id, m_id, new_pure(Impulse)) \
        { \
-               make_pure(this); \
                this.impulse = n; \
        }