World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Группы Страницы
Файл Spells.h

См. исходные тексты.

Классы

struct  SpellBuff
 
struct  SpellInfo
 
struct  SpellStats
 
struct  stru324_spell_id_to_sprite_mapping
 
class  SpellData
 
struct  SpellBookIconPos
 
struct  TownPortalData
 

Перечисления

enum  SPELL_TYPE {
  SPELL_0 = 0, SPELL_FIRE_TORCH_LIGHT = 1, SPELL_FIRE_FIRE_BOLT = 2, SPELL_FIRE_PROTECTION_FROM_FIRE = 3,
  SPELL_FIRE_FIRE_AURA = 4, SPELL_FIRE_HASTE = 5, SPELL_FIRE_FIREBALL = 6, SPELL_FIRE_FIRE_SPIKE = 7,
  SPELL_FIRE_IMMOLATION = 8, SPELL_FIRE_METEOR_SHOWER = 9, SPELL_FIRE_INFERNO = 10, SPELL_FIRE_INCINERATE = 11,
  SPELL_AIR_WIZARD_EYE = 12, SPELL_AIR_FEATHER_FALL = 13, SPELL_AIR_PROTECTION_FROM_AIR = 14, SPELL_AIR_SPARKS = 15,
  SPELL_AIR_JUMP = 16, SPELL_AIR_SHIELD = 17, SPELL_AIR_LIGHNING_BOLT = 18, SPELL_AIR_INVISIBILITY = 19,
  SPELL_AIR_IMPLOSION = 20, SPELL_AIR_FLY = 21, SPELL_AIR_STARBURST = 22, SPELL_WATER_AWAKEN = 23,
  SPELL_WATER_POISON_SPRAY = 24, SPELL_WATER_PROTECTION_FROM_WATER = 25, SPELL_WATER_ICE_BOLT = 26, SPELL_WATER_WATER_WALK = 27,
  SPELL_WATER_RECHARGE_ITEM = 28, SPELL_WATER_ACID_BURST = 29, SPELL_WATER_ENCHANT_ITEM = 30, SPELL_WATER_TOWN_PORTAL = 31,
  SPELL_WATER_ICE_BLAST = 32, SPELL_WATER_LLOYDS_BEACON = 33, SPELL_EARTH_STUN = 34, SPELL_EARTH_SLOW = 35,
  SPELL_EARTH_PROTECTION_FROM_EARTH = 36, SPELL_EARTH_DEADLY_SWARM = 37, SPELL_EARTH_STONESKIN = 38, SPELL_EARTH_BLADES = 39,
  SPELL_EARTH_STONE_TO_FLESH = 40, SPELL_EARTH_ROCK_BLAST = 41, SPELL_EARTH_TELEKINESIS = 42, SPELL_EARTH_DEATH_BLOSSOM = 43,
  SPELL_EARTH_MASS_DISTORTION = 44, SPELL_SPIRIT_DETECT_LIFE = 45, SPELL_SPIRIT_BLESS = 46, SPELL_SPIRIT_FATE = 47,
  SPELL_SPIRIT_TURN_UNDEAD = 48, SPELL_SPIRIT_REMOVE_CURSE = 49, SPELL_SPIRIT_PRESERVATION = 50, SPELL_SPIRIT_HEROISM = 51,
  SPELL_SPIRIT_SPIRIT_LASH = 52, SPELL_SPIRIT_RAISE_DEAD = 53, SPELL_SPIRIT_SHARED_LIFE = 54, SPELL_SPIRIT_RESSURECTION = 55,
  SPELL_MIND_REMOVE_FEAR = 56, SPELL_MIND_MIND_BLAST = 57, SPELL_MIND_PROTECTION_FROM_MIND = 58, SPELL_MIND_TELEPATHY = 59,
  SPELL_MIND_CHARM = 60, SPELL_MIND_CURE_PARALYSIS = 61, SPELL_MIND_BERSERK = 62, SPELL_MIND_MASS_FEAR = 63,
  SPELL_MIND_CURE_INSANITY = 64, SPELL_MIND_PSYCHIC_SHOCK = 65, SPELL_MIND_ENSLAVE = 66, SPELL_BODY_CURE_WEAKNESS = 67,
  SPELL_BODY_FIRST_AID = 68, SPELL_BODY_PROTECTION_FROM_BODY = 69, SPELL_BODY_HARM = 70, SPELL_BODY_REGENERATION = 71,
  SPELL_BODY_CURE_POISON = 72, SPELL_BODY_HAMMERHANDS = 73, SPELL_BODY_CURE_DISEASE = 74, SPELL_BODY_PROTECTION_FROM_MAGIC = 75,
  SPELL_BODY_FLYING_FIST = 76, SPELL_BODY_POWER_CURE = 77, SPELL_LIGHT_LIGHT_BOLT = 78, SPELL_LIGHT_DESTROY_UNDEAD = 79,
  SPELL_LIGHT_DISPEL_MAGIC = 80, SPELL_LIGHT_PARALYZE = 81, SPELL_LIGHT_SUMMON_ELEMENTAL = 82, SPELL_LIGHT_DAY_OF_THE_GODS = 83,
  SPELL_LIGHT_PRISMATIC_LIGHT = 84, SPELL_LIGHT_DAY_OF_PROTECTION = 85, SPELL_LIGHT_HOUR_OF_POWER = 86, SPELL_LIGHT_SUNRAY = 87,
  SPELL_LIGHT_DIVINE_INTERVENTION = 88, SPELL_DARK_REANIMATE = 89, SPELL_DARK_TOXIC_CLOUD = 90, SPELL_DARK_VAMPIRIC_WEAPON = 91,
  SPELL_DARK_SHRINKING_RAY = 92, SPELL_DARK_SHARPMETAL = 93, SPELL_DARK_CONTROL_UNDEAD = 94, SPELL_DARK_PAIN_REFLECTION = 95,
  SPELL_DARK_SACRIFICE = 96, SPELL_DARK_DRAGON_BREATH = 97, SPELL_DARK_ARMAGEDDON = 98, SPELL_DARK_SOULDRINKER = 99,
  SPELL_BOW_ARROW = 100, SPELL_101 = 101, SPELL_LASER_PROJECTILE = 102, BECOME_MAGIC_GUILD_MEMBER = 150,
  SPELL_QUEST_COMPLETED = 151, SPELL_152 = 152, SPELL_DISEASE = 153
}
 
enum  SPELL_SCHOOL : int {
  SPELL_SCHOOL_FIRE = 0, SPELL_SCHOOL_AIR = 1, SPELL_SCHOOL_WATER = 2, SPELL_SCHOOL_EARTH = 3,
  SPELL_SCHOOL_NONE = 4, SPELL_SCHOOL_MAGIC = 5, SPELL_SCHOOL_SPIRIT = 6, SPELL_SCHOOL_MIND = 7,
  SPELL_SCHOOL_BODY = 8, SPELL_SCHOOL_LIGHT = 9, SPELL_SCHOOL_DARK = 10
}
 

