X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fimpulses%2Fall.qh;h=e5a2b7b6019a6bb7309908b51989426b208bdca7;hp=a42c0b05da9f9509cee5d6c38b198abbd76d279b;hb=991de5e6922cd3c283de56c3249624f0f1bfe767;hpb=11981ee7108d56433f0fa7f8c05ba08bf7ed67bd diff --git a/qcsrc/common/impulses/all.qh b/qcsrc/common/impulses/all.qh index a42c0b05da..e5a2b7b601 100644 --- a/qcsrc/common/impulses/all.qh +++ b/qcsrc/common/impulses/all.qh @@ -1,34 +1,45 @@ -#ifndef IMPULSES_ALL_H -#define IMPULSES_ALL_H +#pragma once REGISTRY(IMPULSES, 255) 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)) + +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) \ @@ -144,7 +155,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") @@ -182,26 +193,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; \ } @@ -212,5 +208,3 @@ CHIMPULSE(SPEEDRUN, 141) CHIMPULSE(CLONE_STANDING, 142) CHIMPULSE(TELEPORT, 143) CHIMPULSE(R00T, 148) - -#endif