From f2d6345a614bbefd48eca98f7e8aada8e37e87d1 Mon Sep 17 00:00:00 2001
From: Rtch90 <ritchie.cunningham@protonmail.com>
Date: Thu, 12 Apr 2012 17:45:17 +0100
Subject: [PATCH] [Add] Adding more collision crap. [Add] Adding an NPC
 entitity.

---
 LibDQt/LibDQt.pro      | 13 +++++++++----
 src/Actor/NPC.cpp      | 17 +++++++++++++++++
 src/Actor/NPC.h        | 14 ++++++++++++++
 src/Actor/Player.cpp   |  4 ++++
 src/Actor/Player.h     | 17 +++++++++++++++++
 src/Collision/AABB.cpp |  4 ++++
 src/Collision/AABB.h   |  2 ++
 7 files changed, 67 insertions(+), 4 deletions(-)
 create mode 100644 src/Actor/NPC.cpp
 create mode 100644 src/Actor/NPC.h

diff --git a/LibDQt/LibDQt.pro b/LibDQt/LibDQt.pro
index 5e57ee7..6db3410 100644
--- a/LibDQt/LibDQt.pro
+++ b/LibDQt/LibDQt.pro
@@ -5,7 +5,8 @@ LIBS += -lGL \
     -ltinyxml \
     -lGLU \
     -lz \
-    -ltinyxml
+    -ltinyxml \
+    -lSDL_mixer
 win32: { 
     LIBS -= -lGL \
         -lGLU
@@ -13,7 +14,8 @@ win32: {
         -luser32 \
         -lgdi32 \
         -lopengl32 \
-        -lglu32
+        -lglu32 \
+        -lSDL_mixer
 }
 HEADERS += ../src/Actor/Player.h \
     ../src/Collision/AABB.h \
@@ -50,7 +52,8 @@ HEADERS += ../src/Actor/Player.h \
     ../src/TMXParser/TmxLayer.h \
     ../src/TMXParser/Tmx.h \
     ../src/TMXParser/base64.h \
-    ../src/Collision/TileCollision.h
+    ../src/Collision/TileCollision.h \
+    ../src/Actor/NPC.h
 SOURCES += ../src/Actor/Player.cpp \
     ../src/Collision/AABB.cpp \
     ../src/Global/Globals.cpp \
@@ -79,4 +82,6 @@ SOURCES += ../src/Actor/Player.cpp \
     ../src/TMXParser/TmxMap.cpp \
     ../src/TMXParser/TmxLayer.cpp \
     ../src/TMXParser/TmxImage.cpp \
-    ../src/TMXParser/base64.cpp
+    ../src/TMXParser/base64.cpp \
+    ../src/Actor/NPC.cpp
+OTHER_FILES += 
diff --git a/src/Actor/NPC.cpp b/src/Actor/NPC.cpp
new file mode 100644
index 0000000..f7a797f
--- /dev/null
+++ b/src/Actor/NPC.cpp
@@ -0,0 +1,17 @@
+#include "NPC.h"
+
+NPC::NPC(void) {
+  _NPC->CreateAABBFromSprite("../Data/Img/Player");
+}
+
+NPC::~NPC(void) {
+  delete _NPC;
+}
+
+void NPC::Update(void) {
+
+}
+
+void NPC::Render(void) {
+  //_NPC->
+}
diff --git a/src/Actor/NPC.h b/src/Actor/NPC.h
new file mode 100644
index 0000000..e5064e3
--- /dev/null
+++ b/src/Actor/NPC.h
@@ -0,0 +1,14 @@
+#pragma once
+#include "../Collision/AABB.h"
+
+class NPC {
+public:
+  NPC(void);
+  ~NPC(void);
+
+  void Update(void);
+  void Render(void);
+
+private:
+  AABB* _NPC;
+};
diff --git a/src/Actor/Player.cpp b/src/Actor/Player.cpp
index 0c0d634..a95cca1 100644
--- a/src/Actor/Player.cpp
+++ b/src/Actor/Player.cpp
@@ -63,6 +63,10 @@ void Player::ActorCollisionTest(void) {
 
 }
 
+bool Player::GetInBlueCollision(void) {
+  return(_blueCollision && _preventMovement != NONE);
+}
+
 void Player::ProcessEvents(void) {
   x = _player->GetX();
   y = _player->GetY();
diff --git a/src/Actor/Player.h b/src/Actor/Player.h
index 8644d83..52c3847 100644
--- a/src/Actor/Player.h
+++ b/src/Actor/Player.h
@@ -10,6 +10,21 @@ class Sprite;
 // We will derive from an Actor class at some point.
 class Player {
 public:
+  // Facing enum controls which spritr to render.
+  enum Facing {
+    LEFT,
+    RIGHT,
+    NONE
+  };
+
+  // Control the current state the character is in.
+  enum Status {
+    STANDING = 0,
+    WALKING,
+    HURT,
+    DEAD,
+  };
+
   Player(void);
   ~Player(void);
 
@@ -47,6 +62,8 @@ private:
   bool _notColliding;
   bool _blueCollision;
 
+  Facing _preventMovement;
+
   AABB* _collisionBound;
   AABB* _environmentCollisionBound;
 };
diff --git a/src/Collision/AABB.cpp b/src/Collision/AABB.cpp
index babd81e..0130a5a 100644
--- a/src/Collision/AABB.cpp
+++ b/src/Collision/AABB.cpp
@@ -113,3 +113,7 @@ void AABB::CreateAABBFromSprite(const char* filename) {
   delete _sprite;
   _sprite = 0;
 }
+
+void AABB::Render(void) {
+  // FUCK YOU KonoM!!
+}
diff --git a/src/Collision/AABB.h b/src/Collision/AABB.h
index 69e2e75..51889cd 100644
--- a/src/Collision/AABB.h
+++ b/src/Collision/AABB.h
@@ -33,6 +33,8 @@ public:
   bool InCollision(AABB* otherAABB);
   void CreateAABBFromSprite(const char* filename);
 
+  void Render(void);
+
 private:
   Vec2 _min;
   Vec2 _max;