Функции

int _43AFE3_calc_spell_damage (int spellId, int spellLevel, signed int skillMastery, int currentHp)
 
bool sub_427769_isSpellQuickCastableOnShiftClick (unsigned int uSpellID)
 
void EventCastSpell (int uSpellID, int uSkillLevel, int uSkill, int fromx, int fromy, int fromz, int tox, int toy, int toz)
 

Переменные

std::array< TownPortalData, 6 > TownPortalList
 
struct SpellStatspSpellStats
 
std::array< std::array< struct SpellBookIconPos, 12 >, 9 > pIconPos
 
std::array< stru324_spell_id_to_sprite_mapping, 103 > spell_sprite_mapping
 
std::array< SpellData, 100 > pSpellDatas
 
std::array< SPELL_TYPE, 25 > wand_spell_ids
 

Перечисления

◆ SPELL_TYPE

enum SPELL_TYPE
Элементы перечислений
SPELL_0 
SPELL_FIRE_TORCH_LIGHT 
SPELL_FIRE_FIRE_BOLT 
SPELL_FIRE_PROTECTION_FROM_FIRE 
SPELL_FIRE_FIRE_AURA 
SPELL_FIRE_HASTE 
SPELL_FIRE_FIREBALL 
SPELL_FIRE_FIRE_SPIKE 
SPELL_FIRE_IMMOLATION 
SPELL_FIRE_METEOR_SHOWER 
SPELL_FIRE_INFERNO 
SPELL_FIRE_INCINERATE 
SPELL_AIR_WIZARD_EYE 
SPELL_AIR_FEATHER_FALL 
SPELL_AIR_PROTECTION_FROM_AIR 
SPELL_AIR_SPARKS 
SPELL_AIR_JUMP 
SPELL_AIR_SHIELD 
SPELL_AIR_LIGHNING_BOLT 
SPELL_AIR_INVISIBILITY 
SPELL_AIR_IMPLOSION 
SPELL_AIR_FLY 
SPELL_AIR_STARBURST 
SPELL_WATER_AWAKEN 
SPELL_WATER_POISON_SPRAY 
SPELL_WATER_PROTECTION_FROM_WATER 
SPELL_WATER_ICE_BOLT 
SPELL_WATER_WATER_WALK 
SPELL_WATER_RECHARGE_ITEM 
SPELL_WATER_ACID_BURST 
SPELL_WATER_ENCHANT_ITEM 
SPELL_WATER_TOWN_PORTAL 
SPELL_WATER_ICE_BLAST 
SPELL_WATER_LLOYDS_BEACON 
SPELL_EARTH_STUN 
SPELL_EARTH_SLOW 
SPELL_EARTH_PROTECTION_FROM_EARTH 
SPELL_EARTH_DEADLY_SWARM 
SPELL_EARTH_STONESKIN 
SPELL_EARTH_BLADES 
SPELL_EARTH_STONE_TO_FLESH 
SPELL_EARTH_ROCK_BLAST 
SPELL_EARTH_TELEKINESIS 
SPELL_EARTH_DEATH_BLOSSOM 
SPELL_EARTH_MASS_DISTORTION 
SPELL_SPIRIT_DETECT_LIFE 
SPELL_SPIRIT_BLESS 
SPELL_SPIRIT_FATE 
SPELL_SPIRIT_TURN_UNDEAD 
SPELL_SPIRIT_REMOVE_CURSE 
SPELL_SPIRIT_PRESERVATION 
SPELL_SPIRIT_HEROISM 
SPELL_SPIRIT_SPIRIT_LASH 
SPELL_SPIRIT_RAISE_DEAD 
SPELL_SPIRIT_SHARED_LIFE 
SPELL_SPIRIT_RESSURECTION 
SPELL_MIND_REMOVE_FEAR 
SPELL_MIND_MIND_BLAST 
SPELL_MIND_PROTECTION_FROM_MIND 
SPELL_MIND_TELEPATHY 
SPELL_MIND_CHARM 
SPELL_MIND_CURE_PARALYSIS 
SPELL_MIND_BERSERK 
SPELL_MIND_MASS_FEAR 
SPELL_MIND_CURE_INSANITY 
SPELL_MIND_PSYCHIC_SHOCK 
SPELL_MIND_ENSLAVE 
SPELL_BODY_CURE_WEAKNESS 
SPELL_BODY_FIRST_AID 
SPELL_BODY_PROTECTION_FROM_BODY 
SPELL_BODY_HARM 
SPELL_BODY_REGENERATION 
SPELL_BODY_CURE_POISON 
SPELL_BODY_HAMMERHANDS 
SPELL_BODY_CURE_DISEASE 
SPELL_BODY_PROTECTION_FROM_MAGIC 
SPELL_BODY_FLYING_FIST 
SPELL_BODY_POWER_CURE 
SPELL_LIGHT_LIGHT_BOLT 
SPELL_LIGHT_DESTROY_UNDEAD 
SPELL_LIGHT_DISPEL_MAGIC 
SPELL_LIGHT_PARALYZE 
SPELL_LIGHT_SUMMON_ELEMENTAL 
SPELL_LIGHT_DAY_OF_THE_GODS 
SPELL_LIGHT_PRISMATIC_LIGHT 
SPELL_LIGHT_DAY_OF_PROTECTION 
SPELL_LIGHT_HOUR_OF_POWER 
SPELL_LIGHT_SUNRAY 
SPELL_LIGHT_DIVINE_INTERVENTION 
SPELL_DARK_REANIMATE 
SPELL_DARK_TOXIC_CLOUD 
SPELL_DARK_VAMPIRIC_WEAPON 
SPELL_DARK_SHRINKING_RAY 
SPELL_DARK_SHARPMETAL 
SPELL_DARK_CONTROL_UNDEAD 
SPELL_DARK_PAIN_REFLECTION 
SPELL_DARK_SACRIFICE 
SPELL_DARK_DRAGON_BREATH 
SPELL_DARK_ARMAGEDDON 
SPELL_DARK_SOULDRINKER 
SPELL_BOW_ARROW 
SPELL_101 
SPELL_LASER_PROJECTILE 
BECOME_MAGIC_GUILD_MEMBER 
SPELL_QUEST_COMPLETED 
SPELL_152 
SPELL_DISEASE 

См. определение в файле Spells.h строка 10

