Code: Select all
void ThiefControl::process( bz_EventData *eventData )
{
bz_FlagTransferredEventData_V1 *data = (bz_FlagTransferredEventData_V1 *) eventData;
bz_BasePlayerRecord *playerFrom = bz_getPlayerByIndex(data->fromPlayerID);
bz_BasePlayerRecord *playerTo = bz_getPlayerByIndex(data->toPlayerID);
if (eventData) {
switch (eventData->eventType) {
case bz_eFlagTransferredEvent:
if (playerFrom && playerTo) {
if ((playerTo->team != eRogueTeam || bz_getGameType() == eRabbitGame) && playerFrom->team == playerTo->team) {
data->action = data->DropThief;
bz_sendTextMessage(BZ_SERVER, data->toPlayerID, "Flag dropped. Don't steal from teammates!");
}
}
break;
default:
break;
}
}
}
It never calls bz_freePlayerRecord, and since that function is still there, I will assume the API does not use smart pointers.
I went ahead and rewrote the plugin in an attempt to make it slightly better, as based on my experience playing BZFlag while the plugin is loaded. Hopefully everyone will like my changes (or at least a few people).
Please note that it was not tested, but it compiled the first time I tried (somewhat rare for me). Maybe I will test it tomorrow.