]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Notifications: strong typing
authorTimePath <andrew.hardaker1995@gmail.com>
Sun, 6 Mar 2016 06:11:17 +0000 (17:11 +1100)
committerTimePath <andrew.hardaker1995@gmail.com>
Sun, 6 Mar 2016 06:11:17 +0000 (17:11 +1100)
19 files changed:
qcsrc/client/announcer.qc
qcsrc/common/deathtypes/all.inc
qcsrc/common/deathtypes/all.qh
qcsrc/common/mutators/mutator/campcheck/campcheck.qc
qcsrc/common/mutators/mutator/instagib/instagib.qc
qcsrc/common/mutators/mutator/nades/nades.qc
qcsrc/common/notifications.inc
qcsrc/common/notifications.qc
qcsrc/common/notifications.qh
qcsrc/common/util.qc
qcsrc/common/vehicles/sv_vehicles.qc
qcsrc/lib/enumclass.qh
qcsrc/server/cl_client.qc
qcsrc/server/command/cmd.qc
qcsrc/server/g_damage.qc
qcsrc/server/g_world.qc
qcsrc/server/mutators/mutator/gamemode_ca.qc
qcsrc/server/mutators/mutator/gamemode_freezetag.qc
qcsrc/server/mutators/mutator/gamemode_keyhunt.qc

