Commit Graph

53303 Commits

Author SHA1 Message Date
Jonathan G Rennison
602ac717aa Initial support for DSE and jumping over procedures with child groups 2022-08-25 00:22:41 +01:00
Jonathan G Rennison
916441d943 VarAction2: Avoid turning skip on zero/LSB set sequences into jumps 2022-08-24 00:58:08 +01:00
Jonathan G Rennison
0bec49fa56 Skip sound effects handling earlier if effects volume is 0 2022-08-23 20:36:22 +01:00
Jonathan G Rennison
4fd8634ff9 VarAction2: Remove trivially redundant special stores 2022-08-23 18:37:28 +01:00
Jonathan G Rennison
d9aa2d6138 VarAction2: Extend group cast to bool range elision
Handle opposite arrangement of range and default group
2022-08-22 21:52:15 +01:00
Jonathan G Rennison
df6b9d355f VarAction2: Simplify store, load with bool/invert, ternary sequence in DSE 2022-08-22 21:45:21 +01:00
Jonathan G Rennison
173f867e1a VarAction2: Save calculated_result in shadow group struct 2022-08-22 00:13:23 +01:00
Jonathan G Rennison
14de8c7f34 VarAction2: Add quick exit case to last-level callback groups if possible 2022-08-22 00:13:23 +01:00
Jonathan G Rennison
35063b2176 VarAction2: Ensure group pruning can't break var 1C via random groups 2022-08-22 00:13:23 +01:00
Jonathan G Rennison
3676b0912d VarAction2: Fix inference handling when pruning ops prior to RST 2022-08-22 00:13:23 +01:00
Jonathan G Rennison
c60e3fed99 VarAction2: Do not re-assign error group
When pruning ranges of group with constant result
2022-08-22 00:13:23 +01:00
Jonathan G Rennison
0bcdaba0f9 VarAction2: Add constructor for AnalyseCallbackOperation 2022-08-22 00:13:23 +01:00
Jonathan G Rennison
a0c894d067 Debug: Add a visual indicator in indent for var 0x7E procedure calls 2022-08-22 00:13:23 +01:00
Jonathan G Rennison
680e074a5f Debug: Fix sprite dumping of top level default group 2022-08-21 15:24:16 +01:00
Jonathan G Rennison
8688840e24 Viewport route step markers are now variable size to match font/text
See: #410
2022-08-20 11:33:04 +01:00
Jonathan G Rennison
8c0eca28a8 Recalculated route step sprite sizes when changing zoom levels 2022-08-20 10:03:42 +01:00
Jonathan G Rennison
84da7ad7b6 Add setting to show group hierarchy in vehicle names
See: #405
2022-08-18 19:42:13 +01:00
Jonathan G Rennison
e335c86e77 VarAction2: Elide group ranges as cast to bool when result is already bool 2022-08-18 19:25:33 +01:00
Jonathan G Rennison
b04d1295cd VarAction2: Infer that unsigned mod 2 results in 0 or 1 2022-08-18 19:24:01 +01:00
Jonathan G Rennison
ad00f5032a Add a setting to show the introduction year for train wagons 2022-08-18 18:34:21 +01:00
Jonathan G Rennison
ad9e1a8fb3 Increase value of MAX_SL_OPS constant 2022-08-14 22:10:03 +01:00
Jonathan G Rennison
e584ef7bba Move NewGRF analysis to separate files 2022-08-14 22:08:31 +01:00
Jonathan G Rennison
9c18835bd0 Move ProcessDeterministicSpriteGroupRanges into newgrf.cpp 2022-08-14 21:48:24 +01:00
Jonathan G Rennison
0f8dc86120 Remove setting string now unused since 309f1b47 2022-08-14 10:57:18 +01:00
Jonathan G Rennison
309f1b47d2 Only apply sprite_zoom_min setting when suitable zoom levels are available
Only discard sprite zoom levels when a suitable higher zoom level is
defined in the same colour mode

