Jonathan G Rennison
a3c003546b
Implement extended NewGRF variable parameter support
3 years ago
Jonathan G Rennison
812933ffd4
Debug: Show names of remapped action 2 variables in sprite group dumper
3 years ago
Jonathan G Rennison
33dc6c9688
Add NewGRF VarAction2 variable remapping infrastructure
3 years ago
Jonathan G Rennison
aaf5cd1091
Debug: Fix dumping of randomised sprite groups
3 years ago
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
3 years ago
rubidium42
55a11710a6
Codechange: convert printf DEBUG statements to fmt Debug statements
3 years ago
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.
3 years ago
Jonathan G Rennison
6f10b01ba2
Debug: Add general mechanism to dump a sprite group chain
3 years ago
Jonathan G Rennison
7c706923f8
Fix a15e26f3: Leftover debugging statement
3 years ago
Jonathan G Rennison
55915d8d55
Elide vehicle random trigger callbacks
3 years ago
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.
3 years ago
Peter Nelson
02a62e4c98
Cleanup: Use range iterator to evaluate DeterministicSpriteGroup.
...
(cherry picked from commit 6b0b1bb3de
)
3 years ago
Peter Nelson
f5722a999e
Cleanup: Use std::vector in RandomSpriteGroup.
...
(cherry picked from commit 913d8a7f28
)
3 years ago
Peter Nelson
a69a1d19a9
Cleanup: Use std::vector in DeterministicSpriteGroup.
...
(cherry picked from commit 1aeaf39954
)
3 years ago
Peter Nelson
d3b9d19c5a
Cleanup: Use std::vector in RealSpriteGroup.
...
(cherry picked from commit f785a70a2b
)
3 years ago
Peter Nelson
6b0b1bb3de
Cleanup: Use range iterator to evaluate DeterministicSpriteGroup.
3 years ago
Peter Nelson
913d8a7f28
Cleanup: Use std::vector in RandomSpriteGroup.
3 years ago
Peter Nelson
1aeaf39954
Cleanup: Use std::vector in DeterministicSpriteGroup.
3 years ago
Peter Nelson
f785a70a2b
Cleanup: Use std::vector in RealSpriteGroup.
3 years ago
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
4 years ago
Charles Pigott
9b800a96ed
Codechange: Remove min/max functions in favour of STL variants ( #8502 )
4 years ago
Jonathan G Rennison
810bfd276e
Add several NewGRF variables to vehicle image callback whitelist
...
Add vehicle flags to control cached image invalidation
Various refactorings
4 years ago
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
5 years ago
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.
5 years ago
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
5 years ago
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
5 years ago
Jonathan G Rennison
674732cd68
Merge: Codechange: Use null pointer literal instead of the NULL macro
6 years ago
Henry Wilson
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
6 years ago
Jonathan G Rennison
e735c1a51a
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/aircraft_cmd.cpp
# src/autoreplace_cmd.cpp
# src/pathfinder/follow_track.hpp
# src/pathfinder/yapf/yapf_rail.cpp
# src/saveload/afterload.cpp
# src/saveload/saveload.cpp
# src/script/api/ai/ai_station.hpp.sq
# src/script/api/game/game_station.hpp.sq
# src/script/api/script_station.hpp
# src/track_func.h
# src/vehicle_base.h
6 years ago
frosch
18ca3e8660
Fix: [NewGRF] Make VA2 operator 11 (ror) behave well-defined when rotating by 0 bits.
6 years ago
Charles Pigott
b5028efc1f
Fix: Protect against a few out of bounds or uninitialised usage errors
6 years ago
Charles Pigott
f5b1115039
Doc: Lots and lots of doxymentation fixes
6 years ago
Jonathan G Rennison
385a2552e9
Merge branch 'enhanced_viewport_overlay' into jgrpp
7 years ago
frosch
55a503e6f2
(svn r27989) -Fix (r27985): VA2 optimisation failed in various special cases:
...
- nvar=0 is meant to return the calculated result.
- Missing references resolve to NULL and got identified with the default result.
- Missing 'break' broke overlapping cases.
- Splitting into non-overlapping cases could result in more than 256 cases.
7 years ago
frosch
a537fd5d0e
(svn r27989) -Fix (r27985): VA2 optimisation failed in various special cases:
...
- nvar=0 is meant to return the calculated result.
- Missing references resolve to NULL and got identified with the default result.
- Missing 'break' broke overlapping cases.
- Splitting into non-overlapping cases could result in more than 256 cases.
7 years ago
frosch
07d841d0ef
(svn r27985) -Codechange: Convert VA2 switches into ones with non-overlapping ranges, sort them and resolve them using binary search. Speedup sprite resolving by about 7 percent.
7 years ago
frosch
30f73d907a
(svn r27985) -Codechange: Convert VA2 switches into ones with non-overlapping ranges, sort them and resolve them using binary search. Speedup sprite resolving by about 7 percent.
7 years ago
frosch
d9d669dcf8
(svn r27984) -Codechange: Make ScopeResolver constructors/destructors inlineable. Speedup sprite resolving by about 8 percent.
7 years ago
frosch
29dca1be3b
(svn r27984) -Codechange: Make ScopeResolver constructors/destructors inlineable. Speedup sprite resolving by about 8 percent.
7 years ago
frosch
7c406f0d9d
(svn r27983) -Codechange: Reduce complexity of VA2 add-div/mod adjustments
7 years ago
frosch
2a3d0cea50
(svn r27983) -Codechange: Reduce complexity of VA2 add-div/mod adjustments
7 years ago
frosch
4fc178aebd
(svn r27982) -Codechange: Reduce invocations of GetGlobalVariable. Speedup sprite resolving by about 3 percent.
7 years ago
frosch
aee8ffc73b
(svn r27982) -Codechange: Reduce invocations of GetGlobalVariable. Speedup sprite resolving by about 3 percent.
7 years ago
Jonathan G Rennison
740e4543c3
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/industry_cmd.cpp
7 years ago
frosch
82ae414e8d
(svn r27928) -Fix: [NewGRF] While executing random triggers, var 5F should include the new triggers.
...
-Fix: [NewGRF] Reset used random triggers only after all A123 chains have been resolved, so that all RA2 in all chains can test the shard triggers. This also includes multiple RA2 in the same A123 chain.
-Fix: [NewGRF] Industry random triggers are stored per tile, even when randomising the shared random bits of the parent industry.
7 years ago
frosch
ffdcbb8f21
(svn r27928) -Fix: [NewGRF] While executing random triggers, var 5F should include the new triggers.
...
-Fix: [NewGRF] Reset used random triggers only after all A123 chains have been resolved, so that all RA2 in all chains can test the shard triggers. This also includes multiple RA2 in the same A123 chain.
-Fix: [NewGRF] Industry random triggers are stored per tile, even when randomising the shared random bits of the parent industry.
7 years ago
Jonathan G Rennison
d733955d33
Add road vehicle state to UpdateViewport()->GetImage() var whitelist.
...
Minor refactoring of var check.
8 years ago
Jonathan G Rennison
7b56097f50
Merge branch 'master' into jgrpp
...
# Conflicts:
# config.lib
# src/linkgraph/demands.cpp
# src/linkgraph/mcf.cpp
# src/linkgraph/refresh.cpp
# src/linkgraph/refresh.h
# src/smallmap_gui.cpp
8 years ago
Jonathan G Rennison
3ac94e97c8
Cache the result of GetImage() in Vehicle::UpdateViewport() where possible.
...
Sprite number is not cached if callback is made, or a variable access
outside a whitelist occurs.
Invalidate cached sprite number when direction or cargo changes,
or vehicle is marked dirty.
8 years ago
frosch
2782993dd7
(svn r27600) -Fix: [NewGRF] shift-and-add-divide/modulo varadjusts use signed division/modulo.
8 years ago