10  {
11  SPELL_0 = 0,
12 
17  SPELL_FIRE_HASTE = 5,
22  SPELL_FIRE_INFERNO = 10,
24 
28  SPELL_AIR_SPARKS = 15,
29  SPELL_AIR_JUMP = 16,
30  SPELL_AIR_SHIELD = 17,
34  SPELL_AIR_FLY = 21,
36 
37  SPELL_WATER_AWAKEN = 23,
48 
49  SPELL_EARTH_STUN = 34,
50  SPELL_EARTH_SLOW = 35,
54  SPELL_EARTH_BLADES = 39,
60 
62  SPELL_SPIRIT_BLESS = 46,
63  SPELL_SPIRIT_FATE = 47,
72 
77  SPELL_MIND_CHARM = 60,
79  SPELL_MIND_BERSERK = 62,
83  SPELL_MIND_ENSLAVE = 66,
84 
88  SPELL_BODY_HARM = 70,
96 
106  SPELL_LIGHT_SUNRAY = 87,
108 
120 
121  SPELL_BOW_ARROW = 100,
122  SPELL_101 = 101,
124 
126  SPELL_QUEST_COMPLETED = 151,
127  SPELL_152 = 152,
128  SPELL_DISEASE = 153
129 };

◆ SPELL_SCHOOL

enum SPELL_SCHOOL : int
Элементы перечислений
SPELL_SCHOOL_FIRE 
SPELL_SCHOOL_AIR 
SPELL_SCHOOL_WATER 
SPELL_SCHOOL_EARTH 
SPELL_SCHOOL_NONE 
SPELL_SCHOOL_MAGIC 
SPELL_SCHOOL_SPIRIT 
SPELL_SCHOOL_MIND 
SPELL_SCHOOL_BODY 
SPELL_SCHOOL_LIGHT 
SPELL_SCHOOL_DARK 

См. определение в файле Spells.h строка 131

131  : int {
132  SPELL_SCHOOL_FIRE = 0,
133  SPELL_SCHOOL_AIR = 1,
134  SPELL_SCHOOL_WATER = 2,
135  SPELL_SCHOOL_EARTH = 3,
136  SPELL_SCHOOL_NONE = 4,
137  SPELL_SCHOOL_MAGIC = 5,
139  SPELL_SCHOOL_MIND = 7,
140  SPELL_SCHOOL_BODY = 8,
141  SPELL_SCHOOL_LIGHT = 9,
142  SPELL_SCHOOL_DARK = 10
143 };

Функции

◆ _43AFE3_calc_spell_damage()

int _43AFE3_calc_spell_damage ( int  spellId,
int  spellLevel,
signed int  skillMastery,
int  currentHp 
)

См. определение в файле Spells.cpp строка 745

746  {
747  int result; // eax@1
748  unsigned int v5; // [sp-4h] [bp-8h]@9
749 
750  result = 0;
751  if (spellId == SPELL_FIRE_FIRE_SPIKE) {
752  switch (skillMastery) {
753  case 1:
754  case 2:
755  v5 = 6;
756  break;
757  case 3:
758  v5 = 8;
759  break;
760  case 4:
761  v5 = 10;
762  break;
763  default:
764  return 0;
765  }
766  result = GetDiceResult(spellLevel, v5);
767  } else if (spellId == SPELL_EARTH_MASS_DISTORTION) {
768  result = currentHp *
770  2 * spellLevel) /
771  100;
772  } else {
773  result =
774  pSpellDatas[spellId].baseDamage +
775  GetDiceResult(spellLevel, pSpellDatas[spellId].bonusSkillDamage);
776  }
777 
778  return result;
779 }

Перекрестные ссылки GetDiceResult(), pSpellDatas, SPELL_EARTH_MASS_DISTORTION и SPELL_FIRE_FIRE_SPIKE.

Используется в Actor::_43B3E0_CalcDamage(), Actor::DamageMonsterFromParty(), DamagePlayerFromMonster() и ItemDamageFromActor().

+ Граф вызовов:
+ Граф вызова функции:

◆ sub_427769_isSpellQuickCastableOnShiftClick()

bool sub_427769_isSpellQuickCastableOnShiftClick ( unsigned int  uSpellID)

См. определение в файле Spells.cpp строка 741

741  {
742  return (pSpellDatas[uSpellID].stats & 0xC) != 0;
743 }

Перекрестные ссылки pSpellDatas.

Используется в Engine::OnGameViewportClick().

+ Граф вызова функции:

◆ EventCastSpell()

void EventCastSpell ( int  uSpellID,
int  uSkillLevel,
int  uSkill,
int  fromx,
int  fromy,
int  fromz,
int  tox,
int  toy,
int  toz 
)

См. определение в файле Spells.cpp строка 429

