X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fdeathtypes.qh;h=1265e7eea05736d3ac2270e1e0b3a33af5e141c5;hb=d05395300e644d5519469ea8febdf4b9afae61eb;hp=ca13f15a063e2fc674465312ebe1b600a1e88bd3;hpb=30125332eda7a5e10bd535c63c3f689729155810;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/deathtypes.qh b/qcsrc/common/deathtypes.qh index ca13f15a0..1265e7eea 100644 --- a/qcsrc/common/deathtypes.qh +++ b/qcsrc/common/deathtypes.qh @@ -15,6 +15,15 @@ DEATHTYPE(DEATH_KILL, DEATH_SELF_SUICIDE, NO_MSG, NORMAL_POS) \ DEATHTYPE(DEATH_LAVA, DEATH_SELF_LAVA, DEATH_MURDER_LAVA, NORMAL_POS) \ DEATHTYPE(DEATH_MIRRORDAMAGE, DEATH_SELF_BETRAYAL, NO_MSG, NORMAL_POS) \ + DEATHTYPE(DEATH_MONSTER_MAGE, DEATH_SELF_MON_MAGE, DEATH_MURDER_MONSTER, DEATH_MONSTER_FIRST) \ + DEATHTYPE(DEATH_MONSTER_SHAMBLER_CLAW, DEATH_SELF_MON_SHAMBLER_CLAW, DEATH_MURDER_MONSTER, NORMAL_POS) \ + DEATHTYPE(DEATH_MONSTER_SHAMBLER_SMASH, DEATH_SELF_MON_SHAMBLER_SMASH, DEATH_MURDER_MONSTER, NORMAL_POS) \ + DEATHTYPE(DEATH_MONSTER_SHAMBLER_ZAP, DEATH_SELF_MON_SHAMBLER_ZAP, DEATH_MURDER_MONSTER, NORMAL_POS) \ + DEATHTYPE(DEATH_MONSTER_SPIDER, DEATH_SELF_MON_SPIDER, DEATH_MURDER_MONSTER, NORMAL_POS) \ + DEATHTYPE(DEATH_MONSTER_WYVERN, DEATH_SELF_MON_WYVERN, DEATH_MURDER_MONSTER, NORMAL_POS) \ + DEATHTYPE(DEATH_MONSTER_ZOMBIE_JUMP, DEATH_SELF_MON_ZOMBIE_JUMP, DEATH_MURDER_MONSTER, NORMAL_POS) \ + DEATHTYPE(DEATH_MONSTER_ZOMBIE_MELEE, DEATH_SELF_MON_ZOMBIE_MELEE, DEATH_MURDER_MONSTER, DEATH_MONSTER_LAST) \ + DEATHTYPE(DEATH_NADE, DEATH_SELF_NADE, DEATH_MURDER_NADE, NORMAL_POS) \ DEATHTYPE(DEATH_NOAMMO, DEATH_SELF_NOAMMO, NO_MSG, NORMAL_POS) \ DEATHTYPE(DEATH_ROT, DEATH_SELF_ROT, NO_MSG, NORMAL_POS) \ DEATHTYPE(DEATH_SHOOTING_STAR, DEATH_SELF_SHOOTING_STAR, DEATH_MURDER_SHOOTING_STAR, NORMAL_POS) \ @@ -69,17 +78,15 @@ entity deathtypes[DT_MAX]; CHECK_MAX_COUNT(name, DT_MAX, DT_COUNT, "deathtypes") \ \ entity deathent = spawn(); \ - deathtypes[(name - DT_FIRST) - 1] = deathent; \ + deathtypes[(name - DT_FIRST)] = deathent; \ deathent.classname = "deathtype"; \ deathent.nent_name = #name; \ - #if (msg_death != NO_MSG) \ + if (msg_death != NO_MSG) \ deathent.death_msgself = msg_multi_notifs[msg_death - 1]; \ - #endif \ - #if (msg_death_by != NO_MSG) \ + if (msg_death_by != NO_MSG) \ deathent.death_msgmurder = msg_multi_notifs[msg_death_by - 1]; \ - #endif \ } \ - ACCUMULATE_FUNCTION(RegisterDeathtypes, RegisterDeathtype_##name) + ACCUMULATE_FUNCTION(RegisterDeathtypes, RegisterDeathtype_##name); DEATHTYPES #undef DEATHTYPE @@ -87,6 +94,7 @@ DEATHTYPES #define DEATH_ISSPECIAL(t) ((t) >= DEATH_SPECIAL_START) #define DEATH_ISVEHICLE(t) ((t) >= DEATH_VHFIRST && (t) <= DEATH_VHLAST) #define DEATH_ISTURRET(t) ((t) >= DEATH_TURRET_FIRST && (t) <= DEATH_TURRET_LAST) +#define DEATH_ISMONSTER(t) ((t) >= DEATH_MONSTER_FIRST && (t) <= DEATH_MONSTER_LAST) #define DEATH_WEAPONOFWEAPONDEATH(t) ((t) & DEATH_WEAPONMASK) #define DEATH_ISWEAPON(t,w) (!DEATH_ISSPECIAL(t) && DEATH_WEAPONOFWEAPONDEATH(t) == (w)) #define DEATH_WEAPONOF(t) (DEATH_ISSPECIAL(t) ? 0 : DEATH_WEAPONOFWEAPONDEATH(t)) @@ -96,17 +104,17 @@ string Deathtype_Name(float deathtype) { if(DEATH_ISSPECIAL(deathtype)) { - entity deathent = deathtypes[(deathtype - DT_FIRST) - 1]; - if not(deathent) { backtrace("Deathtype_Name: Could not find deathtype entity!\n"); return ""; } + entity deathent = deathtypes[(deathtype - DT_FIRST)]; + if (!deathent) { backtrace("Deathtype_Name: Could not find deathtype entity!\n"); return ""; } return deathent.nent_name; } else { return ftos(deathtype); } } -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_RESERVED2 = 0x800; -float HITTYPE_RESERVED = 0x1000; // unused yet +const float DEATH_WEAPONMASK = 0xFF; +const float DEATH_HITTYPEMASK = 0x1F00; // which is WAY below 10000 used for normal deaths +const float HITTYPE_SECONDARY = 0x100; +const float HITTYPE_SPLASH = 0x200; // automatically set by RadiusDamage +const float HITTYPE_BOUNCE = 0x400; +const float HITTYPE_RESERVED2 = 0x800; +const float HITTYPE_RESERVED = 0x1000; // unused yet