Commit Graph

227 Commits

Author SHA1 Message Date
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 70bc55cfd6: 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
rubidium
e356cb9405 (svn r20281) -Codechange: unify case scope closure + break coding style 2010-08-01 18:53:30 +00:00
alberth
be6c058424 (svn r20211) -Codechange: Indented code should have curly braces around it. 2010-07-24 10:14:39 +00:00
rubidium
b8487afe54 (svn r20192) -Cleanup: bye bye variables.h, bye bye VARDEF... you won't be missed :) 2010-07-19 17:28:27 +00:00
rubidium
5a836cdec7 (svn r20187) -Codechange: move _tileh_to_sprite into a function in a more logical place and with a more descriptive name 2010-07-19 17:00:54 +00:00
frosch
5b77a63ecf (svn r19769) -Fix [FS#3820]: MV_VOID tiles shall have no tropic zone. 2010-05-08 14:43:59 +00:00
frosch
77486ee8d2 (svn r19658) -Fix: One could turn transport companies into credit banks. 2010-04-17 14:57:49 +00:00
smatz
0ef33548c2 (svn r19614) -Codechange: "it's" => "its" where appropriate 2010-04-12 14:12:47 +00:00
alberth
66a2a84035 (svn r19492) -Codechange: Keep track of last error in CmdClearArea(). 2010-03-20 17:19:16 +00:00
rubidium
4d93b704d9 (svn r18866) -Codechange: remove the CmdFailed(ret)/CmdSucceeded(ret) wrapper functions 2010-01-18 22:57:21 +00:00
smatz
11e3a00a23 (svn r18853) -Codechange: apply coding style to GenWorld's enums, structs and typedefs 2010-01-17 22:59:24 +00:00
smatz
2469752559 (svn r18851) -Codechange: enumify number of steps needed to generate landscape 2010-01-17 21:40:35 +00:00
smatz
3850b5912f (svn r18850) -Fix [FS#3540]: don't allow screen redraw when the landscape contains broken slopes 2010-01-17 20:28:08 +00:00
rubidium
82fc28f77f (svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header 2010-01-15 16:41:15 +00:00
peter1138
5ab64809fe (svn r18708) -Feature: [NewGRF] Add support for custom station foundation graphics. 2010-01-03 22:44:57 +00:00
rubidium
c2221885f4 (svn r18027) -Codechange: make some unneededly global variables static and remove some unused variables 2009-11-09 09:59:35 +00:00
rubidium
d6cded5380 (svn r17693) -Cleanup: remove some unneeded includes 2009-10-04 17:16:41 +00:00
rubidium
04d5b67eb6 (svn r17567) -Fix: some doxygen warnings 2009-09-18 14:23:58 +00:00