430  {
431  unsigned int skillMasteryPlusOne = uSkillLevel + 1;
432  Assert(skillMasteryPlusOne > 0 && skillMasteryPlusOne <= 4,
433  "Invalid mastery level");
434 
435  int64_t x_coord_delta = 0;
436  int64_t y_coord_delta = 0;
437  int64_t z_coord_delta = 0;
438  if (tox || toy || toz) {
439  x_coord_delta = tox - fromx;
440  y_coord_delta = toy - fromy;
441  z_coord_delta = toz - fromz;
442  } else {
443  x_coord_delta = pParty->vPosition.x - fromx;
444  y_coord_delta = pParty->vPosition.y - fromy;
445  z_coord_delta = (pParty->vPosition.z + pParty->sEyelevel) - fromz;
446  }
447 
448  int yaw = 0;
449  int pitch = 0;
450  double distance_to_target = sqrt((long double)(
451  x_coord_delta * x_coord_delta + y_coord_delta * y_coord_delta +
452  z_coord_delta * z_coord_delta));
453  if (distance_to_target <= 1.0) {
454  distance_to_target = 1;
455  } else {
456  int64_t ySquared = y_coord_delta * y_coord_delta;
457  int64_t xSquared = x_coord_delta * x_coord_delta;
458  int xy_distance = (int)sqrt((long double)(xSquared + ySquared));
459  yaw = stru_5C6E00->Atan2((int)x_coord_delta, (int)y_coord_delta);
460  pitch = stru_5C6E00->Atan2(xy_distance, (int)z_coord_delta);
461  }
462 
463  SpriteObject spell_sprites;
464 
465  switch (uSpellID) {
467  case SPELL_FIRE_FIREBALL:
472  case SPELL_EARTH_BLADES:
475  case SPELL_AIR_SPARKS:
477  spell_sprites.uType = spell_sprite_mapping[uSpellID].uSpriteType;
478  spell_sprites.containing_item.Reset();
479  spell_sprites.spell_id = uSpellID;
480  spell_sprites.spell_level = uSkill;
481  spell_sprites.spell_skill = skillMasteryPlusOne;
482  spell_sprites.uObjectDescID = pObjectList->ObjectIDByItemID(spell_sprites.uType);
483  spell_sprites.vPosition.x = fromx;
484  spell_sprites.vPosition.y = fromy;
485  spell_sprites.vPosition.z = fromz;
486  spell_sprites.uAttributes = 16;
487  spell_sprites.uSectorID = pIndoor->GetSector(fromx, fromy, fromz);
488  spell_sprites.field_60_distance_related_prolly_lod = distance_to_target;
489  spell_sprites.uSpriteFrameID = 0;
490  spell_sprites.spell_caster_pid = 8000 | OBJECT_Item;
491  spell_sprites.uSoundID = 0;
492  break;
493  }
494 
495  int spell_length = 0;
496  GameTime spell_expire_time;
497  int spell_power;
498  int launch_angle;
499  int launch_speed;
500  int spell_num_objects = 0;
501  int spell_spray_arc;
502  int spell_spray_angles;
503  int spriteid;
504 
505  switch (uSpellID) {
507  case SPELL_FIRE_FIREBALL:
512  case SPELL_EARTH_BLADES:
514  // v20 = yaw;
515  spell_sprites.spell_target_pid = 0;
516  spell_sprites.uFacing = yaw;
517  spell_sprites.uSoundID = 0;
518  launch_speed =
520  ->pObjects[(signed __int16)spell_sprites.uObjectDescID]
521  .uSpeed;
522  spriteid = spell_sprites.Create(yaw, pitch, launch_speed, 0);
523  // pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[uSpellID],
524  // 0, 0, fromx, fromy, 0, 0, 0);
525  pAudioPlayer->PlaySpellSound(uSpellID, PID(OBJECT_Item, spriteid));
526  return;
528  spell_num_objects = (skillMasteryPlusOne * 2) - 1;
529  spell_sprites.spell_target_pid = 0;
530  spell_sprites.uFacing = yaw;
531  if (spell_num_objects == 1) {
532  launch_speed =
534  ->pObjects[(signed __int16)spell_sprites.uObjectDescID]
535  .uSpeed;
536  spriteid = spell_sprites.Create(yaw, pitch, launch_speed, 0);
537  } else {
538  spell_spray_arc =
539  (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360;
540  spell_spray_angles = spell_spray_arc / (spell_num_objects - 1);
541  for (int i = spell_spray_arc / -2; i <= spell_spray_arc / 2;
542  i += spell_spray_angles) {
543  spell_sprites.uFacing = i + yaw;
544  spriteid = spell_sprites.Create(
545  i + yaw, pitch,
546  pObjectList->pObjects[spell_sprites.uObjectDescID]
547  .uSpeed,
548  0);
549  }
550  }
551  // pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[uSpellID],
552  // 0, 0, fromx, fromy, 0, 0, 0);
553  pAudioPlayer->PlaySpellSound(uSpellID, PID(OBJECT_Item, spriteid));
554  return;
555  case SPELL_AIR_SPARKS:
556  spell_num_objects = (skillMasteryPlusOne * 2) + 1;
557  spell_spray_arc =
558  (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360;
559  spell_spray_angles = spell_spray_arc / (spell_num_objects - 1);
560  spell_sprites.spell_target_pid = 4;
561  for (int i = spell_spray_arc / -2; i <= spell_spray_arc / 2;
562  i += spell_spray_angles) {
563  spell_sprites.uFacing = i + yaw;
564  spriteid = spell_sprites.Create(
565  i + yaw, pitch,
566  pObjectList->pObjects[spell_sprites.uObjectDescID].uSpeed,
567  0);
568  }
569  // pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[uSpellID],
570  // 0, 0, fromx, fromy, 0, 0, 0);
571  pAudioPlayer->PlaySpellSound(uSpellID, PID(OBJECT_Item, spriteid));
572  return;
575  spell_sprites.spell_target_pid = 4;
576  launch_speed =
577  pObjectList->pObjects[spell_sprites.uObjectDescID].uSpeed;
578  launch_angle = stru_5C6E00->uIntegerHalfPi / 2;
579  spriteid = spell_sprites.Create(yaw, launch_angle, launch_speed, 0);
580  // pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[uSpellID],
581  // 0, 0, fromx, fromy, 0, 0, 0);
582  pAudioPlayer->PlaySpellSound(uSpellID, PID(OBJECT_Item, spriteid));
583  return;
584 
585  case SPELL_FIRE_HASTE:
586  if (skillMasteryPlusOne > 0) {
587  if (skillMasteryPlusOne <= 2)
588  spell_length = 60 * (uSkill + 60);
589  else if (skillMasteryPlusOne == 3)
590  spell_length = 180 * (uSkill + 20);
591  else if (skillMasteryPlusOne == 4)
592  spell_length = 240 * (uSkill + 15);
593  }
594  for (uint i = 0; i < 4; ++i)
595  if (pParty->pPlayers[i].IsWeak()) return;
598  skillMasteryPlusOne, 0, 0, 0);
599  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 0);
600  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 1);
601  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 2);
602  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 3);
603  // pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[uSpellID],
604  // 0, 0, fromx, fromy, 0, 0, 0); // звук алтаря
605  pAudioPlayer->PlaySpellSound(uSpellID, 0);
606  return;
607  case SPELL_AIR_SHIELD:
610  switch (skillMasteryPlusOne) {
611  case 1:
612  case 2:
613  spell_length = 300 * (uSkill + 12);
614  break;
615  case 3:
616  spell_length = 900 * (uSkill + 4);
617  break;
618  case 4:
619  spell_length = 3600 * (uSkill + 1);
620  break;
621  }
622  switch (uSpellID) {
623  case SPELL_AIR_SHIELD:
624  spell_num_objects = 0;
625  uSkill = 14;
626  break;
628  spell_num_objects = uSkill + 5;
629  uSkill = 15;
630  break;
632  spell_num_objects = uSkill + 5;
633  uSkill = 9;
634  break;
635  }
636  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 0);
637  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 1);
638  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 2);
639  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 3);
640  spell_expire_time =
642  pParty->pPartyBuffs[uSkill].Apply(spell_expire_time,
643  skillMasteryPlusOne,
644  spell_num_objects, 0, 0);
645  // pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[uSpellID],
646  // 0, 0, fromx, fromy, 0, 0, 0);
647  pAudioPlayer->PlaySpellSound(uSpellID, 0);
648  return;
650  if (skillMasteryPlusOne == 4)
651  spell_length = 600 * uSkill;
652  else
653  spell_length = 60 * uSkill;
654  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 0);
655  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 1);
656  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 2);
657  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 3);
658 
659  spell_expire_time =
662  spell_expire_time, skillMasteryPlusOne, uSkill, 0, 0);
663  // pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[uSpellID],
664  // 0, 0, fromx, fromy, 0, 0, 0);
665  pAudioPlayer->PlaySpellSound(uSpellID, 0);
666  return;
673  spell_length = 3600 * uSkill;
674  spell_num_objects = uSkill * skillMasteryPlusOne;
675 
676  switch (uSpellID) {
678  uSkill = PARTY_BUFF_RESIST_FIRE;
679  break;
681  uSkill = PARTY_BUFF_RESIST_AIR;
682  break;
684  uSkill = PARTY_BUFF_RESIST_WATER;
685  break;
687  uSkill = PARTY_BUFF_RESIST_EARTH;
688  break;
690  uSkill = PARTY_BUFF_RESIST_MIND;
691  break;
693  uSkill = PARTY_BUFF_RESIST_BODY;
694  break;
695  }
696  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 0);
697  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 1);
698  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 2);
699  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 3);
700  pParty->pPartyBuffs[uSkill].Apply(
702  skillMasteryPlusOne, spell_num_objects, 0, 0);
703  // pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[uSpellID],
704  // 0, 0, fromx, fromy, 0, 0, 0);
705  pAudioPlayer->PlaySpellSound(uSpellID, 0);
706  return;
708  switch (skillMasteryPlusOne) {
709  case 2:
710  spell_length = 10800 * uSkill;
711  spell_power = 3 * uSkill + 10;
712  break;
713  case 3:
714  spell_length = 18000 * uSkill;
715  spell_power = 5 * uSkill + 10;
716  break;
717  case 4:
718  spell_length = 14400 * uSkill;
719  spell_power = 4 * uSkill + 10;
720  break;
721  }
722  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 0);
723  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 1);
724  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 2);
725  spell_fx_renderer->SetPlayerBuffAnim(uSpellID, 3);
726 
727  spell_expire_time =
730  spell_expire_time, skillMasteryPlusOne, spell_power, 0, 0);
731  // pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[uSpellID],
732  // 0, 0, fromx, fromy, 0, 0, 0);
733  pAudioPlayer->PlaySpellSound(uSpellID, 0);
734  return;
735  default:
736  return;
737  }
738 }

