PICO-8 game: you're a chameleon with rope physics
Go to file
Kistaro Windrider 4562128fa6 Assorted token golf in rope logic (#25)
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.

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.

calc_push op loop golf

Reorganizing conditionals saves tokens here.

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.

_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.

Fix syntax errors.

Slightly more efficient fix to level_tug_crate.

Reviewed-on: pyrex/chameleonic#25
Co-authored-by: Kistaro Windrider <kistaro@gmail.com>
Co-committed-by: Kistaro Windrider <kistaro@gmail.com>
2023-01-03 01:06:57 +00:00
chameleonic.p8 Assorted token golf in rope logic (#25) 2023-01-03 01:06:57 +00:00
README.md Initial commit 2022-12-17 12:16:18 -08:00

EAT BUGS, SPACE SCUM