Peter Nelson
a8c0d16371
Cleanup: Use std::advance instead of for-loop.
2023-05-11 07:58:55 +01:00
Tyler Trahan
6501f84b4a
Codechange: Move calendar date functions inside TimerGameCalendar ( #10753 )
2023-05-04 13:14:12 +00:00
Rubidium
f74e26ca7e
Codechange: replace error/usererror printf variant with fmt variant and rename
2023-04-25 17:55:09 +02:00
Patric Stout
31ad990831
Codechange: move tick-counter into TimerGameTick ( #10712 )
2023-04-24 16:55:40 +00:00
Patric Stout
7aa2b9ab0a
Codechange: move all date-related variables inside the timer ( #10706 )
2023-04-24 15:56:01 +00: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
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
Rubidium
a409e4b026
Add: documention to large functions that have too little documentation according to CodeQL
2023-02-25 23:57:36 +01: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
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
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
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
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
Michael Lutz
33ca4f2b99
Codechange: Let the compile generate the master command table out of templated command traits.
...
This is using a non-intrusive type-traits like templated system, which
allows compile-time validation that the command table and the command
enum match up.
2021-12-16 22:28:32 +01:00
Michael Lutz
b6933a2ebd
Codechange: Move command arguments to the back of the DoCommand function call.
2021-12-16 22:28:32 +01:00
rubidium42
2e136285e1
Codechange: move from C-string to std::string for DoCommand
2021-05-29 19:02:18 +02:00
Patric Stout
ff6924f122
Fix 70bc55cfd6e: snow line height was set while calculating desert line ( #8989 )
...
Seems I liked copy/pasting just a tiny bit too much.
2021-04-10 10:14:55 +01:00
Patric Stout
1a1049bc0d
Change: rename setting "max_heightlevel" to "map_height_limit"
...
This better reflects what it is, and hopefully removes a bit of
the confusion people are having what this setting actually does.
Additionally, update the text on the setting to better inform
users what it is doing exactly, so they can make an educated
decision on how to change it.
Next commit will introduce an "auto" value, which should be the
new default. The rename has as added benefit that everyone will
start out on the "auto" value.
2021-03-26 12:22:32 +01:00
Patric Stout
70bc55cfd6
Feature: setting to indicate desert coverage for tropic climate
...
This is an indication value; the game tries to get as close as it
can, but due to the complex tropic rules, that is unlikely to be
exact.
In the end, it picks a height-level to base the desert/tropic
line on. This is strictly seen not needed, as we can convert any
tile to either. But it is the simplest way to get started with
this without redoing all related functions.
2021-03-26 12:22:32 +01:00
Patric Stout
cafe4eed6e
Feature: setting to indicate snow coverage for arctic climate (replaces snow line height)
...
Setting the snow coverage (in % of the map) makes a lot more sense
to the human, while still allowing the niche player to set (by
finding the correct %) a snow line height they like. This makes for
easier defaults, as it decoupled terrain height from amount of snow.
Maps can never be 100% snow, as we do not have sprites for coastal
tiles.
Internally, this calculates the best snow line height to approach
this coverage as close as possible.
2021-03-26 12:22:32 +01:00
Patric Stout
970fedd78c
Add: make modal windows update more smooth
...
Basically, modal windows had their own thread-locking for what
drawing was possible. This is a bit nonsense now we have a
game-thread. And it makes much more sense to do things like
NewGRFScan and GenerateWorld in the game-thread, and not in a
thread next to the game-thread.
This commit changes that: it removes the threads for NewGRFScan
and GenerateWorld, and just runs the code in the game-thread.
On regular intervals it allows the draw-thread to do a tick,
which gives a much smoother look and feel.
It does slow down NewGRFScan and GenerateWorld ever so slightly
as it spends more time on drawing. But the slowdown is not
measureable on my machines (with 700+ NewGRFs / 4kx4k map and
a Debug build).
Running without a game-thread means NewGRFScan and GenerateWorld
are now blocking.
2021-03-10 13:41:18 +01:00
Charles Pigott
9b800a96ed
Codechange: Remove min/max functions in favour of STL variants ( #8502 )
2021-01-08 11:16:18 +01:00
Michael Lutz
65f65ad2ad
Codechange: Convert some more FIO functions to take std::string.
2020-12-27 13:19:25 +01:00
Charles Pigott
860c270c73
Codechange: Replace assert_compile macro with static_assert
2020-12-27 10:55:42 +00:00
SamuXarick
1d85d71d29
Fix: for original terrain generator, keep a single gap of water at the borders ( #7883 )
...
This means that for NE/NW, it should have one more in case of
freeform-edges, and in case of SE/SW it should have one less.
Reminder: freeform-edges only adds VOID tiles on X=0 and Y=0.
2020-12-15 21:52:41 +01:00
TechGeekNZ
716c883737
Fix: Globally apply preprocessor directive coding style
...
Global; except for the 32-bit SSE blitter, which has some #DEFINEs
in not-very-nice places.
2020-07-03 09:08:46 +02:00
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
2019-11-10 17:59:20 +00:00
JMcKiern
04f659e768
Fix: Some typos found using codespell
2019-09-29 21:27:32 +01:00
Henry Wilson
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
2019-04-10 23:22:20 +02:00
SamuXarick
4adb91202d
Fix: Remove desert around lakes upon generation
2019-02-23 13:16:12 +01:00
Gabda
37bb2c9308
Codechange: Make the style of MakeVoid calls uniform ( #7192 )
2019-02-08 23:05:25 +00:00
J0an Josep
19be1f4ace
Codechange: [NPF] Add some consts.
2019-01-31 22:15:56 +00:00
Johannes E. Krause
c33596fe4a
Codechange: Unify tile height model in all functions (Patch by adf88, #6583 )
2019-01-24 21:17:17 +01:00
Johannes E. Krause
f744dea0ff
Fix: jumping effect when scrolling viewport over bottom edge of the map (Patch by adf88, #6583 )
2019-01-24 21:17:17 +01:00
Johannes E. Krause
f0290d5de7
Codechange: Add InverseRemapCoords2 function for remapping viewport coordinates to underlying tile coordinates (Patch by adf88, #6583 )
2019-01-24 21:17:17 +01:00
Niels Martin Hansen
2a868b9f3b
Feature: Framerate display window ( #6822 )
...
Frame rate and various game loop/graphics timing measurements and graphs. Accessible via the Help menu, and can print some stats in the console via the fps command.
2018-07-19 21:17:07 +02:00
Charles Pigott
5f86e1a390
Codechange: Silence -Wclass-memaccess warnings with GCC8
2018-06-27 22:54:46 +02:00
alberth
597380e099
(svn r27650) -Codechange: Replace SaveOrLoadMode by FileOperation and DetailedFileType.
2016-09-04 12:57:43 +00:00
alberth
9135f7130e
(svn r27635) -Codechange: Move FileType and FileToSaveLoad structure definitions.
2016-09-04 12:45:40 +00:00
rubidium
8d90e86c2c
(svn r27009) -Add: extra level of general map heightness (ChillCore)
2014-10-13 14:22:48 +00:00
rubidium
cfe08b86c9
(svn r26883) -Change: make maximum desert height scale with the maximum configured height
2014-09-21 11:53:06 +00:00
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
2014-04-23 20:13:33 +00:00
fonsinchen
e4c7c8876b
(svn r26323) -Fix: update some constants related to map size.
2014-02-09 15:00:30 +00:00
rubidium
f99d380583
(svn r26309) -Codechange: instead of memsetting a byte array with zero, use a set for marking the flow area of a river
2014-02-06 20:51:01 +00:00
fonsinchen
dda4ffab5e
(svn r26290) -Codechange: Use nicer orthogonal tile iterator constructor and simplify calculation of explosion points when clearing.
2014-02-02 14:53:52 +00:00
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)
2013-10-12 22:07:58 +00:00
zuu
d908897918
(svn r25847) -Fix: Comment for GetFoundationSlope was wrong (cirdan, LordAro)
2013-10-12 22:01:21 +00:00
fonsinchen
c32eea02dd
(svn r25354) -Add: link graph schedule and typedefs for LinkGraph and related classes
2013-06-09 12:58:37 +00:00
michi_cc
6f9668330e
(svn r24132) -Change [FS#4713]: Improve randomness of tile order in the tile loop. (monoid)
2012-04-17 19:43:43 +00:00
michi_cc
02d07e68d8
(svn r23885) -Codechange: Use the GRF sprite loader for then mapgen sprites as well.
2012-02-04 13:28:56 +00:00
rubidium
6d6be50ae0
(svn r23740) -Codechange: remove some 300 unneeded includes from the .cpp files
2012-01-03 21:32:51 +00:00
rubidium
19eabdba2c
(svn r23106) -Codechange: pass int* to GetTileSlope and friends
2011-11-04 11:30:37 +00:00
rubidium
f01b3e2721
(svn r23104) -Codechange: prepare the vehicle/sign z for some further changes to reduce casting
2011-11-04 11:09:06 +00:00
rubidium
0b6dbaf664
(svn r23099) -Codechange: remove pointless multiplications by TILE_HEIGHT for the water/river code
2011-11-04 10:29:26 +00:00
rubidium
69162621d8
(svn r23096) -Codechange: remove useless divisions and multiplications by TILE_HEIGHT for the snow line code
2011-11-04 10:25:58 +00:00
rubidium
2ed0f93bfb
(svn r23093) -Codechange: add a default NULL for the Z of GetTileSlope and use it
2011-11-04 10:22:27 +00:00
rubidium
a36551dbb4
(svn r23092) -Codechange: create a non-pixel version of some of the Get*PixelZ functions, and let Get*PixelZ wrap around the new function (multiplying the Z by TILE_HEIGHT) just like TileHeight and TilePixelHeight
2011-11-04 10:20:24 +00:00
rubidium
7757a2ed40
(svn r23091) -Codechange: rename some Get*Z functions to Get*PixelZ functions if they return the Z in pixels (like TilePixelHeight)
2011-11-04 10:18:13 +00:00
rubidium
47203dbeb5
(svn r23090) -Codechange: use map accessors instead of directly accessing the map (mhl)
2011-11-04 06:05:11 +00:00
rubidium
47c5d30b5d
(svn r23084) -Codechange: get rid of a redundant variable
2011-11-03 22:49:03 +00:00
rubidium
9023de2c1f
(svn r22808) -Change [FS#4740]: make it less likely that a one tile wide lake is created
2011-08-21 19:36:30 +00:00
michi_cc
4261e8fdfd
(svn r22773) -Add: Some grass around rivers in desert areas.
2011-08-20 20:07:02 +00:00
rubidium
11a4e402c6
(svn r22768) -Add: progress bar updates for river building
2011-08-20 14:15:40 +00:00
rubidium
0041408e4f
(svn r22767) -Add: river generation
2011-08-20 14:14:17 +00:00
frosch
718e0090b2
(svn r22670) -Change: Do not spawn explosion effects when bulldozing in paused mode. They block the view.
2011-07-17 16:09:38 +00:00
rubidium
bc3ce1e53b
(svn r22018) -Cleanup: remove some (now) unneeded includes of functions.h
2011-02-07 22:37:22 +00:00
rubidium
7e6ccf3a0a
(svn r21767) -Fix [FS#4397]: don't limit tile clearing during bankruptcy
2011-01-10 21:58:05 +00:00
rubidium
eab47d2227
(svn r21728) -Fix/Feature [FS#4331]: (configurably) limit amount of tiles that can be cleared/terraformed by a company
2011-01-04 22:50:09 +00:00
rubidium
73d26d3831
(svn r21714) -Codechange: unduplicate a bit of code path
2011-01-04 20:33:22 +00:00
rubidium
6892cc8a60
(svn r21500) -Feature [FS#730]: diagonal tile clearing and terraforming. Based on patch by fonsinchen
2010-12-13 15:15:02 +00:00
rubidium
67e6ad2a4b
(svn r21482) -Codechange: make landscape clearing make use of TILE_AREA_LOOP as well
2010-12-12 17:22:17 +00:00
frosch
5910bde583
(svn r21476) -Fix [FS#4299]: DC_FORCE_CLEAR_TILE should only add extra cost for clearing water for stuff which results in water after clearing.
2010-12-12 11:41:15 +00:00
frosch
d5360390d0
(svn r21288) -Codechange: Add helper function to find entries in _cleared_object_areas.
2010-11-21 17:05:23 +00:00
terkhen
725cf7d8bb
(svn r21080) -Fix: Do not allow to use a custom water level with the original map generator.
2010-11-04 18:34:37 +00:00
alberth
7e48d85104
(svn r21060) -Doc: Improved wording of comments (mostly by __ln__)
2010-10-30 17:51:07 +00:00
yexo
6b4d2f5ae6
(svn r20821) -Fix [FS#4129]: terraforming the land under objects could leave sloped or elevated sea tiles
2010-09-17 15:16:19 +00:00
yexo
0e250f2bdf
(svn r20748) -Fix: overbuilding an object tile with sea under it with a canal didn't take the cost for clearing the sea into account
2010-09-05 16:00:36 +00:00
frosch
42a996ec23
(svn r20743) -Fix: Make testruns of clearing an object tile not influence repeated testruns resp. the exec run.
2010-09-05 13:31:39 +00:00
yexo
0decc3e094
(svn r20731) -Fix (r20739): SmallVector did not have an assignment operator, causing invalid memory reads / double free
2010-09-03 23:04:02 +00:00
yexo
a45b598bfc
(svn r20729) -Fix [FS#4107]: assert when overbuilding object
2010-09-03 21:50:51 +00:00
rubidium
2d10b0f11d
(svn r20669) -Codechange: trigger the whole object every 256 ticks instead of every 250 ticks
2010-08-28 19:13:20 +00:00
rubidium
60fe27db50
(svn r20662) -Codechange: implement object animation
2010-08-28 18:51:47 +00:00
frosch
67c21f7e01
(svn r20419) -Codechange: Rename dummy_land.cpp to void_cmd.cpp
2010-08-09 06:48:52 +00:00
rubidium
3da3d131c6
(svn r20411) -Codechange: rename unmovables as quite a lot of them are actually movable; e.g. HQ and owned land are pretty movable.
2010-08-08 10:59:30 +00:00
frosch
4bd32799f1
(svn r20286) -Codechange: Unify end of doxygen comments.
2010-08-01 19:44:49 +00:00
frosch
ed4f806f1d
(svn r20283) -Codechange: Unify start of doygen comments.
2010-08-01 19:22:34 +00:00