Commit Graph

398 Commits

Author SHA1 Message Date
Rubidium
73d7052732 Add: unit test functionality using catch2
(cherry picked from commit 43a7e54067)
2023-08-19 10:18:31 +01:00
Jonathan G Rennison
7502fbd44b Use ring buffers for tile/landscape candidate queues 2023-08-18 21:25:36 +01:00
Jonathan G Rennison
9cf39b7a25 Prefetch next tile in tile loop iteration 2023-08-17 14:40:39 +01:00
Jonathan G Rennison
cc57ac0eff Add pre-check to auxiliary tile loop flooding test 2023-08-17 14:40:07 +01:00
Jonathan G Rennison
410d5bdc55 Spread tile loop iterations over all ticks when using day length > 1
See: #545
2023-06-17 19:32:33 +01:00
Jonathan G Rennison
ac2f9a21e8 Move upstream saveload to src/saveload/, move jgrpp saveload to src/sl/
Leave afterload in src/saveload/
2023-06-08 00:01:40 +01:00
Jonathan G Rennison
fd4d4d341d Merge branch 'master' into jgrpp
# Conflicts:
#	src/animated_tile.cpp
#	src/cargopacket.h
#	src/cheat_gui.cpp
#	src/company_cmd.cpp
#	src/company_gui.cpp
#	src/date.cpp
#	src/disaster_vehicle.cpp
#	src/dock_gui.cpp
#	src/economy.cpp
#	src/engine.cpp
#	src/error_gui.cpp
#	src/fontcache/spritefontcache.cpp
#	src/game/game_gui.cpp
#	src/game/game_text.cpp
#	src/gfx.cpp
#	src/graph_gui.cpp
#	src/highscore_gui.cpp
#	src/industry_cmd.cpp
#	src/lang/dutch.txt
#	src/lang/english_AU.txt
#	src/lang/english_US.txt
#	src/lang/finnish.txt
#	src/lang/french.txt
#	src/lang/italian.txt
#	src/lang/portuguese.txt
#	src/lang/russian.txt
#	src/lang/turkish.txt
#	src/lang/vietnamese.txt
#	src/main_gui.cpp
#	src/misc_gui.cpp
#	src/network/network_gui.cpp
#	src/network/network_server.cpp
#	src/newgrf.cpp
#	src/newgrf.h
#	src/newgrf_generic.cpp
#	src/news_gui.cpp
#	src/openttd.cpp
#	src/os/unix/unix.cpp
#	src/os/windows/font_win32.cpp
#	src/os/windows/win32.cpp
#	src/rail_gui.cpp
#	src/road_gui.cpp
#	src/saveload/afterload.cpp
#	src/saveload/misc_sl.cpp
#	src/saveload/oldloader_sl.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload.h
#	src/script/script_gui.cpp
#	src/settings_table.cpp
#	src/signs_gui.cpp
#	src/smallmap_gui.cpp
#	src/smallmap_gui.h
#	src/spritecache.cpp
#	src/spritecache.h
#	src/spriteloader/grf.cpp
#	src/station_cmd.cpp
#	src/statusbar_gui.cpp
#	src/stdafx.h
#	src/strgen/strgen_base.cpp
#	src/subsidy.cpp
#	src/table/settings/difficulty_settings.ini
#	src/texteff.cpp
#	src/timetable_cmd.cpp
#	src/timetable_gui.cpp
#	src/toolbar_gui.cpp
#	src/town_cmd.cpp
#	src/town_gui.cpp
#	src/townname.cpp
#	src/vehicle.cpp
#	src/waypoint_cmd.cpp
#	src/widgets/dropdown.cpp
#	src/window.cpp
2023-05-26 19:36:48 +01:00
PeterN
e97bf271dc Codechange: Make SpriteType, CargoSortType, SourceType and ScriptType enum classes. (#10663)
This avoids a (soft) namespace conflict between the four ST_* enums.
2023-04-16 20:00:55 +01:00
Rubidium
43a7e54067 Add: unit test functionality using catch2 2023-04-16 18:58:21 +02:00
Jonathan G Rennison
9521e7ef2b Merge branch 'master' into jgrpp
# Conflicts:
#	src/elrail.cpp
#	src/ground_vehicle.hpp
#	src/landscape.cpp
#	src/saveload/afterload.cpp
#	src/saveload/saveload.h
#	src/tile_cmd.h
#	src/town_cmd.cpp
#	src/tunnelbridge_cmd.cpp
2023-04-12 19:34:11 +01:00
Rubidium
c6ff7dad68 Add: compile time "unit tests" for GetPartialZ consistent 2023-04-09 19:00:26 +02:00
Rubidium
9d2a0f3d0b Change: make GetPartialZ consistent, meaning Z of adjacent slopes continue
Previously, on a straight line of a one corner up slope with the adjacent
steep sloop the Z would increase one step every two sub pixels, except for one
case where one sub pixel is skipped. Similarly, a steep slope with two
adjacent one corner up slopes, would have a bump in the height line along the
diagonal whenever it enters/leaves the steep slope tile.
2023-04-09 19:00:26 +02:00
Rubidium
e8af8daa68 Codechange: pass "ground vehicle" to GetTileSlopeZ since for tunnel/bridges there are two states
Previously it checked the position in non-driving direction to "guess" whether
a ground vehicle was using the function, so on tunnels/bridges it could either
return the Z of the (virtual) ground compared to the Z of the path the vehicle
would take.
2023-04-09 19:00:26 +02:00
Jonathan G Rennison
2ea1766677 Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/commit-checker.yml
#	src/industry_cmd.cpp
#	src/industry_gui.cpp
#	src/landscape.cpp
#	src/linkgraph/linkgraph_gui.cpp
#	src/order_base.h
#	src/order_cmd.cpp
#	src/order_gui.cpp
#	src/saveload/afterload.cpp
#	src/saveload/league_sl.cpp
#	src/saveload/saveload.h
#	src/script/api/script_object.hpp
#	src/script/squirrel_helper.hpp
#	src/settings_table.cpp
#	src/station_cmd.cpp
#	src/table/settings.h.preamble
#	src/tree_cmd.cpp
#	src/tree_map.h
#	src/vehicle.cpp
#	src/waypoint_cmd.cpp
2023-03-04 16:45:05 +00:00
Jonathan G Rennison
ff189e44e4 Public roads: Handle non-trivial existing foundations 2023-02-26 13:31:39 +00:00
Rubidium
a409e4b026 Add: documention to large functions that have too little documentation according to CodeQL 2023-02-25 23:57:36 +01:00
Jonathan G Rennison
05ec32f577 Run water flooding at constant speed at day lengths >= 4
See: #482
2023-02-09 21:39:04 +00:00
Jonathan G Rennison
a9100e93cb Merge branch 'master' into jgrpp
# Conflicts:
#	src/group_cmd.cpp
#	src/lang/korean.txt
#	src/lang/simplified_chinese.txt
#	src/script/api/script_rail.cpp
#	src/tunnelbridge_cmd.cpp
2023-01-23 19:10:07 +00:00
Rubidium
fe2bcd2a58 Codechange: migrate size related functions to Map structure 2023-01-21 17:11:40 +01:00
Rubidium
9c1a3b17e3 Codechange: use MapLogY() instead of FindFirstBit(MapSizeY()), MapSize() instead of MapSizeX() * MapSizeY() 2023-01-21 17:11:40 +01:00
SamuXarick
96ec9908a0 Codechange: refactor removal of desert around river tiles 2023-01-15 00:43:41 +01:00
Jonathan G Rennison
5b490b243d Merge branch 'master' into jgrpp
# Conflicts:
#	src/industry_cmd.cpp
#	src/landscape.cpp
#	src/object_cmd.cpp
#	src/rail_cmd.cpp
#	src/script/api/script_tile.cpp
#	src/table/settings/difficulty_settings.ini
#	src/table/settings/world_settings.ini
#	src/terraform_cmd.cpp
#	src/tilearea_type.h
#	src/tree_cmd.cpp
#	src/tree_cmd.h
#	src/tree_gui.cpp
#	src/water_cmd.cpp
2023-01-14 16:49:17 +00:00
Tyler Trahan
07fba75238 Fix: Various Wide River issues (#10348) 2023-01-14 08:20:19 -05:00
Rubidium
f667a831a5 Codechange: unify creation of diagonal/orthogonal iterator using smart pointers 2023-01-13 21:09:40 +01:00
Jonathan G Rennison
160dcc345a Add wrapper class for diagonal or orthogonal tile iteration 2022-12-30 18:09:55 +00:00
Jonathan G Rennison
58d841486e Merge branch 'master' into jgrpp
# Conflicts:
#	src/os/windows/font_win32.cpp
#	src/script/api/script_object.hpp
#	src/town_cmd.cpp
#	src/train_cmd.cpp
#	src/viewport.cpp
#	src/viewport_func.h
2022-12-27 01:00:40 +00:00
Peter Nelson
a971eee2e0 Cleanup: Replace foundation drawing magic numbers.
Use TILE_SIZE or TILE_HEIGHT as appropriate instead.
2022-12-23 15:43:11 +00:00
Peter Nelson
138198e971 Change: Separate ground sprite from foundation sprite offsets. 2022-12-23 15:43:11 +00:00
2TallTyler
0116a422ea Cleanup: Refactor Wide Rivers code slightly 2022-12-16 17:43:33 -05:00
2TallTyler
d67259334a Fix #10218: Sloped river tiles need water both up and downstream 2022-12-16 17:43:33 -05:00
Jonathan G Rennison
ff0b3ca9be Merge branch 'master' into jgrpp
# Conflicts:
#	src/landscape.cpp
2022-10-22 19:55:03 +01:00
Jonathan G Rennison
29a1e49c28 Change various asserts to not be included in release builds 2022-10-22 12:34:54 +01:00
Tyler Trahan
4daad7f348 Change: Don't make wide rivers using original landscape generator 2022-10-22 12:16:56 +02:00
Tyler Trahan
664771d085 Feature: Wide rivers 2022-10-20 21:17:35 +02:00
SamuXarick
c7505539af Fix #9869: remove docking tile when doing a clear square
Terraforming through objects placed on water didn't properly remove docking tiles as expected.

By moving some logic regarding removal of docking tiles into DoClearSquare, the issue is solved, while also simplifying code, avoiding repetition elsewhere.
2022-10-16 18:29:03 +02:00
Jonathan G Rennison
3d857333c8 Reduce delays with company bankrupcty/sale processing at high day lengths 2022-09-02 18:14:35 +01:00
Jonathan G Rennison
1714773457 Adjust baseline for arctic snowline dynamic width setting to lower value 2022-05-05 17:17:24 +01:00
Jonathan G Rennison
452d22ce37 Add setting for width of dynamic snowline range for arctic tree placement
Default: 75%
2022-05-01 00:56:03 +01:00
Jonathan G Rennison
ed30542acf Cache highest snowline value 2022-04-29 17:10:18 +01:00
Jonathan G Rennison
ef379b5214 Fix DC_FORCE_CLEAR_TILE water removal not removing docking tiles
See: https://github.com/OpenTTD/OpenTTD/issues/9869
2022-04-25 19:40:53 +01:00
Jonathan G Rennison
39d39a5c61 Reduce duplication in desert or rainforeset data search arrays 2022-03-06 02:05:12 +00:00
reldred
3bf2e850a5 undo the mess I made of JGR's fixes to my janky code 2022-03-06 11:17:14 +10:30
reldred
e3e032518b Merge branch 'desert-tweaks' of https://github.com/reldred/OpenTTD-patches into desert-tweaks 2022-03-06 11:03:59 +10:30
reldred
59022c40f9 adjustments;
added lake tropic width adjustment
added an extra large setting to the coasts (51radius)
set minimum width for rivers and lakes to 2 (setting it to 1 actually CTD'd the game)
made max for rivers and lakes be 51 tiles to match the 51tiles of the coast setting.
2022-03-06 11:03:46 +10:30
Jonathan G Rennison
f1b6eb932f Reduce duplication in CreateDesertOrRainForest 2022-03-05 14:59:31 +00:00
reldred
22305e8795 Allows configuring the width of the coast in tropic maps that generates as tropiczone_normal before the desert kicks in, it does this by creating two additional arrays which house the coordinates to create a filled circle of radius of 19 tiles, and 25 tiles. the default creates a radius of 13 tiles.
I'd eventually like to add an Extra Large setting but manually creating the array of coordinates is horrible.

I wedged this setting in beside the setting for tropic width around rivers despite it not fitting into the rivers/lakes category because it still feels the most relevant place for now.
2022-03-05 16:25:50 +10:30
Michael Lutz
2e39637db2 Codechange: Don't use a global for the 'not enough cash' message. 2021-12-16 22:28:32 +01:00
Michael Lutz
c6d7b98808 Codechange: Un-bitstuff landscape commands. 2021-12-16 22:28:32 +01:00
Michael Lutz
e740c24eb7 Codechange: Template DoCommand to automagically reflect the parameters of the command proc.
When finished, this will allow each command handler to take individually
different parameters, obliviating the need for bit-packing.
2021-12-16 22:28:32 +01:00
Michael Lutz
7048e1522f Codechange: Move flags in CommandProc in front of the command arguments. 2021-12-16 22:28:32 +01:00