package com.acmetensortoys.ctfwstimer.lib;
+import java.math.BigInteger;
import java.util.HashSet;
import java.util.InputMismatchException;
import java.util.Locale;
private class Flags {
public boolean flagsVisible = false;
public long flagsTime = 0;
- public int flagsRed = 0;
- public int flagsYel = 0;
+ public BigInteger flagsRed = BigInteger.ZERO;
+ public BigInteger flagsYel = BigInteger.ZERO;
public boolean equals(Flags f) {
return (this.flagsVisible == f.flagsVisible)
Scanner s = new Scanner(tm);
try {
f.flagsTime = s.nextLong();
- f.flagsRed = s.nextInt();
- f.flagsYel = s.nextInt();
+ f.flagsRed = s.nextBigInteger();
+ f.flagsYel = s.nextBigInteger();
f.flagsVisible = true;
} catch (NumberFormatException | InputMismatchException e) {
+ // XXX This isn't quite right.
f.flagsVisible = false;
}
if (!curflags.equals(f)) {
return "?";
}
- return String.format(Locale.ROOT, "%d %d", curflags.flagsRed, curflags.flagsYel);
+ return String.format(Locale.ROOT, "%d %d %d",
+ curflags.flagsTime,
+ curflags.flagsRed, curflags.flagsYel);
}
public boolean getFlagsVisible() { return curflags.flagsVisible; }
// Only sensible if flags visible
- public int getFlagsRed() { return curflags.flagsRed; }
- public int getFlagsYel() { return curflags.flagsYel; }
+ public BigInteger getFlagsRed() { return curflags.flagsRed; }
+ public BigInteger getFlagsYel() { return curflags.flagsYel; }
// Informative messages handling
public class Msg implements Comparable<Msg> {
import com.acmetensortoys.ctfwstimer.R;
import com.acmetensortoys.ctfwstimer.lib.CtFwSGameStateManager;
+import java.math.BigInteger;
import java.text.NumberFormat;
import java.util.SortedSet;
// asserted, in which case, we allow a correction.
if (game.getFlagsVisible()
&& ((lastContextTextSource == LastContentTextSource.FLAG)
- || (game.getFlagsRed() + game.getFlagsYel() > 0))) {
+ || !game.getFlagsRed().equals(BigInteger.ZERO)
+ || !game.getFlagsYel().equals(BigInteger.ZERO))) {
notifyUserSomehow(NotificationSource.FLAG);
lastContextTextSource = LastContentTextSource.FLAG;
NumberFormat nf = NumberFormat.getIntegerInstance();