Added features to Hologram hardware - Fixes #63 and #67

This commit is contained in:
simon 2017-12-30 11:03:09 -05:00
parent fe0be03ab8
commit 70a55dce59
3 changed files with 24 additions and 5 deletions

View File

@ -13,7 +13,7 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit {
private static final char MAP_INFO = 0x0080; private static final char MAP_INFO = 0x0080;
public static final int ID = 1; public static final int ID = 1;
private char hologram = 0; private int hologram = 0;
private String hologramString = ""; private String hologramString = "";
private HologramMode hologramMode = HologramMode.CLEARED; private HologramMode hologramMode = HologramMode.CLEARED;
@ -88,7 +88,7 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit {
json.put("heldItem", heldItem); json.put("heldItem", heldItem);
json.put("hp", hp); json.put("hp", hp);
json.put("action", lastAction.ordinal()); json.put("action", lastAction.ordinal());
json.put("holo", (int) hologram); json.put("holo", hologram);
json.put("holoStr", hologramString); json.put("holoStr", hologramString);
json.put("holoMode", lastHologramMode.ordinal()); json.put("holoMode", lastHologramMode.ordinal());
json.put("energy", energy); json.put("energy", energy);
@ -158,7 +158,7 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit {
return currentAction; return currentAction;
} }
public void setHologram(char hologram) { public void setHologram(int hologram) {
this.hologram = hologram; this.hologram = hologram;
} }
@ -223,7 +223,9 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit {
public enum HologramMode { public enum HologramMode {
CLEARED, CLEARED,
HEX, HEX,
STRING STRING,
DEC,
COLOR
} }
@Override @Override

View File

@ -20,6 +20,8 @@ public class CubotHologram extends CpuHardware {
private static final int CLEAR = 0; private static final int CLEAR = 0;
private static final int DISPLAY_HEX = 1; private static final int DISPLAY_HEX = 1;
private static final int DISPLAY_STRING = 2; private static final int DISPLAY_STRING = 2;
private static final int DISPLAY_DEC = 3;
private static final int DISPLAY_COLOR = 4;
private static final int STR_MAX_LEN = 8; private static final int STR_MAX_LEN = 8;
@ -57,6 +59,21 @@ public class CubotHologram extends CpuHardware {
cubot.setHologramString(holoString.toString()); cubot.setHologramString(holoString.toString());
cubot.setHologramMode(Cubot.HologramMode.STRING); cubot.setHologramMode(Cubot.HologramMode.STRING);
} else if (a == DISPLAY_DEC) {
//Display decimal number
char b = getCpu().getRegisterSet().getRegister("B").getValue();
cubot.setHologram(b);
cubot.setHologramMode(Cubot.HologramMode.DEC);
} else if (a == DISPLAY_COLOR) {
if (cubot.spendEnergy(4)) {
int b = getCpu().getRegisterSet().getRegister("B").getValue();
int c = getCpu().getRegisterSet().getRegister("C").getValue();
cubot.setHologramMode(Cubot.HologramMode.COLOR);
cubot.setHologram((c | (b << 16)) & 0x00FFFFFF); //B:C, ignore first byte
}
} }
} }

View File

@ -42,7 +42,7 @@ public class Util {
} }
public static String toHex(int a) { public static String toHex(int a) {
return String.format("%04X ", uShort(a)); return String.format("%04X ", a);
} }
public static String toHex(byte[] byteArray) { public static String toHex(byte[] byteArray) {