Jonathan G Rennison
86324e0fda
Debug: Add mode to sprite dump window to show unoptimised
2 years ago
Jonathan G Rennison
74681f70d9
VarAction2: Replace inverted OR of bools with AND where this makes sense
2 years ago
Jonathan G Rennison
e41a5d2f63
VarAction2: Add flags to skip adjust if value is 0 or LSB set
2 years ago
Jonathan G Rennison
236cbc4e83
VarAction2: Optimise SAR same as SHR on unsigned inputs
2 years ago
Jonathan G Rennison
9d04ebcc90
VarAction2: Remove operations which always do nothing when applied to 0
2 years ago
Jonathan G Rennison
26dd84f931
VarAction2: Optimise OR followed by XOR of same constant
2 years ago
Jonathan G Rennison
3aa0ccb97b
VarAction2: Optimise OR which always produces 1
2 years ago
Jonathan G Rennison
4b7288902d
VarAction2: Consider industry tile vars 0x60 to 0x62 to be expensive
2 years ago
Jonathan G Rennison
3a5902ff77
VarAction2: Reduce cost of RecursiveDisallowDSEForProcedure
...
Fix disallowing DSE also disallowing store simplification
2 years ago
Jonathan G Rennison
c342b4219b
NewGRF: Use per-GRF text ID map in GetGRFStringID
2 years ago
Jonathan G Rennison
3ea1e27fdd
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/lang/german.txt
# src/lang/korean.txt
# src/lang/spanish_MX.txt
# src/lang/traditional_chinese.txt
# src/script/api/script_airport.cpp
# src/script/api/script_rail.cpp
2 years ago
Jonathan G Rennison
f05b5163f7
Fix narrowing converison warning
2 years ago
Jonathan G Rennison
bbc1e28b24
VarAction2: Re-use allocated callback result sprite groups
2 years ago
Jonathan G Rennison
e5ef888e80
VarAction2: Add variable/constant copy store simplifification
2 years ago
Jonathan G Rennison
a93b3948b5
VarAction2: Don't change variable masks when disabling procedure DSE
2 years ago
Jonathan G Rennison
3d42e36f89
VarAction2: Avoid pessimising DSE when a procedure returns a callback result
2 years ago
Jonathan G Rennison
9e414a1eab
VarAction2: Move optimiser flags to a separate setting
2 years ago
Jonathan G Rennison
6ff8066d34
VarAction2: Ensure that a temp store var can't reference a clobbered var
2 years ago
Jonathan G Rennison
fe6ab0f19f
VarAction2: Don't track var copies through temporary storage for stations
...
Except for copies of other temporary storage vars
2 years ago
Jonathan G Rennison
db7f29b07c
VarAction2: Deduplicate loads from expensive uncached variables
...
Currently only some vehicle variables
2 years ago
Jonathan G Rennison
6a17f00a27
VarAction2: Ensure dead store elimination doesn't break variable 0x7B
2 years ago
Jonathan G Rennison
813146a78f
VarAction2: Track value inferences through temp storage in more cases
2 years ago
Jonathan G Rennison
ccef3646db
VarAction2: Set value inferences for operations with eq/neq adjust types
2 years ago
Jonathan G Rennison
04a9c73ec2
VarAction2: Combine RST, UMIN sequence to load with neq 0 adjust
2 years ago
Jonathan G Rennison
9116ca6bb0
VarAction2: Track copies of variables through temporary storage
2 years ago
Jonathan G Rennison
263a87f5da
VarAction2: Add adjust types for combined (in)equality with constant
2 years ago
Jonathan G Rennison
1e52e51ce1
VarAction2: Add bounds checks to previous adjust accesses
2 years ago
Jonathan G Rennison
c2fde53495
VarAction2: Remove redundant variable loads
2 years ago
Jonathan G Rennison
30f74c5b74
Sprite group: Add getter function for sprite groups
2 years ago
Jonathan G Rennison
d8f9641dc9
VarAction2: Remove redundant UMIN operation on already boolean values
2 years ago
Jonathan G Rennison
3c9201ebd5
VarAction2: Fix dead store elimination through randomised sprite groups
2 years ago
Jonathan G Rennison
e0581db2a1
VarAction2: Remove dead stores and redundant adjusts in more cases
2 years ago
Jonathan G Rennison
d71e38446e
Improve performance of string lookup in AddGRFString
2 years ago
Jonathan G Rennison
994dc683a2
VarAction2: Fix calculated result groups being incorrectly pruned
2 years ago
Jonathan G Rennison
b102e912b3
VarAction2: Allow temp store dead store elmination with industries
2 years ago
Jonathan G Rennison
4687a8c2a4
VarAction2: Prune group ranges for constant values
...
Add chicken bit to control pruning
2 years ago
Jonathan G Rennison
c894d5a86d
VarAction2: Add temp store dead store elimination
2 years ago
Niels Martin Hansen
5587e439a9
Fix: Industry layouts with zero regular tiles should be invalid
2 years ago
Jonathan G Rennison
a8eb52f061
VarAction2: Simplify handling of first adjustment
2 years ago
Jonathan G Rennison
a5f5be2dff
VarAction2: Detect ops on previous constants which become loads
2 years ago
Jonathan G Rennison
1fec7d6ddb
VarAction2: Detect and replace reversed commutative op via temp storage
2 years ago
Jonathan G Rennison
762cfb3df7
VarAction2: Track temp store loads with respect to stores
2 years ago
Jonathan G Rennison
6953150898
VarAction2: Move optimisation pass to separate function
...
Simplify logic slightly
2 years ago
Jonathan G Rennison
145536e1fd
VarAction2: Detect and replace reverse subtract via temp storage
2 years ago
Jonathan G Rennison
dd2e1fe956
Add chicken bit to disable varact2 optimisation
2 years ago
Jonathan G Rennison
f0a0b2e200
VarAction2: Flatten constant operations on constants in more cases
2 years ago
Jonathan G Rennison
2360b3e93e
VarAction2: Detect and replace scaled reads of train/RV/ship current speed
2 years ago
Jonathan G Rennison
13cdef2a2d
VarAction2: Remove redundant and with 1 when value is already bool
2 years ago
Jonathan G Rennison
2f09eff404
VarAction2: Convert boolean, invert sequence to ternary
2 years ago
Jonathan G Rennison
90a2aa57fc
VarAction2: Detect and replace signed relational comparisons
2 years ago
Jonathan G Rennison
e732042785
VarAction2: Remove redundant constant loads
2 years ago
Jonathan G Rennison
74e1a40f7c
VarAction2: Remove trivially resolvable deterministic sprite groups
2 years ago
Jonathan G Rennison
3b5eede3fc
VarAction2: Detect and replace operations which always produce 0
2 years ago
Jonathan G Rennison
a21ae12c90
VarAction2: Remove redundant temp store loads after stores
2 years ago
Jonathan G Rennison
db5be4f92e
VarAction2: Remove constant parameter redirection via variable 7B
2 years ago
Jonathan G Rennison
da629e4cfa
VarAction2: Replace divs of powers of 2 with shifts where possible
2 years ago
Jonathan G Rennison
fad5973161
VarAction2: Reduce shift right and mask ops into adjust shift/mask
2 years ago
Jonathan G Rennison
012d73ef34
VarAction2: Detect equality comparisons
...
Remove redundant equality with 0 comparison before ternary
2 years ago
Jonathan G Rennison
7283825638
VarAction2: Detect and replace ternary operator pattern
2 years ago
Jonathan G Rennison
e3df522111
VarAction2: Delete provably zero adjustment operations
2 years ago
Jonathan G Rennison
a54416afbc
Add GRF variable to use extra station names even when default names remain
2 years ago
Jonathan G Rennison
34af4844d1
Merge branch 'master' into jgrpp
3 years ago
Michael Lutz
08a5478a93
Add: [NewGRF] Map seed as global variable.
...
This is useful to provide a feature-agnostic, stable random value that differs between games.
One of the possible uses is to e.g. use it to create pseudo-random regions for towns or industries.
3 years ago
Jonathan G Rennison
cb573a1523
Add road stop property to set cost multipliers
3 years ago
Jonathan G Rennison
5a2cc24190
Fix initialisation of new road stop specs
3 years ago
Jonathan G Rennison
2cbbae16da
Add roadstop GRF properties to set bridge heights and disallowed pillars
3 years ago
Jonathan G Rennison
23c472d2a0
Add support for road stop animation, availability callback
...
Add animation, callback mask, general flags properties
Add animation frame variables
3 years ago
Jonathan G Rennison
67d967befb
Add road stop support for Action 3 cargo type groups
3 years ago
Jonathan G Rennison
a69eba31fe
Implement NewGRF road stop root sprite group selection
3 years ago
Jonathan G Rennison
1084bb8566
Initial support for NewGRF road stops (bus and lorry stops)
3 years ago
Jonathan G Rennison
a3c003546b
Implement extended NewGRF variable parameter support
3 years ago
Jonathan G Rennison
d4f11eca42
Add NewGRF object properties to set viewport map mode/smallmap tile type
3 years ago
Jonathan G Rennison
a03453da49
Add properties to set lighthouse and transmitter generation amounts
3 years ago
Jonathan G Rennison
eeef6c485a
Initial implementation of NewGRF feature ID mapping
3 years ago
Jonathan G Rennison
ef3916928c
Initial abstraction around NewGRF feature ID bytes
3 years ago
Jonathan G Rennison
bb848331b6
Fix narrowing conversion warning
3 years ago
Jonathan G Rennison
33dc6c9688
Add NewGRF VarAction2 variable remapping infrastructure
3 years ago
Jonathan G Rennison
1a4b0d6ecf
Prevent NewGRFs from using Action A to replace internal sprites
3 years ago
Jonathan G Rennison
b807f0d50e
Fix setting of object spec ctrl flags from GRF properties
3 years ago
Jonathan G Rennison
24fb390e9f
Add NewGRF object property for flood-resistance
...
Does not imply being able to be built on water
3 years ago
Jonathan G Rennison
d9116106ca
Add NewGRF object property for new edge foundation mode
3 years ago
Jonathan G Rennison
ff714b7648
Add setting to disable "big GUI" NewGRFs
3 years ago
Jonathan G Rennison
924ffb013f
Add NewGRF object property/flag to use land as object ground sprite
...
This handles variable ground densities, snow/desert, etc.
3 years ago
Jonathan G Rennison
906fde15c7
Move NewGRF extension feature/property lists to separate file
3 years ago
Jonathan G Rennison
0691b25e17
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/saveload/afterload.cpp
3 years ago
Jonathan G Rennison
fc58ed9987
Codechange: Remove CargoSpec::multipliertowngrowth which is unused ( #9701 )
...
This is set by cargo property 19.
This property is only implemented in TTDPatch.
3 years ago
Jonathan G Rennison
3d4261a33a
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/order_cmd.cpp
# src/table/settings/news_display_settings.ini
3 years ago
Michael Lutz
95c8467670
Fix 65cbde4b: Writing to uninitialized string when loading a currency NewGRF.
3 years ago
Jonathan G Rennison
9e946d4c5d
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/command.cpp
# src/console_cmds.cpp
# src/group_gui.cpp
# src/lang/catalan.txt
# src/lang/czech.txt
# src/lang/danish.txt
# src/lang/greek.txt
# src/lang/hungarian.txt
# src/lang/irish.txt
# src/lang/japanese.txt
# src/lang/luxembourgish.txt
# src/lang/norwegian_bokmal.txt
# src/lang/romanian.txt
# src/lang/russian.txt
# src/lang/serbian.txt
# src/lang/simplified_chinese.txt
# src/lang/slovak.txt
# src/lang/spanish_MX.txt
# src/lang/swedish.txt
# src/lang/tamil.txt
# src/lang/traditional_chinese.txt
# src/lang/turkish.txt
# src/lang/ukrainian.txt
# src/lang/vietnamese.txt
# src/network/network.cpp
# src/network/network_client.cpp
# src/network/network_func.h
# src/network/network_internal.h
# src/network/network_server.cpp
# src/network/network_server.h
# src/saveload/afterload.cpp
# src/saveload/newgrf_sl.cpp
# src/saveload/saveload.h
# src/script/script_instance.cpp
# src/toolbar_gui.cpp
# src/toolbar_gui.h
# src/vehicle_gui.cpp
# src/widgets/rail_widget.h
# src/widgets/vehicle_widget.h
# src/window.cpp
3 years ago
Jonathan G Rennison
3ef1a0943b
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/lang/chuvash.txt
# src/lang/czech.txt
# src/lang/english_AU.txt
# src/lang/english_US.txt
# src/lang/german.txt
# src/lang/japanese.txt
# src/lang/korean.txt
# src/lang/latvian.txt
# src/lang/russian.txt
# src/tree_gui.cpp
# src/vehicle.cpp
3 years ago
Jonathan G Rennison
faf32200cf
Merge tag '12.0-beta1' into jgrpp-beta
...
# Conflicts:
# CMakeLists.txt
# bin/ai/CMakeLists.txt
# bin/game/CMakeLists.txt
# src/build_vehicle_gui.cpp
# src/console_cmds.cpp
# src/core/overflowsafe_type.hpp
# src/fios.cpp
# src/lang/english.txt
# src/lang/german.txt
# src/lang/korean.txt
# src/lang/polish.txt
# src/network/core/game_info.cpp
# src/network/core/game_info.h
# src/network/core/tcp_game.cpp
# src/network/core/tcp_game.h
# src/network/network.cpp
# src/network/network_client.cpp
# src/network/network_client.h
# src/network/network_coordinator.cpp
# src/network/network_gui.cpp
# src/network/network_server.cpp
# src/network/network_server.h
# src/newgrf_engine.cpp
# src/openttd.cpp
# src/rev.cpp.in
# src/settings_type.h
# src/train.h
# src/train_cmd.cpp
3 years ago
Jonathan G Rennison
f764fcfb1f
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/console_cmds.cpp
# src/debug.cpp
# src/lang/vietnamese.txt
# src/network/core/address.cpp
# src/network/core/address.h
# src/network/core/config.h
# src/network/core/os_abstraction.cpp
# src/network/core/os_abstraction.h
# src/network/core/tcp_listen.h
# src/network/core/udp.cpp
# src/network/core/udp.h
# src/network/network.cpp
# src/network/network_client.cpp
# src/network/network_gamelist.cpp
# src/network/network_server.cpp
# src/network/network_udp.cpp
# src/newgrf.cpp
# src/openttd.cpp
# src/saveload/saveload.h
# src/settings.cpp
# src/settings_table.cpp
# src/settings_type.h
# src/table/settings/network_settings.ini
3 years ago
Jonathan G Rennison
f54d69a60a
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/economy.cpp
# src/elrail.cpp
# src/graph_gui.cpp
# src/linkgraph/linkgraph_gui.cpp
# src/network/core/game_info.cpp
# src/newgrf_station.cpp
# src/saveload/saveload.cpp
# src/settings.cpp
# src/station_cmd.cpp
# src/station_gui.cpp
# src/strings_func.h
# src/table/settings/network_settings.ini
# src/table/settings/settings.ini
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
Jonathan G Rennison
544da99102
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/cargopacket.h
# src/lang/korean.txt
# src/linkgraph/linkgraph.h
# src/linkgraph/linkgraphjob.h
# src/linkgraph/linkgraphschedule.h
# src/network/network_admin.h
# src/network/network_func.h
# src/network/network_server.cpp
# src/network/network_server.h
# src/order_base.h
# src/rail_cmd.cpp
# src/saveload/company_sl.cpp
# src/saveload/depot_sl.cpp
# src/saveload/economy_sl.cpp
# src/saveload/linkgraph_sl.cpp
# src/saveload/map_sl.cpp
# src/saveload/newgrf_sl.cpp
# src/saveload/order_sl.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/saveload/signs_sl.cpp
# src/saveload/station_sl.cpp
# src/saveload/subsidy_sl.cpp
# src/saveload/town_sl.cpp
# src/saveload/vehicle_sl.cpp
# src/script/api/script_object.cpp
# src/settings.cpp
# src/string.cpp
# src/string_func.h
# src/table/CMakeLists.txt
# src/table/settings/settings.ini
# src/viewport_sprite_sorter_sse4.cpp
3 years ago
Jonathan G Rennison
4042480806
Merge branch 'jgrpp' into jgrpp-beta
...
# Conflicts:
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/table/company_settings.ini
# src/table/currency_settings.ini
# src/table/gameopt_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
# src/table/settings.ini
# src/table/win32_settings.ini
# src/table/window_settings.ini
3 years ago
PeterN
f5561ac212
Fix #9562 : Handle case of invalid action2 with zero results. ( #9564 )
...
(cherry picked from commit 7e70ead396
)
3 years ago
Jonathan G Rennison
fd605e3cf3
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# .github/workflows/commit-checker.yml
# src/company_cmd.cpp
# src/console_cmds.cpp
# src/crashlog.cpp
# src/lang/english.txt
# src/lang/german.txt
# src/lang/indonesian.txt
# src/lang/japanese.txt
# src/lang/korean.txt
# src/lang/swedish.txt
# src/linkgraph/linkgraphjob.cpp
# src/linkgraph/mcf.cpp
# src/network/core/tcp.cpp
# src/network/core/tcp.h
# src/network/core/tcp_game.h
# src/network/core/udp.h
# src/network/network.cpp
# src/network/network_admin.cpp
# src/network/network_admin.h
# src/network/network_chat_gui.cpp
# src/network/network_client.cpp
# src/network/network_client.h
# src/network/network_func.h
# src/network/network_internal.h
# src/network/network_server.cpp
# src/network/network_server.h
# src/newgrf.cpp
# src/newgrf_station.cpp
# src/order_gui.cpp
# src/rail_cmd.cpp
# src/saveload/saveload.cpp
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/settings_type.h
# src/station_cmd.cpp
# src/stdafx.h
# src/table/currency_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
# src/table/settings.ini
# src/terraform_cmd.cpp
# src/timetable_gui.cpp
# src/train_cmd.cpp
# src/tree_cmd.cpp
# src/water_cmd.cpp
3 years ago
PeterN
7e70ead396
Fix #9562 : Handle case of invalid action2 with zero results. ( #9564 )
3 years ago
Charles Pigott
16dca0d7bc
Codechange: Object non-zero dimension check was not logically correct
3 years ago