World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Структура SpellFxRenderer

#include <SpellFxRenderer.h>

+ Граф связей класса SpellFxRenderer:

Открытые члены

 SpellFxRenderer ()
 
 ~SpellFxRenderer ()
 
void DoAddProjectile (float srcX, float srcY, float srcZ, float dstX, float dstY, float dstZ, Texture *)
 
void DrawProjectiles ()
 
void _4A73AA_hanging_trace_particles___like_fire_strike_ice_blast_etc (struct SpriteObject *a2, unsigned int uDiffuse, Texture *texture)
 
void _4A75CC_single_spell_collision_particle (struct SpriteObject *a1, unsigned int uDiffuse, Texture *texture)
 
void _4A7688_fireball_collision_particle (struct SpriteObject *a2)
 
void _4A77FD_implosion_particle_d3d (struct SpriteObject *a1)
 
void _4A78AE_sparks_spell (struct SpriteObject *a1)
 
void _4A7948_mind_blast_after_effect (struct SpriteObject *a1)
 
bool AddMobileLight (struct SpriteObject *a1, unsigned int uDiffuse, int uRadius)
 
void _4A7A66_miltiple_spell_collision_partifles___like_after_sparks_or_lightning (SpriteObject *a1, unsigned int uDiffuse, Texture *texture, float a4)
 
void _4A7C07_stun_spell_fx (struct SpriteObject *a2)
 
void AddProjectile (struct SpriteObject *a2, int a3, Texture *)
 
void _4A7E89_sparkles_on_actor_after_it_casts_buff (struct Actor *pActor, unsigned int uDiffuse)
 
void _4A7F74 (int x, int y, int z)
 
float _4A806F_get_mass_distortion_value (struct Actor *pActor)
 
bool RenderAsSprite (struct SpriteObject *a2)
 
void SetPlayerBuffAnim (uint16_t uSpellID, uint16_t uPlayerID)
 
void FadeScreen__like_Turn_Undead_and_mb_Armageddon (unsigned int uDiffuseColor, unsigned int uFadeTime)
 
int _4A8BFC ()
 
void RenderSpecialEffects ()
 
void DrawPlayerBuffAnims ()
 
void LoadAnimations ()
 

Открытые атрибуты

int field_0
 
stru6_stru2 array_4 [31]
 
int field_1F4
 
int field_1F8
 
int field_1FC
 
int field_200
 
int field_204
 
PlayerBuffAnim pPlayerBuffs [4]
 
ProjectileAnim pProjectiles [32]
 
int uNumProjectiles
 
SpellFX_BillboardpStru1
 
int field_5D0
 
int uAnimLength
 
int uFadeTime
 
int uFadeLength
 
int uFadeColor
 
Textureeffpar01
 
Textureeffpar02
 
Textureeffpar03
 
unsigned int _unused_uSpriteID_sp57c
 
int field_5F4
 
ParticleEngineparticle_engine = nullptr
 

Подробное описание

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

Конструктор(ы)

◆ SpellFxRenderer()

SpellFxRenderer::SpellFxRenderer ( )
inline

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

99  {
101 
102  this->field_204 = 0;
103  this->uFadeTime = 0;
104  this->uNumProjectiles = 0;
105  this->field_0 = 0;
106  this->uAnimLength = 0;
107 
109  pStru1->Initialize(0xFF3C1Eu);
110  }

Перекрестные ссылки field_0, field_204, SpellFX_Billboard::Initialize(), particle_engine, pStru1, Engine_::IocContainer::ResolveParticleEngine(), uAnimLength, uFadeTime и uNumProjectiles.

+ Граф вызовов:

◆ ~SpellFxRenderer()

SpellFxRenderer::~SpellFxRenderer ( )
inline

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

112  {
113  delete pStru1;
114  pStru1 = nullptr;
115  }

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

Методы

◆ DoAddProjectile()

void SpellFxRenderer::DoAddProjectile ( float  srcX,
float  srcY,
float  srcZ,
float  dstX,
float  dstY,
float  dstZ,
Texture texture 
)

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

204  {
205  // int v8; // eax@1
206 
207  // v8 = uNumProjectiles;
208  if (uNumProjectiles < 32) {
216  uNumProjectiles++;
217  }
218 }

Перекрестные ссылки ProjectileAnim::dstX, ProjectileAnim::dstY, ProjectileAnim::dstZ, pProjectiles, ProjectileAnim::srcX, ProjectileAnim::srcY, ProjectileAnim::srcZ, ProjectileAnim::texture и uNumProjectiles.

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

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

◆ DrawProjectiles()

void SpellFxRenderer::DrawProjectiles ( )

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

221  {
222  float v10; // ST1C_4@8
223  float v11; // ST0C_4@8
224  RenderVertexSoft v[2]; // [sp+30h] [bp-68h]@1
225 
226  for (int i = 0; i < uNumProjectiles; ++i) {
228 
229  v[0].vWorldPosition.x = p->srcX;
230  v[0].vWorldPosition.y = p->srcY;
231  v[0].vWorldPosition.z = p->srcZ;
232  v[1].vWorldPosition.x = p->dstX;
233  v[1].vWorldPosition.y = p->dstY;
234  v[1].vWorldPosition.z = p->dstZ;
236 
237  sr_42620A(v);
238 
239  pIndoorCameraD3D->Project(v, 2, 0);
240 
241  v10 = pIndoorCameraD3D->fov_x / v[1].vWorldViewPosition.x * 20.0f;
242  v11 = pIndoorCameraD3D->fov_x / v[0].vWorldViewPosition.x * 20.0f;
243  render->DrawProjectile(v[0].vWorldViewProjX, v[0].vWorldViewProjY,
244  v[0].vWorldViewPosition.x, v11,
245  v[1].vWorldViewProjX, v[1].vWorldViewProjY,
246  v[1].vWorldViewPosition.x, v10, p->texture);
247  }
248 }

Перекрестные ссылки IndoorCameraD3D::fov_x, pIndoorCameraD3D, pProjectiles, IndoorCameraD3D::Project(), render, sr_42620A(), ProjectileAnim::srcX, uNumProjectiles и IndoorCameraD3D::ViewTransform().

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

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

◆ _4A73AA_hanging_trace_particles___like_fire_strike_ice_blast_etc()

void SpellFxRenderer::_4A73AA_hanging_trace_particles___like_fire_strike_ice_blast_etc ( struct SpriteObject a2,
unsigned int  uDiffuse,
Texture texture 
)

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

253  {
254  SpellFxRenderer *thisspellfxrend; // edi@1
255  SpriteObject *v5; // esi@1
256  int v6; // eax@1
257  stru6_stru2 *v7; // eax@2
258  double y; // st7@2
259  double z; // st6@2
260  double v10; // st7@3
261  Particle_sw local_0; // [sp+8h] [bp-68h]@1
262  float x; // [sp+78h] [bp+8h]@2
263 
264  thisspellfxrend = this;
265  memset(&local_0, 0, 0x68u);
266  v5 = a2;
267  v6 = a2->field_54;
268  if (v6) {
269  v7 = &thisspellfxrend->array_4[v6 & 0x1F]; // v7 particle origin?
270  x = ((float)a2->vPosition.x - v7->flt_0_x) * 0.5f + v7->flt_0_x;
271  y = ((float)v5->vPosition.y - v7->flt_4_y) * 0.5f + v7->flt_4_y;
272  z = ((float)v5->vPosition.z - v7->flt_8_z) * 0.5f + v7->flt_8_z;
273  local_0.type =
275  local_0.uDiffuse = uDiffuse;
276  local_0.x = x + 4.0;
277  local_0.y = y;
278  local_0.z = z;
279  local_0.r = 0.0;
280  local_0.g = 0.0;
281  local_0.b = 0.0;
282  local_0.timeToLive = (rand() & 0x40) + 96;
283  local_0.texture = texture;
284  local_0.particle_size = 1.0f;
285  particle_engine->AddParticle(&local_0);
286  local_0.x = x - 4.0f;
287  particle_engine->AddParticle(&local_0);
288  local_0.x = (float)v5->vPosition.x + 4.0f;
289  local_0.y = (float)v5->vPosition.y;
290  local_0.z = (float)v5->vPosition.z;
291  particle_engine->AddParticle(&local_0);
292  local_0.x = (float)v5->vPosition.x - 4.0f;
293  particle_engine->AddParticle(&local_0);
294  thisspellfxrend->array_4[v5->field_54 & 0x1F].flt_0_x = (float)v5->vPosition.x;
295  thisspellfxrend->array_4[v5->field_54 & 0x1F].flt_4_y = (float)v5->vPosition.y;
296  thisspellfxrend->array_4[v5->field_54 & 0x1F].flt_8_z = (float)v5->vPosition.z;
297  } else {
298  a2->field_54 = thisspellfxrend->field_0++;
299  thisspellfxrend->array_4[a2->field_54 & 0x1F].flt_0_x = (float)a2->vPosition.x;
300  thisspellfxrend->array_4[a2->field_54 & 0x1F].flt_4_y = (float)a2->vPosition.y;
301  thisspellfxrend->array_4[a2->field_54 & 0x1F].flt_8_z = (float)a2->vPosition.z;
302  v10 = (float)a2->vPosition.x;
303  local_0.type =
305  local_0.uDiffuse = uDiffuse;
306  local_0.x = v10 + 4.0f;
307  local_0.y = (float)a2->vPosition.y;
308  local_0.z = (float)a2->vPosition.z;
309  local_0.r = 0.0f;
310  local_0.g = 0.0f;
311  local_0.b = 0.0f;
312  local_0.particle_size = 1.0f;
313  local_0.timeToLive = (rand() & 0x7F) + 128;
314  local_0.texture = texture;
315  particle_engine->AddParticle(&local_0);
316  local_0.x = (float)a2->vPosition.x - 4.0f;
317  particle_engine->AddParticle(&local_0);
318  }
319 }

Перекрестные ссылки ParticleEngine::AddParticle(), array_4, Particle_sw::b, field_0, SpriteObject::field_54, stru6_stru2::flt_0_x, stru6_stru2::flt_4_y, stru6_stru2::flt_8_z, Particle_sw::g, particle_engine, Particle_sw::particle_size, ParticleType_8, ParticleType_Bitmap, ParticleType_Rotating, Particle_sw::r, Particle_sw::texture, Particle_sw::timeToLive, Particle_sw::type, Particle_sw::uDiffuse, SpriteObject::vPosition, Particle_sw::x, Particle_sw::y и Particle_sw::z.

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

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

◆ _4A75CC_single_spell_collision_particle()

void SpellFxRenderer::_4A75CC_single_spell_collision_particle ( struct SpriteObject a1,
unsigned int  uDiffuse,
Texture texture 
)

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

323  {
324  double v4; // st7@1
325  signed int v5; // edi@1
326  Particle_sw local_0; // [sp+8h] [bp-68h]@1
327 
328  memset(&local_0, 0, 0x68u);
330  local_0.x = (float)a1->vPosition.x;
331  local_0.y = (float)a1->vPosition.y;
332  v4 = (float)a1->vPosition.z;
333  local_0.uDiffuse = uDiffuse;
334  local_0.z = v4;
335  v5 = 10;
336  local_0.timeToLive = (rand() & 0x7F) + 128;
337  local_0.texture = texture;
338  local_0.particle_size = 1.0f;
339  do {
340  local_0.r = (float)(rand() & 0x1FF) - 255.0f;
341  local_0.g = (float)(rand() & 0x1FF) - 255.0f;
342  local_0.b = (float)(rand() & 0x1FF) - 255.0f;
343  particle_engine->AddParticle(&local_0);
344  --v5;
345  } while (v5);
346 }

Перекрестные ссылки ParticleEngine::AddParticle(), Particle_sw::b, Particle_sw::g, particle_engine, Particle_sw::particle_size, ParticleType_1, ParticleType_Bitmap, ParticleType_Rotating, Particle_sw::r, Particle_sw::texture, Particle_sw::timeToLive, Particle_sw::type, Particle_sw::uDiffuse, SpriteObject::vPosition, Particle_sw::x, Particle_sw::y и Particle_sw::z.

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

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

◆ _4A7688_fireball_collision_particle()

void SpellFxRenderer::_4A7688_fireball_collision_particle ( struct SpriteObject a2)

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

