diff --git a/rogueviz/ru/classes.cpp b/rogueviz/ru/classes.cpp index b174c828..d47e88ab 100644 --- a/rogueviz/ru/classes.cpp +++ b/rogueviz/ru/classes.cpp @@ -51,7 +51,7 @@ struct room { string roomname; renderbuffer *rbuf; cell *where; - char block_at[room_y][room_x]; + short block_at[room_y][room_x]; bool fov[room_y][room_x]; bool which_map_rendered; bool infile, need_rerender; diff --git a/rogueviz/ru/globals.cpp b/rogueviz/ru/globals.cpp index 225e032a..ed2b999e 100644 --- a/rogueviz/ru/globals.cpp +++ b/rogueviz/ru/globals.cpp @@ -52,7 +52,7 @@ struct ruwall { flagtype flags; }; -enum eWall { wAir, wWall, wBouncy, wSpike, wWater, wFrozen, wDoor, wSmashedDoor, wFountain0, wFountain1, wBluePortal, wOrangePortal, wPlatform }; +enum eWall { wAir, wWall, wBouncy, wSpike, wWater, wFrozen, wDoor, wSmashedDoor, wLockedDoor, wFountain0, wFountain1, wBluePortal, wOrangePortal, wPlatform, wStaircase, wColumn, wForge, wGUARD }; flagtype W_BLOCK = 1; flagtype W_TRANS = 2; @@ -62,7 +62,7 @@ flagtype W_PAIN = 16; flagtype W_BOUNCY = 32; flagtype W_FROZEN = 64; -constexpr int qwall = 14; +constexpr int qwall = int(wGUARD); ruwall walls[qwall] = { {"air", ".", 0x40404080, W_TRANS}, @@ -73,12 +73,15 @@ ruwall walls[qwall] = { {"frozen water", "#", 0xC0C0FFFF, W_BLOCK | W_FROZEN}, {"door", "+", 0xC06000FF, W_BLOCK}, {"smashed door", "'", 0xC06000FF, W_TRANS}, + {"locked door", "+", 0xA05000FF, W_BLOCK}, {"magic fountain", "!", 0x8080C0FF, W_TRANS}, {"magic fountain (active)", "!", 0xA0A0FFFF, W_TRANS}, {"blue portal", "=", 0x4040C0FF, W_TRANS}, {"orange portal", "=", 0xC08040FF, W_TRANS}, {"platform", "-", 0xFFFFFFFF, W_PLATFORM | W_TRANS }, {"staircase", "-", 0xFFFF80FF, W_PLATFORM | W_TRANS | W_STAIRCASE }, + {"column", "|", 0x40404080, W_TRANS}, + {"forge", "&", 0xB0202080, W_TRANS | W_PAIN}, }; int sel = 1; diff --git a/rogueviz/ru/map.ru b/rogueviz/ru/map.ru index cdaed37e..abf5c1be 100644 --- a/rogueviz/ru/map.ru +++ b/rogueviz/ru/map.ru @@ -4,6 +4,7 @@ ROOM Red Rooster Inn - platform A staircase . air +L locked door MAP ...................##.............................+-....+..---...##............. ..................##################################----############............ @@ -12,8 +13,8 @@ MAP ...............##.......................#............A........#......##......... ..............##........................#...........A.........#.......##........ .............##.........................#..........A..........#........##....... -............##..........................+.........A...........+.........##...... -...........##...........................+........A............+..........##..... +............##..........................L.........A...........L.........##...... +...........##...........................L........A............L..........##..... ..........############################################------################.... .........###........................................##.A..................##.... --........#b........................................#b..A.................#b.... @@ -66,6 +67,7 @@ ROOM Red Rooster Inn, guest rooms + door - platform . air +L locked door MAP ................................................................................ ................................................................................ @@ -91,20 +93,20 @@ MAP ................#b..........#b......#b#b#....................................... ................##..........##.......#####...................................... ................#b..........#b........#b#b#..................................... -................++..........++.........#####.................................... -................+b..........+b..........#b#b#................................... -................++..........++...........#####.................................. -................+b..........+b............#b#b#................................. +................LL..........LL.........#####.................................... +................Lb..........Lb..........#b#b#................................... +................LL..........LL...........#####.................................. +................Lb..........Lb............#b#b#................................. ########################--######################................................ ......................#b-b........#b........#b#b#............................... ......................##--........##.........#####.............................. ......................#b-b........#b..........#b#b#............................. ......................##--........##...........#####............................ ......................#b-b........#b............#b#b#........................... -......................++--........++.............#####.......................... -......................+b-b........+b..............#b#b#......................... -......................++--........++....------......####........................ -......................+b-b........+b....-b-b-b......#b#b........................ +......................LL--........++.............#####.......................... +......................Lb-b........+b..............#b#b#......................... +......................LL--........++....------......####........................ +......................Lb-b........+b....-b-b-b......#b#b........................ ##########################--------########################...................... #b#b#b#b#b#b#b#b#b#b#b#b#b-b-b-b-b#b#b#b#b#b#b#b#b#b#b#b#b...................... START 344 274 diff --git a/rogueviz/ru/render.cpp b/rogueviz/ru/render.cpp index a19f08df..5adaf8b6 100644 --- a/rogueviz/ru/render.cpp +++ b/rogueviz/ru/render.cpp @@ -139,7 +139,7 @@ void render_room_walls(room *r) { for(int y=0; yfov[y][x]) continue; - char c = r->block_at[y][x]; + int c = r->block_at[y][x]; // ld sx = 1.5; // ld sy = 1.3;