mirror of https://github.com/OpenTTD/OpenTTD
(svn r8946) -Feature: [NewGRF] Add support for vehicle variables 0xFE and 0xFF bit 10,
which is set when a vehicle was built during the exclusive testing phase.release/0.6
parent
aadd8a4b44
commit
469fbc912c
|
@ -390,6 +390,9 @@ int32 CmdBuildAircraft(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||||
v->random_bits = VehicleRandomBits();
|
v->random_bits = VehicleRandomBits();
|
||||||
u->random_bits = VehicleRandomBits();
|
u->random_bits = VehicleRandomBits();
|
||||||
|
|
||||||
|
v->vehicle_flags = 0;
|
||||||
|
if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) SETBIT(v->vehicle_flags, VF_BUILT_AS_PROTOTYPE);
|
||||||
|
|
||||||
VehiclePositionChanged(v);
|
VehiclePositionChanged(v);
|
||||||
VehiclePositionChanged(u);
|
VehiclePositionChanged(u);
|
||||||
|
|
||||||
|
|
|
@ -601,6 +601,21 @@ static uint32 VehicleGetVariable(const ResolverObject *object, byte variable, by
|
||||||
}
|
}
|
||||||
|
|
||||||
case 0x7F: return GetGRFParameter(v->engine_type, parameter); /* Read GRF parameter */
|
case 0x7F: return GetGRFParameter(v->engine_type, parameter); /* Read GRF parameter */
|
||||||
|
|
||||||
|
case 0xFE:
|
||||||
|
case 0xFF: {
|
||||||
|
uint16 modflags = 0;
|
||||||
|
|
||||||
|
/* TODO: There are some other bits that should be implemented:
|
||||||
|
* bit 5: Whether the rail vehicle is powered or not (mostly useful for wagons).
|
||||||
|
* bit 6: This is an electrically powered rail vehicle which is running on normal rail.
|
||||||
|
* bit 8: (Maybe?) Toggled whenever the train reverses.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (HASBIT(v->vehicle_flags, VF_BUILT_AS_PROTOTYPE)) SETBIT(modflags, 10);
|
||||||
|
|
||||||
|
return variable == 0xFE ? modflags : GB(modflags, 8, 8);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* General vehicle properties */
|
/* General vehicle properties */
|
||||||
|
|
|
@ -204,6 +204,9 @@ int32 CmdBuildRoadVeh(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||||
v->cur_image = 0xC15;
|
v->cur_image = 0xC15;
|
||||||
v->random_bits = VehicleRandomBits();
|
v->random_bits = VehicleRandomBits();
|
||||||
|
|
||||||
|
v->vehicle_flags = 0;
|
||||||
|
if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) SETBIT(v->vehicle_flags, VF_BUILT_AS_PROTOTYPE);
|
||||||
|
|
||||||
VehiclePositionChanged(v);
|
VehiclePositionChanged(v);
|
||||||
|
|
||||||
InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
|
InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
|
||||||
|
|
|
@ -913,6 +913,9 @@ int32 CmdBuildShip(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||||
v->type = VEH_Ship;
|
v->type = VEH_Ship;
|
||||||
v->random_bits = VehicleRandomBits();
|
v->random_bits = VehicleRandomBits();
|
||||||
|
|
||||||
|
v->vehicle_flags = 0;
|
||||||
|
if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) SETBIT(v->vehicle_flags, VF_BUILT_AS_PROTOTYPE);
|
||||||
|
|
||||||
VehiclePositionChanged(v);
|
VehiclePositionChanged(v);
|
||||||
|
|
||||||
InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
|
InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
|
||||||
|
|
|
@ -785,6 +785,9 @@ int32 CmdBuildRailVehicle(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||||
v->cur_image = 0xAC2;
|
v->cur_image = 0xAC2;
|
||||||
v->random_bits = VehicleRandomBits();
|
v->random_bits = VehicleRandomBits();
|
||||||
|
|
||||||
|
v->vehicle_flags = 0;
|
||||||
|
if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) SETBIT(v->vehicle_flags, VF_BUILT_AS_PROTOTYPE);
|
||||||
|
|
||||||
v->subtype = 0;
|
v->subtype = 0;
|
||||||
SetFrontEngine(v);
|
SetFrontEngine(v);
|
||||||
SetTrainEngine(v);
|
SetTrainEngine(v);
|
||||||
|
|
|
@ -86,6 +86,7 @@ enum VehStatus {
|
||||||
enum VehicleFlags {
|
enum VehicleFlags {
|
||||||
VF_LOADING_FINISHED,
|
VF_LOADING_FINISHED,
|
||||||
VF_CARGO_UNLOADING,
|
VF_CARGO_UNLOADING,
|
||||||
|
VF_BUILT_AS_PROTOTYPE,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Effect vehicle types */
|
/* Effect vehicle types */
|
||||||
|
|
Loading…
Reference in New Issue