mirror of
https://github.com/simon987/Much-Assembly-Required.git
synced 2025-04-18 18:26:42 +00:00
Added memory location option for LiDAR GET_PATH. Fixes #140
This commit is contained in:
parent
04c837d692
commit
b361583252
@ -5,7 +5,6 @@ import net.simon987.server.assembly.Status;
|
||||
import net.simon987.server.game.objects.ControllableUnit;
|
||||
import net.simon987.server.game.pathfinding.Node;
|
||||
import net.simon987.server.game.pathfinding.Pathfinder;
|
||||
import net.simon987.server.logging.LogManager;
|
||||
import org.bson.Document;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -25,8 +24,6 @@ public class CubotLidar extends CubotHardwareModule {
|
||||
private static final int LIDAR_GET_WORLD_POS = 4;
|
||||
private static final int LIDAR_GET_WORLD_SIZE = 5;
|
||||
|
||||
private static final int MEMORY_PATH_START = 0x0000;
|
||||
|
||||
public CubotLidar(Cubot cubot) {
|
||||
super(cubot);
|
||||
}
|
||||
@ -52,6 +49,7 @@ public class CubotLidar extends CubotHardwareModule {
|
||||
break;
|
||||
case LIDAR_GET_PATH:
|
||||
if (cubot.spendEnergy(50)) {
|
||||
int c = getCpu().getRegisterSet().getRegister("C").getValue();
|
||||
int b = getCpu().getRegisterSet().getRegister("B").getValue();
|
||||
int destX = getCpu().getRegisterSet().getRegister("X").getValue();
|
||||
int destY = getCpu().getRegisterSet().getRegister("Y").getValue();
|
||||
@ -63,7 +61,7 @@ public class CubotLidar extends CubotHardwareModule {
|
||||
//Write to memory
|
||||
Memory mem = getCpu().getMemory();
|
||||
|
||||
int counter = MEMORY_PATH_START;
|
||||
int counter = c;
|
||||
|
||||
if (nodes != null) {
|
||||
|
||||
@ -71,7 +69,6 @@ public class CubotLidar extends CubotHardwareModule {
|
||||
|
||||
for (Node n : nodes) {
|
||||
//Store the path as a sequence of directions
|
||||
|
||||
if (lastNode == null) {
|
||||
lastNode = n;
|
||||
continue;
|
||||
@ -100,8 +97,6 @@ public class CubotLidar extends CubotHardwareModule {
|
||||
//Indicate invalid path 0xFFFF
|
||||
mem.set(counter, 0xFFFF);
|
||||
}
|
||||
|
||||
LogManager.LOGGER.fine("DEBUG: path to" + destX + "," + destY);
|
||||
}
|
||||
|
||||
break;
|
||||
@ -118,7 +113,6 @@ public class CubotLidar extends CubotHardwareModule {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case LIDAR_GET_WORLD_SIZE:
|
||||
|
@ -540,9 +540,10 @@ public class Assembler {
|
||||
}
|
||||
|
||||
//Check operands and encode instruction
|
||||
final int beginIndex = line.indexOf(mnemonic) + mnemonic.length();
|
||||
if (line.contains(",")) {
|
||||
//2 operands
|
||||
String strO1 = line.substring(line.indexOf(mnemonic) + mnemonic.length(), line.indexOf(','));
|
||||
String strO1 = line.substring(beginIndex, line.indexOf(','));
|
||||
String strO2 = line.substring(line.indexOf(','));
|
||||
|
||||
Operand o1, o2;
|
||||
@ -562,7 +563,7 @@ public class Assembler {
|
||||
} else if (tokens.length > 1) {
|
||||
//1 operand
|
||||
|
||||
String strO1 = line.substring(line.indexOf(mnemonic) + mnemonic.length());
|
||||
String strO1 = line.substring(beginIndex);
|
||||
|
||||
Operand o1;
|
||||
if (assumeLabels) {
|
||||
@ -583,6 +584,5 @@ public class Assembler {
|
||||
}
|
||||
|
||||
return out.toByteArray();
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ keyStore_password=
|
||||
#Server
|
||||
mar_address=ws://localhost:4567/socket
|
||||
server_name=MAR dev
|
||||
# ALLOW | TEMPORARY | BLOCK
|
||||
# ALLOW | BLOCK
|
||||
guest_policy=ALLOW
|
||||
|
||||
#Database
|
||||
|
Loading…
x
Reference in New Issue
Block a user