(svn r1741) - Fix: added IsVehicleIndex() so it's possible to protect GetVehicle() from reading an invalid vehicle index
- Fix: added check for v->type in some commands, which expects v to be a specific type
Checks like this is needed to protect network servers from people, who hack their clients to either cheat or crash the server
NOTE: if I made a mistake here it can make a function unreachable when it should be used. Here is one place to look if something weird happens
#include "stdafx.h"
#include "tile.h"
void SetMapExtraBits(TileIndex tile, byte bits)
{
assert(tile < MapSize());
_map_extra_bits[tile >> 2] &= ~(3 << ((tile & 3) * 2));
_map_extra_bits[tile >> 2] |= (bits&3) << ((tile & 3) * 2);
}
uint GetMapExtraBits(TileIndex tile)
{
assert(tile < MapSize());
return (_map_extra_bits[tile >> 2] >> (tile & 3) * 2) & 3;
}