Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vehicle waiting at station affects cargo age rating even if it did not pick up cargo #7430

Closed
PeterN opened this issue Mar 28, 2019 · 5 comments

Comments

@PeterN
Copy link
Member

PeterN commented Mar 28, 2019

Version of OpenTTD

master-g21d9e87b4, but affects any version for about 12 years.

Expected result

Cargo age rating should be affected only if cargo is picked up.

Actual result

A vehicle waiting at a station will reset the time since pickup despite not actually loading.

Steps to reproduce

This can be seen more clearly by setting a long timetable wait time for the vehicle, so that it is still waiting long after it is full. This also happens if a very long train enters a very short station, so that the vehicle will be delayed a long time.

I believe the issue is caused by 8ef0cbb which resets the days_since_pickup (renamed since to time_since_pickup) for a cargo regardless of whether the cargo was picked up or not.

That commit was a fix for two issues #1139, #1143 which suggests that cargo rating and thus cargo delivery to stations was not working properly but I don't know all the details.

Possibly if the algorithm is fixed there's some kind of chicken & egg situation with station rating and therefore cargo loading. However, this is so old it may not be applicable any more. I haven't had much chance to look further into it.

A possible solution may be to revert the change (unknown side affects, but seems most correct) or perhaps only reset the timer once per station visit instead of every possible loading loop.

@PeterN
Copy link
Member Author

PeterN commented Mar 28, 2019

This was buried away on the forums for over a year, but it seems people knew about it but didn't consider reporting an actual bug.

https://www.tt-forums.net/viewtopic.php?p=1200089#p1200089

@EgyLynx
Copy link

EgyLynx commented Apr 2, 2019

Are youre test version 1.9.0 that think ?

@MingweiSamuel
Copy link
Contributor

MingweiSamuel commented May 16, 2019

#1143 seems to describe pretty well why it was changed.
Cargo is only delivered to the top 2 serving stations by highest ratings. So a 3rd station gets no cargo. Before 8ef0cbb a reset only happens when "there's goods waiting at the station, and the vehicle has capacity for it". Since no cargo gets delivered to 3rd it can never reset the time_since_pickup and the rating stays low, feedback loop.

I made a possible fix below which only resets time_since_pickup iff "the vehicle has capacity for it".
Its still a question whether this is a bug or a feature since its been in the game so long.. with this simple fix you could still possibly cheese the system by have a train load -> transfer over and over at the station

Another option could be to only trigger the reset when a train begins to load, not during the process

@Hexus-One
Copy link
Contributor

If a player attempts the load- transfer cheese as you suggested then the station rating will suffer anyway from the amount of cargo waiting at the station, so i think that won't be an issue :)

@MingweiSamuel
Copy link
Contributor

MingweiSamuel commented May 18, 2019

That is a good point. Cheese will still provide a temporary boost. And there would be other ways to cheese, but at a certain point just playing as intended is easier.

Small side note, the title of this issue should probably be changed to something like "Vehicle waiting at station affects cargo pickup time rating even if it did not pick up cargo" since "cargo age" is a different unrelated thing afaik

MingweiSamuel added a commit to MingweiSamuel/OpenTTD that referenced this issue May 18, 2019
MingweiSamuel added a commit to MingweiSamuel/OpenTTD that referenced this issue May 18, 2019
MingweiSamuel added a commit to MingweiSamuel/OpenTTD that referenced this issue Oct 29, 2019
MingweiSamuel added a commit to MingweiSamuel/OpenTTD that referenced this issue Oct 29, 2019
MingweiSamuel added a commit to MingweiSamuel/OpenTTD that referenced this issue Oct 29, 2019
MingweiSamuel added a commit to MingweiSamuel/OpenTTD that referenced this issue Oct 29, 2019
MingweiSamuel added a commit to MingweiSamuel/OpenTTD that referenced this issue Nov 30, 2019
douiwby pushed a commit to douiwby/OpenTTD that referenced this issue Apr 16, 2020
DorpsGek pushed a commit to OpenTTD/wiki-data that referenced this issue Oct 1, 2022
User Summary: Update since OpenTTD/OpenTTD#7430 was fixed long ago
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants