Commit Graph

54 Commits

Author SHA1 Message Date
Eevee (Evelyn Woods)
3a454d77f5 Implement the remaining logic gates and /most/ of their rendering! 2020-11-25 03:14:06 -07:00
Eevee (Evelyn Woods)
ac6e33bb6c Simplify blitting; fix arrow blitting; impl light switch; load more items 2020-11-25 01:14:15 -07:00
Eevee (Evelyn Woods)
e803af2fd2 Handle actors starting on force floors; partially implement item bestowal 2020-11-23 19:22:59 -07:00
Eevee (Evelyn Woods)
49ff0d9723 Clean up wiring drawing and logic (zero gates is now a no-op!); begin implementing logic gates 2020-11-01 11:36:17 -07:00
Eevee (Evelyn Woods)
060dfdc7d7 Implement drawing and correctly pushing directional blocks 2020-10-28 00:17:41 -06:00
Eevee (Evelyn Woods)
2820c067c5 Implement the CC2 "no sign" 2020-10-23 17:37:50 -06:00
Eevee (Evelyn Woods)
8adb630862 Add partial wiring support 2020-10-01 06:46:07 -06:00
Eevee (Evelyn Woods)
9b873764fb Shim around several compat issues that affect CCLP levels
- CCLP1 #81 requires pushing blocks off of blue walls, which is
  impossible in CC2 but allowed in TW Lynx (unclear if this is a lynx
  behavior or a tw bug)

- CCLP1 #89 has a tank start on a recessed wall and drive off of it,
  expecting the recessed wall to be left alone, but under CC2 rules it
  becomes a wall; such walls are now automatically converted to a new
  tile, the "doubly recessed wall", which restores the expected behavior
  without changing how recessed walls work in general

- CCLP4 #135 expects pressing a blue button to not affect blue tanks
  that are currently in mid-slide

In addition, the behavior of blue buttons now matches the Lynx/Steam
behavior: the press is stored as a flag and queued until the tank is
next able to move.
2020-10-01 03:08:25 -06:00
Eevee (Evelyn Woods)
684021f93d Fix typo in drowned player tile 2020-09-27 04:03:15 -06:00
Eevee (Evelyn Woods)
78bb1f2dc1 Populate player 2 state sprites so she can actually be drawn 2020-09-26 20:38:50 -06:00
Eevee (Evelyn Woods)
26f9e917a8 Support the remaining invalid tile, which slipped into CCLXP2 2020-09-25 04:51:59 -06:00
Eevee (Evelyn Woods)
787cd0d3a7 Fix tile rendering with the TW tileset 2020-09-23 22:49:44 -06:00
Eevee (Evelyn Woods)
67504e436e Draw the player's blocked/pushing frame (at last) 2020-09-23 21:09:57 -06:00
Eevee (Evelyn Woods)
72a44429af Animate CC2 force floors 2020-09-20 00:02:08 -06:00
Eevee (Evelyn Woods)
ddfa7f562a Extend the CC2 tile definition with some custom stuff 2020-09-19 23:32:13 -06:00
Eevee (Evelyn Woods)
ec8992a0fc Support separate poses for ice and force floors, and spin on ice 2020-09-19 22:59:50 -06:00
Eevee (Evelyn Woods)
2fc0648333 Slow animations down by half 2020-09-19 22:43:47 -06:00
Eevee (Evelyn Woods)
fcbd2b17be Fix dirt block direction in DAT; remove clone block, which serves no purpose for us 2020-09-18 22:22:38 -06:00
Eevee (Evelyn Woods)
569a3c0f3d Fix wired drawing of teleports 2020-09-17 00:02:01 -06:00
Eevee (Evelyn Woods)
e0bfb0aadf Standardize visual state, and use it instead of transmuting a dead player 2020-09-16 21:08:43 -06:00
Eevee (Evelyn Woods)
1d809601ae Clumsily add support for the player's swimming sprite 2020-09-16 14:57:29 -06:00
Eevee (Evelyn Woods)
e70e92b931 Move responsibility for drawing out of Tileset and into the renderer 2020-09-16 14:10:10 -06:00
Eevee (Evelyn Woods)
2e0519f802 Get rid of the Level.tic_offset hack and stop passing level to Tileset.draw 2020-09-16 13:29:57 -06:00
Eevee (Evelyn Woods)
529b87ab23 Attempt to support some invalid MSCC tiles 2020-09-16 01:51:38 -06:00
Eevee (Evelyn Woods)
48e03f3225 Restore the splash when pushing a block into water; fix splash/explosion in TW tileset 2020-09-14 21:52:27 -06:00
Eevee (Evelyn Woods)
468a1d44ba Get wire rendering correctly, at least for floors 2020-09-14 19:34:48 -06:00
Eevee (Evelyn Woods)
b88d42582c Stub out enough stuff to get CC2 Lesson 5 loading
- Wire is...  well, ignored
- Pink and black buttons load but don't do anything
- Railroad is loaded but doesn't do anything
- Bowling ball, purple toggle wall/floor, rover...  you get the idea
- Railroad sign would work if railroad did, though
2020-09-14 17:25:30 -06:00
Eevee (Evelyn Woods)
ec41139960 Stub out enough to get CC2 Lesson 4 loading
- Gender signs: implemented
- Transmogrifier: basically implemented
- Yellow tank: basically implemented
- Directional blocks: load but don't draw or behave correctly
- Floor mimic: moves at hyperspeed
- Secret eye: no effect
2020-09-14 16:03:35 -06:00
Eevee (Evelyn Woods)
afa132bd4c Undo GCing the actor list 2020-09-12 20:36:11 -06:00
Eevee (Evelyn Woods)
d3e60b88fa Stub out enough for CC2's Lesson 3 to load 2020-09-10 21:21:30 -06:00
Eevee (Evelyn Woods)
16bfe22593 Implement score flags and the stopwatches 2020-09-10 17:45:14 -06:00
Eevee (Evelyn Woods)
a3928b2865 Implement splashes and explosions, at least partially 2020-09-08 15:16:35 -06:00
Eevee (Evelyn Woods)
8097339886 Implement green bombs/chips, ice blocks, and custom walls/floors 2020-09-08 14:42:38 -06:00
Eevee (Evelyn Woods)
88ec9f89e7 Fix turtles and implement swivels; CC2 LESSON 1 now replays correctly! 2020-09-08 14:23:55 -06:00
Eevee (Evelyn Woods)
2096c42dbf Add clone blocks to the Tile World layout 2020-09-05 18:43:59 -06:00
Eevee (Evelyn Woods)
b01601fab6 Correctly identify DAT files; don't render editor when not in use 2020-09-05 17:17:59 -06:00
Eevee (Evelyn Woods)
dea7a7b754 Add a splash screen and the beginning of an editor 2020-09-05 16:21:31 -06:00
Eevee (Evelyn Woods)
15d3d43b76 Let's just guarantee that tic_offset is never 1 2020-09-03 10:31:46 -06:00
Eevee (Evelyn Woods)
bd57f686c7 Fix walk animation speed; fix occasional camera hiccups 2020-09-03 10:28:34 -06:00
Eevee (Evelyn Woods)
2df8607243 Fixed several issues with animation and movement; quick stab at replay UI
- Animation now has its own timer and isn't linked to movement cooldown,
  which is good for blocks since they don't have movement cooldown

