26 #ifndef SAGA2_SPELLBUK_H 27 #define SAGA2_SPELLBUK_H 31 struct ResourceSpellEffect;
32 struct ResourceSpellItem;
58 enum SpellTargetingTypes {
60 kSpellTargWorld = 1 << 0,
61 kSpellTargLocation = 1 << 1,
62 kSpellTargTAG = 1 << 2,
63 kSpellTargObject = 1 << 3,
64 kSpellTargActor = 1 << 4,
65 kSpellTargCaster = 1 << 5
70 enum SpellApplicationTypes {
71 kSpellApplyNone = kSpellTargNone,
72 kSpellApplyWorld = kSpellTargWorld,
73 kSpellApplyLocation = kSpellTargLocation,
74 kSpellApplyTAG = kSpellTargTAG,
75 kSpellApplyObject = kSpellTargObject,
76 kSpellApplyActor = kSpellTargObject,
77 kSpellApplyTracking = 1 << 6
115 SpellTargetingTypes _targetableTypes;
116 SpellApplicationTypes _targetTypes;
119 SpellManaID _manaType;
145 bool canTarget(SpellTargetingTypes t) {
146 return _targetableTypes & t;
148 bool shouldTarget(SpellApplicationTypes t) {
149 return _targetTypes & t;
152 bool untargetable() {
153 return (_targetableTypes == kSpellTargNone);
167 SpellID getDisplayID() {
170 SpellManaID getManaType() {
173 void setManaType(SpellManaID smid) {
185 void removeTargetList();
203 SPECIALSPELL(DeathSpell);
204 SPECIALSPELL(DispellProtections);
205 SPECIALSPELL(DispellCurses);
206 SPECIALSPELL(Resurrect);
207 SPECIALSPELL(CreateWallOfFire);
208 SPECIALSPELL(CreateFireWisp);
209 SPECIALSPELL(CreateWindWisp);
210 SPECIALSPELL(Timequake);
211 SPECIALSPELL(TeleportToShrine);
212 SPECIALSPELL(TeleportToLocation);
213 SPECIALSPELL(Rejoin);
214 SPECIALSPELL(CreateRingOfForce);
215 SPECIALSPELL(DispellPoison);
216 SPECIALSPELL(CreateWraith);
217 SPECIALSPELL(SagaSpellCall);
218 SPECIALSPELL(CreateWWisp);
219 SPECIALSPELL(CreateFWisp);
220 SPECIALSPELL(CreateFood);
Definition: objproto.h:105
Definition: objects.h:118
Definition: spellbuk.h:111
Definition: effects.h:348
Definition: speldefs.h:139
Definition: objproto.h:1493