diff --git a/src/com/bytezone/diskbrowser/wizardry/Character.java b/src/com/bytezone/diskbrowser/wizardry/Character.java index bf10501..23f13ea 100755 --- a/src/com/bytezone/diskbrowser/wizardry/Character.java +++ b/src/com/bytezone/diskbrowser/wizardry/Character.java @@ -12,6 +12,8 @@ import com.bytezone.diskbrowser.utilities.Utility; class Character extends AbstractFile // -----------------------------------------------------------------------------------// { + private static char[] awardsText = ">!$#&*"; - if (v1 == 0x00 && v2 == 0x00) - return ""; - if (v1 == 0x00 && v2 == 0x20) - return "D"; - if (v1 == 0x20 && v2 == 0x20) - return "*D"; - if (v1 == 0x21 && v2 == 0x60) - return ">*DG"; - if (v1 == 0x21 && v2 == 0x28) - return ">*KD"; - return "Unknown : " + v1 + " " + v2; + StringBuilder text = new StringBuilder (); + + int awards = Utility.getShort (buffer, 206); + + for (int i = 0; i < 16; i++) + { + if ((awards & 0x01) != 0) + text.append (awardsText[i]); + awards >>>= 1; + } + + return text.toString (); } // ---------------------------------------------------------------------------------// @@ -322,8 +319,7 @@ class Character extends AbstractFile @Override public String toString () { - return String.format ("%s%-15s (%d)", equipped ? "*" : " ", item.getName (), - item.getCost ()); + return String.format ("%s%-15s (%d)", equipped ? "*" : " ", item.getName (), item.getCost ()); } }