- Destroyed actors don't crash the game again (oops)

- Slide and cooldown handling was reshuffled to better support the CC2
  approach of landing on tiles with a delay; in particular, you move at
  double speed on sliding tiles again!

- Demo playback got some rough UI so I don't have to keep editing the
  source code to decide whether to play a demo
2020-09-03 09:46:37 -06:00
Eevee (Evelyn Woods)
13dc5f73b1 Start to split out the renderer and add support for smooth scrolling 2020-09-03 07:36:05 -06:00
Eevee (Evelyn Woods)
0ba5ecc7e3 Implement (PARTIAL) undo; remove 'doomed'; fix a few small tile bugs 2020-09-02 05:20:23 -06:00
Eevee (Evelyn Woods)
060895c5ba Fix rendering of thin walls using a CC2 tileset 2020-09-01 07:36:14 -06:00
Eevee (Evelyn Woods)
8309ff37a8 Add an incredibly crappy restart button 2020-08-31 12:18:09 -06:00
Eevee (Evelyn Woods)
730824e697 Define clone blocks and teeth in the CC2 tile layout 2020-08-31 12:06:58 -06:00
Eevee (Evelyn Woods)
070d276e8a Implement green/blue buttons, tanks, monster death; stub out remaining CC1 objects; easy restart on death 2020-08-31 11:03:14 -06:00
Eevee (Evelyn Woods)
101b68c017 Map out most of the parts of the CC2 tile layout that I can actually draw 2020-08-30 04:52:47 -06:00
Eevee (Evelyn Woods)
b3a0ff963c Begrudgingly support letter tiles 2020-08-29 02:10:27 -06:00
Eevee (Evelyn Woods)
a2e1a4fd9a Stop parsing a C2M at END; fix CC2 force floor tiles 2020-08-29 01:31:05 -06:00
Eevee (Evelyn Woods)
ec872d93d2 Implement implicit terrain for C2M; implement thin walls 2020-08-29 01:14:59 -06:00