changeset 13227:f5a7cee9edd1 draft

(svn r17734) -Fix (r17732): broke the assumption that 'this->packets == this', which broke loading old savegames. Now remove the (need for the) hack that needed that assumption.
author rubidium <rubidium@openttd.org>
date Tue, 06 Oct 2009 23:01:35 +0000
parents 5c4fb8258742
children d057d11bf834
files src/cargopacket.h src/economy_base.h src/saveload/vehicle_sl.cpp src/station_base.h
diffstat 4 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/cargopacket.h
+++ b/src/cargopacket.h
@@ -17,6 +17,7 @@
 #include "tile_type.h"
 #include "station_type.h"
 #include "cargo_type.h"
+#include "vehicle_type.h"
 #include <list>
 
 /** Unique identifier for a single cargo packet. */
@@ -143,6 +144,7 @@
 #define FOR_ALL_CARGOPACKETS(var) FOR_ALL_CARGOPACKETS_FROM(var, 0)
 
 extern const struct SaveLoad *GetGoodsDesc();
+extern const SaveLoad *GetVehicleDescription(VehicleType vt);
 
 /**
  * Simple collection class for a list of cargo packets
@@ -168,8 +170,10 @@
 	List packets;               ///< The cargo packets in this list
 
 public:
-	/** The GoodsEntry has a CargoList. */
+	/** The stations, via GoodsEntry, have a CargoList. */
 	friend const struct SaveLoad *GetGoodsDesc();
+	/** The vehicles have a cargo list too. */
+	friend const SaveLoad *GetVehicleDescription(VehicleType vt);
 
 	/** Create the cargo list */
 	FORCEINLINE CargoList() { this->InvalidateCache(); }
--- a/src/economy_base.h
+++ b/src/economy_base.h
@@ -13,7 +13,6 @@
 #define ECONOMY_BASE_H
 
 #include "cargopacket.h"
-#include "vehicle_type.h"
 #include "company_type.h"
 
 /** Type of pool to store cargo payments in. */
--- a/src/saveload/vehicle_sl.cpp
+++ b/src/saveload/vehicle_sl.cpp
@@ -447,7 +447,7 @@
 		SLEG_CONDVAR(         _cargo_source_xy,      SLE_UINT32,                  44,  67),
 		     SLE_VAR(Vehicle, cargo_cap,             SLE_UINT16),
 		SLEG_CONDVAR(         _cargo_count,          SLE_UINT16,                   0,  67),
-		 SLE_CONDLST(Vehicle, cargo,                 REF_CARGO_PACKET,            68, SL_MAX_VERSION),
+		 SLE_CONDLST(Vehicle, cargo.packets,         REF_CARGO_PACKET,            68, SL_MAX_VERSION),
 
 		     SLE_VAR(Vehicle, day_counter,           SLE_UINT8),
 		     SLE_VAR(Vehicle, tick_counter,          SLE_UINT8),
--- a/src/station_base.h
+++ b/src/station_base.h
@@ -16,7 +16,6 @@
 #include "airport.h"
 #include "cargopacket.h"
 #include "cargo_type.h"
-#include "vehicle_type.h"
 #include "industry_type.h"
 #include "core/geometry_type.hpp"
 #include <list>