dmolony-DiskBrowser/src/com/bytezone/diskbrowser/wizardry/CharacterV4.java

67 lines
2.3 KiB
Java
Raw Normal View History

2022-05-28 08:54:06 +00:00
package com.bytezone.diskbrowser.wizardry;
import com.bytezone.diskbrowser.applefile.AbstractFile;
import com.bytezone.diskbrowser.utilities.HexFormatter;
import com.bytezone.diskbrowser.utilities.Utility;
// -----------------------------------------------------------------------------------//
public class CharacterV4 extends AbstractFile
// -----------------------------------------------------------------------------------//
{
int id;
2022-05-28 09:15:32 +00:00
int nextCharacterId;
2022-05-29 00:43:10 +00:00
CharacterParty party;
2022-05-28 08:54:06 +00:00
// ---------------------------------------------------------------------------------//
CharacterV4 (String name, byte[] buffer, int id)
// ---------------------------------------------------------------------------------//
{
super (name, buffer);
this.id = id;
2022-05-28 09:15:32 +00:00
nextCharacterId = Utility.getShort (buffer, 0x7D);
2022-05-28 08:54:06 +00:00
}
// ---------------------------------------------------------------------------------//
2022-05-29 00:43:10 +00:00
void setParty (CharacterParty party)
2022-05-28 08:54:06 +00:00
// ---------------------------------------------------------------------------------//
{
2022-05-29 00:43:10 +00:00
this.party = party;
}
2022-05-28 08:54:06 +00:00
2022-05-29 00:43:10 +00:00
// ---------------------------------------------------------------------------------//
boolean isInParty ()
// ---------------------------------------------------------------------------------//
{
return party != null;
2022-05-28 08:54:06 +00:00
}
// ---------------------------------------------------------------------------------//
String getPartialSlogan ()
// ---------------------------------------------------------------------------------//
{
return buffer[17] == 0 ? "" : HexFormatter.getPascalString (buffer, 17);
}
// ---------------------------------------------------------------------------------//
@Override
public String getText ()
// ---------------------------------------------------------------------------------//
{
StringBuilder text = new StringBuilder ();
text.append (String.format ("Id ............. %3d%n", id));
text.append (String.format ("Name ........... %s%n", name));
2022-05-29 00:43:10 +00:00
// text.append (String.format ("Slogan ......... %s%n", slogan));
2022-05-28 09:15:32 +00:00
text.append (String.format ("Next ........... %d%n%n", nextCharacterId));
2022-05-28 08:54:06 +00:00
text.append (HexFormatter.format (buffer, 1, buffer[0] & 0xFF));
2022-05-29 00:43:10 +00:00
text.append ("\n\n");
if (!party.slogan.isEmpty () || party.characters.size () > 1)
text.append (party);
2022-05-28 08:54:06 +00:00
return text.toString ();
}
}