Commit Graph

247 Commits

Author SHA1 Message Date
Eevee (Evelyn Woods)
c7012f2565 Allow simple item bestowal when facing the level edge, too 2021-02-04 20:34:53 -07:00
Eevee (Evelyn Woods)
d5fd7b546d Fix ghosts to not detonate green mines 2021-02-01 22:46:08 -07:00
Eevee (Evelyn Woods)
b87ce730f2 Don't blow up players that start on mines by default; fixes CCLP4 #38 2021-01-25 16:54:09 -07:00
Eevee (Evelyn Woods)
884d6d9164 Restore manually-saved doppelganger behavior, to make it work with undo 2021-01-25 12:29:18 -07:00
Eevee (Evelyn Woods)
0c774d343e Fix several renderer interpolation bugs 2021-01-22 09:12:02 -07:00
Eevee (Evelyn Woods)
134270e3e3 Add a couple CC1 compat flags 2021-01-20 14:45:30 -07:00
Eevee (Evelyn Woods)
75d7691925 Add some more sound effects 2021-01-20 13:42:27 -07:00
Eevee (Evelyn Woods)
1e38ccdc30 Fix door collision to act like dirt and not check has_inventory (fixes #29) 2021-01-17 23:21:12 -07:00
Eevee (Evelyn Woods)
32a5bc31bb Fix dynamite leaving fire under actors beneath canopies (fixes #27) 2021-01-16 20:56:16 -07:00
Eevee (Evelyn Woods)
6a2d6d608d Disable animation on inactive red teleporters and transmogrifiers (fixes #28) 2021-01-16 20:53:30 -07:00
Eevee (Evelyn Woods)
bb7c468174 Finish special-ization of tileset defs; add depressed versions of buttons 2021-01-13 03:33:43 -07:00
Eevee (Evelyn Woods)
a2ec070a32 Play an explosion sound when a flame jet destroys something 2021-01-10 14:45:00 -07:00
Eevee (Evelyn Woods)
c60158cc47 Ensure ghosts can never drown 2021-01-08 15:47:39 -07:00
Eevee (Evelyn Woods)
30c17c0c8b Fix undo failure after being killed by a cloner; ensure the failure reason is assigned to the right player 2021-01-08 15:16:25 -07:00
Eevee (Evelyn Woods)
560fd93c8b Reveal popdown floors when there's an item on them, too 2021-01-08 15:01:30 -07:00
Eevee (Evelyn Woods)
f35da9cc2b Finally populate the options dialog, with volume controls and tileset selection 2021-01-06 19:04:28 -07:00
Eevee (Evelyn Woods)
3d0142310e Spawn an explosion when destroying an actor in fire 2021-01-05 22:23:47 -07:00
Eevee (Evelyn Woods)
b5b7ccbc46 Move lit dynamite to the actor layer so it destroys itself again 2021-01-05 21:04:20 -07:00
Eevee (Evelyn Woods)
aed96c8e41 Add a bunch of minor rendering stuff
- Added the active player background

- Added bomb fuses (though LL doesn't use them)

- Added CC2-style double-size blob and walker (though LL doesn't use them)

- Added the rover's directional overlay

- Added custom push animations

- Added custom bouncing heart animations

- Added a puff when opening a door or socket, or revealing a fake floor

- Fixed the rover's animations being a bit mixed up

- Fixed player walk animations occasionally being glitchy

- Touched up the fake floor x-ray tile

- Touched up the canopy x-ray tile

- Touched up the purple ball's shadows

- Touched up the transmogrifier and transmogrify flash
2021-01-05 17:10:21 -07:00
Eevee (Evelyn Woods)
a72ec8c476 Fix undoing dropping a bowling ball; make bowling balls explode at level edge 2021-01-03 19:31:59 -07:00
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)
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)
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)
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)
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)
b9a311a18c Merge thin walls into a single tile; split "overlay" layer into correct CC2 parts 2020-12-29 19:29:22 -07:00
Eevee (Evelyn Woods)
1c5f63b61b Add a new experimental tile: sand 2020-12-29 17:08:51 -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)
63f09283ea Make actors explode when starting the level on a bomb 2020-12-29 07:21:18 -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)
dee46b77df Fix black buttons to /always/ separate horizontal and vertical wires 2020-12-28 06:53:19 -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)
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)
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