Index: main/Creature.java
===================================================================
--- main/Creature.java	(revision 8edd04e287f45041eeee2cb294847453e4c6aac4)
+++ main/Creature.java	(revision b2d7893da9fa84a56da5703be7a5610992874d30)
@@ -354,12 +354,12 @@
         imgProj = LostHavenRPG.imgBow;
       } else if (wType == ItemType.Spell) {
-        imgProj[0] = ImageIO.read(cr.getClass().getResource("../images/" + cr.type.toString() + "/proj.png"));
-        imgProj[1] = ImageIO.read(cr.getClass().getResource("../images/" + cr.type.toString() + "/proj.png"));
-        imgProj[2] = ImageIO.read(cr.getClass().getResource("../images/" + cr.type.toString() + "/proj.png"));
-        imgProj[3] = ImageIO.read(cr.getClass().getResource("../images/" + cr.type.toString() + "/proj.png"));
-        imgProj[4] = ImageIO.read(cr.getClass().getResource("../images/" + cr.type.toString() + "/proj.png"));
-        imgProj[5] = ImageIO.read(cr.getClass().getResource("../images/" + cr.type.toString() + "/proj.png"));
-        imgProj[6] = ImageIO.read(cr.getClass().getResource("../images/" + cr.type.toString() + "/proj.png"));
-        imgProj[7] = ImageIO.read(cr.getClass().getResource("../images/" + cr.type.toString() + "/proj.png"));
+        imgProj[0] = ImageIO.read(cr.getClass().getResource("/images/" + cr.type.toString() + "/proj.png"));
+        imgProj[1] = ImageIO.read(cr.getClass().getResource("/images/" + cr.type.toString() + "/proj.png"));
+        imgProj[2] = ImageIO.read(cr.getClass().getResource("/images/" + cr.type.toString() + "/proj.png"));
+        imgProj[3] = ImageIO.read(cr.getClass().getResource("/images/" + cr.type.toString() + "/proj.png"));
+        imgProj[4] = ImageIO.read(cr.getClass().getResource("/images/" + cr.type.toString() + "/proj.png"));
+        imgProj[5] = ImageIO.read(cr.getClass().getResource("/images/" + cr.type.toString() + "/proj.png"));
+        imgProj[6] = ImageIO.read(cr.getClass().getResource("/images/" + cr.type.toString() + "/proj.png"));
+        imgProj[7] = ImageIO.read(cr.getClass().getResource("/images/" + cr.type.toString() + "/proj.png"));
       }
       cr.model = cr.loadModel(cr.type.toString());
@@ -391,50 +391,50 @@
     BufferedImage walkE = null;
     BufferedImage walkW = null;
