News:

Simutrans.com Portal
Our Simutrans site. You can find everything about Simutrans from here.

[PATCH] Loading pattern for multiple convoys to the same destination.

Started by inkelyad, October 02, 2010, 07:27:00 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

inkelyad

My answer to Loading pattern for multiple convoys to the same destination.

Goods/passengers will use one convoy if several is available. (A lot like loading queue). It works for each player separately.

Github link

jamespetts

A question about this - will passengers continue to pile into an overcrowded vehicle (thus compromising their comfort and therefore the player's profitability) if non-overcrowded vehicles are available? Also, what happens if, during loading of one convoy, another convoy arrives which will reach the destination faster? Perhaps this is of little relevance to passengers in any event, as it is seldom sensible to set them to wait for a certain loading level; but perhaps overcrowding at least should be excluded from the loading queue?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

inkelyad

Quote from: jamespetts on October 23, 2010, 12:36:10 PM
A question about this - will passengers continue to pile into an overcrowded vehicle (thus compromising their comfort and therefore the player's profitability) if non-overcrowded vehicles are available?
Yes, they will. ( convoi_t::hat_gehalten try load convoy up to its max capacity)
Quote
Also, what happens if, during loading of one convoy, another convoy arrives which will reach the destination faster?
There was code to test this (see commented code in line 2362 of simhalt.cc, commit d5346d7c7a709c) but it was bad for some reason ( unwanted oscillations).
Quote
Perhaps this is of little relevance to passengers in any event, as it is seldom sensible to set them to wait for a certain loading level; but perhaps overcrowding at least should be excluded from the loading queue?
It is not queue, technically. It works like this: remember in connexion where we loading. And if said convoy is still here, skip loading in current convoy.

jamespetts

Hmm. Do you think that you could modify this so as not to continue loading an overcrowded convoy (or a convoy about to become overcrowded) when there is a non-overcrowded convoy available? Or alternatively, perhaps, just exclude passengers from the loading queue system entirely (as passengers are rarely that conveniently behaved)?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

inkelyad


jamespetts

Hmm, in the current released version of Pak128.Britain-Ex, most of the vehicles do not have overcrowded capacities, although I have uploaded versions to Github that do. Will this be a problem?
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

inkelyad

Github version is fine. But what repository? You have too many of them.

jamespetts

Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

inkelyad

Done (github). It is a bit ugly, so please read before using. I so not sure everything is right.

prissi

I wanted to look at this for Standard too. But I feel unable to find the relevant changes as a diff to this subject only.

inkelyad

Uh. You have to cherry-pick commit d5346d7c7a709ca06f96, e420ea50a2f8afcfc66f, 5103399a6c2e895ef058.
Network feature of git hub should help too.

prissi

Honestly, I have no idea how to do that, since installing GIT messes up my mingw runtime, which I need to release simutrans.

inkelyad

d5346d7c7a709ca06f96,
e420ea50a2f8afcfc66f,
5103399a6c2e895ef058

But my patch is useless for Standard. I use new field inside struct haltestelle_t::connexion. It is Experemental specific.

Edit:
It works like this:
Each destination remember (inside  haltestelle_t) what convoy was used last time. And then haltestelle_t::hole_ab
skip loading if that convoy hasn't left yet.

inkelyad


jamespetts

Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

jamespetts

Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.