Commit Graph

249 Commits

Author SHA1 Message Date
Jonathan G Rennison
f5f48e89dc Debug: Show all sprite groups for vehicles in debug window 2022-06-06 02:07:21 +01:00
Jonathan G Rennison
c3bc05f7b9 VarAction2: Add access to variable 1A to inline/fast path switch 2022-06-06 01:27:53 +01:00
Jonathan G Rennison
cf640cc0cf Debug: Add sprite group collapsing to sprite group dump window 2022-06-04 21:08:35 +01:00
Jonathan G Rennison
bbc1e28b24 VarAction2: Re-use allocated callback result sprite groups 2022-06-04 20:31:09 +01:00
Jonathan G Rennison
db7f29b07c VarAction2: Deduplicate loads from expensive uncached variables
Currently only some vehicle variables
2022-06-03 20:14:30 +01:00
Jonathan G Rennison
263a87f5da VarAction2: Add adjust types for combined (in)equality with constant 2022-06-03 14:17:15 +01:00
Jonathan G Rennison
c238bd5012 Debug: Add temp store highlighting to sprite group dump window
Add tooltip
2022-06-02 20:07:18 +01:00
Jonathan G Rennison
564d7e5029 Debug: Allow clicking to highlight group in sprite group dump window 2022-06-01 21:31:05 +01:00
Jonathan G Rennison
42e20d3d99 Industry: Determine which tiles in industry layouts are not animated
Do not set these as animated tiles for new industries
2022-06-01 01:13:46 +01:00
Jonathan G Rennison
304f88dc40 VarAction2: Fix callback result detection in AnalyseEngineCallbacks 2022-05-31 17:41:35 +01:00
Jonathan G Rennison
994dc683a2 VarAction2: Fix calculated result groups being incorrectly pruned 2022-05-30 17:24:26 +01:00
Jonathan G Rennison
b74873a2fb Debug: Show industry production sprite group registers/values 2022-05-29 23:36:04 +01:00
Jonathan G Rennison
d9358efc3d VarAction2: Handle zero adjusts simple case in callback analyser 2022-05-29 22:40:35 +01:00
Jonathan G Rennison
c38d0d0458 Debug: Show tile layout sprite group register flags/values 2022-05-29 20:50:53 +01:00
Jonathan G Rennison
862d955320 Debug: Include var 7E procedures in sprite dump output 2022-05-29 03:25:14 +01:00
Jonathan G Rennison
145536e1fd VarAction2: Detect and replace reverse subtract via temp storage 2022-05-27 03:14:07 +01:00
Jonathan G Rennison
2360b3e93e VarAction2: Detect and replace scaled reads of train/RV/ship current speed 2022-05-26 21:31:20 +01:00
Jonathan G Rennison
90a2aa57fc VarAction2: Detect and replace signed relational comparisons 2022-05-25 23:58:44 +01:00
Jonathan G Rennison
74e1a40f7c VarAction2: Remove trivially resolvable deterministic sprite groups 2022-05-25 20:29:18 +01:00
Jonathan G Rennison
012d73ef34 VarAction2: Detect equality comparisons
Remove redundant equality with 0 comparison before ternary
2022-05-25 02:23:25 +01:00
Jonathan G Rennison
7283825638 VarAction2: Detect and replace ternary operator pattern 2022-05-25 01:52:22 +01:00
Jonathan G Rennison
502980ba61 Support railtype-dependant GRF train speed limits with realistic braking
See: #389
2022-05-24 21:50:38 +01:00
Jonathan G Rennison
a3c003546b Implement extended NewGRF variable parameter support 2022-02-13 22:57:30 +00:00
Jonathan G Rennison
812933ffd4 Debug: Show names of remapped action 2 variables in sprite group dumper 2022-01-26 18:43:13 +00:00
Jonathan G Rennison
33dc6c9688 Add NewGRF VarAction2 variable remapping infrastructure 2022-01-24 02:01:09 +00:00
Jonathan G Rennison
aaf5cd1091 Debug: Fix dumping of randomised sprite groups 2021-12-03 18:55:00 +00:00
Jonathan G Rennison
da282c3ecc Merge branch 'master' into jgrpp-beta
# Conflicts:
#	.github/workflows/ci-build.yml
#	CMakeLists.txt
#	src/lang/finnish.txt
#	src/lang/french.txt
#	src/lang/korean.txt
#	src/lang/norwegian_bokmal.txt
#	src/lang/russian.txt
#	src/lang/spanish.txt
#	src/misc_gui.cpp
#	src/newgrf.cpp
2021-10-28 23:51:24 +01:00
rubidium42
55a11710a6 Codechange: convert printf DEBUG statements to fmt Debug statements 2021-06-13 12:45:45 +02:00
Peter Nelson
f1328db063 Codechange: Deduplicate ResolveReal() for resolvers that don't use real sprite groups.
This may change behaviour when multiple loading/loaded stages are provided, as the various copies checked in different orders, however only one result is expected in these cases anyway.
2021-06-12 08:05:59 +01:00
Jonathan G Rennison
6f10b01ba2 Debug: Add general mechanism to dump a sprite group chain 2021-05-21 19:35:22 +01:00
Jonathan G Rennison
7c706923f8 Fix a15e26f3: Leftover debugging statement 2021-05-20 22:07:38 +01:00
Jonathan G Rennison
55915d8d55 Elide vehicle random trigger callbacks 2021-05-18 22:14:19 +01:00
Jonathan G Rennison
a15e26f369 NewGRF: Elide unmasked vehicle callbacks where possible
This includes:
* CBID_VEHICLE_32DAY_CALLBACK
* CBID_VEHICLE_REFIT_COST
* CBID_VEHICLE_MODIFY_PROPERTY
  This is on a per-property basis

