diff -r 394a1b3d6f3e -r 0a1ce05c3d45 roadveh_cmd.c --- a/roadveh_cmd.c Sun Jan 30 19:51:39 2005 +0000 +++ b/roadveh_cmd.c Sun Jan 30 20:50:06 2005 +0000 @@ -209,6 +209,8 @@ { Vehicle *v; + if (!IsVehicleIndex(p1)) return CMD_ERROR; + v = GetVehicle(p1); if (v->type != VEH_Road || !CheckOwnership(v->owner)) @@ -229,13 +231,15 @@ { Vehicle *v; - SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES); + if (!IsVehicleIndex(p1)) return CMD_ERROR; v = GetVehicle(p1); if (v->type != VEH_Road || !CheckOwnership(v->owner)) return CMD_ERROR; + SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES); + if (!IsRoadDepotTile(v->tile) || v->u.road.state != 254 || !(v->vehstatus&VS_STOPPED)) return_cmd_error(STR_9013_MUST_BE_STOPPED_INSIDE); @@ -307,9 +311,13 @@ bit 2 = clear v->set_for_replacement */ int32 CmdSendRoadVehToDepot(int x, int y, uint32 flags, uint32 p1, uint32 p2) { - Vehicle *v = GetVehicle(p1); + Vehicle *v; int depot; + if (!IsVehicleIndex(p1)) return CMD_ERROR; + + v = GetVehicle(p1); + if (v->type != VEH_Road || !CheckOwnership(v->owner)) return CMD_ERROR; @@ -348,6 +356,8 @@ { Vehicle *v; + if (!IsVehicleIndex(p1)) return CMD_ERROR; + v = GetVehicle(p1); if (v->type != VEH_Road || !CheckOwnership(v->owner)) @@ -373,6 +383,8 @@ { Vehicle *v; + if (!IsVehicleIndex(p1)) return CMD_ERROR; + v = GetVehicle(p1); if (v->type != VEH_Road || !CheckOwnership(v->owner))