348  {
349  double v3 = (double)a2->uSpriteFrameID / (double)a2->GetLifetime();
350  double v4;
351  if (v3 >= 0.75)
352  v4 = (1.0 - v3) * 4.0;
353  else
354  v4 = v3 * 1.333333333333333;
355 
356  Particle_sw local_0 = { 0 };
358  local_0.uDiffuse = 0xFF3C1E;
359  local_0.x = (float)a2->vPosition.x;
360  local_0.y = (float)a2->vPosition.y;
361  local_0.z = (float)a2->vPosition.z;
362  local_0.timeToLive = (rand() & 0x7F) + 128;
363  local_0.texture = this->effpar01;
364  local_0.particle_size = 1.0;
365 
366  // 10 fireball sparks
367  for (unsigned int i = 0; i < 10; ++i) {
368  local_0.r = (rand() & 0x1FF) - 255;
369  local_0.g = (rand() & 0x1FF) - 255;
370  local_0.b = (rand() & 0x1FF) - 255;
371  particle_engine->AddParticle(&local_0);
372  }
373 
375  (float)a2->vPosition.y,
376  (float)a2->vPosition.z,
377  floorf(0.5f + (512.0 * v3)),
378  ModulateColor(0xFF3C1E, v4));
379 }

Перекрестные ссылки SpellFX_Billboard::_47829F_sphere_particle(), ParticleEngine::AddParticle(), Particle_sw::b, effpar01, Particle_sw::g, SpriteObject::GetLifetime(), ModulateColor(), particle_engine, Particle_sw::particle_size, ParticleType_1, ParticleType_Bitmap, ParticleType_Rotating, pStru1, Particle_sw::r, Particle_sw::texture, Particle_sw::timeToLive, Particle_sw::type, Particle_sw::uDiffuse, SpriteObject::uSpriteFrameID, SpriteObject::vPosition, Particle_sw::x, Particle_sw::y и Particle_sw::z.

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

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

◆ _4A77FD_implosion_particle_d3d()

void SpellFxRenderer::_4A77FD_implosion_particle_d3d ( struct SpriteObject a1)

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

381  {
382  double v4 = (double)a1->uSpriteFrameID / (double)a1->GetLifetime();
383  double v5;
384  if (v4 >= 0.75) {
385  v5 = v4 * 4.0;
386  } else {
387  v5 = v4 * 1.333333333333333;
388  }
389 
391  a1->vPosition.y,
392  a1->vPosition.z,
393  floorf(0.5f + (512.f - v4 * 512.f)),
394  ModulateColor(0x7E7E7E, v5));
395 }

Перекрестные ссылки SpellFX_Billboard::_47829F_sphere_particle(), SpriteObject::GetLifetime(), ModulateColor(), pStru1, SpriteObject::uSpriteFrameID и SpriteObject::vPosition.

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

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

◆ _4A78AE_sparks_spell()

void SpellFxRenderer::_4A78AE_sparks_spell ( struct SpriteObject a1)

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

397  {
398  Particle_sw local_0 = { 0 };
399  local_0.x = (float)a1->vPosition.x;
400  local_0.y = (float)a1->vPosition.y;
401  local_0.z = (float)a1->vPosition.z;
402  local_0.type = ParticleType_Sprite;
403  local_0.uDiffuse = 0x7F7F7F;
404  local_0.timeToLive = 1;
405  local_0.r = 0.0f;
406  local_0.g = 0.0f;
407  local_0.b = 0.0f;
408  local_0.texture = a1->GetSpriteFrame()->hw_sprites[0]->texture;
409  local_0.particle_size = 2.0f;
410  particle_engine->AddParticle(&local_0);
411 }

Перекрестные ссылки ParticleEngine::AddParticle(), Particle_sw::b, Particle_sw::g, SpriteObject::GetSpriteFrame(), SpriteFrame::hw_sprites, particle_engine, Particle_sw::particle_size, ParticleType_Sprite, Particle_sw::r, Particle_sw::texture, Sprite::texture, Particle_sw::timeToLive, Particle_sw::type, Particle_sw::uDiffuse, SpriteObject::vPosition, Particle_sw::x, Particle_sw::y и Particle_sw::z.

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

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

◆ _4A7948_mind_blast_after_effect()

void SpellFxRenderer::_4A7948_mind_blast_after_effect ( struct SpriteObject a1)

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

414  {
415  Particle_sw Dst = { 0 };
417  Dst.uDiffuse = 0x7F7F7F;
418  Dst.x = (float)a1->vPosition.x;
419  Dst.y = (float)a1->vPosition.y;
420  Dst.z = (float)a1->vPosition.z;
421  Dst.texture = a1->GetSpriteFrame()->hw_sprites[0]->texture;
422  Dst.particle_size = 1.0;
423  Dst.timeToLive = (rand() & 0x7F) + 128;
424  for (int i = 0; i < 10; i++) {
425  Dst.r = (float)(rand() & 0x1FF) - 255.0f;
426  Dst.g = (float)(rand() & 0x1FF) - 255.0f;
427  Dst.b = (float)(rand() & 0x1FF) - 255.0f;
429  }
430 }

Перекрестные ссылки ParticleEngine::AddParticle(), Particle_sw::b, Particle_sw::g, SpriteObject::GetSpriteFrame(), SpriteFrame::hw_sprites, particle_engine, Particle_sw::particle_size, ParticleType_1, ParticleType_Rotating, ParticleType_Sprite, Particle_sw::r, Particle_sw::texture, Sprite::texture, Particle_sw::timeToLive, Particle_sw::type, Particle_sw::uDiffuse, SpriteObject::vPosition, Particle_sw::x, Particle_sw::y и Particle_sw::z.

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

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

◆ AddMobileLight()

bool SpellFxRenderer::AddMobileLight ( struct SpriteObject a1,
unsigned int  uDiffuse,
int  uRadius 
)

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

434  {
436  a1->vPosition.x, a1->vPosition.y, a1->vPosition.z, a1->uSectorID,
437  uRadius, (uDiffuse & 0x00FF0000) >> 16, (uDiffuse & 0x0000FF00) >> 8,
438  uDiffuse & 0x000000FF, _4E94D3_light_type);
439 }

Перекрестные ссылки _4E94D3_light_type, LightsStack_MobileLight_::AddLight(), pMobileLightsStack, SpriteObject::uSectorID и SpriteObject::vPosition.

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

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

◆ _4A7A66_miltiple_spell_collision_partifles___like_after_sparks_or_lightning()

void SpellFxRenderer::_4A7A66_miltiple_spell_collision_partifles___like_after_sparks_or_lightning ( SpriteObject a1,
unsigned int  uDiffuse,
Texture texture,
float  a4 
)

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

444  {
445  int v5; // eax@1
446  char v6; // al@1
447  double v7; // st6@1
448  double v8; // st6@1
449  double v9; // st7@1
450  double v10; // st6@1
451  Particle_sw local_0; // [sp+0h] [bp-6Ch]@1
452  float v12; // [sp+68h] [bp-4h]@1
453  float a1a; // [sp+74h] [bp+8h]@1
454  float uDiffusea; // [sp+78h] [bp+Ch]@1
455  float uTextureIDa; // [sp+7Ch] [bp+10h]@1
456 
457  memset(&local_0, 0, 0x68u);
459  local_0.x = (float)a1->vPosition.x;
460  v5 = a1->vPosition.z;
461  local_0.y = (float)a1->vPosition.y;
462  local_0.uDiffuse = uDiffuse;
463  local_0.z = (float)(v5 + 32);
464  v6 = rand();
465  local_0.particle_size = 1.0;
466  v7 = 0.0 * a4;
467  local_0.timeToLive = (v6 & 0x7F) + 128;
468  local_0.texture = texture;
469  a1a = v7;
470  local_0.r = v7;
471  local_0.g = a4;
472  local_0.b = a4;
473  particle_engine->AddParticle(&local_0);
474  v8 = 0.70710677 * a4;
475  uDiffusea = v8;
476  local_0.r = v8;
477  local_0.g = v8;
478  local_0.b = a4;
479  particle_engine->AddParticle(&local_0);
480  local_0.g = a1a;
481  local_0.r = a4;
482  local_0.b = a4;
483  particle_engine->AddParticle(&local_0);
484  local_0.r = uDiffusea;
485  local_0.b = a4;
486  v9 = -uDiffusea;
487  uTextureIDa = v9;
488  local_0.g = v9;
489  particle_engine->AddParticle(&local_0);
490  v10 = -1.0 * a4;
491  local_0.r = a1a;
492  v12 = v10;
493  local_0.g = v10;
494  local_0.b = a4;
495  particle_engine->AddParticle(&local_0);
496  local_0.b = a4;
497  local_0.r = uTextureIDa;
498  local_0.g = uTextureIDa;
499  particle_engine->AddParticle(&local_0);
500  local_0.r = v12;
501  local_0.g = a1a;
502  local_0.b = a4;
503  particle_engine->AddParticle(&local_0);
504  local_0.r = uTextureIDa;
505  local_0.g = uDiffusea;
506  local_0.b = a4;
507  particle_engine->AddParticle(&local_0);
508 }

Перекрестные ссылки ParticleEngine::AddParticle(), Particle_sw::b, Particle_sw::g, particle_engine, Particle_sw::particle_size, ParticleType_1, ParticleType_Bitmap, ParticleType_Rotating, Particle_sw::r, Particle_sw::texture, Particle_sw::timeToLive, Particle_sw::type, Particle_sw::uDiffuse, SpriteObject::vPosition, Particle_sw::x, Particle_sw::y и Particle_sw::z.

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

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

◆ _4A7C07_stun_spell_fx()

void SpellFxRenderer::_4A7C07_stun_spell_fx ( struct SpriteObject a2)

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

510  {
511  Particle_sw local_0 = { 0 };
512 
513  if (a2->field_54 != 0) {
514  stru6_stru2 *v6 = &array_4[a2->field_54 & 0x1F];
515  local_0.type = ParticleType_Sprite;
516  local_0.uDiffuse = 0xFFFFFF;
517  local_0.x = ((float)a2->vPosition.x - v6->flt_0_x) * 0.5f + v6->flt_0_x;
518  local_0.y = ((float)a2->vPosition.y - v6->flt_4_y) * 0.5f + v6->flt_4_y;
519  local_0.z = ((float)a2->vPosition.z - v6->flt_8_z) * 0.5f + v6->flt_8_z;
520  local_0.r = 0.0f;
521  local_0.g = 0.0f;
522  local_0.b = 0.0f;
523 
524  __debugbreak(); // fix float values
525  HEXRAYS_LODWORD(local_0.particle_size) = 0x40400000u;
526  local_0.timeToLive = (rand() & 0x3F) + 64;
527  local_0.texture = a2->GetSpriteFrame()->hw_sprites[0]->texture;
528  particle_engine->AddParticle(&local_0);
529  HEXRAYS_LODWORD(local_0.particle_size) = 0x40800000u;
530  local_0.x = (float)a2->vPosition.x;
531  local_0.y = (float)a2->vPosition.y;
532  local_0.z = (float)a2->vPosition.z;
533  local_0.timeToLive = (rand() & 0x3F) + 64;
534  particle_engine->AddParticle(&local_0);
535  v6->flt_0_x = (float)a2->vPosition.x;
536  v6->flt_4_y = (float)a2->vPosition.y;
537  v6->flt_8_z = (float)a2->vPosition.z;
538  } else {
539  a2->field_54 = field_0++;
540  array_4[a2->field_54 & 0x1F].flt_0_x = (float)a2->vPosition.x;
541  array_4[a2->field_54 & 0x1F].flt_4_y = (float)a2->vPosition.y;
542  array_4[a2->field_54 & 0x1F].flt_8_z = (float)a2->vPosition.z;
543  local_0.type = ParticleType_Sprite;
544  local_0.uDiffuse = 0xFFFFFF;
545  __debugbreak(); // fix float values
546  HEXRAYS_LODWORD(local_0.particle_size) = 0x40000000u;
547  local_0.x = (float)a2->vPosition.x;
548  local_0.y = (float)a2->vPosition.y;
549  local_0.z = (float)a2->vPosition.z;
550  local_0.r = 0.0f;
551  local_0.g = 0.0f;
552  local_0.b = 0.0f;
553  local_0.timeToLive = (rand() & 0x3F) + 64;
554  local_0.texture = a2->GetSpriteFrame()->hw_sprites[0]->texture;
555  particle_engine->AddParticle(&local_0);
556  }
557 }

Перекрестные ссылки __debugbreak(), ParticleEngine::AddParticle(), array_4, Particle_sw::b, field_0, SpriteObject::field_54, stru6_stru2::flt_0_x, stru6_stru2::flt_4_y, stru6_stru2::flt_8_z, Particle_sw::g, SpriteObject::GetSpriteFrame(), SpriteFrame::hw_sprites, particle_engine, Particle_sw::particle_size, ParticleType_Sprite, Particle_sw::r, Particle_sw::texture, Sprite::texture, Particle_sw::timeToLive, Particle_sw::type, Particle_sw::uDiffuse, SpriteObject::vPosition, Particle_sw::x, Particle_sw::y и Particle_sw::z.

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

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

◆ AddProjectile()

void SpellFxRenderer::AddProjectile ( struct SpriteObject a2,
int  a3,
Texture texture 
)

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

