diff options
Diffstat (limited to 'crawl-ref/source/tags.cc')
-rw-r--r-- | crawl-ref/source/tags.cc | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/crawl-ref/source/tags.cc b/crawl-ref/source/tags.cc index 43eb0a83a5..060d10b7c0 100644 --- a/crawl-ref/source/tags.cc +++ b/crawl-ref/source/tags.cc @@ -1278,7 +1278,7 @@ static void tag_read_you_items(struct tagHeader &th, char minorVersion) for (i = 0; i < count_c; ++i) { you.inv[i].orig_monnum = you.inv[i].orig_place = 0; - you.inv[i].inscription = std::string(); + you.inv[i].inscription.clear(); if (minorVersion < 1) { you.inv[i].base_type = (unsigned char) unmarshallByte(th); @@ -1307,10 +1307,14 @@ static void tag_read_you_items(struct tagHeader &th, char minorVersion) { you.inv[i].orig_place = unmarshallShort(th); you.inv[i].orig_monnum = unmarshallShort(th); - /*** HP CHANGE ***/ - char insstring[80]; - unmarshallString(th, insstring, 80); - you.inv[i].inscription = std::string(insstring); + + if (minorVersion >= 6) + { + /*** HP CHANGE ***/ + char insstring[80]; + unmarshallString(th, insstring, 80); + you.inv[i].inscription = std::string(insstring); + } } } @@ -1697,20 +1701,25 @@ static void tag_read_level_items(struct tagHeader &th, char minorVersion) mitm[i].slot = unmarshallByte(th); } + mitm[i].inscription.clear(); + if (minorVersion >= 7) { mitm[i].orig_place = unmarshallShort(th); mitm[i].orig_monnum = unmarshallShort(th); - /*** HP CHANGE ***/ - char insstring[80]; - unmarshallString(th, insstring, 80); - mitm[i].inscription = std::string(insstring); + + if (minorVersion >= 9) + { + /*** HP CHANGE ***/ + char insstring[80]; + unmarshallString(th, insstring, 80); + mitm[i].inscription = std::string(insstring); + } } else { mitm[i].orig_place = 0; mitm[i].orig_monnum = 0; - mitm[i].inscription = std::string(); } } } |