mirror of
https://github.com/simon987/Much-Assembly-Required.git
synced 2025-04-19 18:46:43 +00:00
Fixes #53
This commit is contained in:
parent
2fb7d2f73e
commit
0fee35baec
@ -14,6 +14,9 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit {
|
|||||||
public static final int ID = 1;
|
public static final int ID = 1;
|
||||||
|
|
||||||
private char hologram = 0;
|
private char hologram = 0;
|
||||||
|
private String hologramString = "";
|
||||||
|
private HologramMode hologramMode = HologramMode.CLEARED;
|
||||||
|
|
||||||
private char lastHologram = 0;
|
private char lastHologram = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -86,6 +89,8 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit {
|
|||||||
json.put("hp", hp);
|
json.put("hp", hp);
|
||||||
json.put("action", lastAction.ordinal());
|
json.put("action", lastAction.ordinal());
|
||||||
json.put("holo", (int) lastHologram);
|
json.put("holo", (int) lastHologram);
|
||||||
|
json.put("holoStr", hologramString);
|
||||||
|
json.put("holoMode", hologramMode.ordinal());
|
||||||
json.put("energy", energy);
|
json.put("energy", energy);
|
||||||
|
|
||||||
if (parent != null) {
|
if (parent != null) {
|
||||||
@ -161,6 +166,9 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit {
|
|||||||
return lastHologram;
|
return lastHologram;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setHologramString(String hologramString) {
|
||||||
|
this.hologramString = hologramString;
|
||||||
|
}
|
||||||
|
|
||||||
public int getEnergy() {
|
public int getEnergy() {
|
||||||
return energy;
|
return energy;
|
||||||
@ -210,4 +218,14 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit {
|
|||||||
public boolean isAt(int x, int y) {
|
public boolean isAt(int x, int y) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setHologramMode(HologramMode hologramMode) {
|
||||||
|
this.hologramMode = hologramMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum HologramMode {
|
||||||
|
CLEARED,
|
||||||
|
HEX,
|
||||||
|
STRING
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,12 @@ public class CubotHologram extends CpuHardware {
|
|||||||
|
|
||||||
private Cubot cubot;
|
private Cubot cubot;
|
||||||
|
|
||||||
|
private static final int CLEAR = 0;
|
||||||
|
private static final int DISPLAY_HEX = 1;
|
||||||
|
private static final int DISPLAY_STRING = 2;
|
||||||
|
|
||||||
|
private static final int STR_MAX_LEN = 8;
|
||||||
|
|
||||||
public CubotHologram(Cubot cubot) {
|
public CubotHologram(Cubot cubot) {
|
||||||
this.cubot = cubot;
|
this.cubot = cubot;
|
||||||
}
|
}
|
||||||
@ -25,7 +31,33 @@ public class CubotHologram extends CpuHardware {
|
|||||||
public void handleInterrupt(Status status) {
|
public void handleInterrupt(Status status) {
|
||||||
|
|
||||||
char a = getCpu().getRegisterSet().getRegister("A").getValue();
|
char a = getCpu().getRegisterSet().getRegister("A").getValue();
|
||||||
cubot.setHologram(a);
|
|
||||||
|
if (a == CLEAR) {
|
||||||
|
cubot.setHologramMode(Cubot.HologramMode.CLEARED);
|
||||||
|
} else if (a == DISPLAY_HEX) {
|
||||||
|
char b = getCpu().getRegisterSet().getRegister("B").getValue();
|
||||||
|
cubot.setHologram(b);
|
||||||
|
cubot.setHologramMode(Cubot.HologramMode.HEX);
|
||||||
|
} else if (a == DISPLAY_STRING) {
|
||||||
|
char x = getCpu().getRegisterSet().getRegister("X").getValue();
|
||||||
|
//Display zero-terminated string starting at X (max 8 chars)
|
||||||
|
|
||||||
|
StringBuilder holoString = new StringBuilder();
|
||||||
|
|
||||||
|
for (int i = 0; i < STR_MAX_LEN; i++) {
|
||||||
|
|
||||||
|
char nextChar = (char) getCpu().getMemory().get(x + i);
|
||||||
|
|
||||||
|
if (nextChar != 0) {
|
||||||
|
holoString.append((char) getCpu().getMemory().get(x + i));
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cubot.setHologramString(holoString.toString());
|
||||||
|
cubot.setHologramMode(Cubot.HologramMode.STRING);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user