561  {
562  if (a2->field_54) {
564  array_4[a2->field_54 & 0x1F].flt_4_y,
565  array_4[a2->field_54 & 0x1F].flt_8_z, a2->vPosition.x,
566  a2->vPosition.y, a2->vPosition.z, texture);
567  } else {
568  a2->field_54 = field_0++;
569  array_4[a2->field_54 & 0x1F].flt_0_x = (float)a2->vPosition.x;
570  array_4[a2->field_54 & 0x1F].flt_4_y = (float)a2->vPosition.y;
571  array_4[a2->field_54 & 0x1F].flt_8_z = (float)a2->vPosition.z;
572  }
573 }

Перекрестные ссылки array_4, DoAddProjectile(), field_0, SpriteObject::field_54, stru6_stru2::flt_0_x, stru6_stru2::flt_4_y, stru6_stru2::flt_8_z и SpriteObject::vPosition.

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

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

◆ _4A7E89_sparkles_on_actor_after_it_casts_buff()

void SpellFxRenderer::_4A7E89_sparkles_on_actor_after_it_casts_buff ( struct Actor pActor,
unsigned int  uDiffuse 
)

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

577  {
578  Actor *v3; // edi@1
579  int v4; // ebx@3
580  // int result; // eax@5
581  Particle_sw Dst; // [sp+Ch] [bp-6Ch]@1
582  int v7; // [sp+74h] [bp-4h]@2
583  signed int pActora; // [sp+80h] [bp+8h]@1
584 
585  memset(&Dst, 0, 0x68u);
587  Dst.timeToLive = (rand() & 0x7F) + 128;
588  v3 = pActor;
589  Dst.texture = this->effpar02;
590  pActora = 50;
591  Dst.particle_size = 1.0;
592  do {
593  v7 = (unsigned __int8)rand() + v3->vPosition.x - 127;
594  Dst.x = (float)v7;
595  v7 = (unsigned __int8)rand() + v3->vPosition.y - 127;
596  Dst.y = (float)v7;
597  v7 = v3->vPosition.z + (unsigned __int8)rand();
598  Dst.z = (float)v7;
599  if (uDiffuse) {
600  Dst.uDiffuse = uDiffuse;
601  } else {
602  v4 = rand() << 16;
603  Dst.uDiffuse = rand() | v4;
604  }
606  --pActora;
607  } while (pActora);
608 }

Перекрестные ссылки ParticleEngine::AddParticle(), effpar02, particle_engine, Particle_sw::particle_size, ParticleType_8, ParticleType_Bitmap, ParticleType_Rotating, Particle_sw::texture, Particle_sw::timeToLive, Particle_sw::type, Particle_sw::uDiffuse, Particle_sw::x, Particle_sw::y и Particle_sw::z.

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

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

◆ _4A7F74()

void SpellFxRenderer::_4A7F74 ( int  x,
int  y,
int  z 
)

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

611  {
612  char v5; // al@1
613  signed int v6; // edi@1
614  double v8; // st7@2
615  double v9; // st7@2
616  Particle_sw local_0; // [sp+8h] [bp-78h]@1
617  double v11; // [sp+70h] [bp-10h]@1
618  double v12; // [sp+78h] [bp-8h]@1
619  float z1; // [sp+88h] [bp+8h]@2
620 
621  memset(&local_0, 0, sizeof(local_0));
623  local_0.uDiffuse = 0x7E7E7E;
624  v5 = rand();
625  local_0.particle_size = 1.0;
626  v6 = 8;
627  local_0.timeToLive = (v5 & 0x7F) + 128;
628 
629  v12 = (float)x;
630  local_0.texture = this->effpar01;
631  v11 = (float)y;
632  do {
633  v8 = pRnd->GetRandom();
634  local_0.x = v8 * 40.0f - 20.0f + v12;
635  v9 = pRnd->GetRandom();
636  z1 = (float)z;
637  local_0.z = z1;
638  local_0.y = v9 * 40.0f - 20.0f + v11;
639  local_0.r = pRnd->GetRandom() * 400.0f - 200.0f;
640  local_0.g = pRnd->GetRandom() * 400.0f - 200.0f;
641  local_0.b = pRnd->GetRandom() * 150.0f + 50.0f;
642  particle_engine->AddParticle(&local_0);
643  --v6;
644  } while (v6);
645 }

Перекрестные ссылки ParticleEngine::AddParticle(), Particle_sw::b, effpar01, Particle_sw::g, Random::GetRandom(), particle_engine, Particle_sw::particle_size, ParticleType_1, ParticleType_Bitmap, ParticleType_Rotating, pRnd, Particle_sw::r, Particle_sw::texture, Particle_sw::timeToLive, Particle_sw::type, Particle_sw::uDiffuse, Particle_sw::x, Particle_sw::y и Particle_sw::z.

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

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

◆ _4A806F_get_mass_distortion_value()

float SpellFxRenderer::_4A806F_get_mass_distortion_value ( struct Actor pActor)

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

648  {
649  int v2; // ecx@1
650  int v3; // eax@1
651  double v4; // st7@2
652 
653  v3 = *(int *)&pActor->pActorBuffs[ACTOR_BUFF_MASS_DISTORTION]
654  .expire_time.value -
656  if (v3 > 64) {
657  v2 = (v3 - 64) * (v3 - 64);
658  v4 = (double)v2 / 5120.0 + 0.2;
659  } else if (v3 > 0) {
660  v2 = v3 * v3;
661  v4 = 1.0 - (double)(signed int)(v3 * v3) / 5120.0;
662  } else {
664  v4 = 1.0;
665  }
666 
667  return v4;
668 }

Перекрестные ссылки ACTOR_BUFF_MASS_DISTORTION, SpellBuff::expire_time, Actor::pActorBuffs, pMiscTimer, SpellBuff::Reset(), Timer::uTotalGameTimeElapsed и GameTime::value.

Используется в IndoorLocation::PrepareActorRenderList_BLV() и OutdoorLocation::PrepareActorsDrawList().

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

◆ RenderAsSprite()

bool SpellFxRenderer::RenderAsSprite ( struct SpriteObject a2)

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

671  {
672  // SpellFxRenderer *v2; // ebx@1
673  int result; // eax@1
674  // int v4; // eax@27
675  // unsigned int diffuse; // esi@41
676  // int v6; // ecx@49
677  // int v7; // eax@54
678  // int v8; // eax@55
679  // char v9; // zf@56
680  // int v10; // eax@59
681  // int v11; // eax@61
682  // int v12; // eax@85
683  // int v13; // eax@86
684  // int v14; // eax@96
685  // int v15; // eax@111
686  // int v16; // eax@118
687  // int v17; // eax@139
688  // int v18; // eax@140
689  // int v19; // eax@141
690  // int v20; // eax@151
691  char pContainer[7]; // [sp+10h] [bp-8h]@81
692 
693  // __debugbreak(); // need to refactor carefully & collect data
694  // v2 = this;
695  result = a2->uType;
696 
697  switch (a2->uType) {
701  a2, 0x00AAAFF, effpar01);
702  return false;
706  return true;
707 
710  a2, 0x5C310E, effpar01);
711  return false;
714  return false;
715 
718  a2, 0xFF3C1E, effpar01);
719  return false;
722  return false;
723 
726  a2, 0x0062D0, effpar01);
727  return false;
730  return false;
731 
734  a2, 0x0AB450, effpar01);
735  return false;
738  return false;
739 
742  a2, 0xC8C805, effpar01);
743  return false;
746  return false;
747 
750  a2, 0xFFFFFF, effpar01);
751  return false;
754  return false;
755 
758  a2, 0x7E7E7E, effpar01);
759  return false;
762  return false;
763 
767  return true;
768 
770  AddMobileLight(a2, 0xFF0000, 256);
771  return false;
772 
773  case 601: // SPRITE_OBJECT_EXPLODE:
774  // __debugbreak(); // what kind of effect is this?
775  AddMobileLight(a2, 0xFF3C1E, 256);
776  return true;
777 
778  case 546:
779  case 547:
780  case 548:
781  case 549:
782  case 551:
783  case 552:
784  case 553:
785  case 554:
786  case 557:
787  case 558:
788  case 559:
789  case 560:
790  case 561:
791  case 562:
792  case 563:
793  case 564:
794  case 565:
795  case 566:
796  case 567:
797  case 568:
798  case 569:
799  case 570:
800  case 571:
801  case 572:
802  case 573:
803  case 574:
804  case 575:
805  case 576:
806  case 577:
807  case 578:
808  case 579:
809  case 580:
810  case 581:
811  case 582:
812  case 583:
813  case 584:
814  case 585:
815  case 586:
816  case 587:
817  case 588:
818  case 589:
819  case 590:
820  case 591:
821  case 592:
822  case 593:
823  case 594:
824  case 595:
825  case 596:
826  case 597:
827  case 598:
828  case 599:
830  return false;
831 
832  case SPRITE_811:
833  case SPRITE_812:
834  case SPRITE_813:
835  case SPRITE_814:
836  return true;
837 
840  a2, 0xFF3C1E, effpar01);
841  AddMobileLight(a2, 0xFF3C1E, 256);
842  return false;
843 
846  AddMobileLight(a2, 0xFF3C1E, 256);
847  return false;
848 
851  a2, 0xFF3C1E, effpar01);
852  AddMobileLight(a2, 0xFF3C1E, 256);
853  return false;
854 
856  AddMobileLight(a2, 0xFF3C1E, 256);
857  // if (render->pRenderD3D)
858  {
859  if (/*PID_TYPE(a2->spell_caster_pid) != OBJECT_Actor &&*/
860  PID_TYPE(a2->spell_caster_pid) != OBJECT_Item) {
861  if (field_204 != 4) {
862  field_204++;
864  }
865  return true; // sphere and sprite
866  }
867  }
868  return true;
869 
871  return true;
874  a2, 0xFF3C1E, effpar01, 250.0);
875  AddMobileLight(a2, 0xFF3C1E, 256);
876  return false;
877 
880  return false;
881 
883  return true;
886  a2, 0xFF3C1E, effpar01, 300.0);
888  a2, 0xFF3C1E, effpar01, 250.0);
890  a2, 0xFF3C1E, effpar01, 200.0);
891  AddMobileLight(a2, 0xFF3C1E, 256);
892  return false;
893 
896  a2, 0xFF3C1Eu, effpar01, 250.0);
897  return false;
898 
900  return true;
904  AddMobileLight(a2, 0xFF3C1E, 256);
905  return false;
906 
908  // if ( !render->pRenderD3D )
909  // return true;
911  AddMobileLight(a2, 0x2F3351, 128); // 0x64640F
912  return false;
913 
915  // if ( !render->pRenderD3D )
916  // return true;
917  memcpy(pContainer, "sp18h1", 7);
918  pRnd->SetRange(1, 6);
919  pContainer[5] = pRnd->GetInRange() + '0';
920  AddProjectile(a2, 100, assets->GetBitmap(pContainer));
921  return false;
924  a2, 0xC8C814, effpar02, 200.0);
925  AddMobileLight(a2, 0xC8C814, 256);
926  return false;
927 
931  return false;
932 
934  return true;
937  a2, 0xC8C814, effpar01, 200.0);
938  AddMobileLight(a2, 0xC8C814, 256);
939  return false;
940 
943  a2, 0xAB450, effpar01);
944  AddMobileLight(a2, 0xAB450, 256);
945  return false;
948  AddMobileLight(a2, 0xAB450, 256);
949  return false;
950 
952  return true;
955  AddMobileLight(a2, 0x9EB9F1, 256);
956  return false;
957 
960  a2, 0x0AB450, effpar01);
961  AddMobileLight(a2, 0x0AB450, 256);
962  return false;
964  return true;
965 
967  return true;
970  AddMobileLight(a2, 0x9EB9F1, 256);
971  return false;
974  a2, 0x9EB9F1, effpar01);
975  return false;
976 
978  // if ( !render->pRenderD3D )
979  // return true;
981  return false;
982 
985  return true;
986 
988  return true;
991  return false;
992 
994  return true;
995 
997  return true;
1000  return false;
1001 
1004  a2, 0x7E7E7E, effpar01);
1005  return true;
1008  a2, 0x7E7E7E, effpar01, 200.0);
1009  return false;
1012  a2, 0x7E7E7E, effpar01);
1013  return false;
1014 
1016  return false;
1017 
1025  return true;
1026 
1029  return false;
1030 
1032  // if ( !render->pRenderD3D )
1033  // return true;
1035  AddMobileLight(a2, 0x64640F, 128);
1036  return false;
1039  return false;
1040 
1042  return true;
1045  AddMobileLight(a2, 0xF00000, 256);
1046  return false;
1047 
1050  a2, 0xFFFFFF, effpar03);
1051  AddMobileLight(a2, 0xFFFFFF, 128);
1052  return false;
1055  AddMobileLight(a2, 0xFFFFFF, 256);
1056  return false;
1057 
1059  AddMobileLight(a2, 0xFFFFFF, 64);
1060  return false;
1061 
1063  return true;
1064 
1067  return true;
1068 
1070  AddMobileLight(a2, 0xFFFFFFu, 128);
1071  // if ( !render->pRenderD3D )
1072  // return true;
1073  AddProjectile(a2, 100, nullptr);
1074  return false;
1077  return false;
1078 
1080  return true;
1081 
1085  return true;
1086 
1088  return true;
1091  return false;
1092 
1096  return true;
1097  }
1098 
1099  return false;
1100 }

