diff --git a/code/fgame/scriptslave.cpp b/code/fgame/scriptslave.cpp index 51b3688f..bd8f35e2 100644 --- a/code/fgame/scriptslave.cpp +++ b/code/fgame/scriptslave.cpp @@ -1,6 +1,6 @@ /* =========================================================================== -Copyright (C) 2015 the OpenMoHAA team +Copyright (C) 2023 the OpenMoHAA team This file is part of OpenMoHAA source code. @@ -1979,6 +1979,27 @@ void ScriptModel::GibEvent(Event *ev) PostEvent(EV_Remove, 0); } +/*****************************************************************************/ +/*QUAKED script_model_realdamage (0 0.5 1) (0 0 0) (0 0 0) NOT_SOLID ALWAYS_DRAW + +******************************************************************************/ +/*****************************************************************************/ + +CLASS_DECLARATION(ScriptModel, ScriptModelRealDamage, "script_model_realdamage") { + {&EV_Damage, &ScriptModelRealDamage::EventDamage}, + {NULL, NULL } +}; + +ScriptModelRealDamage::ScriptModelRealDamage() +{ + RemoveWaitTill(STRING_DAMAGE); +} + +void ScriptModelRealDamage::EventDamage(Event *ev) +{ + Entity::DamageEvent(ev); +} + /*****************************************************************************/ /*QUAKED script_origin (1.0 0 0) (-8 -8 -8) (8 8 8) diff --git a/code/fgame/scriptslave.h b/code/fgame/scriptslave.h index 3bda2aff..edf1c34e 100644 --- a/code/fgame/scriptslave.h +++ b/code/fgame/scriptslave.h @@ -234,11 +234,34 @@ public: void SetAngleEvent(Event *ev); void SetModelEvent(Event *ev); void SetAnimEvent(Event *ev); - void AnimDoneEvent(Event* ev); - void MoveAnimEvent(Event* ev); - void MovingFromAnimEvent(Event* ev); + void AnimDoneEvent(Event *ev); + void MoveAnimEvent(Event *ev); + void MovingFromAnimEvent(Event *ev); + + void Archive(Archiver& arc) override; }; +inline void ScriptModel::Archive(Archiver& arc) +{ + ScriptSlave::Archive(arc); +} + +class ScriptModelRealDamage : public ScriptModel +{ +public: + CLASS_PROTOTYPE(ScriptModelRealDamage); + + ScriptModelRealDamage(); + void EventDamage(Event *ev); + + void Archive(Archiver& arc) override; +}; + +inline void ScriptModelRealDamage::Archive(Archiver& arc) +{ + ScriptModel::Archive(arc); +} + class ScriptOrigin : public ScriptSlave { public: