LIBGL := -lGL -lGLU
LIBSDL := `sdl-config --libs`
-LIBS := ${LIBSDL} ${LIBGL}
+LIBS := ${LIBSDL} ${LIBGL} -lpg
OPTFLAGS := -O2
DBGFLAGS := -ggdb
+++ /dev/null
-/*
- * Copyright (C) 2008 Patrik Gornicz, Gornicz_P (at) hotmail (dot) com.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "Vector2.h"
-#include "debug.h"
-
-#include "mathw.h"
-
-/// ***** Constructors/Destructors *****
-
-Vector2::Vector2()
- : m_fX(0), m_fY(0)
-{
-
-}
-Vector2::Vector2(float fX, float fY)
- : m_fX(fX), m_fY(fY)
-{
-
-}
-
-/// ***** Public Class Methods *****
-
-void Vector2::zero()
-{
- m_fX = 0;
- m_fY = 0;
-}
-void Vector2::unit()
-{
- float fLen = length();
-
- m_fX /= fLen;
- m_fY /= fLen;
-}
-
-float Vector2::angle() const
-{
- //TODO
- DASSERT(false);
- //return atan2A(m_fY,m_fX);
- return 0;
-}
-float Vector2::length() const
-{
- return sqrt(sqrLength());
-}
-float Vector2::sqrLength() const
-{
- return this->dot(*this);
-}
-
-float Vector2::dot(const Vector2& vec) const
-{
- return m_fX * vec.m_fX + m_fY * vec.m_fY;
-}
-
-
-string Vector2::toString() const
-{
- // long just to be safe
- char rgchars[100];
-
- sprintf(rgchars, "Vector2 X: %f, Y: %f", m_fX, m_fY);
-
- return rgchars;
-}
-void Vector2::print() const
-{
- printf("%s\n", toString().c_str());
-}
-
-
-Vector2 Vector2::add(const Vector2& vec) const
-{
- return Vector2(m_fX + vec.m_fX, m_fY + vec.m_fY);
-}
-Vector2 Vector2::subtract(const Vector2& vec) const
-{
- return Vector2(m_fX - vec.m_fX, m_fY - vec.m_fY);
-}
-Vector2 Vector2::multiply(float f) const
-{
- return Vector2(m_fX * f, m_fY * f);
-}
-Vector2 Vector2::divide(float f) const
-{
- return Vector2(m_fX / f, m_fY / f);
-}
-
-/// ***** Public Methods *****
-
-Vector2 operator+(const Vector2& vec1, const Vector2& vec2)
-{
- return vec1.add(vec2);
-}
-Vector2 operator-(const Vector2& vec1, const Vector2& vec2)
-{
- return vec1.subtract(vec2);
-}
-Vector2 operator*(float f, const Vector2& vec)
-{
- return vec.multiply(f);
-}
-Vector2 operator*(const Vector2& vec, float f)
-{
- return vec.multiply(f);
-}
-Vector2 operator/(const Vector2& vec, float f)
-{
- return vec.divide(f);
-}
-
-
-void operator+=(Vector2& vec1, const Vector2& vec2)
-{
- vec1.m_fX += vec2.m_fX;
- vec1.m_fY += vec2.m_fY;
-}
-void operator-=(Vector2& vec1, const Vector2& vec2)
-{
- vec1.m_fX -= vec2.m_fX;
- vec1.m_fY -= vec2.m_fY;
-}
-void operator*=(Vector2& vec, float f)
-{
- vec.m_fX *= f;
- vec.m_fY *= f;
-}
-void operator/=(Vector2& vec, float f)
-{
- vec.m_fX /= f;
- vec.m_fY /= f;
-}
+++ /dev/null
-/*
- * Copyright (C) 2008 Patrik Gornicz, Gornicz_P (at) hotmail (dot) com.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "debug.h"
-
-#include <iostream>
-using std::cerr;
-using std::cout;
-using std::endl;
-
-#include <assert.h>
-
-#include "locks/Mutex.h"
-#include "locks/Autolock.h"
-
-/// ***** Public Methods *****
-
-Mutex muDPF;
-
-void DPF(int level, const char* pstr)
-{
- Autolock lock(muDPF);
-
- cout << pstr << endl;
-}
-
-void debug::init()
-{
- muDPF.init();
-}
-
-void debug::clean()
-{
- muDPF.clean();
-}
-
-void DASSERT(bool fBreak)
-{
- assert(fBreak);
-}
-
-/// ***** Private Methods *****
NEWSRCS += game.cpp
NEWSRCS += main.cpp
-NEWSRCS += mathw.cpp
NEWSRCS += ticks.cpp
-NEWSRCS += Vector2.cpp
NEWSRCS += handleSignal.cpp
NEWSRCS += entityCreator.cpp
NEWSRCS += collisionManager.cpp
NEWSRCS += CollisionInfo.cpp
-NEWSRCS += debug.cpp
-
NEWDIRS := # insure blank
NEWDIRS += config/
NEWDIRS += input/
NEWDIRS += graphics/
-NEWDIRS += locks/
# Post dir setup
+++ /dev/null
-/*
- * Copyright (C) 2008 Patrik Gornicz, Gornicz_P (at) hotmail (dot) com.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "Autolock.h"
-
-#include "Mutex.h"
-
-/// ***** Constructors/Destructors *****
-Autolock::Autolock(Mutex& mu)
- : m_mu(mu)
-{
- Lock();
-}
-
-Autolock::~Autolock()
-{
- Unlock();
-}
-
-void Autolock::Lock()
-{
- m_mu.Lock();
-}
-
-void Autolock::Unlock()
-{
- m_mu.Unlock();
-}
+++ /dev/null
-/*
- * Copyright (C) 2008 Patrik Gornicz, Gornicz_P (at) hotmail (dot) com.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "Mutex.h"
-#include "debug.h"
-
-#include <SDL/SDL.h>
-
-Mutex::Mutex()
- : m_pSDL_mutex(NULL)
-{
-
-}
-Mutex::~Mutex()
-{
-
-}
-
-void Mutex::init()
-{
- m_pSDL_mutex = SDL_CreateMutex();
-}
-void Mutex::clean()
-{
- SDL_DestroyMutex(m_pSDL_mutex);
- m_pSDL_mutex = NULL;
-}
-
-bool Mutex::IsValid()
-{
- return NULL != m_pSDL_mutex;
-}
-
-void Mutex::Lock()
-{
- DASSERT(IsValid());
-
- SDL_mutexP(m_pSDL_mutex);
- m_uiThreadID = SDL_ThreadID();
-}
-void Mutex::Unlock()
-{
- DASSERT(IsValid());
-
- DASSERT(m_uiThreadID == SDL_ThreadID());
- SDL_mutexV(m_pSDL_mutex);
-}
+++ /dev/null
-NEWSRCS := # insure blank
-
-NEWSRCS += Autolock.cpp
-NEWSRCS += Mutex.cpp
-
-
-# Post dir setup
-
-CURDIR := locks/
-
-NEWSRCS := $(addprefix ${CURDIR},${NEWSRCS})
-NEWOBJS := ${NEWSRCS:.cpp=.o}
-NEWDEPS := ${NEWSRCS:.cpp=.d}
-
-# Append to lists
-
-SRCS += ${NEWSRCS}
-OBJS += $(addprefix ${OBJSDIR},${NEWOBJS})
-DEPS += $(addprefix ${DEPSDIR},${NEWDEPS})
+++ /dev/null
-/*
- * Copyright (C) 2008 Patrik Gornicz, Gornicz_P (at) hotmail (dot) com.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "mathw.h"
-
-
-/// ***** Public Methods *****
-
-int mod(int x, int y)
-{
- return x % y + (x < 0 ? y : 0);
-}
-
-// Vector2 Math
-
-Vector2 vectorToLine
-(
- const Vector2& vec,
- float x1,
- float y1,
- float x2,
- float y2
-)
-{
- float lineSize = (float) sqrt((x1 - x2) * (x1 - x2)
- + (y1 - y2) * (y1 - y2));
- if (lineSize == 0)
- return Vector2(x1 - vec.m_fX, y1 - vec.m_fY);
-
- float u = ((vec.m_fX - x1) * (x2 - x1)
- + (vec.m_fY - y1) * (y2 - y1)) / (lineSize * lineSize);
-
- if (u < 0)
- return Vector2(x1 - vec.m_fX, y1 - vec.m_fY);
- else if (u > 1)
- return Vector2(x2 - vec.m_fX, y2 - vec.m_fY);
- else
- {
- float ix = x1 + u * (x2 - x1);
- float iy = y1 + u * (y2 - y1);
- return Vector2(ix - vec.m_fX, iy - vec.m_fY);
- }
-}
-
-Vector2 perp(const Vector2& vec)
-{
- return Vector2(-vec.m_fY, vec.m_fX);
-}
-
-float dot(const Vector2& vec1, const Vector2& vec2)
-{
- return vec1.m_fX * vec2.m_fX + vec1.m_fY * vec2.m_fY;
-}
-
-//TODO float Vector2::projectionCoeff(const Vector2* vec) const;
-//TODO Vector2* Vector2::projection(const Vector2* vec) const;
-