]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/deathtypes.qh
Blub- Error on line 1350, but file is only 1203 lines long?
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / deathtypes.qh
index dc243b35db16767378906c6b70eaaba2962bc8fa..2549858d24d70d3872bbf3a3a6dace3f2109c410 100644 (file)
@@ -6,7 +6,7 @@ float DT_COUNT;
 
 #define DT_MATCH(a,b) if(min(DT_MAX, a) == b)
 
-#define DEATHTYPE(name,msg_info,msg_center,position) \
+#define DEATHTYPE(name,msg_death,msg_death_by,position) \
        float name; \
        float position; \
        void RegisterDeathtype_##name() \
@@ -18,59 +18,56 @@ float DT_COUNT;
        ACCUMULATE_FUNCTION(RegisterDeathtypes, RegisterDeathtype_##name)
 
 #define DEATHTYPES \
-       DEATHTYPE(DEATH_FALL, FALSE, FALSE, DEATH_SPECIAL_START) \
-       DEATHTYPE(DEATH_TELEFRAG, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_DROWN, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_HURTTRIGGER, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_LAVA, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_SLIME, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_KILL, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_NOAMMO, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_SWAMP, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TEAMCHANGE, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_AUTOTEAMCHANGE, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_CAMP, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_SHOOTING_STAR, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_ROT, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_MIRRORDAMAGE, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TOUCHEXPLODE, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_CHEAT, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_FIRE, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_QUIET, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_VHCRUSH, FALSE, FALSE, DEATH_VHFIRST) \
-       DEATHTYPE(DEATH_SBMINIGUN, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_SBROCKET, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_SBBLOWUP, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_WAKIGUN, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_WAKIROCKET, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_WAKIBLOWUP, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_RAPTOR_CANNON, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_RAPTOR_BOMB, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_RAPTOR_BOMB_SPLIT, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_RAPTOR_DEATH, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_BUMB_GUN, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_BUMB_RAY, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_BUMB_RAY_HEAL, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_BUMB_DEATH, FALSE, FALSE, DEATH_VHLAST) \
-       DEATHTYPE(DEATH_TURRET, FALSE, FALSE, DEATH_TURRET_FIRST) \
-       DEATHTYPE(DEATH_TURRET_EWHEEL, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TURRET_FLAC, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TURRET_MACHINEGUN, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TURRET_WALKER_GUN, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TURRET_WALKER_MEELE, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TURRET_WALKER_ROCKET, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TURRET_HELLION, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TURRET_HK, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TURRET_MLRS, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TURRET_PLASMA, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TURRET_PHASER, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_TURRET_TESLA, FALSE, FALSE, DEATH_TURRET_LAST) \
-       DEATHTYPE(DEATH_GENERIC, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_WEAPON, FALSE, FALSE, NORMAL_POS) \
-       DEATHTYPE(DEATH_CUSTOM, FALSE, FALSE, NORMAL_POS) \
-       #undef DEATHTYPE
+       DEATHTYPE(DEATH_FALL,                                   DEATH_SELF_FALL,                                        DEATH_MURDER_FALL,                              DEATH_SPECIAL_START) \
+       DEATHTYPE(DEATH_TELEFRAG,                               NO_MSG,                                                         DEATH_MURDER_TELEFRAG,                  NORMAL_POS) \
+       DEATHTYPE(DEATH_DROWN,                                  DEATH_SELF_DROWN,                                       DEATH_MURDER_DROWN,                     NORMAL_POS) \
+       DEATHTYPE(DEATH_HURTTRIGGER,                    DEATH_SELF_VOID,                                        DEATH_MURDER_VOID,                              NORMAL_POS) \
+       DEATHTYPE(DEATH_LAVA,                                   DEATH_SELF_LAVA,                                        DEATH_MURDER_LAVA,                              NORMAL_POS) \
+       DEATHTYPE(DEATH_SLIME,                                  DEATH_SELF_SLIME,                                       DEATH_MURDER_SLIME,                             NORMAL_POS) \
+       DEATHTYPE(DEATH_KILL,                                   DEATH_SELF_SUICIDE,                             NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_NOAMMO,                                 DEATH_SELF_NOAMMO,                                      NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_SWAMP,                                  DEATH_SELF_SWAMP,                                       DEATH_MURDER_SWAMP,                     NORMAL_POS) \
+       DEATHTYPE(DEATH_TEAMCHANGE,                     DEATH_SELF_TEAMCHANGE,                          NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_AUTOTEAMCHANGE,                 DEATH_SELF_AUTOTEAMCHANGE,                      NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_CAMP,                                   DEATH_SELF_CAMP,                                        NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_SHOOTING_STAR,                  DEATH_SELF_SHOOTING_STAR,                       DEATH_MURDER_SHOOTING_STAR,     NORMAL_POS) \
+       DEATHTYPE(DEATH_ROT,                                    DEATH_SELF_ROT,                                         NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_MIRRORDAMAGE,                   DEATH_SELF_BETRAYAL,                            NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_TOUCHEXPLODE,                   DEATH_SELF_TOUCHEXPLODE,                        DEATH_MURDER_TOUCHEXPLODE,              NORMAL_POS) \
+       DEATHTYPE(DEATH_CHEAT,                                  DEATH_SELF_CHEAT,                                       DEATH_MURDER_CHEAT,                     NORMAL_POS) \
+       DEATHTYPE(DEATH_FIRE,                                   DEATH_SELF_FIRE,                                        DEATH_MURDER_FIRE,                              NORMAL_POS) \
+       DEATHTYPE(DEATH_VH_CRUSH,                               DEATH_SELF_VH_CRUSH,                            DEATH_MURDER_VH_CRUSH,                  DEATH_VHFIRST) \
+       DEATHTYPE(DEATH_VH_SPID_MINIGUN,                NO_MSG,                                                         DEATH_MURDER_VH_SPID_MINIGUN,   NORMAL_POS) \
+       DEATHTYPE(DEATH_VH_SPID_ROCKET,                 DEATH_SELF_VH_SPID_ROCKET,                      DEATH_MURDER_VH_SPID_ROCKET,    NORMAL_POS) \
+       DEATHTYPE(DEATH_VH_SPID_DEATH,                  DEATH_SELF_VH_SPID_DEATH,                       DEATH_MURDER_VH_SPID_DEATH,             NORMAL_POS) \
+       DEATHTYPE(DEATH_VH_WAKI_GUN,                    NO_MSG,                                                         DEATH_MURDER_VH_WAKI_GUN,               NORMAL_POS) \
+       DEATHTYPE(DEATH_VH_WAKI_ROCKET,                 DEATH_SELF_VH_WAKI_ROCKET,                      DEATH_MURDER_VH_WAKI_ROCKET,    NORMAL_POS) \
+       DEATHTYPE(DEATH_VH_WAKI_DEATH,                  DEATH_SELF_VH_WAKI_DEATH,                       DEATH_MURDER_VH_WAKI_DEATH,             NORMAL_POS) \
+       DEATHTYPE(DEATH_VH_RAPT_CANNON,                 NO_MSG,                                                         DEATH_MURDER_VH_RAPT_CANNON,    NORMAL_POS) \
+       DEATHTYPE(DEATH_VH_RAPT_BOMB,                   DEATH_SELF_VH_RAPT_BOMB,                        DEATH_MURDER_VH_RAPT_BOMB,              NORMAL_POS) \
+       DEATHTYPE(DEATH_VH_RAPT_FRAGMENT,               DEATH_SELF_VH_RAPT_BOMB,                        DEATH_MURDER_VH_RAPT_BOMB,              NORMAL_POS) \
+       DEATHTYPE(DEATH_VH_RAPT_DEATH,                  DEATH_SELF_VH_RAPT_DEATH,                       DEATH_MURDER_VH_RAPT_DEATH,             NORMAL_POS) \
+       DEATHTYPE(DEATH_VH_BUMB_GUN,                    NO_MSG,                                                         DEATH_MURDER_VH_BUMB_GUN,               NORMAL_POS) \
+       DEATHTYPE(DEATH_VH_BUMB_DEATH,                  DEATH_SELF_VH_BUMB_DEATH,                       DEATH_MURDER_VH_BUMB_DEATH,             DEATH_VHLAST) \
+       DEATHTYPE(DEATH_TURRET,                                 DEATH_SELF_TURRET,                                      NO_MSG,                                                 DEATH_TURRET_FIRST) \
+       DEATHTYPE(DEATH_TURRET_EWHEEL,                  DEATH_SELF_TURRET_EWHEEL,                       NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_TURRET_FLAC,                    DEATH_SELF_TURRET_FLAC,                         NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_TURRET_MACHINEGUN,              DEATH_SELF_TURRET_MACHINEGUN,           NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_TURRET_WALK_GUN,                DEATH_SELF_TURRET_WALK_GUN,                     NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_TURRET_WALK_MEELE,              DEATH_SELF_TURRET_WALK_MEELE,           NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_TURRET_WALK_ROCKET,             DEATH_SELF_TURRET_WALK_ROCKET,          NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_TURRET_HELLION,                 DEATH_SELF_TURRET_HELLION,                      NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_TURRET_HK,                              DEATH_SELF_TURRET_HK,                           NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_TURRET_MLRS,                    DEATH_SELF_TURRET_MLRS,                         NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_TURRET_PLASMA,                  DEATH_SELF_TURRET_PLASMA,                       NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_TURRET_PHASER,                  DEATH_SELF_TURRET_PHASER,                       NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_TURRET_TESLA,                   DEATH_SELF_TURRET_TESLA,                        NO_MSG,                                                 DEATH_TURRET_LAST) \
+       DEATHTYPE(DEATH_GENERIC,                                DEATH_SELF_GENERIC,                             NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_WEAPON,                                 NO_MSG,                                                         NO_MSG,                                                 NORMAL_POS) \
+       DEATHTYPE(DEATH_CUSTOM,                                 DEATH_SELF_CUSTOM,                                      NO_MSG,                                                 NORMAL_POS)
 
 DEATHTYPES
+#undef DEATHTYPE
 
 #define DEATH_ISSPECIAL(t)                             ((t) >= DEATH_SPECIAL_START)
 #define DEATH_ISVEHICLE(t)                             ((t) >= DEATH_VHFIRST && (t) <= DEATH_VHLAST)
@@ -80,94 +77,23 @@ DEATHTYPES
 #define DEATH_WEAPONOF(t)                              (DEATH_ISSPECIAL(t) ? 0 : DEATH_WEAPONOFWEAPONDEATH(t))
 #define WEP_VALID(w)                                   ((w) >= WEP_FIRST && (w) <= WEP_LAST)
 
+string Deathtype_Name(float deathtype)
+{
+       if(DEATH_ISSPECIAL(deathtype))
+       {
+               #define DEATHTYPE(name,msg_death,msg_death_by,position) \
+                       { if(deathtype == max(0, name)) return VAR_TO_TEXT(name); }
+
+               DEATHTYPES
+               #undef DEATHTYPE
+       }
+       return "foobar";
+}
+
 float DEATH_WEAPONMASK = 0xFF;
 float DEATH_HITTYPEMASK = 0x1F00; // which is WAY below 10000 used for normal deaths
 float HITTYPE_SECONDARY = 0x100;
 float HITTYPE_SPLASH = 0x200; // automatically set by RadiusDamage
 float HITTYPE_BOUNCE = 0x400;
-float HITTYPE_HEADSHOT = 0x800; // automatically set by Damage (if headshotbonus is set)
+float HITTYPE_RESERVED2 = 0x800;
 float HITTYPE_RESERVED = 0x1000; // unused yet
-
-// macros to access these
-
-// CSQC centerprint/notify message types
-float MSG_SUICIDE = 0;
-float MSG_KILL = 1;
-float MSG_SPREE = 2;
-float MSG_KILL_ACTION = 3;
-float MSG_KILL_ACTION_SPREE = 4;
-float MSG_INFO = 5;
-float MSG_KA = 6;
-float MSG_RACE = 10;
-
-float KILL_TEAM_RED = 12001;
-float KILL_TEAM_BLUE = 12002;
-float KILL_TEAM_SPREE = 12003;
-float KILL_FIRST_BLOOD = 12004;
-float KILL_FIRST_VICTIM = 12005;
-float KILL_TYPEFRAG = 12006;
-float KILL_TYPEFRAGGED = 12007;
-float KILL_FRAG = 12008;
-float KILL_FRAGGED = 12009;
-float KILL_SPREE = 12010;
-float KILL_END_SPREE = 12011;
-float KILL_SPREE_3 = 12012;
-float KILL_SPREE_5 = 12013;
-float KILL_SPREE_10 = 12014;
-float KILL_SPREE_15 = 12015;
-float KILL_SPREE_20 = 12016;
-float KILL_SPREE_25 = 12017;
-float KILL_SPREE_30 = 12018;
-
-
-
-// this shit has got to go
-float INFO_GOTFLAG = 13001;
-float INFO_PICKUPFLAG = 13002;
-float INFO_LOSTFLAG = 13003;
-float INFO_RETURNFLAG = 13004;
-float INFO_CAPTUREFLAG = 13005;
-
-float KA_PICKUPBALL = 14001;
-float KA_DROPBALL = 14002;
-
-float RACE_SERVER_RECORD = 15001;
-float RACE_NEW_TIME = 15002;
-float RACE_NEW_RANK = 15003;
-float RACE_FAIL = 15004;
-
-       /*print("Obituary_Notification(): ", ftos(deathtype), ".\n");
-       switch(deathtype)
-       {
-               // suicide
-               case DEATH_AUTOTEAMCHANGE:
-               case DEATH_CAMP:
-               case DEATH_NOAMMO:
-               case DEATH_ROT:
-               case DEATH_TEAMCHANGE:
-               
-               case KILL_TEAM_SUICIDE_RED:
-               case KILL_TEAM_SUICIDE_BLUE:
-
-               // murder
-               case KILL_TEAM_FRAG_RED:
-               case KILL_TEAM_FRAG_BLUE:
-
-               case KILL_FIRST_BLOOD:
-               case KILL_FIRST_VICTIM:
-               
-               case KILL_FRAG:
-               case KILL_TYPEFRAG:
-               case KILL_FRAGGED:
-               case KILL_TYPEFRAGGED:
-
-               // accident
-               case WATCH_STEP: 
-               
-               case DEATH_QUIET: break;
-
-               // ideally we should have ALL deathtypes listed here
-               default:
-                       backtrace(strcat("Unhandled deathtype: ", ftos(deathtype), ". Please notify Samual!\n"));
-                       break;
-       }*/