T2-CPP/CommonAPI/Common/source/DXAPI/Projectile.cpp
Robert MacGregor 0410000234 * Minor cleanups.
* Add preprocessor macros for resolving member field offsets in a standard, easy to read way.
2019-07-14 17:00:46 -07:00

29 lines
720 B
C++

#include <DXAPI/Projectile.h>
namespace DX
{
Projectile::Projectile(unsigned int obj) : GameBase(obj),
velocity(MEMBER_POINT3F(obj, 892, 4)),
hidden(MEMBER_FIELD(obj, bool, 796))
{
}
void Projectile::explode(const Linker::Point3F &position, const Linker::Point3F &normal, const unsigned int collideType)
{
void *pointer = (void*)this->base_pointer_value;
typedef void (__cdecl *explodeFunc)(const Linker::Point3F &position, const Linker::Point3F &normal, const unsigned int collideType);
static explodeFunc function_call = (explodeFunc)0x62DC30;
__asm
{
push collideType;
push normal;
push position;
mov ecx,pointer;
lea eax, function_call;
mov eax, [eax];
call eax;
}
}
}