Skip to main content
Topic: BUG in r2044 - ground.outside not working properly (Read 8966 times) previous topic - next topic

BUG in r2044 - ground.outside not working properly

ST r2044 (Win-SDL), beyond the edges of the map, there are now incorrect graphics shown (no longer the one defined in ground.outside.pak). Happens both in pak64 and pak128 (worked fine in r2040).

r2044:


r2040:


EDIT: My guess: maybe connected to the changes from 2041?
  
***** PAK128 Dev Team - semi-retired*****

Re: BUG in r2044 - ground.outside not working properly

Reply #1
The same happens in Linux/gcc.  The image is a ship instead of a piece of railway.  In r2045 seems corrected.  But, in r2044 trains and ships throw pedestrians with the smoke.  Smoke disappears and pedestrians remain until you move the image with cursors keys.  The bug remains in r2045.


Re: BUG in r2044 - ground.outside not working properly

Reply #2
These bugs are really what one expects to be a bug :) Trains throwing people into air, seas covered in junk...

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

Re: BUG in r2044 - ground.outside not working properly

Reply #3
Appears to be solved in 2052 (the ground.outside problem definitely is, and steam looks ok for me, too)

Thx, prissi!
  
***** PAK128 Dev Team - semi-retired*****

Re: BUG in r2044 - ground.outside not working properly

Reply #4
In linux/gcc, in r2054, the problem with the smoke is still there.

Re: BUG in r2044 - ground.outside not working properly

Reply #5
Which pakset?

Re: BUG in r2044 - ground.outside not working properly

Reply #6
pak64.  I've tried with the nightly (102) and it also fails.
 

Re: BUG in r2044 - ground.outside not working properly

Reply #7
which pak64 does not matter, the only change was than double images were internally pointed to the same image.

Re: BUG in r2044 - ground.outside not working properly

Reply #8
Any clue about where to look to try to debug it?

Re: BUG in r2044 - ground.outside not working properly

Reply #9
image_reader.cc the last if( len!=0 ) block.
To register all images, just register_image( besch ); would be ok. The additional humbomumbo is to find out doubles.

Re: BUG in r2044 - ground.outside not working properly

Reply #10
I've tried with pak.german and the problem is again with smoke exhausted by vehicles, not factories.  This time, train carriages are exhausted instead of pedestrians...  Maybe it can have anything to do with the smoke routine expecting the images to be one after the other?  I'm just guessing.  It's strange that in two different paks the problem is with exhausted smoke...

Re: BUG in r2044 - ground.outside not working properly

Reply #11
It seems to be shown different image for each person.
In my case, there are extra cloud. (tested with german.pak)

Re: BUG in r2044 - ground.outside not working properly

Reply #12
Very nice screen shot, z9999.

About this topic: this is the most strange bug I've seen in a long time.  I have two computers: a desktop and an laptop.  Both have Kubuntu Linux.  I've compiled r2056 in both.  I've run the same pak64 files and the same savegame in both and the laptop persists in the graphic glitches, while the desktop renders smoke graphics Ok...  :o

If I comment out the lines pointed by Prissi, it works well in both computers.  The file involved is smoke.Steam.pak, whose image content is substituted by some other.

Time to call Mulder and Scully?   ::)

Re: BUG in r2044 - ground.outside not working properly

Reply #13
I can't help killing software bugs  :police:

That's a real problem I have to talk about with my psychologist...  Finally, I found the reason of those strange smoke spectra in some computers and paks.  It goes like this:

In pak64 there are four smoke files, the number of frame images in brackets:
  • smoke.Industry_Smoke.pak (1)
  • smoke.Diesel.pak (5)
  • smoke.Industry_Fire.pak (2)
  • smoke.Steam.pak (5)

It happens that:
  • The first image of Steam.pak is the same as the only image of Industry_Smoke
  • Images of vehicle smokes must get consecutive image numbers as can be seen in wolke_t:gib_bild()
  • The order in which pak files are read is system dependent
  • The improvement made in last releases doesn't ****ign a new image number if there's an equal image read before (in such a case, the number of the previous image is reused)

In one computer, the order in which files were read was: Industry_Smoke, Diesel, Industry_Fire, Steam.  Steam reused only the fist image of Industry_Smoke and therefore "threw pedestrians" (or can throw whatever image happens to be next).

In other computer, the order is different: Steam,Diesel,Smoke,Fire and there is no problem because Steam has all its images with consecutive numbers and Smoke reuses its only image.

A solution may be to inhibit number reusing when reading smoke files or other animations expecting their images to be consecutive.

Re: BUG in r2044 - ground.outside not working properly

Reply #14
Edit: bleh this should have been an icon, not advertisement. Sorry.

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

Re: BUG in r2044 - ground.outside not working properly

Reply #15
Here's a patch for r2056.  I don't know if the solution is optimal, though...

Re: BUG in r2044 - ground.outside not working properly

Reply #16
Well, unfourtunately the clean (and better way) is much longer ...

Re: BUG in r2044 - ground.outside not working properly

Reply #17
The quickest solution is adding one different pixel to one of the smokes. Just like renaming files to be loaded in some order etc. :p

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

Re: BUG in r2044 - ground.outside not working properly

Reply #18
The quickest solution is adding one different pixel to one of the smokes. Just like renaming files to be loaded in some order etc. :p

That's for sure...    :D

Well, unfourtunately the clean (and better way) is much longer ...

I've seen it in r2060.  I've tried it and it works, but there has to be a minor error since now the last image doesn't disappear.  Perhaps the image is not marked dirty or something like that?  When moving the scene, they disappear.