diff options
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | source/app.d | 1 | ||||
-rw-r--r-- | source/portals.d | 11 |
3 files changed, 7 insertions, 6 deletions
@@ -22,5 +22,4 @@ This code is made available under the GPLv3 license. ## TODO -Escape key for the save and load text queries Multiverse!?!? diff --git a/source/app.d b/source/app.d index 7faaa75..ec46012 100644 --- a/source/app.d +++ b/source/app.d @@ -83,6 +83,7 @@ void main() { } catch (Exception e) { } } + disp.print(); break; case 'l': auto filename = stdscr.readquery("Load:"); diff --git a/source/portals.d b/source/portals.d index 7bb5dc2..000e182 100644 --- a/source/portals.d +++ b/source/portals.d @@ -23,10 +23,13 @@ struct Portal { string toString(int[Portal* ] idMap) in { - assert(pair in idMap); + assert(pair == null || pair in idMap); } do { - return format!`%s, %s: %d`(y, x, idMap[pair]); + if (pair == null) + return format!`%s, %s: -1`(y, x); + else + return format!`%s, %s: %d`(y, x, idMap[pair]); } void fromString(string s, Portal[int] portalsById) { @@ -42,9 +45,7 @@ struct Portal { s.formattedRead!"%d"(id); auto p = id in portalsById; if (p) { - p.pairWith(this); // this is a REALLY big bug. Portal() is - // being copied by value into the dict, - // so it's not using its final ref. + p.pairWith(this); } } |