Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void SetControlPoint(uintptr_t index, Vector& data)
- {
- unsigned long particlecount = particle_manager->GetParticleCount();
- CDOTA_ParticleManager::OwnParticles* MyList = particle_manager->GetParticleList();
- for (int i = 0; i < particlecount; i++)
- {
- if (MyList->items[i]->Handle == handle)
- {
- if (!SetControlPointFunction)
- {
- auto vmt = [](uintptr_t region, int index) {
- return *reinterpret_cast<uintptr_t*>(*reinterpret_cast<uintptr_t*>(region) + index * 8);
- };
- SetControlPointFunction = (_SetControlPointFunction)(vmt(reinterpret_cast<uintptr_t>(MyList->items[i]->NewParticleEffectPtr->ParticleCollectionPtr), 15));
- }
- if (MyList->items[i]->NewParticleEffectPtr) {
- SetControlPointFunction((uintptr_t*)(MyList->items[i]->NewParticleEffectPtr->ParticleCollectionPtr), index, data);
- }
- else{
- std::cerr << "[SetControlPoint]: NewParticleEffectPtr is nullptr!" << std::endl;
- }
- }
- }
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement