From 88e4ec3c2db4342dc680d6b5cf9c4dc6f45a7b68 Mon Sep 17 00:00:00 2001
From: Rtch90 <ritchie.cunningham@protonmail.com>
Date: Wed, 1 Feb 2012 16:09:05 +0000
Subject: [PATCH] [Add] Adding some vector math, It is not complete yet. But
 just to let you know I AM working! :D

---
 Unuk-QT/Makefile            | 153 +++++++++++++++++++-----------------
 Unuk-QT/Unuk-QT.pro         |   6 +-
 src/libUnuk/System/Vec2.cpp |  24 ++++++
 src/libUnuk/System/Vec2.h   | 102 ++++++++++++++++++++++++
 4 files changed, 210 insertions(+), 75 deletions(-)
 create mode 100644 src/libUnuk/System/Vec2.cpp
 create mode 100644 src/libUnuk/System/Vec2.h

diff --git a/Unuk-QT/Makefile b/Unuk-QT/Makefile
index c949dbb..3489343 100644
--- a/Unuk-QT/Makefile
+++ b/Unuk-QT/Makefile
@@ -1,25 +1,25 @@
 #############################################################################
 # Makefile for building: Unuk-QT
-# Generated by qmake (2.01a) (Qt 4.7.4) on: Mon Jan 30 01:06:11 2012
+# Generated by qmake (2.01a) (Qt 4.7.4) on: Wed Feb 1 16:03:50 2012
 # Project:  Unuk-QT.pro
 # Template: app
-# Command: /home/kono/QtSDK/Desktop/Qt/474/gcc/bin/qmake -spec ../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro
+# Command: /usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro
 #############################################################################
 
 ####### Compiler, tools and options
 
 CC            = gcc
 CXX           = g++
-DEFINES       = -DQT_GUI_LIB -DQT_CORE_LIB
+DEFINES       = -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
 CFLAGS        = -pipe -g -Wall -W -D_REENTRANT $(DEFINES)
 CXXFLAGS      = -pipe -g -Wall -W -D_REENTRANT $(DEFINES)
-INCPATH       = -I../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/linux-g++ -I. -I../../../QtSDK/Desktop/Qt/474/gcc/include/QtCore -I../../../QtSDK/Desktop/Qt/474/gcc/include/QtGui -I../../../QtSDK/Desktop/Qt/474/gcc/include -I.
+INCPATH       = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I.
 LINK          = g++
-LFLAGS        = -Wl,-rpath,/home/kono/QtSDK/Desktop/Qt/474/gcc/lib
-LIBS          = $(SUBLIBS)  -L/home/kono/QtSDK/Desktop/Qt/474/gcc/lib -lGL -lSDL -lSDL_ttf -lSDL_image -lSDL_gfx -ltinyxml -lGLU -lQtGui -lQtCore -lpthread 
+LFLAGS        = 
+LIBS          = $(SUBLIBS)  -L/usr/lib -lGL -lSDL -lSDL_ttf -lSDL_image -lSDL_gfx -ltinyxml -lGLU -lQtGui -lQtCore -lpthread 
 AR            = ar cqs
 RANLIB        = 
-QMAKE         = /home/kono/QtSDK/Desktop/Qt/474/gcc/bin/qmake
+QMAKE         = /usr/bin/qmake-qt4
 TAR           = tar -cf
 COMPRESS      = gzip -9f
 COPY          = cp -f
@@ -74,7 +74,8 @@ SOURCES       = ../src/libUnuk/Engine/WorldManager.cpp \
 		../src/libUnuk/LevelGen/MapEntities.cpp \
 		../src/libUnuk/LevelGen/MapElement.cpp \
 		../src/libUnuk/UI/EventHistory.cpp \
-		../src/libUnuk/UI/Bar.cpp 
+		../src/libUnuk/UI/Bar.cpp \
+		../src/libUnuk/System/Vec2.cpp 
 OBJECTS       = WorldManager.o \
 		ParticleEmitter.o \
 		NPC.o \
@@ -106,27 +107,27 @@ OBJECTS       = WorldManager.o \
 		MapEntities.o \
 		MapElement.o \
 		EventHistory.o \
-		Bar.o
-DIST          = ../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/common/g++.conf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/common/unix.conf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/common/linux.conf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/qconfig.pri \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/modules/qt_webkit_version.pri \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/qt_functions.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/qt_config.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/exclusive_builds.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/default_pre.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/debug.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/default_post.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/warn_on.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/qt.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/unix/thread.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/moc.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/resources.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/uic.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/yacc.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/lex.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/include_source_dir.prf \
+		Bar.o \
+		Vec2.o
+DIST          = /usr/share/qt4/mkspecs/common/g++.conf \
+		/usr/share/qt4/mkspecs/common/unix.conf \
+		/usr/share/qt4/mkspecs/common/linux.conf \
+		/usr/share/qt4/mkspecs/qconfig.pri \
+		/usr/share/qt4/mkspecs/features/qt_functions.prf \
+		/usr/share/qt4/mkspecs/features/qt_config.prf \
+		/usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+		/usr/share/qt4/mkspecs/features/default_pre.prf \
+		/usr/share/qt4/mkspecs/features/debug.prf \
+		/usr/share/qt4/mkspecs/features/default_post.prf \
+		/usr/share/qt4/mkspecs/features/warn_on.prf \
+		/usr/share/qt4/mkspecs/features/qt.prf \
+		/usr/share/qt4/mkspecs/features/unix/thread.prf \
+		/usr/share/qt4/mkspecs/features/moc.prf \
+		/usr/share/qt4/mkspecs/features/resources.prf \
+		/usr/share/qt4/mkspecs/features/uic.prf \
+		/usr/share/qt4/mkspecs/features/yacc.prf \
+		/usr/share/qt4/mkspecs/features/lex.prf \
+		/usr/share/qt4/mkspecs/features/include_source_dir.prf \
 		Unuk-QT.pro
 QMAKE_TARGET  = Unuk-QT
 DESTDIR       = 
@@ -159,53 +160,55 @@ all: Makefile $(TARGET)
 $(TARGET):  $(OBJECTS)  
 	$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
 
-Makefile: Unuk-QT.pro  ../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/linux-g++/qmake.conf ../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/common/g++.conf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/common/unix.conf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/common/linux.conf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/qconfig.pri \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/modules/qt_webkit_version.pri \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/qt_functions.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/qt_config.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/exclusive_builds.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/default_pre.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/debug.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/default_post.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/warn_on.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/qt.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/unix/thread.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/moc.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/resources.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/uic.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/yacc.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/lex.prf \
-		../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/include_source_dir.prf
-	$(QMAKE) -spec ../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/common/g++.conf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/common/unix.conf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/common/linux.conf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/qconfig.pri:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/modules/qt_webkit_version.pri:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/qt_functions.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/qt_config.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/exclusive_builds.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/default_pre.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/debug.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/default_post.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/warn_on.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/qt.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/unix/thread.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/moc.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/resources.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/uic.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/yacc.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/lex.prf:
-../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/features/include_source_dir.prf:
+Makefile: Unuk-QT.pro  /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/g++.conf \
+		/usr/share/qt4/mkspecs/common/unix.conf \
+		/usr/share/qt4/mkspecs/common/linux.conf \
+		/usr/share/qt4/mkspecs/qconfig.pri \
+		/usr/share/qt4/mkspecs/features/qt_functions.prf \
+		/usr/share/qt4/mkspecs/features/qt_config.prf \
+		/usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+		/usr/share/qt4/mkspecs/features/default_pre.prf \
+		/usr/share/qt4/mkspecs/features/debug.prf \
+		/usr/share/qt4/mkspecs/features/default_post.prf \
+		/usr/share/qt4/mkspecs/features/warn_on.prf \
+		/usr/share/qt4/mkspecs/features/qt.prf \
+		/usr/share/qt4/mkspecs/features/unix/thread.prf \
+		/usr/share/qt4/mkspecs/features/moc.prf \
+		/usr/share/qt4/mkspecs/features/resources.prf \
+		/usr/share/qt4/mkspecs/features/uic.prf \
+		/usr/share/qt4/mkspecs/features/yacc.prf \
+		/usr/share/qt4/mkspecs/features/lex.prf \
+		/usr/share/qt4/mkspecs/features/include_source_dir.prf \
+		/usr/lib/libQtGui.prl \
+		/usr/lib/libQtCore.prl
+	$(QMAKE) -spec /usr/share/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro
+/usr/share/qt4/mkspecs/common/g++.conf:
+/usr/share/qt4/mkspecs/common/unix.conf:
+/usr/share/qt4/mkspecs/common/linux.conf:
+/usr/share/qt4/mkspecs/qconfig.pri:
+/usr/share/qt4/mkspecs/features/qt_functions.prf:
+/usr/share/qt4/mkspecs/features/qt_config.prf:
+/usr/share/qt4/mkspecs/features/exclusive_builds.prf:
+/usr/share/qt4/mkspecs/features/default_pre.prf:
+/usr/share/qt4/mkspecs/features/debug.prf:
+/usr/share/qt4/mkspecs/features/default_post.prf:
+/usr/share/qt4/mkspecs/features/warn_on.prf:
+/usr/share/qt4/mkspecs/features/qt.prf:
+/usr/share/qt4/mkspecs/features/unix/thread.prf:
+/usr/share/qt4/mkspecs/features/moc.prf:
+/usr/share/qt4/mkspecs/features/resources.prf:
+/usr/share/qt4/mkspecs/features/uic.prf:
+/usr/share/qt4/mkspecs/features/yacc.prf:
+/usr/share/qt4/mkspecs/features/lex.prf:
+/usr/share/qt4/mkspecs/features/include_source_dir.prf:
+/usr/lib/libQtGui.prl:
+/usr/lib/libQtCore.prl:
 qmake:  FORCE
-	@$(QMAKE) -spec ../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro
+	@$(QMAKE) -spec /usr/share/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro
 
 dist: 
 	@$(CHK_DIR_EXISTS) .tmp/Unuk-QT1.0.0 || $(MKDIR) .tmp/Unuk-QT1.0.0 
-	$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/Libs/wglext.h ../src/Libs/glxext.h ../src/libUnuk/Engine/WorldManager.h ../src/libUnuk/Engine/ParticleEmitter.h ../src/libUnuk/Engine/NPC.h ../src/libUnuk/Engine/MemManager.h ../src/libUnuk/Engine/MemClass.h ../src/libUnuk/Engine/Collision.h ../src/libUnuk/Engine/Character.h ../src/libUnuk/Engine/AStarBase.h ../src/libUnuk/Engine/AStar.h ../src/libUnuk/Sprite/TextureManager.h ../src/libUnuk/Sprite/Texture.h ../src/libUnuk/Sprite/ImageLoader.h ../src/libUnuk/Sprite/ApplySurface.h ../src/libUnuk/System/Rect.h ../src/libUnuk/System/Input.h ../src/libUnuk/System/FPS.h ../src/libUnuk/System/Debug.h ../src/libUnuk/System/Timer.h ../src/libUnuk/UI/MainMenu.h ../src/libUnuk/UI/IngameMenu.h ../src/libUnuk/UI/Font.h ../src/libUnuk/UI/ButtonToggle.h ../src/libUnuk/UI/ButtonGroup.h ../src/libUnuk/UI/Button.h ../src/libUnuk/UI/Text.h ../src/Unuk/Globals.h ../src/Unuk/Game.h ../src/Unuk/Constants.h ../src/Unuk/Player.h ../src/libUnuk/LevelGen/LevelGen.h ../src/libUnuk/LevelGen/MapEntities.h ../src/libUnuk/LevelGen/MapElement.h ../src/libUnuk/LevelGen/MapTile.h ../src/libUnuk/UI/EventHistory.h ../src/libUnuk/UI/Bar.h .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Engine/WorldManager.cpp ../src/libUnuk/Engine/ParticleEmitter.cpp ../src/libUnuk/Engine/NPC.cpp ../src/libUnuk/Engine/MemManager.cpp ../src/libUnuk/Engine/Collision.cpp ../src/libUnuk/Engine/Character.cpp ../src/libUnuk/Engine/AStar.cpp ../src/libUnuk/Sprite/TextureManager.cpp ../src/libUnuk/Sprite/Texture.cpp ../src/libUnuk/Sprite/ImageLoader.cpp ../src/libUnuk/Sprite/ApplySurface.cpp ../src/libUnuk/System/Timer.cpp ../src/libUnuk/System/Rect.cpp ../src/libUnuk/System/Input.cpp ../src/libUnuk/System/FPS.cpp ../src/libUnuk/System/Debug.cpp ../src/libUnuk/UI/Text.cpp ../src/libUnuk/UI/MainMenu.cpp ../src/libUnuk/UI/IngameMenu.cpp ../src/libUnuk/UI/Font.cpp ../src/libUnuk/UI/ButtonToggle.cpp ../src/libUnuk/UI/ButtonGroup.cpp ../src/libUnuk/UI/Button.cpp ../src/Unuk/Player.cpp ../src/Unuk/main.cpp ../src/Unuk/Globals.cpp ../src/Unuk/Game.cpp ../src/libUnuk/LevelGen/LevelGen.cpp ../src/libUnuk/LevelGen/MapEntities.cpp ../src/libUnuk/LevelGen/MapElement.cpp ../src/libUnuk/UI/EventHistory.cpp ../src/libUnuk/UI/Bar.cpp .tmp/Unuk-QT1.0.0/ && (cd `dirname .tmp/Unuk-QT1.0.0` && $(TAR) Unuk-QT1.0.0.tar Unuk-QT1.0.0 && $(COMPRESS) Unuk-QT1.0.0.tar) && $(MOVE) `dirname .tmp/Unuk-QT1.0.0`/Unuk-QT1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/Unuk-QT1.0.0
+	$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/Libs/wglext.h ../src/Libs/glxext.h ../src/libUnuk/Engine/WorldManager.h ../src/libUnuk/Engine/ParticleEmitter.h ../src/libUnuk/Engine/NPC.h ../src/libUnuk/Engine/MemManager.h ../src/libUnuk/Engine/MemClass.h ../src/libUnuk/Engine/Collision.h ../src/libUnuk/Engine/Character.h ../src/libUnuk/Engine/AStarBase.h ../src/libUnuk/Engine/AStar.h ../src/libUnuk/Sprite/TextureManager.h ../src/libUnuk/Sprite/Texture.h ../src/libUnuk/Sprite/ImageLoader.h ../src/libUnuk/Sprite/ApplySurface.h ../src/libUnuk/System/Rect.h ../src/libUnuk/System/Input.h ../src/libUnuk/System/FPS.h ../src/libUnuk/System/Debug.h ../src/libUnuk/System/Timer.h ../src/libUnuk/UI/MainMenu.h ../src/libUnuk/UI/IngameMenu.h ../src/libUnuk/UI/Font.h ../src/libUnuk/UI/ButtonToggle.h ../src/libUnuk/UI/ButtonGroup.h ../src/libUnuk/UI/Button.h ../src/libUnuk/UI/Text.h ../src/Unuk/Globals.h ../src/Unuk/Game.h ../src/Unuk/Constants.h ../src/Unuk/Player.h ../src/libUnuk/LevelGen/LevelGen.h ../src/libUnuk/LevelGen/MapEntities.h ../src/libUnuk/LevelGen/MapElement.h ../src/libUnuk/LevelGen/MapTile.h ../src/libUnuk/UI/EventHistory.h ../src/libUnuk/UI/Bar.h ../src/libUnuk/System/Vec2.h .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Engine/WorldManager.cpp ../src/libUnuk/Engine/ParticleEmitter.cpp ../src/libUnuk/Engine/NPC.cpp ../src/libUnuk/Engine/MemManager.cpp ../src/libUnuk/Engine/Collision.cpp ../src/libUnuk/Engine/Character.cpp ../src/libUnuk/Engine/AStar.cpp ../src/libUnuk/Sprite/TextureManager.cpp ../src/libUnuk/Sprite/Texture.cpp ../src/libUnuk/Sprite/ImageLoader.cpp ../src/libUnuk/Sprite/ApplySurface.cpp ../src/libUnuk/System/Timer.cpp ../src/libUnuk/System/Rect.cpp ../src/libUnuk/System/Input.cpp ../src/libUnuk/System/FPS.cpp ../src/libUnuk/System/Debug.cpp ../src/libUnuk/UI/Text.cpp ../src/libUnuk/UI/MainMenu.cpp ../src/libUnuk/UI/IngameMenu.cpp ../src/libUnuk/UI/Font.cpp ../src/libUnuk/UI/ButtonToggle.cpp ../src/libUnuk/UI/ButtonGroup.cpp ../src/libUnuk/UI/Button.cpp ../src/Unuk/Player.cpp ../src/Unuk/main.cpp ../src/Unuk/Globals.cpp ../src/Unuk/Game.cpp ../src/libUnuk/LevelGen/LevelGen.cpp ../src/libUnuk/LevelGen/MapEntities.cpp ../src/libUnuk/LevelGen/MapElement.cpp ../src/libUnuk/UI/EventHistory.cpp ../src/libUnuk/UI/Bar.cpp ../src/libUnuk/System/Vec2.cpp .tmp/Unuk-QT1.0.0/ && (cd `dirname .tmp/Unuk-QT1.0.0` && $(TAR) Unuk-QT1.0.0.tar Unuk-QT1.0.0 && $(COMPRESS) Unuk-QT1.0.0.tar) && $(MOVE) `dirname .tmp/Unuk-QT1.0.0`/Unuk-QT1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/Unuk-QT1.0.0
 
 
 clean:compiler_clean 
@@ -269,7 +272,8 @@ WorldManager.o: ../src/libUnuk/Engine/WorldManager.cpp ../src/libUnuk/Engine/Wor
 		../src/libUnuk/UI/Bar.h \
 		../src/libUnuk/System/Rect.h \
 		../src/libUnuk/Engine/AStar.h \
-		../src/libUnuk/Engine/AStarBase.h
+		../src/libUnuk/Engine/AStarBase.h \
+		../src/Unuk/Player.h
 	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o WorldManager.o ../src/libUnuk/Engine/WorldManager.cpp
 
 ParticleEmitter.o: ../src/libUnuk/Engine/ParticleEmitter.cpp ../src/libUnuk/Engine/ParticleEmitter.h \
@@ -619,6 +623,9 @@ Bar.o: ../src/libUnuk/UI/Bar.cpp ../src/libUnuk/UI/Bar.h \
 		../src/libUnuk/System/Debug.h
 	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Bar.o ../src/libUnuk/UI/Bar.cpp
 
+Vec2.o: ../src/libUnuk/System/Vec2.cpp ../src/libUnuk/System/Vec2.h
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Vec2.o ../src/libUnuk/System/Vec2.cpp
+
 ####### Install
 
 install:   FORCE
diff --git a/Unuk-QT/Unuk-QT.pro b/Unuk-QT/Unuk-QT.pro
index 6fc3c6f..47e5213 100644
--- a/Unuk-QT/Unuk-QT.pro
+++ b/Unuk-QT/Unuk-QT.pro
@@ -41,7 +41,8 @@ HEADERS += ../src/Libs/wglext.h \
     ../src/libUnuk/LevelGen/MapElement.h \
     ../src/libUnuk/LevelGen/MapTile.h \
     ../src/libUnuk/UI/EventHistory.h \
