]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/impulses/all.qh
Update default video settings
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / impulses / all.qh
index 9196625b1f0bd0101be0af6c47706dc4224c5222..da13ee4aa490a811e205a10702e4e72f15aea382 100644 (file)
@@ -1,34 +1,52 @@
-#ifndef IMPULSES_ALL_H
-#define IMPULSES_ALL_H
+#pragma once
 
 REGISTRY(IMPULSES, 255)
 REGISTER_REGISTRY(IMPULSES)
 REGISTRY_SORT(IMPULSES)
+
+REGISTRY_DEFINE_GET(IMPULSES, NULL)
 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")
+void Impulse_Send(entity imp)
+{
+       localcmd(sprintf("\nimpulse %d\n", imp.impulse));
+}
+
+#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))
+
+void _impCheck(string s, string alias)
+{
+       // this is inside a function to avoid expanding it on compilation everytime
+       if (s == alias)
+               LOG_FATALF("LEGACY_IMPULSE: would define a recursive alias for '%s', use LEGACY_IMPULSE_ID instead", s);
+}
+
 #define LEGACY_IMPULSE(alias, id, new) \
-       STATIC_INIT(legacy_##alias) { IMPULSE_ALIAS(alias, new); } \
+       STATIC_INIT(legacy_##alias) { \
+               string s = new; \
+               _impCheck(s, #alias); \
+               IMPULSE_ALIAS(alias, s); \
+       } \
        SHUTDOWN(legacy_##alias) { IMPULSE_ALIAS(alias, "impulse " #id); }
 
 #define X(slot, imp) \
@@ -83,6 +101,36 @@ 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")
 
@@ -114,7 +162,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")
@@ -152,26 +200,11 @@ LEGACY_IMPULSE(g_waypointsprite_clear_personal, 47, "waypoint_clear_personal")
 REGISTER_IMPULSE(waypoint_clear, 48)
 LEGACY_IMPULSE(g_waypointsprite_clear, 48, "waypoint_clear")
 
-REGISTER_IMPULSE(navwaypoint_spawn, 103)
-LEGACY_IMPULSE(g_waypointeditor_spawn, 103, "navwaypoint_spawn")
-
-REGISTER_IMPULSE(navwaypoint_remove, 104)
-LEGACY_IMPULSE(g_waypointeditor_remove, 104, "navwaypoint_remove")
-
-REGISTER_IMPULSE(navwaypoint_relink, 105)
-LEGACY_IMPULSE(g_waypointeditor_relinkall, 105, "navwaypoint_relink")
-
-REGISTER_IMPULSE(navwaypoint_save, 106)
-LEGACY_IMPULSE(g_waypointeditor_saveall, 106, "navwaypoint_save")
-
-REGISTER_IMPULSE(navwaypoint_unreachable, 107)
-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; \
        }
 
@@ -182,5 +215,3 @@ CHIMPULSE(SPEEDRUN, 141)
 CHIMPULSE(CLONE_STANDING, 142)
 CHIMPULSE(TELEPORT, 143)
 CHIMPULSE(R00T, 148)
-
-#endif