Commit Graph

598 Commits (41f2eed4258546ba4cbc4870d72db1fc5bac0cc6)

Author SHA1 Message Date
glx 514565fad6 Codechange: Replace FOR_ALL_OBJECTS with range-based for loops 5 years ago
glx 00c2a98cf3 Codechange: Replace FOR_ALL_INDUSTRIES with range-based for loops 5 years ago
glx fa9769f81a Codechange: Replace FOR_ALL_DEPOTS with range-based for loops 5 years ago
glx ddabfed1cd Codechange: Replace station related FOR_ALL with range-based for loops 5 years ago
glx 3a14cea068 Codechange: Replace FOR_ALL_COMPANIES with range-based for loops 5 years ago
Niels Martin Hansen 9900af38f5
Fix #7847: Use ViewportSign coordinates for sign Kdtree coordinates (#7849)
Ensure the same coordinates are used for station/town/player signs regardless of how the landscape changes below it after the coordinates were first determined.

By keeping track of whether each ViewportSign is valid for Kdtree use (and only ever registering the viewport sign when the object is valid) a lot of code can be simplified and become more robust at the same time.
5 years ago
frosch 61dba850af Revert #7837, 7e22f243e: OpenTTD tries to replicate the original game mechanics.
Making numbers look nice and correlate is no goal, and in this case they actually did not correlate.
5 years ago
Yourself 7e22f243ed Fix: typo in town growth rates (#7837) 5 years ago
S. D. Cloudt 13cc8a0cee Cleanup: Removed SVN headers 5 years ago
Gabda b870596f15 Add #6887: Option to show zone inside local authority boundary of towns
Can be found at town information > local authority window
Layout for button is same as Graph Keys
Turn on/off for every town individually
5 years ago
peter1138 c02ef3e456 Feature: Add NotRoadTypes (NRT) 5 years ago
Charles Pigott 5b34c8019f Codechange: Remove Company/OwnerByte types 5 years ago
Charles Pigott f20b75d712 Codechange: Remove TownLayoutByte type 5 years ago
Henry Wilson 7c8e7c6b6e Codechange: Use null pointer literal instead of the NULL macro 6 years ago
Niels Martin Hansen cebdd72146 Fix #7440: Remove town sign when deleting town, not add it once more 6 years ago
Henry Wilson cc62f4163f Cleanup: Remove unused size template parameters from SmallMap and Auto[Free|Delete]SmallVector 6 years ago
Henry Wilson bfd79e59dc Codechange: Replace SmallVector::Clear() with std::vector::clear() 6 years ago
Gabda dea7f078f4 Codechange: Update town sign on population change only when population is shown (#7368) 6 years ago
Niels Martin Hansen e8d397e4ee Codechange: Make a merged k-d tree index of all viewport signs 6 years ago
Niels Martin Hansen d84b67e54d Codechange: Make a k-d tree index of stations 6 years ago
Niels Martin Hansen 7b56be0f3a Codechange: Make a k-d tree index of towns 6 years ago
Peter Nelson 8b1b3fd0f9 Feature: Non-rectangular sparse station catchment area. 6 years ago
Niels Martin Hansen 52572cafa6 Add: Option for population-linear town cargo generation
Introduce a new default algorithm for town cargo generation (passengers and mail), and a game setting to choose between the new and original algorithm.

The original town cargo generation algorithm has the property of the generated amount relating to the square of each building's population, meaning large towns easily produce more cargo than can realistically be transported. The problem is excessive cargo is amplified if playing with cargodist.

The new algorithm introduced instead has a linear relation to the population. The result is that smaller towns will produce slightly more cargo, while the largest towns will produce about a fourth of what they would with the original algorithm.

Existing savegames will use the original algorithm, while new games will default to the new algorithm.
6 years ago
PeterN ebc3934ee6
Fix #7043, Fix #7274: Delete town owned bridge based on adjacent tile ownership, not nearest town. (#7284)
This only affects failed town generation, as towns do not delete bridges under any other circumstances.

The existing test performed badly with a large number of towns due to having to calculate the
nearest town, and also by its nature assumed a bridge was built by the nearest town, leading
to bridges of nearby large towns be removed incorrectly.

If we gain the ability to quickly retrieve the correct town (which is _not_ the nearest town) from the bridge, this change should be reviewed.
6 years ago
SamuXarick 50a0cf1915 Change: Allow towns to build bridges over rails and one-way roads. (#7291) 6 years ago
Niels Martin Hansen 48b334cf97 Add: Houses can accept up to 16 different cargo types via NewGRF.
New Action0 property 23 for feature 07, variable length, format B n*(B B). Initial byte is number of structures following. First byte in structure is cargo id, second is acceptance level in 1/8 units.
6 years ago
nikolas d8ccad91f9 Fix: Some code and comment typos
Found with codespell
6 years ago
Joan Josep 9aecbac2b4 Codechange: Define INVALID_TOWN as a TownID (#7044) 6 years ago
Charles Pigott b5028efc1f Fix: Protect against a few out of bounds or uninitialised usage errors 6 years ago
Charles Pigott f5b1115039 Doc: Lots and lots of doxymentation fixes 6 years ago
Max Maton eed0da60a2 Fix #6622: Fixes empty company name in news when gamescript constructs a town 6 years ago
Pavel Stupnikov 9fc3212679 Feature #6397: Keep town growth rate in sync with house count
Takes some code and ideas from #6378 patch, but doesn't change anything GS-related.
6 years ago
PeterN 4cebebcf68
Change: Add CargoTypes type for cargo masks. (#6790) 6 years ago
Pavel Stupnikov fef8b831a9 Change: Switch town growth rate and counter to actual game ticks (#6763) 6 years ago
Pavel Stupnikov 8d8b9a026a Feature #6610: Allow towns to build houses on road turns (#6758) 6 years ago
frosch b4b98e5165 (svn r27893) -Codechange: Use fallthrough attribute. (LordAro) 7 years ago
frosch bcc2c7d06e (svn r27739) -Cleanup/Revert (r12162): Clearing MP_HOUSE with DC_EXEC always fails, so there is no effect in testing for houses first. (adf88) 8 years ago
frosch ab7ebdcfd9 (svn r27423) -Fix: When towns expanded single-bit roadtiles using a grid-layout, they used the layout position of the neighbouring tile. 9 years ago
frosch d626962a38 (svn r27420) -Fix [FS#6362]: GrowTownAtRoad sometimes returned false, even when a house was built. (_dp_) 9 years ago
frosch ab69952f2a (svn r27306) -Fix (r27305): Confused tiles. 9 years ago
frosch 0e378747db (svn r27305) -Fix [FS#6320]: Account for road-bridges and drive-through-stops in CanFollowRoad. 9 years ago
frosch 813e85f301 (svn r27260) -Fix (r27244): economy.allow_town_roads should not affect town placement during world generation. 10 years ago
frosch 5992f4fa1b (svn r27259) -Fix (r27244): Incorrect merge. (_dp_) 10 years ago
frosch 9aa0ba43f7 (svn r27249) -Fix [FS#6240]: In some cases town growth failure was considered as success. (_dp_) 10 years ago
frosch 9fb56ca02e (svn r27248) -Fix [FS#6257]: Town labels on smallmap and zoomed-out viewports were not centered. (_dp_) 10 years ago
frosch 93d7db0b36 (svn r27247) -Cleanup: Make GrowTownAtRoad return a bool. 10 years ago
frosch 915aad7603 (svn r27244) -Change [FS#6245]: Do not consider road junctions with trivial dead ends as branch points during town growth. (_dp_) 10 years ago
rubidium 30f778e933 (svn r27105) -Fix [FS#6195]: grow_counter was not properly bounded by growth_rate, but by some other value used to calculate growth_rate. 10 years ago
rubidium d534c80e94 (svn r27020) -Cleanup: some coding style consistency improvements (mostly spaces) 10 years ago
rubidium 9daf7e749c (svn r26879) -Codechange: remove most MayHaveBridgeAbove calls since the data is now always accessible 10 years ago
rubidium 9ed12b0f07 (svn r26509) -Codechange: replace strdup with stredup (the latter ensures the return is not NULL) 11 years ago
rubidium 0463dbdc9e (svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values 11 years ago
frosch 55502341ac (svn r26346) -Fix [FS#5870]: Call Layouter::ReduceLineCache from GenerateTownName in all cases. 11 years ago
frosch 20785c79fc (svn r26345) -Cleanup (r26310): Spawning towns does not touch persistent NewGRF storage. ClearPersistentStorageChanges is a dangerous/magic function which should not be called without reason. 11 years ago
rubidium 9f6b8aea49 (svn r26313) -Codechange: use a set for finding unique town names instead of iterating all just created town names (MJP) 11 years ago
rubidium d05ff6e77b (svn r26311) -Codechange: use a different method for finding whether there is a nearby town when the map has thousands of towns (MJP) 11 years ago
rubidium fcb122124b (svn r26310) -Codechange: clean up some caches during town generation to keep memory usage significantly lower (MJP) 11 years ago
rubidium 30a95966ec (svn r26308) -Fix-ish: do not try to build more towns/industries than the pool can hold (MJP) 11 years ago
rubidium c143ca729a (svn r26104) -Fix: do not attempt to do stuff with an invalid direction, especially using it as index into a table 11 years ago
rubidium 8e27031492 (svn r26051) -Fix: out of bounds access in CmdTownCargoGoal 11 years ago
frosch 9a41aefcc4 (svn r25968) -Add: [Script] ScriptTown::TOWN_GROWTH_NONE to indicate no town growth via ScriptTown::SetGrowthRate and GetGrowthRate. 11 years ago
frosch cef342d57c (svn r25931) -Fix [FS#5786-ish]: [NoGo] Preserve the relative town growth progress when changing the town growth rate. 11 years ago
frosch 12b30103b1 (svn r25922) -Codechange: Rename TOWN_IS_FUNDED to TOWN_IS_GROWING. It is not tied to funding a town. 11 years ago
zuu dfb5663313 (svn r25849) -Codechange: Introduce IsTileFlat to not compute full slope information for situations when we only want to know if a tile is flat or not (cirdan, LordAro) 11 years ago
frosch 6a0439a789 (svn r25838) -Codechange: Rename HOUSE_MAX to NUM_HOUSES. 11 years ago
frosch 35d7e8bca4 (svn r25833) -Codechange: Move ObjectType from map array into pool item. 11 years ago
zuu ffec9b41e8 (svn r25789) -Fix (r25783): Calling GSTown.FoundTown in world gen caused world gen to terminate and start the game 11 years ago
zuu 67ab3108d6 (svn r25785) -Feature: [Script] Allow AIs and GS to found towns. Allow GS to rename towns 11 years ago
frosch 87fae6ba57 (svn r25140) -Fix [FS#5519]: Towns are build as OWNER_TOWN, so they also need to be removed as OWNER_TOWN. 12 years ago
planetmaker c24374f99c (svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by Eagle_rainbow) 12 years ago
alberth 732e073261 (svn r24776) -Doc: Typo fixes, additions, and additional dots collected from various sources (including Eagle_rainbow, MinchinWeb) 12 years ago
frosch 6c2e201133 (svn r24391) -Change [FS#5229]: Disallow original and better road layouts to build roads under bridges along the bridge direction. 12 years ago
frosch 95d3d6fdef (svn r24291) -Add: [Script] ScriptEventRoadReconstruction. 13 years ago
frosch 8dc553a039 (svn r24290) -Add: [Script] ScriptEventExclusiveTransportRights. 13 years ago
frosch ec91dc5ffc (svn r24287) -Feature [FS#2688]: News item for exclusive transport rights. (based on patch by Grantovich) 13 years ago
frosch a8c88f43b6 (svn r24284) -Codechange: Remove NewsSubtypes and directly use NewsTypes and NewsFlag instead. 13 years ago
frosch a0be398da9 (svn r24283) -Codechange: Add AddTileNewsItem function to preemptively deduplicate code. 13 years ago
frosch 477a09d13e (svn r24205) -Feature [FS#5178-ish]: Show a hint in the supplies tab of station windows, if the station is affected by exclusive transport rights. 13 years ago
frosch cc1e4ca5ad (svn r24183) -Fix [FS#5169]: Town radii were not updated immediatelly after construction/destruction of houses, resulting in desyncs. 13 years ago
rubidium 41e5c839e0 (svn r24179) -Codechange: move some variables of Town to TownCache 13 years ago
alberth 0d74c074dd (svn r24105) -Feature: Be more careful with the population of a small town while placing a statue. 13 years ago
alberth 2911732841 (svn r24104) -Codechange: Output the resulting tile through the user data. 13 years ago
alberth a01948dbf3 (svn r24103) -Codechange: Handle clear tiles separately from house tiles. 13 years ago
alberth c876d18320 (svn r24102) -Codechange: Refactor tile clearability test out of the statue callback. 13 years ago
alberth f607538882 (svn r24101) -Codechange: Reverse a condition for increased readability. 13 years ago
rubidium c8ce0faca4 (svn r24064) -Fix [FS#5121]: make the full snowedness level of houses the same as roads and rails 13 years ago
frosch 5486e05f65 (svn r23953) -Fix [FS#5062]: When the population of a town changes the town view might even have to change size due to different cargo requirements. 13 years ago
frosch 2458a29fd0 (svn r23819) -Fix [FS#4951]: Removal of towns with 0 population failed during map generation. 13 years ago
rubidium 6d6be50ae0 (svn r23740) -Codechange: remove some 300 unneeded includes from the .cpp files 13 years ago
truebrain ad48ab9237 (svn r23626) -Add: ScriptTown::SetText, which adds custom text to the Town GUI 13 years ago
truebrain 77b7366c29 (svn r23622) -Add: a set of events to trigger in a GameScript 13 years ago
truebrain afcf07ac8a (svn r23620) -Add: ScriptTown::SetCargoGoal and ScriptTown::SetGrowthRate (GameScript only) 13 years ago
truebrain 5ff98b45c1 (svn r23617) -Add: ScriptTown::ExpandTown, to grow a town (GameScript only) 13 years ago
rubidium 3d88c74389 (svn r23526) -Codechange: unify cargos vs cargoes 13 years ago
rubidium 2bf0fc3c5c (svn r23476) -Codechange: use the error queue to replace switch mode error strings, again making it possible to return multiple errors 13 years ago
rubidium 58423b26d1 (svn r23474) -Codechange: move the declaration error related functions to error.h 13 years ago
terkhen de0bf0663a (svn r23407) -Codechange: Keep a bitmap of all cargos accepted by towns. 13 years ago
terkhen 59d8b0204f (svn r23405) -Codechange: Keep a matrix of cargos accepted by houses for each town (michi_cc). 13 years ago
truebrain 98103121d4 (svn r23355) -Codechange: rename all AI* to Script* (Rubidium) 13 years ago
rubidium 04c40aa04d (svn r23342) -Fix (r23300): for arctic and desert towns you were required to deliver more than 4 billion units, instead of one or more units 13 years ago
truebrain 7ff6daee80 (svn r23323) -Fix: when you fund a town, it should grow; goals reached or not 13 years ago
peter1138 3e1d070413 (svn r23319) -Fix (r23316): Offsets of viewport signs were not scaled up. 13 years ago
truebrain e30256692f (svn r23303) -Add: economy.fund_buildings, to disallow funding buildings 13 years ago
truebrain f906ebd2a5 (svn r23300) -Add: show on the GUI when a town grows and make a general framework to store goals of a town 13 years ago
truebrain 229e572663 (svn r23298) -Add: track statistics of all incoming and outgoing goods. Incoming based on TownEffect, outgoing based on CargoType (based on patch by Terkhen) 13 years ago
michi_cc 6548ec6e9e (svn r23233) -Codechange: Refactor maximum and actually transported cargo amount of towns into a reusable struct. 13 years ago
rubidium d4e1efc78b (svn r23183) -Codechange: merge BRIBE_FAILED and BRIBE_FAILED_2 messages (monoid) 13 years ago
yexo 6a272233b3 (svn r23160) -Fix: wrong comments in a lot of TileTypeProcs definitions 13 years ago
frosch 30874b5e81 (svn r23147) -Change: [NewGRF v8] Unify the return values of boolean callbacks, and check the results for validity. 13 years ago
frosch d8f8909f85 (svn r23142) -Change: [NewGRF v8] Unify the return values of callbacks returning D0xx texts. 13 years ago
rubidium 2a2c102b0b (svn r23108) -Codechange: more uint -> int / byte -> int conversions for Z related variables 13 years ago
rubidium 459c9523e8 (svn r23107) -Codechange: let GetSlopePixelZ and TerraformTile tile type functions use int z as well 13 years ago
rubidium 19eabdba2c (svn r23106) -Codechange: pass int* to GetTileSlope and friends 13 years ago
rubidium a8c4efcff4 (svn r23101) -Codechange: remove pointless multiplications by TILE_HEIGHT from the station/object building code 13 years ago
rubidium 1dc685aeea (svn r23100) -Codechange: remove pointless multiplications by TILE_HEIGHT for the terraform code 13 years ago
rubidium 69162621d8 (svn r23096) -Codechange: remove useless divisions and multiplications by TILE_HEIGHT for the snow line code 13 years ago
rubidium ecbc56a677 (svn r23094) -Codechange: add a default NULL to GetFoundationSlope and use it 13 years ago
rubidium 2ed0f93bfb (svn r23093) -Codechange: add a default NULL for the Z of GetTileSlope and use it 13 years ago
rubidium 7757a2ed40 (svn r23091) -Codechange: rename some Get*Z functions to Get*PixelZ functions if they return the Z in pixels (like TilePixelHeight) 13 years ago
rubidium 07cb2fd9a8 (svn r23082) -Fix: account for snow line table when determining the snow line for building houses 13 years ago
yexo 40d5419cd2 (svn r22920) -Cleanup: replace two very old town variables taht were rarely used by small functions that compute there value on-the-fly when necessary 13 years ago
terkhen b0439aff59 (svn r22899) -Add: Allow towns to build bridges over canals and rivers. 13 years ago
michi_cc 9c73f15cde (svn r22810) -Fix: Growth a town on both ends of a tunnel/bridge if the town centre tile is a bridge ramp/tunnel portal. 13 years ago
rubidium 4c030468e1 (svn r22809) -Fix [FS#4731]: towns expanding from the "wrong" side of a tunnel or bridge 13 years ago
frosch ae8f53a403 (svn r22706) -Cleanup: A loop is no loop, if it never iterates. 13 years ago
rubidium 059d43fca8 (svn r22697) -Fix [FS#4694-ish]: when building a house it could be built at the wrong place if multitile houses failed some tests 13 years ago
terkhen a619ad3789 (svn r22569) -Feature: [NewGRF] Persistent storage for towns. 13 years ago
frosch 474b4799e8 (svn r22482) -Codechange: Add some contants for the number of ticks between certain cyclical tasks. 14 years ago
alberth 28092366ec (svn r22459) -Doc: Typo fixes and doxygen markup improvements. 14 years ago
smatz 756cc6cf65 (svn r22116) -Codechange: use PoolBase::Clean() at more places 14 years ago
terkhen c36a22ba72 (svn r22087) -Fix: When deleting towns, only relocate objects during DC_EXEC. 14 years ago
rubidium ece59dc0d1 (svn r22066) -Fix [FS#4502]: building a statue did not check whether the object pool is full 14 years ago
rubidium 2d4d43d00c (svn r22065) -Fix [FS#4500]: pool allocation checks triggered when towns could not be built 14 years ago
rubidium bc3ce1e53b (svn r22018) -Cleanup: remove some (now) unneeded includes of functions.h 14 years ago
terkhen a4b08dddd1 (svn r21974) -Feature: Add a setting to enable/disable funding local road reconstruction. 14 years ago
rubidium 7efd7e19ed (svn r21845) -Codechange: move documentation towards the code to make it more likely to be updates [d-m]. 14 years ago
yexo 703ff560c1 (svn r21664) -Add: [NoAI] AIEventTownFounded 14 years ago
rubidium 5c9c3f1acf (svn r21414) -Codechange: limit town name by amount of characters, not bytes 14 years ago
rubidium cf61c2f11f (svn r21412) -Codechange: limit company name by amount of characters, not bytes 14 years ago
frosch 55d604e60d (svn r21291) -Fix: Treat objects on water like water in more cases. 14 years ago
terkhen 1fe2ce42ca (svn r21191) -Doc: Add missing information for a parameter of CmdFoundTown. 14 years ago
alberth 43f807a918 (svn r21156) -Codechange: Introduce EconomyIsInRecession(). 14 years ago
yexo 9a07ebc382 (svn r21052) -Fix (r20435): house/airporttile/industrytile newgrfs that defined tiles that relied on the substitute being drawn were broken 14 years ago
smatz 77fe95f552 (svn r20860) -Cleanup: remove some unused functions and variables 14 years ago
frosch 3fb7f5aa87 (svn r20802) -Fix: Building bridges on water/watery objects behaved inconsistently for towns and the bridge selection GUI. 14 years ago
frosch f0783d7e72 (svn r20791) -Fix (r12161): Building 2x2 houses did not work for 2x2 road layouts on all map sizes. 14 years ago
frosch b249046364 (svn r20790) -Fix (r0)[FS#4118]: Remove a check which is wrong for NewGrf houses and serves no use for original houses. 14 years ago
terkhen efef4becbd (svn r20711) -Fix [FS#4094]: Do not use new game settings when creating many random towns at the scenario editor. 14 years ago
terkhen c6db763781 (svn r20710) -Codechange: Clarify the name of some town generation variables. 14 years ago
rubidium 30f2afac9b (svn r20632) -Cleanup: remove "a few" unneeded includes, and add them to some headers 14 years ago