Skip to content

Commit

Permalink
Merge pull request #34 from gogoprog/dev
Browse files Browse the repository at this point in the history
Merge for first release
  • Loading branch information
gogoprog committed Apr 23, 2015
2 parents 9c04506 + 72c8cbe commit ae1b032
Show file tree
Hide file tree
Showing 720 changed files with 173,134 additions and 0 deletions.
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
scripts/__pycache__
build/Makefile
build/obj
build/gengine*
build/*.dll
build/*.exe
build/error.txt
libcef.so
deps/*/lib*/*.so*
deps/*/lib*/*.dll
deps/*/lib*/*.lib
deps/*/lib*/*.txt
deps/*/lib*/libcef_dll_wrapper*
*.tar.gz
*.data
*.js
deps/**/*.a
deps/**/*.make
deps/**/Makefile
deps/**/obj/
debug.log
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "deps/common/tilemover2d"]
path = deps/common/tilemover2d
url = https://github.com/gogoprog/tilemover2d.git
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,15 @@ gengine
=======

An experimental game engine

## Status
[![Build Status](https://drone.io/github.com/gogoprog/gengine/status.png)](https://drone.io/github.com/gogoprog/gengine/latest)

## Features
* Emscripten/WebGL support
* Lua scripting
* Gameplay components
* Sprite
* Camera
* Mouseable
* Animated sprite
4 changes: 4 additions & 0 deletions build/clean
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash

rm -rf obj gengine* Makefile

Binary file added build/locales/am.pak
Binary file not shown.
Binary file added build/locales/ar.pak
Binary file not shown.
Binary file added build/locales/bg.pak
Binary file not shown.
Binary file added build/locales/bn.pak
Binary file not shown.
Binary file added build/locales/ca.pak
Binary file not shown.
Binary file added build/locales/cs.pak
Binary file not shown.
Binary file added build/locales/da.pak
Binary file not shown.
Binary file added build/locales/de.pak
Binary file not shown.
Binary file added build/locales/el.pak
Binary file not shown.
Binary file added build/locales/en-GB.pak
Binary file not shown.
Binary file added build/locales/en-US.pak
Binary file not shown.
Binary file added build/locales/es-419.pak
Binary file not shown.
Binary file added build/locales/es.pak
Binary file not shown.
Binary file added build/locales/et.pak
Binary file not shown.
Binary file added build/locales/fa.pak
Binary file not shown.
Binary file added build/locales/fi.pak
Binary file not shown.
Binary file added build/locales/fil.pak
Binary file not shown.
Binary file added build/locales/fr.pak
Binary file not shown.
Binary file added build/locales/gu.pak
Binary file not shown.
Binary file added build/locales/he.pak
Binary file not shown.
Binary file added build/locales/hi.pak
Binary file not shown.
Binary file added build/locales/hr.pak
Binary file not shown.
Binary file added build/locales/hu.pak
Binary file not shown.
Binary file added build/locales/id.pak
Binary file not shown.
Binary file added build/locales/it.pak
Binary file not shown.
Binary file added build/locales/ja.pak
Binary file not shown.
Binary file added build/locales/kn.pak
Binary file not shown.
Binary file added build/locales/ko.pak
Binary file not shown.
Binary file added build/locales/lt.pak
Binary file not shown.
Binary file added build/locales/lv.pak
Binary file not shown.
Binary file added build/locales/ml.pak
Binary file not shown.
Binary file added build/locales/mr.pak
Binary file not shown.
Binary file added build/locales/ms.pak
Binary file not shown.
Binary file added build/locales/nb.pak
Binary file not shown.
Binary file added build/locales/nl.pak
Binary file not shown.
Binary file added build/locales/pl.pak
Binary file not shown.
Binary file added build/locales/pt-BR.pak
Binary file not shown.
Binary file added build/locales/pt-PT.pak
Binary file not shown.
Binary file added build/locales/ro.pak
Binary file not shown.
Binary file added build/locales/ru.pak
Binary file not shown.
Binary file added build/locales/sk.pak
Binary file not shown.
Binary file added build/locales/sl.pak
Binary file not shown.
Binary file added build/locales/sr.pak
Binary file not shown.
Binary file added build/locales/sv.pak
Binary file not shown.
Binary file added build/locales/sw.pak
Binary file not shown.
Binary file added build/locales/ta.pak
Binary file not shown.
Binary file added build/locales/te.pak
Binary file not shown.
Binary file added build/locales/th.pak
Binary file not shown.
Binary file added build/locales/tr.pak
Binary file not shown.
Binary file added build/locales/uk.pak
Binary file not shown.
Binary file added build/locales/vi.pak
Binary file not shown.
Binary file added build/locales/zh-CN.pak
Binary file not shown.
Binary file added build/locales/zh-TW.pak
Binary file not shown.
115 changes: 115 additions & 0 deletions build/premake4.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
solution "gengine"
configurations { "Debug", "Release", "DebugEmscripten", "ReleaseEmscripten" }

platforms { "x32", "x64" }

project "gengine"
kind "ConsoleApp"
language "C++"

files {
"../src/**.h",
"../src/**.cpp"
}

includedirs {
"../src/kernel",
"../src/core",
"../src/application",
"../src/graphics",
"../src/audio",
"../src/input",
"../src/script",
"../src/entity",
"../src/gui",
"../src/physics",
"../src/navigation"
}

links {
"lua",
"Box2D"
}

flags {
"ExtraWarnings",
"FloatFast",
"NoExceptions",
"NoFramePointer",
"NoNativeWChar"
}

if not os.is("windows") then
buildoptions { "-std=c++11 -Wno-error=unused-variable -Wno-error=unused-parameter" }
end

if os.is("linux") then
defines { "_LINUX" }
elseif os.is("windows") then
defines { "_WINDOWS", "NOMINMAX" }
flags { "StaticRuntime" }
end

includedirs {
"../deps/common/include",
"../deps/common/tilemover2d/src/"
}

files {
"../deps/common/tilemover2d/src/micropather.*",
"../deps/common/tilemover2d/src/tilemover2d.*"
}

configuration "Debug*"
defines { "DEBUG" }
flags { "Symbols" }
targetname "gengined"

configuration "Release*"
defines { "NDEBUG" }
flags { "Optimize" }
targetname "gengine"

configuration "*Emscripten"
defines { "EMSCRIPTEN" }
libdirs { "../deps/emscripten/lib" }
targetsuffix ".bc"
if not os.is("windows") then
linkoptions { "-Wno-warn-absolute-paths" }
end

configuration "not *Emscripten"
if os.is("linux") then
includedirs { "../deps/linux/include" }
includedirs { "../deps/linux/include/cef" }
links {
"SDL2",
"SDL2_image",
"SDL2_mixer",
"GL",
"cef",
"cef_dll_wrapper",
"pthread"
}

elseif os.is("windows") then
includedirs { "../deps/windows/include" }
includedirs { "../deps/windows/include/cef" }
libdirs { "../deps/windows/lib" }
links {
"SDL2",
"SDL2_image",
"SDL2_mixer",
"OpenGL32",
"libcef",
"libcef_dll_wrapper",
"glew32"
}
end

configuration { "not *Emscripten", "x32" }
libdirs { "../deps/linux/lib32" }

configuration { "not *Emscripten", "x64" }
libdirs { "../deps/linux/lib64" }

67 changes: 67 additions & 0 deletions deps/common/include/Box2D/Box2D.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/*
* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*/

#ifndef BOX2D_H
#define BOX2D_H

/**
\mainpage Box2D API Documentation
\section intro_sec Getting Started
For documentation please see http://box2d.org/documentation.html
For discussion please visit http://box2d.org/forum
*/

// These include files constitute the main Box2D API

#include <Box2D/Common/b2Settings.h>
#include <Box2D/Common/b2Draw.h>
#include <Box2D/Common/b2Timer.h>

#include <Box2D/Collision/Shapes/b2CircleShape.h>
#include <Box2D/Collision/Shapes/b2EdgeShape.h>
#include <Box2D/Collision/Shapes/b2ChainShape.h>
#include <Box2D/Collision/Shapes/b2PolygonShape.h>

#include <Box2D/Collision/b2BroadPhase.h>
#include <Box2D/Collision/b2Distance.h>
#include <Box2D/Collision/b2DynamicTree.h>
#include <Box2D/Collision/b2TimeOfImpact.h>

#include <Box2D/Dynamics/b2Body.h>
#include <Box2D/Dynamics/b2Fixture.h>
#include <Box2D/Dynamics/b2WorldCallbacks.h>
#include <Box2D/Dynamics/b2TimeStep.h>
#include <Box2D/Dynamics/b2World.h>

#include <Box2D/Dynamics/Contacts/b2Contact.h>

#include <Box2D/Dynamics/Joints/b2DistanceJoint.h>
#include <Box2D/Dynamics/Joints/b2FrictionJoint.h>
#include <Box2D/Dynamics/Joints/b2GearJoint.h>
#include <Box2D/Dynamics/Joints/b2WheelJoint.h>
#include <Box2D/Dynamics/Joints/b2MouseJoint.h>
#include <Box2D/Dynamics/Joints/b2PrismaticJoint.h>
#include <Box2D/Dynamics/Joints/b2PulleyJoint.h>
#include <Box2D/Dynamics/Joints/b2RevoluteJoint.h>
#include <Box2D/Dynamics/Joints/b2RopeJoint.h>
#include <Box2D/Dynamics/Joints/b2WeldJoint.h>

#endif
102 changes: 102 additions & 0 deletions deps/common/include/Box2D/Collision/Shapes/b2ChainShape.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
/*
* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*/

#ifndef B2_CHAIN_SHAPE_H
#define B2_CHAIN_SHAPE_H

#include <Box2D/Collision/Shapes/b2Shape.h>

class b2EdgeShape;

/// A chain shape is a free form sequence of line segments.
/// The chain has two-sided collision, so you can use inside and outside collision.
/// Therefore, you may use any winding order.
/// Since there may be many vertices, they are allocated using b2Alloc.
/// Connectivity information is used to create smooth collisions.
/// WARNING: The chain will not collide properly if there are self-intersections.
class b2ChainShape : public b2Shape
{
public:
b2ChainShape();

/// The destructor frees the vertices using b2Free.
~b2ChainShape();

/// Create a loop. This automatically adjusts connectivity.
/// @param vertices an array of vertices, these are copied
/// @param count the vertex count
void CreateLoop(const b2Vec2* vertices, int32 count);

/// Create a chain with isolated end vertices.
/// @param vertices an array of vertices, these are copied
/// @param count the vertex count
void CreateChain(const b2Vec2* vertices, int32 count);

/// Establish connectivity to a vertex that precedes the first vertex.
/// Don't call this for loops.
void SetPrevVertex(const b2Vec2& prevVertex);

/// Establish connectivity to a vertex that follows the last vertex.
/// Don't call this for loops.
void SetNextVertex(const b2Vec2& nextVertex);

/// Implement b2Shape. Vertices are cloned using b2Alloc.
b2Shape* Clone(b2BlockAllocator* allocator) const;

/// @see b2Shape::GetChildCount
int32 GetChildCount() const;

/// Get a child edge.
void GetChildEdge(b2EdgeShape* edge, int32 index) const;

/// This always return false.
/// @see b2Shape::TestPoint
bool TestPoint(const b2Transform& transform, const b2Vec2& p) const;

/// Implement b2Shape.
bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input,
const b2Transform& transform, int32 childIndex) const;

/// @see b2Shape::ComputeAABB
void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const;

/// Chains have zero mass.
/// @see b2Shape::ComputeMass
void ComputeMass(b2MassData* massData, float32 density) const;

/// The vertices. Owned by this class.
b2Vec2* m_vertices;

/// The vertex count.
int32 m_count;

b2Vec2 m_prevVertex, m_nextVertex;
bool m_hasPrevVertex, m_hasNextVertex;
};

inline b2ChainShape::b2ChainShape()
{
m_type = e_chain;
m_radius = b2_polygonRadius;
m_vertices = NULL;
m_count = 0;
m_hasPrevVertex = NULL;
m_hasNextVertex = NULL;
}

#endif
Loading

0 comments on commit ae1b032

Please sign in to comment.