From 9df052aa71f85ebd3c2f77348d0bce6c319f59c0 Mon Sep 17 00:00:00 2001
From: Piers <pwillic@essex.ac.uk>
Date: Fri, 12 Jun 2015 10:48:57 +0100
Subject: [PATCH] commited vectors properly

---
 src/asteroids/AsteroidTwoFace.java            |  4 +--
 src/asteroids/BotShip.java                    |  2 +-
 src/asteroids/GameObject.java                 |  8 +++---
 src/asteroids/GameState.java                  | 26 +++++++++----------
 src/asteroids/Ship.java                       |  6 ++---
 src/asteroids/View.java                       |  2 +-
 src/battle/NeuroShip.java                     |  6 ++---
 src/battle/SimpleBattle.java                  |  8 +++---
 .../controllers/Memo/MemoControllerUtils.java |  2 +-
 9 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/src/asteroids/AsteroidTwoFace.java b/src/asteroids/AsteroidTwoFace.java
index f27dee2..5725f62 100644
--- a/src/asteroids/AsteroidTwoFace.java
+++ b/src/asteroids/AsteroidTwoFace.java
@@ -84,10 +84,10 @@ public class AsteroidTwoFace extends Asteroid implements PolyContains {
             game.asteroidTwoFaceDeath(this);
         } else {
             // shoot a missile back at the ship
-            Missile m = new Missile(s, new Vector2d(0, 0));
+            Missile m = new Missile(s, new Vector2d(0, 0, true));
             double releaseVelocity = 5.0; // Math.min(releaseVelocity, maxRelease);
             m.ttl = 60;
-            Vector2d d = new Vector2d();
+            Vector2d d = new Vector2d(true);
             d.set(game.ship.s);
             d.subtract(s);
             d.normalise();
diff --git a/src/asteroids/BotShip.java b/src/asteroids/BotShip.java
index 89ea755..8bec589 100644
--- a/src/asteroids/BotShip.java
+++ b/src/asteroids/BotShip.java
@@ -11,7 +11,7 @@ import static asteroids.Constants.*;
 public class BotShip extends Ship {
 
     public BotShip(GameState game, Vector2d s, Vector2d v, Vector2d d) {
-        super(game, new Vector2d(rand.nextDouble() * width, rand.nextDouble() * height), v, d);
+        super(game, new Vector2d(rand.nextDouble() * width, rand.nextDouble() * height, true), v, d);
         d.rotate(rand.nextDouble() * 2 * Math.PI);
         // better to have constructors that capture all of the state
         action = new Action();
diff --git a/src/asteroids/GameObject.java b/src/asteroids/GameObject.java
index af2879f..a31c5a6 100644
--- a/src/asteroids/GameObject.java
+++ b/src/asteroids/GameObject.java
@@ -11,8 +11,8 @@ public abstract class GameObject {
     public double r;
 
     protected GameObject(Vector2d s, Vector2d v) {
-        this.s = new Vector2d(s);
-        this.v = new Vector2d(v);
+        this.s = new Vector2d(s, true);
+        this.v = new Vector2d(v, true);
     }
 
     public abstract void update();
@@ -20,8 +20,8 @@ public abstract class GameObject {
     public abstract GameObject copy();
 
     protected GameObject updateClone(GameObject copyObject) {
-        copyObject.s = new Vector2d(s);
-        copyObject.v = new Vector2d(v);
+        copyObject.s = new Vector2d(s, true);
+        copyObject.v = new Vector2d(v, true);
         copyObject.isTarget = isTarget;
         copyObject.dead = dead;
         copyObject.r = r;
diff --git a/src/asteroids/GameState.java b/src/asteroids/GameState.java
index ad5e3dc..02c1308 100644
--- a/src/asteroids/GameState.java
+++ b/src/asteroids/GameState.java
@@ -163,13 +163,13 @@ public class GameState {
     }
 
     private void makeAsteroids(int nAsteroids) {
-        Vector2d centre = new Vector2d(width / 2, height / 2);
+        Vector2d centre = new Vector2d(width / 2, height / 2, true);
         // assumes that the game object list is currently empty
         while (list.objects.size() < nAsteroids) {
             // choose a random position and velocity
             Vector2d s = new Vector2d(rand.nextDouble() * width,
-                    rand.nextDouble() * height);
-            Vector2d v = new Vector2d(rand.nextGaussian(), rand.nextGaussian());
+                    rand.nextDouble() * height, true);
+            Vector2d v = new Vector2d(rand.nextGaussian(), rand.nextGaussian(), true);
             if (s.dist(centre) > safeRadius && v.mag() > 0.5) {
                 // Asteroid a = new Asteroid(this, s, v, 0);
 
@@ -201,17 +201,17 @@ public class GameState {
 
     public void makeShip() {
         ship = new Ship(this,
-                new Vector2d(width / 2, height / 2),
-                new Vector2d(),
-                new Vector2d(0, -1));
+                new Vector2d(width / 2, height / 2, true),
+                new Vector2d(true),
+                new Vector2d(0, -1, true));
         add(ship);
     }
 
     public void makeBotShip() {
         BotShip ship = new BotShip(this,
-                new Vector2d(width / 2, height / 2),
-                new Vector2d(),
-                new Vector2d(0, -1));
+                new Vector2d(width / 2, height / 2, true),
+                new Vector2d(true),
+                new Vector2d(0, -1, true));
         add(ship);
     }
 
@@ -231,9 +231,9 @@ public class GameState {
         if (a.index < radii.length - 1) {
             // add some new ones at this position
             for (int i=0; i<nSplits; i++) {
-                Vector2d v1 = new Vector2d(a.v);
+                Vector2d v1 = new Vector2d(a.v, true);
                 v1.add(rand.nextGaussian(), rand.nextGaussian());
-                Asteroid a1 = new Asteroid(this, new Vector2d(a.s), v1, a.index + 1);
+                Asteroid a1 = new Asteroid(this, new Vector2d(a.s, true), v1, a.index + 1);
                 list.add(a1);
             }
         }
@@ -250,9 +250,9 @@ public class GameState {
         if (a.index < radii.length - 1) {
             // add some new ones at this position
             for (int i=0; i<nSplits; i++) {
-                Vector2d v1 = new Vector2d(a.v);
+                Vector2d v1 = new Vector2d(a.v, true);
                 v1.add(rand.nextGaussian(), rand.nextGaussian());
-                Asteroid a1 = new AsteroidTwoFace(this, new Vector2d(a.s), v1, a.index + 1);
+                Asteroid a1 = new AsteroidTwoFace(this, new Vector2d(a.s, true), v1, a.index + 1);
                 list.add(a1);
             }
         }
diff --git a/src/asteroids/Ship.java b/src/asteroids/Ship.java
index 36928bb..fdcd2d4 100644
--- a/src/asteroids/Ship.java
+++ b/src/asteroids/Ship.java
@@ -41,9 +41,9 @@ public class Ship extends GameObject {
 
 
     public Ship(GameState game, Vector2d s, Vector2d v, Vector2d d) {
-        super(new Vector2d(s), new Vector2d(v));
+        super(new Vector2d(s, true), new Vector2d(v, true));
         this.game = game;
-        this.d = new Vector2d(d);
+        this.d = new Vector2d(d, true);
     }
 
     public Ship copy() {
@@ -110,7 +110,7 @@ public class Ship extends GameObject {
         // System.out.println("Trying a missile launch");
         if (releaseVelocity > maxRelease) {
             releaseVelocity = Math.max(releaseVelocity, missileMinVelocity * 2);
-            Missile m = new Missile(s, new Vector2d(0, 0));
+            Missile m = new Missile(s, new Vector2d(0, 0, true));
             releaseVelocity = Math.min(releaseVelocity, maxRelease);
             m.v.add(d, releaseVelocity);
             // make it clear the ship
diff --git a/src/asteroids/View.java b/src/asteroids/View.java
index 39fda6e..e08c3e7 100644
--- a/src/asteroids/View.java
+++ b/src/asteroids/View.java
@@ -29,7 +29,7 @@ public class View extends JComponent {
     public View(GameState game) {
         this.game = game;
         scale = size.width - 2 * offset;
-        ship = new Ship(null, new Vector2d(), new Vector2d(), new Vector2d());
+        ship = new Ship(null, new Vector2d(true), new Vector2d(true), new Vector2d(true));
     }
 
     public void paintComponent(Graphics gx) {
diff --git a/src/battle/NeuroShip.java b/src/battle/NeuroShip.java
index 37a3826..54db61a 100644
--- a/src/battle/NeuroShip.java
+++ b/src/battle/NeuroShip.java
@@ -46,8 +46,8 @@ public class NeuroShip extends GameObject {
 
 
     public NeuroShip(Vector2d s, Vector2d v, Vector2d d, int playerID) {
-        super(new Vector2d(s), new Vector2d(v));
-        this.d = new Vector2d(d);
+        super(new Vector2d(s, true), new Vector2d(v, true));
+        this.d = new Vector2d(d, true);
         this.playerID = playerID;
     }
 
@@ -124,7 +124,7 @@ public class NeuroShip extends GameObject {
         // System.out.println("Trying a missile launch");
         if (releaseVelocity > maxRelease) {
             releaseVelocity = Math.max(releaseVelocity, missileMinVelocity * 2);
-            Missile m = new Missile(s, new Vector2d(0, 0));
+            Missile m = new Missile(s, new Vector2d(0, 0, true));
             releaseVelocity = Math.min(releaseVelocity, maxRelease);
             m.v.add(d, releaseVelocity);
             // make it clear the ship
diff --git a/src/battle/SimpleBattle.java b/src/battle/SimpleBattle.java
index 78e8926..7c79995 100644
--- a/src/battle/SimpleBattle.java
+++ b/src/battle/SimpleBattle.java
@@ -79,9 +79,9 @@ public class SimpleBattle {
     }
 
     protected NeuroShip buildShip(int x, int y, int playerID) {
-        Vector2d position = new Vector2d(x, y);
-        Vector2d speed = new Vector2d();
-        Vector2d direction = new Vector2d(1, 0);
+        Vector2d position = new Vector2d(x, y, true);
+        Vector2d speed = new Vector2d(true);
+        Vector2d direction = new Vector2d(1, 0, true);
 
         return new NeuroShip(position, speed, direction, playerID );
     }
@@ -206,7 +206,7 @@ public class SimpleBattle {
         NeuroShip currentShip = playerId == 0 ? s1 : s2;
         PlayerStats stats = this.stats.get(playerId);
         if (stats.nMissiles < nMissiles) {
-            Missile m = new Missile(s, new Vector2d(0, 0));
+            Missile m = new Missile(s, new Vector2d(0, 0, true));
             m.v.add(d, releaseVelocity);
             // make it clear the ship
             m.s.add(m.v, (currentShip.r() + missileRadius) * 1.5 / m.v.mag());
diff --git a/src/battle/controllers/Memo/MemoControllerUtils.java b/src/battle/controllers/Memo/MemoControllerUtils.java
index c9881a5..5d50411 100644
--- a/src/battle/controllers/Memo/MemoControllerUtils.java
+++ b/src/battle/controllers/Memo/MemoControllerUtils.java
@@ -10,7 +10,7 @@ public class MemoControllerUtils {
 
     // returns turn value (-1, 0, 1)
     static double lookAt(Vector2d s, Vector2d d, Vector2d lookat, double rot_threshold) {
-        Vector2d desired_rot_vec = new Vector2d(lookat);
+        Vector2d desired_rot_vec = new Vector2d(lookat, true);
 
         desired_rot_vec.add(s, -1);
 
-- 
GitLab