Перекрестные ссылки stru193_math::Atan2(), SpriteObject::containing_item, SpriteObject::Create(), SpriteObject::field_60_distance_related_prolly_lod, GameTime::FromSeconds(), Party::GetPlayingTime(), IndoorLocation::GetSector(), LEVEL_Indoor, OBJECT_Item, ObjectList::ObjectIDByItemID(), PARTY_BUFF_DAY_OF_GODS, PARTY_BUFF_HASTE, PARTY_BUFF_IMMOLATION, PARTY_BUFF_RESIST_AIR, PARTY_BUFF_RESIST_BODY, PARTY_BUFF_RESIST_EARTH, PARTY_BUFF_RESIST_FIRE, PARTY_BUFF_RESIST_MIND, PARTY_BUFF_RESIST_WATER, pAudioPlayer, pIndoor, AudioPlayer::PlaySpellSound(), pObjectList, ObjectList::pObjects, pParty, Party::pPartyBuffs, Party::pPlayers, ItemGen::Reset(), SpellFxRenderer::SetPlayerBuffAnim(), Party::sEyelevel, SPELL_AIR_LIGHNING_BOLT, SPELL_AIR_PROTECTION_FROM_AIR, SPELL_AIR_SHIELD, SPELL_AIR_SPARKS, SPELL_BODY_PROTECTION_FROM_BODY, SpriteObject::spell_caster_pid, SPELL_EARTH_BLADES, SPELL_EARTH_DEATH_BLOSSOM, SPELL_EARTH_PROTECTION_FROM_EARTH, SPELL_EARTH_ROCK_BLAST, SPELL_EARTH_STONESKIN, SPELL_FIRE_FIRE_BOLT, SPELL_FIRE_FIREBALL, SPELL_FIRE_HASTE, SPELL_FIRE_IMMOLATION, SPELL_FIRE_PROTECTION_FROM_FIRE, spell_fx_renderer, SpriteObject::spell_id, SpriteObject::spell_level, SPELL_LIGHT_DAY_OF_THE_GODS, SPELL_MIND_PROTECTION_FROM_MIND, SpriteObject::spell_skill, SPELL_SPIRIT_HEROISM, spell_sprite_mapping, SpriteObject::spell_target_pid, SPELL_WATER_ACID_BURST, SPELL_WATER_ICE_BLAST, SPELL_WATER_ICE_BOLT, SPELL_WATER_POISON_SPRAY, SPELL_WATER_PROTECTION_FROM_WATER, stru_5C6E00, SpriteObject::uAttributes, uCurrentlyLoadedLevelType, SpriteObject::uFacing, stru193_math::uIntegerDoublePi, stru193_math::uIntegerHalfPi, SpriteObject::uObjectDescID, SpriteObject::uSectorID, SpriteObject::uSoundID, ObjectDesc::uSpeed, SpriteObject::uSpriteFrameID, SpriteObject::uType, SpriteObject::vPosition и Party::vPosition.

Используется в EventProcessor().

+ Граф вызовов:
+ Граф вызова функции:

Переменные

◆ TownPortalList

std::array<TownPortalData, 6> TownPortalList

См. определение в файле Spells.cpp строка 24

Используется в Application::Game::EventLoop().

◆ pSpellStats

◆ pIconPos

std::array<std::array<struct SpellBookIconPos, 12>, 9> pIconPos

См. определение в файле Spells.cpp строка 307

Используется в GUIWindow_Spellbook::OpenSpellbook() и GUIWindow_Spellbook::Update().

◆ spell_sprite_mapping

std::array<stru324_spell_id_to_sprite_mapping, 103> spell_sprite_mapping

См. определение в файле Spells.cpp строка 35

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), _493938_regenerate(), Actor::AI_SpellAttack(), EventCastSpell() и Actor::GetObjDescId().

◆ pSpellDatas

◆ wand_spell_ids

std::array<SPELL_TYPE, 25> wand_spell_ids

См. определение в файле Spells.cpp строка 280

Используется в Player::_42ECB5_PlayerAttacksActor() и Player::GetAttackRecoveryTime().

