Commit Graph

277 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
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
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
e584ef7bba Move NewGRF analysis to separate files 2022-08-14 22:08:31 +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
dbc55274e2 Debug: Show callback ID names in sprite dump 2022-07-31 19:28:35 +01:00
Jonathan G Rennison
9a4c31b0da VarAction2: Add last_value variants of JZ/JNZ ops 2022-07-30 23:32:23 +01:00
Jonathan G Rennison
cbc6199542 VarAction2: Add a JNZ op analogous to JZ for OR ops 2022-07-30 22:40:41 +01:00
Jonathan G Rennison
759b00262e VarAction2: Allow more than one JZ to end on the same end block adjust 2022-06-26 23:30:14 +01:00
Jonathan G Rennison
229613b06a VarAction2: Resolve jumps in advance to avoid needing to track nesting 2022-06-22 02:09:13 +01:00
Jonathan G Rennison
387e646439 VarAction2: Add group flag for whether to run jump insert pass 2022-06-20 18:46:31 +01:00
Jonathan G Rennison
3714fad790 VarAction2: Fix jump insertion using mul with bool as last value 2022-06-20 18:41:09 +01:00
Jonathan G Rennison
13fcde9ea0 VarAction2: Add a JZ operation, use for ternary style mul masking 2022-06-14 02:23:23 +01:00
Jonathan G Rennison
77963c5e64 Debug: Add misc_debug bit for extra detail in sprite group dump 2022-06-14 01:23:05 +01:00
Jonathan G Rennison
65236bacc7 Debug: Fix crash when dumping null sprite group 2022-06-13 01:07:16 +01:00
Jonathan G Rennison
34cd547325 Debug: Show if action 2s have been modified by action 6 in debug window 2022-06-11 02:34:08 +01:00
Jonathan G Rennison
6214d0d20d VarAction2: Add an ABS opcode 2022-06-11 02:33:09 +01:00
Jonathan G Rennison
4553c22cee Debug: Move DeterministicSpriteGroupAdjust dumping to separate function 2022-06-08 21:33:34 +01:00
Jonathan G Rennison
45798fa533 Debug: Add scroll to sprite number to debug window 2022-06-08 01:57:10 +01:00
Jonathan G Rennison
65407210a6 VarAction2: Allow DSGA_OP_STO_NC to be used with DSGA_TYPE_EQ/NEQ 2022-06-07 22:21:51 +01:00
Jonathan G Rennison
86324e0fda Debug: Add mode to sprite dump window to show unoptimised 2022-06-07 18:54:42 +01:00
Jonathan G Rennison
e41a5d2f63 VarAction2: Add flags to skip adjust if value is 0 or LSB set 2022-06-06 23:04:45 +01:00
Jonathan G Rennison
9b0a7ac85e Debug: Don't unnecessarily show numeric value of adjust operator 2022-06-06 22:06:52 +01:00
Jonathan G Rennison
7a61b5d820 VarAction2: Cache refit capacity callback results which depend only on cargo 2022-06-06 18:34:30 +01:00
Jonathan G Rennison
a9ca89d0f8 VarAction2: Move cb_result_found to a flags var in AnalyseCallbackOperation 2022-06-06 17:44:47 +01:00
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