Patric Stout
0d2e3437e3
Change: switch SL_DEQUE and SL_REFLIST length field to a gamma
...
The current SaveLoad is a bit inconsistent how long a length field
is. Sometimes it is a 32bit, sometimes a gamma. Make it consistent
across the board by making them all gammas.
2021-06-15 16:45:04 +02:00
Patric Stout
75e7451151
Change: indicate in the savegame if a SL_STRUCT contains any data
...
This helps external tooling to understand if a SL_STRUCT should
be skipped when reading. Basically, this transforms an SL_STRUCT
into a SL_STRUCTLIST with either 0 or 1 length.
2021-06-15 16:45:04 +02:00
Patric Stout
a146bcfe93
Change: store length of SL_STRUCTLIST in the savegame
...
This wasn't consistently done, and often variables were used that
were read by an earlier blob. By moving it next to the struct
itself, the code becomes a bit more self-contained and easier to
read.
Additionally, this allows for external tooling to know how many
structs to expect, instead of having to know where to find the
length-field or a hard-coded value that can change at any moment.
2021-06-15 16:45:04 +02:00
Patric Stout
7b135a8269
Codechange: use SLE_STRUCT(LIST) for Linkgraph chunks
2021-06-14 21:58:05 +02:00
Patric Stout
5cd0c65787
Codechange: move Save/Load functions of same chunk next to each other
2021-06-14 21:58:05 +02:00
Patric Stout
af3aba7a88
Codechange: use SLE_STRUCT(LIST) for GameScript chunks
2021-06-14 21:58:05 +02:00
Patric Stout
aa02bf27f6
Codechange: use as much of STNN code for STNS as possible
...
There was a lot of code duplication for no real reason. Now with
SLEG_STRUCT support, we can just re-use the code, hopefully making
it easier for future-us to make changes to this, without breaking
everything for old games.
2021-06-14 21:58:05 +02:00
Patric Stout
0bdca02bdf
Codechange: use SLE_STRUCT(LIST) for Station chunks
2021-06-14 21:58:05 +02:00
Patric Stout
af43fc3d62
Codechange: use SLE_STRUCT(LIST) for Company chunks
2021-06-14 21:58:05 +02:00
Patric Stout
0bb1d2fa8e
Codechange: use SLE_STRUCT(LIST) for Town chunks
2021-06-14 21:58:05 +02:00
Patric Stout
4e4720f217
Codechange: remove the special station/vehicle code from SaveLoad
...
With the new SLEG_STRUCT it is much easier to embed a struct
in a struct, where the sub-struct has limitations on when it is
being used.
This makes both the code easier to read (less magic) and avoids
the SaveLoad needing to know all these things about Stations
and Vehicles.
2021-06-14 21:58:05 +02:00
Patric Stout
4600d289b5
Codechange: ability to store structs and list of structs in savegames
...
The commits following this will use this new functionality.
Currently, a few places do this manually. This has as drawback that
the Save() and Load() code need to be in sync, and that any change
can result in (old) savegames no longer loading. In general, it is
annoying code to maintain.
By putting everything in a description table, and use that for
both Save() and Load(), it becomes easier to see what is going on,
and hopefully less likely for people to make mistakes.
2021-06-14 21:58:05 +02:00
Patric Stout
1e432fbd71
Fix 81062163
: for (really) old games, station bus/truck station cache was not updated ( #9366 )
2021-06-13 13:48:40 +02:00
rubidium42
55a11710a6
Codechange: convert printf DEBUG statements to fmt Debug statements
2021-06-13 12:45:45 +02:00
Tyler Trahan
d09210e1c6
Feature: Configurable subsidy duration
2021-06-10 23:26:16 +02:00
Patric Stout
174952440a
Codechange: rework CHTS-chunk save/load to be more like the others
2021-06-10 19:18:24 +02:00
Patric Stout
8f323855b1
Codechange: rename SL_LST to SL_REFLIST to highlight the "reference" part
...
You can easily mistake SlList / SL_LST to be a list of SL_VAR, but
it is a list of SL_REF. With this rename, it hopefully saves a few
people from "wtf?" moments.
2021-06-10 19:18:24 +02:00
Patric Stout
aa6443d57a
Codechange: refactor SlList to use SlStorageHelper
2021-06-10 19:18:24 +02:00
Patric Stout
23857af693
Codechange: refactor SlDequeueHelper to work with unsigned and be more generic
...
Future additions will start using it for std::list too.
2021-06-10 19:18:24 +02:00
Patric Stout
a2147d437e
Codechange: use wrappers to get Var[Mem|File]Type, instead of GB()
2021-06-10 19:18:24 +02:00
Patric Stout
fba86f711f
Codechange: move GetVariableAddress inside SlObjectMember
...
Also move it to static, as nobody else is using it.
2021-06-10 19:18:24 +02:00
Patric Stout
f997eb6ca4
Fix: compatible NewGRFs in crash-log reported wrong md5 ( #9340 )
...
The text suggests it reports the original md5, but it does in fact
report the replaced md5. Now it reports both.
2021-06-08 20:30:44 +02:00
Patric Stout
1e564b333f
Codechange: make [Save|Load]Settings() behave more like other Save/Load code ( #9335 )
...
Prepare the full description and send it to SlObject. This does
require some code to be able to read to a SLE_VAR_NULL, like strings
etc, as there is no way to know their length beforehand.
2021-06-07 23:03:12 +02:00
Patric Stout
648ee88a02
Codechange: merge guiflags and flags in settings .ini files
...
It was rather confusing which one was for what, especially as some
SaveLoad flags were settings-only. Clean up this mess a bit by
having only Setting flags.
2021-06-06 21:45:01 +02:00
Patric Stout
264991dfa5
Codechange: move SLF_NO_NETWORK_SYNC into settings
...
It is a settings-only flag, so don't pollute SaveLoad code with it.
2021-06-06 21:45:01 +02:00
Patric Stout
414e12d26b
Codechange: move SLF_NOT_IN_SAVE into settings
...
It is a settings-only flag, so don't pollute SaveLoad code with it.
2021-06-06 21:45:01 +02:00
Patric Stout
7572603c9d
Codechange: remove the unused SLF_HEX flag
2021-06-06 21:45:01 +02:00
glx22
c27afdf3f6
Codechange: Remove FOR_ALL_CHUNK_HANDLERS
...
Co-Authored-By: Patric Stout <truebrain@openttd.org>
2021-06-06 19:35:06 +02:00
Patric Stout
28e90769f7
Codechange: use "[[maybe_unused]]" instead of a wide variety of other ways we had
...
While at it, replace OTTD_ASSERT with WITH_ASSERT, as this
is always set if assert() is valid. No matter if NDEBUG is set
or not.
2021-06-03 17:30:00 +02:00
Patric Stout
9fff00ba20
Codechange: C++-ify lists for SaveLoad ( #9323 )
...
Basically, this changes "SaveLoad *" to either:
1) "SaveLoadTable" if a list of SaveLoads was meant
2) "SaveLoad &" if a single entry was meant
As added bonus, this removes SL_END / SLE_END / SLEG_END. This
also adds core/span.hpp, a "std::span"-lite.
2021-05-31 22:26:44 +02:00
Patric Stout
0c96884700
Codechange: add a wrapper function to find all settings based on prefix ( #9312 )
2021-05-30 10:55:52 +02:00
Patric Stout
ca9a7df752
Codechange: rename str_validate to StrMakeValid(InPlace) ( #9304 )
...
This to be more explicit the function changes the value, and not
returns yes/no.
2021-05-29 11:21:38 +02:00
rubidium42
3bb6ce8827
Codechange: use initializer_lists for the settings tables
...
Not using vectors as those require copying from the initializer list and that
makes unique_ptrs to the actual SettingDesc objects later impossible.
2021-05-27 18:49:43 +02:00
rubidium42
425d50372f
Codechange: let SettingDesc extend SettingDescBase
2021-05-27 18:49:43 +02:00
rubidium42
44ca7d9377
Change: Use gender-neutral pronouns
2021-05-15 10:16:48 +02:00
rubidium42
ddaedaf32a
Fix: empty undocumented branches
2021-05-15 10:16:10 +02:00
Rubidium
bb9121dbd4
Fix: comparison of narrow type to wide type in loop (potential for infinite loops)
2021-05-15 10:16:10 +02:00
rubidium42
0f062b3882
Codechange: clean up C-string support from settings
2021-05-13 23:13:17 +02:00
rubidium42
a032714dc4
Codechange: move script settings to std::string
2021-05-13 23:13:17 +02:00
rubidium42
95386dc2b8
Codechange: move misc settings to std::string
2021-05-13 23:13:17 +02:00
glx22
38c97e1492
Codechange: Replace TILE_AREA_LOOP with range-based for loops
2021-05-13 00:13:54 +02:00
Patric Stout
b136e65cf9
Change: reworked the debug levels for network facility ( #9251 )
...
It now follows very simple rules:
0 - Fatal, user should know about this
1 - Error, but we are recovering
2 - Warning, wrong but okay if you don't know
3 - Info, information you might care about
4 -
5 - Debug #1 - High level debug messages
6 - Debug #2 - Low level debug messages
7 - Trace information
2021-05-12 16:34:02 +02:00
PeterN
3d9436bd75
Fix #9202 : Invalid test for unset NewGRF override mapping. ( #9226 )
2021-05-12 09:11:14 +02:00
PeterN
69e5da0b54
Codechange: Don't save unused NewGRF override mappings. ( #9202 )
2021-05-08 11:36:39 +01:00
William Davis
881e1da51d
Change: Use gender-neutral pronouns in console command messages (and comments) ( #9203 )
2021-05-08 11:02:30 +01:00
glx22
2feb801e56
Codechange: Replace FOR_ALL_ROADTRAMTYPES with range-based for loops
2021-05-03 19:46:57 +02:00
PeterN
18651dd8b1
Fix: Update text effect size when font zoom is changed. ( #9174 )
2021-05-02 10:43:14 +01:00
Loïc Guilloux
356bbbb90a
Fix: [MinGW] Set minimum OS version to Windows XP ( #9135 )
2021-04-29 14:26:08 +02:00
peter1138
a05bc04b63
Feature: Per-group wagon removal flag.
2021-04-22 22:57:00 +02:00
peter1138
27a956ba62
Codechange: Replace Group::replace_protection with Group::flags
2021-04-22 22:57:00 +02:00
Milek7
aade177d79
Fix: Corrupted savegame could cause heap corruption by writing outside link graph edge matrix. ( #9046 )
2021-04-17 19:19:37 +01:00
Milek7
da55286c2c
Fix: Corrupted savegame could crash the game by providing invalid gamelog enums. ( #9045 )
2021-04-17 19:19:18 +01:00
Patric Stout
13a5264438
Fix: store the recent new game_creation settings in savegames
...
This allows us to later on see what someone did, and makes sure
that "restart" command still knows how the game was created.
2021-03-26 12:22:32 +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
9bfa7198fd
Change: Heading for 1.12 now ( #8862 )
2021-03-14 20:47:31 +01:00
Patric Stout
c3dc27e37e
Add: settings to limit your fast-forward game speed
...
By default this setting is set to 2500% normal game speed.
2021-02-28 18:04:51 +00:00
Michael Lutz
7845434270
Codechange: Don't use cpp_offsetof in the save/load code.
...
Many of the member variables that are used in save/load are inside types
that are not standard layout types. Using pointer arithmetics to determine
addresses of members inside types that are not standard layout is generally
undefined behaviour. If we'd use C++17, it is conditionally supported, which means
each compiler may or may not support it. And even then using it for individual
array elements is syntactically not supported the the standard offsetof function.
Unfortunately, the trickery employed for saving linkgraph settings causes quite some
clutter in the settings ini files.
2021-02-13 20:08:53 +01:00
Michael Lutz
9c9292949f
Codechange: Don't use cpp_offsetof in the TTO/TTD savegame loader.
...
Many of the member variables that are used in the oldloader are inside types
that are not standard layout types. Using pointer arithmetics to determine
addresses of members inside types that are not standard layout is generally
undefined behaviour. If we'd use C++17, it is conditionally supported, which means
each compiler may or may not support it. And even then using it for individual
array elements is syntactically not supported the the standard offsetof function.
2021-02-13 20:08:53 +01:00
glx22
6b8ad5a9b1
Change: Apply some consistency to singleplayer related comments
2021-01-22 22:19:55 +01:00
dP
bab7de6cf2
Feature: Allow GameScripts to add additional text to Industry view window
2021-01-22 09:50:53 +00:00
Michael Lutz
7da224d29d
Fix #8589 , 653e7fa548
: Motion counter is NewGRF-visible but not saved, leading to desyncs. ( #8591 )
2021-01-18 21:11:38 +01:00
Matt Kimber
40d5fe1631
Fix eeb88e8
: Trains reversed while paused do not correctly update sprite bounds ( #8540 )
2021-01-17 19:57:16 +01:00
Patric Stout
ef6b17baf7
Fix 2fd871e2af
: load correct ending-year for old (pre 0.7) savegames
...
Despite what it looked like, you could never really change the
ending-year (it was always reset to 2050 on start-up). See commit
683b65ee1
for details. As a side-effect, the variable that was
suppose to store the ending-year was just zero, never containing
a real ending-year.
2021-01-08 11:17:08 +01:00
Charles Pigott
9b800a96ed
Codechange: Remove min/max functions in favour of STL variants ( #8502 )
2021-01-08 11:16:18 +01:00
Matt Kimber
9b28b15e67
Codechange: create MutableSpriteCache to remove the need to cast Vehicle to a mutable type in render methods
2021-01-05 11:42:25 +01:00
Patric Stout
8596b43b2b
Codechange: move some DEBUG-levels and remove some others in saveload routine ( #8474 )
...
When running with -dsl=2 it is very easy to miss important information
as there was a lot of noise in between too. This tunes the debug
levels a bit to be less noisy while keeping the important bits.
2021-01-01 14:41:14 +01:00
Michael Lutz
b408fe77f7
Codechange: Use std::string in file scanners.
2020-12-27 13:19:25 +01:00
Michael Lutz
5cbb2da794
Codechange: Even more std::string usage in file IO.
2020-12-27 13:19:25 +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
cirdan
395a5d9991
Cleanup: Remove unused ChunkType flag CH_AUTO_LENGTH
...
CH_AUTO_LENGTH is no longer used anywhere, so remove all code
that depends on it.
2020-12-27 10:30:55 +00:00
cirdan
46ff7d918b
Cleanup: Remove save-only autolength flag from economy chunk handlers
...
CH_AUTO_LENGTH is only used when saving chunks; it makes no sense
to set it for chunks without a save handler.
2020-12-27 10:30:55 +00:00
glx22
d8605ad18d
Codechange: Replace FOR_VEHICLE_ORDERS with range-based for loops
2020-12-27 10:28:46 +00:00
Jonathan G Rennison
0c5dc5d41e
Change: [Linkgraph] Pause the game when linkgraph jobs lag ( #6470 )
...
Check if the job is still running two date fract ticks before it is due
to join, and if so pause the game until its done.
When loading a game, check if the game would block immediately due to
a job which is scheduled to be joined within two date fract ticks,
and if so pause the game until its done.
This avoids the main thread being blocked on a thread join, which appears
to the user as if the game is unresponsive, as the UI does not repaint
and cannot be interacted with.
Show if pause is due to link graph job in status bar, update network
messages.
This does not apply for network clients.
2020-12-22 15:17:57 +01:00
Pavel Stupnikov
9a45a0f535
Feature: Set exclusive access to industry from GS ( #8115 )
2020-12-22 14:29:48 +01:00
Niels Martin Hansen
b7751c483e
Feature: Influence industry production changes from GS ( #7912 )
2020-12-22 14:21:31 +01:00
Patric Stout
d8c8f4e72d
Fix: next 67 savegame versions are used in PatchPacks; skip them ( #8411 )
...
Various of PatchPacks (Spring 2013, Joker, ChillPP) used versions
slightly higher than ours. Of course, as time went by, this
caught up with us, and we are now almost pushing a new version
that would conflict with them. To avoid users creating unneeded
issues about "why can I not load my savegame", lets be ahead of
the curve and flat-out refuse to load them.
Version-wise, this is totally fine. We have ~32k versions to go
before we run out (0x8000 is masked by JGRPP; we should avoid
using that). At the rate we bump savegames, this is not going to
happen in any sane reality.
2020-12-22 10:44:07 +01:00
Patric Stout
d15dc9f40f
Add: support for emscripten (play-OpenTTD-in-the-browser)
...
Emscripten compiles to WASM, which can be loaded via
HTML / JavaScript. This allows you to play OpenTTD inside a
browser.
Co-authored-by: milek7 <me@milek7.pl>
2020-12-15 15:46:39 +01:00
Michael Lutz
79240eab1e
Codechange: Make use of the improved C++17 emplace_back function.
2020-12-15 00:29:30 +01:00
Patric Stout
731af1f1f3
Codechange: don't do work GetVariableAddress() is already doing
2020-12-06 16:10:58 +01:00
Patric Stout
c98717cb45
Fix: do not add an offset to a nullptr
...
This is, by specs, undefined behaviour. See
https://reviews.llvm.org/D67122
In cases where this is done, optimizations done by LLVM can
generate code that causes crashes.
GetVariableAddress() had two (legit) ways this could happen:
- For SaveLoad set to global
- For SaveLoad set to SLE_VAR_NULL, where sld->address is always
a nullptr, and object could or could not be a nullptr.
2020-12-06 16:10:58 +01:00
Michael Lutz
c558936ec3
Fix 63ccb36ef3
: Crash trying to load TTO/TTD savegames. ( #8356 )
2020-12-06 00:29:27 +01:00
dP
452e1e3328
Codechange #8258 : Remove unused town cargo caches from the savegame
2020-07-27 17:32:00 +01:00
TechGeekNZ
a10013dd00
Codechange: Spell 'Viewport' consistently
...
Some places in the codebase misspell 'Viewport' as 'ViewPort' or 'view_port'.
This patch makes everything consistent.
2020-07-27 17:31:29 +01:00
dP
7045186594
Change #8159 : Remove now unused town cargo caches without bumping the savegame version
2020-06-28 18:23:59 +02:00
dP
ca2604c4e2
Revert #8157 : Redundant change
2020-06-28 18:23:59 +02:00
Jonathan G Rennison
7a09413a1a
Fix: Incorrect save/load array size of Town::cargo_accepted
...
In 11ab3c4e
the number of cargo types was changed from 32 to 64.
The save/load of Town::cargo_accepted was not updated, such that
only half of the data structure is saved/loaded in savegame versions
199 to 218.
Discard and regenerate data from all savegame versions prior to 219.
2020-06-28 15:32:53 +02:00
Jonathan G Rennison
54237b0e98
Codechange: Move SlSkipBytes to saveload.h
2020-06-28 15:32:53 +02:00
Charles Pigott
64b1c70fdd
Codechange: Add WARN_FORMAT to vseprintf and fix the cascade of warnings that followed
2020-06-27 14:51:14 +01:00
Jonathan G Rennison
e6f3e15c32
Fix 63ccb36e
: Incorrect string type for OrderBackup::name save/load
...
In 63ccb36e
BaseConsist::name was changed from a malloced char*
to a std::string.
OrderBackup inherits from BaseConsist.
The saveload of OrderBackup::name was not updated.
2020-06-22 08:02:42 +02:00
Patric Stout
56d54cf60e
Add: introduce CMake for project management
...
CMake works on all our supported platforms, like MSVC, Mingw, GCC,
Clang, and many more. It allows for a single way of doing things,
so no longer we need shell scripts and vbs scripts to work on all
our supported platforms.
Additionally, CMake allows to generate project files for like MSVC,
KDevelop, etc.
This heavily reduces the lines of code we need to support multiple
platforms from a project perspective.
Addtiionally, this heavily improves our detection of libraries, etc.
2020-06-05 19:36:05 +02:00
Michael Lutz
63ccb36ef3
Codechange: Use std::string for most of the user-settable custom names.
2020-05-21 20:02:34 +02:00
Michael Lutz
9b6f5e3bb8
Codechange: Store GS lang texts in std::strings.
2020-05-21 20:02:34 +02:00
glx22
cca613e3b8
Fix #8142 , 5aa6351
: Buoy owner and tile owner can be different ( #8143 )
2020-05-12 15:22:58 +02:00
glx
5aa6351042
Fix #8132 : Corrupted savegame crashing OpenTTD on load
2020-05-10 20:03:41 +01:00
glx
0ed00ae111
Fix: Stop any gamelog action when recovering from SlError()
2020-05-10 20:02:55 +01:00
glx
bc8333723c
Fix #8021 : limit savegame range for docking tiles fixing
2020-05-06 23:12:59 +02:00
Yexo
64278fd598
Fix: reset roadtype/streetcartype info for non-road bridges
2020-05-06 22:10:08 +02:00
Yexo
19dc31e0b3
Fix #8108 : always update tile_hash after updating v->tile
2020-05-04 23:26:50 +02:00
SamuXarick
8edbb42fe8
Fix c01a2e2
: crash on loading old savegames with invalid animated tile information
2020-05-04 21:21:06 +02:00
SamuXarick
c01803cd42
Fix #8108 : possible crash on loading TTD savegames with phantom oil rigs
2020-05-04 21:21:06 +02:00
SamuXarick
57553cd809
Fix #8020 : Add missing docking tiles around industry neutral stations
2020-03-30 08:21:40 +02:00
glx
9116b22386
Fix #8011 , f5381798
: Dock tile in TTD savegame was only 2 bytes
2020-02-19 17:45:42 +01:00
glx
2f264f2c92
Change: Heading for 1.11 now
2020-02-08 23:38:49 +01:00
Johannes E. Krause
107283748a
Feature: SLF_HEX to print hexadecimal numbers in the config file
2020-02-06 21:00:30 +00:00
Jonathan G Rennison
c3223903ed
Codechange: Cache resolved town, station and industry name strings
2020-01-12 19:37:43 +00:00
frosch
a4be4514c9
Fix #7925 : Reset temporary saveload data at the start of loading a savegame instead of at the end.
...
Otherwise temporary data may be passed from an aborted load action to the next load action.
2020-01-12 19:08:38 +01:00
Charles Pigott
d1cead7f25
Fix: When loading old timetabled saves, also reset cached timetable duration
2020-01-05 20:51:26 +00:00
Charles Pigott
cddb8a4605
Fix #7587 : Crash when loading saves with waypoints with invalid locations
2020-01-05 20:51:26 +00:00
Niels Martin Hansen
2fd871e2af
Feature: Configurable game ending year
...
Functionally reverts 683b65ee1
2019-12-28 12:27:39 +01:00
glx
ee7a8eebca
Codechange: Replace FOR_ALL_TOWNS with range-based for loops
2019-12-21 20:13:03 +01:00
glx
0b489f9924
Codechange: Replace FOR_ALL_SUBSIDIES with range-based for loops
2019-12-21 20:13:03 +01:00
glx
847e5f33d4
Codechange: Replace story related FOR_ALL with range-based for loops
2019-12-21 20:13:03 +01:00
glx
869581eb23
Codechange: Replace FOR_ALL_SIGNS with range-based for loops
2019-12-21 20:13:03 +01:00
glx
b91abd3af9
Codechange: Replace FOR_ALL_ROADSTOPS with range-based for loops
2019-12-21 20:13:03 +01:00
glx
514565fad6
Codechange: Replace FOR_ALL_OBJECTS with range-based for loops
2019-12-21 20:13:03 +01:00
glx
11f178a312
Codechange: Replace FOR_ALL_STORAGES with range-based for loops
2019-12-21 20:13:03 +01:00
glx
d8a1be48cd
Codechange: Replace vehicle related FOR_ALL with range-based for loops
2019-12-21 20:13:03 +01:00
glx
9892d90b26
Codechange: Replace order related FOR_ALL with range-based for loops
2019-12-21 20:13:03 +01:00
glx
09fa39c5b5
Codechange: Replace linkgraph related FOR_ALL with range-based for loops
2019-12-21 20:13:03 +01:00
glx
00c2a98cf3
Codechange: Replace FOR_ALL_INDUSTRIES with range-based for loops
2019-12-21 20:13:03 +01:00
glx
4ae829cb27
Codechange: Replace FOR_ALL_GROUPS with range-based for loops
2019-12-21 20:13:03 +01:00
glx
f58ce3db19
Codechange: Replace FOR_ALL_GOALS with range-based for loops
2019-12-21 20:13:03 +01:00
glx
1f6b3a37f9
Codechange: Replace FOR_ALL_ENGINES with range-based for loops
2019-12-21 20:13:03 +01:00
glx
1c92ba8ebe
Codechange: Replace FOR_ALL_CARGO_PAYMENTS with range-based for loops
2019-12-21 20:13:03 +01:00
glx
fa9769f81a
Codechange: Replace FOR_ALL_DEPOTS with range-based for loops
2019-12-21 20:13:03 +01:00
glx
5fce5fa300
Codechange: Replace FOR_ALL_CARGOPACKETS with range-based for loops
2019-12-21 20:13:03 +01:00
glx
60e3cf8aff
Codechange: Replace FOR_ALL_ENGINE_RENEWS with range-based for loops
2019-12-21 20:13:03 +01:00
glx
ddabfed1cd
Codechange: Replace station related FOR_ALL with range-based for loops
2019-12-21 20:13:03 +01:00
glx
3a14cea068
Codechange: Replace FOR_ALL_COMPANIES with range-based for loops
2019-12-21 20:13:03 +01:00
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
2019-11-10 17:59:20 +00:00
Jack Baron
e4f08f2880
Fix: Bump savegame version
2019-10-19 20:31:44 +01:00
JMcKiern
04f659e768
Fix: Some typos found using codespell
2019-09-29 21:27:32 +01:00
peter1138
f538179878
Feature: Multi-tile docks and docking points.
2019-06-30 16:46:32 +02:00
Niels Martin Hansen
140a96b3a0
Change: Limit memory allocations for each Squirrel instance
...
This can avoid out-of-memory situations due to single scripts using up the entire address space.
Instead, scripts that go above the maximum are killed.
The maximum is default 1 GB per script, but can be configured by a setting.
2019-05-11 15:34:33 +02:00
PeterN
83c1678f9e
Fix #7577 : Check if linkgraph station index is valid before dereferencing. ( #7583 )
2019-05-10 21:36:03 +01:00
peter1138
c02ef3e456
Feature: Add NotRoadTypes (NRT)
2019-05-01 21:36:27 +02:00
Charles Pigott
63a7df027d
Fix 5db883f
: Railtype bits were moved too late, leading to rails under bridges losing their type
2019-04-29 17:46:28 +01:00
Charles Pigott
d9f9a64389
Fix #6507 : Don't try to load invalid depots from older savegames
2019-04-29 17:46:28 +01:00
Charles Pigott
3299d6540b
Cleanup: Delete GetSavegameType function since it's been commented out since 2005
2019-04-29 17:46:28 +01:00
Charles Pigott
9da1c5bb0b
Fix: Crash when attempting to load old save game with GRFs set
...
GroupStatistics pool was not initialised before trying to delete vehicles (specifically, trams with no tram track)
2019-04-29 17:46:28 +01:00
Charles Pigott
327ff89808
Codechange: Remove PauseModeByte
2019-04-29 17:40:22 +01:00
Charles Pigott
5b34c8019f
Codechange: Remove Company/OwnerByte types
2019-04-29 17:40:22 +01:00
Charles Pigott
931d32f414
Codechange: Remove RailTypeByte type
2019-04-29 17:40:22 +01:00
Charles Pigott
f20b75d712
Codechange: Remove TownLayoutByte type
2019-04-29 17:40:22 +01:00
Charles Pigott
96a4787710
Codechange: Set ZoomLevel's base type to byte instead of using ZoomLevelByte
2019-04-29 17:40:22 +01:00
Michael Lutz
4e85ccf3c0
Codechange: Replace SmallStackSafeStackAlloc with std::array.
...
The only port that ever used it to make heap allocations instead of stack ones was the NDS port, which got thrown out some time ago.
2019-04-15 22:52:50 +01:00
peter1138
4f052fc2a4
Cleanup: Fix alignment after NULL -> nullptr change.
2019-04-13 20:35:10 +01:00
Henry Wilson
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
2019-04-10 23:22:20 +02:00
Michael Lutz
8b1880187a
Remove: AutoFreeSmallVector.
...
The last use was for storing a list of memory blocks. As the way these lists are accessed is very
specific, it is easier to just write an explicit destructor instead of trying to exactly match the behaviour.
2019-04-09 22:45:15 +02:00
Michael Lutz
e804173595
Codechange: If something is a vector of strings, use a vector of strings instead of an AutoFreeSmallVector.
2019-04-09 22:45:15 +02:00
Michael Lutz
d3e113eb5f
Codechange: Use std::vector instead of AutoDeleteSmallVector in GS text handling.
2019-04-09 22:45:15 +02:00
Michael Lutz
94c5269fa7
Codechange: Use atomic variables for thread synchronization where useful.
2019-04-06 11:27:39 +02:00
Michael Lutz
05bc2ed7cb
Codechange: Replace custom thread code with C++11 thread objects.
...
We assume a conforming C++11 compiler environment that has a valid <thread>-header.
Failure to run a real thread is handled gracefully.
2019-04-06 11:27:39 +02:00
glx22
66dd7c3879
Fix: MSVC warnings ( #7423 )
2019-03-28 00:09:33 +01:00
Henry Wilson
cc62f4163f
Cleanup: Remove unused size template parameters from SmallMap and Auto[Free|Delete]SmallVector
2019-03-26 20:15:57 +00:00
Henry Wilson
c01a2e2a81
Codechange: Removed SmallVector completely
2019-03-26 20:15:57 +00:00
Henry Wilson
ab711e6942
Codechange: Replaced SmallVector::[Begin|End]() with std alternatives
2019-03-26 20:15:57 +00:00
Henry Wilson
a0f36a50e6
Codechange: Replaced SmallVector::Append() with std::vector::[push|emplace]_back()
2019-03-26 20:15:57 +00:00
Henry Wilson
f3938fdb83
Codechange: Replaced SmallVector::Reset() with std::vector::clear() + shrink_to_fit()
2019-03-26 20:15:57 +00:00
Henry Wilson
a690936ed7
Codechange: Replace SmallVector::Length() with std::vector::size()
2019-03-26 20:15:57 +00:00
Henry Wilson
bfd79e59dc
Codechange: Replace SmallVector::Clear() with std::vector::clear()
2019-03-26 20:15:57 +00:00
Peter Nelson
f6264e5212
Change: Bump savegame version for tree tile water class conversion.
2019-03-24 15:16:54 +00:00
Peter Nelson
76e77aefad
Fix #7400 : Water class for tree tiles was not converted for old saves preventing industry creation.
...
As the information is always available from the tree ground type, unconditionally
update the map array for tree tiles.
2019-03-24 15:16:54 +00:00
Henry Wilson
af7d9020a1
Codechange: Use override specifer for overriding member declarations
...
This is a C++11 feature that allows the compiler to check that a virtual
member declaration overrides a base-class member with the same signature.
Also src/blitter/32bpp_anim_sse4.hpp +38 is no longer erroneously marked
as virtual despite being a template.
2019-03-24 16:10:04 +01:00
Charles Pigott
fe448a2616
Remove: OPF
2019-03-16 22:30:11 +00:00
Patric Stout
7adae09897
Codechange: liblzma is called liblzma, how ever strange that might be
...
It is the only library we use that calls itself with 'lib' in the
name. This might be confusing, but with the arrival of cmake a lot
of these things are automated. And detection will find 'liblzma',
not 'lzma', like with 'lzo', 'zlib', ..
2019-03-11 10:16:00 +01:00
Niels Martin Hansen
e8d397e4ee
Codechange: Make a merged k-d tree index of all viewport signs
2019-03-09 20:27:11 +01:00
Niels Martin Hansen
d84b67e54d
Codechange: Make a k-d tree index of stations
2019-03-09 20:27:11 +01:00
Niels Martin Hansen
7b56be0f3a
Codechange: Make a k-d tree index of towns
2019-03-09 20:27:11 +01:00
Peter Nelson
8b1b3fd0f9
Feature: Non-rectangular sparse station catchment area.
2019-03-09 16:33:47 +00:00
PeterN
6c6971fb43
Add: Road vehicle path cache. ( #7261 )
2019-03-08 23:52:45 +00:00
PeterN
dd20ccee88
Feature: Industries with neutral stations (e.g. Oil Rig) only supply/accept cargo to/from their neutral station. ( #7234 )
...
This change is a controlled by a game setting, located under Environment ->
Industries which allows toggling the behaviour. It defaults to enabled.
"Company stations can serve industries with attached neutral stations"
When enabled, industries with attached neutral station (such as Oil Rigs) may
also be served by company-owned stations built nearby. This is the traditional
behaviour.
When disabled, these industries may only be served by their neutral station.
Any nearby company-owned stations won't be able to serve them, nor will the
neutral station serve anything else other than the industry.
2019-03-08 18:30:44 +00:00
Peter Nelson
b8a0107ad1
Change: Add configurable curve penalty for ships.
2019-03-08 16:52:08 +01:00
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.
2019-03-04 20:19:44 +01:00
frosch
a67ee02529
Change: Heading for 1.10 now ( #7319 )
2019-03-03 20:51:57 +01:00
PeterN
c0c8fb25fb
Change: Use SlErrorCorrupt() on pool index error when loading a savegame, instead of terminating. ( #7219 )
2019-02-13 09:01:49 +00:00
Gabda
37bb2c9308
Codechange: Make the style of MakeVoid calls uniform ( #7192 )
2019-02-08 23:05:25 +00:00
Peter Nelson
64878320cc
Fix #6803 : CargoMonitorID bit packing updated to handle 64 cargo types.
...
This requires a saveload bump to change the bitpacking on loading older saves.
2019-02-04 20:43:14 +00:00
Peter Nelson
0b10678050
Change: Make ships stop in locks to move up/down instead of following the slope.
2019-02-04 20:20:49 +00:00
Peter Nelson
33e3f49161
Fix #7119 : When rotating a ship, apply an additional offset to avoid movement glitch.
2019-02-04 00:19:48 +00:00
Niels Martin Hansen
faee0737e0
Codechange: Separate gamelog revision length from network revision length
2019-02-03 18:00:16 +01:00
Peter Nelson
e21ade375e
Codechange: Change from numeric to descriptive SLV enum labels for last entries.
2019-02-02 21:39:06 +00:00
Peter Nelson
0f37a683a2
Codechange: Additional type safety for saveload version variables.
2019-02-02 21:39:06 +00:00
Peter Nelson
9de12521ec
Codechange: Convert saveload numbers to enum values.
...
(This was mostly achieved with a few in-place regexes)
2019-02-02 21:39:06 +00:00
Peter Nelson
ea4ea62816
Codechange: Make saveload version upper bound exclusive, i.e. version object was removed instead of version object last appeared.
2019-02-02 21:39:06 +00:00
PeterN
23960d0f2c
Feature: Group liveries, and livery window usability enhancements. ( #7108 )
...
* Change: Replace checkbox in livery selection window with Default option in drop down selection.
This reduces clutter in the UI and allows for primary/secondary colours to independently follow the default scheme if desired.
* Feature: Add vehicle group liveries.
2019-01-31 14:57:44 +01:00
Peter Nelson
67633606b0
Codechange: Remove value mangling and field misuse in SLE_WRITEBYTE.
...
The original translation functionality hasn't been used since 2007.
2019-01-30 17:11:40 +00:00
Peter Nelson
225790892d
Change: Make ships stop and change direction slowly instead of instantly turning.
2019-01-24 20:47:40 +00:00
Peter Nelson
81330b8d6e
Change: Add path cache for ships.
2019-01-19 23:11:17 +00:00
Peter Nelson
1c725fce47
Change: Add ability to save/load std::deque<> containers.
2019-01-19 23:11:17 +00:00
Niels Martin Hansen
e66cec8f86
Add: NewGRF support for 16-in-16-out industries
2018-11-03 21:43:54 +01:00
Niels Martin Hansen
8859381d30
Add: Industries can produce and accept up to 16 different cargoes
2018-11-03 21:43:54 +01:00
Charles Pigott
e0c0394e37
Fix: Remove various dead or unnecessary assignments
2018-10-31 12:41:49 +01:00
Charles Pigott
f5b1115039
Doc: Lots and lots of doxymentation fixes
2018-10-31 12:35:54 +01:00
Michael Lutz
4b0b4e0643
Feature: [NewGRF] Increase size of persistent storage to 256.
2018-09-02 21:31:15 +02:00
Peter Nelson
bf8d7df736
Change: Extend rail types to 64 (6 bit storage)
2018-07-26 13:27:40 +01:00
Peter Nelson
5db883fbe9
Change: Move rail type bits from m3 to m8.
2018-07-26 13:27:40 +01:00
Peter Nelson
65548c37a8
Change: Extend map array by 2 bytes with a uint16.
2018-07-26 13:27:40 +01:00
Charles Pigott
2aacddd412
Codechange: lengthof is not defined for runtime-length strings, use sizeof instead
2018-06-27 22:54:46 +02:00
Charles Pigott
5f86e1a390
Codechange: Silence -Wclass-memaccess warnings with GCC8
2018-06-27 22:54:46 +02:00
PeterN
11ab3c4ea2
Change: Increase cargo type limit to 64.
2018-06-26 13:32:58 +01:00
PeterN
a07394a63a
Change: Remove direction parameter from Vehicle::UpdateDeltaXY. ( #6792 )
...
The value is either unused or always the same as this->direction.
2018-05-22 18:43:34 +01:00
PeterN
4cebebcf68
Change: Add CargoTypes type for cargo masks. ( #6790 )
2018-05-21 22:08:39 +01:00
PeterN
42b43c9983
Change: Available railtypes is always calculated on load, so no need to load value for old savegames ( #6782 )
2018-05-19 22:31:46 +01:00
Pavel Stupnikov
fef8b831a9
Change: Switch town growth rate and counter to actual game ticks ( #6763 )
2018-05-02 21:01:30 +02:00
J0an Josep
cfb8092397
Fix b4b98e5165
: Use FALLTHROUGH attribute with correct indentation.
2018-04-30 21:52:40 +02:00
Michael Lutz
7dd6027194
Codechange: Use a SmallVec for the animated tile list instead of replicating most of the logic.
2018-04-15 20:49:29 +02:00
frosch
8c458c153d
(svn r27990) -Update: Docs
2018-03-14 18:05:06 +00:00
frosch
59dd7be686
(svn r27978) -Fix [FS#6673] (r18541): Store the map variety setting in the samegame like the other mapgen settings, so restarting maps considers it. (Samu)
2018-03-11 12:11:09 +00:00
frosch
135ad9c6c9
(svn r27929) -Cleanup: Remove unused Industry::random_triggers
2017-10-25 15:38:19 +00:00
frosch
b4b98e5165
(svn r27893) -Codechange: Use fallthrough attribute. (LordAro)
2017-08-13 18:38:42 +00:00
peter1138
19d56a33e8
(svn r27822) -Feature: Vehicle Group Info: Add profits and occupancy display to group vehicle list (mtm, JGR)
2017-03-24 07:33:31 +00:00
peter1138
ff26c6393e
(svn r27793) -Fix [FS#6450]: Use of uninitialised variable cause lzo to fail. Add check for error status.
2017-03-13 22:16:44 +00:00
frosch
ca3aaf8f6d
(svn r27778) -Change [FS#6442-ish]: Convenience savegame bump to distinguish 1.7 savegames from 1.6 savegames.
2017-03-11 20:37:32 +00:00
frosch
24786a71ee
(svn r27772) -Fix [FS#5819]: If the intro game had a savegame version which contains a NewGRF configuration, then townname NewGRFs would not be activated in the game options.
2017-03-07 20:18:54 +00:00
fonsinchen
4e13285274
(svn r27770) -Fix [FS#6540]: Initialize variables in station_sl.cpp (JGR)
2017-03-05 17:06:14 +00:00
frosch
1b9139efe8
(svn r27760) -Change: Enable realisitic train and road vehicle acceleration by default.
2017-02-26 20:31:02 +00:00
frosch
fc4c4d080c
(svn r27757) -Change: Make StringID 32bit.
2017-02-26 19:41:14 +00:00
frosch
a56e2bccd0
(svn r27756) -Codechange: Add StringTab enum
2017-02-26 19:40:53 +00:00
frosch
9ad09627ad
(svn r27754) -Codechange: Add GetStringTab(), GetStringIndex() and MakeStringID() to access the structure of StringIDs.
2017-02-26 19:39:58 +00:00
frosch
4342798ff5
(svn r27709) -Fix-ish: Silence some warnings. (adf88)
2016-12-25 13:26:15 +00:00
frosch
31f046bd9b
(svn r27670) -Add: [FS#6471] Assign descriptive names to (GNU pthread) threads. (JGR)
2016-10-30 17:29:33 +00:00
frosch
117e73751c
(svn r27668) -Feature: [NewGRF] Allow composing vehicles from multiple sprites.
2016-10-16 14:59:44 +00:00
frosch
d2393b4f6c
(svn r27666) -Codechange: Pass vehicle sprites around using a struct VehicleSpriteSeq.
2016-10-16 14:57:56 +00:00
alberth
0adfb1ac6f
(svn r27653) -Fix(r27647): Rename FileOperation enum and values to SaveLoadOperation to avoid nameclash with windows compiler toolkit.
2016-09-04 16:06:50 +00:00
alberth
4001f6215e
(svn r27652) -Fix(r27650): Use the file operation being performed to set the _sl.action variable.
2016-09-04 15:10:41 +00:00
alberth
6f201ce4a8
(svn r27651) -Codechange: Introduce methods for setting the name and title of _file_to_saveload.
2016-09-04 12:58:04 +00:00
alberth
597380e099
(svn r27650) -Codechange: Replace SaveOrLoadMode by FileOperation and DetailedFileType.
2016-09-04 12:57:43 +00:00
alberth
df9a9f074a
(svn r27649) -Codechange: Introduce detailed file type enum, rebuild FiosType with it.
2016-09-04 12:57:20 +00:00
alberth
c6ac071619
(svn r27639) -Codechange: Also always set the abstract FileToSaveLoad::filetype when setting a mode.
2016-09-04 12:47:39 +00:00
alberth
2fa0fdb176
(svn r27638) -Codechange: Move FiosType enum, move and rename SetFiosType function.
2016-09-04 12:47:07 +00:00
alberth
3b8ede5ebe
(svn r27637) -Codechange: Don't use _saveload_mode for scenario loading detection.
2016-09-04 12:46:29 +00:00
alberth
087ed1e999
(svn r27636) -Codechange: Rename FileType to AbstractFileType.
2016-09-04 12:46:07 +00:00
alberth
9135f7130e
(svn r27635) -Codechange: Move FileType and FileToSaveLoad structure definitions.
2016-09-04 12:45:40 +00:00
frosch
4d1843a95e
(svn r27627) -Codechange: Deduplicate some cursor magic into SetMouseCursorBusy.
2016-08-15 18:32:48 +00:00
frosch
13a86497ea
(svn r27572) -Fix [FS#6442]: Convenience savegame bump to distinguish 1.6 savegames from 1.5 savegames.
2016-05-22 10:10:17 +00:00
frosch
0c7c0ada78
(svn r27518) -Update: Numbers
2016-03-01 20:00:22 +00:00
frosch
613212c486
(svn r27320) -Codechange: Do not drop order backups when loading a savegame for replaying.
2015-06-27 11:46:41 +00:00
frosch
a97e7bae65
(svn r27291) -Fix (r27278) [FS#6303]: Some savegame data was discarded again during loading.
2015-05-21 18:59:11 +00:00
frosch
3f55e5364e
(svn r27278) -Fix: Handle savegames with an unexpected amount of industry-builder or NewGRF entity-mapping more gracefully.
2015-05-09 10:04:50 +00:00
frosch
8ffe068c11
(svn r27243) -Fix (r26816) [FS#6285]: Duplicate frees due to pool item classes not having copy constructors.
2015-04-23 20:07:07 +00:00
frosch
6477356dd2
(svn r27192) -Change: heading for 1.6 now
2015-03-17 20:33:44 +00:00
frosch
780e595933
(svn r27178) -Fix [FS#5969]: Data race due to lazy initialisation of objects.
2015-03-07 18:27:01 +00:00
rubidium
d534c80e94
(svn r27020) -Cleanup: some coding style consistency improvements (mostly spaces)
2014-10-15 18:31:37 +00:00
rubidium
771dcf3b7b
(svn r27003) -Cleanup: fix the use of spaces and asterices "around" some comments
2014-10-12 18:41:53 +00:00
peter1138
aeda5e37e7
(svn r26978) -Fix (r23609): Typo in game script warning message.
2014-10-08 16:34:52 +00:00
rubidium
fedc1acd62
(svn r26881) -Codechange: bump the savegame version
2014-09-21 11:28:29 +00:00
rubidium
f41b55f0ff
(svn r26880) -Add: stub settings for limiting bridge and map height
2014-09-21 11:27:34 +00:00
rubidium
9daf7e749c
(svn r26879) -Codechange: remove most MayHaveBridgeAbove calls since the data is now always accessible
2014-09-21 11:24:51 +00:00