Added untested worm bit size check and added missing octal shifts
This commit is contained in:
parent
2179614b2a
commit
4dcba6b3d2
|
@ -304,14 +304,16 @@ public class FourCornerZionStenoLexer {
|
|||
if (lexer.sandwormSign) {
|
||||
lexer.smokeSignals.burnSandWormSignUnused(lexer.sandwormSignLine, lexer.sandwormSignColumn);
|
||||
}
|
||||
int bitSize = 0;
|
||||
int bitIdxLast = 0;
|
||||
int[] sandWalking = new int[576];
|
||||
for (int i = idxFirst; i <= idxLast; i++) {
|
||||
int bitIdx = lexer.input.get(i);
|
||||
if (bitIdx < bitIdxLast) {
|
||||
if (bitIdx != 0 && bitIdx < bitIdxLast) {
|
||||
lexer.smokeSignals.burnSandWormSignOutOfOrder(lexer.currLine, lexer.currCol);
|
||||
return;
|
||||
}
|
||||
bitSize++;
|
||||
bitIdxLast = bitIdx;
|
||||
int bitOff = bitIdx - FourCornerDotCake.FC_SAND_OLGOI.getStart();
|
||||
sandWalking[bitOff] = 1;
|
||||
|
@ -320,7 +322,12 @@ public class FourCornerZionStenoLexer {
|
|||
PrimitiveIterator.OfInt i = Arrays.stream(sandWalking).iterator();
|
||||
int octalIdx = 2;
|
||||
int octalValue = 0;
|
||||
int bitSizeCounter = 0;
|
||||
while (i.hasNext()) {
|
||||
if (bitSizeCounter > bitSize) {
|
||||
break; // the sand walk bit pulses are always full size
|
||||
}
|
||||
bitSizeCounter++;
|
||||
int bitValue = i.nextInt();
|
||||
octalValue += bitValue << octalIdx;
|
||||
if (octalIdx > 0) {
|
||||
|
@ -366,21 +373,21 @@ public class FourCornerZionStenoLexer {
|
|||
int octal2 = 0;
|
||||
int octal1 = 0;
|
||||
int octal0 = 0;
|
||||
octal4 += (bitValue15 >> 14) & 0b1;
|
||||
octal4 += (bitValue15 >> 13) & 0b1;
|
||||
octal4 += (bitValue15 >> 12) & 0b1;
|
||||
octal3 += (bitValue15 >> 11) & 0b1;
|
||||
octal3 += (bitValue15 >> 10) & 0b1;
|
||||
octal3 += (bitValue15 >> 9) & 0b1;
|
||||
octal2 += (bitValue15 >> 8) & 0b1;
|
||||
octal2 += (bitValue15 >> 7) & 0b1;
|
||||
octal2 += (bitValue15 >> 6) & 0b1;
|
||||
octal1 += (bitValue15 >> 5) & 0b1;
|
||||
octal1 += (bitValue15 >> 4) & 0b1;
|
||||
octal1 += (bitValue15 >> 3) & 0b1;
|
||||
octal0 += (bitValue15 >> 2) & 0b1;
|
||||
octal0 += (bitValue15 >> 1) & 0b1;
|
||||
octal0 += (bitValue15 >> 0) & 0b1;
|
||||
octal4 += ((bitValue15 >> 14) & 0b1) << 2;
|
||||
octal4 += ((bitValue15 >> 13) & 0b1) << 1;
|
||||
octal4 += ((bitValue15 >> 12) & 0b1) << 0;
|
||||
octal3 += ((bitValue15 >> 11) & 0b1) << 2;
|
||||
octal3 += ((bitValue15 >> 10) & 0b1) << 1;
|
||||
octal3 += ((bitValue15 >> 9) & 0b1) << 0;
|
||||
octal2 += ((bitValue15 >> 8) & 0b1) << 2;
|
||||
octal2 += ((bitValue15 >> 7) & 0b1) << 1;
|
||||
octal2 += ((bitValue15 >> 6) & 0b1) << 0;
|
||||
octal1 += ((bitValue15 >> 5) & 0b1) << 2;
|
||||
octal1 += ((bitValue15 >> 4) & 0b1) << 1;
|
||||
octal1 += ((bitValue15 >> 3) & 0b1) << 0;
|
||||
octal0 += ((bitValue15 >> 2) & 0b1) << 2;
|
||||
octal0 += ((bitValue15 >> 1) & 0b1) << 1;
|
||||
octal0 += ((bitValue15 >> 0) & 0b1) << 0;
|
||||
wormBody.add(octal4);
|
||||
wormBody.add(octal3);
|
||||
wormBody.add(octal2);
|
||||
|
|
Loading…
Reference in a new issue