3 * Iter Vehemens ad Necem (IVAN)
4 * Copyright (C) Timo Kiviluoto
5 * Released under the GNU General
8 * See LICENSING which should be included
9 * along with this file for more details
15 #include "ivancommon.h"
25 #define ENTITY_FLAGS 3
36 static void *operator new (size_t size
);
37 static void operator delete (void *p
);
40 static int GetUniqueMemoryMark (entity
*e
);
41 static void DumpDeadSet ();
45 entity (const entity
&);
49 virtual square
*GetSquareUnderEntity (int = 0) const = 0;
50 virtual void SignalVolumeAndWeightChange () {}
51 col24
GetEmitation () const { return Emitation
; }
52 virtual void SignalEmitationIncrease (col24
) {}
53 virtual void SignalEmitationDecrease (col24
) {}
54 virtual truth
ContentsCanBeSeenBy (ccharacter
*) const { return false; }
55 virtual truth
AllowSpoil () const { return false; }
56 virtual void SignalSpoil (material
*) {}
57 virtual void SignalSpoilLevelChange (material
*) {}
58 virtual truth
IsOnGround () const = 0;
59 virtual truth
AllowContentEmitation () const { return true; }
60 virtual void SignalRustLevelChange () {}
61 virtual material
*RemoveMaterial (material
*) { return 0; }
62 virtual character
*TryNecromancy (character
*) { return 0; }
63 virtual void SignalDisappearance () {}
64 virtual void SpecialEatEffect (character
*, int) {}
65 virtual feuLong
GetTrapID () const { return 0; }
66 virtual feuLong
GetVictimID () const { return 0; }
67 virtual void AddTrapName (festring
&, int) const {}
68 virtual void UnStick () {}
69 virtual void UnStick (int) {}
70 virtual truth
TryToUnStick (character
*, v2
) { return false; }
71 virtual int GetTrapType () const { return 0; }
72 virtual truth
IsStuckTo (ccharacter
*) const { return false; }
73 virtual ccharacter
*FindCarrier () const { return 0; }
75 truth
Exists () const { return Flags
& EXISTS
; }
77 truth
IsEnabled () const { return Flags
& HAS_BE
; }
80 void AddFlags (feuLong What
) { Flags
|= What
; }
81 void RemoveFlags (feuLong What
) { Flags
&= ~What
; }
88 entity (); // no such constructor