From 9d47afb304451c939a375a0c979c2e6f28cfe6d3 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 4 Apr 2009 09:28:10 +0000 Subject: [PATCH] - added 'damage' to the actor variables exported to DECORATE's expression evaluator. - fixed: solid corpses could block ripper missile that originally killed them. SVN r1520 (trunk) --- docs/rh-log.txt | 7 ++++++- src/d_main.h | 1 + src/g_shared/a_artifacts.cpp | 2 ++ src/p_map.cpp | 5 +++++ src/thingdef/thingdef_expression.cpp | 1 + wadsrc/static/actors/actor.txt | 1 + 6 files changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/rh-log.txt b/docs/rh-log.txt index 382105171..0b7663c0e 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,9 @@ -April 2, 2009 +April 4, 2009 (Changes by Graf Zahl) +- added 'damage' to the actor variables exported to DECORATE's expression + evaluator. +- fixed: solid corpses could block ripper missile that originally killed them. + +April 2, 2009 - Fixed: Doom's status bar was lacking its default face. - Fixed: Custom skin face graphics were not added to the texture manager. - Fixed: UseHealthItems() gave you health equal to the number of items in diff --git a/src/d_main.h b/src/d_main.h index 6255c4a87..56cc1ef1a 100644 --- a/src/d_main.h +++ b/src/d_main.h @@ -105,5 +105,6 @@ struct IWADInfo }; extern const IWADInfo IWADInfos[NUM_IWAD_TYPES]; +extern EIWADType gameiwad; #endif diff --git a/src/g_shared/a_artifacts.cpp b/src/g_shared/a_artifacts.cpp index 37eadb53e..1529206cc 100644 --- a/src/g_shared/a_artifacts.cpp +++ b/src/g_shared/a_artifacts.cpp @@ -46,6 +46,8 @@ IMPLEMENT_CLASS (APowerup) bool APowerupGiver::Use (bool pickup) { + if (PowerupType == NULL) return true; // item is useless + APowerup *power = static_cast (Spawn (PowerupType, 0, 0, 0, NO_REPLACE)); if (EffectTics != 0) diff --git a/src/p_map.cpp b/src/p_map.cpp index 09a8336ae..bed899622 100644 --- a/src/p_map.cpp +++ b/src/p_map.cpp @@ -834,6 +834,11 @@ bool PIT_CheckThing (AActor *thing, FCheckPosition &tm) { return true; } + // Check for rippers passing through corpses + if ((thing->flags & MF_CORPSE) && (tm.thing->flags2 & MF2_RIP) && !(thing->flags & MF_SHOOTABLE)) + { + return true; + } int clipheight; diff --git a/src/thingdef/thingdef_expression.cpp b/src/thingdef/thingdef_expression.cpp index 116b58544..e1e8a60e1 100644 --- a/src/thingdef/thingdef_expression.cpp +++ b/src/thingdef/thingdef_expression.cpp @@ -72,6 +72,7 @@ DEFINE_MEMBER_VARIABLE(z, AActor) DEFINE_MEMBER_VARIABLE(momx, AActor) DEFINE_MEMBER_VARIABLE(momy, AActor) DEFINE_MEMBER_VARIABLE(momz, AActor) +DEFINE_MEMBER_VARIABLE(Damage, AActor) //========================================================================== // diff --git a/wadsrc/static/actors/actor.txt b/wadsrc/static/actors/actor.txt index 4fcae343c..7dfac00d5 100644 --- a/wadsrc/static/actors/actor.txt +++ b/wadsrc/static/actors/actor.txt @@ -33,6 +33,7 @@ ACTOR Actor native //: Thinker native int tid; native int TIDtoHate; native int waterlevel; + native int damage; native fixed_t x; native fixed_t y; native fixed_t z;