tanksoftik
Новичок
- 5
- 0
C++:
int AddParticle(FxSystem_c* particle,
RwV3d* position,
RwV3d* velocity,
float unk,
FxPrtMult_c* particleData,
float a6,
float brightness,
float a8,
int a9)
{
particle->AddParticle(position, velocity, unk, particleData, a6, brightness, a8, a9);
return 1;
}
C++:
patch::RedirectCall(0x6DF303, AddParticle);
patch::RedirectCall(0x6DEE83, AddParticle);
patch::RedirectCall(0x6DF0C3, AddParticle);
psevdocode:
int __thiscall FxSystem_c::AddParticle(
FxSystem_c *particle,
CVector *position,
CVector *velocity,
float unk,
FxPrtMult_c *particleData,
float a6,
float brightness,
float a8,
int a9)
{
int v10; // esi
int result; // eax
FxPrim_c *particlePrim; // ecx
float v13; // [esp+18h] [ebp-8h]
int i; // [esp+3Ch] [ebp+1Ch]
v10 = (rand() * 0.000030517578 * 100.0);
result = Fx_c::GetFxQuality(&g_fx);
if ( result || v10 >= 50 )
{
result = Fx_c::GetFxQuality(&g_fx);
if ( result != FX_MEDIUM || v10 >= 25 )
{
v13 = 1.0;
if ( brightness < a8 )
v13 = 1.0 - a8 + brightness;
result = 0;
for ( i = 0; result < particle->m_pBluePrint->m_nNumEmitters; i = ++result )
{
particlePrim = particle->PrimsList[result];
if ( particlePrim->m_bEnabled )
{
(particlePrim->vtable->field_14)(
particlePrim,
position,
velocity,
LODWORD(unk),
particleData,
LODWORD(a6),
COERCE_FLOAT(LODWORD(v13)),
a9);
result = i;
}
}
}
}
return result;
}
но почему то крашит, пробовал пустую функцию делать все равно крашит