Changeset - r5651:fad3c89d73b0
[Not reviewed]
master
0 6 0
KUDr - 17 years ago 2007-01-13 18:55:54
kudr@openttd.org
(svn r8110) -Codechange: direct Vehicle::current_order.type changes (to OT_LOADING and OT_LEAVESTATION) replaced by v->BeginLoading() and v->LeaveStation() calls. This should allow easy hooking of those state transitions in order to maintain vehicle loading queue.
6 files changed with 25 insertions and 12 deletions:
0 comments (0 inline, 0 general)
src/aircraft_cmd.cpp
Show inline comments
 
@@ -1370,7 +1370,7 @@ static void AircraftEntersTerminal(Vehic
 
	}
 

	
 
	old_order = v->current_order;
 
	v->current_order.type = OT_LOADING;
 
	v->BeginLoading();
 
	v->current_order.flags = 0;
 

	
 
	if (old_order.type == OT_GOTO_STATION &&
src/roadveh_cmd.cpp
Show inline comments
 
@@ -750,8 +750,7 @@ static void HandleRoadVehLoading(Vehicle
 
			}
 

	
 
			b = v->current_order;
 
			v->current_order.type = OT_LEAVESTATION;
 
			v->current_order.flags = 0;
 
			v->LeaveStation();
 
			if (!(b.flags & OF_NON_STOP)) return;
 
			break;
 
		}
 
@@ -1508,7 +1507,7 @@ again:
 
			RoadVehArrivesAt(v, st);
 

	
 
			old_order = v->current_order;
 
			v->current_order.type = OT_LOADING;
 
			v->BeginLoading();
 
			v->current_order.flags = 0;
 

	
 
			if (old_order.type == OT_GOTO_STATION &&
src/ship_cmd.cpp
Show inline comments
 
@@ -292,8 +292,7 @@ static void HandleShipLoading(Vehicle *v
 

	
 
		{
 
			Order b = v->current_order;
 
			v->current_order.type = OT_LEAVESTATION;
 
			v->current_order.flags = 0;
 
			v->LeaveStation();
 
			if (!(b.flags & OF_NON_STOP)) return;
 
		}
 
	}
 
@@ -704,7 +703,7 @@ static void ShipController(Vehicle *v)
 
							/* Process station in the orderlist. */
 
							st = GetStation(v->current_order.dest);
 
							if (st->facilities & FACIL_DOCK) { /* ugly, ugly workaround for problem with ships able to drop off cargo at wrong stations */
 
								v->current_order.type = OT_LOADING;
 
								v->BeginLoading();
 
								v->current_order.flags &= OF_FULL_LOAD | OF_UNLOAD | OF_TRANSFER;
 
								v->current_order.flags |= OF_NON_STOP;
 
								ShipArrivesAt(v, st);
 
@@ -717,7 +716,6 @@ static void ShipController(Vehicle *v)
 
								InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, STATUS_BAR);
 
							} else { /* leave stations without docks right aways */
 
								v->current_order.type = OT_LEAVESTATION;
 
								v->current_order.flags = 0;
 
								v->cur_order_index++;
 
								InvalidateVehicleOrder(v);
 
							}
src/train_cmd.cpp
Show inline comments
 
@@ -2647,8 +2647,7 @@ static void HandleTrainLoading(Vehicle *
 

	
 
		{
 
			Order b = v->current_order;
 
			v->current_order.type = OT_LEAVESTATION;
 
			v->current_order.flags = 0;
 
			v->LeaveStation();
 

	
 
			// If this was not the final order, don't remove it from the list.
 
			if (!(b.flags & OF_NON_STOP)) return;
 
@@ -2721,12 +2720,12 @@ static void TrainEnterStation(Vehicle *v
 
			v->current_order.dest == station) {
 
		// Yeah, keep the load/unload flags
 
		// Non Stop now means if the order should be increased.
 
		v->current_order.type = OT_LOADING;
 
		v->BeginLoading();
 
		v->current_order.flags &= OF_FULL_LOAD | OF_UNLOAD | OF_TRANSFER;
 
		v->current_order.flags |= OF_NON_STOP;
 
	} else {
 
		// No, just do a simple load
 
		v->current_order.type = OT_LOADING;
 
		v->BeginLoading();
 
		v->current_order.flags = 0;
 
	}
 
	v->current_order.dest = 0;
src/vehicle.cpp
Show inline comments
 
@@ -3227,3 +3227,17 @@ static void Load_VEHS(void)
 
extern const ChunkHandler _veh_chunk_handlers[] = {
 
	{ 'VEHS', Save_VEHS, Load_VEHS, CH_SPARSE_ARRAY | CH_LAST},
 
};
 

	
 
void Vehicle::BeginLoading()
 
{
 
	assert(IsTileType(tile, MP_STATION) || type == VEH_Ship);
 
	current_order.type = OT_LOADING;
 
}
 

	
 
void Vehicle::LeaveStation()
 
{
 
	assert(IsTileType(tile, MP_STATION) || type == VEH_Ship);
 
	assert(current_order.type == OT_LOADING);
 
	current_order.type = OT_LEAVESTATION;
 
	current_order.flags = 0;
 
}
src/vehicle.h
Show inline comments
 
@@ -251,6 +251,9 @@ struct Vehicle {
 
		VehicleDisaster disaster;
 
		VehicleShip ship;
 
	} u;
 

	
 
	void BeginLoading();
 
	void LeaveStation();
 
};
 

	
 
#define is_custom_sprite(x) (x >= 0xFD)
0 comments (0 inline, 0 general)