See: https://github.com/OpenTTD/OpenTTD/issues/9804
2022-08-14 10:45:06 +01:00
Jonathan G Rennison
27316f70ec Create enum for sprite cache control flag bits 2022-08-14 09:39:14 +01:00
Jonathan G Rennison
4e5e85e7aa Debug: Allow inspecting industry specs before industry is built
Add debug box to industry chains window
2022-08-10 21:35:33 +01:00
Jonathan G Rennison
c58b94c376 VarAction2: DSE: Allow setting skip on zero flag on skippable procedures 2022-08-10 19:39:12 +01:00
Jonathan G Rennison
4601a1bfc6 Move NewGRF optimiser functions into a separate file
Create a new header for shared definitions with newgrf.cpp
2022-08-10 19:06:59 +01:00
Jonathan G Rennison
3d59c961a6 VarAction2: Avoid group variable tracking coupling through shared procs
Output dependencies on a procedure shouldn't propagate into input
dependencies on unrelated call sites in different groups
2022-08-10 18:30:09 +01:00
Jonathan G Rennison
00e32162a1 VarAction2: Allow DSE to remove procedure calls 2022-08-10 00:04:32 +01:00
Jonathan G Rennison
30ecdfe140 VarAction2: Allow jumping over constant stores to special registers
Insert suitable store(s) after the end block
2022-08-09 22:53:50 +01:00
Jonathan G Rennison
3a8bd7a589 VarAction2: Allow jumps to skip over procedure calls if possible 2022-08-09 22:10:45 +01:00
Jonathan G Rennison
9ed5b6e65c Debug: Change sprite group indentation handling 2022-08-09 21:53:43 +01:00
Jonathan G Rennison
41f2e92f5c VarAction2: Add a NOOP operator 2022-08-09 21:36:03 +01:00
Jonathan G Rennison
57de709309 VarAction2: Add bit for whether variable 1C is an output 2022-08-09 18:56:47 +01:00
Jonathan G Rennison
e143ab06d8 VarAction2: Track which temp stores may be overwritten by procedures
Instead of treating procedures as an unpredictable store
2022-08-09 18:37:00 +01:00
Jonathan G Rennison
06cc71b6c5 VarAction2: Mark suitable AND ops as jump insertion candidates 2022-08-09 18:34:01 +01:00
Jonathan G Rennison
aa49e17e39 Remove road vehicles during load which are uncorrectably invalid 2022-08-07 20:00:40 +01:00
Jonathan G Rennison
bf618a3584 Debug: Add more stats to dump map and veh stats console commands 2022-08-07 19:34:03 +01:00
Jonathan G Rennison
613c90e78f Fix GetClosestIndustry with invalid industry type when using cache 2022-08-07 00:11:52 +01:00
Jonathan G Rennison
bc920df63a Fix excessive braking for slopes with realistic braking
Unit conversion issue between potential and kinetic energies
2022-08-04 21:43:22 +01:00
Jonathan G Rennison
0bddf96f7f VarAction2: Set variable for ABS op to avoid unused read from var 0 2022-08-01 18:27:21 +01:00
Jonathan G Rennison
f52e6cb8f2 Version: Committing version data for tag: jgrpp-0.48.1 2022-08-01 00:40:52 +01:00
Jonathan G Rennison
dc69957dcc VarAction2: Cache industry distances in CBID_INDUSTRY_LOCATION 2022-07-31 23:45:40 +01:00
Jonathan G Rennison
0e1e892ca8 VarAction2: Use masking for sub-parts of industry var 67
Ensure that distance and count can't overflow on very large maps
2022-07-31 23:45:40 +01:00
Jonathan G Rennison
0a99440166 Debug: Always use head for vehicle debug window name in caption 2022-07-31 20:25:32 +01:00
Jonathan G Rennison
dbc55274e2 Debug: Show callback ID names in sprite dump 2022-07-31 19:28:35 +01:00
Jonathan G Rennison
7af568f0f0 VarAction2: Handle case where expensive vars are only conditionally read
Within a JZ_LV and in prior DSGAF_SKIP_ON_ZERO op
2022-07-31 00:16:40 +01:00
Jonathan G Rennison
9a4c31b0da VarAction2: Add last_value variants of JZ/JNZ ops 2022-07-30 23:32:23 +01:00