This works
class MyClass
{
TEntity _this;
static void _stdcall _onCollision( TEntity entity0, TEntity entity1, byte* position, byte* normal, byte* force, flt speed );
public:
MyClass();
};
MyClass::MyClass()
{
// create the entity _this
// _this = CreateXXXXX
// register for collison detection
SetEntityUserData( _this, reinterpret_cast<BP>(this) );
SetEntityCallback( _this, reinterpret_cast<BP>(_onCollision), ENTITYCALLBACK_COLLISION );
}
void MyClass::_onCollision( TEntity us, TEntity them, byte* position, byte* normal, byte* force, flt speed )
{
MyClass* pThis = reinterpret_cast<MyClass*>(GetEntityUserData(us)) ;
if( pThis == 0)
return;
// Do your thing on collision
// You are pThis
}