Author Topic: Level inconsistency between monuments and curiosities  (Read 1775 times)

0 Members and 1 Guest are viewing this topic.

Leartin

• Oh no, not him again!
• Devotee
• Posts: 1538
• PAK-DEV P192C
• Languages: DE, EN
Level inconsistency between monuments and curiosities
« on: June 23, 2019, 08:51:49 AM »
Say you have curiosities and monuments with "level=100"

In the game, in the build-curiosity dialog, they are all displayed as having 99 pax/mail. (float conversion?)

If you place a 1x1 curiosity, it actually has those displayed 99 pax/mail
If you place a 2x2 curiosity, it has 99 pax/mail per tile. 396 in this example.

If you place a 1x1 monument, it only has 26 pax/mail. Seems to be 1/4. (level=10000 becomes 9999 becomes 2501)
If you place a 2x2 monument, it has the same 26 pax/mail. Monuments seem not to multiply per tile.

(all values from the placed buildings dialog, I did not test if those pax actually spawn)

I'm not sure why monuments and curiosities work differently. If this is intended behaviour and not going to change, fair enough. I just want to be certain before I increase numbers based on the expierienced behaviour, only to have it change down the road.

sidenote: curiosities multiply their pax number according to their size. But they are calculated based on the rectangular shape, even if the curiosity is not actually a rectangle (eg my Arc de Triomphe which is 3x1, but the middle tile is empty) Since each tile must be covered by a station to actually count, does coverage of those "empty" tiles count, or can those pax never be serviced?

Ters

• Coder/patcher
• Devotee
• Posts: 5685
• Languages: EN, NO
Re: Level inconsistency between monuments and curiosities
« Reply #1 on: June 24, 2019, 02:35:26 PM »
I got the impressions that monuments are there to honor big contributors to the game. I've never seen any monument in pak64, which is most likely where the concept originated, that is more than 1x1 tile. They might all be equal so as not to start ranking the contributors the monuments are for.

Leartin

• Oh no, not him again!
• Devotee
• Posts: 1538
• PAK-DEV P192C
• Languages: DE, EN
Re: Level inconsistency between monuments and curiosities
« Reply #2 on: June 24, 2019, 02:52:10 PM »
I got the impressions that monuments are there to honor big contributors to the game. I've never seen any monument in pak64, which is most likely where the concept originated, that is more than 1x1 tile. They might all be equal so as not to start ranking the contributors the monuments are for.
But then, why allow different levels and sizes in the first place?
I can see that that's where it originated from, with no intention to ever have multitile monuments (I only recently learned they work). Just - now it's a bit weird.

Ters

• Coder/patcher
• Devotee
• Posts: 5685
• Languages: EN, NO
Re: Level inconsistency between monuments and curiosities
« Reply #3 on: June 24, 2019, 03:04:04 PM »
But then, why allow different levels and sizes in the first place?
They are a class of buildings, so they share certain fundamental characteristics. Maybe the ability to span multiple tiles wasn't removed, because just like you, they never thought of the possibility. There is a subtle difference between allowing and not disallowing when programming. (And many a security hole originates in lack of awareness of this difference.)

Leartin

• Oh no, not him again!
• Devotee
• Posts: 1538
• PAK-DEV P192C
• Languages: DE, EN
Re: Level inconsistency between monuments and curiosities
« Reply #4 on: June 25, 2019, 09:29:15 AM »
I'm not sure it adds up.
> Monuments have the unique characteristic that they spawn with a road around them. If nobody ever thought of using that for multitile buildings, I doubt it would work.
> Where does the division by 4 come from? Surely that's not how the buildings-class generally works?
> Changelog of 112: "ADD: support for non-rectangular shaped station extensions, attractions, monuments"

But anyway, let's rather talk about the future. I'd like to know if it's considered a bug that's going to be fixed eventually, or if it's considered working as intended and not going to change. Then, I can set values accordingly.

I mean, I'd like it even more if "unique" and perhaps "surrounded by roads" were parameters for curiosities/other buildings/factories. My Idea was to change some large city curiosities to monuments, only because I wanted them to be rare in number, but due to the low chance and high build_time, as curs, they often wouldn't appear at all. But it does make sense to have monuments be only the dedicational buildings that break the fourth wall, so having the same functionality but them NOT being monuments would be even better.

prissi

• Developer
• Posts: 10458
• Languages: De,EN,JP
Re: Level inconsistency between monuments and curiosities
« Reply #5 on: June 27, 2019, 06:11:53 AM »
The level works differently. Curiosities are handled separately from monuments. The latter belong to a city, and thus their level depends on the get_passenger_level() function. The return value is ((pax + 6) >> 2) * welt->get_settings().get_passenger_factor() / 16.

Leartin

• Oh no, not him again!
• Devotee
• Posts: 1538
• PAK-DEV P192C
• Languages: DE, EN
Re: Level inconsistency between monuments and curiosities
« Reply #6 on: June 27, 2019, 09:39:33 AM »
The level works differently. Curiosities are handled separately from monuments. The latter belong to a city, and thus their level depends on the get_passenger_level() function. The return value is ((pax + 6) >> 2) * welt->get_settings().get_passenger_factor() / 16.

Okay, so it does exactly what it's supposed to do, including the division by 4. This also clears up why curiosities stay behind if you delete a city. I take it cities would just have too many pax if the actual building level was used, but lowering building levels would change how they get replaced by one another. Also, even if there was no reason anymore, changing it now would be quite significant for the pak balance.

I do think that the dialogs for placing buildings should consider at least the division by four. Eg. in citybuilding_edit.cc, line 207, "desc->get_level()" should be "(desc->get_level()+6)>>2". (or within "get_level"... you get the idea) It still wouldn't show the correct number if passenger_level is not 16, but I suppose divisions are too expensive?

Simutrans happily accepts passenger_levels higher than 16 if they are written in the simuconf.tab (tried up to 128), but the settings won't allow them, so something is wrong there.
If you build monuments or citybuildings manually on a map without city, since they don't have a city, pax_level does not apply. Though that's just confusing, not really an issue.
Because their levels work so differently, I suggest putting monuments in the build_citybuilding dialog, rather than the build_curiosity dialog, if someone ever changes them to a degree where this wouldn't mean much extra work.

• Developer