Перекрестные ссылки _4A73AA_hanging_trace_particles___like_fire_strike_ice_blast_etc(), _4A75CC_single_spell_collision_particle(), _4A7688_fireball_collision_particle(), _4A77FD_implosion_particle_d3d(), _4A78AE_sparks_spell(), _4A7948_mind_blast_after_effect(), _4A7A66_miltiple_spell_collision_partifles___like_after_sparks_or_lightning(), _4A7C07_stun_spell_fx(), AddMobileLight(), AddProjectile(), assets, effpar01, effpar02, effpar03, field_204, AssetsManager::GetBitmap(), Random::GetInRange(), OBJECT_Item, pRnd, Random::SetRange(), SpriteObject::spell_caster_pid, SPRITE_811, SPRITE_812, SPRITE_813, SPRITE_814, SPRITE_ARROW_PROJECTILE, SPRITE_BLASTER_IMPACT, SPRITE_BLASTER_PROJECTILE, SPRITE_PROJECTILE_500, SPRITE_PROJECTILE_500_IMPACT, SPRITE_PROJECTILE_505, SPRITE_PROJECTILE_505_IMPACT, SPRITE_PROJECTILE_510, SPRITE_PROJECTILE_510_IMPACT, SPRITE_PROJECTILE_515, SPRITE_PROJECTILE_515_IMPACT, SPRITE_PROJECTILE_520, SPRITE_PROJECTILE_520_IMPACT, SPRITE_PROJECTILE_525, SPRITE_PROJECTILE_525_IMPACT, SPRITE_PROJECTILE_530, SPRITE_PROJECTILE_530_IMPACT, SPRITE_PROJECTILE_535, SPRITE_PROJECTILE_535_IMPACT, SPRITE_PROJECTILE_540, SPRITE_PROJECTILE_540_IMPACT, SPRITE_PROJECTILE_550, SPRITE_SPELL_AIR_IMPLOSION, SPRITE_SPELL_AIR_IMPLOSION_IMPACT, SPRITE_SPELL_AIR_LIGHNING_BOLT, SPRITE_SPELL_AIR_LIGHNING_BOLT_IMPACT, SPRITE_SPELL_AIR_SPARKS, SPRITE_SPELL_AIR_STARBURST, SPRITE_SPELL_AIR_STARBURST_1, SPRITE_SPELL_BODY_FLYING_FIST, SPRITE_SPELL_BODY_FLYING_FIST_IMPACT, SPRITE_SPELL_BODY_HARM, SPRITE_SPELL_BODY_HARM_IMPACT, SPRITE_SPELL_DARK_CONTROL_UNDEAD, SPRITE_SPELL_DARK_DRAGON_BREATH, SPRITE_SPELL_DARK_DRAGON_BREATH_1, SPRITE_SPELL_DARK_REANIMATE, SPRITE_SPELL_DARK_SACRIFICE, SPRITE_SPELL_DARK_SHARPMETAL, SPRITE_SPELL_DARK_SHARPMETAL_IMPACT, SPRITE_SPELL_DARK_SHRINKING_RAY, SPRITE_SPELL_DARK_TOXIC_CLOUD, SPRITE_SPELL_EARTH_BLADES, SPRITE_SPELL_EARTH_BLADES_IMPACT, SPRITE_SPELL_EARTH_DEADLY_SWARM, SPRITE_SPELL_EARTH_DEADLY_SWARM_IMPACT, SPRITE_SPELL_EARTH_DEATH_BLOSSOM, SPRITE_SPELL_EARTH_DEATH_BLOSSOM_FALLOUT, SPRITE_SPELL_EARTH_DEATH_BLOSSOM_IMPACT, SPRITE_SPELL_EARTH_MASS_DISTORTION, SPRITE_SPELL_EARTH_ROCK_BLAST, SPRITE_SPELL_EARTH_ROCK_BLAST_IMPACT, SPRITE_SPELL_EARTH_STUN, SPRITE_SPELL_EARTH_TELEKINESIS, SPRITE_SPELL_FIRE_FIRE_BOLT, SPRITE_SPELL_FIRE_FIRE_BOLT_IMPACT, SPRITE_SPELL_FIRE_FIRE_SPIKE, SPRITE_SPELL_FIRE_FIRE_SPIKE_IMPACT, SPRITE_SPELL_FIRE_FIREBALL, SPRITE_SPELL_FIRE_FIREBALL_IMPACT, SPRITE_SPELL_FIRE_IMMOLATION, SPRITE_SPELL_FIRE_INCINERATE, SPRITE_SPELL_FIRE_INCINERATE_IMPACT, SPRITE_SPELL_FIRE_INFERNO, SPRITE_SPELL_FIRE_METEOR_SHOWER, SPRITE_SPELL_FIRE_METEOR_SHOWER_1, SPRITE_SPELL_LIGHT_DESTROY_UNDEAD, SPRITE_SPELL_LIGHT_LIGHT_BOLT, SPRITE_SPELL_LIGHT_LIGHT_BOLT_IMPACT, SPRITE_SPELL_LIGHT_PARALYZE, SPRITE_SPELL_LIGHT_PRISMATIC_LIGHT, SPRITE_SPELL_LIGHT_SUMMON_ELEMENTAL, SPRITE_SPELL_LIGHT_SUNRAY, SPRITE_SPELL_LIGHT_SUNRAY_IMPACT, SPRITE_SPELL_MIND_BERSERK, SPRITE_SPELL_MIND_CHARM, SPRITE_SPELL_MIND_ENSLAVE, SPRITE_SPELL_MIND_MASS_FEAR, SPRITE_SPELL_MIND_MIND_BLAST, SPRITE_SPELL_MIND_MIND_BLAST_IMPACT, SPRITE_SPELL_MIND_PSYCHIC_SHOCK, SPRITE_SPELL_MIND_TELEPATHY, SPRITE_SPELL_WATER_ACID_BURST, SPRITE_SPELL_WATER_ACID_BURST_IMPACT, SPRITE_SPELL_WATER_ICE_BLAST, SPRITE_SPELL_WATER_ICE_BLAST_FALLOUT, SPRITE_SPELL_WATER_ICE_BLAST_IMPACT, SPRITE_SPELL_WATER_ICE_BOLT, SPRITE_SPELL_WATER_ICE_BOLT_IMPACT, SPRITE_SPELL_WATER_POISON_SPRAY, SPRITE_SPELL_WATER_POISON_SPRAY_IMPACT и SpriteObject::uType.

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), RenderBase::DrawSpriteObjects_ODM() и IndoorLocation::PrepareItemsRenderList_BLV().

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

◆ SetPlayerBuffAnim()

void SpellFxRenderer::SetPlayerBuffAnim ( uint16_t  uSpellID,
uint16_t  uPlayerID 
)

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

1104  {
1105  // SpellFxRenderer *v3; // edi@1
1106  PlayerBuffAnim *v4; // esi@1
1107  const char *v6; // [sp-4h] [bp-10h]@2
1108 
1109  v4 = &pPlayerBuffs[uPlayerID];
1110  v4->uSpellAnimTimeElapsed = 0;
1111  v4->bRender = uSpellID != 0;
1112 
1113  switch (uSpellID) {
1114  case SPELL_DISEASE:
1115  v6 = "zapp";
1116  break;
1117 
1121  case SPELL_SPIRIT_FATE:
1122  v6 = "spboost1";
1123  break;
1124 
1125  case SPELL_QUEST_COMPLETED:
1129  v6 = "spboost2";
1130  break;
1131 
1132  case SPELL_152:
1133  __debugbreak(); // spell id == 152 wtf
1138  v6 = "spboost3";
1139  break;
1140 
1144  v6 = "spheal1";
1145  break;
1146 
1150  case SPELL_BODY_FIRST_AID:
1153  case SPELL_DARK_SACRIFICE:
1154  v6 = "spheal2";
1155  break;
1156 
1157  case SPELL_BODY_POWER_CURE:
1159  v6 = "spheal3";
1160  break;
1161 
1163  case SPELL_FIRE_IMMOLATION:
1164  v6 = "spell03";
1165  break;
1166 
1167  case SPELL_FIRE_HASTE:
1168  v6 = "spell05";
1169  break;
1171  v6 = "spell14";
1172  break;
1173  case SPELL_AIR_SHIELD:
1174  v6 = "spell17";
1175  break;
1177  v6 = "spell25";
1178  break;
1180  v6 = "spell36";
1181  break;
1182  case SPELL_EARTH_STONESKIN:
1183  v6 = "spell38";
1184  break;
1185  case SPELL_SPIRIT_BLESS:
1186  v6 = "spell46";
1187  break;
1188  case SPELL_SPIRIT_HEROISM:
1189  v6 = "spell51";
1190  break;
1192  v6 = "spell55";
1193  break;
1195  v6 = "spell58";
1196  break;
1198  v6 = "spell69";
1199  break;
1201  v6 = "spell71";
1202  break;
1204  v6 = "spell73";
1205  break;
1207  v6 = "spell75";
1208  break;
1209 
1210  default:
1211  v4->bRender = false;
1212  return;
1213  }
1214 
1216  if (v4->bRender)
1217  v4->uSpellAnimTime =
1219 }

Перекрестные ссылки __debugbreak(), BECOME_MAGIC_GUILD_MEMBER, PlayerBuffAnim::bRender, IconFrameTable::FindIcon(), Icon::GetAnimLength(), IconFrameTable::GetIcon(), pIconsFrameTable, pPlayerBuffs, SPELL_152, SPELL_AIR_FEATHER_FALL, SPELL_AIR_INVISIBILITY, SPELL_AIR_PROTECTION_FROM_AIR, SPELL_AIR_SHIELD, SPELL_BODY_CURE_DISEASE, SPELL_BODY_CURE_POISON, SPELL_BODY_CURE_WEAKNESS, SPELL_BODY_FIRST_AID, SPELL_BODY_HAMMERHANDS, SPELL_BODY_POWER_CURE, SPELL_BODY_PROTECTION_FROM_BODY, SPELL_BODY_PROTECTION_FROM_MAGIC, SPELL_BODY_REGENERATION, SPELL_DARK_SACRIFICE, SPELL_DARK_SOULDRINKER, SPELL_DISEASE, SPELL_EARTH_PROTECTION_FROM_EARTH, SPELL_EARTH_STONESKIN, SPELL_FIRE_HASTE, SPELL_FIRE_IMMOLATION, SPELL_FIRE_PROTECTION_FROM_FIRE, SPELL_LIGHT_DAY_OF_PROTECTION, SPELL_LIGHT_DAY_OF_THE_GODS, SPELL_LIGHT_DIVINE_INTERVENTION, SPELL_LIGHT_HOUR_OF_POWER, SPELL_MIND_CURE_INSANITY, SPELL_MIND_CURE_PARALYSIS, SPELL_MIND_PROTECTION_FROM_MIND, SPELL_MIND_REMOVE_FEAR, SPELL_QUEST_COMPLETED, SPELL_SPIRIT_BLESS, SPELL_SPIRIT_DETECT_LIFE, SPELL_SPIRIT_FATE, SPELL_SPIRIT_HEROISM, SPELL_SPIRIT_PRESERVATION, SPELL_SPIRIT_REMOVE_CURSE, SPELL_SPIRIT_RESSURECTION, SPELL_SPIRIT_SHARED_LIFE, SPELL_WATER_PROTECTION_FROM_WATER, SPELL_WATER_WATER_WALK, PlayerBuffAnim::uSpellAnimTime, PlayerBuffAnim::uSpellAnimTimeElapsed и PlayerBuffAnim::uSpellIconID.

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), Player::AddVariable(), EventCastSpell(), Player::PlayAwardSound_Anim(), Player::PlayAwardSound_Anim97(), Player::PlayAwardSound_Anim98(), Player::ReceiveSpecialAttackEffect(), Player::SetSkillByEvent(), Player::SetVariable() и Player::UseItem_DrinkPotion_etc().

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

◆ FadeScreen__like_Turn_Undead_and_mb_Armageddon()

void SpellFxRenderer::FadeScreen__like_Turn_Undead_and_mb_Armageddon ( unsigned int  uDiffuseColor,
unsigned int  uFadeTime 
)

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

1223  {
1224  this->uFadeTime = uFadeTime;
1225  this->uFadeLength = uFadeTime;
1226  this->uFadeColor = uDiffuseColor;
1227 }

