Revert the blue wall compat fix and replace them with popwalls instead (fixes #5)

This commit is contained in:
Eevee (Evelyn Woods) 2020-10-01 03:22:49 -06:00
parent 4f5d169d06
commit 4cd0585d0b
2 changed files with 12 additions and 12 deletions

View File

@ -256,7 +256,7 @@ class Player extends PrimaryView {
this.compat = { this.compat = {
popwalls_react_on_arrive: false, popwalls_react_on_arrive: false,
auto_convert_ccl_popwalls: true, auto_convert_ccl_popwalls: true,
blue_walls_walkable: true, auto_convert_ccl_blue_walls: true,
sliding_tanks_ignore_button: true, sliding_tanks_ignore_button: true,
tiles_react_instantly: false, tiles_react_instantly: false,
allow_flick: false, allow_flick: false,
@ -1405,10 +1405,10 @@ const COMPAT_OPTIONS = [{
impls: ['lynx', 'ms'], impls: ['lynx', 'ms'],
note: "This is a more conservative solution to the problem with recessed walls. It replaces recessed walls with a new tile, \"doubly recessed walls\", only if they begin the level with something on top of them. This should resolve compatibility issues without changing the behavior of recessed walls.", note: "This is a more conservative solution to the problem with recessed walls. It replaces recessed walls with a new tile, \"doubly recessed walls\", only if they begin the level with something on top of them. This should resolve compatibility issues without changing the behavior of recessed walls.",
}, { }, {
key: 'blue_walls_walkable', key: 'auto_convert_ccl_blue_walls',
label: "Blocks can be pushed off of blue walls", label: "Fix loaded blue walls",
impls: ['lynx'], impls: ['lynx'],
note: "Generally, you can only push a block if it's in a space you could otherwise move into, but Tile World Lynx allows pushing blocks off of blue walls. (Unclear whether this is a Tile World bug, or a Lynx bug that Tile World is replicating.) The same effect can be achieved in Steam by using a recessed wall instead, assuming you're using the Steam recessed wall behavior.", note: "Generally, you can only push a block if it's in a space you could otherwise move into, but Tile World Lynx allows pushing blocks off of blue walls. (Unclear whether this is a Tile World bug, or a Lynx bug that Tile World is replicating.) The same effect can be achieved in Steam by using a recessed wall instead, so this replaces such walls with recessed walls. Note that this fix may have unintended side effects in conjunction with the recessed wall compat option.",
}, { }, {
key: 'sliding_tanks_ignore_button', key: 'sliding_tanks_ignore_button',
label: "Blue tanks ignore blue buttons while sliding", label: "Blue tanks ignore blue buttons while sliding",

View File

@ -153,14 +153,14 @@ const TILE_TYPES = {
}, },
fake_wall: { fake_wall: {
draw_layer: LAYER_TERRAIN, draw_layer: LAYER_TERRAIN,
blocks_monsters: true, blocks_all: true,
blocks_blocks: true, on_ready(me, level) {
blocks(me, level, other) { if (level.compat.auto_convert_ccl_blue_walls &&
if (other.type.is_player && level.compat.blue_walls_walkable) { me.cell.some(tile => tile.type.is_actor))
return false; {
} // Blocks can be pushed off of blue walls in TW Lynx, which only works due to a tiny
else { // quirk of the engine that I don't want to replicate, so replace them with popwalls
return true; me.type = TILE_TYPES['popwall'];
} }
}, },
on_bump(me, level, other) { on_bump(me, level, other) {