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
f2b40f40aa
Codechange: Replace SmallPair with std::pair.
...
std::pair is already the smallest possible pair, and it already handles non-POD types correctly.
2020-05-21 20:02:34 +02:00
Charlène
2196cd3cf8
Fix: OpenBSD endianness detection
2020-02-11 13:01:45 +00:00
Jonathan G Rennison
150dfba95b
Codechange: Remove std::function from Pool iteration wrapper
...
Add a separate template wrapper for filtered iteration
2020-01-07 09:00:45 +00:00
glx
e3c75a30ba
Fix: unused variable warnings
2019-12-21 20:13:03 +01:00
glx
ae532008ff
Cleanup: remove FOR_ALL_ITEMS
2019-12-21 20:13:03 +01:00
glx
68f22134cb
Add: Allow iteration of pools in 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
Gabda
652fb40652
Codechange: Performance improvement in k-d tree FindNearest()
2019-10-08 08:53:19 +02:00
JMcKiern
04f659e768
Fix: Some typos found using codespell
2019-09-29 21:27:32 +01:00
Nikolas Nyby
28e11623bd
Codechange: math functions - use cpp-style casts
2019-08-31 20:27:56 +01:00
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
2019-08-17 21:45:20 +01:00
glx
26aa3b8623
Remove: grow() helper function
2019-05-04 19:50:53 +01:00
Charles Pigott
9e19a5f93e
Remove: (Simple)TinyEnumT
2019-04-29 17:40:22 +01:00
peter1138
66cd32a252
Codechange: Use std::underlying_type for DECLARE_POSTFIX_INCREMENT.
2019-04-21 22:31:12 +01:00
peter1138
ac1e1a272f
Fix: Replace int with std::underlying_type in DECLARE_ENUM_AS_BIT_SET.
...
This fixes 64 bit uses of this macro.
2019-04-21 22:31:12 +01:00
glx
ebd4f32d15
Cleanup: remove core/sort_func.hpp as it's not used anymore
2019-04-18 21:49:34 +02:00
glx
9195f2337a
Codechange: use std::vector for _resolutions
2019-04-18 21:49:34 +02:00
Michael Lutz
38729297f9
Codechange: No need for AutoFreePtr if there's std::unique_ptr.
2019-04-15 22:52:50 +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
glx
410b81537c
Fix 801cbea9c
: operator< is not always the best idea
...
Also removes unused and anyway broken SmallMap::SortByKey() function.
2019-04-13 21:05:25 +02:00
glx
801cbea9cc
Codechange: use std::sort() for all std::vector types
2019-04-13 12:49:18 +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
c7b9987d08
Codechange: Switch DropDownList to directly use std::vector, thus making AutoDeleteSmallVector obsolete.
...
DropDownListItem are strongly managed using std::unique_ptr to ensure leak-free handling. Appropriate use
of move-semantics make intent a lot clearer than parameter comments and allows the compiler to generate
copy-free code for most situations.
2019-04-09 22:45:15 +02:00
Michael Lutz
05f4e73608
Codechange: Replace custom mutex code with C++11 mutex'es.
...
A conforming compiler with a valid <mutex>-header is expected.
Most parts of the code assume that locking a mutex will never fail unexpectedly,
which is generally true on all common platforms that don't just pretend to
be C++11. The use of condition variables in driver code is checked.
2019-04-06 11:27:39 +02:00
Michael Lutz
21d9e87b46
Fix #7165 : Const overload SmallMap::Contains(key) compared wrong types.
...
Const and non-const Find() have different return types.
2019-03-28 00:04:28 +00:00
stormcone
ee260e4704
Fix #7165 : SmallMap::Erase(key) does not work correctly
2019-03-28 00:04:28 +00:00
glx22
66dd7c3879
Fix: MSVC warnings ( #7423 )
2019-03-28 00:09:33 +01:00
Charles Pigott
ed9005690a
Fix #7421 : Don't (directly) dereference std::vector::end() in SmallMap
2019-03-27 06:31:49 +00:00
Henry Wilson
03ca3190c9
Codechange: Use range-based for-loop in Auto[Free|Delete]SmallVector
2019-03-26 20:15:57 +00: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
6570f7989f
Codechange: Declare SmallVector as an alias for std::vector
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
297fd3dda3
Codechange: Replaced SmallVector::Include() with include()
2019-03-26 20:15:57 +00:00
Henry Wilson
2bc2de9034
Codechange: Replaced SmallVector::Find() with std::find()
2019-03-26 20:15:57 +00:00
Henry Wilson
e0c58bf5ee
Codechange: Removed SmallVector::Insert()
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
ca2f33c6d0
Codechange: Replaced SmallVector::Erase() with std::vector::erase()
2019-03-26 20:15:57 +00:00
Henry Wilson
097328c3d7
Codechange: Replaced SmallVector::Get() const with std alternatives
2019-03-26 20:15:57 +00:00
Henry Wilson
aa7ca7fe64
Codechange: Replaced SmallVector::Get(n) non-const with std::vector::data() + n
2019-03-26 20:15:57 +00:00
Henry Wilson
bc7dcaffca
Codechange: Removed SmallVector::Assign()
2019-03-26 20:15:57 +00:00
Henry Wilson
5795f66d2e
Codechange: Replaced SmallVector::Contains() with std::find() pattern
2019-03-26 20:15:57 +00:00
Henry Wilson
b1f5119d3a
Codechange: Replaced SmallVector::ErasePreservingOrder(pos, count) with std::vector::erase()
2019-03-26 20:15:57 +00:00
Henry Wilson
9b5cc73f3e
Codechange: Replaced SmallVector::ErasePreservingOrder(it, count) with std::vector::erase()
2019-03-26 20:15:57 +00:00
Henry Wilson
8460952240
Codechange: Replaced SmallVector::Find() const with suitable alternatives
...
The use of std::none_of in network/core/host.cpp is driven by the non-const
comparison operator use by NetworkAddress. A future commit should address
the const_casts in that class to ensure const-correctness.
2019-03-26 20:15:57 +00:00
Henry Wilson
81315939b9
Codechange: Replaced SmallVector::Find() non-const with std::find()
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
bad2c2154b
Codechange: Replaced SmallVector::Resize() with std::vector::resize()
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
56ae855dc2
Codechange: Removed SmallVector::operator[]
2019-03-26 20:15:57 +00:00
Henry Wilson
9cba6f7193
Codechange: Replaced SmallVector::Compact() with std::vector::shrink_to_fit()
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
Henry Wilson
4b349c0f90
Codechange: [core] Implement SmallVector using std::vector
...
The public and protected interface to SmallVector are unchanged
SmallVector now requires that items be default constructible
This isn't an issue since some contained items were previously created
uninitialized.
Temporary default constructors are added to the following structs
- SmallPair
- SmallStackItem
- GRFPresence
Where vector<bool> is required, transition immediately to std::vector
to avoid returning proxy object references.
2019-03-26 20:15:57 +00:00
Patric Stout
72c5f2b3ee
Remove: DOS support
...
In 10 years there was no active development on DOS. Although it
turned out to still work, the FPS was very bad. There is little
interest in the current community to look into this.
Further more, we like to switch to c++11 functions for threads,
which are not implemented by DJGPP, the only current compiler
for DOS.
Additionally, DOS is the only platform which does not support
networking. It is the reason we have tons of #ifdefs to support
disabling networking.
By removing DOS support, we can both use c++11 functions for threads,
and remove all the code related to disabling network. Sadly, this
means we have to see DOS go.
Of course, if you feel up for the task, simply revert this commit,
and implement stub c++11 functions for threads and stub functions
for networking. We are more than happy to accept such Pull Request.
2019-03-19 23:22:51 +01:00
Niels Martin Hansen
d7522e5e8f
Codechange: Add a k-d tree generic data structure
2019-03-09 20:27:11 +01:00
Patric Stout
f52e5a4d61
Fix: warnings when compiling with DJGPP
...
This was most likely broken for months, if not years.
2019-03-05 22:22:00 +01:00
Patric Stout
1c5ea33099
Fix: warnings when compiling for a recent version of Haiku
...
This might break older Haiku versions, but it is hard to tell.
2019-03-05 22:22:00 +01:00
Patric Stout
ad30d04b5e
Codechange: removed some left-behind __NDS__ references
2019-03-05 22:03:00 +01:00
Patric Stout
7784d77713
Remove: MorphOS / AmigaOS support
...
In 10 years there is no commit to change how MorphOS works, and we
have no active maintainer for it. It is unlikely it works in its
current state (but not impossible).
With the arrival of SDL2 (and removal of SDL), MorphOS is no longer
support. There is an SDL2 port for MorphOS, but it is not maintained
by upstream SDL2, and nobody can currently test it out.
If anyone wants to re-add MorphOS, please do (revert this patch,
fix the problems, and create a Pull Request). If you need any help
doing so, let us know! It is not that we don't like MorphOS, it is
that we don't have anyone fixing the problems :(
2019-03-05 22:03:00 +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
btzy
9d75600ac0
Fix: Round up deltas for smooth scrolling, so target will be reached
2019-01-20 19:43:56 +00:00
nikolas
4fc1b2baae
Fix: Grammar in a bunch of comments ( #7054 )
2019-01-13 07:38:48 +00:00
glx
c540d72445
Fix: [Win32] WIN32 may not be defined, always prefer the compiler predefined macro _WIN32
2018-12-27 18:09:16 +01:00
frosch
18ca3e8660
Fix: [NewGRF] Make VA2 operator 11 (ror) behave well-defined when rotating by 0 bits.
2018-10-31 14:35:46 +01:00
Charles Pigott
f5b1115039
Doc: Lots and lots of doxymentation fixes
2018-10-31 12:35:54 +01:00
Charles Pigott
5f86e1a390
Codechange: Silence -Wclass-memaccess warnings with GCC8
2018-06-27 22:54:46 +02:00
Michael Lutz
9959cd9522
Fix 0165fe1
: Native OSX doesn't have a __BYTE_ORDER macro but defines a differently named macro.
2018-04-30 23:57:28 +02:00
Matthijs Kooijman
fa87212a76
Fix: Some spelling errors in printed messages
2018-04-30 13:38:58 +02:00
Patric Stout
0165fe1283
Codechange: remove endian_check in favour of __BYTE_ORDER macro (Rubidium) ( #6762 )
2018-04-29 19:01:28 +02:00
Charles Pigott
86012e10ea
Fix: Remove need to instantiate SmallStack's pool object by making it a singleton method
2018-04-21 16:28:50 +02:00
Michael Lutz
4851feb102
Codechange: Add functions to insert and extract an element at a specific position in a SmallVec.
2018-04-15 20:49:29 +02:00
alberth
bc08fe7c5f
(svn r27641) -Codechange: Fold the _fios_items file list vector into its own class.
2016-09-04 12:50:22 +00:00
michi_cc
2b8bb12d62
(svn r27381) -Fix: Warnings due to C++11 requirements for explicit narrowing conversions in initializer lists.
2015-08-10 20:24:13 +00:00
peter1138
cea2c3490a
(svn r27049) -Fix (r26482): Fix compilation with --enable-desync-debug.
2014-10-28 11:32:19 +00:00
alberth
8fe8765aaa
(svn r26685) -Fix: Tighten parameter bound checks on GSCargoMonitor functions, and return -1 on out-of-bound parameters.
2014-07-12 17:04:14 +00:00
rubidium
ab964a6cee
(svn r26651) -Fix: make sure an abs is used that supports int64 when using abs on those variables
2014-06-17 19:01:45 +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
46590e112e
(svn r26343) -Fix: Rewrite SmallStack so that it doesn't use a pool and is reentrant.
2014-02-16 16:25:18 +00:00
frosch
858e80f3dd
(svn r26333) -Fix: Compilation without static_assert.
2014-02-11 20:34:48 +00:00
fonsinchen
e37656f2e5
(svn r26331) -Fix: some inconsistencies regarding link graph (job) IDs.
2014-02-10 20:13:07 +00:00
rubidium
b3e93d6520
(svn r26057) -Fix: a number of possibly uninitialised variables
2013-11-23 13:12:19 +00:00
fonsinchen
fe550c2db3
(svn r25893) -Fix: Document RandomRange and change misleading parameter name 'max' in random functions.
2013-10-20 14:48:08 +00:00
fonsinchen
1ed478d433
(svn r25889) -Codechange: Add forgotten file.
2013-10-20 13:46:14 +00:00
fonsinchen
e21ae34878
(svn r25887) -Fix: Ignore NULL pointers in delete operator of PoolItem.
2013-10-20 13:35:35 +00:00
rubidium
13855f0a09
(svn r25705) -Fix: a number of typos (inspired by 90c920601c84975acb694f3673e2beb08b013753)
2013-08-09 18:43:44 +00:00
michi_cc
de097dd989
(svn r25685) -Codechange: [OSX] Use non-deprecated functions for byte swapping.
2013-08-05 20:37:29 +00:00
frosch
18ae9c78bc
(svn r25402) -Fix-ish: Prevent copying of BasePool and WindowDesc, since they register in static vectors.
2013-06-15 15:06:22 +00:00
fonsinchen
4fd57501bb
(svn r25348) -Add: multimap implementation with guaranteed order between equal keys
2013-06-09 12:52:11 +00:00
fonsinchen
dfad8317aa
(svn r25347) -Add: function for deterministic approximate division
2013-06-09 12:50:33 +00:00
rubidium
b0a2818ed0
(svn r25256) -Add: small matrix type (like vector, but for matrices) (fonsinchen)
2013-05-19 14:06:26 +00:00
frosch
5cd5aca98c
(svn r25043) -Change [FS#3764]: Only display subtypes in the refit GUI which are available for all selected vehicles. Also add a generic list item to refit while keeping the subtypes of individual vehicles.
2013-02-24 16:43:24 +00:00
rubidium
6be79c424d
(svn r24959) -Doc [FS#5459]: that certain parameters need to be within certain boundaries
2013-02-02 20:18:41 +00:00
planetmaker
c24374f99c
(svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by Eagle_rainbow)
2013-01-08 22:46:42 +00:00
alberth
732e073261
(svn r24776) -Doc: Typo fixes, additions, and additional dots collected from various sources (including Eagle_rainbow, MinchinWeb)
2012-12-01 13:12:39 +00:00
frosch
dcfb2af871
(svn r24741) -Add: Const-methods to SmallMap.
2012-11-14 22:50:30 +00:00
frosch
f9819c6645
(svn r24448) -Fix [FS#5255]: Copy constructor and assignment operator cannot be implicit template specialisations. (adf88)
2012-07-29 20:02:25 +00:00
frosch
e1617a3d10
(svn r24275) -Codechange: Make SmallVector::FindIndex() const.
2012-05-25 20:52:11 +00:00