Commit Graph

2278 Commits

Author SHA1 Message Date
glx22
d8605ad18d Codechange: Replace FOR_VEHICLE_ORDERS with range-based for loops 2020-12-27 10:28:46 +00:00
Jonathan G Rennison
78b06ddc40 TBTR: Fix palette recolouring of templates
Fix group overrides affecting template image when cloning vehicle
Update template when changing company colours

Update template images on demand instead of at load
2020-12-26 09:37:26 +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
Jonathan G Rennison
8ac436f507 Add setting to scale primary industry cargo production 2020-12-21 20:47:44 +00:00
Jonathan G Rennison
f0c3a4b42e Saveload: Store NewGRF name in savegame, include in missing GRF message 2020-12-16 02:06:48 +00:00
Jonathan G Rennison
207c79a736 Saveload: Fix SLE*_CONDSSTR* macros 2020-12-16 01:31:46 +00: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
Jonathan G Rennison
840e459601 Revert "Fix 63ccb36ef3: Crash trying to load TTO/TTD savegames. (#8356)"
This is not necessary due to 5243cfd6d0.

This reverts commit c558936ec3.
2020-12-07 18:19:54 +00:00
Jonathan G Rennison
4436da7436 Saveload: Skip GetVariableAddress asserts if _DEBUG not defined 2020-12-07 18:12:33 +00:00
Jonathan G Rennison
4da3cfcf56 Merge branch 'master' into jgrpp
# Conflicts:
#	CMakeLists.txt
#	src/bootstrap_gui.cpp
2020-12-07 17:56:44 +00: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
Jonathan G Rennison
3e1ab88323 Fix NRT road/tram type conversion on savegame load from JokerPP v1.27 2020-12-01 21:10:49 +00:00
Jonathan G Rennison
270a748b64 Tracerestrict: Add time/date conditional 2020-11-27 18:43:32 +00:00
Jonathan G Rennison
2ad446369d Cache animated tile speed, use btree map for animated tiles 2020-11-26 00:19:51 +00:00
Jonathan G Rennison
1f54c8a018 Send vehicle caches to network clients to prevent desyncs due to bad GRFs 2020-11-22 11:41:50 +00:00
Jonathan G Rennison
9efeb3551a Tunnel/bridge signal simulation spacing is now a company setting 2020-11-21 17:43:55 +00:00
Jonathan G Rennison
0902243ab3 Allow changing the colour of plans 2020-11-06 22:40:02 +00:00
Jonathan G Rennison
57d47b9bae Add support for overtaking inside (non-custom) bridges/tunnels 2020-10-28 17:52:58 +00:00
Jonathan G Rennison
ffe3c769a3 Add road tile cached one way state, one way road section detection 2020-10-28 00:27:48 +00:00
Jonathan G Rennison
3a75f13874 Allow drive-through road stops to be one-way 2020-10-28 00:27:48 +00:00
Jonathan G Rennison
de5fb361ad Fix crash when saving order backups 2020-10-21 00:24:38 +01:00
Jonathan G Rennison
e1aca1ab34 Extend Order::flags to 16 bits, fixes conditional order target field size
Adjust order packing and CmdInsertOrder

See: #198
2020-10-17 17:25:44 +01:00
Jonathan G Rennison
b9f7db9c7e Jump counter is no longer a separate field 2020-10-17 17:25:44 +01:00
Jonathan G Rennison
1716083a30 Use saveload object filtering for order chunks 2020-10-17 11:27:18 +01:00
Jonathan G Rennison
bb862100af Fix operator typo in 6dd7b286 in oldloader_sl.cpp 2020-10-13 21:32:10 +01:00
Jonathan G Rennison
6dd7b2869c Increase per-vehicle order limit to 64k
See: #110
2020-10-12 23:48:54 +01:00
Jonathan G Rennison
cce6d731a1 TBTR: Delete orphaned virtual trains on client disconnection 2020-10-09 19:26:07 +01:00
Jonathan G Rennison
3b47b7b091 Plans: Improve performance of viewport plan rendering 2020-09-29 01:40:12 +01:00
Jonathan G Rennison
84dd35b685 Add drive-through train depot emulation (default off) 2020-09-26 18:08:26 +01:00
Jonathan G Rennison
4763f441f6 On load, use previous local company or first usable company
Instead of always using the first company slot
2020-09-20 17:36:36 +01:00
Jonathan G Rennison
2ea3a7d6f4 Add setting for default road/tram types, to match default rail type setting 2020-09-18 23:32:47 +01:00
Jonathan G Rennison
2d350d26db Add rate limit for object construction 2020-09-14 23:06:49 +01:00
Jonathan G Rennison
ff12051ee1 Only show ship is lost messages if lost for a significant time 2020-09-07 18:24:49 +01:00
Jonathan G Rennison
825190db0c Remove programmable pre-signal calls to DebugPrintProgram 2020-09-01 22:00:02 +01:00
Jonathan G Rennison
abb7b69861 Add slot and counter support to programmable pre-signals 2020-09-01 18:37:53 +01:00
Jonathan G Rennison
9ee8091ecc Add conditional order which tests counter value 2020-08-31 22:52:26 +01:00
Jonathan G Rennison
817bc44a3e Initial implementation of tracerestrict counter mechanism 2020-08-31 19:08:35 +01:00
Jonathan G Rennison
d2594ece79 Add routing restrictions action to control news reports about stuck trains 2020-08-29 13:38:19 +01:00
Jonathan G Rennison
beaeda2990 TBTR: Show empty and full train weights in GUI, and weight ratios if enabled 2020-08-28 18:37:50 +01:00
Jonathan G Rennison
e2de103d82 Skip GRF compatibility check when using -K/-q switches 2020-08-27 19:25:07 +01:00
Jonathan G Rennison
5b78090a61 Merge branch 'master' into jgrpp
# Conflicts:
#	CMakeLists.txt
#	src/saveload/town_sl.cpp
#	src/screenshot.h
#	src/script/api/ai/ai_date.hpp.sq
#	src/script/api/ai/ai_marine.hpp.sq
#	src/script/api/ai/ai_station.hpp.sq
#	src/script/api/game/game_date.hpp.sq
#	src/script/api/game/game_marine.hpp.sq
#	src/script/api/game/game_station.hpp.sq
#	src/script/api/game/game_window.hpp.sq
#	src/script/api/script_window.hpp
#	src/script/api/template/template_window.hpp.sq
#	src/signal.cpp
#	src/statusbar_gui.cpp
#	src/toolbar_gui.cpp
#	src/viewport.cpp
#	src/viewport_func.h
2020-08-27 18:31:09 +01:00
Jonathan G Rennison
2b9c633d50 Add leave early if any/all cargoes fully loaded timetable modes 2020-08-19 18:51:47 +01:00
Jonathan G Rennison
1fd9c929ef Increase church/stadium count field size, fix save/load
Fix too many error message
2020-08-03 20:27:12 +01:00
Jonathan G Rennison
b7118b60fe Add setting to enable multiple churches/stadiums in scenario editor
See: #177
2020-08-03 16:39:03 +01:00