Assorted token golf in rope logic #25

Merged
pyrex merged 7 commits from kistaro/chameleonic:rope_golf into main 2023-01-03 01:06:57 +00:00

7 Commits

Author SHA1 Message Date
a177660344
Slightly more efficient fix to level_tug_crate. 2023-01-02 16:26:30 -08:00
49284d44a8
Fix syntax errors. 2023-01-02 16:25:18 -08:00
b2dbd9ec60
_calc_push golf redux
Removed unnecessary variable declarations and conditional cases by using an "assume, alternate, verify assumption" pattern and reusing ax0/ay0 when they would never be referenced again.
2023-01-02 16:22:10 -08:00
cb36faac23
Fix syntax errors.
This also saves a few tokens and cycles by turning level:tug_crate into a free function. It's not _pretty_ but it's the least bad option.
2023-01-02 16:04:42 -08:00
78f0a96529
calc_push op loop golf
Reorganizing conditionals saves tokens here.
2023-01-02 15:58:23 -08:00
d792831370
can_move also takes a rope operation table
this is approximately token-neutral but performance-saving. each function parameter makes its call cost worse. When can_move is called inside a loop, we already have a table and we unpack to call can_move; moving the unpack into can_move saves us marshalling cost. It requires us to construct a table in a different spot (where we were not previously doing so) but that spot is not in a loop.
2023-01-02 15:57:27 -08:00
b1cc74fe3b
Remove unused vars, convert tug_crate arg to table
The tug_crate conversion is for performance. `foreach(tbl, predefined_func)` is substantially faster than a standard `for` loop using the `all` iterator. However, if the function inside the foreach is defined inline, it's much slower due to closure-construction overhead (even though nothing is being closed over). Converting `tug_crate` to take a table as an argument allows foreach to feed right into it, and it also naturally suggests a rewrite a few lines down to get rid of duplicative listing of `mx0,my0,dmx,dmy`, saving several tokens.

I'm going to take a look at can_move to see if it's worth making iits mx0,my0,dmx,dmy arguments into a table as well.
2023-01-02 15:35:10 -08:00