-    ../src/libUnuk/UI/Bar.h
+    ../src/libUnuk/UI/Bar.h \
+    ../src/libUnuk/System/Vec2.h
 SOURCES += ../src/libUnuk/Engine/WorldManager.cpp \
     ../src/libUnuk/Engine/ParticleEmitter.cpp \
     ../src/libUnuk/Engine/NPC.cpp \
@@ -73,5 +74,6 @@ SOURCES += ../src/libUnuk/Engine/WorldManager.cpp \
     ../src/libUnuk/LevelGen/MapEntities.cpp \
     ../src/libUnuk/LevelGen/MapElement.cpp \
     ../src/libUnuk/UI/EventHistory.cpp \
-    ../src/libUnuk/UI/Bar.cpp
+    ../src/libUnuk/UI/Bar.cpp \
+    ../src/libUnuk/System/Vec2.cpp
 OTHER_FILES += 
diff --git a/src/libUnuk/System/Vec2.cpp b/src/libUnuk/System/Vec2.cpp
new file mode 100644
index 0000000..edfd04e
--- /dev/null
+++ b/src/libUnuk/System/Vec2.cpp
@@ -0,0 +1,24 @@
+#include <math.h>
+
+#include "Vec2.h"
+
+Vec2 Vec2::Zero(0.0f, 0.0f);
+Vec2 Vec2::One(1.0f, 1.0f);
+Vec2 Vec2::UnitX(1.0f, 0.0f);
+Vec2 Vec2::UnitY(0.0f, 1.0f);
+
+Vec2::Vec2(void) : x(0), y(0) {
+
+}
+
+Vec2::Vec2(float xArg, float yArg) : x(xArg), y(yArg) {
+
+}
+
+Vec2::Vec2(float value) : x(value), y(value) {
+
+}
+
+Vec2::Vec2(const Vec2i &copy) : x(copy.x), y(copy.y) {
+
+}
diff --git a/src/libUnuk/System/Vec2.h b/src/libUnuk/System/Vec2.h
new file mode 100644
index 0000000..893e2b0
--- /dev/null
+++ b/src/libUnuk/System/Vec2.h
@@ -0,0 +1,102 @@
+// I am drunk right now. Forgive me for any stupidity.
+
+#pragma once
+#include <vector>
+
+// A handy structure for passing around 2D integer coords.
+struct Vec2i {
+	int x, y;
+	Vec2i(int xArg, int yArg) : x(xArg), y(yArg) {}
+	Vec2i(void) : x(0), y(0) {}
+};
+
+struct Vec2 {
+	// Initialize a zero-length vector (0, 0).
+	Vec2(void);
+	// Initialize a vector to a set dimension.
+	Vec2(float xArg, float yArg);
+	// Initialize a vector to a uniform dimension
+	Vec2(float value);
+	// Copy from the Vec2i to be converted into a Vec2
+	Vec2(const Vec2i& copy);
+
+	// A reference to a zero-length vector (0, 0)
+	static Vec2 Zero;
+
+	// A reference to a (1, 1) vector.
+	static Vec2 One;
+
+	// A reference to a (1, 0) vecor.
+	static Vec2 UnitX;
+
+	// A reference to a (0, 1) vector.
+	static Vec2 UnitY;
+
+	// Get the absolute magnitude of the vector. -- Uses a square root.
+	float Length(void);
+
+	// Get the squared magnitude of the vector -- Just in case we only care about comparison.
+	float LengthSquared(void);
+
+	// Get absolute distance between two points. -- Uses a square root.
+	static float Distance(const Vec2& value1, const Vec2& value2);
+
+	// In case we only care about comparison..
+	static float DistanceSquared(const Vec2& value1, const Vec2& value2);
+
+	// Get the dot product of two vectors.
+	static float Dot(const Vec2& value1, Vec2& value2);
+
+	/* Get the cross product of two vectors. Note that the \b mathmatical
+	 * definition of a cross product results in another vector oeroendicular
+	 * to the two inputs, but since both of our vectors are 2D, the returned
+	 * vector will always have x and y components of 0. This this function
+	 * returns what would be the z component vector.
+	 */
+	static float Cross(const Vec2& value1, Vec2& value2);
+
+	// Normalize a vector in place.
+	void Normalize(void);
+
+	// Get the normalized value for a Vec2 without affecting the original.
+	static Vec2 Normalize(const Vec2& value);
+
+	// Reflect the vector around another.
+	static Vec2 Reflect(const Vec2& vector, const Vec2& normal);
+
+	// Get a new vector from the minimum x and y.
+	static Vec2 Min(Vec2& value1, Vec2& value2);
+
+	// Get a new vector from the maximum x and y.
+	static Vec2 Max(Vec2& value1, Vec2& value2);
+
+	// Clamp a vector to a given min and max.
+	static Vec2 Clamp(const Vec2& value, const Vec2& min, const Vec2& max);
+
+	// Perform a linear interplolation between two vectors.
+	static Vec2 Lerp(const Vec2& value1, const Vec2& value2, float amount);
+
+	// Get a negated vector.
+	static Vec2 Negate(const Vec2& value);
+
+	static Vec2 Rotate(const Vec2& value, Vec2& radians);
+
+	bool operator==(const Vec2& v)		const;
+	bool operator!=(const Vec2& v)		const;
+
+	Vec2 operator-(void)							const;
+	Vec2 operator-(const Vec2& v)			const;
+	Vec2 operator+(const Vec2& v)			const;
+	Vec2 operator/(float divider)			const;
+	Vec2 operator*(float scaleFactor) const;
+
+	Vec2& operator+=(const Vec2& v);
+	Vec2& operator-=(const Vec2& v);
+	Vec2& operator*=(float f);
+	Vec2& operator/=(float f);
+
+	float x;
+	float y;
+};
+
+typedef std::vector<Vec2> Vector2List;