Walls of lava

Add "walls of lava", basically lava which blocks vision and
require a bit more than just levitation or flight to move through.

No levels use this yet, as testing isn't thorough enough.
This commit is contained in:
Pasi Kallinen
2023-02-06 19:23:39 +02:00
parent b85fb2a197
commit 7401b44fa1
17 changed files with 338 additions and 289 deletions

View File

@@ -133,49 +133,50 @@
PCHAR2(36, '}', S_pool, "pool", "water", CLR(CLR_BLUE))
PCHAR( 37, '.', S_ice, "ice", CLR(CLR_CYAN))
PCHAR( 38, '}', S_lava, "molten lava", CLR(CLR_RED))
PCHAR2(39, '.', S_vodbridge, "vertical open drawbridge",
PCHAR( 39, '}', S_lavawall, "wall of lava", CLR(CLR_ORANGE))
PCHAR2(40, '.', S_vodbridge, "vertical open drawbridge",
"lowered drawbridge", CLR(CLR_BROWN))
PCHAR2(40, '.', S_hodbridge, "horizontal open drawbridge",
PCHAR2(41, '.', S_hodbridge, "horizontal open drawbridge",
"lowered drawbridge", CLR(CLR_BROWN))
PCHAR2(41, '#', S_vcdbridge, "vertical closed drawbridge",
PCHAR2(42, '#', S_vcdbridge, "vertical closed drawbridge",
"raised drawbridge", CLR(CLR_BROWN))
PCHAR2(42, '#', S_hcdbridge, "horizontal closed drawbridge",
PCHAR2(43, '#', S_hcdbridge, "horizontal closed drawbridge",
"raised drawbridge", CLR(CLR_BROWN))
PCHAR( 43, ' ', S_air, "air", CLR(CLR_CYAN))
PCHAR( 44, '#', S_cloud, "cloud", CLR(CLR_GRAY))
PCHAR( 45, '}', S_water, "water", CLR(CLR_BLUE))
PCHAR( 44, ' ', S_air, "air", CLR(CLR_CYAN))
PCHAR( 45, '#', S_cloud, "cloud", CLR(CLR_GRAY))
PCHAR( 46, '}', S_water, "water", CLR(CLR_BLUE))
/* end dungeon characters */
/* */
/* begin traps */
/* */
PCHAR( 46, '^', S_arrow_trap, "arrow trap", CLR(HI_METAL))
PCHAR( 47, '^', S_dart_trap, "dart trap", CLR(HI_METAL))
PCHAR( 48, '^', S_falling_rock_trap, "falling rock trap", CLR(CLR_GRAY))
PCHAR( 49, '^', S_squeaky_board, "squeaky board", CLR(CLR_BROWN))
PCHAR( 50, '^', S_bear_trap, "bear trap", CLR(HI_METAL))
PCHAR( 51, '^', S_land_mine, "land mine", CLR(CLR_RED))
PCHAR( 52, '^', S_rolling_boulder_trap, "rolling boulder trap",
PCHAR( 47, '^', S_arrow_trap, "arrow trap", CLR(HI_METAL))
PCHAR( 48, '^', S_dart_trap, "dart trap", CLR(HI_METAL))
PCHAR( 49, '^', S_falling_rock_trap, "falling rock trap", CLR(CLR_GRAY))
PCHAR( 50, '^', S_squeaky_board, "squeaky board", CLR(CLR_BROWN))
PCHAR( 51, '^', S_bear_trap, "bear trap", CLR(HI_METAL))
PCHAR( 52, '^', S_land_mine, "land mine", CLR(CLR_RED))
PCHAR( 53, '^', S_rolling_boulder_trap, "rolling boulder trap",
CLR(CLR_GRAY))
PCHAR( 53, '^', S_sleeping_gas_trap, "sleeping gas trap", CLR(HI_ZAP))
PCHAR( 54, '^', S_rust_trap, "rust trap", CLR(CLR_BLUE))
PCHAR( 55, '^', S_fire_trap, "fire trap", CLR(CLR_ORANGE))
PCHAR( 56, '^', S_pit, "pit", CLR(CLR_BLACK))
PCHAR( 57, '^', S_spiked_pit, "spiked pit", CLR(CLR_BLACK))
PCHAR( 58, '^', S_hole, "hole", CLR(CLR_BROWN))
PCHAR( 59, '^', S_trap_door, "trap door", CLR(CLR_BROWN))
PCHAR( 60, '^', S_teleportation_trap, "teleportation trap",
PCHAR( 54, '^', S_sleeping_gas_trap, "sleeping gas trap", CLR(HI_ZAP))
PCHAR( 55, '^', S_rust_trap, "rust trap", CLR(CLR_BLUE))
PCHAR( 56, '^', S_fire_trap, "fire trap", CLR(CLR_ORANGE))
PCHAR( 57, '^', S_pit, "pit", CLR(CLR_BLACK))
PCHAR( 58, '^', S_spiked_pit, "spiked pit", CLR(CLR_BLACK))
PCHAR( 59, '^', S_hole, "hole", CLR(CLR_BROWN))
PCHAR( 60, '^', S_trap_door, "trap door", CLR(CLR_BROWN))
PCHAR( 61, '^', S_teleportation_trap, "teleportation trap",
CLR(CLR_MAGENTA))
PCHAR( 61, '^', S_level_teleporter, "level teleporter", CLR(CLR_MAGENTA))
PCHAR( 62, '^', S_magic_portal, "magic portal", CLR(CLR_BRIGHT_MAGENTA))
PCHAR( 63, '"', S_web, "web", CLR(CLR_GRAY))
PCHAR( 64, '^', S_statue_trap, "statue trap", CLR(CLR_GRAY))
PCHAR( 65, '^', S_magic_trap, "magic trap", CLR(HI_ZAP))
PCHAR2(66, '^', S_anti_magic_trap, "anti magic trap", "anti-magic field",
PCHAR( 62, '^', S_level_teleporter, "level teleporter", CLR(CLR_MAGENTA))
PCHAR( 63, '^', S_magic_portal, "magic portal", CLR(CLR_BRIGHT_MAGENTA))
PCHAR( 64, '"', S_web, "web", CLR(CLR_GRAY))
PCHAR( 65, '^', S_statue_trap, "statue trap", CLR(CLR_GRAY))
PCHAR( 66, '^', S_magic_trap, "magic trap", CLR(HI_ZAP))
PCHAR2(67, '^', S_anti_magic_trap, "anti magic trap", "anti-magic field",
CLR(HI_ZAP))
PCHAR( 67, '^', S_polymorph_trap, "polymorph trap", CLR(CLR_BRIGHT_GREEN))
PCHAR( 68, '~', S_vibrating_square, "vibrating square", CLR(CLR_MAGENTA))
PCHAR( 69, '^', S_trapped_door, "trapped door", CLR(CLR_ORANGE))
PCHAR( 70, '^', S_trapped_chest, "trapped chest", CLR(CLR_ORANGE))
PCHAR( 68, '^', S_polymorph_trap, "polymorph trap", CLR(CLR_BRIGHT_GREEN))
PCHAR( 69, '~', S_vibrating_square, "vibrating square", CLR(CLR_MAGENTA))
PCHAR( 70, '^', S_trapped_door, "trapped door", CLR(CLR_ORANGE))
PCHAR( 71, '^', S_trapped_chest, "trapped chest", CLR(CLR_ORANGE))
/* end traps */
/* end cmap B */
/* */
@@ -183,22 +184,22 @@
/* */
/* zap colors are changed by reset_glyphmap() to match type of beam */
/* */
PCHAR2(71, '|', S_vbeam, "vertical beam", "", CLR(CLR_GRAY))
PCHAR2(72, '-', S_hbeam, "horizontal beam", "", CLR(CLR_GRAY))
PCHAR2(73, '\\', S_lslant, "left slant beam", "", CLR(CLR_GRAY))
PCHAR2(74, '/', S_rslant, "right slant beam", "", CLR(CLR_GRAY))
PCHAR2(72, '|', S_vbeam, "vertical beam", "", CLR(CLR_GRAY))
PCHAR2(73, '-', S_hbeam, "horizontal beam", "", CLR(CLR_GRAY))
PCHAR2(74, '\\', S_lslant, "left slant beam", "", CLR(CLR_GRAY))
PCHAR2(75, '/', S_rslant, "right slant beam", "", CLR(CLR_GRAY))
/* start cmap C */
PCHAR2(75, '*', S_digbeam, "dig beam", "", CLR(CLR_WHITE))
PCHAR2(76, '!', S_flashbeam, "flash beam", "", CLR(CLR_WHITE))
PCHAR2(77, ')', S_boomleft, "boom left", "", CLR(HI_WOOD))
PCHAR2(78, '(', S_boomright, "boom right", "", CLR(HI_WOOD))
PCHAR2(76, '*', S_digbeam, "dig beam", "", CLR(CLR_WHITE))
PCHAR2(77, '!', S_flashbeam, "flash beam", "", CLR(CLR_WHITE))
PCHAR2(78, ')', S_boomleft, "boom left", "", CLR(HI_WOOD))
PCHAR2(79, '(', S_boomright, "boom right", "", CLR(HI_WOOD))
/* 4 magic shield symbols */
PCHAR2(79, '0', S_ss1, "shield1", "", CLR(HI_ZAP))
PCHAR2(80, '#', S_ss2, "shield2", "", CLR(HI_ZAP))
PCHAR2(81, '@', S_ss3, "shield3", "", CLR(HI_ZAP))
PCHAR2(82, '*', S_ss4, "shield4", "", CLR(HI_ZAP))
PCHAR( 83, '#', S_poisoncloud, "poison cloud", CLR(CLR_BRIGHT_GREEN))
PCHAR( 84, '?', S_goodpos, "valid position", CLR(CLR_BRIGHT_GREEN))
PCHAR2(80, '0', S_ss1, "shield1", "", CLR(HI_ZAP))
PCHAR2(81, '#', S_ss2, "shield2", "", CLR(HI_ZAP))
PCHAR2(82, '@', S_ss3, "shield3", "", CLR(HI_ZAP))
PCHAR2(83, '*', S_ss4, "shield4", "", CLR(HI_ZAP))
PCHAR( 84, '#', S_poisoncloud, "poison cloud", CLR(CLR_BRIGHT_GREEN))
PCHAR( 85, '?', S_goodpos, "valid position", CLR(CLR_BRIGHT_GREEN))
/* end cmap C */
/* */
/* The 8 swallow symbols. Do NOT separate. */
@@ -212,14 +213,14 @@
/* 4 5 6 */
/* 7 8 9 */
/* */
PCHAR2(85, '/', S_sw_tl, "swallow top left", "", CLR(CLR_GREEN)) /*1*/
PCHAR2(86, '-', S_sw_tc, "swallow top center", "", CLR(CLR_GREEN)) /*2*/
PCHAR2(87, '\\', S_sw_tr, "swallow top right", "", CLR(CLR_GREEN)) /*3*/
PCHAR2(88, '|', S_sw_ml, "swallow middle left", "", CLR(CLR_GREEN)) /*4*/
PCHAR2(89, '|', S_sw_mr, "swallow middle right", "", CLR(CLR_GREEN)) /*6*/
PCHAR2(90, '\\', S_sw_bl, "swallow bottom left", "", CLR(CLR_GREEN)) /*7*/
PCHAR2(91, '-', S_sw_bc, "swallow bottom center", "", CLR(CLR_GREEN))/*8*/
PCHAR2(92, '/', S_sw_br, "swallow bottom right", "", CLR(CLR_GREEN)) /*9*/
PCHAR2(86, '/', S_sw_tl, "swallow top left", "", CLR(CLR_GREEN)) /*1*/
PCHAR2(87, '-', S_sw_tc, "swallow top center", "", CLR(CLR_GREEN)) /*2*/
PCHAR2(88, '\\', S_sw_tr, "swallow top right", "", CLR(CLR_GREEN)) /*3*/
PCHAR2(89, '|', S_sw_ml, "swallow middle left", "", CLR(CLR_GREEN)) /*4*/
PCHAR2(90, '|', S_sw_mr, "swallow middle right", "", CLR(CLR_GREEN)) /*6*/
PCHAR2(91, '\\', S_sw_bl, "swallow bottom left", "", CLR(CLR_GREEN)) /*7*/
PCHAR2(92, '-', S_sw_bc, "swallow bottom center", "", CLR(CLR_GREEN))/*8*/
PCHAR2(93, '/', S_sw_br, "swallow bottom right", "", CLR(CLR_GREEN)) /*9*/
/* */
/* explosion colors are changed by reset_glyphmap() to match */
/* the type of expl. */
@@ -230,15 +231,15 @@
/* |@| */
/* \-/ */
/* */
PCHAR2(93, '/', S_expl_tl, "explosion top left", "", CLR(CLR_ORANGE))
PCHAR2(94, '-', S_expl_tc, "explosion top center", "", CLR(CLR_ORANGE))
PCHAR2(95, '\\', S_expl_tr, "explosion top right", "", CLR(CLR_ORANGE))
PCHAR2(96, '|', S_expl_ml, "explosion middle left", "", CLR(CLR_ORANGE))
PCHAR2(97, ' ', S_expl_mc, "explosion middle center", "", CLR(CLR_ORANGE))
PCHAR2(98, '|', S_expl_mr, "explosion middle right", "", CLR(CLR_ORANGE))
PCHAR2(99, '\\', S_expl_bl, "explosion bottom left", "", CLR(CLR_ORANGE))
PCHAR2(100, '-', S_expl_bc, "explosion bottom center", "", CLR(CLR_ORANGE))
PCHAR2(101, '/', S_expl_br, "explosion bottom right", "", CLR(CLR_ORANGE))
PCHAR2(94, '/', S_expl_tl, "explosion top left", "", CLR(CLR_ORANGE))
PCHAR2(95, '-', S_expl_tc, "explosion top center", "", CLR(CLR_ORANGE))
PCHAR2(96, '\\', S_expl_tr, "explosion top right", "", CLR(CLR_ORANGE))
PCHAR2(97, '|', S_expl_ml, "explosion middle left", "", CLR(CLR_ORANGE))
PCHAR2(98, ' ', S_expl_mc, "explosion middle center", "", CLR(CLR_ORANGE))
PCHAR2(99, '|', S_expl_mr, "explosion middle right", "", CLR(CLR_ORANGE))
PCHAR2(100, '\\', S_expl_bl, "explosion bottom left", "", CLR(CLR_ORANGE))
PCHAR2(101, '-', S_expl_bc, "explosion bottom center", "", CLR(CLR_ORANGE))
PCHAR2(102, '/', S_expl_br, "explosion bottom right", "", CLR(CLR_ORANGE))
#undef PCHAR
#undef PCHAR2
#endif /* PCHAR_S_ENUM || PCHAR_PARSE || PCHAR_DRAWING || PCHAR_TILES */

View File

@@ -17,7 +17,7 @@
* Incrementing EDITLEVEL can be used to force invalidation of old bones
* and save files.
*/
#define EDITLEVEL 72
#define EDITLEVEL 73
/*
* Development status possibilities.

View File

@@ -57,24 +57,25 @@ enum levl_typ_types {
WATER = 18,
DRAWBRIDGE_UP = 19,
LAVAPOOL = 20,
IRONBARS = 21, /* KMH */
DOOR = 22,
CORR = 23,
ROOM = 24,
STAIRS = 25,
LADDER = 26,
FOUNTAIN = 27,
THRONE = 28,
SINK = 29,
GRAVE = 30,
ALTAR = 31,
ICE = 32,
DRAWBRIDGE_DOWN = 33,
AIR = 34,
CLOUD = 35,
LAVAWALL = 21,
IRONBARS = 22, /* KMH */
DOOR = 23,
CORR = 24,
ROOM = 25,
STAIRS = 26,
LADDER = 27,
FOUNTAIN = 28,
THRONE = 29,
SINK = 30,
GRAVE = 31,
ALTAR = 32,
ICE = 33,
DRAWBRIDGE_DOWN = 34,
AIR = 35,
CLOUD = 36,
MAX_TYPE = 36,
MATCH_WALL = 37,
MAX_TYPE = 37,
MATCH_WALL = 38,
INVALID_TYPE = 127
};