Say I have a brickVehicleSpawnData brick, %spawn, that I just planted. If I run %spawn.setVehicle(JeepVehicle), nothing spawns. However, if I spawn a tank, and then run %spawn.setVehicle(JeepVehicle), a jeep spawns. However, if I then run %spawn.setVehicle(TankVehicle), the jeep remains. But if I manually respawn the jeep and run %spawn.setVehicle(TankVehicle), a tank spawns. Then predictably, %spawn.setVehicle(JeepVehicle) does not do anything. If I run %spawn.respawnVehicle() (which does successfully respawn the vehicle) and then run %spawn.setVehicle(JeepVehicle), nothing happens. However, if I wrench the brick and just click send, and then run %spawn.setVehicle(JeepVehicle), the vehicle is changed to a jeep.
I've checked the trace(), and it just looks like FxDTSBrick::setVehicle() is the only function being called when I use events or a wrench to change the vehicle. There appears to be a GameConnection object passed as a second argument (err... third if you include the FxDTSBrick object itself). But I have included this as an argument and it doesn't make a difference