[SCM] transportation simulator branch, master, updated. debian/110.0.1-2
Ansgar Burchardt
ansgar at debian.org
Mon Mar 14 19:34:34 UTC 2011
The following commit has been merged in the master branch:
commit 8ed1486c5c1fbc0cc3cc3c1548e5516fdb25628f
Author: Ansgar Burchardt <ansgar at debian.org>
Date: Mon Mar 14 20:24:17 2011 +0100
Add changes upstream decided to add after uploading the first time.
diff --git a/debian/patches/0001-neroden-give-IMG_LEER-type-image_id.patch b/debian/patches/0001-neroden-give-IMG_LEER-type-image_id.patch
new file mode 100644
index 0000000..144acbd
--- /dev/null
+++ b/debian/patches/0001-neroden-give-IMG_LEER-type-image_id.patch
@@ -0,0 +1,29 @@
+From f4a563743280adc099efa97ff381a7f473299afb Mon Sep 17 00:00:00 2001
+From: Dwachs <dwachs at gmx.net>
+Date: Fri, 11 Mar 2011 09:15:57 +0000
+Subject: [PATCH 1/3] (neroden) give IMG_LEER type image_id
+
+git-svn-id: svn://tron.homeunix.org/simutrans/simutrans/trunk@4357 8aca7d54-2c30-db11-9de9-000461428c89
+---
+ simimg.h | 4 +---
+ 1 files changed, 1 insertions(+), 3 deletions(-)
+
+diff --git a/simimg.h b/simimg.h
+index 2b323c7..b5aa25b 100644
+--- a/simimg.h
++++ b/simimg.h
+@@ -15,10 +15,8 @@
+
+ #include "simtypes.h"
+
+-#define IMG_LEER 0xFFFF
+-
+ typedef uint16 image_id;
+
+-// spezielle gebaeude
++#define IMG_LEER ((image_id)0xFFFF)
+
+ #endif
+--
+1.7.2.3
+
diff --git a/debian/patches/0002-FIX-loading-of-savegames-with-line-with-id-0.patch b/debian/patches/0002-FIX-loading-of-savegames-with-line-with-id-0.patch
new file mode 100644
index 0000000..e65bca0
--- /dev/null
+++ b/debian/patches/0002-FIX-loading-of-savegames-with-line-with-id-0.patch
@@ -0,0 +1,173 @@
+From 72359f80fb81c039a2f3e14acff11a6056b27a28 Mon Sep 17 00:00:00 2001
+From: Dwachs <dwachs at gmx.net>
+Date: Fri, 11 Mar 2011 09:16:26 +0000
+Subject: [PATCH 2/3] FIX loading of savegames with line with id=0
+
+git-svn-id: svn://tron.homeunix.org/simutrans/simutrans/trunk@4358 8aca7d54-2c30-db11-9de9-000461428c89
+---
+ simconvoi.cc | 11 ++++++++---
+ simline.cc | 14 ++++++++++++--
+ simlinemgmt.cc | 23 +++++++++++++++++++++--
+ simlinemgmt.h | 8 ++++++++
+ tpl/quickstone_tpl.h | 5 ++++-
+ 5 files changed, 53 insertions(+), 8 deletions(-)
+
+diff --git a/simconvoi.cc b/simconvoi.cc
+index fa6ddf1..9499a84 100644
+--- a/simconvoi.cc
++++ b/simconvoi.cc
+@@ -353,9 +353,14 @@ DBG_MESSAGE("convoi_t::laden_abschliessen()","state=%s, next_stop_index=%d", sta
+ }
+ }
+ DBG_MESSAGE("convoi_t::laden_abschliessen()","next_stop_index=%d", next_stop_index );
+- if( line.is_bound() ) {
+- linehandle_t new_line = line;
+- if ( !fpl->matches( welt, line->get_schedule() ) ) {
++
++ linehandle_t new_line = line;
++ if( !new_line.is_bound() ) {
++ // if there is a line with id=0 in the savegame try to assign cnv to this line
++ new_line = get_besitzer()->simlinemgmt.get_line_with_id_zero();
++ }
++ if( new_line.is_bound() ) {
++ if ( !fpl->matches( welt, new_line->get_schedule() ) ) {
+ // 101 version produced broken line ids => we have to find our line the hard way ...
+ vector_tpl<linehandle_t> lines;
+ get_besitzer()->simlinemgmt.get_lines(fpl->get_type(), &lines);
+diff --git a/simline.cc b/simline.cc
+index 1d10047..042e196 100644
+--- a/simline.cc
++++ b/simline.cc
+@@ -49,7 +49,10 @@ simline_t::simline_t(karte_t* welt, spieler_t* sp, linetype type, loadsave_t *fi
+ rdwr(file);
+ // now self has the right id but the this-pointer is not assigned to the quickstone handle yet
+ // do this explicitly
+- self = linehandle_t(this, self.get_id());
++ // some savegames have line_id=0, resolve that in laden_abschliessen
++ if (self.get_id()!=0) {
++ self = linehandle_t(this, self.get_id());
++ }
+ }
+
+
+@@ -85,8 +88,9 @@ void simline_t::create_schedule()
+
+ void simline_t::add_convoy(convoihandle_t cnv)
+ {
+- if (line_managed_convoys.empty()) {
++ if (line_managed_convoys.empty() && self.is_bound()) {
+ // first convoi -> ok, now we can announce this connection to the stations
++ // unbound self can happen during loading if this line had line_id=0
+ register_stops(fpl);
+ }
+
+@@ -225,6 +229,12 @@ void simline_t::rdwr(loadsave_t *file)
+
+ void simline_t::laden_abschliessen()
+ {
++ if( !self.is_bound() ) {
++ // get correct handle
++ self = sp->simlinemgmt.get_line_with_id_zero();
++ assert( self.get_rep() == this );
++ DBG_MESSAGE("simline_t::laden_abschliessen", "assigned id=%d to line %s", self.get_id(), get_name());
++ }
+ if( line_managed_convoys.get_count()>0 ) {
+ register_stops(fpl);
+ }
+diff --git a/simlinemgmt.cc b/simlinemgmt.cc
+index db8b324..19f61ba 100644
+--- a/simlinemgmt.cc
++++ b/simlinemgmt.cc
+@@ -118,6 +118,9 @@ void simlinemgmt_t::rdwr(karte_t * welt, loadsave_t *file, spieler_t *sp)
+ sint32 totalLines = 0;
+ file->rdwr_long(totalLines);
+ DBG_MESSAGE("simlinemgmt_t::rdwr()","number of lines=%i",totalLines);
++
++ simline_t *unbound_line = NULL;
++
+ for (int i = 0; i<totalLines; i++) {
+ simline_t::linetype lt=simline_t::line;
+ file->rdwr_enum(lt);
+@@ -126,7 +129,24 @@ DBG_MESSAGE("simlinemgmt_t::rdwr()","number of lines=%i",totalLines);
+ dbg->fatal( "simlinemgmt_t::rdwr()", "Cannot create default line!" );
+ }
+ simline_t *line = new simline_t(welt, sp, lt, file);
+- add_line( line->get_handle() );
++ if (!line->get_handle().is_bound()) {
++ // line id was saved as zero ...
++ if (unbound_line) {
++ dbg->fatal( "simlinemgmt_t::rdwr()", "More than one line with unbound id read" );
++ }
++ else {
++ unbound_line = line;
++ }
++ }
++ else {
++ add_line( line->get_handle() );
++ }
++ }
++
++ if (unbound_line) {
++ // linehandle will be corrected in simline_t::laden_abschliessen
++ line_with_id_zero = linehandle_t(unbound_line);
++ add_line( line_with_id_zero );
+ }
+ }
+ }
+@@ -156,7 +176,6 @@ void simlinemgmt_t::sort_lines()
+
+ void simlinemgmt_t::laden_abschliessen()
+ {
+- sort_lines();
+ for (vector_tpl<linehandle_t>::const_iterator i = all_managed_lines.begin(), end = all_managed_lines.end(); i != end; i++) {
+ (*i)->laden_abschliessen();
+ }
+diff --git a/simlinemgmt.h b/simlinemgmt.h
+index 0fe2aa6..7cdd698 100644
+--- a/simlinemgmt.h
++++ b/simlinemgmt.h
+@@ -79,6 +79,12 @@ public:
+ */
+ linehandle_t create_line(int ltype, spieler_t * sp, schedule_t * fpl);
+
++
++ /**
++ * If there was a line with id=0 map it to non-zero handle
++ */
++ linehandle_t get_line_with_id_zero() const {return line_with_id_zero; }
++
+ /*
+ * fill the list with all lines of a certain type
+ * type == simline_t::line will return all lines
+@@ -101,6 +107,8 @@ private:
+ static karte_t * welt;
+
+ schedule_list_gui_t *schedule_list_gui; // Use with caution. Valid only afer zeige_info
++
++ linehandle_t line_with_id_zero;
+ };
+
+ #endif
+diff --git a/tpl/quickstone_tpl.h b/tpl/quickstone_tpl.h
+index 57e6c3e..3998f94 100644
+--- a/tpl/quickstone_tpl.h
++++ b/tpl/quickstone_tpl.h
+@@ -138,11 +138,14 @@ public:
+ quickstone_tpl(T* p, uint16 id)
+ {
+ if(p) {
++ if( id == 0 ) {
++ dbg->fatal("quickstone<T>::quickstone_tpl(T*,uint16)","wants to assign non-null pointer to null index");
++ }
+ while( id >= size ) {
+ enlarge();
+ }
+ if( data[id]!=NULL && data[id]!=p ) {
+- dbg->fatal("quickstone<T>::quickstone_tpl(T*,uint16)","slot (%) already taken", id);
++ dbg->fatal("quickstone<T>::quickstone_tpl(T*,uint16)","slot (%d) already taken", id);
+ }
+ entry = id;
+ data[entry] = p;
+--
+1.7.2.3
+
diff --git a/debian/patches/0003-Updated-history.txt.patch b/debian/patches/0003-Updated-history.txt.patch
new file mode 100644
index 0000000..84741ca
--- /dev/null
+++ b/debian/patches/0003-Updated-history.txt.patch
@@ -0,0 +1,31 @@
+From 299f6f89c909fa5e7fa323da18fc58c027bb9055 Mon Sep 17 00:00:00 2001
+From: Markus Pristovsek <prissi at physik.tu-berlin.de>
+Date: Fri, 11 Mar 2011 21:49:27 +0000
+Subject: [PATCH 3/3] Updated history.txt
+
+git-svn-id: svn://tron.homeunix.org/simutrans/simutrans/trunk@4359 8aca7d54-2c30-db11-9de9-000461428c89
+---
+ simutrans/history.txt | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/simutrans/history.txt b/simutrans/history.txt
+index 578c434..eb15668 100644
+--- a/simutrans/history.txt
++++ b/simutrans/history.txt
+@@ -1,4 +1,4 @@
+-Release of 110.0.1 (r4352 on 11-Mar-2011):
++Release of 110.0.1 (r4359 on 12-Mar-2011):
+
+ ADD: try to build crossing that match maxspeed of the ways to be crossed
+ ADD: sheep will not walk in cities anymore
+@@ -10,6 +10,7 @@ Release of 110.0.1 (r4352 on 11-Mar-2011):
+ FIX: convois stuck after modifying schedule of line
+ ADD: pak set specific pre-defined player colors and random player colors
+ FIX: world enlargement
++ FIX: loading lines with ID zero again
+
+
+ Release of 110.0 (r4303 on 14-Feb-2011):
+--
+1.7.2.3
+
diff --git a/debian/patches/series b/debian/patches/series
index 6681fb7..3dc04ba 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,6 @@ path-for-game-data.diff
config.diff
sha1-replacement.diff
link-less-libraries.diff
+0001-neroden-give-IMG_LEER-type-image_id.patch
+0002-FIX-loading-of-savegames-with-line-with-id-0.patch
+0003-Updated-history.txt.patch
--
transportation simulator
More information about the Pkg-games-commits
mailing list