Vice City: Multiplayer

VC:MP Discussion => Support => Topic started by: . on Aug 19, 2016, 06:00 PM

Title: Adjustments to the plugin SDK
Post by: . on Aug 19, 2016, 06:00 PM
I'm reserving this topic for future requests and probably suggestions to the plugin SKD that could be of use. Please do not post in this topic if you're not a developer or you have no idea what you're talking about.



Bulk retrieval of entity positions:
/*
Returns:
    Number of remaining entities if GetLastError() is equal to vcmpErrorBufferTooSmall
    Number of found entities that were saved in the buffer.

GetLastError:
vcmpErrorNoSuchEntity - Wrong entity pool? Does not have a position?
vcmpErrorBufferTooSmall - One of the specified buffers were too small
*/
int32_t (*GetAllEntityPositions) (vcmpEntityPool entityPool, int32_t* idBuffer, uint32_t idBufferSize, float * posBuffer, uint32_t posBufferSize);

/* Possible checks to be done internally:
    posBufferSize /= 3; // (x,y,z)
    if (posBufferSize < idBufferSize) generate vcmpErrorBufferTooSmall;
*/

Rather than validating each entity and requesting it's size all the time. Should save some time. To be able to create efficient functions for situations like in this (http://forum.vc-mp.org/?topic=3572.0) topic. And probably a few others.

The identifiers of the active entities are put into idBuffer and their position is put into posBuffer.



More to be suggested as I recall them. I used to have plenty of requests but I seem to have forgot them for now.