Перекрестные ссылки uFadeColor, uFadeLength и uFadeTime.

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

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

◆ _4A8BFC()

int SpellFxRenderer::_4A8BFC ( )

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

1230  { // for SPELL_LIGHT_PRISMATIC_LIGHT
1231  uAnimLength =
1232  8 * pSpriteFrameTable
1234  .uAnimLength;
1235  return uAnimLength;
1236 }

Перекрестные ссылки SpriteFrameTable::FastFindSprite(), pSpriteFrameTable, SpriteFrameTable::pSpriteSFrames, SpriteFrame::uAnimLength и uAnimLength.

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

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

◆ RenderSpecialEffects()

void SpellFxRenderer::RenderSpecialEffects ( )

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

1239  {
1240  double v4; // st7@4
1241  double v5; // st6@4
1242  float v7; // ST14_4@6
1243  unsigned int v8; // ST14_4@8
1244  SpriteFrame *v10; // eax@8
1245  // int v11; // edi@8
1246  RenderVertexD3D3 vd3d[4]; // [sp+60h] [bp-8Ch]@9
1247 
1248  if (uNumProjectiles) {
1249  DrawProjectiles();
1250  uNumProjectiles = 0;
1251  }
1252 
1253  field_204 = 0;
1254  if (uFadeTime > 0) {
1255  v4 = (double)uFadeTime / (double)uFadeLength;
1256  v5 = 1.0 - v4 * v4;
1257  // v6 = v5;
1258  if (v5 > 0.9) v5 = 1.0 - (v5 - 0.9) * 10.0;
1259  v7 = v5;
1260  render->ScreenFade(uFadeColor, v7);
1262  }
1263 
1264  if (uAnimLength > 0) {
1265  v8 = 8 * pSpriteFrameTable
1267  "spell84")]
1268  .uAnimLength -
1269  uAnimLength;
1270  v10 = pSpriteFrameTable->GetFrame(
1271  pSpriteFrameTable->FastFindSprite("spell84"), v8);
1272 
1274  // if ( render->pRenderD3D )
1275  //{
1276  vd3d[0].pos.x = (double)(signed int)pViewport->uViewportTL_X;
1277  vd3d[0].pos.y = (double)(signed int)pViewport->uViewportTL_Y;
1278  vd3d[0].pos.z = 0.0;
1279  vd3d[0].diffuse = 0x7F7F7Fu;
1280  vd3d[0].specular = 0;
1281  vd3d[0].rhw = 1.0;
1282  vd3d[0].texcoord.x = 0.0;
1283  vd3d[0].texcoord.y = 0.0;
1284 
1285  vd3d[1].pos.x = (double)(signed int)pViewport->uViewportTL_X;
1286  vd3d[1].pos.y = (double)(pViewport->uViewportBR_Y + 1);
1287  vd3d[1].pos.z = 0.0;
1288  vd3d[1].diffuse = 0x7F7F7Fu;
1289  vd3d[1].specular = 0;
1290  vd3d[1].rhw = 1.0;
1291  vd3d[1].texcoord.x = 0.0;
1292  vd3d[1].texcoord.y = 1.0;
1293 
1294  vd3d[2].pos.x = (double)(signed int)pViewport->uViewportBR_X;
1295  vd3d[2].pos.y = (double)(pViewport->uViewportBR_Y + 1);
1296  vd3d[2].pos.z = 0.0;
1297  vd3d[2].diffuse = 0x7F7F7Fu;
1298  vd3d[2].specular = 0;
1299  vd3d[2].rhw = 1.0;
1300  vd3d[2].texcoord.x = 1.0;
1301  vd3d[2].texcoord.y = 1.0;
1302 
1303  vd3d[3].pos.x = (double)(signed int)pViewport->uViewportBR_X;
1304  vd3d[3].pos.y = (double)(signed int)pViewport->uViewportTL_Y;
1305  vd3d[3].pos.z = 0.0;
1306  vd3d[3].diffuse = 0x7F7F7Fu;
1307  vd3d[3].specular = 0;
1308  vd3d[3].rhw = 1.0;
1309  vd3d[3].texcoord.x = 1.0;
1310  vd3d[3].texcoord.y = 0.0;
1311 
1312  render->DrawSpecialEffectsQuad(vd3d, v10->hw_sprites[0]->texture);
1313  }
1314 }

Перекрестные ссылки RenderVertexD3D3::diffuse, DrawProjectiles(), SpriteFrameTable::FastFindSprite(), field_204, SpriteFrameTable::GetFrame(), SpriteFrame::hw_sprites, pEventTimer, RenderVertexD3D3::pos, pSpriteFrameTable, SpriteFrameTable::pSpriteSFrames, pViewport, render, RenderVertexD3D3::rhw, RenderVertexD3D3::specular, RenderVertexD3D3::texcoord, Sprite::texture, SpriteFrame::uAnimLength, uAnimLength, uFadeColor, uFadeLength, uFadeTime, uNumProjectiles, Timer::uTimeElapsed, Viewport::uViewportBR_X, Viewport::uViewportBR_Y, Viewport::uViewportTL_X, Viewport::uViewportTL_Y, Vec3_float_::x, Vec3_float_::y и Vec3_float_::z.

Используется в RenderOpenGL::DrawBillboards_And_MaybeRenderSpecialEffects_And_EndScene() и Render::DrawBillboards_And_MaybeRenderSpecialEffects_And_EndScene().

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

◆ DrawPlayerBuffAnims()

void SpellFxRenderer::DrawPlayerBuffAnims ( )

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

1317  {
1318  for (uint i = 0; i < 4; ++i) {
1319  PlayerBuffAnim *buff = &pPlayerBuffs[i];
1320  if (!buff->bRender) continue;
1321 
1323  if (buff->uSpellAnimTimeElapsed >= buff->uSpellAnimTime) {
1324  buff->bRender = false;
1325  continue;
1326  }
1327 
1328  Icon *icon = pIconsFrameTable->GetFrame(buff->uSpellIconID,
1329  buff->uSpellAnimTimeElapsed);
1330  render->DrawTextureAlphaNew(
1332  385 / 480.0f, icon->GetTexture());
1333 
1334  pOtherOverlayList->bRedraw = true;
1335  }
1336 }

Перекрестные ссылки OtherOverlayList::bRedraw, PlayerBuffAnim::bRender, IconFrameTable::GetFrame(), Icon::GetTexture(), pEventTimer, pIconsFrameTable, pOtherOverlayList, pPlayerBuffs, pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing, render, PlayerBuffAnim::uSpellAnimTime, PlayerBuffAnim::uSpellAnimTimeElapsed, PlayerBuffAnim::uSpellIconID и Timer::uTimeElapsed.

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

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

◆ LoadAnimations()

void SpellFxRenderer::LoadAnimations ( )

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

1339  {
1341  "effpar01"); // pBitmaps_LOD->LoadTexture("effpar01");
1343  "effpar02"); // pBitmaps_LOD->LoadTexture("effpar02");
1345  "effpar03"); // pBitmaps_LOD->LoadTexture("effpar03");
1346 
1347  // spell not implemented in the game
1348  // uSpriteID_sp57c = pSprites_LOD->LoadSprite("sp57c", 6);
1349 
1352  pIconsFrameTable->FindIcon("spheal1"));
1354  pIconsFrameTable->FindIcon("spheal2"));
1356  pIconsFrameTable->FindIcon("spheal3"));
1358  pIconsFrameTable->FindIcon("spboost1"));
1360  pIconsFrameTable->FindIcon("spboost2"));
1362  pIconsFrameTable->FindIcon("spboost3"));
1364  pIconsFrameTable->FindIcon("spell03"));
1366  pIconsFrameTable->FindIcon("spell05"));
1368  pIconsFrameTable->FindIcon("spell14"));
1370  pIconsFrameTable->FindIcon("spell17"));
1372  pIconsFrameTable->FindIcon("spell21"));
1374  pIconsFrameTable->FindIcon("spell25"));
1376  pIconsFrameTable->FindIcon("spell27"));
1378  pIconsFrameTable->FindIcon("spell36"));
1380  pIconsFrameTable->FindIcon("spell38"));
1382  pIconsFrameTable->FindIcon("spell46"));
1384  pIconsFrameTable->FindIcon("spell51"));
1386  pIconsFrameTable->FindIcon("spell55"));
1388  pIconsFrameTable->FindIcon("spell58"));
1390  pIconsFrameTable->FindIcon("spell69"));
1392  pIconsFrameTable->FindIcon("spell71"));
1394  pIconsFrameTable->FindIcon("spell73"));
1396  pIconsFrameTable->FindIcon("spell75"));
1398  pIconsFrameTable->FindIcon("spell96"));
1399 
1401  pSpriteFrameTable->FastFindSprite("spell01"));
1403  pSpriteFrameTable->FastFindSprite("spell02"));
1405  pSpriteFrameTable->FastFindSprite("spell03"));
1407  pSpriteFrameTable->FastFindSprite("spell09"));
1409  pSpriteFrameTable->FastFindSprite("spell11"));
1411  pSpriteFrameTable->FastFindSprite("spell18"));
1413  pSpriteFrameTable->FastFindSprite("spell22"));
1415  pSpriteFrameTable->FastFindSprite("spell26"));
1417  pSpriteFrameTable->FastFindSprite("spell29"));
1419  pSpriteFrameTable->FastFindSprite("spell39"));
1421  pSpriteFrameTable->FastFindSprite("spell39c"));
1423  pSpriteFrameTable->FastFindSprite("spell41"));
1425  pSpriteFrameTable->FastFindSprite("spell57c"));
1427  pSpriteFrameTable->FastFindSprite("spell62"));
1429  pSpriteFrameTable->FastFindSprite("spell65"));
1431  pSpriteFrameTable->FastFindSprite("spell66"));
1433  pSpriteFrameTable->FastFindSprite("spell70"));
1435  pSpriteFrameTable->FastFindSprite("spell76"));
1437  pSpriteFrameTable->FastFindSprite("spell84"));
1439  pSpriteFrameTable->FastFindSprite("spell90"));
1441  pSpriteFrameTable->FastFindSprite("spell92"));
1443  pSpriteFrameTable->FastFindSprite("spell93"));
1445  pSpriteFrameTable->FastFindSprite("spell97"));
1447  pSpriteFrameTable->FastFindSprite("spell97c"));
1449  pSpriteFrameTable->FastFindSprite("spell97c"));
1450 }

Перекрестные ссылки assets, effpar01, effpar02, effpar03, SpriteFrameTable::FastFindSprite(), IconFrameTable::FindIcon(), AssetsManager::GetBitmap(), IconFrameTable::InitializeAnimation(), SpriteFrameTable::InitializeSprite(), pIconsFrameTable и pSpriteFrameTable.

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

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

Данные класса

◆ field_0

int SpellFxRenderer::field_0

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

Используется в _4A73AA_hanging_trace_particles___like_fire_strike_ice_blast_etc(), _4A7C07_stun_spell_fx(), AddProjectile() и SpellFxRenderer().

◆ array_4

stru6_stru2 SpellFxRenderer::array_4[31]

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

Используется в _4A73AA_hanging_trace_particles___like_fire_strike_ice_blast_etc(), _4A7C07_stun_spell_fx() и AddProjectile().

◆ field_1F4

int SpellFxRenderer::field_1F4

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

◆ field_1F8

int SpellFxRenderer::field_1F8

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

◆ field_1FC

int SpellFxRenderer::field_1FC

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

◆ field_200

int SpellFxRenderer::field_200

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

◆ field_204

int SpellFxRenderer::field_204

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

Используется в RenderAsSprite(), RenderSpecialEffects() и SpellFxRenderer().

◆ pPlayerBuffs

PlayerBuffAnim SpellFxRenderer::pPlayerBuffs[4]

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

Используется в DrawPlayerBuffAnims() и SetPlayerBuffAnim().

◆ pProjectiles

ProjectileAnim SpellFxRenderer::pProjectiles[32]

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

Используется в DoAddProjectile() и DrawProjectiles().

◆ uNumProjectiles

int SpellFxRenderer::uNumProjectiles

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

Используется в DoAddProjectile(), DrawProjectiles(), RenderSpecialEffects() и SpellFxRenderer().

◆ pStru1

SpellFX_Billboard* SpellFxRenderer::pStru1

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

Используется в _4A7688_fireball_collision_particle(), _4A77FD_implosion_particle_d3d(), SpellFxRenderer() и ~SpellFxRenderer().

◆ field_5D0

int SpellFxRenderer::field_5D0

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

◆ uAnimLength

int SpellFxRenderer::uAnimLength

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

Используется в _4A8BFC(), RenderSpecialEffects() и SpellFxRenderer().

◆ uFadeTime

int SpellFxRenderer::uFadeTime

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

Используется в FadeScreen__like_Turn_Undead_and_mb_Armageddon(), RenderSpecialEffects() и SpellFxRenderer().

◆ uFadeLength

int SpellFxRenderer::uFadeLength

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

Используется в FadeScreen__like_Turn_Undead_and_mb_Armageddon() и RenderSpecialEffects().

◆ uFadeColor

int SpellFxRenderer::uFadeColor

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

Используется в FadeScreen__like_Turn_Undead_and_mb_Armageddon() и RenderSpecialEffects().

◆ effpar01

◆ effpar02

Texture* SpellFxRenderer::effpar02

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

Используется в _4A7E89_sparkles_on_actor_after_it_casts_buff(), LoadAnimations() и RenderAsSprite().

◆ effpar03

Texture* SpellFxRenderer::effpar03

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

Используется в LoadAnimations(), RenderAsSprite(), SpriteObject::UpdateObject_fn0_BLV() и SpriteObject::UpdateObject_fn0_ODM().

◆ _unused_uSpriteID_sp57c

unsigned int SpellFxRenderer::_unused_uSpriteID_sp57c

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

◆ field_5F4

int SpellFxRenderer::field_5F4

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

◆ particle_engine


Объявления и описания членов структур находятся в файлах:
SPRITE_PROJECTILE_530
@ SPRITE_PROJECTILE_530
Definition: SpriteObject.h:22
SpriteObject
Definition: SpriteObject.h:189
SPRITE_SPELL_MIND_BERSERK
@ SPRITE_SPELL_MIND_BERSERK
Definition: SpriteObject.h:128
SpellFxRenderer::AddProjectile
void AddProjectile(struct SpriteObject *a2, int a3, Texture *)
Definition: SpellFxRenderer.cpp:560
Particle_sw::z
float z
Definition: ParticleEngine.h:22
SPELL_EARTH_STONESKIN
@ SPELL_EARTH_STONESKIN
Definition: Spells.h:53
SpellFxRenderer::uAnimLength
int uAnimLength
Definition: SpellFxRenderer.h:162
SPELL_SPIRIT_RESSURECTION
@ SPELL_SPIRIT_RESSURECTION
Definition: Spells.h:71
SPRITE_SPELL_MIND_PSYCHIC_SHOCK
@ SPRITE_SPELL_MIND_PSYCHIC_SHOCK
Definition: SpriteObject.h:132
SPELL_SPIRIT_SHARED_LIFE
@ SPELL_SPIRIT_SHARED_LIFE
Definition: Spells.h:70
SpriteFrame::hw_sprites
Sprite * hw_sprites[8]
Definition: Sprites.h:46
SPRITE_SPELL_BODY_FLYING_FIST
@ SPRITE_SPELL_BODY_FLYING_FIST
Definition: SpriteObject.h:145
SpellFX_Billboard
Definition: SpellFxRenderer.h:13
SPRITE_SPELL_AIR_LIGHNING_BOLT
@ SPRITE_SPELL_AIR_LIGHNING_BOLT
Definition: SpriteObject.h:65
SPRITE_BLASTER_PROJECTILE
@ SPRITE_BLASTER_PROJECTILE
Definition: SpriteObject.h:30
Particle_sw::b
float b
Definition: ParticleEngine.h:25
Timer::uTimeElapsed
unsigned int uTimeElapsed
Definition: Time.h:133
v
const GLdouble * v
Definition: SDL_opengl.h:2064
stru6_stru2::flt_0_x
float flt_0_x
Definition: SpellFxRenderer.h:88
SPRITE_SPELL_AIR_SPARKS
@ SPRITE_SPELL_AIR_SPARKS
Definition: SpriteObject.h:62
SPRITE_PROJECTILE_535
@ SPRITE_PROJECTILE_535
Definition: SpriteObject.h:24
SPELL_SPIRIT_PRESERVATION
@ SPELL_SPIRIT_PRESERVATION
Definition: Spells.h:66
pRnd
struct Random * pRnd
Definition: Random.cpp:5
IconFrameTable::InitializeAnimation
void InitializeAnimation(unsigned int uIconID)
Definition: IconFrameTable.cpp:59
SPRITE_PROJECTILE_530_IMPACT
@ SPRITE_PROJECTILE_530_IMPACT
Definition: SpriteObject.h:23
dstX
GLenum GLint GLint GLint GLint GLuint GLenum GLint GLint dstX
Definition: SDL_opengl_glext.h:2453
pSpriteFrameTable
struct SpriteFrameTable * pSpriteFrameTable
Definition: Sprites.cpp:22
SpellFxRenderer::uFadeTime
int uFadeTime
Definition: SpellFxRenderer.h:163
Viewport::uViewportTL_Y
int uViewportTL_Y
Definition: Viewport.h:23
OBJECT_Item
@ OBJECT_Item
Definition: Actor.h:66
Vec3_float_::x
float x
Definition: VectorTypes.h:89
SPRITE_SPELL_FIRE_INCINERATE_IMPACT
@ SPRITE_SPELL_FIRE_INCINERATE_IMPACT
Definition: SpriteObject.h:57
SpellFxRenderer::pStru1
SpellFX_Billboard * pStru1
Definition: SpellFxRenderer.h:160
RenderVertexD3D3::pos
Vec3_float_ pos
Definition: IRender.h:130
SpellFxRenderer::pPlayerBuffs
PlayerBuffAnim pPlayerBuffs[4]
Definition: SpellFxRenderer.h:157
_4E94D3_light_type
char _4E94D3_light_type
Definition: mm7_data.cpp:307
z
GLdouble GLdouble z
Definition: SDL_opengl_glext.h:407
pIconsFrameTable
struct IconFrameTable * pIconsFrameTable
Definition: mm7_data.cpp:168
SPELL_LIGHT_HOUR_OF_POWER
@ SPELL_LIGHT_HOUR_OF_POWER
Definition: Spells.h:105
SPRITE_SPELL_MIND_ENSLAVE
@ SPRITE_SPELL_MIND_ENSLAVE
Definition: SpriteObject.h:133
OtherOverlayList::bRedraw
int bRedraw
Definition: Overlays.h:38
SPELL_LIGHT_DAY_OF_PROTECTION
@ SPELL_LIGHT_DAY_OF_PROTECTION
Definition: Spells.h:104
SpellFxRenderer::_4A75CC_single_spell_collision_particle
void _4A75CC_single_spell_collision_particle(struct SpriteObject *a1, unsigned int uDiffuse, Texture *texture)
Definition: SpellFxRenderer.cpp:322
Actor
Definition: Actor.h:151
SPELL_WATER_WATER_WALK
@ SPELL_WATER_WATER_WALK
Definition: Spells.h:41
SpriteObject::uSectorID
__int16 uSectorID
Definition: SpriteObject.h:223
SPRITE_PROJECTILE_540_IMPACT
@ SPRITE_PROJECTILE_540_IMPACT
Definition: SpriteObject.h:27
Icon::GetAnimLength
unsigned int GetAnimLength() const
Definition: IconFrameTable.h:20
SPRITE_PROJECTILE_510_IMPACT
@ SPRITE_PROJECTILE_510_IMPACT
Definition: SpriteObject.h:15
SPRITE_SPELL_DARK_DRAGON_BREATH
@ SPRITE_SPELL_DARK_DRAGON_BREATH
Definition: SpriteObject.h:176
sr_42620A
bool sr_42620A(RenderVertexSoft *p)
Definition: SpellFxRenderer.cpp:49
SPRITE_BLASTER_IMPACT
@ SPRITE_BLASTER_IMPACT
Definition: SpriteObject.h:31
SPRITE_SPELL_EARTH_MASS_DISTORTION
@ SPRITE_SPELL_EARTH_MASS_DISTORTION
Definition: SpriteObject.h:106
SPRITE_SPELL_WATER_ICE_BOLT_IMPACT
@ SPRITE_SPELL_WATER_ICE_BOLT_IMPACT
Definition: SpriteObject.h:79
SpellFxRenderer::uFadeColor
int uFadeColor
Definition: SpellFxRenderer.h:165
srcX
GLenum GLint GLint srcX
Definition: SDL_opengl_glext.h:2453
ProjectileAnim::dstX
float dstX
Definition: SpellFxRenderer.h:77
ProjectileAnim
Definition: SpellFxRenderer.h:73
SPRITE_SPELL_LIGHT_SUMMON_ELEMENTAL
@ SPRITE_SPELL_LIGHT_SUMMON_ELEMENTAL
Definition: SpriteObject.h:156
SPRITE_SPELL_DARK_SHARPMETAL_IMPACT
@ SPRITE_SPELL_DARK_SHARPMETAL_IMPACT
Definition: SpriteObject.h:172
SPRITE_SPELL_DARK_SACRIFICE
@ SPRITE_SPELL_DARK_SACRIFICE
Definition: SpriteObject.h:175
SpellFX_Billboard::_47829F_sphere_particle
void _47829F_sphere_particle(float x_offset, float y_offset, float z_offset, float scale, int diffuse)
Definition: SpellFxRenderer.cpp:144
RenderVertexD3D3
Definition: IRender.h:129
SPRITE_SPELL_AIR_STARBURST
@ SPRITE_SPELL_AIR_STARBURST
Definition: SpriteObject.h:71
SPELL_EARTH_PROTECTION_FROM_EARTH
@ SPELL_EARTH_PROTECTION_FROM_EARTH
Definition: Spells.h:51
SPRITE_SPELL_DARK_DRAGON_BREATH_1
@ SPRITE_SPELL_DARK_DRAGON_BREATH_1
Definition: SpriteObject.h:177
Random::GetRandom
double GetRandom()
Definition: Random.cpp:14
SPRITE_SPELL_FIRE_FIRE_BOLT
@ SPRITE_SPELL_FIRE_FIRE_BOLT
Definition: SpriteObject.h:43
SpriteObject::uType
SPRITE_OBJECT_TYPE uType
Definition: SpriteObject.h:215
Icon::GetTexture
Texture * GetTexture()
Definition: IconFrameTable.cpp:9
texture
GLenum GLenum GLuint texture
Definition: SDL_opengl_glext.h:1181
SPELL_FIRE_PROTECTION_FROM_FIRE
@ SPELL_FIRE_PROTECTION_FROM_FIRE
Definition: Spells.h:15
Particle_sw::r
float r
Definition: ParticleEngine.h:23
SPELL_MIND_PROTECTION_FROM_MIND
@ SPELL_MIND_PROTECTION_FROM_MIND
Definition: Spells.h:75
SPRITE_PROJECTILE_500
@ SPRITE_PROJECTILE_500
Definition: SpriteObject.h:10
Sprite::texture
Texture * texture
Definition: Sprites.h:28
SPRITE_SPELL_FIRE_INFERNO
@ SPRITE_SPELL_FIRE_INFERNO
Definition: SpriteObject.h:55
Vec3_float_::y
float y
Definition: VectorTypes.h:90
SPRITE_SPELL_EARTH_ROCK_BLAST
@ SPRITE_SPELL_EARTH_ROCK_BLAST
Definition: SpriteObject.h:100
Vec3_float_::z
float z
Definition: VectorTypes.h:91
GameTime::value
int64_t value
Definition: Time.h:99
SpriteObject::uSpriteFrameID
unsigned __int16 uSpriteFrameID
Definition: SpriteObject.h:224
SPELL_AIR_PROTECTION_FROM_AIR
@ SPELL_AIR_PROTECTION_FROM_AIR
Definition: Spells.h:27
SPRITE_SPELL_MIND_MIND_BLAST
@ SPRITE_SPELL_MIND_MIND_BLAST
Definition: SpriteObject.h:122
PlayerBuffAnim::uSpellAnimTime
int uSpellAnimTime
Definition: SpellFxRenderer.h:66
SpellFxRenderer::_4A7C07_stun_spell_fx
void _4A7C07_stun_spell_fx(struct SpriteObject *a2)
Definition: SpellFxRenderer.cpp:510
stru6_stru2
Definition: SpellFxRenderer.h:86
SPELL_152
@ SPELL_152
Definition: Spells.h:127
SPRITE_SPELL_DARK_SHARPMETAL
@ SPRITE_SPELL_DARK_SHARPMETAL
Definition: SpriteObject.h:171
result
GLuint64EXT * result
Definition: SDL_opengl_glext.h:9435
SPRITE_PROJECTILE_535_IMPACT
@ SPRITE_PROJECTILE_535_IMPACT
Definition: SpriteObject.h:25
SpellFxRenderer::particle_engine
ParticleEngine * particle_engine
Definition: SpellFxRenderer.h:172
RenderVertexD3D3::texcoord
Vec2_float_ texcoord
Definition: IRender.h:134
SPRITE_SPELL_EARTH_TELEKINESIS
@ SPRITE_SPELL_EARTH_TELEKINESIS
Definition: SpriteObject.h:102
SPRITE_SPELL_WATER_ACID_BURST_IMPACT
@ SPRITE_SPELL_WATER_ACID_BURST_IMPACT
Definition: SpriteObject.h:83
SpellBuff::Reset
void Reset()
Definition: Spells.cpp:337
SpellFxRenderer::_4A7948_mind_blast_after_effect
void _4A7948_mind_blast_after_effect(struct SpriteObject *a1)
Definition: SpellFxRenderer.cpp:414
SPELL_DISEASE
@ SPELL_DISEASE
Definition: Spells.h:128
Particle_sw::type
unsigned int type
Definition: ParticleEngine.h:19
SPRITE_PROJECTILE_525
@ SPRITE_PROJECTILE_525
Definition: SpriteObject.h:20
y
EGLSurface EGLint EGLint y
Definition: SDL_egl.h:1596
RenderVertexD3D3::rhw
float rhw
Definition: IRender.h:131
IconFrameTable::GetIcon
Icon * GetIcon(unsigned int idx)
Definition: IconFrameTable.cpp:17
SPELL_BODY_FIRST_AID
@ SPELL_BODY_FIRST_AID
Definition: Spells.h:86
SPELL_DARK_SOULDRINKER
@ SPELL_DARK_SOULDRINKER
Definition: Spells.h:119
SPRITE_SPELL_EARTH_DEATH_BLOSSOM
@ SPRITE_SPELL_EARTH_DEATH_BLOSSOM
Definition: SpriteObject.h:103
srcY
GLenum GLint GLint GLint srcY
Definition: SDL_opengl_glext.h:2453
SPELL_AIR_FEATHER_FALL
@ SPELL_AIR_FEATHER_FALL
Definition: Spells.h:26
SpriteObject::vPosition
struct Vec3_int_ vPosition
Definition: SpriteObject.h:218
Engine_::IocContainer::ResolveParticleEngine
static ParticleEngine * ResolveParticleEngine()
Definition: IocContainer.cpp:103
SPELL_BODY_CURE_POISON
@ SPELL_BODY_CURE_POISON
Definition: Spells.h:90
ParticleType_1
@ ParticleType_1
Definition: ParticleEngine.h:7
SPRITE_SPELL_AIR_IMPLOSION_IMPACT
@ SPRITE_SPELL_AIR_IMPLOSION_IMPACT
Definition: SpriteObject.h:69
SPRITE_PROJECTILE_525_IMPACT
@ SPRITE_PROJECTILE_525_IMPACT
Definition: SpriteObject.h:21
ProjectileAnim::srcZ
float srcZ
Definition: SpellFxRenderer.h:76
SpriteObject::field_54
int field_54
Definition: SpriteObject.h:231
SPRITE_PROJECTILE_510
@ SPRITE_PROJECTILE_510
Definition: SpriteObject.h:14
p
GLfloat GLfloat p
Definition: SDL_opengl_glext.h:11093
SPRITE_SPELL_EARTH_ROCK_BLAST_IMPACT
@ SPRITE_SPELL_EARTH_ROCK_BLAST_IMPACT
Definition: SpriteObject.h:101
ACTOR_BUFF_MASS_DISTORTION
@ ACTOR_BUFF_MASS_DISTORTION
Definition: Actor.h:48
SPRITE_PROJECTILE_515
@ SPRITE_PROJECTILE_515
Definition: SpriteObject.h:16
SPRITE_SPELL_BODY_HARM
@ SPRITE_SPELL_BODY_HARM
Definition: SpriteObject.h:138
x
EGLSurface EGLint x
Definition: SDL_egl.h:1596
SPRITE_PROJECTILE_520_IMPACT
@ SPRITE_PROJECTILE_520_IMPACT
Definition: SpriteObject.h:19
SPRITE_SPELL_EARTH_DEADLY_SWARM
@ SPRITE_SPELL_EARTH_DEADLY_SWARM
Definition: SpriteObject.h:94
Particle_sw::timeToLive
int timeToLive
Definition: ParticleEngine.h:27
SpriteFrameTable::GetFrame
SpriteFrame * GetFrame(unsigned int uSpriteID, unsigned int uTime)
Definition: Sprites.cpp:277
SPRITE_PROJECTILE_520
@ SPRITE_PROJECTILE_520
Definition: SpriteObject.h:18
ProjectileAnim::dstZ
float dstZ
Definition: SpellFxRenderer.h:79
Random::GetInRange
int GetInRange()
Definition: Random.cpp:28
SPRITE_SPELL_FIRE_IMMOLATION
@ SPRITE_SPELL_FIRE_IMMOLATION
Definition: SpriteObject.h:52
dstZ
GLenum GLint GLint GLint GLint GLuint GLenum GLint GLint GLint GLint dstZ
Definition: SDL_opengl_glext.h:2453
SPELL_FIRE_IMMOLATION
@ SPELL_FIRE_IMMOLATION
Definition: Spells.h:20
SPRITE_SPELL_MIND_MASS_FEAR
@ SPRITE_SPELL_MIND_MASS_FEAR
Definition: SpriteObject.h:129
PlayerBuffAnim::bRender
int16_t bRender
Definition: SpellFxRenderer.h:63
SPELL_BODY_REGENERATION
@ SPELL_BODY_REGENERATION
Definition: Spells.h:89
SpellFxRenderer::uFadeLength
int uFadeLength
Definition: SpellFxRenderer.h:164
SPELL_BODY_HAMMERHANDS
@ SPELL_BODY_HAMMERHANDS
Definition: Spells.h:91
SpellFX_Billboard::Initialize
void Initialize(int a2)
Definition: SpellFxRenderer.cpp:118
pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing
std::array< int16_t, 4 > pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing
Definition: mm7_data.cpp:424
RenderVertexD3D3::diffuse
unsigned int diffuse
Definition: IRender.h:132
SPRITE_813
@ SPRITE_813
Definition: SpriteObject.h:39
IndoorCameraD3D::Project
void Project(int x, int y, int z, int *screenspace_x, int *screenspace_y)
Definition: IndoorCameraD3D.cpp:1137
SPRITE_SPELL_WATER_ACID_BURST
@ SPRITE_SPELL_WATER_ACID_BURST
Definition: SpriteObject.h:82
SPRITE_SPELL_LIGHT_LIGHT_BOLT_IMPACT
@ SPRITE_SPELL_LIGHT_LIGHT_BOLT_IMPACT
Definition: SpriteObject.h:150
SPRITE_SPELL_FIRE_FIRE_BOLT_IMPACT
@ SPRITE_SPELL_FIRE_FIRE_BOLT_IMPACT
Definition: SpriteObject.h:44
SpriteFrameTable::pSpriteSFrames
SpriteFrame * pSpriteSFrames
Definition: Sprites.h:77
SPRITE_SPELL_FIRE_FIRE_SPIKE_IMPACT
@ SPRITE_SPELL_FIRE_FIRE_SPIKE_IMPACT
Definition: SpriteObject.h:51
SpellFxRenderer::AddMobileLight
bool AddMobileLight(struct SpriteObject *a1, unsigned int uDiffuse, int uRadius)
Definition: SpellFxRenderer.cpp:433
SpellFxRenderer::_4A73AA_hanging_trace_particles___like_fire_strike_ice_blast_etc
void _4A73AA_hanging_trace_particles___like_fire_strike_ice_blast_etc(struct SpriteObject *a2, unsigned int uDiffuse, Texture *texture)
Definition: SpellFxRenderer.cpp:252
Particle_sw
Definition: ParticleEngine.h:18
Viewport::uViewportBR_X
int uViewportBR_X
Definition: Viewport.h:24
SpellFxRenderer::_4A7688_fireball_collision_particle
void _4A7688_fireball_collision_particle(struct SpriteObject *a2)
Definition: SpellFxRenderer.cpp:348
SPELL_AIR_SHIELD
@ SPELL_AIR_SHIELD
Definition: Spells.h:30
f
GLfloat f
Definition: SDL_opengl_glext.h:1873
SPELL_DARK_SACRIFICE
@ SPELL_DARK_SACRIFICE
Definition: Spells.h:116
SPELL_BODY_POWER_CURE
@ SPELL_BODY_POWER_CURE
Definition: Spells.h:95
SPRITE_SPELL_AIR_STARBURST_1
@ SPRITE_SPELL_AIR_STARBURST_1
Definition: SpriteObject.h:72
SPRITE_SPELL_DARK_TOXIC_CLOUD
@ SPRITE_SPELL_DARK_TOXIC_CLOUD
Definition: SpriteObject.h:168
SpellFxRenderer::DoAddProjectile
void DoAddProjectile(float srcX, float srcY, float srcZ, float dstX, float dstY, float dstZ, Texture *)
Definition: SpellFxRenderer.cpp:202
SPRITE_SPELL_FIRE_METEOR_SHOWER
@ SPRITE_SPELL_FIRE_METEOR_SHOWER
Definition: SpriteObject.h:53
Particle_sw::y
float y
Definition: ParticleEngine.h:21
Particle_sw::g
float g
Definition: ParticleEngine.h:24
AssetsManager::GetBitmap
Texture * GetBitmap(const String &name)
Definition: AssetsManager.cpp:126
SPRITE_SPELL_FIRE_METEOR_SHOWER_1
@ SPRITE_SPELL_FIRE_METEOR_SHOWER_1
Definition: SpriteObject.h:54
SPRITE_SPELL_EARTH_BLADES_IMPACT
@ SPRITE_SPELL_EARTH_BLADES_IMPACT
Definition: SpriteObject.h:98
SPRITE_SPELL_EARTH_DEADLY_SWARM_IMPACT
@ SPRITE_SPELL_EARTH_DEADLY_SWARM_IMPACT
Definition: SpriteObject.h:95
SpellBuff::expire_time
GameTime expire_time
Definition: Spells.h:165
SPRITE_PROJECTILE_500_IMPACT
@ SPRITE_PROJECTILE_500_IMPACT
Definition: SpriteObject.h:11
SPELL_MIND_CURE_INSANITY
@ SPELL_MIND_CURE_INSANITY
Definition: Spells.h:81
stru6_stru2::flt_4_y
float flt_4_y
Definition: SpellFxRenderer.h:89
IconFrameTable::FindIcon
unsigned int FindIcon(const char *pIconName)
Definition: IconFrameTable.cpp:31
SPRITE_811
@ SPRITE_811
Definition: SpriteObject.h:37
SpellFxRenderer::field_0
int field_0
Definition: SpellFxRenderer.h:150
ParticleEngine::AddParticle
void AddParticle(Particle_sw *a2)
Definition: ParticleEngine.cpp:65
SPELL_QUEST_COMPLETED
@ SPELL_QUEST_COMPLETED
Definition: Spells.h:126
Viewport::uViewportBR_Y
int uViewportBR_Y
Definition: Viewport.h:25
pMiscTimer
Timer * pMiscTimer
Definition: Time.cpp:7
SpellFxRenderer::effpar03
Texture * effpar03
Definition: SpellFxRenderer.h:168
SpriteFrameTable::InitializeSprite
void InitializeSprite(signed int uSpriteID)
Definition: Sprites.cpp:46
SpellFxRenderer::pProjectiles
ProjectileAnim pProjectiles[32]
Definition: SpellFxRenderer.h:158
SPRITE_PROJECTILE_505
@ SPRITE_PROJECTILE_505
Definition: SpriteObject.h:12
SPRITE_SPELL_AIR_IMPLOSION
@ SPRITE_SPELL_AIR_IMPLOSION
Definition: SpriteObject.h:68
SPRITE_SPELL_LIGHT_SUNRAY_IMPACT
@ SPRITE_SPELL_LIGHT_SUNRAY_IMPACT
Definition: SpriteObject.h:163
ParticleType_Sprite
@ ParticleType_Sprite
Definition: ParticleEngine.h:13
SPRITE_SPELL_BODY_FLYING_FIST_IMPACT
@ SPRITE_SPELL_BODY_FLYING_FIST_IMPACT
Definition: SpriteObject.h:146
PlayerBuffAnim
Definition: SpellFxRenderer.h:59
SpellFxRenderer::_4A78AE_sparks_spell
void _4A78AE_sparks_spell(struct SpriteObject *a1)
Definition: SpellFxRenderer.cpp:397
pViewport
struct Viewport * pViewport
Definition: mm7_data.cpp:21
SPELL_SPIRIT_BLESS
@ SPELL_SPIRIT_BLESS
Definition: Spells.h:62
IconFrameTable::GetFrame
Icon * GetFrame(unsigned int uIconID, unsigned int frame_time)
Definition: IconFrameTable.cpp:39
SPRITE_SPELL_AIR_LIGHNING_BOLT_IMPACT
@ SPRITE_SPELL_AIR_LIGHNING_BOLT_IMPACT
Definition: SpriteObject.h:66
SPRITE_SPELL_EARTH_DEATH_BLOSSOM_IMPACT
@ SPRITE_SPELL_EARTH_DEATH_BLOSSOM_IMPACT
Definition: SpriteObject.h:104
SpriteFrameTable::FastFindSprite
int FastFindSprite(const char *pSpriteName)
Definition: Sprites.cpp:243
srcZ
GLenum GLint GLint GLint GLint srcZ
Definition: SDL_opengl_glext.h:2453
SPELL_BODY_PROTECTION_FROM_BODY
@ SPELL_BODY_PROTECTION_FROM_BODY
Definition: Spells.h:87
SpellFxRenderer
Definition: SpellFxRenderer.h:97
SPRITE_SPELL_WATER_POISON_SPRAY
@ SPRITE_SPELL_WATER_POISON_SPRAY
Definition: SpriteObject.h:75
SPRITE_SPELL_FIRE_INCINERATE
@ SPRITE_SPELL_FIRE_INCINERATE
Definition: SpriteObject.h:56
SPELL_SPIRIT_REMOVE_CURSE
@ SPELL_SPIRIT_REMOVE_CURSE
Definition: Spells.h:65
SpriteFrame::uAnimLength
int uAnimLength
Definition: Sprites.h:53
SPRITE_SPELL_LIGHT_DESTROY_UNDEAD
@ SPRITE_SPELL_LIGHT_DESTROY_UNDEAD
Definition: SpriteObject.h:151
dstY
GLenum GLint GLint GLint GLint GLuint GLenum GLint GLint GLint dstY
Definition: SDL_opengl_glext.h:2453
ProjectileAnim::srcX
float srcX
Definition: SpellFxRenderer.h:74
pOtherOverlayList
struct OtherOverlayList * pOtherOverlayList
Definition: Overlays.cpp:19
SPRITE_SPELL_DARK_REANIMATE
@ SPRITE_SPELL_DARK_REANIMATE
Definition: SpriteObject.h:166
SPRITE_SPELL_EARTH_DEATH_BLOSSOM_FALLOUT
@ SPRITE_SPELL_EARTH_DEATH_BLOSSOM_FALLOUT
Definition: SpriteObject.h:105
SPRITE_SPELL_LIGHT_PRISMATIC_LIGHT
@ SPRITE_SPELL_LIGHT_PRISMATIC_LIGHT
Definition: SpriteObject.h:158
SPRITE_814
@ SPRITE_814
Definition: SpriteObject.h:40
ParticleType_8
@ ParticleType_8
Definition: ParticleEngine.h:9
SPRITE_SPELL_EARTH_STUN
@ SPRITE_SPELL_EARTH_STUN
Definition: SpriteObject.h:91
Particle_sw::texture
Texture * texture
Definition: ParticleEngine.h:28
Icon
Definition: IconFrameTable.h:8
SPELL_BODY_CURE_WEAKNESS
@ SPELL_BODY_CURE_WEAKNESS
Definition: Spells.h:85
SPELL_SPIRIT_FATE
@ SPELL_SPIRIT_FATE
Definition: Spells.h:63
v2
GLfloat GLfloat GLfloat v2
Definition: SDL_opengl_glext.h:695
SpriteFrame
Definition: Sprites.h:39
SPRITE_ARROW_PROJECTILE
@ SPRITE_ARROW_PROJECTILE
Definition: SpriteObject.h:28
SPRITE_SPELL_WATER_ICE_BLAST_FALLOUT
@ SPRITE_SPELL_WATER_ICE_BLAST_FALLOUT
Definition: SpriteObject.h:88
assets
AssetsManager * assets
Definition: AssetsManager.cpp:12
ProjectileAnim::dstY
float dstY
Definition: SpellFxRenderer.h:78
uint
unsigned int uint
Definition: MM7.h:4
v3
GLfloat GLfloat GLfloat GLfloat v3
Definition: SDL_opengl_glext.h:696
__debugbreak
void __cdecl __debugbreak(void)
SPELL_WATER_PROTECTION_FROM_WATER
@ SPELL_WATER_PROTECTION_FROM_WATER
Definition: Spells.h:39
SPRITE_SPELL_WATER_POISON_SPRAY_IMPACT
@ SPRITE_SPELL_WATER_POISON_SPRAY_IMPACT
Definition: SpriteObject.h:76
SPRITE_SPELL_LIGHT_SUNRAY
@ SPRITE_SPELL_LIGHT_SUNRAY
Definition: SpriteObject.h:162
SPRITE_SPELL_WATER_ICE_BLAST_IMPACT
@ SPRITE_SPELL_WATER_ICE_BLAST_IMPACT
Definition: SpriteObject.h:87
SPELL_BODY_CURE_DISEASE
@ SPELL_BODY_CURE_DISEASE
Definition: Spells.h:92
stru6_stru2::flt_8_z
float flt_8_z
Definition: SpellFxRenderer.h:90
SPRITE_SPELL_WATER_ICE_BOLT
@ SPRITE_SPELL_WATER_ICE_BOLT
Definition: SpriteObject.h:78
Particle_sw::particle_size
float particle_size
Definition: ParticleEngine.h:30
ParticleType_Rotating
@ ParticleType_Rotating
Definition: ParticleEngine.h:8
SPELL_LIGHT_DIVINE_INTERVENTION
@ SPELL_LIGHT_DIVINE_INTERVENTION
Definition: Spells.h:107
SPRITE_812
@ SPRITE_812
Definition: SpriteObject.h:38
Random::SetRange
void SetRange(int min, int max)
Definition: Random.cpp:8
SPRITE_SPELL_LIGHT_PARALYZE
@ SPRITE_SPELL_LIGHT_PARALYZE
Definition: SpriteObject.h:155
Particle_sw::x
float x
Definition: ParticleEngine.h:20
SPELL_SPIRIT_DETECT_LIFE
@ SPELL_SPIRIT_DETECT_LIFE
Definition: Spells.h:61
SpellFxRenderer::effpar02
Texture * effpar02
Definition: SpellFxRenderer.h:167
SPRITE_SPELL_MIND_TELEPATHY
@ SPRITE_SPELL_MIND_TELEPATHY
Definition: SpriteObject.h:125
IndoorCameraD3D::fov_x
float fov_x
Definition: IndoorCameraD3D.h:192
SpellFxRenderer::field_204
int field_204
Definition: SpellFxRenderer.h:156
ModulateColor
unsigned int ModulateColor(unsigned int diffuse, float multiplier)
Definition: SpellFxRenderer.cpp:28
SPRITE_SPELL_DARK_CONTROL_UNDEAD
@ SPRITE_SPELL_DARK_CONTROL_UNDEAD
Definition: SpriteObject.h:173
SPRITE_PROJECTILE_515_IMPACT
@ SPRITE_PROJECTILE_515_IMPACT
Definition: SpriteObject.h:17
BECOME_MAGIC_GUILD_MEMBER
@ BECOME_MAGIC_GUILD_MEMBER
Definition: Spells.h:125
ProjectileAnim::texture
Texture * texture
Definition: SpellFxRenderer.h:80
SpellFxRenderer::array_4
stru6_stru2 array_4[31]
Definition: SpellFxRenderer.h:151
IndoorCameraD3D::ViewTransform
void ViewTransform(int x, int y, int z, int *transformed_x, int *transformed_y, int *transformed_z)
Definition: IndoorCameraD3D.cpp:184
SPRITE_SPELL_MIND_CHARM
@ SPRITE_SPELL_MIND_CHARM
Definition: SpriteObject.h:126
RenderVertexSoft
Definition: IRender.h:113
ParticleType_Bitmap
@ ParticleType_Bitmap
Definition: ParticleEngine.h:12
SPELL_MIND_REMOVE_FEAR
@ SPELL_MIND_REMOVE_FEAR
Definition: Spells.h:73
SPRITE_SPELL_FIRE_FIREBALL
@ SPRITE_SPELL_FIRE_FIREBALL
Definition: SpriteObject.h:48
SPRITE_PROJECTILE_540
@ SPRITE_PROJECTILE_540
Definition: SpriteObject.h:26
SPELL_AIR_INVISIBILITY
@ SPELL_AIR_INVISIBILITY
Definition: Spells.h:32
pMobileLightsStack
LightsStack_MobileLight_ * pMobileLightsStack
Definition: LightmapBuilder.cpp:14
SPRITE_SPELL_WATER_ICE_BLAST
@ SPRITE_SPELL_WATER_ICE_BLAST
Definition: SpriteObject.h:86
SPRITE_SPELL_FIRE_FIREBALL_IMPACT
@ SPRITE_SPELL_FIRE_FIREBALL_IMPACT
Definition: SpriteObject.h:49
SPRITE_SPELL_MIND_MIND_BLAST_IMPACT
@ SPRITE_SPELL_MIND_MIND_BLAST_IMPACT
Definition: SpriteObject.h:123
SpriteObject::GetLifetime
unsigned int GetLifetime()
Definition: SpriteObject.cpp:837
SPRITE_PROJECTILE_550
@ SPRITE_PROJECTILE_550
Definition: SpriteObject.h:29
RenderVertexD3D3::specular
unsigned int specular
Definition: IRender.h:133
SpellFxRenderer::_4A77FD_implosion_particle_d3d
void _4A77FD_implosion_particle_d3d(struct SpriteObject *a1)
Definition: SpellFxRenderer.cpp:381
pIndoorCameraD3D
IndoorCameraD3D * pIndoorCameraD3D
Definition: IndoorCameraD3D.cpp:21
Viewport::uViewportTL_X
int uViewportTL_X
Definition: Viewport.h:22
SPELL_FIRE_HASTE
@ SPELL_FIRE_HASTE
Definition: Spells.h:17
SpellFxRenderer::_4A7A66_miltiple_spell_collision_partifles___like_after_sparks_or_lightning
void _4A7A66_miltiple_spell_collision_partifles___like_after_sparks_or_lightning(SpriteObject *a1, unsigned int uDiffuse, Texture *texture, float a4)
Definition: SpellFxRenderer.cpp:443
SPELL_MIND_CURE_PARALYSIS
@ SPELL_MIND_CURE_PARALYSIS
Definition: Spells.h:78
PlayerBuffAnim::uSpellAnimTimeElapsed
int uSpellAnimTimeElapsed
Definition: SpellFxRenderer.h:65
PlayerBuffAnim::uSpellIconID
int uSpellIconID
Definition: SpellFxRenderer.h:67
Timer::uTotalGameTimeElapsed
unsigned int uTotalGameTimeElapsed
Definition: Time.h:135
ProjectileAnim::srcY
float srcY
Definition: SpellFxRenderer.h:75
LightsStack_MobileLight_::AddLight
bool AddLight(int16_t x, int16_t y, int16_t z, int16_t uSectorID, int uRadius, uint8_t r, uint8_t g, uint8_t b, char a10)
Definition: LightsStack.cpp:6
SPRITE_SPELL_DARK_SHRINKING_RAY
@ SPRITE_SPELL_DARK_SHRINKING_RAY
Definition: SpriteObject.h:170
SPRITE_SPELL_LIGHT_LIGHT_BOLT
@ SPRITE_SPELL_LIGHT_LIGHT_BOLT
Definition: SpriteObject.h:149
pEventTimer
Timer * pEventTimer
Definition: Time.cpp:8
SPRITE_PROJECTILE_505_IMPACT
@ SPRITE_PROJECTILE_505_IMPACT
Definition: SpriteObject.h:13
SpellFxRenderer::uNumProjectiles
int uNumProjectiles
Definition: SpellFxRenderer.h:159
SpriteObject::GetSpriteFrame
SpriteFrame * GetSpriteFrame()
Definition: SpriteObject.cpp:842
SPRITE_SPELL_EARTH_BLADES
@ SPRITE_SPELL_EARTH_BLADES
Definition: SpriteObject.h:97
SPELL_SPIRIT_HEROISM
@ SPELL_SPIRIT_HEROISM
Definition: Spells.h:67
SPELL_BODY_PROTECTION_FROM_MAGIC
@ SPELL_BODY_PROTECTION_FROM_MAGIC
Definition: Spells.h:93
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
SPRITE_SPELL_BODY_HARM_IMPACT
@ SPRITE_SPELL_BODY_HARM_IMPACT
Definition: SpriteObject.h:139
SpellFxRenderer::DrawProjectiles
void DrawProjectiles()
Definition: SpellFxRenderer.cpp:221
SpellFxRenderer::effpar01
Texture * effpar01
Definition: SpellFxRenderer.h:166
Actor::pActorBuffs
struct SpellBuff pActorBuffs[22]
Definition: Actor.h:315
Particle_sw::uDiffuse
unsigned int uDiffuse
Definition: ParticleEngine.h:26
render
std::shared_ptr< IRender > render
Definition: RenderOpenGL.cpp:52
SPRITE_SPELL_FIRE_FIRE_SPIKE
@ SPRITE_SPELL_FIRE_FIRE_SPIKE
Definition: SpriteObject.h:50