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 ();
|
|
|
|
}
|
|
|
|
}
|