diff src/saveload/cargopacket_sl.cpp @ 10571:b6779abf2e96 draft

(svn r14828) -Codechange: move most of save/load-specific code to separate files
author smatz <smatz@openttd.org>
date Sun, 04 Jan 2009 15:32:25 +0000 (2009-01-04)
parents
children a4e5b5d2837c
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/src/saveload/cargopacket_sl.cpp
@@ -0,0 +1,45 @@
+/* $Id$ */
+
+/** @file cargopacket_sl.cpp Code handling saving and loading of cargo packets */
+
+#include "../stdafx.h"
+#include "../openttd.h"
+#include "../cargopacket.h"
+
+#include "saveload.h"
+
+static const SaveLoad _cargopacket_desc[] = {
+	SLE_VAR(CargoPacket, source,          SLE_UINT16),
+	SLE_VAR(CargoPacket, source_xy,       SLE_UINT32),
+	SLE_VAR(CargoPacket, loaded_at_xy,    SLE_UINT32),
+	SLE_VAR(CargoPacket, count,           SLE_UINT16),
+	SLE_VAR(CargoPacket, days_in_transit, SLE_UINT8),
+	SLE_VAR(CargoPacket, feeder_share,    SLE_INT64),
+	SLE_VAR(CargoPacket, paid_for,        SLE_BOOL),
+
+	SLE_END()
+};
+
+static void Save_CAPA()
+{
+	CargoPacket *cp;
+
+	FOR_ALL_CARGOPACKETS(cp) {
+		SlSetArrayIndex(cp->index);
+		SlObject(cp, _cargopacket_desc);
+	}
+}
+
+static void Load_CAPA()
+{
+	int index;
+
+	while ((index = SlIterateArray()) != -1) {
+		CargoPacket *cp = new (index) CargoPacket();
+		SlObject(cp, _cargopacket_desc);
+	}
+}
+
+extern const ChunkHandler _cargopacket_chunk_handlers[] = {
+	{ 'CAPA', Save_CAPA, Load_CAPA, CH_ARRAY | CH_LAST},
+};