X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ships%2FAlu.ship;h=ddd3a4e336d9d83be0ddeccfb4137d16e039092f;hb=6db6a33919f27f3c5bdfdb407138196c33d78c3e;hp=fa9dfd8ee1db408daf3102224bde2d0b57cb02ab;hpb=d880743076f26614db870469e0c66c5eb520d7dd;p=fleet.git diff --git a/ships/Alu.ship b/ships/Alu.ship index fa9dfd8..ddd3a4e 100644 --- a/ships/Alu.ship +++ b/ships/Alu.ship @@ -14,6 +14,9 @@ data in: inOp constant DROP1: 7 constant DROP2: 8 constant MAXMERGE: 9 + constant AND: 10 + constant OR: 11 + constant XOR: 12 data out: out @@ -88,31 +91,58 @@ public void service() { b = box_in2.removeDataForShip(); box_out.addDataFromShip(a-b); // SUB break; + + case 9: // MAXMERGE + if (box_in1.peekDataForShip()<0 && box_in2.peekDataForShip()<0) { + a = box_in1.removeDataForShip(); + b = box_in2.removeDataForShip(); + box_out.addDataFromShip(a, false); + break; + } + // fall through to MAX case 4: a = box_in1.peekDataForShip(); b = box_in2.peekDataForShip(); - box_out.addDataFromShip(Math.max(a,b)); // MAX - box_out.flag_c = !(a>b); - if (ab)); // MAX + if (a>b) box_in1.removeDataForShip(); else box_in2.removeDataForShip(); break; + case 5: a = box_in1.peekDataForShip(); b = box_in2.peekDataForShip(); - box_out.addDataFromShip(Math.min(a,b)); // MIN - box_out.flag_c = a>b; - if (a>b) box_in1.removeDataForShip(); else box_in2.removeDataForShip(); + box_out.addDataFromShip(Math.min(a,b), a>b); // MIN + if (a