The main benefit of this is to avoid callbacks not handled by the
vehicle's current sprite group from using the full graphics chain as
the "default" branch in the callback switch.
In the case where the graphics chain is long/expensive, a lot of work
had to be done before a callback failure result was eventually returned.
2021-05-18 19:07:44 +01:00
Peter Nelson
02a62e4c98 Cleanup: Use range iterator to evaluate DeterministicSpriteGroup.
(cherry picked from commit 6b0b1bb3de)
2021-05-06 20:52:00 +01:00
Peter Nelson
f5722a999e Cleanup: Use std::vector in RandomSpriteGroup.
(cherry picked from commit 913d8a7f28)
2021-05-06 20:25:59 +01:00
Peter Nelson
a69a1d19a9 Cleanup: Use std::vector in DeterministicSpriteGroup.
(cherry picked from commit 1aeaf39954)
2021-05-06 20:21:57 +01:00
Peter Nelson
d3b9d19c5a Cleanup: Use std::vector in RealSpriteGroup.
(cherry picked from commit f785a70a2b)
2021-05-06 20:21:57 +01:00
Peter Nelson
6b0b1bb3de Cleanup: Use range iterator to evaluate DeterministicSpriteGroup. 2021-05-02 09:41:01 +01:00
Peter Nelson
913d8a7f28 Cleanup: Use std::vector in RandomSpriteGroup. 2021-05-02 09:41:01 +01:00
Peter Nelson
1aeaf39954 Cleanup: Use std::vector in DeterministicSpriteGroup. 2021-05-02 09:41:01 +01:00
Peter Nelson
f785a70a2b Cleanup: Use std::vector in RealSpriteGroup. 2021-05-02 09:41:01 +01:00
Jonathan G Rennison
b7ddd486cf Merge branch 'master' into jgrpp
# Conflicts:
#	cmake/CompileFlags.cmake
#	src/aircraft_cmd.cpp
#	src/blitter/32bpp_anim.cpp
#	src/cargopacket.cpp
#	src/cheat_gui.cpp
#	src/company_cmd.cpp
#	src/company_gui.cpp
#	src/core/pool_func.hpp
#	src/date.cpp
#	src/economy.cpp
#	src/error_gui.cpp
#	src/ground_vehicle.cpp
#	src/ground_vehicle.hpp
#	src/group_gui.cpp
#	src/industry_cmd.cpp
#	src/lang/dutch.txt
#	src/lang/french.txt
#	src/lang/german.txt
#	src/linkgraph/linkgraph_gui.cpp
#	src/linkgraph/mcf.cpp
#	src/network/network_content.cpp
#	src/network/network_server.cpp
#	src/network/network_udp.cpp
#	src/newgrf_engine.cpp
#	src/newgrf_station.cpp
#	src/order_cmd.cpp
#	src/order_gui.cpp
#	src/pathfinder/follow_track.hpp
#	src/pathfinder/yapf/yapf_common.hpp
#	src/saveload/saveload.cpp
#	src/settings_gui.cpp
#	src/station_cmd.cpp
#	src/station_kdtree.h
#	src/string_func.h
#	src/table/settings.ini
#	src/tgp.cpp
#	src/timetable_cmd.cpp
#	src/timetable_gui.cpp
#	src/toolbar_gui.cpp
#	src/town_cmd.cpp
#	src/train_cmd.cpp
#	src/train_gui.cpp
#	src/tree_gui.cpp
#	src/tunnelbridge_cmd.cpp
#	src/vehicle.cpp
#	src/vehicle_gui.cpp
#	src/video/sdl2_v.cpp
#	src/video/sdl_v.cpp
#	src/video/win32_v.cpp
#	src/viewport.cpp
#	src/viewport_sprite_sorter_sse4.cpp
#	src/window.cpp
2021-02-01 17:07:34 +00:00
Charles Pigott
9b800a96ed Codechange: Remove min/max functions in favour of STL variants (#8502) 2021-01-08 11:16:18 +01:00
Jonathan G Rennison
810bfd276e Add several NewGRF variables to vehicle image callback whitelist
Add vehicle flags to control cached image invalidation

Various refactorings
2020-08-25 01:26:44 +01:00
Jonathan G Rennison
81a1094cc8 Merge branch 'master' into jgrpp
# Conflicts:
#	src/console_cmds.cpp
#	src/date.cpp
#	src/economy.cpp
#	src/misc.cpp
#	src/newgrf_house.cpp
2020-01-29 19:32:06 +00:00
Niels Martin Hansen
c8779fb311 Feature: NewGRF callback profiling (#7868)
Adds a console command newgrf_profile to collect some profiling data about NewGRF action 2 callbacks and produce a CSV file.
2020-01-26 13:45:51 +01:00
Jonathan G Rennison
cbdd9f84d8 Merge branch 'master' into jgrpp
# Conflicts:
#	src/console_gui.cpp
#	src/lang/korean.txt
#	src/video/sdl2_v.cpp
#	src/video/sdl2_v.h
#	src/window.cpp
#	src/window_gui.h
2019-11-12 18:43:10 +00:00
S. D. Cloudt
13cc8a0cee Cleanup: Removed SVN headers 2019-11-10 17:59:20 +00:00
Jonathan G Rennison
674732cd68 Merge: Codechange: Use null pointer literal instead of the NULL macro 2019-04-11 18:14:13 +01:00
Henry Wilson
7c8e7c6b6e Codechange: Use null pointer literal instead of the NULL macro 2019-04-10 23:22:20 +02:00