26#ifndef SAGA2_SPELLBUK_H
27#define SAGA2_SPELLBUK_H
31struct ResourceSpellEffect;
32struct ResourceSpellItem;
58enum 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
70enum 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();
203SPECIALSPELL(DeathSpell);
204SPECIALSPELL(DispellProtections);
205SPECIALSPELL(DispellCurses);
206SPECIALSPELL(Resurrect);
207SPECIALSPELL(CreateWallOfFire);
208SPECIALSPELL(CreateFireWisp);
209SPECIALSPELL(CreateWindWisp);
210SPECIALSPELL(Timequake);
211SPECIALSPELL(TeleportToShrine);
212SPECIALSPELL(TeleportToLocation);
214SPECIALSPELL(CreateRingOfForce);
215SPECIALSPELL(DispellPoison);
216SPECIALSPELL(CreateWraith);
217SPECIALSPELL(SagaSpellCall);
218SPECIALSPELL(CreateWWisp);
219SPECIALSPELL(CreateFWisp);
220SPECIALSPELL(CreateFood);
Definition: objects.h:118
Definition: objproto.h:105
Definition: effects.h:348
Definition: objproto.h:1493
Definition: spellbuk.h:111
Definition: speldefs.h:139