spell_fx_renderer
SpellFxRenderer * spell_fx_renderer
Definition: Spells.cpp:22
SpriteObject
Definition: SpriteObject.h:189
spell_sprite_mapping
std::array< stru324_spell_id_to_sprite_mapping, 103 > spell_sprite_mapping
Definition: Spells.cpp:35
SPELL_LIGHT_PARALYZE
@ SPELL_LIGHT_PARALYZE
Definition: Spells.h:100
ObjectDesc::uSpeed
int16_t uSpeed
Definition: ObjectList.h:31
SPELL_EARTH_STONESKIN
@ SPELL_EARTH_STONESKIN
Definition: Spells.h:53
Party::vPosition
Vec3_int_ vPosition
Definition: Party.h:250
PARTY_BUFF_DAY_OF_GODS
@ PARTY_BUFF_DAY_OF_GODS
Definition: Party.h:73
SPELL_SPIRIT_RESSURECTION
@ SPELL_SPIRIT_RESSURECTION
Definition: Spells.h:71
SPELL_SPIRIT_SHARED_LIFE
@ SPELL_SPIRIT_SHARED_LIFE
Definition: Spells.h:70
stru193_math::uIntegerDoublePi
static const unsigned int uIntegerDoublePi
Definition: OurMath.h:90
SPELL_SPIRIT_TURN_UNDEAD
@ SPELL_SPIRIT_TURN_UNDEAD
Definition: Spells.h:64
SPELL_SCHOOL_FIRE
@ SPELL_SCHOOL_FIRE
Definition: Spells.h:132
SpriteObject::uFacing
unsigned __int16 uFacing
Definition: SpriteObject.h:220
SPELL_LIGHT_DESTROY_UNDEAD
@ SPELL_LIGHT_DESTROY_UNDEAD
Definition: Spells.h:98
SPELL_101
@ SPELL_101
Definition: Spells.h:122
SPELL_DARK_VAMPIRIC_WEAPON
@ SPELL_DARK_VAMPIRIC_WEAPON
Definition: Spells.h:111
Party::GetPlayingTime
GameTime & GetPlayingTime()
Definition: Party.h:230
SPELL_LIGHT_LIGHT_BOLT
@ SPELL_LIGHT_LIGHT_BOLT
Definition: Spells.h:97
SPELL_DARK_ARMAGEDDON
@ SPELL_DARK_ARMAGEDDON
Definition: Spells.h:118
SPELL_0
@ SPELL_0
Definition: Spells.h:11
SPELL_SPIRIT_PRESERVATION
@ SPELL_SPIRIT_PRESERVATION
Definition: Spells.h:66
SPELL_MIND_PSYCHIC_SHOCK
@ SPELL_MIND_PSYCHIC_SHOCK
Definition: Spells.h:82
SPELL_SCHOOL_WATER
@ SPELL_SCHOOL_WATER
Definition: Spells.h:134
SPELL_DARK_PAIN_REFLECTION
@ SPELL_DARK_PAIN_REFLECTION
Definition: Spells.h:115
SpriteObject::field_60_distance_related_prolly_lod
char field_60_distance_related_prolly_lod
Definition: SpriteObject.h:234
OBJECT_Item
@ OBJECT_Item
Definition: Actor.h:66
SPELL_WATER_POISON_SPRAY
@ SPELL_WATER_POISON_SPRAY
Definition: Spells.h:38
PARTY_BUFF_IMMOLATION
@ PARTY_BUFF_IMMOLATION
Definition: Party.h:81
SPELL_LIGHT_HOUR_OF_POWER
@ SPELL_LIGHT_HOUR_OF_POWER
Definition: Spells.h:105
SPELL_AIR_WIZARD_EYE
@ SPELL_AIR_WIZARD_EYE
Definition: Spells.h:25
SPELL_LIGHT_DAY_OF_PROTECTION
@ SPELL_LIGHT_DAY_OF_PROTECTION
Definition: Spells.h:104
SPELL_EARTH_ROCK_BLAST
@ SPELL_EARTH_ROCK_BLAST
Definition: Spells.h:56
SPELL_WATER_WATER_WALK
@ SPELL_WATER_WATER_WALK
Definition: Spells.h:41
Party::sEyelevel
int sEyelevel
Definition: Party.h:239
SpriteObject::uSectorID
__int16 uSectorID
Definition: SpriteObject.h:223
stru193_math::uIntegerHalfPi
static const unsigned int uIntegerHalfPi
Definition: OurMath.h:89
SPELL_SCHOOL_SPIRIT
@ SPELL_SCHOOL_SPIRIT
Definition: Spells.h:138
SPELL_EARTH_DEADLY_SWARM
@ SPELL_EARTH_DEADLY_SWARM
Definition: Spells.h:52
SPELL_FIRE_FIRE_SPIKE
@ SPELL_FIRE_FIRE_SPIKE
Definition: Spells.h:19
SPELL_BODY_HARM
@ SPELL_BODY_HARM
Definition: Spells.h:88
GetDiceResult
int GetDiceResult(unsigned int uNumDice, unsigned int uDiceSides)
Definition: OurMath.cpp:194
ObjectList::ObjectIDByItemID
unsigned int ObjectIDByItemID(unsigned int uItemID)
Definition: ObjectList.cpp:7
SPELL_AIR_JUMP
@ SPELL_AIR_JUMP
Definition: Spells.h:29
SPELL_EARTH_PROTECTION_FROM_EARTH
@ SPELL_EARTH_PROTECTION_FROM_EARTH
Definition: Spells.h:51
int64_t
__int64 int64_t
Definition: alext.h:31
Party::pPlayers
std::array< Player, 4 > pPlayers
Definition: Party.h:310
SPELL_EARTH_DEATH_BLOSSOM
@ SPELL_EARTH_DEATH_BLOSSOM
Definition: Spells.h:58
SPELL_EARTH_STONE_TO_FLESH
@ SPELL_EARTH_STONE_TO_FLESH
Definition: Spells.h:55
SPELL_MIND_TELEPATHY
@ SPELL_MIND_TELEPATHY
Definition: Spells.h:76
SPELL_FIRE_TORCH_LIGHT
@ SPELL_FIRE_TORCH_LIGHT
Definition: Spells.h:13
PARTY_BUFF_RESIST_AIR
@ PARTY_BUFF_RESIST_AIR
Definition: Party.h:71
SpriteObject::uType
SPRITE_OBJECT_TYPE uType
Definition: SpriteObject.h:215
SPELL_MIND_MIND_BLAST
@ SPELL_MIND_MIND_BLAST
Definition: Spells.h:74
SPELL_FIRE_PROTECTION_FROM_FIRE
@ SPELL_FIRE_PROTECTION_FROM_FIRE
Definition: Spells.h:15
SPELL_WATER_TOWN_PORTAL
@ SPELL_WATER_TOWN_PORTAL
Definition: Spells.h:45
SPELL_MIND_PROTECTION_FROM_MIND
@ SPELL_MIND_PROTECTION_FROM_MIND
Definition: Spells.h:75
SPELL_DARK_SHARPMETAL
@ SPELL_DARK_SHARPMETAL
Definition: Spells.h:113
SPELL_WATER_ICE_BOLT
@ SPELL_WATER_ICE_BOLT
Definition: Spells.h:40
SPELL_FIRE_METEOR_SHOWER
@ SPELL_FIRE_METEOR_SHOWER
Definition: Spells.h:21
ItemGen::Reset
void Reset()
Definition: Items.cpp:133
PARTY_BUFF_RESIST_MIND
@ PARTY_BUFF_RESIST_MIND
Definition: Party.h:83
SpriteObject::uSpriteFrameID
unsigned __int16 uSpriteFrameID
Definition: SpriteObject.h:224
SPELL_AIR_PROTECTION_FROM_AIR
@ SPELL_AIR_PROTECTION_FROM_AIR
Definition: Spells.h:27
pIndoor
IndoorLocation * pIndoor
Definition: Indoor.cpp:49
SPELL_MIND_ENSLAVE
@ SPELL_MIND_ENSLAVE
Definition: Spells.h:83
SPELL_152
@ SPELL_152
Definition: Spells.h:127
result
GLuint64EXT * result
Definition: SDL_opengl_glext.h:9435
SpriteObject::uObjectDescID
unsigned __int16 uObjectDescID
Definition: SpriteObject.h:217
SPELL_FIRE_FIRE_BOLT
@ SPELL_FIRE_FIRE_BOLT
Definition: Spells.h:14
Party::pPartyBuffs
std::array< SpellBuff, 20 > pPartyBuffs
Definition: Party.h:309
SPELL_FIRE_INFERNO
@ SPELL_FIRE_INFERNO
Definition: Spells.h:22
SPELL_DISEASE
@ SPELL_DISEASE
Definition: Spells.h:128
SPELL_EARTH_TELEKINESIS
@ SPELL_EARTH_TELEKINESIS
Definition: Spells.h:57
SPELL_BODY_FIRST_AID
@ SPELL_BODY_FIRST_AID
Definition: Spells.h:86
SPELL_DARK_SOULDRINKER
@ SPELL_DARK_SOULDRINKER
Definition: Spells.h:119
SPELL_LASER_PROJECTILE
@ SPELL_LASER_PROJECTILE
Definition: Spells.h:123
SPELL_AIR_FEATHER_FALL
@ SPELL_AIR_FEATHER_FALL
Definition: Spells.h:26
SpriteObject::vPosition
struct Vec3_int_ vPosition
Definition: SpriteObject.h:218
pParty
Party * pParty
Definition: Party.cpp:30
SPELL_BODY_CURE_POISON
@ SPELL_BODY_CURE_POISON
Definition: Spells.h:90
SPELL_WATER_ICE_BLAST
@ SPELL_WATER_ICE_BLAST
Definition: Spells.h:46
SPELL_SCHOOL_DARK
@ SPELL_SCHOOL_DARK
Definition: Spells.h:142
SPELL_DARK_CONTROL_UNDEAD
@ SPELL_DARK_CONTROL_UNDEAD
Definition: Spells.h:114
PARTY_BUFF_RESIST_WATER
@ PARTY_BUFF_RESIST_WATER
Definition: Party.h:88
AudioPlayer::PlaySpellSound
void PlaySpellSound(unsigned int spell, unsigned int pid)
Definition: AudioPlayer.cpp:476
SPELL_MIND_CHARM
@ SPELL_MIND_CHARM
Definition: Spells.h:77
SPELL_WATER_AWAKEN
@ SPELL_WATER_AWAKEN
Definition: Spells.h:37
SPELL_SCHOOL_MIND
@ SPELL_SCHOOL_MIND
Definition: Spells.h:139
SPELL_SCHOOL_AIR
@ SPELL_SCHOOL_AIR
Definition: Spells.h:133
SPELL_FIRE_IMMOLATION
@ SPELL_FIRE_IMMOLATION
Definition: Spells.h:20
PARTY_BUFF_HASTE
@ PARTY_BUFF_HASTE
Definition: Party.h:79
pSpellDatas
std::array< SpellData, 100 > pSpellDatas
Definition: Spells.cpp:170
SPELL_SCHOOL_EARTH
@ SPELL_SCHOOL_EARTH
Definition: Spells.h:135
SPELL_LIGHT_DISPEL_MAGIC
@ SPELL_LIGHT_DISPEL_MAGIC
Definition: Spells.h:99
SPELL_BODY_REGENERATION
@ SPELL_BODY_REGENERATION
Definition: Spells.h:89
SpriteObject::spell_id
int spell_id
Definition: SpriteObject.h:228
SPELL_FIRE_FIRE_AURA
@ SPELL_FIRE_FIRE_AURA
Definition: Spells.h:16
SPELL_BODY_HAMMERHANDS
@ SPELL_BODY_HAMMERHANDS
Definition: Spells.h:91
SPELL_LIGHT_SUMMON_ELEMENTAL
@ SPELL_LIGHT_SUMMON_ELEMENTAL
Definition: Spells.h:101
SPELL_EARTH_SLOW
@ SPELL_EARTH_SLOW
Definition: Spells.h:50
SPELL_EARTH_STUN
@ SPELL_EARTH_STUN
Definition: Spells.h:49
SPELL_AIR_SHIELD
@ SPELL_AIR_SHIELD
Definition: Spells.h:30
SPELL_DARK_SACRIFICE
@ SPELL_DARK_SACRIFICE
Definition: Spells.h:116
SPELL_BODY_POWER_CURE
@ SPELL_BODY_POWER_CURE
Definition: Spells.h:95
SPELL_MIND_MASS_FEAR
@ SPELL_MIND_MASS_FEAR
Definition: Spells.h:80
SPELL_MIND_CURE_INSANITY
@ SPELL_MIND_CURE_INSANITY
Definition: Spells.h:81
SPELL_QUEST_COMPLETED
@ SPELL_QUEST_COMPLETED
Definition: Spells.h:126
SPELL_LIGHT_SUNRAY
@ SPELL_LIGHT_SUNRAY
Definition: Spells.h:106
LEVEL_Indoor
@ LEVEL_Indoor
Definition: Indoor.h:286
SpriteObject::Create
int Create(int yaw, int pitch, int a4, int a5)
Definition: SpriteObject.cpp:56
SpriteObject::containing_item
struct ItemGen containing_item
Definition: SpriteObject.h:227
SPELL_FIRE_FIREBALL
@ SPELL_FIRE_FIREBALL
Definition: Spells.h:18
SPELL_SPIRIT_RAISE_DEAD
@ SPELL_SPIRIT_RAISE_DEAD
Definition: Spells.h:69
SPELL_SPIRIT_BLESS
@ SPELL_SPIRIT_BLESS
Definition: Spells.h:62
SpriteObject::uSoundID
unsigned __int16 uSoundID
Definition: SpriteObject.h:221
SPELL_BODY_PROTECTION_FROM_BODY
@ SPELL_BODY_PROTECTION_FROM_BODY
Definition: Spells.h:87
SPELL_SCHOOL_BODY
@ SPELL_SCHOOL_BODY
Definition: Spells.h:140
SPELL_SPIRIT_REMOVE_CURSE
@ SPELL_SPIRIT_REMOVE_CURSE
Definition: Spells.h:65
stru193_math::Atan2
unsigned int Atan2(int x, int y)
Definition: OurMath.cpp:46
SPELL_SCHOOL_NONE
@ SPELL_SCHOOL_NONE
Definition: Spells.h:136
PARTY_BUFF_RESIST_EARTH
@ PARTY_BUFF_RESIST_EARTH
Definition: Party.h:75
SPELL_SPIRIT_SPIRIT_LASH
@ SPELL_SPIRIT_SPIRIT_LASH
Definition: Spells.h:68
SPELL_AIR_SPARKS
@ SPELL_AIR_SPARKS
Definition: Spells.h:28
SpriteObject::spell_level
int spell_level
Definition: SpriteObject.h:229
SPELL_EARTH_MASS_DISTORTION
@ SPELL_EARTH_MASS_DISTORTION
Definition: Spells.h:59
SpriteObject::spell_target_pid
int spell_target_pid
Definition: SpriteObject.h:233
SPELL_BODY_CURE_WEAKNESS
@ SPELL_BODY_CURE_WEAKNESS
Definition: Spells.h:85
SPELL_SPIRIT_FATE
@ SPELL_SPIRIT_FATE
Definition: Spells.h:63
SPELL_WATER_ACID_BURST
@ SPELL_WATER_ACID_BURST
Definition: Spells.h:43
SPELL_DARK_DRAGON_BREATH
@ SPELL_DARK_DRAGON_BREATH
Definition: Spells.h:117
uint
unsigned int uint
Definition: MM7.h:4
SPELL_AIR_IMPLOSION
@ SPELL_AIR_IMPLOSION
Definition: Spells.h:33
SPELL_WATER_PROTECTION_FROM_WATER
@ SPELL_WATER_PROTECTION_FROM_WATER
Definition: Spells.h:39
SPELL_AIR_STARBURST
@ SPELL_AIR_STARBURST
Definition: Spells.h:35
SPELL_BODY_CURE_DISEASE
@ SPELL_BODY_CURE_DISEASE
Definition: Spells.h:92
SpriteObject::spell_skill
int spell_skill
Definition: SpriteObject.h:230
SPELL_LIGHT_PRISMATIC_LIGHT
@ SPELL_LIGHT_PRISMATIC_LIGHT
Definition: Spells.h:103
SPELL_EARTH_BLADES
@ SPELL_EARTH_BLADES
Definition: Spells.h:54
SPELL_LIGHT_DIVINE_INTERVENTION
@ SPELL_LIGHT_DIVINE_INTERVENTION
Definition: Spells.h:107
SPELL_BOW_ARROW
@ SPELL_BOW_ARROW
Definition: Spells.h:121
stru_5C6E00
struct stru193_math * stru_5C6E00
Definition: mm7_data.cpp:19
SPELL_WATER_LLOYDS_BEACON
@ SPELL_WATER_LLOYDS_BEACON
Definition: Spells.h:47
PARTY_BUFF_RESIST_BODY
@ PARTY_BUFF_RESIST_BODY
Definition: Party.h:72
SPELL_SPIRIT_DETECT_LIFE
@ SPELL_SPIRIT_DETECT_LIFE
Definition: Spells.h:61
PARTY_BUFF_RESIST_FIRE
@ PARTY_BUFF_RESIST_FIRE
Definition: Party.h:77
uCurrentlyLoadedLevelType
LEVEL_TYPE uCurrentlyLoadedLevelType
Definition: Indoor.cpp:52
IndoorLocation::GetSector
int GetSector(int sX, int sY, int sZ)
Definition: Indoor.cpp:1279
SPELL_MIND_BERSERK
@ SPELL_MIND_BERSERK
Definition: Spells.h:79
SPELL_WATER_ENCHANT_ITEM
@ SPELL_WATER_ENCHANT_ITEM
Definition: Spells.h:44
ObjectList::pObjects
struct ObjectDesc * pObjects
Definition: ObjectList.h:54
BECOME_MAGIC_GUILD_MEMBER
@ BECOME_MAGIC_GUILD_MEMBER
Definition: Spells.h:125
SPELL_AIR_LIGHNING_BOLT
@ SPELL_AIR_LIGHNING_BOLT
Definition: Spells.h:31
pAudioPlayer
AudioPlayer * pAudioPlayer
Definition: AudioPlayer.cpp:20
SPELL_BODY_FLYING_FIST
@ SPELL_BODY_FLYING_FIST
Definition: Spells.h:94
SPELL_MIND_REMOVE_FEAR
@ SPELL_MIND_REMOVE_FEAR
Definition: Spells.h:73
SPELL_AIR_INVISIBILITY
@ SPELL_AIR_INVISIBILITY
Definition: Spells.h:32
SpellFxRenderer::SetPlayerBuffAnim
void SetPlayerBuffAnim(uint16_t uSpellID, uint16_t uPlayerID)
Definition: SpellFxRenderer.cpp:1103
SPELL_DARK_TOXIC_CLOUD
@ SPELL_DARK_TOXIC_CLOUD
Definition: Spells.h:110
SPELL_WATER_RECHARGE_ITEM
@ SPELL_WATER_RECHARGE_ITEM
Definition: Spells.h:42
SPELL_DARK_REANIMATE
@ SPELL_DARK_REANIMATE
Definition: Spells.h:109
SpriteObject::uAttributes
unsigned __int16 uAttributes
Definition: SpriteObject.h:222
SPELL_DARK_SHRINKING_RAY
@ SPELL_DARK_SHRINKING_RAY
Definition: Spells.h:112
SPELL_SCHOOL_LIGHT
@ SPELL_SCHOOL_LIGHT
Definition: Spells.h:141
SPELL_FIRE_HASTE
@ SPELL_FIRE_HASTE
Definition: Spells.h:17
SPELL_AIR_FLY
@ SPELL_AIR_FLY
Definition: Spells.h:34
SPELL_MIND_CURE_PARALYSIS
@ SPELL_MIND_CURE_PARALYSIS
Definition: Spells.h:78
GameTime
Definition: Time.h:14
SPELL_FIRE_INCINERATE
@ SPELL_FIRE_INCINERATE
Definition: Spells.h:23
pObjectList
struct ObjectList * pObjectList
Definition: ObjectList.cpp:5
SPELL_SPIRIT_HEROISM
@ SPELL_SPIRIT_HEROISM
Definition: Spells.h:67
GameTime::FromSeconds
static GameTime FromSeconds(int seconds)
Definition: Time.h:83
SPELL_BODY_PROTECTION_FROM_MAGIC
@ SPELL_BODY_PROTECTION_FROM_MAGIC
Definition: Spells.h:93
SPELL_SCHOOL_MAGIC
@ SPELL_SCHOOL_MAGIC
Definition: Spells.h:137
SpriteObject::spell_caster_pid
int spell_caster_pid
Definition: SpriteObject.h:232
SPELL_LIGHT_DAY_OF_THE_GODS
@ SPELL_LIGHT_DAY_OF_THE_GODS
Definition: Spells.h:102