diff --git a/rogueviz/ru/render.cpp b/rogueviz/ru/render.cpp index 2d57b091..9bfcff03 100644 --- a/rogueviz/ru/render.cpp +++ b/rogueviz/ru/render.cpp @@ -131,6 +131,8 @@ void compute_scrm() { scrm.T[2][2] = 1; } +bool final_view = false; + void render_room_walls(room *r) { initquickqueue(); bool af = should_apply_fov(); @@ -142,6 +144,17 @@ void render_room_walls(room *r) { if(af && !r->fov[y][x]) continue; int c = r->block_at[y][x]; + if(!af && final_view) { + int x1 = x-1, y1 = y-1, x2 = x+2, y2 = y+2; + if(c&4) x2++, y2++; + if(c&1) x1--, x2--; + if(c&2) y1--, y2--; + if(x1<0) x1=0; if(y1<0) y1=0; if(x2>room_x) x2=room_x; if(y2>room_y) y2=room_y; + for(int ax=x1; axat(ax, ay)].flags & W_TRANS) goto ok; + continue; + } + ok: + // ld sx = 1.5; // ld sy = 1.3; diff --git a/rogueviz/ru/ru.cpp b/rogueviz/ru/ru.cpp index 0631fa6b..f97b94cb 100644 --- a/rogueviz/ru/ru.cpp +++ b/rogueviz/ru/ru.cpp @@ -98,6 +98,7 @@ void editmap_frame() { dialog::display(); }); if(keypressed('f')) floodfill_pick(mousepx / block_x, mousepy / block_y); + if(keypressed('x')) final_view = !final_view; if(keypressed('t')) { m.where = xy(mousepx, mousepy); m.vel = xy(0, 0); current_room->edited = true; m.existing = true; m.hp = m.max_hp(); } }