index 680060cdbe0f3f764d6a2b8a5746471774ebffae..dbf0cd807b858bc190dde9075f880b76aafe6bdc 100644 (file)
@@ -81,7 +81,7 @@ void Announcer_Gamestart()
        {
                if(announcer_countdown)
                {
-                       centerprint_kill(CPID_ROUND);
+                       centerprint_kill(ORDINAL(CPID_ROUND));
                        if(announcer_countdown)
                        {
                                remove(announcer_countdown);
index 32d063180d0c5437bc24ac46d33d0c8e42ded94f..9e0f53a31217f086717fa01a48f9033415ca490b 100644 (file)
@@ -1,16 +1,16 @@
-REGISTER_DEATHTYPE(AUTOTEAMCHANGE,          DEATH_SELF_AUTOTEAMCHANGE,      NO_MSG,                         "")
-REGISTER_DEATHTYPE(BUFF,                    NO_MSG,                         DEATH_MURDER_BUFF,              "")
-REGISTER_DEATHTYPE(CAMP,                    DEATH_SELF_CAMP,                NO_MSG,                         "")
+REGISTER_DEATHTYPE(AUTOTEAMCHANGE,          DEATH_SELF_AUTOTEAMCHANGE,      NULL,                           "")
+REGISTER_DEATHTYPE(BUFF,                    NULL,                           DEATH_MURDER_BUFF,              "")
+REGISTER_DEATHTYPE(CAMP,                    DEATH_SELF_CAMP,                NULL,                           "")
 REGISTER_DEATHTYPE(CHEAT,                   DEATH_SELF_CHEAT,               DEATH_MURDER_CHEAT,             "")
-REGISTER_DEATHTYPE(CUSTOM,                  DEATH_SELF_CUSTOM,              NO_MSG,                         "")
+REGISTER_DEATHTYPE(CUSTOM,                  DEATH_SELF_CUSTOM,              NULL,                           "")
 REGISTER_DEATHTYPE(DROWN,                   DEATH_SELF_DROWN,               DEATH_MURDER_DROWN,             "")
 REGISTER_DEATHTYPE(FALL,                    DEATH_SELF_FALL,                DEATH_MURDER_FALL,              "")
 REGISTER_DEATHTYPE(FIRE,                    DEATH_SELF_FIRE,                DEATH_MURDER_FIRE,              "")
-REGISTER_DEATHTYPE(GENERIC,                 DEATH_SELF_GENERIC,             NO_MSG,                         "")
+REGISTER_DEATHTYPE(GENERIC,                 DEATH_SELF_GENERIC,             NULL,                           "")
 REGISTER_DEATHTYPE(HURTTRIGGER,             DEATH_SELF_VOID,                DEATH_MURDER_VOID,              "")
-REGISTER_DEATHTYPE(KILL,                    DEATH_SELF_SUICIDE,             NO_MSG,                         "")
+REGISTER_DEATHTYPE(KILL,                    DEATH_SELF_SUICIDE,             NULL,                           "")
 REGISTER_DEATHTYPE(LAVA,                    DEATH_SELF_LAVA,                DEATH_MURDER_LAVA,              "")
-REGISTER_DEATHTYPE(MIRRORDAMAGE,            DEATH_SELF_BETRAYAL,            NO_MSG,                         "")
+REGISTER_DEATHTYPE(MIRRORDAMAGE,            DEATH_SELF_BETRAYAL,            NULL,                           "")
 REGISTER_DEATHTYPE(MONSTER_MAGE,            DEATH_SELF_MON_MAGE,            DEATH_MURDER_MONSTER,           "monster")
 REGISTER_DEATHTYPE(MONSTER_SHAMBLER_CLAW,   DEATH_SELF_MON_SHAMBLER_CLAW,   DEATH_MURDER_MONSTER,           "monster")
 REGISTER_DEATHTYPE(MONSTER_SHAMBLER_SMASH,  DEATH_SELF_MON_SHAMBLER_SMASH,  DEATH_MURDER_MONSTER,           "monster")
@@ -24,38 +24,38 @@ REGISTER_DEATHTYPE(NADE_NAPALM,             DEATH_SELF_NADE_NAPALM,         DEAT
 REGISTER_DEATHTYPE(NADE_ICE,                DEATH_SELF_NADE_ICE,            DEATH_MURDER_NADE_ICE,          "")
 REGISTER_DEATHTYPE(NADE_ICE_FREEZE,         DEATH_SELF_NADE_ICE_FREEZE,     DEATH_MURDER_NADE_ICE_FREEZE,   "")
 REGISTER_DEATHTYPE(NADE_HEAL,               DEATH_SELF_NADE_HEAL,           DEATH_MURDER_NADE_HEAL,         "")
-REGISTER_DEATHTYPE(NOAMMO,                  DEATH_SELF_NOAMMO,              NO_MSG,                         "")
-REGISTER_DEATHTYPE(ROT,                     DEATH_SELF_ROT,                 NO_MSG,                         "")
+REGISTER_DEATHTYPE(NOAMMO,                  DEATH_SELF_NOAMMO,              NULL,                           "")
+REGISTER_DEATHTYPE(ROT,                     DEATH_SELF_ROT,                 NULL,                           "")
 REGISTER_DEATHTYPE(SHOOTING_STAR,           DEATH_SELF_SHOOTING_STAR,       DEATH_MURDER_SHOOTING_STAR,     "")
 REGISTER_DEATHTYPE(SLIME,                   DEATH_SELF_SLIME,               DEATH_MURDER_SLIME,             "")
 REGISTER_DEATHTYPE(SWAMP,                   DEATH_SELF_SWAMP,               DEATH_MURDER_SWAMP,             "")
-REGISTER_DEATHTYPE(TEAMCHANGE,              DEATH_SELF_TEAMCHANGE,          NO_MSG,                         "")
-REGISTER_DEATHTYPE(TELEFRAG,                NO_MSG,                         DEATH_MURDER_TELEFRAG,          "")
+REGISTER_DEATHTYPE(TEAMCHANGE,              DEATH_SELF_TEAMCHANGE,          NULL,                           "")
+REGISTER_DEATHTYPE(TELEFRAG,                NULL,                           DEATH_MURDER_TELEFRAG,          "")
 REGISTER_DEATHTYPE(TOUCHEXPLODE,            DEATH_SELF_TOUCHEXPLODE,        DEATH_MURDER_TOUCHEXPLODE,      "")
-REGISTER_DEATHTYPE(TURRET,                  DEATH_SELF_TURRET,              NO_MSG,                         "turret")
-REGISTER_DEATHTYPE(TURRET_EWHEEL,           DEATH_SELF_TURRET_EWHEEL,       NO_MSG,                         "turret")
-REGISTER_DEATHTYPE(TURRET_FLAC,             DEATH_SELF_TURRET_FLAC,         NO_MSG,                         "turret")
-REGISTER_DEATHTYPE(TURRET_HELLION,          DEATH_SELF_TURRET_HELLION,      NO_MSG,                         "turret")
-REGISTER_DEATHTYPE(TURRET_HK,               DEATH_SELF_TURRET_HK,           NO_MSG,                         "turret")
-REGISTER_DEATHTYPE(TURRET_MACHINEGUN,       DEATH_SELF_TURRET_MACHINEGUN,   NO_MSG,                         "turret")
-REGISTER_DEATHTYPE(TURRET_MLRS,             DEATH_SELF_TURRET_MLRS,         NO_MSG,                         "turret")
-REGISTER_DEATHTYPE(TURRET_PHASER,           DEATH_SELF_TURRET_PHASER,       NO_MSG,                         "turret")
-REGISTER_DEATHTYPE(TURRET_PLASMA,           DEATH_SELF_TURRET_PLASMA,       NO_MSG,                         "turret")
-REGISTER_DEATHTYPE(TURRET_TESLA,            DEATH_SELF_TURRET_TESLA,        NO_MSG,                         "turret")
-REGISTER_DEATHTYPE(TURRET_WALK_GUN,         DEATH_SELF_TURRET_WALK_GUN,     NO_MSG,                         "turret")
-REGISTER_DEATHTYPE(TURRET_WALK_MELEE,       DEATH_SELF_TURRET_WALK_MELEE,   NO_MSG,                         "turret")
-REGISTER_DEATHTYPE(TURRET_WALK_ROCKET,      DEATH_SELF_TURRET_WALK_ROCKET,  NO_MSG,                         "turret")
+REGISTER_DEATHTYPE(TURRET,                  DEATH_SELF_TURRET,              NULL,                           "turret")
+REGISTER_DEATHTYPE(TURRET_EWHEEL,           DEATH_SELF_TURRET_EWHEEL,       NULL,                           "turret")
+REGISTER_DEATHTYPE(TURRET_FLAC,             DEATH_SELF_TURRET_FLAC,         NULL,                           "turret")
+REGISTER_DEATHTYPE(TURRET_HELLION,          DEATH_SELF_TURRET_HELLION,      NULL,                           "turret")
+REGISTER_DEATHTYPE(TURRET_HK,               DEATH_SELF_TURRET_HK,           NULL,                           "turret")
+REGISTER_DEATHTYPE(TURRET_MACHINEGUN,       DEATH_SELF_TURRET_MACHINEGUN,   NULL,                           "turret")
+REGISTER_DEATHTYPE(TURRET_MLRS,             DEATH_SELF_TURRET_MLRS,         NULL,                           "turret")
+REGISTER_DEATHTYPE(TURRET_PHASER,           DEATH_SELF_TURRET_PHASER,       NULL,                           "turret")
+REGISTER_DEATHTYPE(TURRET_PLASMA,           DEATH_SELF_TURRET_PLASMA,       NULL,                           "turret")
+REGISTER_DEATHTYPE(TURRET_TESLA,            DEATH_SELF_TURRET_TESLA,        NULL,                           "turret")
+REGISTER_DEATHTYPE(TURRET_WALK_GUN,         DEATH_SELF_TURRET_WALK_GUN,     NULL,                           "turret")
+REGISTER_DEATHTYPE(TURRET_WALK_MELEE,       DEATH_SELF_TURRET_WALK_MELEE,   NULL,                           "turret")
+REGISTER_DEATHTYPE(TURRET_WALK_ROCKET,      DEATH_SELF_TURRET_WALK_ROCKET,  NULL,                           "turret")
 REGISTER_DEATHTYPE(VH_BUMB_DEATH,           DEATH_SELF_VH_BUMB_DEATH,       DEATH_MURDER_VH_BUMB_DEATH,     "vehicle")
-REGISTER_DEATHTYPE(VH_BUMB_GUN,             NO_MSG,                         DEATH_MURDER_VH_BUMB_GUN,       "vehicle")
+REGISTER_DEATHTYPE(VH_BUMB_GUN,             NULL,                           DEATH_MURDER_VH_BUMB_GUN,       "vehicle")
 REGISTER_DEATHTYPE(VH_CRUSH,                DEATH_SELF_VH_CRUSH,            DEATH_MURDER_VH_CRUSH,          "vehicle")
 REGISTER_DEATHTYPE(VH_RAPT_BOMB,            DEATH_SELF_VH_RAPT_BOMB,        DEATH_MURDER_VH_RAPT_BOMB,      "vehicle")
-REGISTER_DEATHTYPE(VH_RAPT_CANNON,          NO_MSG,                         DEATH_MURDER_VH_RAPT_CANNON,    "vehicle")
+REGISTER_DEATHTYPE(VH_RAPT_CANNON,          NULL,                           DEATH_MURDER_VH_RAPT_CANNON,    "vehicle")
 REGISTER_DEATHTYPE(VH_RAPT_DEATH,           DEATH_SELF_VH_RAPT_DEATH,       DEATH_MURDER_VH_RAPT_DEATH,     "vehicle")
 REGISTER_DEATHTYPE(VH_RAPT_FRAGMENT,        DEATH_SELF_VH_RAPT_BOMB,        DEATH_MURDER_VH_RAPT_BOMB,      "vehicle")
 REGISTER_DEATHTYPE(VH_SPID_DEATH,           DEATH_SELF_VH_SPID_DEATH,       DEATH_MURDER_VH_SPID_DEATH,     "vehicle")
-REGISTER_DEATHTYPE(VH_SPID_MINIGUN,         NO_MSG,                         DEATH_MURDER_VH_SPID_MINIGUN,   "vehicle")
+REGISTER_DEATHTYPE(VH_SPID_MINIGUN,         NULL,                           DEATH_MURDER_VH_SPID_MINIGUN,   "vehicle")
 REGISTER_DEATHTYPE(VH_SPID_ROCKET,          DEATH_SELF_VH_SPID_ROCKET,      DEATH_MURDER_VH_SPID_ROCKET,    "vehicle")
 REGISTER_DEATHTYPE(VH_WAKI_DEATH,           DEATH_SELF_VH_WAKI_DEATH,       DEATH_MURDER_VH_WAKI_DEATH,     "vehicle")
-REGISTER_DEATHTYPE(VH_WAKI_GUN,             NO_MSG,                         DEATH_MURDER_VH_WAKI_GUN,       "vehicle")
+REGISTER_DEATHTYPE(VH_WAKI_GUN,             NULL,                           DEATH_MURDER_VH_WAKI_GUN,       "vehicle")
 REGISTER_DEATHTYPE(VH_WAKI_ROCKET,          DEATH_SELF_VH_WAKI_ROCKET,      DEATH_MURDER_VH_WAKI_ROCKET,    "vehicle")
-REGISTER_DEATHTYPE(WEAPON,                  NO_MSG,                         NO_MSG,                         "")
+REGISTER_DEATHTYPE(WEAPON,                  NULL,                           NULL,                           "")
index dcf7a7001f62f723727cbaf20fc79d2f29ed58f3..7dbbba87c1a0765b69328e500fe764945e0c678d 100644 (file)
@@ -19,8 +19,8 @@ int dt_identity(int i) { return i; }
         this.m_id += DT_FIRST; \
         this.nent_name = #id; \
         this.death_msgextra = extra; \
-        if (msg_death       != NO_MSG) this.death_msgself   = msg_death; \
-        if (msg_death_by    != NO_MSG) this.death_msgmurder = msg_death_by; \
+        this.death_msgself = msg_death; \
+        this.death_msgmurder = msg_death_by; \
     }
 
 const int DEATH_WEAPONMASK = BITS(8);
index 4916464a1be8dc0e5705d9eebaa801628eb40fae..11286d9a2ff8088b7f55235997faf59890e89af0 100644 (file)
@@ -10,7 +10,7 @@ REGISTER_MUTATOR(campcheck, cvar("g_campcheck"));
 
 MUTATOR_HOOKFUNCTION(campcheck, PlayerDies)
 {
-       Kill_Notification(NOTIF_ONE, frag_target, MSG_CENTER_CPID, CPID_CAMPCHECK);
+       Kill_Notification(NOTIF_ONE, frag_target, MSG_CENTER, CPID_CAMPCHECK);
        return false;
 }
 
index 640e3d5b61cdd83ecc2505b9115cbc9773be3e80..8eb4b9294427907eb9787eaf6c0960da3e69885d 100644 (file)
@@ -52,7 +52,7 @@ void instagib_stop_countdown(entity e)
 {
        if (!e.instagib_needammo)
                return;
-       Kill_Notification(NOTIF_ONE_ONLY, e, MSG_CENTER_CPID, CPID_INSTAGIB_FINDAMMO);
+       Kill_Notification(NOTIF_ONE_ONLY, e, MSG_CENTER, CPID_INSTAGIB_FINDAMMO);
        e.instagib_needammo = false;
 }
 void instagib_ammocheck()
index b54ee9176b1a68da7629d24bd7db2f210195f1ab..b5b97bbf1dd14594029be715c9f91a736fb6774d 100644 (file)
@@ -822,7 +822,7 @@ void toss_nade(entity e, bool set_owner, vector _velocity, float _time)
 
        W_SetupShot(e, false, false, "", CH_WEAPON_A, 0);
 
-       Kill_Notification(NOTIF_ONE_ONLY, e, MSG_CENTER_CPID, CPID_NADES);
+       Kill_Notification(NOTIF_ONE_ONLY, e, MSG_CENTER, CPID_NADES);
 
        vector offset = (v_forward * autocvar_g_nades_throw_offset.x)
                                  + (v_right * autocvar_g_nades_throw_offset.y)
index 140b363094021e8b3066648aacb98600f37406ec..e723b8933a85a9ba6a0296927282f411cb83875d 100644 (file)
@@ -34,7 +34,7 @@
       strnum: FLOAT: Number of STRING arguments (so that networking knows how many to send/receive)
       flnum: FLOAT: Number of FLOAT arguments (so that networking knows how many to send/receive)
       args: STRING: Arguments for Local_Notification_sprintf()
-      cpid: FLOAT: centerprint ID number (CPID_*), NO_CPID if no CPID is needed
+      cpid: FLOAT: centerprint ID number (CPID_*), CPID_Null if no CPID is needed
       durcnt: XPD(FLOAT, FLOAT): Duration/Countdown: extra arguments for centerprint messages
       normal: STRING: Normal message (string for sprintf when gentle messages are NOT enabled)
       gentle: STRING: Gentle message (string for sprintf when gentle messages ARE enabled)
     MULTITEAM_CENTER##teams(prefix, default, strnum, flnum, args, cpid, durcnt, normal, gentle)
 
 // MSG_CENTER_NOTIFICATIONS
-    MSG_CENTER_NOTIF(ALONE,                             1,      0, 0, "",               NO_CPID,                "0 0",  _("^F4You are now alone!"), "")
+    MSG_CENTER_NOTIF(ALONE,                             1,      0, 0, "",               CPID_Null,              "0 0",  _("^F4You are now alone!"), "")
 
     MSG_CENTER_NOTIF(ASSAULT_ATTACKING,                 1,      0, 0, "",               CPID_ASSAULT_ROLE,      "0 0",  _("^BGYou are attacking!"), "")
     MSG_CENTER_NOTIF(ASSAULT_DEFENDING,                 1,      0, 0, "",               CPID_ASSAULT_ROLE,      "0 0",  _("^BGYou are defending!"), "")
 
     MSG_CENTER_NOTIF(CAMPCHECK,                         1,      0, 0, "",               CPID_CAMPCHECK,         "0 0",  _("^F2Don't camp!"), "")
 
-    MSG_CENTER_NOTIF(COINTOSS,                          1,      1, 0, "s1",             NO_CPID,                "0 0",  _("^F2Throwing coin... Result: %s^F2!"), "")
+    MSG_CENTER_NOTIF(COINTOSS,                          1,      1, 0, "s1",             CPID_Null,              "0 0",  _("^F2Throwing coin... Result: %s^F2!"), "")
 
     MSG_CENTER_NOTIF(CTF_CAPTURESHIELD_FREE,            1,      0, 0, "",               CPID_CTF_CAPSHIELD,     "0 0",  _("^BGYou are now free.\n^BGFeel free to ^F2try to capture^BG the flag again\n^BGif you think you will succeed."), "")
     MSG_CENTER_NOTIF(CTF_CAPTURESHIELD_INACTIVE,        1,      0, 0, "",               CPID_CTF_CAPSHIELD,     "0 0",  _("^BGThis flag is currently inactive"), "")
     MSG_CENTER_NOTIF(CTF_STALEMATE_CARRIER,             1,      0, 0, "",               CPID_STALEMATE,         "0 0",  _("^BGStalemate! Enemies can now see you on radar!"), "")
     MSG_CENTER_NOTIF(CTF_STALEMATE_OTHER,               1,      0, 0, "",               CPID_STALEMATE,         "0 0",  _("^BGStalemate! Flag carriers can now be seen by enemies on radar!"), "")
 
-    MSG_CENTER_NOTIF(DEATH_MURDER_FRAG,                 1,      1, 1, "spree_cen s1",               NO_CPID,    "0 0",  _("^K3%sYou fragged ^BG%s"), _("^K3%sYou scored against ^BG%s"))
-    MSG_CENTER_NOTIF(DEATH_MURDER_FRAGGED,              1,      1, 1, "spree_cen s1",               NO_CPID,    "0 0",  _("^K1%sYou were fragged by ^BG%s"), _("^K1%sYou were scored against by ^BG%s"))
-    MSG_CENTER_NOTIF(DEATH_MURDER_FRAGGED_VERBOSE,      1,      1, 4, "spree_cen s1 frag_stats",    NO_CPID,    "0 0",  _("^K1%sYou were fragged by ^BG%s^BG%s"), _("^K1%sYou were scored against by ^BG%s^BG%s"))
-    MSG_CENTER_NOTIF(DEATH_MURDER_FRAG_VERBOSE,         1,      1, 2, "spree_cen s1 frag_ping",     NO_CPID,    "0 0",  _("^K3%sYou fragged ^BG%s^BG%s"), _("^K3%sYou scored against ^BG%s^BG%s"))
-    MSG_CENTER_NOTIF(DEATH_MURDER_TYPEFRAG,             1,      1, 1, "spree_cen s1",               NO_CPID,    "0 0",  _("^K1%sYou typefragged ^BG%s"), _("^K1%sYou scored against ^BG%s^K1 while they were typing"))
-    MSG_CENTER_NOTIF(DEATH_MURDER_TYPEFRAGGED,          1,      1, 1, "spree_cen s1",               NO_CPID,    "0 0",  _("^K1%sYou were typefragged by ^BG%s"), _("^K1%sYou were scored against by ^BG%s^K1 while typing!"))
-    MSG_CENTER_NOTIF(DEATH_MURDER_TYPEFRAGGED_VERBOSE,  1,      1, 4, "spree_cen s1 frag_stats",    NO_CPID,    "0 0",  _("^K1%sYou were typefragged by ^BG%s^BG%s"), _("^K1%sYou were scored against by ^BG%s^K1 while typing^BG%s"))
-    MSG_CENTER_NOTIF(DEATH_MURDER_TYPEFRAG_VERBOSE,     1,      1, 2, "spree_cen s1 frag_ping",     NO_CPID,    "0 0",  _("^K1%sYou typefragged ^BG%s^BG%s"), _("^K1%sYou scored against ^BG%s^K1 while they were typing^BG%s"))
+    MSG_CENTER_NOTIF(DEATH_MURDER_FRAG,                 1,      1, 1, "spree_cen s1",               CPID_Null,  "0 0",  _("^K3%sYou fragged ^BG%s"), _("^K3%sYou scored against ^BG%s"))
+    MSG_CENTER_NOTIF(DEATH_MURDER_FRAGGED,              1,      1, 1, "spree_cen s1",               CPID_Null,  "0 0",  _("^K1%sYou were fragged by ^BG%s"), _("^K1%sYou were scored against by ^BG%s"))
+    MSG_CENTER_NOTIF(DEATH_MURDER_FRAGGED_VERBOSE,      1,      1, 4, "spree_cen s1 frag_stats",    CPID_Null,  "0 0",  _("^K1%sYou were fragged by ^BG%s^BG%s"), _("^K1%sYou were scored against by ^BG%s^BG%s"))
+    MSG_CENTER_NOTIF(DEATH_MURDER_FRAG_VERBOSE,         1,      1, 2, "spree_cen s1 frag_ping",     CPID_Null,  "0 0",  _("^K3%sYou fragged ^BG%s^BG%s"), _("^K3%sYou scored against ^BG%s^BG%s"))
+    MSG_CENTER_NOTIF(DEATH_MURDER_TYPEFRAG,             1,      1, 1, "spree_cen s1",               CPID_Null,  "0 0",  _("^K1%sYou typefragged ^BG%s"), _("^K1%sYou scored against ^BG%s^K1 while they were typing"))
+    MSG_CENTER_NOTIF(DEATH_MURDER_TYPEFRAGGED,          1,      1, 1, "spree_cen s1",               CPID_Null,  "0 0",  _("^K1%sYou were typefragged by ^BG%s"), _("^K1%sYou were scored against by ^BG%s^K1 while typing!"))
+    MSG_CENTER_NOTIF(DEATH_MURDER_TYPEFRAGGED_VERBOSE,  1,      1, 4, "spree_cen s1 frag_stats",    CPID_Null,  "0 0",  _("^K1%sYou were typefragged by ^BG%s^BG%s"), _("^K1%sYou were scored against by ^BG%s^K1 while typing^BG%s"))
+    MSG_CENTER_NOTIF(DEATH_MURDER_TYPEFRAG_VERBOSE,     1,      1, 2, "spree_cen s1 frag_ping",     CPID_Null,  "0 0",  _("^K1%sYou typefragged ^BG%s^BG%s"), _("^K1%sYou scored against ^BG%s^K1 while they were typing^BG%s"))
 
     MSG_CENTER_NOTIF(NADE_THROW,                        1,      0, 0, "",               CPID_NADES,             "0 0",  _("^BGPress ^F2DROPWEAPON^BG again to toss the nade!"), "")
     MSG_CENTER_NOTIF(NADE_BONUS,                        1,      0, 0, "",               CPID_NADES,             "0 0",  _("^F2You got a ^K1BONUS GRENADE^F2!"), "")
 
-    MSG_CENTER_NOTIF(DEATH_SELF_AUTOTEAMCHANGE,         1,      0, 1, "death_team",     NO_CPID,                "0 0",  _("^BGYou have been moved into a different team\nYou are now on: %s"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_BETRAYAL,               1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1Don't shoot your team mates!"), _("^K1Don't go against your team mates!"))
-    MSG_CENTER_NOTIF(DEATH_SELF_CAMP,                   1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1Die camper!"), _("^K1Reconsider your tactics, camper!"))
-    MSG_CENTER_NOTIF(DEATH_SELF_CHEAT,                  1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You unfairly eliminated yourself!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_CUSTOM,                 1,      2, 0, "s2",             NO_CPID,                "0 0",  _("^K1You were %s"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_DROWN,                  1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You couldn't catch your breath!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_FALL,                   1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You hit the ground with a crunch!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_FIRE,                   1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You got a little bit too crispy!"), _("^K1You felt a little too hot!"))
-    MSG_CENTER_NOTIF(DEATH_SELF_GENERIC,                1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You killed your own dumb self!"), _("^K1You need to be more careful!"))
-    MSG_CENTER_NOTIF(DEATH_SELF_LAVA,                   1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You couldn't stand the heat!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_MONSTER,                1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You were killed by a monster!"), _("^K1You need to watch out for monsters!"))
-    MSG_CENTER_NOTIF(DEATH_SELF_NADE,                   1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You forgot to put the pin back in!"), _("^K1Tastes like chicken!"))
-    MSG_CENTER_NOTIF(DEATH_SELF_NADE_NAPALM,            1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1Hanging around a napalm explosion is bad!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_NADE_ICE_FREEZE,        1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You got a little bit too cold!"), _("^K1You felt a little chilly!"))
-    MSG_CENTER_NOTIF(DEATH_SELF_NADE_HEAL,              1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1Your Healing Nade is a bit defective"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_NOAMMO,                 1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You were killed for running out of ammo..."), _("^K1You are respawning for running out of ammo..."))
-    MSG_CENTER_NOTIF(DEATH_SELF_ROT,                    1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You grew too old without taking your medicine"), _("^K1You need to preserve your health"))
-    MSG_CENTER_NOTIF(DEATH_SELF_SHOOTING_STAR,          1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You became a shooting star!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_SLIME,                  1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You melted away in slime!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_SUICIDE,                1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You committed suicide!"), _("^K1You ended it all!"))
-    MSG_CENTER_NOTIF(DEATH_SELF_SWAMP,                  1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You got stuck in a swamp!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_TEAMCHANGE,             1,      0, 1, "death_team",     NO_CPID,                "0 0",  _("^BGYou are now on: %s"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_TOUCHEXPLODE,           1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You died in an accident!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_TURRET,                 1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You were fragged by a turret!"), _("^K1You had an unfortunate run in with a turret!"))
-    MSG_CENTER_NOTIF(DEATH_SELF_TURRET_EWHEEL,          1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You were fragged by an eWheel turret!"), _("^K1You had an unfortunate run in with an eWheel turret!"))
-    MSG_CENTER_NOTIF(DEATH_SELF_TURRET_WALK,            1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You were fragged by a Walker turret!"), _("^K1You had an unfortunate run in with a Walker turret!"))
-    MSG_CENTER_NOTIF(DEATH_SELF_VH_BUMB_DEATH,          1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You got caught in the blast of a Bumblebee explosion!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_VH_CRUSH,               1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You were crushed by a vehicle!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_VH_RAPT_BOMB,           1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You were caught in a Raptor cluster bomb!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_VH_RAPT_DEATH,          1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You got caught in the blast of a Raptor explosion!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_VH_SPID_DEATH,          1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You got caught in the blast of a Spiderbot explosion!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_VH_SPID_ROCKET,         1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You were blasted to bits by a Spiderbot rocket!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_VH_WAKI_DEATH,          1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You got caught in the blast of a Racer explosion!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_VH_WAKI_ROCKET,         1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You couldn't find shelter from a Racer rocket!"), "")
-    MSG_CENTER_NOTIF(DEATH_SELF_VOID,                   1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1Watch your step!"), "")
-
-    MSG_CENTER_NOTIF(DEATH_TEAMKILL_FRAG,               1,      1, 0, "s1",             NO_CPID,                "0 0",  _("^K1Moron! You fragged ^BG%s^K1, a team mate!"), _("^K1Moron! You went against ^BG%s^K1, a team mate!"))
-    MSG_CENTER_NOTIF(DEATH_TEAMKILL_FRAGGED,            1,      1, 0, "s1",             NO_CPID,                "0 0",  _("^K1You were fragged by ^BG%s^K1, a team mate"), _("^K1You were scored against by ^BG%s^K1, a team mate"))
+    MSG_CENTER_NOTIF(DEATH_SELF_AUTOTEAMCHANGE,         1,      0, 1, "death_team",     CPID_Null,              "0 0",  _("^BGYou have been moved into a different team\nYou are now on: %s"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_BETRAYAL,               1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1Don't shoot your team mates!"), _("^K1Don't go against your team mates!"))
+    MSG_CENTER_NOTIF(DEATH_SELF_CAMP,                   1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1Die camper!"), _("^K1Reconsider your tactics, camper!"))
+    MSG_CENTER_NOTIF(DEATH_SELF_CHEAT,                  1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You unfairly eliminated yourself!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_CUSTOM,                 1,      2, 0, "s2",             CPID_Null,              "0 0",  _("^K1You were %s"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_DROWN,                  1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You couldn't catch your breath!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_FALL,                   1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You hit the ground with a crunch!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_FIRE,                   1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You got a little bit too crispy!"), _("^K1You felt a little too hot!"))
+    MSG_CENTER_NOTIF(DEATH_SELF_GENERIC,                1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You killed your own dumb self!"), _("^K1You need to be more careful!"))
+    MSG_CENTER_NOTIF(DEATH_SELF_LAVA,                   1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You couldn't stand the heat!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_MONSTER,                1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You were killed by a monster!"), _("^K1You need to watch out for monsters!"))
+    MSG_CENTER_NOTIF(DEATH_SELF_NADE,                   1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You forgot to put the pin back in!"), _("^K1Tastes like chicken!"))
+    MSG_CENTER_NOTIF(DEATH_SELF_NADE_NAPALM,            1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1Hanging around a napalm explosion is bad!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_NADE_ICE_FREEZE,        1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You got a little bit too cold!"), _("^K1You felt a little chilly!"))
+    MSG_CENTER_NOTIF(DEATH_SELF_NADE_HEAL,              1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1Your Healing Nade is a bit defective"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_NOAMMO,                 1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You were killed for running out of ammo..."), _("^K1You are respawning for running out of ammo..."))
+    MSG_CENTER_NOTIF(DEATH_SELF_ROT,                    1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You grew too old without taking your medicine"), _("^K1You need to preserve your health"))
+    MSG_CENTER_NOTIF(DEATH_SELF_SHOOTING_STAR,          1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You became a shooting star!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_SLIME,                  1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You melted away in slime!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_SUICIDE,                1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You committed suicide!"), _("^K1You ended it all!"))
+    MSG_CENTER_NOTIF(DEATH_SELF_SWAMP,                  1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You got stuck in a swamp!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_TEAMCHANGE,             1,      0, 1, "death_team",     CPID_Null,              "0 0",  _("^BGYou are now on: %s"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_TOUCHEXPLODE,           1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You died in an accident!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_TURRET,                 1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You were fragged by a turret!"), _("^K1You had an unfortunate run in with a turret!"))
+    MSG_CENTER_NOTIF(DEATH_SELF_TURRET_EWHEEL,          1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You were fragged by an eWheel turret!"), _("^K1You had an unfortunate run in with an eWheel turret!"))
+    MSG_CENTER_NOTIF(DEATH_SELF_TURRET_WALK,            1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You were fragged by a Walker turret!"), _("^K1You had an unfortunate run in with a Walker turret!"))
+    MSG_CENTER_NOTIF(DEATH_SELF_VH_BUMB_DEATH,          1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You got caught in the blast of a Bumblebee explosion!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_VH_CRUSH,               1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You were crushed by a vehicle!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_VH_RAPT_BOMB,           1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You were caught in a Raptor cluster bomb!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_VH_RAPT_DEATH,          1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You got caught in the blast of a Raptor explosion!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_VH_SPID_DEATH,          1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You got caught in the blast of a Spiderbot explosion!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_VH_SPID_ROCKET,         1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You were blasted to bits by a Spiderbot rocket!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_VH_WAKI_DEATH,          1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You got caught in the blast of a Racer explosion!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_VH_WAKI_ROCKET,         1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You couldn't find shelter from a Racer rocket!"), "")
+    MSG_CENTER_NOTIF(DEATH_SELF_VOID,                   1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1Watch your step!"), "")
+
+    MSG_CENTER_NOTIF(DEATH_TEAMKILL_FRAG,               1,      1, 0, "s1",             CPID_Null,              "0 0",  _("^K1Moron! You fragged ^BG%s^K1, a team mate!"), _("^K1Moron! You went against ^BG%s^K1, a team mate!"))
+    MSG_CENTER_NOTIF(DEATH_TEAMKILL_FRAGGED,            1,      1, 0, "s1",             CPID_Null,              "0 0",  _("^K1You were fragged by ^BG%s^K1, a team mate"), _("^K1You were scored against by ^BG%s^K1, a team mate"))
 
     MSG_CENTER_NOTIF(DISCONNECT_IDLING,                 1,      0, 1, "",               CPID_IDLING,            "1 f1", _("^K1Stop idling!\n^BGDisconnecting in ^COUNT..."), "")
 
-    MSG_CENTER_NOTIF(DOOR_LOCKED_NEED,                  1,      1, 0, "s1",             NO_CPID,                "0 0",  _("^BGYou need %s^BG!"), "")
-    MSG_CENTER_NOTIF(DOOR_LOCKED_ALSONEED,              1,      1, 0, "s1",             NO_CPID,                "0 0",  _("^BGYou also need %s^BG!"), "")
-    MSG_CENTER_NOTIF(DOOR_UNLOCKED,                     1,      0, 0, "",               NO_CPID,                "0 0",  _("^BGDoor unlocked!"), "")
+    MSG_CENTER_NOTIF(DOOR_LOCKED_NEED,                  1,      1, 0, "s1",             CPID_Null,              "0 0",  _("^BGYou need %s^BG!"), "")
+    MSG_CENTER_NOTIF(DOOR_LOCKED_ALSONEED,              1,      1, 0, "s1",             CPID_Null,              "0 0",  _("^BGYou also need %s^BG!"), "")
+    MSG_CENTER_NOTIF(DOOR_UNLOCKED,                     1,      0, 0, "",               CPID_Null,              "0 0",  _("^BGDoor unlocked!"), "")
 
-    MSG_CENTER_NOTIF(EXTRALIVES,                        1,      0, 0, "",               NO_CPID,                "0 0",  _("^F2You picked up some extra lives"), "")
+    MSG_CENTER_NOTIF(EXTRALIVES,                        1,      0, 0, "",               CPID_Null,              "0 0",  _("^F2You picked up some extra lives"), "")
 
-    MSG_CENTER_NOTIF(FREEZETAG_FREEZE,                  1,      1, 0, "s1",             NO_CPID,                "0 0",  _("^K3You froze ^BG%s"), "")
-    MSG_CENTER_NOTIF(FREEZETAG_FROZEN,                  1,      1, 0, "s1",             NO_CPID,                "0 0",  _("^K1You were frozen by ^BG%s"), "")
-    MSG_CENTER_NOTIF(FREEZETAG_REVIVE,                  1,      1, 0, "s1",             NO_CPID,                "0 0",  _("^K3You revived ^BG%s"), "")
-    MSG_CENTER_NOTIF(FREEZETAG_REVIVE_SELF,             1,      0, 0, "",               NO_CPID,                "0 0",  _("^K3You revived yourself"), "")
-    MSG_CENTER_NOTIF(FREEZETAG_REVIVED,                 1,      1, 0, "s1",             NO_CPID,                "0 0",  _("^K3You were revived by ^BG%s"), "")
-    MSG_CENTER_NOTIF(FREEZETAG_AUTO_REVIVED,            1,      0, 1, "f1",             NO_CPID,                "0 0",  _("^K3You were automatically revived after %s second(s)"), "")
+    MSG_CENTER_NOTIF(FREEZETAG_FREEZE,                  1,      1, 0, "s1",             CPID_Null,              "0 0",  _("^K3You froze ^BG%s"), "")
+    MSG_CENTER_NOTIF(FREEZETAG_FROZEN,                  1,      1, 0, "s1",             CPID_Null,              "0 0",  _("^K1You were frozen by ^BG%s"), "")
+    MSG_CENTER_NOTIF(FREEZETAG_REVIVE,                  1,      1, 0, "s1",             CPID_Null,              "0 0",  _("^K3You revived ^BG%s"), "")
+    MSG_CENTER_NOTIF(FREEZETAG_REVIVE_SELF,             1,      0, 0, "",               CPID_Null,              "0 0",  _("^K3You revived yourself"), "")
+    MSG_CENTER_NOTIF(FREEZETAG_REVIVED,                 1,      1, 0, "s1",             CPID_Null,              "0 0",  _("^K3You were revived by ^BG%s"), "")
+    MSG_CENTER_NOTIF(FREEZETAG_AUTO_REVIVED,            1,      0, 1, "f1",             CPID_Null,              "0 0",  _("^K3You were automatically revived after %s second(s)"), "")
 
-    MSG_CENTER_NOTIF(GENERATOR_UNDERATTACK,             1,      0, 0, "",               NO_CPID,                "0 0",  _("^BGThe generator is under attack!"), "")
+    MSG_CENTER_NOTIF(GENERATOR_UNDERATTACK,             1,      0, 0, "",               CPID_Null,              "0 0",  _("^BGThe generator is under attack!"), "")
 
     MULTITEAM_CENTER(ROUND_TEAM_WIN, 4,                 1,      0, 0, "",               CPID_ROUND,             "0 0",  _("^TC^TT^BG team wins the round"), "")
     MSG_CENTER_NOTIF(ROUND_PLAYER_WIN,                  1,      1, 0, "s1",             CPID_ROUND,             "0 0",  _("^BG%s^BG wins the round"), "")
 
-    MSG_CENTER_NOTIF(FREEZETAG_SELF,                    1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1You froze yourself"), "")
-    MSG_CENTER_NOTIF(FREEZETAG_SPAWN_LATE,              1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1Round already started, you spawn as frozen"), "")
+    MSG_CENTER_NOTIF(FREEZETAG_SELF,                    1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1You froze yourself"), "")
+    MSG_CENTER_NOTIF(FREEZETAG_SPAWN_LATE,              1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1Round already started, you spawn as frozen"), "")
 
-    MSG_CENTER_NOTIF(INVASION_SUPERMONSTER,             1,      1, 0, "s1",             NO_CPID,                "0 0",  _("^K1A %s has arrived!"), "")
+    MSG_CENTER_NOTIF(INVASION_SUPERMONSTER,             1,      1, 0, "s1",             CPID_Null,              "0 0",  _("^K1A %s has arrived!"), "")
 
     MSG_CENTER_NOTIF(ITEM_BUFF_DROP,                    1,      0, 1, "item_buffname",                      CPID_ITEM, "item_centime 0", _("^BGYou dropped the %s^BG buff!"), "")
     MSG_CENTER_NOTIF(ITEM_BUFF_GOT,                     1,      0, 1, "item_buffname",                      CPID_ITEM, "item_centime 0", _("^BGYou got the %s^BG buff!"), "")
     MSG_CENTER_NOTIF(INSTAGIB_DOWNGRADE,                1,      0, 0, "",               CPID_INSTAGIB_FINDAMMO, "5 0",  _("^BGYour weapon has been downgraded until you find some ammo!"), "")
     MSG_CENTER_NOTIF(INSTAGIB_FINDAMMO,                 1,      0, 0, "",               CPID_INSTAGIB_FINDAMMO, "1 9",  _("^F4^COUNT^BG left to find some ammo!"), "")
     MSG_CENTER_NOTIF(INSTAGIB_FINDAMMO_FIRST,           1,      0, 0, "",               CPID_INSTAGIB_FINDAMMO, "1 10", _("^BGGet some ammo or you'll be dead in ^F4^COUNT^BG!"), _("^BGGet some ammo! ^F4^COUNT^BG left!"))
-    MSG_CENTER_NOTIF(INSTAGIB_LIVES_REMAINING,          1,      0, 1, "f1",             NO_CPID,                "0 0",  _("^F2Extra lives remaining: ^K1%s"), "")
+    MSG_CENTER_NOTIF(INSTAGIB_LIVES_REMAINING,          1,      0, 1, "f1",             CPID_Null,              "0 0",  _("^F2Extra lives remaining: ^K1%s"), "")
 
     MSG_CENTER_NOTIF(MOTD,                              1,      1, 0, "s1",             CPID_MOTD,              "-1 0", "^BG%s", "")
 
     MSG_CENTER_NOTIF(NIX_COUNTDOWN,                     1,      0, 2, "item_wepname",   CPID_NIX,               "1 f2", _("^F2^COUNT^BG until weapon change...\nNext weapon: ^F1%s"), "")
     MSG_CENTER_NOTIF(NIX_NEWWEAPON,                     1,      0, 1, "item_wepname",   CPID_NIX,               "0 0",  _("^F2Active weapon: ^F1%s"), "")
 
-    MSG_CENTER_NOTIF(NADE,                              1,      0, 0, "",               NO_CPID,                "0 0",  _("^BGPress ^F2DROPWEAPON^BG again to toss the grenade!"), "")
+    MSG_CENTER_NOTIF(NADE,                              1,      0, 0, "",               CPID_Null,              "0 0",  _("^BGPress ^F2DROPWEAPON^BG again to toss the grenade!"), "")
 
     MSG_CENTER_NOTIF(ONS_CAPTURE,                       1,      1, 0, "s1",             CPID_ONSLAUGHT,         "0 0",  _("^BGYou captured %s^BG control point"), "")
     MULTITEAM_CENTER(ONS_CAPTURE, 4,                    1,      1, 0, "s1",             CPID_ONSLAUGHT,         "0 0",  _("^TC^TT^BG team captured %s^BG control point"), "")
     MSG_CENTER_NOTIF(OVERTIME_CONTROLPOINT,             1,      0, 0, "",               CPID_OVERTIME,          "5 0",  _("^F2Now playing ^F4OVERTIME^F2!\n\nGenerators are now decaying.\nThe more control points your team holds,\nthe faster the enemy generator decays"), "")
     MSG_CENTER_NOTIF(OVERTIME_TIME,                     1,      0, 1, "f1time",         CPID_OVERTIME,          "0 0",  _("^F2Now playing ^F4OVERTIME^F2!\n^BGAdded ^F4%s^BG to the game!"), "")
 
-    MSG_CENTER_NOTIF(PORTO_CREATED_IN,                  1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1In^BG-portal created"), "")
-    MSG_CENTER_NOTIF(PORTO_CREATED_OUT,                 1,      0, 0, "",               NO_CPID,                "0 0",  _("^F3Out^BG-portal created"), "")
-    MSG_CENTER_NOTIF(PORTO_FAILED,                      1,      0, 0, "",               NO_CPID,                "0 0",  _("^F1Portal creation failed"), "")
+    MSG_CENTER_NOTIF(PORTO_CREATED_IN,                  1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1In^BG-portal created"), "")
+    MSG_CENTER_NOTIF(PORTO_CREATED_OUT,                 1,      0, 0, "",               CPID_Null,              "0 0",  _("^F3Out^BG-portal created"), "")
+    MSG_CENTER_NOTIF(PORTO_FAILED,                      1,      0, 0, "",               CPID_Null,              "0 0",  _("^F1Portal creation failed"), "")
 
     MSG_CENTER_NOTIF(POWERUP_STRENGTH,                  1,      0, 0, "",               CPID_POWERUP,           "0 0",  _("^F2Strength infuses your weapons with devastating power"), "")
     MSG_CENTER_NOTIF(POWERDOWN_STRENGTH,                1,      0, 0, "",               CPID_POWERUP,           "0 0",  _("^F2Strength has worn off"), "")
 
     MSG_CENTER_NOTIF(RACE_FINISHLAP,                    1,      0, 0, "",               CPID_RACE_FINISHLAP,    "0 0",  _("^F2The race is over, finish your lap!"), "")
 
-    MSG_CENTER_NOTIF(SECONDARY_NODAMAGE,                1,      0, 0, "",               NO_CPID,                "0 0",  _("^BGSecondary fire inflicts no damage!"), "")
+    MSG_CENTER_NOTIF(SECONDARY_NODAMAGE,                1,      0, 0, "",               CPID_Null,              "0 0",  _("^BGSecondary fire inflicts no damage!"), "")
 
-    MSG_CENTER_NOTIF(SEQUENCE_COMPLETED,                1,      0, 0, "",               NO_CPID,                "0 0",  _("^BGSequence completed!"), "")
-    MSG_CENTER_NOTIF(SEQUENCE_COUNTER,                  1,      0, 0, "",               NO_CPID,                "0 0",  _("^BGThere are more to go..."), "")
-    MSG_CENTER_NOTIF(SEQUENCE_COUNTER_FEWMORE,          1,      0, 1, "f1",             NO_CPID,                "0 0",  _("^BGOnly %s^BG more to go..."), "")
+    MSG_CENTER_NOTIF(SEQUENCE_COMPLETED,                1,      0, 0, "",               CPID_Null,              "0 0",  _("^BGSequence completed!"), "")
+    MSG_CENTER_NOTIF(SEQUENCE_COUNTER,                  1,      0, 0, "",               CPID_Null,              "0 0",  _("^BGThere are more to go..."), "")
+    MSG_CENTER_NOTIF(SEQUENCE_COUNTER_FEWMORE,          1,      0, 1, "f1",             CPID_Null,              "0 0",  _("^BGOnly %s^BG more to go..."), "")
 
     MSG_CENTER_NOTIF(SUPERWEAPON_BROKEN,                1,      0, 0, "",               CPID_POWERUP,           "0 0",  _("^F2Superweapons have broken down"), "")
     MSG_CENTER_NOTIF(SUPERWEAPON_LOST,                  1,      0, 0, "",               CPID_POWERUP,           "0 0",  _("^F2Superweapons have been lost"), "")
     MSG_CENTER_NOTIF(TIMEOUT_BEGINNING,                 1,      0, 1, "",               CPID_TIMEOUT,           "1 f1", _("^F4Timeout begins in ^COUNT"), "")
     MSG_CENTER_NOTIF(TIMEOUT_ENDING,                    1,      0, 1, "",               CPID_TIMEOUT,           "1 f1", _("^F4Timeout ends in ^COUNT"), "")
 
-    MSG_CENTER_NOTIF(JOIN_PREVENT_MINIGAME,             1,      0, 0, "",               NO_CPID,                "0 0",  _("^K1Cannot join given minigame session!"), "" )
+    MSG_CENTER_NOTIF(JOIN_PREVENT_MINIGAME,             1,      0, 0, "",               CPID_Null,              "0 0",  _("^K1Cannot join given minigame session!"), "" )
 
     MSG_CENTER_NOTIF(VEHICLE_ENTER,                     1,      0, 0, "pass_key",       CPID_VEHICLES,          "0 0",  _("^BGPress ^F2DROPFLAG%s^BG to enter/exit the vehicle"), "")
     MSG_CENTER_NOTIF(VEHICLE_ENTER_GUNNER,              1,      0, 0, "pass_key",       CPID_VEHICLES,          "0 0",  _("^BGPress ^F2DROPFLAG%s^BG to enter the vehicle gunner"), "")
     MSG_CENTER_NOTIF(VEHICLE_STEAL,                     1,      0, 0, "",               CPID_VEHICLES_OTHER,    "0 0",  _("^F2The enemy is stealing one of your vehicles!\n^F4Stop them!"), "")
     MSG_CENTER_NOTIF(VEHICLE_STEAL_SELF,                1,      0, 0, "",               CPID_VEHICLES_OTHER,    "4 0",  _("^F2You have stolen the enemy's vehicle, you are now visible on their radar!"), "")
 
-    MSG_CENTER_NOTIF(WEAPON_MINELAYER_LIMIT,            1,      0, 1, "f1",             NO_CPID,                "0 0",  _("^BGYou cannot place more than ^F2%s^BG mines at a time"), "")
+    MSG_CENTER_NOTIF(WEAPON_MINELAYER_LIMIT,            1,      0, 1, "f1",             CPID_Null,              "0 0",  _("^BGYou cannot place more than ^F2%s^BG mines at a time"), "")
 
 #define MULTITEAM_MULTI2(prefix, default, anncepre, infopre, centerpre) \
     MSG_MULTI_NOTIF(prefix##_RED, default, anncepre##_RED, infopre##_RED, centerpre##_RED) \
     MULTITEAM_MULTI##teams(prefix, default, anncepre, infopre, centerpre)
 
 // MSG_MULTI_NOTIFICATIONS
-    MSG_MULTI_NOTIF(DEATH_MURDER_BUFF,                  1,  NO_MSG,         INFO_DEATH_MURDER_BUFF,                 NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_CHEAT,                 1,  NO_MSG,         INFO_DEATH_MURDER_CHEAT,                NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_DROWN,                 1,  NO_MSG,         INFO_DEATH_MURDER_DROWN,                NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_FALL,                  1,  NO_MSG,         INFO_DEATH_MURDER_FALL,                 NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_FIRE,                  1,  NO_MSG,         INFO_DEATH_MURDER_FIRE,                 NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_LAVA,                  1,  NO_MSG,         INFO_DEATH_MURDER_LAVA,                 NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_MONSTER,               1,  NO_MSG,         INFO_DEATH_MURDER_MONSTER,              CENTER_DEATH_SELF_MONSTER)
-    MSG_MULTI_NOTIF(DEATH_MURDER_NADE,                  1,  NO_MSG,         INFO_DEATH_MURDER_NADE,                 NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_NADE_NAPALM,           1,  NO_MSG,         INFO_DEATH_MURDER_NADE_NAPALM,          NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_NADE_ICE,              1,  NO_MSG,         INFO_DEATH_MURDER_NADE_ICE,             NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_NADE_ICE_FREEZE,       1,  NO_MSG,         INFO_DEATH_MURDER_NADE_ICE_FREEZE,      NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_NADE_HEAL,             1,  NO_MSG,         INFO_DEATH_MURDER_NADE_HEAL,            NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_SHOOTING_STAR,         1,  NO_MSG,         INFO_DEATH_MURDER_SHOOTING_STAR,        NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_SLIME,                 1,  NO_MSG,         INFO_DEATH_MURDER_SLIME,                NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_SWAMP,                 1,  NO_MSG,         INFO_DEATH_MURDER_SWAMP,                NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_TELEFRAG,              1,  NO_MSG,         INFO_DEATH_MURDER_TELEFRAG,             NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_TOUCHEXPLODE,          1,  NO_MSG,         INFO_DEATH_MURDER_TOUCHEXPLODE,         NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VH_BUMB_DEATH,         1,  NO_MSG,         INFO_DEATH_MURDER_VH_BUMB_DEATH,        NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VH_BUMB_GUN,           1,  NO_MSG,         INFO_DEATH_MURDER_VH_BUMB_GUN,          NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VH_CRUSH,              1,  NO_MSG,         INFO_DEATH_MURDER_VH_CRUSH,             NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VH_RAPT_BOMB,          1,  NO_MSG,         INFO_DEATH_MURDER_VH_RAPT_BOMB,         NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VH_RAPT_CANNON,        1,  NO_MSG,         INFO_DEATH_MURDER_VH_RAPT_CANNON,       NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VH_RAPT_DEATH,         1,  NO_MSG,         INFO_DEATH_MURDER_VH_RAPT_DEATH,        NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VH_SPID_DEATH,         1,  NO_MSG,         INFO_DEATH_MURDER_VH_SPID_DEATH,        NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VH_SPID_MINIGUN,       1,  NO_MSG,         INFO_DEATH_MURDER_VH_SPID_MINIGUN,      NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VH_SPID_ROCKET,        1,  NO_MSG,         INFO_DEATH_MURDER_VH_SPID_ROCKET,       NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VH_WAKI_DEATH,         1,  NO_MSG,         INFO_DEATH_MURDER_VH_WAKI_DEATH,        NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VH_WAKI_GUN,           1,  NO_MSG,         INFO_DEATH_MURDER_VH_WAKI_GUN,          NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VH_WAKI_ROCKET,        1,  NO_MSG,         INFO_DEATH_MURDER_VH_WAKI_ROCKET,       NO_MSG)
-    MSG_MULTI_NOTIF(DEATH_MURDER_VOID,                  1,  NO_MSG,         INFO_DEATH_MURDER_VOID,                 NO_MSG)
-
-    MSG_MULTI_NOTIF(DEATH_SELF_AUTOTEAMCHANGE,          1,  NO_MSG,         INFO_DEATH_SELF_AUTOTEAMCHANGE,         CENTER_DEATH_SELF_AUTOTEAMCHANGE)
-    MSG_MULTI_NOTIF(DEATH_SELF_BETRAYAL,                1,  NO_MSG,         INFO_DEATH_SELF_BETRAYAL,               CENTER_DEATH_SELF_BETRAYAL)
-    MSG_MULTI_NOTIF(DEATH_SELF_CAMP,                    1,  NO_MSG,         INFO_DEATH_SELF_CAMP,                   CENTER_DEATH_SELF_CAMP)
-    MSG_MULTI_NOTIF(DEATH_SELF_CHEAT,                   1,  NO_MSG,         INFO_DEATH_SELF_CHEAT,                  CENTER_DEATH_SELF_CHEAT)
-    MSG_MULTI_NOTIF(DEATH_SELF_CUSTOM,                  1,  NO_MSG,         INFO_DEATH_SELF_GENERIC,                CENTER_DEATH_SELF_CUSTOM)
-    MSG_MULTI_NOTIF(DEATH_SELF_DROWN,                   1,  NO_MSG,         INFO_DEATH_SELF_DROWN,                  CENTER_DEATH_SELF_DROWN)
-    MSG_MULTI_NOTIF(DEATH_SELF_FALL,                    1,  NO_MSG,         INFO_DEATH_SELF_FALL,                   CENTER_DEATH_SELF_FALL)
-    MSG_MULTI_NOTIF(DEATH_SELF_FIRE,                    1,  NO_MSG,         INFO_DEATH_SELF_FIRE,                   CENTER_DEATH_SELF_FIRE)
-    MSG_MULTI_NOTIF(DEATH_SELF_GENERIC,                 1,  NO_MSG,         INFO_DEATH_SELF_GENERIC,                CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(DEATH_SELF_LAVA,                    1,  NO_MSG,         INFO_DEATH_SELF_LAVA,                   CENTER_DEATH_SELF_LAVA)
-    MSG_MULTI_NOTIF(DEATH_SELF_MON_MAGE,                1,  NO_MSG,         INFO_DEATH_SELF_MON_MAGE,               CENTER_DEATH_SELF_MONSTER)
-    MSG_MULTI_NOTIF(DEATH_SELF_MON_SHAMBLER_CLAW,       1,  NO_MSG,         INFO_DEATH_SELF_MON_SHAMBLER_CLAW,      CENTER_DEATH_SELF_MONSTER)
-    MSG_MULTI_NOTIF(DEATH_SELF_MON_SHAMBLER_SMASH,      1,  NO_MSG,         INFO_DEATH_SELF_MON_SHAMBLER_SMASH,     CENTER_DEATH_SELF_MONSTER)
-    MSG_MULTI_NOTIF(DEATH_SELF_MON_SHAMBLER_ZAP,        1,  NO_MSG,         INFO_DEATH_SELF_MON_SHAMBLER_ZAP,       CENTER_DEATH_SELF_MONSTER)
-    MSG_MULTI_NOTIF(DEATH_SELF_MON_SPIDER,              1,  NO_MSG,         INFO_DEATH_SELF_MON_SPIDER,             CENTER_DEATH_SELF_MONSTER)
-    MSG_MULTI_NOTIF(DEATH_SELF_MON_WYVERN,              1,  NO_MSG,         INFO_DEATH_SELF_MON_WYVERN,             CENTER_DEATH_SELF_MONSTER)
-    MSG_MULTI_NOTIF(DEATH_SELF_MON_ZOMBIE_JUMP,         1,  NO_MSG,         INFO_DEATH_SELF_MON_ZOMBIE_JUMP,        CENTER_DEATH_SELF_MONSTER)
-    MSG_MULTI_NOTIF(DEATH_SELF_MON_ZOMBIE_MELEE,        1,  NO_MSG,         INFO_DEATH_SELF_MON_ZOMBIE_MELEE,       CENTER_DEATH_SELF_MONSTER)
-    MSG_MULTI_NOTIF(DEATH_SELF_NADE,                    1,  NO_MSG,         INFO_DEATH_SELF_NADE,                   CENTER_DEATH_SELF_NADE)
-    MSG_MULTI_NOTIF(DEATH_SELF_NADE_NAPALM,             1,  NO_MSG,         INFO_DEATH_SELF_NADE_NAPALM,            CENTER_DEATH_SELF_NADE_NAPALM)
-    MSG_MULTI_NOTIF(DEATH_SELF_NADE_ICE,                1,  NO_MSG,         INFO_DEATH_SELF_NADE_ICE,               CENTER_DEATH_SELF_NADE_ICE_FREEZE)
-    MSG_MULTI_NOTIF(DEATH_SELF_NADE_ICE_FREEZE,         1,  NO_MSG,         INFO_DEATH_SELF_NADE_ICE_FREEZE,        CENTER_DEATH_SELF_NADE_ICE_FREEZE)
-    MSG_MULTI_NOTIF(DEATH_SELF_NADE_HEAL,               1,  NO_MSG,         INFO_DEATH_SELF_NADE_HEAL,              CENTER_DEATH_SELF_NADE_HEAL)
-    MSG_MULTI_NOTIF(DEATH_SELF_NOAMMO,                  1,  NO_MSG,         INFO_DEATH_SELF_NOAMMO,                 CENTER_DEATH_SELF_NOAMMO)
-    MSG_MULTI_NOTIF(DEATH_SELF_ROT,                     1,  NO_MSG,         INFO_DEATH_SELF_ROT,                    CENTER_DEATH_SELF_ROT)
-    MSG_MULTI_NOTIF(DEATH_SELF_SHOOTING_STAR,           1,  NO_MSG,         INFO_DEATH_SELF_SHOOTING_STAR,          CENTER_DEATH_SELF_SHOOTING_STAR)
-    MSG_MULTI_NOTIF(DEATH_SELF_SLIME,                   1,  NO_MSG,         INFO_DEATH_SELF_SLIME,                  CENTER_DEATH_SELF_SLIME)
-    MSG_MULTI_NOTIF(DEATH_SELF_SUICIDE,                 1,  NO_MSG,         INFO_DEATH_SELF_SUICIDE,                CENTER_DEATH_SELF_SUICIDE)
-    MSG_MULTI_NOTIF(DEATH_SELF_SWAMP,                   1,  NO_MSG,         INFO_DEATH_SELF_SWAMP,                  CENTER_DEATH_SELF_SWAMP)
-    MSG_MULTI_NOTIF(DEATH_SELF_TEAMCHANGE,              1,  NO_MSG,         INFO_DEATH_SELF_TEAMCHANGE,             CENTER_DEATH_SELF_TEAMCHANGE)
-    MSG_MULTI_NOTIF(DEATH_SELF_TOUCHEXPLODE,            1,  NO_MSG,         INFO_DEATH_SELF_TOUCHEXPLODE,           CENTER_DEATH_SELF_TOUCHEXPLODE)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET,                  1,  NO_MSG,         INFO_DEATH_SELF_TURRET,                 CENTER_DEATH_SELF_TURRET)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_EWHEEL,           1,  NO_MSG,         INFO_DEATH_SELF_TURRET_EWHEEL,          CENTER_DEATH_SELF_TURRET_EWHEEL)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_FLAC,             1,  NO_MSG,         INFO_DEATH_SELF_TURRET_FLAC,            CENTER_DEATH_SELF_TURRET)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_HELLION,          1,  NO_MSG,         INFO_DEATH_SELF_TURRET_HELLION,         CENTER_DEATH_SELF_TURRET)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_HK,               1,  NO_MSG,         INFO_DEATH_SELF_TURRET_HK,              CENTER_DEATH_SELF_TURRET)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_MACHINEGUN,       1,  NO_MSG,         INFO_DEATH_SELF_TURRET_MACHINEGUN,      CENTER_DEATH_SELF_TURRET)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_MLRS,             1,  NO_MSG,         INFO_DEATH_SELF_TURRET_MLRS,            CENTER_DEATH_SELF_TURRET)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_PHASER,           1,  NO_MSG,         INFO_DEATH_SELF_TURRET_PHASER,          CENTER_DEATH_SELF_TURRET)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_PLASMA,           1,  NO_MSG,         INFO_DEATH_SELF_TURRET_PLASMA,          CENTER_DEATH_SELF_TURRET)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_TESLA,            1,  NO_MSG,         INFO_DEATH_SELF_TURRET_TESLA,           CENTER_DEATH_SELF_TURRET)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_WALK_GUN,         1,  NO_MSG,         INFO_DEATH_SELF_TURRET_WALK_GUN,        CENTER_DEATH_SELF_TURRET_WALK)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_WALK_MELEE,       1,  NO_MSG,         INFO_DEATH_SELF_TURRET_WALK_MELEE,      CENTER_DEATH_SELF_TURRET_WALK)
-    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_WALK_ROCKET,      1,  NO_MSG,         INFO_DEATH_SELF_TURRET_WALK_ROCKET,     CENTER_DEATH_SELF_TURRET_WALK)
-    MSG_MULTI_NOTIF(DEATH_SELF_VH_BUMB_DEATH,           1,  NO_MSG,         INFO_DEATH_SELF_VH_BUMB_DEATH,          CENTER_DEATH_SELF_VH_BUMB_DEATH)
-    MSG_MULTI_NOTIF(DEATH_SELF_VH_CRUSH,                1,  NO_MSG,         INFO_DEATH_SELF_VH_CRUSH,               CENTER_DEATH_SELF_VH_CRUSH)
-    MSG_MULTI_NOTIF(DEATH_SELF_VH_RAPT_BOMB,            1,  NO_MSG,         INFO_DEATH_SELF_VH_RAPT_BOMB,           CENTER_DEATH_SELF_VH_RAPT_BOMB)
-    MSG_MULTI_NOTIF(DEATH_SELF_VH_RAPT_DEATH,           1,  NO_MSG,         INFO_DEATH_SELF_VH_RAPT_DEATH,          CENTER_DEATH_SELF_VH_RAPT_DEATH)
-    MSG_MULTI_NOTIF(DEATH_SELF_VH_SPID_DEATH,           1,  NO_MSG,         INFO_DEATH_SELF_VH_SPID_DEATH,          CENTER_DEATH_SELF_VH_SPID_DEATH)
-    MSG_MULTI_NOTIF(DEATH_SELF_VH_SPID_ROCKET,          1,  NO_MSG,         INFO_DEATH_SELF_VH_SPID_ROCKET,         CENTER_DEATH_SELF_VH_SPID_ROCKET)
-    MSG_MULTI_NOTIF(DEATH_SELF_VH_WAKI_DEATH,           1,  NO_MSG,         INFO_DEATH_SELF_VH_WAKI_DEATH,          CENTER_DEATH_SELF_VH_WAKI_DEATH)
-    MSG_MULTI_NOTIF(DEATH_SELF_VH_WAKI_ROCKET,          1,  NO_MSG,         INFO_DEATH_SELF_VH_WAKI_ROCKET,         CENTER_DEATH_SELF_VH_WAKI_ROCKET)
-    MSG_MULTI_NOTIF(DEATH_SELF_VOID,                    1,  NO_MSG,         INFO_DEATH_SELF_VOID,                   CENTER_DEATH_SELF_VOID)
-
-    MSG_MULTI_NOTIF(ITEM_BUFF_DROP,                     1,  NO_MSG,         INFO_ITEM_BUFF_DROP,                    CENTER_ITEM_BUFF_DROP)
-    MSG_MULTI_NOTIF(ITEM_BUFF_GOT,                      1,  NO_MSG,         INFO_ITEM_BUFF_GOT,                     CENTER_ITEM_BUFF_GOT)
-    MSG_MULTI_NOTIF(ITEM_WEAPON_DONTHAVE,               1,  NO_MSG,         INFO_ITEM_WEAPON_DONTHAVE,              CENTER_ITEM_WEAPON_DONTHAVE)
-    MSG_MULTI_NOTIF(ITEM_WEAPON_DROP,                   1,  NO_MSG,         INFO_ITEM_WEAPON_DROP,                  CENTER_ITEM_WEAPON_DROP)
-    MSG_MULTI_NOTIF(ITEM_WEAPON_GOT,                    1,  NO_MSG,         INFO_ITEM_WEAPON_GOT,                   CENTER_ITEM_WEAPON_GOT)
-    MSG_MULTI_NOTIF(ITEM_WEAPON_NOAMMO,                 1,  NO_MSG,         INFO_ITEM_WEAPON_NOAMMO,                CENTER_ITEM_WEAPON_NOAMMO)
-    MSG_MULTI_NOTIF(ITEM_WEAPON_PRIMORSEC,              1,  NO_MSG,         INFO_ITEM_WEAPON_PRIMORSEC,             CENTER_ITEM_WEAPON_PRIMORSEC)
-    MSG_MULTI_NOTIF(ITEM_WEAPON_UNAVAILABLE,            1,  NO_MSG,         INFO_ITEM_WEAPON_UNAVAILABLE,           CENTER_ITEM_WEAPON_UNAVAILABLE)
-
-    MSG_MULTI_NOTIF(MULTI_COINTOSS,                     1,  NO_MSG,         INFO_COINTOSS,                          CENTER_COINTOSS)
-    MSG_MULTI_NOTIF(MULTI_COUNTDOWN_BEGIN,              1,  ANNCE_BEGIN,    NO_MSG,                                 CENTER_COUNTDOWN_BEGIN)
-    MSG_MULTI_NOTIF(MULTI_INSTAGIB_FINDAMMO,            1,  ANNCE_NUM_10,   NO_MSG,                                 CENTER_INSTAGIB_FINDAMMO_FIRST)
-
-    MSG_MULTI_NOTIF(WEAPON_ACCORDEON_MURDER,            1,  NO_MSG,         INFO_WEAPON_ACCORDEON_MURDER,           NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_ACCORDEON_SUICIDE,           1,  NO_MSG,         INFO_WEAPON_ACCORDEON_SUICIDE,          CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_ARC_MURDER,                  1,  NO_MSG,         INFO_WEAPON_ARC_MURDER,                 NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_ARC_MURDER_SPRAY,            1,  NO_MSG,         INFO_WEAPON_ARC_MURDER_SPRAY,           NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_BLASTER_MURDER,              1,  NO_MSG,         INFO_WEAPON_BLASTER_MURDER,             NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_BLASTER_SUICIDE,             1,  NO_MSG,         INFO_WEAPON_BLASTER_SUICIDE,            CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_CRYLINK_MURDER,              1,  NO_MSG,         INFO_WEAPON_CRYLINK_MURDER,             NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_CRYLINK_SUICIDE,             1,  NO_MSG,         INFO_WEAPON_CRYLINK_SUICIDE,            CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_DEVASTATOR_MURDER_DIRECT,    1,  NO_MSG,         INFO_WEAPON_DEVASTATOR_MURDER_DIRECT,   NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_DEVASTATOR_MURDER_SPLASH,    1,  NO_MSG,         INFO_WEAPON_DEVASTATOR_MURDER_SPLASH,   NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_DEVASTATOR_SUICIDE,          1,  NO_MSG,         INFO_WEAPON_DEVASTATOR_SUICIDE,         CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_ELECTRO_MURDER_BOLT,         1,  NO_MSG,         INFO_WEAPON_ELECTRO_MURDER_BOLT,        NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_ELECTRO_MURDER_COMBO,        1,  NO_MSG,         INFO_WEAPON_ELECTRO_MURDER_COMBO,       NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_ELECTRO_MURDER_ORBS,         1,  NO_MSG,         INFO_WEAPON_ELECTRO_MURDER_ORBS,        NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_ELECTRO_SUICIDE_BOLT,        1,  NO_MSG,         INFO_WEAPON_ELECTRO_SUICIDE_BOLT,       CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_ELECTRO_SUICIDE_ORBS,        1,  NO_MSG,         INFO_WEAPON_ELECTRO_SUICIDE_ORBS,       CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_FIREBALL_MURDER_BLAST,       1,  NO_MSG,         INFO_WEAPON_FIREBALL_MURDER_BLAST,      NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_FIREBALL_MURDER_FIREMINE,    1,  NO_MSG,         INFO_WEAPON_FIREBALL_MURDER_FIREMINE,   NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_FIREBALL_SUICIDE_BLAST,      1,  NO_MSG,         INFO_WEAPON_FIREBALL_SUICIDE_BLAST,     CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_FIREBALL_SUICIDE_FIREMINE,   1,  NO_MSG,         INFO_WEAPON_FIREBALL_SUICIDE_FIREMINE,  CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_HAGAR_MURDER_BURST,          1,  NO_MSG,         INFO_WEAPON_HAGAR_MURDER_BURST,         NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_HAGAR_MURDER_SPRAY,          1,  NO_MSG,         INFO_WEAPON_HAGAR_MURDER_SPRAY,         NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_HAGAR_SUICIDE,               1,  NO_MSG,         INFO_WEAPON_HAGAR_SUICIDE,              CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_HLAC_MURDER,                 1,  NO_MSG,         INFO_WEAPON_HLAC_MURDER,                NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_HLAC_SUICIDE,                1,  NO_MSG,         INFO_WEAPON_HLAC_SUICIDE,               CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_HMG_MURDER_SNIPE,            1,  NO_MSG,         INFO_WEAPON_HMG_MURDER_SNIPE,           NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_HMG_MURDER_SPRAY,            1,  NO_MSG,         INFO_WEAPON_HMG_MURDER_SPRAY,           NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_HOOK_MURDER,                 1,  NO_MSG,         INFO_WEAPON_HOOK_MURDER,                NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_KLEINBOTTLE_MURDER,          1,  NO_MSG,         INFO_WEAPON_KLEINBOTTLE_MURDER,         NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_KLEINBOTTLE_SUICIDE,         1,  NO_MSG,         INFO_WEAPON_KLEINBOTTLE_SUICIDE,        CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_MACHINEGUN_MURDER_SNIPE,     1,  NO_MSG,         INFO_WEAPON_MACHINEGUN_MURDER_SNIPE,    NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_MACHINEGUN_MURDER_SPRAY,     1,  NO_MSG,         INFO_WEAPON_MACHINEGUN_MURDER_SPRAY,    NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_MINELAYER_LIMIT,             1,  NO_MSG,         INFO_WEAPON_MINELAYER_LIMIT,            CENTER_WEAPON_MINELAYER_LIMIT)
-    MSG_MULTI_NOTIF(WEAPON_MINELAYER_MURDER,            1,  NO_MSG,         INFO_WEAPON_MINELAYER_MURDER,           NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_MINELAYER_SUICIDE,           1,  NO_MSG,         INFO_WEAPON_MINELAYER_SUICIDE,          CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_MORTAR_MURDER_BOUNCE,        1,  NO_MSG,         INFO_WEAPON_MORTAR_MURDER_BOUNCE,       NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_MORTAR_MURDER_EXPLODE,       1,  NO_MSG,         INFO_WEAPON_MORTAR_MURDER_EXPLODE,      NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_MORTAR_SUICIDE_BOUNCE,       1,  NO_MSG,         INFO_WEAPON_MORTAR_SUICIDE_BOUNCE,      CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_MORTAR_SUICIDE_EXPLODE,      1,  NO_MSG,         INFO_WEAPON_MORTAR_SUICIDE_EXPLODE,     CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_RIFLE_MURDER,                1,  NO_MSG,         INFO_WEAPON_RIFLE_MURDER,               NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_RIFLE_MURDER_HAIL,           1,  NO_MSG,         INFO_WEAPON_RIFLE_MURDER_HAIL,          NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_RIFLE_MURDER_HAIL_PIERCING,  1,  NO_MSG,         INFO_WEAPON_RIFLE_MURDER_HAIL_PIERCING, NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_RIFLE_MURDER_PIERCING,       1,  NO_MSG,         INFO_WEAPON_RIFLE_MURDER_PIERCING,      NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_RPC_MURDER_DIRECT,           1,  NO_MSG,         INFO_WEAPON_RPC_MURDER_DIRECT,          NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_RPC_MURDER_SPLASH,           1,  NO_MSG,         INFO_WEAPON_RPC_MURDER_SPLASH,          NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_RPC_SUICIDE_DIRECT,          1,  NO_MSG,         INFO_WEAPON_RPC_SUICIDE_DIRECT,         NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_RPC_SUICIDE_SPLASH,          1,  NO_MSG,         INFO_WEAPON_RPC_SUICIDE_SPLASH,         CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_SEEKER_MURDER_SPRAY,         1,  NO_MSG,         INFO_WEAPON_SEEKER_MURDER_SPRAY,        NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_SEEKER_MURDER_TAG,           1,  NO_MSG,         INFO_WEAPON_SEEKER_MURDER_TAG,          NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_SEEKER_SUICIDE,              1,  NO_MSG,         INFO_WEAPON_SEEKER_SUICIDE,             CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_SHOCKWAVE_MURDER,            1,  NO_MSG,         INFO_WEAPON_SHOCKWAVE_MURDER,           NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_SHOCKWAVE_MURDER_SLAP,       1,  NO_MSG,         INFO_WEAPON_SHOCKWAVE_MURDER_SLAP,      NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_SHOTGUN_MURDER,              1,  NO_MSG,         INFO_WEAPON_SHOTGUN_MURDER,             NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_SHOTGUN_MURDER_SLAP,         1,  NO_MSG,         INFO_WEAPON_SHOTGUN_MURDER_SLAP,        NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_THINKING_WITH_PORTALS,       1,  NO_MSG,         INFO_WEAPON_THINKING_WITH_PORTALS,      CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_TUBA_MURDER,                 1,  NO_MSG,         INFO_WEAPON_TUBA_MURDER,                NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_TUBA_SUICIDE,                1,  NO_MSG,         INFO_WEAPON_TUBA_SUICIDE,               CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_VAPORIZER_MURDER,            1,  NO_MSG,         INFO_WEAPON_VAPORIZER_MURDER,           NO_MSG)
-    MSG_MULTI_NOTIF(WEAPON_VORTEX_MURDER,               1,  NO_MSG,         INFO_WEAPON_VORTEX_MURDER,              NO_MSG)
+    MSG_MULTI_NOTIF(DEATH_MURDER_BUFF,                  1,  NULL,           INFO_DEATH_MURDER_BUFF,                 NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_CHEAT,                 1,  NULL,           INFO_DEATH_MURDER_CHEAT,                NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_DROWN,                 1,  NULL,           INFO_DEATH_MURDER_DROWN,                NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_FALL,                  1,  NULL,           INFO_DEATH_MURDER_FALL,                 NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_FIRE,                  1,  NULL,           INFO_DEATH_MURDER_FIRE,                 NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_LAVA,                  1,  NULL,           INFO_DEATH_MURDER_LAVA,                 NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_MONSTER,               1,  NULL,           INFO_DEATH_MURDER_MONSTER,              CENTER_DEATH_SELF_MONSTER)
+    MSG_MULTI_NOTIF(DEATH_MURDER_NADE,                  1,  NULL,           INFO_DEATH_MURDER_NADE,                 NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_NADE_NAPALM,           1,  NULL,           INFO_DEATH_MURDER_NADE_NAPALM,          NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_NADE_ICE,              1,  NULL,           INFO_DEATH_MURDER_NADE_ICE,             NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_NADE_ICE_FREEZE,       1,  NULL,           INFO_DEATH_MURDER_NADE_ICE_FREEZE,      NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_NADE_HEAL,             1,  NULL,           INFO_DEATH_MURDER_NADE_HEAL,            NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_SHOOTING_STAR,         1,  NULL,           INFO_DEATH_MURDER_SHOOTING_STAR,        NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_SLIME,                 1,  NULL,           INFO_DEATH_MURDER_SLIME,                NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_SWAMP,                 1,  NULL,           INFO_DEATH_MURDER_SWAMP,                NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_TELEFRAG,              1,  NULL,           INFO_DEATH_MURDER_TELEFRAG,             NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_TOUCHEXPLODE,          1,  NULL,           INFO_DEATH_MURDER_TOUCHEXPLODE,         NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VH_BUMB_DEATH,         1,  NULL,           INFO_DEATH_MURDER_VH_BUMB_DEATH,        NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VH_BUMB_GUN,           1,  NULL,           INFO_DEATH_MURDER_VH_BUMB_GUN,          NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VH_CRUSH,              1,  NULL,           INFO_DEATH_MURDER_VH_CRUSH,             NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VH_RAPT_BOMB,          1,  NULL,           INFO_DEATH_MURDER_VH_RAPT_BOMB,         NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VH_RAPT_CANNON,        1,  NULL,           INFO_DEATH_MURDER_VH_RAPT_CANNON,       NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VH_RAPT_DEATH,         1,  NULL,           INFO_DEATH_MURDER_VH_RAPT_DEATH,        NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VH_SPID_DEATH,         1,  NULL,           INFO_DEATH_MURDER_VH_SPID_DEATH,        NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VH_SPID_MINIGUN,       1,  NULL,           INFO_DEATH_MURDER_VH_SPID_MINIGUN,      NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VH_SPID_ROCKET,        1,  NULL,           INFO_DEATH_MURDER_VH_SPID_ROCKET,       NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VH_WAKI_DEATH,         1,  NULL,           INFO_DEATH_MURDER_VH_WAKI_DEATH,        NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VH_WAKI_GUN,           1,  NULL,           INFO_DEATH_MURDER_VH_WAKI_GUN,          NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VH_WAKI_ROCKET,        1,  NULL,           INFO_DEATH_MURDER_VH_WAKI_ROCKET,       NULL)
+    MSG_MULTI_NOTIF(DEATH_MURDER_VOID,                  1,  NULL,           INFO_DEATH_MURDER_VOID,                 NULL)
+
+    MSG_MULTI_NOTIF(DEATH_SELF_AUTOTEAMCHANGE,          1,  NULL,           INFO_DEATH_SELF_AUTOTEAMCHANGE,         CENTER_DEATH_SELF_AUTOTEAMCHANGE)
+    MSG_MULTI_NOTIF(DEATH_SELF_BETRAYAL,                1,  NULL,           INFO_DEATH_SELF_BETRAYAL,               CENTER_DEATH_SELF_BETRAYAL)
+    MSG_MULTI_NOTIF(DEATH_SELF_CAMP,                    1,  NULL,           INFO_DEATH_SELF_CAMP,                   CENTER_DEATH_SELF_CAMP)
+    MSG_MULTI_NOTIF(DEATH_SELF_CHEAT,                   1,  NULL,           INFO_DEATH_SELF_CHEAT,                  CENTER_DEATH_SELF_CHEAT)
+    MSG_MULTI_NOTIF(DEATH_SELF_CUSTOM,                  1,  NULL,           INFO_DEATH_SELF_GENERIC,                CENTER_DEATH_SELF_CUSTOM)
+    MSG_MULTI_NOTIF(DEATH_SELF_DROWN,                   1,  NULL,           INFO_DEATH_SELF_DROWN,                  CENTER_DEATH_SELF_DROWN)
+    MSG_MULTI_NOTIF(DEATH_SELF_FALL,                    1,  NULL,           INFO_DEATH_SELF_FALL,                   CENTER_DEATH_SELF_FALL)
+    MSG_MULTI_NOTIF(DEATH_SELF_FIRE,                    1,  NULL,           INFO_DEATH_SELF_FIRE,                   CENTER_DEATH_SELF_FIRE)
+    MSG_MULTI_NOTIF(DEATH_SELF_GENERIC,                 1,  NULL,           INFO_DEATH_SELF_GENERIC,                CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(DEATH_SELF_LAVA,                    1,  NULL,           INFO_DEATH_SELF_LAVA,                   CENTER_DEATH_SELF_LAVA)
+    MSG_MULTI_NOTIF(DEATH_SELF_MON_MAGE,                1,  NULL,           INFO_DEATH_SELF_MON_MAGE,               CENTER_DEATH_SELF_MONSTER)
+    MSG_MULTI_NOTIF(DEATH_SELF_MON_SHAMBLER_CLAW,       1,  NULL,           INFO_DEATH_SELF_MON_SHAMBLER_CLAW,      CENTER_DEATH_SELF_MONSTER)
+    MSG_MULTI_NOTIF(DEATH_SELF_MON_SHAMBLER_SMASH,      1,  NULL,           INFO_DEATH_SELF_MON_SHAMBLER_SMASH,     CENTER_DEATH_SELF_MONSTER)
+    MSG_MULTI_NOTIF(DEATH_SELF_MON_SHAMBLER_ZAP,        1,  NULL,           INFO_DEATH_SELF_MON_SHAMBLER_ZAP,       CENTER_DEATH_SELF_MONSTER)
+    MSG_MULTI_NOTIF(DEATH_SELF_MON_SPIDER,              1,  NULL,           INFO_DEATH_SELF_MON_SPIDER,             CENTER_DEATH_SELF_MONSTER)
+    MSG_MULTI_NOTIF(DEATH_SELF_MON_WYVERN,              1,  NULL,           INFO_DEATH_SELF_MON_WYVERN,             CENTER_DEATH_SELF_MONSTER)
+    MSG_MULTI_NOTIF(DEATH_SELF_MON_ZOMBIE_JUMP,         1,  NULL,           INFO_DEATH_SELF_MON_ZOMBIE_JUMP,        CENTER_DEATH_SELF_MONSTER)
+    MSG_MULTI_NOTIF(DEATH_SELF_MON_ZOMBIE_MELEE,        1,  NULL,           INFO_DEATH_SELF_MON_ZOMBIE_MELEE,       CENTER_DEATH_SELF_MONSTER)
+    MSG_MULTI_NOTIF(DEATH_SELF_NADE,                    1,  NULL,           INFO_DEATH_SELF_NADE,                   CENTER_DEATH_SELF_NADE)
+    MSG_MULTI_NOTIF(DEATH_SELF_NADE_NAPALM,             1,  NULL,           INFO_DEATH_SELF_NADE_NAPALM,            CENTER_DEATH_SELF_NADE_NAPALM)
+    MSG_MULTI_NOTIF(DEATH_SELF_NADE_ICE,                1,  NULL,           INFO_DEATH_SELF_NADE_ICE,               CENTER_DEATH_SELF_NADE_ICE_FREEZE)
+    MSG_MULTI_NOTIF(DEATH_SELF_NADE_ICE_FREEZE,         1,  NULL,           INFO_DEATH_SELF_NADE_ICE_FREEZE,        CENTER_DEATH_SELF_NADE_ICE_FREEZE)
+    MSG_MULTI_NOTIF(DEATH_SELF_NADE_HEAL,               1,  NULL,           INFO_DEATH_SELF_NADE_HEAL,              CENTER_DEATH_SELF_NADE_HEAL)
+    MSG_MULTI_NOTIF(DEATH_SELF_NOAMMO,                  1,  NULL,           INFO_DEATH_SELF_NOAMMO,                 CENTER_DEATH_SELF_NOAMMO)
+    MSG_MULTI_NOTIF(DEATH_SELF_ROT,                     1,  NULL,           INFO_DEATH_SELF_ROT,                    CENTER_DEATH_SELF_ROT)
+    MSG_MULTI_NOTIF(DEATH_SELF_SHOOTING_STAR,           1,  NULL,           INFO_DEATH_SELF_SHOOTING_STAR,          CENTER_DEATH_SELF_SHOOTING_STAR)
+    MSG_MULTI_NOTIF(DEATH_SELF_SLIME,                   1,  NULL,           INFO_DEATH_SELF_SLIME,                  CENTER_DEATH_SELF_SLIME)
+    MSG_MULTI_NOTIF(DEATH_SELF_SUICIDE,                 1,  NULL,           INFO_DEATH_SELF_SUICIDE,                CENTER_DEATH_SELF_SUICIDE)
+    MSG_MULTI_NOTIF(DEATH_SELF_SWAMP,                   1,  NULL,           INFO_DEATH_SELF_SWAMP,                  CENTER_DEATH_SELF_SWAMP)
+    MSG_MULTI_NOTIF(DEATH_SELF_TEAMCHANGE,              1,  NULL,           INFO_DEATH_SELF_TEAMCHANGE,             CENTER_DEATH_SELF_TEAMCHANGE)
+    MSG_MULTI_NOTIF(DEATH_SELF_TOUCHEXPLODE,            1,  NULL,           INFO_DEATH_SELF_TOUCHEXPLODE,           CENTER_DEATH_SELF_TOUCHEXPLODE)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET,                  1,  NULL,           INFO_DEATH_SELF_TURRET,                 CENTER_DEATH_SELF_TURRET)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_EWHEEL,           1,  NULL,           INFO_DEATH_SELF_TURRET_EWHEEL,          CENTER_DEATH_SELF_TURRET_EWHEEL)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_FLAC,             1,  NULL,           INFO_DEATH_SELF_TURRET_FLAC,            CENTER_DEATH_SELF_TURRET)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_HELLION,          1,  NULL,           INFO_DEATH_SELF_TURRET_HELLION,         CENTER_DEATH_SELF_TURRET)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_HK,               1,  NULL,           INFO_DEATH_SELF_TURRET_HK,              CENTER_DEATH_SELF_TURRET)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_MACHINEGUN,       1,  NULL,           INFO_DEATH_SELF_TURRET_MACHINEGUN,      CENTER_DEATH_SELF_TURRET)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_MLRS,             1,  NULL,           INFO_DEATH_SELF_TURRET_MLRS,            CENTER_DEATH_SELF_TURRET)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_PHASER,           1,  NULL,           INFO_DEATH_SELF_TURRET_PHASER,          CENTER_DEATH_SELF_TURRET)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_PLASMA,           1,  NULL,           INFO_DEATH_SELF_TURRET_PLASMA,          CENTER_DEATH_SELF_TURRET)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_TESLA,            1,  NULL,           INFO_DEATH_SELF_TURRET_TESLA,           CENTER_DEATH_SELF_TURRET)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_WALK_GUN,         1,  NULL,           INFO_DEATH_SELF_TURRET_WALK_GUN,        CENTER_DEATH_SELF_TURRET_WALK)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_WALK_MELEE,       1,  NULL,           INFO_DEATH_SELF_TURRET_WALK_MELEE,      CENTER_DEATH_SELF_TURRET_WALK)
+    MSG_MULTI_NOTIF(DEATH_SELF_TURRET_WALK_ROCKET,      1,  NULL,           INFO_DEATH_SELF_TURRET_WALK_ROCKET,     CENTER_DEATH_SELF_TURRET_WALK)
+    MSG_MULTI_NOTIF(DEATH_SELF_VH_BUMB_DEATH,           1,  NULL,           INFO_DEATH_SELF_VH_BUMB_DEATH,          CENTER_DEATH_SELF_VH_BUMB_DEATH)
+    MSG_MULTI_NOTIF(DEATH_SELF_VH_CRUSH,                1,  NULL,           INFO_DEATH_SELF_VH_CRUSH,               CENTER_DEATH_SELF_VH_CRUSH)
+    MSG_MULTI_NOTIF(DEATH_SELF_VH_RAPT_BOMB,            1,  NULL,           INFO_DEATH_SELF_VH_RAPT_BOMB,           CENTER_DEATH_SELF_VH_RAPT_BOMB)
+    MSG_MULTI_NOTIF(DEATH_SELF_VH_RAPT_DEATH,           1,  NULL,           INFO_DEATH_SELF_VH_RAPT_DEATH,          CENTER_DEATH_SELF_VH_RAPT_DEATH)
+    MSG_MULTI_NOTIF(DEATH_SELF_VH_SPID_DEATH,           1,  NULL,           INFO_DEATH_SELF_VH_SPID_DEATH,          CENTER_DEATH_SELF_VH_SPID_DEATH)
+    MSG_MULTI_NOTIF(DEATH_SELF_VH_SPID_ROCKET,          1,  NULL,           INFO_DEATH_SELF_VH_SPID_ROCKET,         CENTER_DEATH_SELF_VH_SPID_ROCKET)
+    MSG_MULTI_NOTIF(DEATH_SELF_VH_WAKI_DEATH,           1,  NULL,           INFO_DEATH_SELF_VH_WAKI_DEATH,          CENTER_DEATH_SELF_VH_WAKI_DEATH)
+    MSG_MULTI_NOTIF(DEATH_SELF_VH_WAKI_ROCKET,          1,  NULL,           INFO_DEATH_SELF_VH_WAKI_ROCKET,         CENTER_DEATH_SELF_VH_WAKI_ROCKET)
+    MSG_MULTI_NOTIF(DEATH_SELF_VOID,                    1,  NULL,           INFO_DEATH_SELF_VOID,                   CENTER_DEATH_SELF_VOID)
+
+    MSG_MULTI_NOTIF(ITEM_BUFF_DROP,                     1,  NULL,           INFO_ITEM_BUFF_DROP,                    CENTER_ITEM_BUFF_DROP)
+    MSG_MULTI_NOTIF(ITEM_BUFF_GOT,                      1,  NULL,           INFO_ITEM_BUFF_GOT,                     CENTER_ITEM_BUFF_GOT)
+    MSG_MULTI_NOTIF(ITEM_WEAPON_DONTHAVE,               1,  NULL,           INFO_ITEM_WEAPON_DONTHAVE,              CENTER_ITEM_WEAPON_DONTHAVE)
+    MSG_MULTI_NOTIF(ITEM_WEAPON_DROP,                   1,  NULL,           INFO_ITEM_WEAPON_DROP,                  CENTER_ITEM_WEAPON_DROP)
+    MSG_MULTI_NOTIF(ITEM_WEAPON_GOT,                    1,  NULL,           INFO_ITEM_WEAPON_GOT,                   CENTER_ITEM_WEAPON_GOT)
+    MSG_MULTI_NOTIF(ITEM_WEAPON_NOAMMO,                 1,  NULL,           INFO_ITEM_WEAPON_NOAMMO,                CENTER_ITEM_WEAPON_NOAMMO)
+    MSG_MULTI_NOTIF(ITEM_WEAPON_PRIMORSEC,              1,  NULL,           INFO_ITEM_WEAPON_PRIMORSEC,             CENTER_ITEM_WEAPON_PRIMORSEC)
+    MSG_MULTI_NOTIF(ITEM_WEAPON_UNAVAILABLE,            1,  NULL,           INFO_ITEM_WEAPON_UNAVAILABLE,           CENTER_ITEM_WEAPON_UNAVAILABLE)
+
+    MSG_MULTI_NOTIF(MULTI_COINTOSS,                     1,  NULL,           INFO_COINTOSS,                          CENTER_COINTOSS)
+    MSG_MULTI_NOTIF(MULTI_COUNTDOWN_BEGIN,              1,  ANNCE_BEGIN,    NULL,                                   CENTER_COUNTDOWN_BEGIN)
+    MSG_MULTI_NOTIF(MULTI_INSTAGIB_FINDAMMO,            1,  ANNCE_NUM_10,   NULL,                                   CENTER_INSTAGIB_FINDAMMO_FIRST)
+
+    MSG_MULTI_NOTIF(WEAPON_ACCORDEON_MURDER,            1,  NULL,           INFO_WEAPON_ACCORDEON_MURDER,           NULL)
+    MSG_MULTI_NOTIF(WEAPON_ACCORDEON_SUICIDE,           1,  NULL,           INFO_WEAPON_ACCORDEON_SUICIDE,          CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_ARC_MURDER,                  1,  NULL,           INFO_WEAPON_ARC_MURDER,                 NULL)
+    MSG_MULTI_NOTIF(WEAPON_ARC_MURDER_SPRAY,            1,  NULL,           INFO_WEAPON_ARC_MURDER_SPRAY,           NULL)
+    MSG_MULTI_NOTIF(WEAPON_BLASTER_MURDER,              1,  NULL,           INFO_WEAPON_BLASTER_MURDER,             NULL)
+    MSG_MULTI_NOTIF(WEAPON_BLASTER_SUICIDE,             1,  NULL,           INFO_WEAPON_BLASTER_SUICIDE,            CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_CRYLINK_MURDER,              1,  NULL,           INFO_WEAPON_CRYLINK_MURDER,             NULL)
+    MSG_MULTI_NOTIF(WEAPON_CRYLINK_SUICIDE,             1,  NULL,           INFO_WEAPON_CRYLINK_SUICIDE,            CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_DEVASTATOR_MURDER_DIRECT,    1,  NULL,           INFO_WEAPON_DEVASTATOR_MURDER_DIRECT,   NULL)
+    MSG_MULTI_NOTIF(WEAPON_DEVASTATOR_MURDER_SPLASH,    1,  NULL,           INFO_WEAPON_DEVASTATOR_MURDER_SPLASH,   NULL)
+    MSG_MULTI_NOTIF(WEAPON_DEVASTATOR_SUICIDE,          1,  NULL,           INFO_WEAPON_DEVASTATOR_SUICIDE,         CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_ELECTRO_MURDER_BOLT,         1,  NULL,           INFO_WEAPON_ELECTRO_MURDER_BOLT,        NULL)
+    MSG_MULTI_NOTIF(WEAPON_ELECTRO_MURDER_COMBO,        1,  NULL,           INFO_WEAPON_ELECTRO_MURDER_COMBO,       NULL)
+    MSG_MULTI_NOTIF(WEAPON_ELECTRO_MURDER_ORBS,         1,  NULL,           INFO_WEAPON_ELECTRO_MURDER_ORBS,        NULL)
+    MSG_MULTI_NOTIF(WEAPON_ELECTRO_SUICIDE_BOLT,        1,  NULL,           INFO_WEAPON_ELECTRO_SUICIDE_BOLT,       CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_ELECTRO_SUICIDE_ORBS,        1,  NULL,           INFO_WEAPON_ELECTRO_SUICIDE_ORBS,       CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_FIREBALL_MURDER_BLAST,       1,  NULL,           INFO_WEAPON_FIREBALL_MURDER_BLAST,      NULL)
+    MSG_MULTI_NOTIF(WEAPON_FIREBALL_MURDER_FIREMINE,    1,  NULL,           INFO_WEAPON_FIREBALL_MURDER_FIREMINE,   NULL)
+    MSG_MULTI_NOTIF(WEAPON_FIREBALL_SUICIDE_BLAST,      1,  NULL,           INFO_WEAPON_FIREBALL_SUICIDE_BLAST,     CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_FIREBALL_SUICIDE_FIREMINE,   1,  NULL,           INFO_WEAPON_FIREBALL_SUICIDE_FIREMINE,  CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_HAGAR_MURDER_BURST,          1,  NULL,           INFO_WEAPON_HAGAR_MURDER_BURST,         NULL)
+    MSG_MULTI_NOTIF(WEAPON_HAGAR_MURDER_SPRAY,          1,  NULL,           INFO_WEAPON_HAGAR_MURDER_SPRAY,         NULL)
+    MSG_MULTI_NOTIF(WEAPON_HAGAR_SUICIDE,               1,  NULL,           INFO_WEAPON_HAGAR_SUICIDE,              CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_HLAC_MURDER,                 1,  NULL,           INFO_WEAPON_HLAC_MURDER,                NULL)
+    MSG_MULTI_NOTIF(WEAPON_HLAC_SUICIDE,                1,  NULL,           INFO_WEAPON_HLAC_SUICIDE,               CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_HMG_MURDER_SNIPE,            1,  NULL,           INFO_WEAPON_HMG_MURDER_SNIPE,           NULL)
+    MSG_MULTI_NOTIF(WEAPON_HMG_MURDER_SPRAY,            1,  NULL,           INFO_WEAPON_HMG_MURDER_SPRAY,           NULL)
+    MSG_MULTI_NOTIF(WEAPON_HOOK_MURDER,                 1,  NULL,           INFO_WEAPON_HOOK_MURDER,                NULL)
+    MSG_MULTI_NOTIF(WEAPON_KLEINBOTTLE_MURDER,          1,  NULL,           INFO_WEAPON_KLEINBOTTLE_MURDER,         NULL)
+    MSG_MULTI_NOTIF(WEAPON_KLEINBOTTLE_SUICIDE,         1,  NULL,           INFO_WEAPON_KLEINBOTTLE_SUICIDE,        CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_MACHINEGUN_MURDER_SNIPE,     1,  NULL,           INFO_WEAPON_MACHINEGUN_MURDER_SNIPE,    NULL)
+    MSG_MULTI_NOTIF(WEAPON_MACHINEGUN_MURDER_SPRAY,     1,  NULL,           INFO_WEAPON_MACHINEGUN_MURDER_SPRAY,    NULL)
+    MSG_MULTI_NOTIF(WEAPON_MINELAYER_LIMIT,             1,  NULL,           INFO_WEAPON_MINELAYER_LIMIT,            CENTER_WEAPON_MINELAYER_LIMIT)
+    MSG_MULTI_NOTIF(WEAPON_MINELAYER_MURDER,            1,  NULL,           INFO_WEAPON_MINELAYER_MURDER,           NULL)
+    MSG_MULTI_NOTIF(WEAPON_MINELAYER_SUICIDE,           1,  NULL,           INFO_WEAPON_MINELAYER_SUICIDE,          CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_MORTAR_MURDER_BOUNCE,        1,  NULL,           INFO_WEAPON_MORTAR_MURDER_BOUNCE,       NULL)
+    MSG_MULTI_NOTIF(WEAPON_MORTAR_MURDER_EXPLODE,       1,  NULL,           INFO_WEAPON_MORTAR_MURDER_EXPLODE,      NULL)
+    MSG_MULTI_NOTIF(WEAPON_MORTAR_SUICIDE_BOUNCE,       1,  NULL,           INFO_WEAPON_MORTAR_SUICIDE_BOUNCE,      CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_MORTAR_SUICIDE_EXPLODE,      1,  NULL,           INFO_WEAPON_MORTAR_SUICIDE_EXPLODE,     CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_RIFLE_MURDER,                1,  NULL,           INFO_WEAPON_RIFLE_MURDER,               NULL)
+    MSG_MULTI_NOTIF(WEAPON_RIFLE_MURDER_HAIL,           1,  NULL,           INFO_WEAPON_RIFLE_MURDER_HAIL,          NULL)
+    MSG_MULTI_NOTIF(WEAPON_RIFLE_MURDER_HAIL_PIERCING,  1,  NULL,           INFO_WEAPON_RIFLE_MURDER_HAIL_PIERCING, NULL)
+    MSG_MULTI_NOTIF(WEAPON_RIFLE_MURDER_PIERCING,       1,  NULL,           INFO_WEAPON_RIFLE_MURDER_PIERCING,      NULL)
+    MSG_MULTI_NOTIF(WEAPON_RPC_MURDER_DIRECT,           1,  NULL,           INFO_WEAPON_RPC_MURDER_DIRECT,          NULL)
+    MSG_MULTI_NOTIF(WEAPON_RPC_MURDER_SPLASH,           1,  NULL,           INFO_WEAPON_RPC_MURDER_SPLASH,          NULL)
+    MSG_MULTI_NOTIF(WEAPON_RPC_SUICIDE_DIRECT,          1,  NULL,           INFO_WEAPON_RPC_SUICIDE_DIRECT,         NULL)
+    MSG_MULTI_NOTIF(WEAPON_RPC_SUICIDE_SPLASH,          1,  NULL,           INFO_WEAPON_RPC_SUICIDE_SPLASH,         CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_SEEKER_MURDER_SPRAY,         1,  NULL,           INFO_WEAPON_SEEKER_MURDER_SPRAY,        NULL)
+    MSG_MULTI_NOTIF(WEAPON_SEEKER_MURDER_TAG,           1,  NULL,           INFO_WEAPON_SEEKER_MURDER_TAG,          NULL)
+    MSG_MULTI_NOTIF(WEAPON_SEEKER_SUICIDE,              1,  NULL,           INFO_WEAPON_SEEKER_SUICIDE,             CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_SHOCKWAVE_MURDER,            1,  NULL,           INFO_WEAPON_SHOCKWAVE_MURDER,           NULL)
+    MSG_MULTI_NOTIF(WEAPON_SHOCKWAVE_MURDER_SLAP,       1,  NULL,           INFO_WEAPON_SHOCKWAVE_MURDER_SLAP,      NULL)
+    MSG_MULTI_NOTIF(WEAPON_SHOTGUN_MURDER,              1,  NULL,           INFO_WEAPON_SHOTGUN_MURDER,             NULL)
+    MSG_MULTI_NOTIF(WEAPON_SHOTGUN_MURDER_SLAP,         1,  NULL,           INFO_WEAPON_SHOTGUN_MURDER_SLAP,        NULL)
+    MSG_MULTI_NOTIF(WEAPON_THINKING_WITH_PORTALS,       1,  NULL,           INFO_WEAPON_THINKING_WITH_PORTALS,      CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_TUBA_MURDER,                 1,  NULL,           INFO_WEAPON_TUBA_MURDER,                NULL)
+    MSG_MULTI_NOTIF(WEAPON_TUBA_SUICIDE,                1,  NULL,           INFO_WEAPON_TUBA_SUICIDE,               CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_VAPORIZER_MURDER,            1,  NULL,           INFO_WEAPON_VAPORIZER_MURDER,           NULL)
+    MSG_MULTI_NOTIF(WEAPON_VORTEX_MURDER,               1,  NULL,           INFO_WEAPON_VORTEX_MURDER,              NULL)
 
 #define MULTITEAM_CHOICE2(prefix, default, challow, chtype, optiona, optionb) \
     MSG_CHOICE_NOTIF(prefix##_RED, default, challow, chtype, optiona##_RED, optionb##_RED) \
index 315b2f931388d0706b454c406536428d3b73d7c7..5bfcfce5fd04780468ffccf9f2ea9609ca72acc7 100644 (file)
 
 #ifdef SVQC
 string Notification_CheckArgs(
-       NOTIF broadcast, entity client,
-       Notification net_name)
+       NOTIF broadcast, entity client)
 {
-       // check supplied broadcast, target, type, and name for errors
-       string checkargs = "";
-       if (!net_name) { checkargs = "No notification provided! "; }
+       // check supplied broadcast and target for errors
        switch (broadcast)
        {
                case NOTIF_ONE:
                case NOTIF_ONE_ONLY:
                {
                        if (IS_NOT_A_CLIENT(client)) {
-                               checkargs = sprintf("%sNo client provided!", checkargs);
+                               return "No client provided!";
                        }
                        break;
                }
@@ -38,7 +35,7 @@ string Notification_CheckArgs(
                case NOTIF_ALL_EXCEPT:
                {
                        if (IS_NOT_A_CLIENT(client)) {
-                               checkargs = sprintf("%sException can't be a non-client!", checkargs);
+                               return "Exception can't be a non-client!";
                        }
                        break;
                }
@@ -46,7 +43,7 @@ string Notification_CheckArgs(
                case NOTIF_ALL:
                {
                        if (client) {
-                               checkargs = sprintf("%sEntity provided when world was required!", checkargs);
+                               return "Entity provided when world was required!";
                        }
                        break;
                }
@@ -54,7 +51,7 @@ string Notification_CheckArgs(
                case NOTIF_TEAM:
                {
                        if (!teamplay) {
-                               checkargs = sprintf("%sTeamplay not active!", checkargs);
+                               return "Teamplay not active!";
                        } else if (!client.team) {
                                // checkargs = sprintf("%sNo team provided!", checkargs);
                        }
@@ -64,20 +61,19 @@ string Notification_CheckArgs(
                case NOTIF_TEAM_EXCEPT:
                {
                        if (!teamplay) {
-                               checkargs = sprintf("%sTeamplay not active!", checkargs);
+                               return "Teamplay not active!";
                        } else if (IS_NOT_A_CLIENT(client)) {
-                               checkargs = sprintf("%sException can't be a non-client!", checkargs);
+                               return "Exception can't be a non-client!";
                        }
                        break;
                }
 
                default:
                {
-                       checkargs = sprintf("%sImproper broadcast: %d!", checkargs, broadcast);
-                       break;
+                       return sprintf("Improper broadcast: %d!", broadcast);
                }
        }
-       return checkargs;
+       return "";
 }
 
 bool Notification_ShouldSend(NOTIF broadcast, entity to_client, entity other_client)
@@ -164,7 +160,7 @@ void Destroy_All_Notifications()
 {
        // kill all networked notifications and centerprints
        #ifdef SVQC
-       Kill_Notification(NOTIF_ALL, NULL, MSG_Null, 0);
+       Kill_Notification(NOTIF_ALL, NULL, MSG_Null, CPID_Null);
        #else
        reset_centerprint_messages();
        #endif
@@ -498,7 +494,7 @@ void Create_Notification_Entity_InfoCenter(entity notif,
                                                                                        string args,
                                                                                        string hudargs,
                                                                                        string icon,
-                                                                                       float cpid,
+                                                                                       CPID cpid,
                                                                                        string durcnt,
                                                                                        string normal,
                                                                                        string gentle)
@@ -576,7 +572,7 @@ void Create_Notification_Entity_InfoCenter(entity notif,
                                }
                                else if(icon != "")
                                {
-                                       LOG_INFOF(
+                                       LOG_WARNINGF(
                                                (
                                                        "^1NOTIFICATION HAS ICON BUT NO HUDARGS: "
                                                        "^7net_type = %s, net_name = %s.\n"
@@ -587,18 +583,16 @@ void Create_Notification_Entity_InfoCenter(entity notif,
                                        notif_error = true;
                                }
 
-                               if(durcnt != "")
+                               if (durcnt != "")
                                {
-                                       notif.nent_durcnt = strzone(
-                                               Process_Notif_Args(3, durcnt, typestring, namestring));
+                                       notif.nent_durcnt = strzone(Process_Notif_Args(3, durcnt, typestring, namestring));
 
-                                       if(cpid != NO_MSG_) { notif.nent_cpid = cpid; }
-                                       else
+                                       if (cpid == CPID_Null && durcnt != "0 0")
                                        {
-                                               LOG_INFOF(
+                                               LOG_WARNINGF(
                                                        (
-                                                               "^1NOTIFICATION HAS DURCNT BUT NO CPID: "
-                                                               "^7net_type = %s, net_name = %s.\n"
+                                                               "Notification has durcnt but no cpid: "
+                                                               "net_type = %s, net_name = %s."
                                                        ),
                                                        typestring,
                                                        namestring
@@ -606,7 +600,7 @@ void Create_Notification_Entity_InfoCenter(entity notif,
                                                notif_error = true;
                                        }
                                }
-                               else if(cpid != NO_MSG_) { notif.nent_cpid = cpid; }
+                               notif.nent_cpid = cpid;
                                #endif
 
 
@@ -660,7 +654,7 @@ void Create_Notification_Entity_Multi(entity notif,
                {
                        MSG typeId = MSG_MULTI;
                        // Set MSG_MULTI string/float counts
-                       if((anncename == NO_MSG) && (infoname == NO_MSG) && (centername == NO_MSG))
+                       if (!anncename && !infoname && !centername)
                        {
                                string typestring = Get_Notif_TypeName(typeId);
                                LOG_INFOF(
@@ -676,19 +670,19 @@ void Create_Notification_Entity_Multi(entity notif,
                        else
                        {
                                // announcements don't actually need any arguments, so lets not even count them.
-                               if(anncename != NO_MSG) { notif.nent_msgannce = anncename; }
+                               if (anncename) { notif.nent_msgannce = anncename; }
 
                                float infoname_stringcount = 0, infoname_floatcount = 0;
                                float centername_stringcount = 0, centername_floatcount = 0;
 
-                               if(infoname != NO_MSG)
+                               if (infoname)
                                {
                                        notif.nent_msginfo = infoname;
                                        infoname_stringcount = notif.nent_msginfo.nent_stringcount;
                                        infoname_floatcount = notif.nent_msginfo.nent_floatcount;
                                }
 
-                               if(centername != NO_MSG)
+                               if (centername)
                                {
                                        notif.nent_msgcenter = centername;
                                        centername_stringcount = notif.nent_msgcenter.nent_stringcount;
@@ -712,7 +706,7 @@ void Create_Notification_Entity_Choice(entity notif,
                                                                                Notification optionb)
                {
                        MSG typeId = MSG_CHOICE;
-                       if((chtype == MSG_Null) || (optiona == NO_MSG) || (optionb == NO_MSG))
+                       if (chtype == MSG_Null || !optiona || !optionb)
                        {
                                string typestring = Get_Notif_TypeName(typeId);
                                LOG_INFOF(
@@ -1157,7 +1151,7 @@ void Local_Notification_HUD_Notify_Push(
 
 void Local_Notification_centerprint_generic(
        string input, string durcnt,
-       int cpid, float f1, float f2)
+       CPID cpid, float f1, float f2)
 {
        arg_slot[0] = ""; arg_slot[1] = "";
 
@@ -1200,37 +1194,23 @@ void Local_Notification_centerprint_generic(
                stof(arg_slot[1])
        ));
        #endif
-       centerprint_generic(cpid, input, stof(arg_slot[0]), stof(arg_slot[1]));
+       centerprint_generic(ORDINAL(cpid), input, stof(arg_slot[0]), stof(arg_slot[1]));
 }
 #endif
 
 void Local_Notification(MSG net_type, Notification net_name, ...count)
 {
-       // check if this should be aborted
-       if (net_name == NOTIF_ABORT)
-       {
-               #ifdef NOTIFICATIONS_DEBUG
-               Debug_Notification(sprintf(
-                       "Local_Notification(%s, %s, ...);\n",
-                       Get_Notif_TypeName(net_type),
-                       "NOTIF_ABORT"
-               ));
-               #endif
-               return;
-       }
-
        // retreive entity of this notification
        entity notif = net_name;
        if (!notif)
        {
                #ifdef NOTIFICATIONS_DEBUG
                Debug_Notification(sprintf(
-                       "Local_Notification(%s, %d, ...);\n",
-                       Get_Notif_TypeName(net_type),
-                       net_name
+                       "Local_Notification(%s, NULL, ...);\n",
+                       Get_Notif_TypeName(net_type)
                ));
                #endif
-               backtrace(sprintf("Incorrect usage of Local_Notification: %s\n", "Null notification"));
+               LOG_WARNINGF("Incorrect usage of Local_Notification: %s\n", "Null notification");
                return;
        }
 
@@ -1434,6 +1414,33 @@ NET_HANDLE(ENT_CLIENT_NOTIFICATION, bool is_new)
        make_pure(this);
        MSG net_type = ENUMCAST(MSG, ReadByte());
        int net_name = ReadShort();
+    return = true;
+
+       if (net_type == MSG_CENTER_KILL)
+    {
+        if (!is_new) return;
+        // killing
+        #ifdef NOTIFICATIONS_DEBUG
+        Debug_Notification(sprintf(
+            "Read_Notification(%d) at %f: net_type = %s, cpid = %d\n",
+            is_new,
+            time,
+            Get_Notif_TypeName(net_type),
+            net_name
+        ));
+        #endif
+        int _net_name = net_name;
+        CPID net_name = ENUMCAST(CPID, _net_name);
+        if (net_name == CPID_Null) {
+            // kill all
+            reset_centerprint_messages();
+        } else {
+            // kill group
+            centerprint_generic(ORDINAL(net_name), "", 0, 0);
+        }
+        return;
+    }
+
        Notification notif = Get_Notif_Ent(net_type, net_name);
 
        #ifdef NOTIFICATIONS_DEBUG
@@ -1447,56 +1454,27 @@ NET_HANDLE(ENT_CLIENT_NOTIFICATION, bool is_new)
        ));
        #endif
 
-       if (net_type == MSG_CENTER_CPID)
-       {
-               // killing
-               return = true;
-               if (!is_new) return;
-               if (net_name == NO_CPID) {
-                       backtrace(sprintf(
-                               "Read_Notification(%d) at %f: ^1TRIED TO KILL NO_CPID CENTERPRINT!\n",
-                               is_new,
-                               time
-                       ));
-                       return;
-               }
-               if (net_name == 0) {
-                       // kill all
-                       reset_centerprint_messages();
-                       return;
-               }
-               // kill one
-               centerprint_generic(net_name, "", 0, 0);
-               return;
-       }
-       else
-       {
-               // creating
-               if (!notif) {
-                       backtrace("Read_Notification: Could not find notification entity!\n");
-                       return false;
-               }
-
-               string s1 = ((notif.nent_stringcount > 0) ? ReadString() : "");
-               string s2 = ((notif.nent_stringcount > 1) ? ReadString() : "");
-               string s3 = ((notif.nent_stringcount > 2) ? ReadString() : "");
-               string s4 = ((notif.nent_stringcount > 3) ? ReadString() : "");
-               float f1 = ((notif.nent_floatcount > 0) ? ReadLong() : 0);
-               float f2 = ((notif.nent_floatcount > 1) ? ReadLong() : 0);
-               float f3 = ((notif.nent_floatcount > 2) ? ReadLong() : 0);
-               float f4 = ((notif.nent_floatcount > 3) ? ReadLong() : 0);
-
-               return = true;
-
-               if (!is_new) return;
-               Local_Notification_WOVA(
-                       net_type, notif,
-                       notif.nent_stringcount,
-                       notif.nent_floatcount,
-                       s1, s2, s3, s4,
-                       f1, f2, f3, f4);
-               return;
-       }
+    if (!notif) {
+        backtrace("Read_Notification: Could not find notification entity!\n");
+        return false;
+    }
+
+    string s1 = ((notif.nent_stringcount > 0) ? ReadString() : "");
+    string s2 = ((notif.nent_stringcount > 1) ? ReadString() : "");
+    string s3 = ((notif.nent_stringcount > 2) ? ReadString() : "");
+    string s4 = ((notif.nent_stringcount > 3) ? ReadString() : "");
+    float f1 = ((notif.nent_floatcount > 0) ? ReadLong() : 0);
+    float f2 = ((notif.nent_floatcount > 1) ? ReadLong() : 0);
+    float f3 = ((notif.nent_floatcount > 2) ? ReadLong() : 0);
+    float f4 = ((notif.nent_floatcount > 3) ? ReadLong() : 0);
+
+    if (!is_new) return;
+    Local_Notification_WOVA(
+        net_type, notif,
+        notif.nent_stringcount,
+        notif.nent_floatcount,
+        s1, s2, s3, s4,
+        f1, f2, f3, f4);
 }
 #endif
 
@@ -1530,10 +1508,10 @@ bool Net_Write_Notification(entity this, entity client, int sf)
 
 void Kill_Notification(
        NOTIF broadcast, entity client,
-       /** primary group */
+       /** message group, MSG_Null for all */
        MSG net_type,
-       /** secondary group */
-       float net_name)
+       /** cpid group, CPID_Null for all */
+       CPID net_cpid)
 {
        #ifdef NOTIFICATIONS_DEBUG
        Debug_Notification(sprintf(
@@ -1541,87 +1519,28 @@ void Kill_Notification(
                Get_Notif_BroadcastName(broadcast),
                client.netname,
                (net_type ? Get_Notif_TypeName(net_type) : "0"),
-               net_name
+               net_cpid
        ));
        #endif
 
-       string checkargs = Notification_CheckArgs(broadcast, client, NO_MSG);
-       if (checkargs != "") { backtrace(sprintf("Incorrect usage of Kill_Notification: %s\n", checkargs)); return; }
-
-       entity net_notif;
-       float killed_cpid = NO_CPID;
+       string checkargs = Notification_CheckArgs(broadcast, client);
+       if (checkargs != "") { LOG_WARNINGF("Incorrect usage of Kill_Notification: %s", checkargs); return; }
 
-       switch (net_type)
-       {
-               case MSG_Null:
-               {
-                       killed_cpid = 0; // kill ALL centerprints
-                       break;
-               }
-
-               case MSG_CENTER:
-               {
-                       if(net_name)
-                       {
-                               entity notif = Get_Notif_Ent(net_type, net_name);
-                               if (!notif) { backtrace("Kill_Notification: Could not find notification entity!\n"); return; }
-
-                               if(notif.nent_cpid)
-                                       killed_cpid = notif.nent_cpid;
-                               else
-                                       killed_cpid = NO_CPID;
-                       }
-                       else
-                       {
-                               killed_cpid = 0; // kill ALL centerprints
-                       }
-                       break;
-               }
+       entity net_notif = new_pure(net_kill_notification);
+       net_notif.nent_broadcast = broadcast;
+       net_notif.nent_client = client;
+       net_notif.nent_net_type = MSG_CENTER_KILL;
+       net_notif.nent_net_name = ORDINAL(net_cpid);
+       Net_LinkEntity(net_notif, false, autocvar_notification_lifetime_runtime, Net_Write_Notification);
 
-               case MSG_CENTER_CPID:
+       FOREACH_ENTITY_CLASS(
+               "net_notification",
+               (it.owner.nent_type == net_type || net_type == MSG_Null) && (it.owner.nent_cpid == net_cpid || net_cpid == CPID_Null),
                {
-                       killed_cpid = net_name;
-                       break;
+                       it.nent_net_name = -1;
+                       it.nextthink = time;
                }
-       }
-
-       if (killed_cpid != NO_CPID)
-       {
-               net_notif = new(net_kill_notification);
-               make_pure(net_notif);
-               net_notif.nent_broadcast = broadcast;
-               net_notif.nent_client = client;
-               net_notif.nent_net_type = MSG_CENTER_CPID;
-               net_notif.nent_net_name = killed_cpid;
-               Net_LinkEntity(net_notif, false, autocvar_notification_lifetime_runtime, Net_Write_Notification);
-       }
-
-       FOREACH_ENTITY_CLASS("net_notification", true,
-       {
-               if (net_type)
-               {
-                       if ((killed_cpid != NO_CPID) && (it.nent_net_type == MSG_CENTER))
-                       {
-                               if(it.owner.nent_cpid == killed_cpid)
-                               {
-                                       it.nent_net_name = -1;
-                                       it.nextthink = time;
-                               }
-                               else { continue; } // we ARE looking for a specific CPID, don't kill everything else too
-                       }
-                       else if (it.nent_net_type == net_type)
-                       {
-                               if (net_name)
-                               {
-                                       if (it.nent_net_name == net_name) { it.nent_net_name = -1; it.nextthink = time; }
-                                       else { continue; } // we ARE looking for a certain net_name, don't kill everything else too
-                               }
-                               else { it.nent_net_name = -1; it.nextthink = time; }
-                       }
-                       else { continue; } // we ARE looking for a certain net_type, don't kill everything else too
-               }
-               else { it.nent_net_name = -1; it.nextthink = time; }
-       });
+       );
 }
 
 void Send_Notification(
@@ -1639,8 +1558,6 @@ void Send_Notification(
        #ifdef NOTIFICATIONS_DEBUG
        Debug_Notification(sprintf("Send_Notification(%s, ...%d);\n", parms, count));
        #endif
-       // check if this should be aborted
-       if (net_name == NOTIF_ABORT) return;
 
        if (!notif)
        {
@@ -1649,7 +1566,8 @@ void Send_Notification(
        }
 
        // check supplied broadcast, target, type, and name for errors
-       string checkargs = Notification_CheckArgs(broadcast, client, net_name);
+       string checkargs = Notification_CheckArgs(broadcast, client);
+    if (!net_name) { checkargs = sprintf("No notification provided! %s", checkargs); }
        if (checkargs != "")
        {
                LOG_WARNINGF("Incorrect usage of Send_Notification: %s", checkargs);
index 2987c3494889472f1c62af9407c3a91870190d50..40a72a349ad0f153e64051b6de71ea87593ff6a4 100644 (file)
@@ -19,9 +19,8 @@ ENUMCLASS(MSG)
        CASE(MSG, MULTI)
        /** Choose which subcall wrapper to activate */
        CASE(MSG, CHOICE)
-
-       /** Kill centerprint message */
-       CASE(MSG, CENTER_CPID)
+       /** Kill centerprint message @deprecated */
+       CASE(MSG, CENTER_KILL)
 ENUMCLASS_END(MSG)
 
 string Get_Notif_TypeName(MSG net_type)
@@ -31,25 +30,49 @@ string Get_Notif_TypeName(MSG net_type)
                case MSG_ANNCE: return "MSG_ANNCE";
                case MSG_INFO: return "MSG_INFO";
                case MSG_CENTER: return "MSG_CENTER";
-               case MSG_CENTER_CPID: return "MSG_CENTER_CPID";
                case MSG_MULTI: return "MSG_MULTI";
                case MSG_CHOICE: return "MSG_CHOICE";
        }
-       backtrace(sprintf("Get_Notif_TypeName(%d): Improper net type!\n", net_type));
+       LOG_WARNINGF("Get_Notif_TypeName(%d): Improper net type!\n", ORDINAL(net_type));
        return "";
 }
 
-typedef entity Notification;
+ENUMCLASS(CPID)
+       CASE(CPID, ASSAULT_ROLE)
+       CASE(CPID, ROUND)
+       CASE(CPID, CAMPCHECK)
+       CASE(CPID, CTF_CAPSHIELD)
+       CASE(CPID, CTF_LOWPRIO)
+       CASE(CPID, CTF_PASS)
+       CASE(CPID, STALEMATE)
+       CASE(CPID, NADES)
+       CASE(CPID, IDLING)
+       CASE(CPID, ITEM)
+       CASE(CPID, PREVENT_JOIN)
+       CASE(CPID, KEEPAWAY)
+       CASE(CPID, KEEPAWAY_WARN)
+       CASE(CPID, KEYHUNT)
+       CASE(CPID, KEYHUNT_OTHER)
+       CASE(CPID, LMS)
+       CASE(CPID, MISSING_TEAMS)
+       CASE(CPID, MISSING_PLAYERS)
+       CASE(CPID, INSTAGIB_FINDAMMO)
+       CASE(CPID, MOTD)
+       CASE(CPID, NIX)
+       CASE(CPID, ONSLAUGHT)
+       CASE(CPID, ONS_CAPSHIELD)
+       CASE(CPID, OVERTIME)
+       CASE(CPID, POWERUP)
+       CASE(CPID, RACE_FINISHLAP)
+       CASE(CPID, TEAMCHANGE)
+       CASE(CPID, TIMEOUT)
+       CASE(CPID, VEHICLES)
+       CASE(CPID, VEHICLES_OTHER)
+       /** always last */
+       CASE(CPID, LAST)
+ENUMCLASS_END(CPID)
 
-// negative confirmations
-/** allows various things to know when no information is added */
-Notification NO_MSG;
-STATIC_INIT(NO_MSG) { NO_MSG = new_pure(Notification); }
-/** @deprecated */
-const int NO_MSG_ = -12345;
-/** allows Send_Notification to safely abort sending */
-Notification NOTIF_ABORT;
-STATIC_INIT(NOTIF_ABORT) { NOTIF_ABORT = new_pure(Notification); }
+typedef entity Notification;
 
 // used for notification system multi-team identifiers
 #define APP_TEAM_NUM(num, prefix) ((num == NUM_TEAM_1) ? prefix##_RED : ((num == NUM_TEAM_2) ? prefix##_BLUE : ((num == NUM_TEAM_3) ? prefix##_YELLOW : prefix##_PINK)))
@@ -106,7 +129,7 @@ void Create_Notification_Entity_InfoCenter(entity notif,
                                                                                        string args,
                                                                                        string hudargs,
                                                                                        string icon,
-                                                                                       float cpid,
+                                                                                       CPID cpid,
                                                                                        string durcnt,
                                                                                        string normal,
                                                                                        string gentle);
@@ -235,7 +258,7 @@ string Get_Notif_BroadcastName(NOTIF broadcast)
 
 void Kill_Notification(
        NOTIF broadcast, entity client,
-       MSG net_type, float net_name);
+       MSG net_type, CPID net_name);
 void Send_Notification(
        NOTIF broadcast, entity client,
        MSG net_type, Notification net_name,
@@ -421,7 +444,7 @@ string BUFF_NAME(int i);
 string notif_arg_frag_ping(bool newline, float fping)
 {
        string s = newline ? "\n" : " ";
-       if (fping == NO_MSG_)
+       if (fping < 0)
                return sprintf(CCR(_("%s(^F1Bot^BG)")), s);
        else
                return sprintf(CCR(_("%s(Ping ^F1%d^BG)")), s, fping);
@@ -592,42 +615,6 @@ string notif_arg_spree_inf(float type, string input, string player, float spree)
 //  Initialization/Create Declarations
 // ====================================
 
-enum {
-       NO_CPID
-,   CPID_ASSAULT_ROLE
-,   CPID_ROUND
-,   CPID_CAMPCHECK
-,   CPID_CTF_CAPSHIELD
-,   CPID_CTF_LOWPRIO
-,   CPID_CTF_PASS
-,   CPID_STALEMATE
-,   CPID_NADES
-,   CPID_IDLING
-,   CPID_ITEM
-,   CPID_PREVENT_JOIN
-,   CPID_KEEPAWAY
-,   CPID_KEEPAWAY_WARN
-,   CPID_KEYHUNT
-,   CPID_KEYHUNT_OTHER
-,   CPID_LMS
-,   CPID_MISSING_TEAMS
-,   CPID_MISSING_PLAYERS
-,   CPID_INSTAGIB_FINDAMMO
-,   CPID_MOTD
-,   CPID_NIX
-,   CPID_ONSLAUGHT
-,   CPID_ONS_CAPSHIELD
-,   CPID_OVERTIME
-,   CPID_POWERUP
-,   CPID_RACE_FINISHLAP
-,   CPID_TEAMCHANGE
-,   CPID_TIMEOUT
-,   CPID_VEHICLES
-,   CPID_VEHICLES_OTHER
-// always last
-,   NOTIF_CPID_COUNT
-};
-
 // common notification entity values
 .int nent_default;
 .bool nent_enabled;
@@ -646,7 +633,7 @@ enum {
 .string nent_args; // used by both
 .string nent_hudargs; // used by info
 .string nent_icon; // used by info
-.float nent_cpid; // used by center
+.CPID nent_cpid; // used by center
 .string nent_durcnt; // used by center
 .string nent_string; // used by both
 
@@ -696,7 +683,6 @@ STATIC_INIT_LATE(Notif_Choices) {
 
 Notification Get_Notif_Ent(MSG net_type, int net_name)
 {
-       if (net_type == MSG_CENTER_CPID) return NULL;
        Notification it = _Notifications_from(net_name, NULL);
        if (it.nent_type != net_type) {
                LOG_WARNINGF("Get_Notif_Ent(%s (%d), %s (%d)): Improper net type '%s'!\n",
@@ -732,7 +718,7 @@ Notification Get_Notif_Ent(MSG net_type, int net_name)
                        args,     /* args    */ \
                        hudargs,  /* hudargs */ \
                        icon,     /* icon    */ \
-                       NO_MSG_,  /* cpid    */ \
+                       CPID_Null,/* cpid    */ \
                        "",       /* durcnt  */ \
                        normal,   /* normal  */ \
                        gentle);  /* gentle  */ \
@@ -749,7 +735,7 @@ Notification Get_Notif_Ent(MSG net_type, int net_name)
                        args,     /* args    */ \
                        hudargs,  /* hudargs */ \
                        icon,     /* icon    */ \
-                       NO_MSG_,  /* cpid    */ \
+                       CPID_Null,/* cpid    */ \
                        "",       /* durcnt  */ \
                        normal,   /* normal  */ \
                        gentle);  /* gentle  */ \
index 9072d24dc192760ddb3a9d0f59ff35f39aed12f7..7bafe2bc1e68466619db96e678bd7b989887fd49 100644 (file)
@@ -1489,9 +1489,10 @@ void dedicated_print(string input) // print(), but only print if the server is n
 #endif
 
 #ifndef MENUQC
-Notification Announcer_PickNumber(float type, float num)
+Notification Announcer_PickNumber(int type, int num)
 {
-       switch(type)
+    return = NULL;
+       switch (type)
        {
                case CNT_GAMESTART:
                {
@@ -1596,7 +1597,6 @@ Notification Announcer_PickNumber(float type, float num)
                        break;
                }
        }
-       return NOTIF_ABORT; // abort sending if none of these numbers were right
 }
 #endif
 
index 6224eca65405785188e4e2f3ed6463929a20b7f8..9ee9d1dc49ba719bf5bf93e00040a63459f62917 100644 (file)
@@ -884,8 +884,8 @@ void vehicles_exit(bool eject)
        if(!teamplay)
                _vehicle.team = 0;
 
-       Kill_Notification(NOTIF_ONE, _player, MSG_CENTER_CPID, CPID_VEHICLES);
-       Kill_Notification(NOTIF_ONE, _player, MSG_CENTER_CPID, CPID_VEHICLES_OTHER); // kill all vehicle notifications when exiting a vehicle?
+       Kill_Notification(NOTIF_ONE, _player, MSG_CENTER, CPID_VEHICLES);
+       Kill_Notification(NOTIF_ONE, _player, MSG_CENTER, CPID_VEHICLES_OTHER); // kill all vehicle notifications when exiting a vehicle?
 
        WaypointSprite_Kill(_vehicle.wps_intruder);
 
index 28c66152834f5683c7b1e7394e573f34655a27f7..68b106a5ca490829b8898284cd8b3ba70d9a08df 100644 (file)
 // edict overhead mode, use this for type checking
 
 .int enum_ordinal;
-#define ENUMCLASS(id) CLASS(id, Object) int id##_count; CASE(id, Null)
+#define ENUMCLASS(id) CLASS(id, Object) int id##_count; const noref entity id##_Null = nil; CASE(id, Null__)
 #define CASE(class, id) class class##_##id; STATIC_INIT(class##_##id) { entity e = class##_##id = NEW(class); e.enum_ordinal = class##_count++; }
 #define ENUMCLASS_END(id) ENDCLASS(id)
 #define ORDINAL(it) ((it).enum_ordinal)
-#define ENUMCAST(T, it) ftoe(etof(T##_Null) + (it))
+#define ENUMCAST(T, it) ftoe(etof(T##_Null__) + (it))
 
 #endif
index 22acf030d4bca47be9d08150afe462dafa28cd84..0c629560fa0b323b6394bc8fcaae30ba438c2c8f 100644 (file)
@@ -1824,7 +1824,7 @@ void LeaveSpectatorMode()
                        if(autocvar_g_campaign)
                                { campaign_bots_may_start = 1; }
 
-                       Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER_CPID, CPID_PREVENT_JOIN);
+                       Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER, CPID_PREVENT_JOIN);
 
                        PutClientInServer();
 
@@ -1921,14 +1921,14 @@ void PrintWelcomeMessage()
                                self.motd_actived_time = time;
                        else if ((time - self.motd_actived_time > 2) && IS_PLAYER(self)) { // hide it some seconds after BUTTON_INFO has been released
                                self.motd_actived_time = 0;
-                               Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER_CPID, CPID_MOTD);
+                               Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER, CPID_MOTD);
                        }
                } else {
                        if (self.BUTTON_INFO)
                                self.motd_actived_time = time;
                        else if (time - self.motd_actived_time > 2) { // hide it some seconds after BUTTON_INFO has been released
                                self.motd_actived_time = 0;
-                               Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER_CPID, CPID_MOTD);
+                               Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER, CPID_MOTD);
                        }
                }
        }
@@ -1940,7 +1940,7 @@ void PrintWelcomeMessage()
                {
                        // instanctly hide MOTD
                        self.motd_actived_time = 0;
-                       Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER_CPID, CPID_MOTD);
+                       Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER, CPID_MOTD);
                }
        }
 }
@@ -2505,7 +2505,7 @@ void PlayerPostThink ()
                        if(self.idlekick_lasttimeleft)
                        {
                                self.idlekick_lasttimeleft = 0;
-                               Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER_CPID, CPID_IDLING);
+                               Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER, CPID_IDLING);
                        }
                }
                else
index a7610003881ceb543b81b86269ede82a948ff9aa..95f0556b31a2f37798d2f91e97526648f2eb4e66 100644 (file)
@@ -179,7 +179,7 @@ void ClientCommand_join(float request)
                                                if (autocvar_g_campaign)   campaign_bots_may_start = 1;
                                                self.classname = STR_PLAYER;
                                                PlayerScore_Clear(self);
-                                               Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER_CPID, CPID_PREVENT_JOIN);
+                                               Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER, CPID_PREVENT_JOIN);
                                                Send_Notification(NOTIF_ALL, world, MSG_INFO, ((teamplay && self.team != -1) ? APP_TEAM_ENT(this, INFO_JOIN_PLAY_TEAM) : INFO_JOIN_PLAY), self.netname);
                                                PutClientInServer();
                                        }
index a765503192354ffd4a6793031c85eb57c9c2c4fc..8a274a9a2e4d10c1bd4931e17cef567ebc42939b 100644 (file)
@@ -396,7 +396,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype)
                                        CHOICE_TYPEFRAG,
                                        targ.netname,
                                        kill_count_to_attacker,
-                                       (IS_BOT_CLIENT(targ) ? NO_MSG_ : targ.ping)
+                                       (IS_BOT_CLIENT(targ) ? -1 : targ.ping)
                                );
                                Send_Notification(
                                        NOTIF_ONE,
@@ -407,7 +407,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype)
                                        kill_count_to_target,
                                        attacker.health,
                                        attacker.armorvalue,
-                                       (IS_BOT_CLIENT(attacker) ? NO_MSG_ : attacker.ping)
+                                       (IS_BOT_CLIENT(attacker) ? -1 : attacker.ping)
                                );
                        }
                        else
@@ -419,7 +419,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype)
                                        CHOICE_FRAG,
                                        targ.netname,
                                        kill_count_to_attacker,
-                                       (IS_BOT_CLIENT(targ) ? NO_MSG_ : targ.ping)
+                                       (IS_BOT_CLIENT(targ) ? -1 : targ.ping)
                                );
                                Send_Notification(
                                        NOTIF_ONE,
@@ -430,7 +430,7 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype)
                                        kill_count_to_target,
                                        attacker.health,
                                        attacker.armorvalue,
-                                       (IS_BOT_CLIENT(attacker) ? NO_MSG_ : attacker.ping)
+                                       (IS_BOT_CLIENT(attacker) ? -1 : attacker.ping)
                                );
                        }
 
index 5fc7b9f99042cc71b31e82f02c84c5c7a7b80fb8..c1f0e48acd216abd4b91af6f4689ad23ae9fb567 100644 (file)
@@ -1524,7 +1524,7 @@ void NextLevel()
        PlayerStats_GameReport(true);
        WeaponStats_Shutdown();
 
-       Kill_Notification(NOTIF_ALL, world, MSG_CENTER, 0); // kill all centerprints now
+       Kill_Notification(NOTIF_ALL, world, MSG_CENTER, CPID_Null); // kill all centerprints now
 
        if(autocvar_sv_eventlog)
                GameLogEcho(":gameover");
index 0985b9c81e97a1fb0122d53d8ea32a2aa3fc1700..5e74d18bbc4f9d25882b9b311439f76ebf4aabe2 100644 (file)
@@ -154,14 +154,14 @@ bool CA_CheckTeams()
        if(CA_ALIVE_TEAMS_OK())
        {
                if(prev_missing_teams_mask > 0)
-                       Kill_Notification(NOTIF_ALL, world, MSG_CENTER_CPID, CPID_MISSING_TEAMS);
+                       Kill_Notification(NOTIF_ALL, world, MSG_CENTER, CPID_MISSING_TEAMS);
                prev_missing_teams_mask = -1;
                return true;
        }
        if(total_players == 0)
        {
                if(prev_missing_teams_mask > 0)
-                       Kill_Notification(NOTIF_ALL, world, MSG_CENTER_CPID, CPID_MISSING_TEAMS);
+                       Kill_Notification(NOTIF_ALL, world, MSG_CENTER, CPID_MISSING_TEAMS);
                prev_missing_teams_mask = -1;
                return false;
        }
index 233f678248ce0b55c6f62cb2e1fdb89ebbc4f719..236ec2dd86bfe2b53fcfb5d339386e093dab9870 100644 (file)
@@ -98,14 +98,14 @@ float freezetag_CheckTeams()
        if(FREEZETAG_ALIVE_TEAMS_OK())
        {
                if(prev_missing_teams_mask > 0)
-                       Kill_Notification(NOTIF_ALL, world, MSG_CENTER_CPID, CPID_MISSING_TEAMS);
+                       Kill_Notification(NOTIF_ALL, world, MSG_CENTER, CPID_MISSING_TEAMS);
                prev_missing_teams_mask = -1;
                return 1;
        }
        if(total_players == 0)
        {
                if(prev_missing_teams_mask > 0)
-                       Kill_Notification(NOTIF_ALL, world, MSG_CENTER_CPID, CPID_MISSING_TEAMS);
+                       Kill_Notification(NOTIF_ALL, world, MSG_CENTER, CPID_MISSING_TEAMS);
                prev_missing_teams_mask = -1;
                return 0;
        }
index dc34e08eca145a14dd1817996ab0b132889f60fc..de67505bbaf819291fb3197dc3f68f583e2fd10b 100644 (file)
@@ -943,7 +943,7 @@ void kh_WaitForPlayers()  // delay start of the round until enough players are p
        if(KH_READY_TEAMS_OK())
        {
                if(prev_missing_teams_mask > 0)
-                       Kill_Notification(NOTIF_ALL, world, MSG_CENTER_CPID, CPID_MISSING_TEAMS);
+                       Kill_Notification(NOTIF_ALL, world, MSG_CENTER, CPID_MISSING_TEAMS);
                prev_missing_teams_mask = -1;
                Send_Notification(NOTIF_ALL, world, MSG_CENTER, CENTER_KEYHUNT_ROUNDSTART, autocvar_g_balance_keyhunt_delay_round);
                kh_Controller_SetThink(autocvar_g_balance_keyhunt_delay_round, kh_StartRound);
@@ -953,7 +953,7 @@ void kh_WaitForPlayers()  // delay start of the round until enough players are p
                if(player_count == 0)
                {
                        if(prev_missing_teams_mask > 0)
-                               Kill_Notification(NOTIF_ALL, world, MSG_CENTER_CPID, CPID_MISSING_TEAMS);
+                               Kill_Notification(NOTIF_ALL, world, MSG_CENTER, CPID_MISSING_TEAMS);
                        prev_missing_teams_mask = -1;
                }
                else
@@ -973,8 +973,8 @@ void kh_WaitForPlayers()  // delay start of the round until enough players are p
 
 void kh_EnableTrackingDevice()  // runs after each round
 {
-       Kill_Notification(NOTIF_ALL, world, MSG_CENTER_CPID, CPID_KEYHUNT);
-       Kill_Notification(NOTIF_ALL, world, MSG_CENTER_CPID, CPID_KEYHUNT_OTHER);
+       Kill_Notification(NOTIF_ALL, world, MSG_CENTER, CPID_KEYHUNT);
+       Kill_Notification(NOTIF_ALL, world, MSG_CENTER, CPID_KEYHUNT_OTHER);
 
        kh_tracking_enabled = true;
 }
@@ -996,8 +996,8 @@ void kh_StartRound()  // runs at the start of each round
                return;
        }
 
-       Kill_Notification(NOTIF_ALL, world, MSG_CENTER_CPID, CPID_KEYHUNT);
-       Kill_Notification(NOTIF_ALL, world, MSG_CENTER_CPID, CPID_KEYHUNT_OTHER);
+       Kill_Notification(NOTIF_ALL, world, MSG_CENTER, CPID_KEYHUNT);
+       Kill_Notification(NOTIF_ALL, world, MSG_CENTER, CPID_KEYHUNT_OTHER);
 
        for(i = 0; i < kh_teams; ++i)
        {