Eevee (Evelyn Woods)
323ed3ee18
Refactor to using cells with fixed slots
...
This better matches CC2 behavior and also makes some very common
operations, like grabbing a cell's actor or terrain, way faster.
It also allows me to efficiently implement CC2's layer order when
checking for collisions; thin walls are checked before terrain, and
actors only afterwards. The upshot is that bowling balls no longer
destroy stuff on the other side of a thin wall!
I also did some minor optimizing, mostly by turning loops over an entire
cell's contents into checks for a single layer; Chromium now performs a
bulk test about 30% faster.
Downsides of this change:
- All kinds of stuff may have broken!
- It'll be a little difficult to ever emulate MSCC's curious behavior
when stacking terrain on top of items or other terrain. But not
impossible.
- It'll be far more difficult to emulate buggy Lynx (or maybe it's just
Tile World?) behavior where some combination of cloners and teleports
allow a ton of monsters to accumulate in a few cells. I guess I
wasn't planning on doing that anyway.
2021-01-03 17:19:27 -07:00
Eevee (Evelyn Woods)
cff756597c
Fix a few places where two tiles on the same layer could coexist in a cell
2021-01-03 15:18:53 -07:00
Eevee (Evelyn Woods)
fe7731efe7
Fix minor issues: ghosts don't affect popwalls, voodoo tiles shouldn't crash, on_bump is unused
2021-01-03 14:06:41 -07:00
Eevee (Evelyn Woods)
c6c3ff2d71
Fix losing slide mode when teleporting on a yellow teleport you just dropped
2021-01-03 14:06:04 -07:00
Eevee (Evelyn Woods)
0f1afbb877
Teach format_duration to handle negative durations
2021-01-03 13:48:23 -07:00
Eevee (Evelyn Woods)
9cf2b82c8e
Change the bulk test results into a (slightly more compact) table
2021-01-03 13:48:11 -07:00
Eevee (Evelyn Woods)
d1646532d5
Draw the countdown frames for the time bomb, and improve its artwork
2021-01-03 13:20:28 -07:00
Eevee (Evelyn Woods)
0e1bd91075
Add a bunch more sound effects
2021-01-03 13:07:15 -07:00
Eevee (Evelyn Woods)
6446a4654b
Fix the order of operations for slide mode, again
...
This fixes an obscure bug where you could redirect a block that was in
the process of sliding off of ice onto floor, because its slide mode had
not yet been cleared.
2021-01-02 23:47:49 -07:00
Eevee (Evelyn Woods)
b08750696e
Implement replay-compatible blob transmogrifying
2021-01-02 19:50:03 -07:00
Eevee (Evelyn Woods)
ed6a98392d
Fix the fix for bowling balls destroying players
2021-01-02 17:42:39 -07:00
Eevee (Evelyn Woods)
656d124c89
Fix a crash when blowing up a pink button
2021-01-02 17:42:07 -07:00
Eevee (Evelyn Woods)
6c2602246e
Allow rovers to enter popwalls and fake walls
2021-01-02 17:16:27 -07:00
Eevee (Evelyn Woods)
c9bcc92bdf
Prevent ghosts from toggling swivels
2021-01-02 16:59:20 -07:00
Eevee (Evelyn Woods)
6d519cfa0a
Handle a player blowing themselves up with dynamite
2021-01-02 12:23:53 -07:00
Eevee (Evelyn Woods)
69d62f8266
Fix collision masks for dynamite and bowling balls
2021-01-02 12:19:52 -07:00
Eevee (Evelyn Woods)
a657682035
Disable zlibbed level URLs since they'll break gliderbot
2021-01-01 22:26:29 -07:00
Eevee (Evelyn Woods)
29df283f80
Add support for zlib-compressed levels in URLs
2021-01-01 22:09:49 -07:00
Eevee (Evelyn Woods)
e277a1363e
Add a transmogrify sparkle
2021-01-01 21:27:10 -07:00
Eevee (Evelyn Woods)
a41baee3fc
Fix this fix to player fixing whatever
2021-01-01 20:18:03 -07:00
Eevee (Evelyn Woods)
2673f7f9f8
Don't switch players when a non-active player exits
2021-01-01 20:10:00 -07:00
Eevee (Evelyn Woods)
d77b25c7c1
Wildly guess about how blob transmogrification might use the PRNG
2021-01-01 20:09:44 -07:00
Eevee (Evelyn Woods)
c55a415099
Support drag and drop with a single CCL or ZIP
2021-01-01 18:25:20 -07:00
Eevee (Evelyn Woods)
1b55e82061
Add CC2LP1; streamline the splash page, moving most of the text to the GitHub wiki
2021-01-01 18:18:50 -07:00
Eevee (Evelyn Woods)
1b48c291c9
Implement the pgchip clone block ice cloning hack
2021-01-01 17:30:50 -07:00
Eevee (Evelyn Woods)
aac1e09c72
Add support for pgchip's magic number and ice block encoding
2021-01-01 17:11:11 -07:00
Eevee (Evelyn Woods)
0d35274d6a
Add support for loading CC2 ZIPs, and parse out C2G game titles
2021-01-01 15:26:33 -07:00
Eevee (Evelyn Woods)
f5b1b4a83d
Make multi-hints readable by CC2
2021-01-01 14:46:05 -07:00
Eevee (Evelyn Woods)
044c08c3fc
Add support for downloading an entire pack as a zipped C2G
2021-01-01 14:44:48 -07:00
Eevee (Evelyn Woods)
83793603d3
Improve interactions between turn-based mode and tic navigation
2021-01-01 13:10:48 -07:00
Eevee (Evelyn Woods)
adac6774a4
Remove duplicate code in Tileset drawing
2021-01-01 12:47:54 -07:00
Eevee (Evelyn Woods)
c8686f9d66
Copy a level's title to the right places in the editor so it shows in the level browser
2021-01-01 12:44:20 -07:00
Eevee (Evelyn Woods)
4454970564
Split up the Steam loop into begin/finish parts to match what turn-based mode expects
2020-12-31 18:01:40 -07:00
Eevee
f0cd4d3c5a
Merge pull request #22 from Patashu/master
...
fix turn-based mode
2020-12-31 17:23:24 -07:00
Eevee (Evelyn Woods)
18b9fd6d4d
Add support for a floating selection
2020-12-31 14:49:37 -07:00
Eevee (Evelyn Woods)
2183e7de3c
Fix some copy/paste errors in editor tooltips
2020-12-30 18:50:17 -07:00
Eevee (Evelyn Woods)
130b917c81
Lazily load the level in the player and editor, so an unplayable level doesn't break the editor too
2020-12-30 18:21:21 -07:00
Eevee (Evelyn Woods)
93d77ea297
Add support for "rotating" through letter tiles. Fixes #21
2020-12-30 17:57:07 -07:00
Eevee (Evelyn Woods)
2109e4f4fa
Fix paths to rotation buttons
2020-12-30 17:50:34 -07:00
Eevee (Evelyn Woods)
15a37457de
Add physical rotation buttons
2020-12-30 17:47:29 -07:00
Eevee (Evelyn Woods)
fb2f79823c
Stub out a selection tool for the editor
2020-12-30 17:28:41 -07:00
Eevee (Evelyn Woods)
d700561c0f
Add a cursor to the editor
2020-12-30 11:52:27 -07:00
Eevee (Evelyn Woods)
09d220b2a3
Improve ergonomics of the level props dialog a bit
2020-12-30 11:30:50 -07:00
Eevee (Evelyn Woods)
48803b1483
Add tooltip help for most tiles in the editor
2020-12-30 11:08:38 -07:00
Eevee (Evelyn Woods)
de53582d47
Fix perception and use it to implement the xray eye
2020-12-29 20:42:53 -07:00
Eevee (Evelyn Woods)
746300a514
Add support for encoding thin walls/canopies; add them to the editor; add support for additive drawing
2020-12-29 20:12:54 -07:00
Eevee (Evelyn Woods)
b9a311a18c
Merge thin walls into a single tile; split "overlay" layer into correct CC2 parts
2020-12-29 19:29:22 -07:00
Timothy Stiles
f6a79456e9
fix turn-based mode
2020-12-30 13:01:01 +11:00
Eevee (Evelyn Woods)
1c5f63b61b
Add a new experimental tile: sand
2020-12-29 17:08:51 -07:00
Eevee (Evelyn Woods)
6b0bb9cb3d
Prevent pushing a block that's already moving due to a slide push
2020-12-29 12:30:08 -07:00
Eevee (Evelyn Woods)
c475500bdb
Add in a single-tic delay after a failed teleport
2020-12-29 11:42:41 -07:00
Eevee (Evelyn Woods)
be769b7dc8
Clean up doppelganger collision; monsters block doppelgangers, but players and dopps don't block each other
2020-12-29 11:34:51 -07:00
Eevee (Evelyn Woods)
819a2e2203
Make actors bonk on ice even if they weren't already sliding
2020-12-29 10:16:10 -07:00
Eevee (Evelyn Woods)
a32b29976e
Fix occasionally displaying times as 1:010
2020-12-29 10:15:57 -07:00
Eevee (Evelyn Woods)
6c99752f37
Allow the hook to block monster movement at decision time
2020-12-29 09:03:40 -07:00
Eevee (Evelyn Woods)
41ab804f79
Prevent blocks from pushing sliding blocks, except frame blocks pushing dirt blocks
2020-12-29 08:30:55 -07:00
Eevee (Evelyn Woods)
63f09283ea
Make actors explode when starting the level on a bomb
2020-12-29 07:21:18 -07:00
Eevee (Evelyn Woods)
0561e15d0a
Move hooking to decision time while fixing the swivel following problem
2020-12-29 07:04:55 -07:00
Eevee (Evelyn Woods)
2c1d047f4b
Don't let animations block actors with helmets
2020-12-28 15:03:40 -07:00
Eevee (Evelyn Woods)
f54edf8692
Fix the way force floors alter actors' movement when flipping under CC2 rules
2020-12-28 15:03:25 -07:00
Eevee (Evelyn Woods)
f6f83a45f1
Add a teleport flash
2020-12-28 14:21:28 -07:00
Eevee (Evelyn Woods)
1e79704f70
Add more experimental tiles: gates and a skeleton key (also some tileset touchups)
2020-12-28 14:00:47 -07:00
Eevee (Evelyn Woods)
fa47c28136
Fix some omissions with saving stats for custom level packs
2020-12-28 10:20:08 -07:00
Eevee (Evelyn Woods)
dee46b77df
Fix black buttons to /always/ separate horizontal and vertical wires
2020-12-28 06:53:19 -07:00
Eevee (Evelyn Woods)
b72e20a4a5
Round the bonus down when halving it
2020-12-27 18:26:49 -07:00
Eevee (Evelyn Woods)
a2914cc291
In Lynx update mode, only tick an actor's cooldown after an extra move if that move succeeded
2020-12-27 17:32:55 -07:00
Eevee (Evelyn Woods)
d10cba7935
Make bowling balls not detonate if bumped by an actor who can't enter the cell
2020-12-27 09:33:02 -07:00
Eevee (Evelyn Woods)
2c9fbbba50
Make ghosts bonk on ice corners too
2020-12-27 09:32:37 -07:00
Eevee (Evelyn Woods)
b9f31b4170
Attempt to fix the swap button flickering like mad
2020-12-27 08:51:12 -07:00
Eevee (Evelyn Woods)
1fc8e35843
Run on_ready in reverse order, mostly so initial RFF directions are correct
2020-12-27 08:33:03 -07:00
Eevee (Evelyn Woods)
66ca5f5fff
Prevent pickup up a fifth tool when unable to drop one (because it's a yellow teleport and you're not on floor)
2020-12-27 08:05:38 -07:00
Eevee (Evelyn Woods)
f30b9b34dd
Prevent bumping tiles in a cell that's blocked by thin walls
2020-12-27 08:05:03 -07:00
Eevee (Evelyn Woods)
bf952433f1
Allow anything to pull blocks with the hook
2020-12-27 07:41:11 -07:00
Eevee (Evelyn Woods)
6ab3ff9b0b
Fix treating a tile as wired if it had an adjacent wire with a tunnel running under it
2020-12-27 07:32:28 -07:00
Eevee (Evelyn Woods)
8211da6cc3
Make gravel and dirt also block doppelganger Cerise
2020-12-27 07:28:38 -07:00
Eevee (Evelyn Woods)
4e5b2f02d9
Make yellow tanks remember a yellow button press made while they were sliding
2020-12-27 07:20:33 -07:00
Eevee (Evelyn Woods)
934a2ec1fa
Switch railroad tracks when an actor with the RR sign makes a legal move
2020-12-27 07:08:23 -07:00
Eevee (Evelyn Woods)
d4fab4fba2
Restart a "waiting" level when changing compat mode; adjust player state when navigating with debug panel
2020-12-27 07:07:55 -07:00
Eevee (Evelyn Woods)
46a84e80b8
Fix some visual bugs with tracks in the editor
2020-12-27 07:07:23 -07:00
Eevee (Evelyn Woods)
f798bd2c9c
Move blobs' slime-spreading to happen instantly, not on arrival (and fix some typos)
2020-12-27 06:17:52 -07:00
Eevee (Evelyn Woods)
6470575a7b
Populate movement_cooldown for lit dynamite; guard against NaNs; check for moving blocks in bump mode
2020-12-27 05:41:03 -07:00
Eevee (Evelyn Woods)
c7815ba841
Move teleporter overriding to decision time; treat teleporting as a kind of slide; decouple speed from sliding
2020-12-27 05:40:06 -07:00
Eevee (Evelyn Woods)
adb0c4c869
Fix the search radius for orange buttons
2020-12-26 04:34:24 -07:00
Eevee (Evelyn Woods)
059a523347
Make ghosts erase fire even if they just got the boots from the same cell
2020-12-26 04:23:23 -07:00
Eevee (Evelyn Woods)
8fbd454059
Fix rendering in CC2 mode
2020-12-26 04:08:54 -07:00
Eevee (Evelyn Woods)
30b4b89a95
Change traps to not eject their contents when opened by wire
2020-12-26 03:59:21 -07:00
Eevee (Evelyn Woods)
a45a0138b9
Fix flipping force floors with something on them
...
Using `this` here doesn't work because the type just changed!
2020-12-26 03:58:40 -07:00
Eevee (Evelyn Woods)
ab22c6ff3f
Fix actors trying to reverse when bonking on normal force floors
2020-12-26 03:41:58 -07:00
Eevee (Evelyn Woods)
9c2809be29
Fix interpolation after the tic -> frame change
2020-12-26 03:41:35 -07:00
Eevee (Evelyn Woods)
0500518537
Move sliding back to arrive time, but force floor bonking to movement time
2020-12-26 03:15:00 -07:00
Eevee (Evelyn Woods)
0bb3f78a33
Give flame jets their own mini-pass
2020-12-26 02:03:39 -07:00
Eevee (Evelyn Woods)
09c1976608
Make the bulk tester more aggressive (any more shows no further time gain)
2020-12-26 02:02:24 -07:00
Eevee (Evelyn Woods)
86bf90ee89
Don't let the last player walk back out of the exit
2020-12-24 10:18:45 -07:00
Eevee (Evelyn Woods)
a0b34217b4
Implement the goofy CC2 "open trap" tile
2020-12-24 09:44:29 -07:00
Eevee (Evelyn Woods)
019f6a78bc
Move hook-pulling code to fix several ordering issues
2020-12-24 09:29:25 -07:00
Eevee (Evelyn Woods)
7b54f88981
Let dynamite blow up even wired floor
2020-12-24 09:20:14 -07:00
Eevee (Evelyn Woods)
d3067173d6
Don't search for an exit direction from the red teleporter you entered
2020-12-24 08:01:43 -07:00
Eevee (Evelyn Woods)
afe68e1b20
Fix fire to not kill ghosts, again
2020-12-24 07:57:18 -07:00
Eevee (Evelyn Woods)
1727df4e38
Allow ghosts to pass through chip sockets at any time
2020-12-24 07:08:12 -07:00
Eevee (Evelyn Woods)
effa166c67
Prevent bestowal of red keys
2020-12-24 07:06:04 -07:00