-    boolean hasDeathAnim = (getClass().getResource("../images/" + folder + "/Death1.png") != null);
+    boolean hasDeathAnim = (getClass().getResource("/images/" + folder + "/Death1.png") != null);
     try {
-      if (getClass().getResource("../images/" + folder + "/WalkN.png") != null) {
-        walkN = ImageIO.read(getClass().getResource("../images/" + folder + "/WalkN.png"));
+      if (getClass().getResource("/images/" + folder + "/WalkN.png") != null) {
+        walkN = ImageIO.read(getClass().getResource("/images/" + folder + "/WalkN.png"));
         anmWalkN.addFrame(walkN);
-        walkS = ImageIO.read(getClass().getResource("../images/" + folder + "/WalkS.png"));
+        walkS = ImageIO.read(getClass().getResource("/images/" + folder + "/WalkS.png"));
         anmWalkS.addFrame(walkS);
-        walkE = ImageIO.read(getClass().getResource("../images/" + folder + "/WalkE.png"));
+        walkE = ImageIO.read(getClass().getResource("/images/" + folder + "/WalkE.png"));
         anmWalkE.addFrame(walkE);
-        walkW = ImageIO.read(getClass().getResource("../images/" + folder + "/WalkW.png"));
+        walkW = ImageIO.read(getClass().getResource("/images/" + folder + "/WalkW.png"));
         anmWalkW.addFrame(walkW);
-      } else if (getClass().getResource("../images/" + folder + "/WalkN1.png") != null) {
-        walkN = ImageIO.read(getClass().getResource("../images/" + folder + "/WalkN1.png"));
+      } else if (getClass().getResource("/images/" + folder + "/WalkN1.png") != null) {
+        walkN = ImageIO.read(getClass().getResource("/images/" + folder + "/WalkN1.png"));
         anmWalkN.addFrame(walkN);
-        anmWalkN.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/WalkN2.png")));
-        walkS = ImageIO.read(getClass().getResource("../images/" + folder + "/WalkS1.png"));
+        anmWalkN.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/WalkN2.png")));
+        walkS = ImageIO.read(getClass().getResource("/images/" + folder + "/WalkS1.png"));
         anmWalkS.addFrame(walkS);
-        anmWalkS.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/WalkS2.png")));
-        walkE = ImageIO.read(getClass().getResource("../images/" + folder + "/WalkE1.png"));
+        anmWalkS.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/WalkS2.png")));
+        walkE = ImageIO.read(getClass().getResource("/images/" + folder + "/WalkE1.png"));
         anmWalkE.addFrame(walkE);
-        anmWalkE.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/WalkE2.png")));
-        walkW = ImageIO.read(getClass().getResource("../images/" + folder + "/WalkW1.png"));
+        anmWalkE.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/WalkE2.png")));
+        walkW = ImageIO.read(getClass().getResource("/images/" + folder + "/WalkW1.png"));
         anmWalkW.addFrame(walkW);
-        anmWalkW.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/WalkW2.png")));
+        anmWalkW.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/WalkW2.png")));
       } else {
         noAnims = true;
-        anmStandN.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmStandS.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmStandE.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmStandW.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmWalkN.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmWalkN.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmWalkS.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmWalkS.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmWalkE.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmWalkE.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmWalkW.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmWalkW.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmAttackN.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmAttackS.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmAttackE.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
-        anmAttackW.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/" + folder + ".png")));
+        anmStandN.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmStandS.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmStandE.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmStandW.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmWalkN.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmWalkN.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmWalkS.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmWalkS.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmWalkE.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmWalkE.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmWalkW.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmWalkW.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmAttackN.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmAttackS.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmAttackE.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
+        anmAttackW.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/" + folder + ".png")));
       }
       if (!noAnims) {
         BufferedImage standN, standS, standE, standW;
-        if (getClass().getResource("../images/" + folder + "/StandN.png") == null) {
+        if (getClass().getResource("/images/" + folder + "/StandN.png") == null) {
           standN = walkN;
           standS = walkS;
@@ -442,8 +442,8 @@
           standW = walkW;
         } else {
-          standN = ImageIO.read(getClass().getResource("../images/" + folder + "/StandN.png"));
-          standS = ImageIO.read(getClass().getResource("../images/" + folder + "/StandS.png"));
-          standE = ImageIO.read(getClass().getResource("../images/" + folder + "/StandE.png"));
-          standW = ImageIO.read(getClass().getResource("../images/" + folder + "/StandW.png"));
+          standN = ImageIO.read(getClass().getResource("/images/" + folder + "/StandN.png"));
+          standS = ImageIO.read(getClass().getResource("/images/" + folder + "/StandS.png"));
+          standE = ImageIO.read(getClass().getResource("/images/" + folder + "/StandE.png"));
+          standW = ImageIO.read(getClass().getResource("/images/" + folder + "/StandW.png"));
           anmWalkN = new Animation("north", 0, 0, 40, 60, 150, true);
           anmWalkS = new Animation("south", 0, 0, 40, 60, 150, true);
@@ -452,17 +452,17 @@
           anmWalkN.addFrame(walkN);
           anmWalkN.addFrame(standN);
-          anmWalkN.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/WalkN2.png")));
+          anmWalkN.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/WalkN2.png")));
           anmWalkN.addFrame(standN);
           anmWalkS.addFrame(walkS);
           anmWalkS.addFrame(standS);
-          anmWalkS.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/WalkS2.png")));
+          anmWalkS.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/WalkS2.png")));
           anmWalkS.addFrame(standS);
           anmWalkE.addFrame(walkE);
           anmWalkE.addFrame(standE);
-          anmWalkE.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/WalkE2.png")));
+          anmWalkE.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/WalkE2.png")));
           anmWalkE.addFrame(standE);
           anmWalkW.addFrame(walkW);
           anmWalkW.addFrame(standW);
-          anmWalkW.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/WalkW2.png")));
+          anmWalkW.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/WalkW2.png")));
           anmWalkW.addFrame(standW);
         } 
@@ -471,22 +471,22 @@
         anmStandE.addFrame(standE);
         anmStandW.addFrame(standW);
-        if (getClass().getResource("../images/" + folder + "/AttackN.png") != null) {
-          anmAttackN.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/AttackN.png")));
+        if (getClass().getResource("/images/" + folder + "/AttackN.png") != null) {
+          anmAttackN.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/AttackN.png")));
           anmAttackN.addFrame(standN);
-          anmAttackS.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/AttackS.png")));
+          anmAttackS.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/AttackS.png")));
           anmAttackS.addFrame(standS);
-          anmAttackE.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/AttackE.png")));
+          anmAttackE.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/AttackE.png")));
           anmAttackE.addFrame(standE);
-          anmAttackW.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/AttackW.png")));
+          anmAttackW.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/AttackW.png")));
           anmAttackW.addFrame(standW);
-        } else if (getClass().getResource("../images/" + folder + "/AttackN1.png") != null) {
-          anmAttackN.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/AttackN1.png")));
-          anmAttackN.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/AttackN2.png")));
-          anmAttackS.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/AttackS1.png")));
-          anmAttackS.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/AttackS2.png")));
-          anmAttackE.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/AttackE1.png")));
-          anmAttackE.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/AttackE2.png")));
-          anmAttackW.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/AttackW1.png")));
-          anmAttackW.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/AttackW2.png")));
+        } else if (getClass().getResource("/images/" + folder + "/AttackN1.png") != null) {
+          anmAttackN.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/AttackN1.png")));
+          anmAttackN.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/AttackN2.png")));
+          anmAttackS.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/AttackS1.png")));
+          anmAttackS.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/AttackS2.png")));
+          anmAttackE.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/AttackE1.png")));
+          anmAttackE.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/AttackE2.png")));
+          anmAttackW.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/AttackW1.png")));
+          anmAttackW.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/AttackW2.png")));
         } else {
           anmAttackN.addFrame(standN);
@@ -496,6 +496,6 @@
         } 
         if (hasDeathAnim) {
-          anmDeath.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/Death1.png")));
-          anmDeath.addFrame(ImageIO.read(getClass().getResource("../images/" + folder + "/Death2.png")));
+          anmDeath.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/Death1.png")));
+          anmDeath.addFrame(ImageIO.read(getClass().getResource("/images/" + folder + "/Death2.png")));
         } 
       }
Index: main/Item.java
===================================================================
--- main/Item.java	(revision 8edd04e287f45041eeee2cb294847453e4c6aac4)
+++ main/Item.java	(revision b2d7893da9fa84a56da5703be7a5610992874d30)
@@ -19,7 +19,8 @@
     this.loc = null;
     try {
-      this.img = ImageIO.read(getClass().getResource("../images/" + strImg));
-    } catch (IOException ioe) {
-      ioe.printStackTrace();
+      this.img = ImageIO.read(getClass().getResource("/images/" + strImg));
+    } catch (IOException | IllegalArgumentException e) {
+      System.out.println("Failed to load image: /images/" + strImg);
+      e.printStackTrace();
     }
   }
Index: main/LostHavenRPG.java
===================================================================
--- main/LostHavenRPG.java	(revision 8edd04e287f45041eeee2cb294847453e4c6aac4)
+++ main/LostHavenRPG.java	(revision b2d7893da9fa84a56da5703be7a5610992874d30)
@@ -122,5 +122,5 @@
       this.auxState = AuxState.None;
       loadMapElements();
-      this.imgMap = ImageIO.read(getClass().getResource("../images/mapLarge.png"));
+      this.imgMap = ImageIO.read(getClass().getResource("/images/mapLarge.png"));
       map = new Map("map.png", "structInfo2.txt", landMap, structMap, true);
       this.startPoint = new Point(7050, 6150);
@@ -165,13 +165,13 @@
     Animation anmTitle = new Animation("title", 144, 0, 512, 95, 83, true);
     try {
-      anmTitle.addFrame(ImageIO.read(getClass().getResource("../images/Frame1.png")));
-      anmTitle.addFrame(ImageIO.read(getClass().getResource("../images/Frame2.png")));
-      anmTitle.addFrame(ImageIO.read(getClass().getResource("../images/Frame3.png")));
-      anmTitle.addFrame(ImageIO.read(getClass().getResource("../images/Frame4.png")));
-      anmTitle.addFrame(ImageIO.read(getClass().getResource("../images/Frame5.png")));
-      imgSub = ImageIO.read(getClass().getResource("../images/imgSub.png"));
-      imgAdd = ImageIO.read(getClass().getResource("../images/imgAdd.png"));
-      imgSkillSub = ImageIO.read(getClass().getResource("../images/imgSkillSub.png"));
-      imgSkillAdd = ImageIO.read(getClass().getResource("../images/imgSkillAdd.png"));
+      anmTitle.addFrame(ImageIO.read(getClass().getResource("/images/Frame1.png")));
+      anmTitle.addFrame(ImageIO.read(getClass().getResource("/images/Frame2.png")));
+      anmTitle.addFrame(ImageIO.read(getClass().getResource("/images/Frame3.png")));
+      anmTitle.addFrame(ImageIO.read(getClass().getResource("/images/Frame4.png")));
+      anmTitle.addFrame(ImageIO.read(getClass().getResource("/images/Frame5.png")));
+      imgSub = ImageIO.read(getClass().getResource("/images/imgSub.png"));
+      imgAdd = ImageIO.read(getClass().getResource("/images/imgAdd.png"));
+      imgSkillSub = ImageIO.read(getClass().getResource("/images/imgSkillSub.png"));
+      imgSkillAdd = ImageIO.read(getClass().getResource("/images/imgSkillAdd.png"));
     } catch (IOException ioe) {
       ioe.printStackTrace();
@@ -322,5 +322,5 @@
       for (int x = 0; x < this.wndTutorials.length; x++) {
         this.wndTutorials[x] = new Window("tut" + x, 0, 0, 800, 600, true);
-        this.wndTutorials[x].add(new Button("screen", 0, 0, 800, 600, ImageIO.read(getClass().getResource("../images/Tutorial/ss" + (x + 1) + ".png"))));
+        this.wndTutorials[x].add(new Button("screen", 0, 0, 800, 600, ImageIO.read(getClass().getResource("/images/Tutorial/ss" + (x + 1) + ".png"))));
         this.wndTutorials[x].add(this.wndTutOptions);
         MultiTextbox multiTextbox = new MultiTextbox("text", 305, 5, 490, 100, "", false, font12, metrics);
@@ -432,12 +432,12 @@
     try {
       imgBow = new BufferedImage[8];
-      imgBow[0] = ImageIO.read(getClass().getResource("../images/projectiles/bowNN.png"));
-      imgBow[1] = ImageIO.read(getClass().getResource("../images/projectiles/bowNE.png"));
-      imgBow[2] = ImageIO.read(getClass().getResource("../images/projectiles/bowEE.png"));
-      imgBow[3] = ImageIO.read(getClass().getResource("../images/projectiles/bowSE.png"));
-      imgBow[4] = ImageIO.read(getClass().getResource("../images/projectiles/bowSS.png"));
-      imgBow[5] = ImageIO.read(getClass().getResource("../images/projectiles/bowSW.png"));
-      imgBow[6] = ImageIO.read(getClass().getResource("../images/projectiles/bowWW.png"));
-      imgBow[7] = ImageIO.read(getClass().getResource("../images/projectiles/bowNW.png"));
+      imgBow[0] = ImageIO.read(getClass().getResource("/images/projectiles/bowNN.png"));
+      imgBow[1] = ImageIO.read(getClass().getResource("/images/projectiles/bowNE.png"));
+      imgBow[2] = ImageIO.read(getClass().getResource("/images/projectiles/bowEE.png"));
+      imgBow[3] = ImageIO.read(getClass().getResource("/images/projectiles/bowSE.png"));
+      imgBow[4] = ImageIO.read(getClass().getResource("/images/projectiles/bowSS.png"));
+      imgBow[5] = ImageIO.read(getClass().getResource("/images/projectiles/bowSW.png"));
+      imgBow[6] = ImageIO.read(getClass().getResource("/images/projectiles/bowWW.png"));
+      imgBow[7] = ImageIO.read(getClass().getResource("/images/projectiles/bowNW.png"));
       BufferedReader in = new BufferedReader(new FileReader("items.txt"));
       while (in.ready()) {
@@ -487,8 +487,8 @@
     waterSprites = loadSprites("water");
     try {
-      passiveAura = ImageIO.read(getClass().getResource("../images/spells/auras/passiveAura.png"));
-      thornsAura = ImageIO.read(getClass().getResource("../images/spells/auras/thornsAura.png"));
-      confuseAura = ImageIO.read(getClass().getResource("../images/spells/auras/confuseAura.png"));
-      sandAura = ImageIO.read(getClass().getResource("../images/spells/auras/sandAura.png"));
+      passiveAura = ImageIO.read(getClass().getResource("/images/spells/auras/passiveAura.png"));
+      thornsAura = ImageIO.read(getClass().getResource("/images/spells/auras/thornsAura.png"));
+      confuseAura = ImageIO.read(getClass().getResource("/images/spells/auras/confuseAura.png"));
+      sandAura = ImageIO.read(getClass().getResource("/images/spells/auras/sandAura.png"));
     } catch (IOException ioe) {
       ioe.printStackTrace();
@@ -499,12 +499,12 @@
     BufferedImage[] sprites = new BufferedImage[8];
     try {
-      sprites[0] = ImageIO.read(getClass().getResource("../images/spells/" + name + "/" + name + "SpellNN.png"));
-      sprites[1] = ImageIO.read(getClass().getResource("../images/spells/" + name + "/" + name + "SpellNE.png"));
-      sprites[2] = ImageIO.read(getClass().getResource("../images/spells/" + name + "/" + name + "SpellEE.png"));
-      sprites[3] = ImageIO.read(getClass().getResource("../images/spells/" + name + "/" + name + "SpellSE.png"));
-      sprites[4] = ImageIO.read(getClass().getResource("../images/spells/" + name + "/" + name + "SpellSS.png"));
-      sprites[5] = ImageIO.read(getClass().getResource("../images/spells/" + name + "/" + name + "SpellSW.png"));
-      sprites[6] = ImageIO.read(getClass().getResource("../images/spells/" + name + "/" + name + "SpellWW.png"));
-      sprites[7] = ImageIO.read(getClass().getResource("../images/spells/" + name + "/" + name + "SpellNW.png"));
+      sprites[0] = ImageIO.read(getClass().getResource("/images/spells/" + name + "/" + name + "SpellNN.png"));
+      sprites[1] = ImageIO.read(getClass().getResource("/images/spells/" + name + "/" + name + "SpellNE.png"));
+      sprites[2] = ImageIO.read(getClass().getResource("/images/spells/" + name + "/" + name + "SpellEE.png"));
+      sprites[3] = ImageIO.read(getClass().getResource("/images/spells/" + name + "/" + name + "SpellSE.png"));
+      sprites[4] = ImageIO.read(getClass().getResource("/images/spells/" + name + "/" + name + "SpellSS.png"));
+      sprites[5] = ImageIO.read(getClass().getResource("/images/spells/" + name + "/" + name + "SpellSW.png"));
+      sprites[6] = ImageIO.read(getClass().getResource("/images/spells/" + name + "/" + name + "SpellWW.png"));
+      sprites[7] = ImageIO.read(getClass().getResource("/images/spells/" + name + "/" + name + "SpellNW.png"));
     } catch (IOException ioe) {
       ioe.printStackTrace();
Index: main/Map.java
===================================================================
--- main/Map.java	(revision 8edd04e287f45041eeee2cb294847453e4c6aac4)
+++ main/Map.java	(revision b2d7893da9fa84a56da5703be7a5610992874d30)
@@ -19,5 +19,5 @@
     if (readMapFromImage) {
       try {
-        BufferedImage img = ImageIO.read(getClass().getResource("../images/" + mapFile));
+        BufferedImage img = ImageIO.read(getClass().getResource("/images/" + mapFile));
         int length = img.getHeight();
         int height = img.getWidth();
@@ -101,5 +101,5 @@
     } else {
       try {
-        BufferedReader in = new BufferedReader(new FileReader("../" + mapFile));
+        BufferedReader in = new BufferedReader(new FileReader("/" + mapFile));
         String str = in.readLine();
         int length = Integer.parseInt(str.substring(0, str.indexOf("x")));
Index: main/MapElement.java
===================================================================
--- main/MapElement.java	(revision 8edd04e287f45041eeee2cb294847453e4c6aac4)
+++ main/MapElement.java	(revision b2d7893da9fa84a56da5703be7a5610992874d30)
@@ -18,7 +18,8 @@
   public MapElement(String imgFile, boolean passable) {
     try {
-      this.img = ImageIO.read(getClass().getResource("../images/" + imgFile));
+      this.img = ImageIO.read(getClass().getResource("/images/" + imgFile));
       this.passable = passable;
-    } catch (IOException ioe) {
+    } catch (Exception ioe) {
+      System.out.println("Failed to load image " + imgFile);
       ioe.printStackTrace();
     }
