The International Simutrans Forum

Simutrans Extended => Simutrans-Extended development => Topic started by: knightly on May 10, 2009, 06:16:58 am

Title: [Bug v3.6] arrival_time of ware_t Objects is Overwritten when Loading Save Game
Post by: knightly on May 10, 2009, 06:16:58 am
Hi James,

In haltestelle_t::rdwr() :

Quote

   // restoring all goods in the station
   char s[256];
   file->rdwr_str(s,256);
   while(*s) {
      file->rdwr_short(count, " ");
      if(count>0) {
         for(int i = 0; i < count; i++) {
            // add to internal storage (use this function, since the old categories were different)
            ware_t ware(welt,file);
            if(  ware.menge > 0 ) {
               add_ware_to_halt(ware);
            }
         }
      }
      file->rdwr_str(s,256);
   }


By adding ware_t objects to halts during save game loading using add_ware_to_halt(), their previously saved arrival_time will be overwritten with the world tick at load time :

Quote

void haltestelle_t::add_ware_to_halt(ware_t ware)
{
   //@author: jamespetts
   ware.arrival_time = welt->get_zeit_ms();

   ...

Title: Re: [Bug v3.6] arrival_time of ware_t Objects is Overwritten when Loading Save Game
Post by: jamespetts on May 10, 2009, 10:36:50 am
Thank you for spotting that! Now resolved for the next version.