diff --git a/Aquaria/AnimationEditor.cpp b/Aquaria/AnimationEditor.cpp index c3c8942..f7e9e99 100644 --- a/Aquaria/AnimationEditor.cpp +++ b/Aquaria/AnimationEditor.cpp @@ -28,9 +28,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "Game.h" -#ifdef AQUARIA_BUILD_SCENEEDITOR // Through end of file - - int TIMELINE_GRIDSIZE = 10; float TIMELINE_UNIT = 0.1f; float TIMELINE_UNIT_STEP = 0.01f; @@ -1468,7 +1465,3 @@ void AnimationEditor::updateTimelineGrid() os << "Grid: " << TIMELINE_GRIDSIZE; gridsize->setText(os.str()); } - - - -#endif // AQUARIA_BUILD_SCENEEDITOR diff --git a/Aquaria/AquariaCompileConfig.h b/Aquaria/AquariaCompileConfig.h index 63cc3b9..a259d96 100644 --- a/Aquaria/AquariaCompileConfig.h +++ b/Aquaria/AquariaCompileConfig.h @@ -1,22 +1,6 @@ #ifndef AQUARIA_COMPILE_CONFIG_H #define AQUARIA_COMPILE_CONFIG_H -// The settings below are also configurable with CMake. -// Define BBGE_SKIP_CONFIG_HEADERS to use CMake-only configuration. -#ifndef BBGE_SKIP_CONFIG_HEADERS - - - #define AQUARIA_BUILD_CONSOLE 1 - #define AQUARIA_BUILD_SCENEEDITOR 1 - - #define AQUARIA_CUSTOM_BUILD_ID (" Build " __DATE__ " - " __TIME__) - - // If defined, this is shown instead of "Aquaria vx.x.x ..." on the title screen. - //#define AQUARIA_OVERRIDE_VERSION_STRING "Aquaria OSE v1.001" - -#endif - - // Not CMake-configurable defines, change at your own risk diff --git a/Aquaria/AquariaWin32OSE.ico b/Aquaria/AquariaOSE.ico similarity index 100% rename from Aquaria/AquariaWin32OSE.ico rename to Aquaria/AquariaOSE.ico diff --git a/Aquaria/Beam.cpp b/Aquaria/Beam.cpp index 4675fb1..ebca410 100644 --- a/Aquaria/Beam.cpp +++ b/Aquaria/Beam.cpp @@ -71,21 +71,11 @@ void Beam::onEndOfLife() void Beam::killAllBeams() { - std::queuebeamDeleteQueue; - for (Beams::iterator i = beams.begin(); i != beams.end(); i++) - { - beamDeleteQueue.push(*i); - } - Beam *s = 0; - while (!beamDeleteQueue.empty()) - { - s = beamDeleteQueue.front(); - if (s) - { + Beams beamsToDelete = beams; // copy + for (Beams::iterator it = beamsToDelete.begin(); it != beamsToDelete.end(); it++) + if(Beam *s = *it) s->safeKill(); - } - beamDeleteQueue.pop(); - } + beams.clear(); } diff --git a/Aquaria/CMakeLists.txt b/Aquaria/CMakeLists.txt new file mode 100644 index 0000000..9816058 --- /dev/null +++ b/Aquaria/CMakeLists.txt @@ -0,0 +1,82 @@ +# Main game source code for Aquaria, minus engine and other middleware... +SET(AQUARIA_SRCS + AnimationEditor.cpp + AquariaComboBox.cpp + AquariaMenuItem.cpp + AquariaSaveSlot.cpp + Avatar.cpp + Beam.cpp + BitBlotLogo.cpp + CollideEntity.cpp + Continuity.cpp + Credits.cpp + CurrentRender.cpp + Demo.cpp + DSQ.cpp + Element.cpp + Emote.cpp + Entity.cpp + FlockEntity.cpp + Game.cpp + GameStructs.cpp + GameplayVariables.cpp + GasCloud.cpp + GridRender.cpp + Hair.cpp + Ingredient.cpp + InGameMenu.cpp + Intro.cpp + Logo.cpp + Main.cpp + ManaBall.cpp + MiniMapRender.cpp + Mod.cpp + ModSelector.cpp + ModDownloader.cpp + Network.cpp + ParticleEditor.cpp + Path.cpp + PathFinding.cpp + PathRender.cpp + RecipeMenuEntry.cpp + SceneEditor.cpp + SchoolFish.cpp + Scriptable.cpp + ScriptedEntity.cpp + ScriptInterface.cpp + Segmented.cpp + SFXLoops.cpp + Shot.cpp + Spore.cpp + States.cpp + StatsAndAchievements.cpp + SteamRender.cpp + Strand.cpp + StringBank_gen.h + SubtitlePlayer.cpp + ToolTip.cpp + UserSettings.cpp + WaterSurfaceRender.cpp + Web.cpp + WorldMapRender.cpp + WorldMapTiles.cpp +) + +set(EXETYPE) + +IF(WIN32) + SET(EXETYPE WIN32) + SET(AQUARIA_SRCS ${AQUARIA_SRCS} aquaria.rc) +ENDIF() + +ADD_EXECUTABLE(aquaria ${EXETYPE} + ${AQUARIA_SRCS} +) + +target_link_libraries(aquaria BBGE lua51) + +IF(WIN32) + SET(RC_DEFINES "" FORCE) + SET(RC_INCLUDES "" FORCE) + SET(RC_FLAGS "" FORCE) +endif(WIN32) diff --git a/Aquaria/DSQ.cpp b/Aquaria/DSQ.cpp index 79c9b6f..e599bf7 100644 --- a/Aquaria/DSQ.cpp +++ b/Aquaria/DSQ.cpp @@ -133,9 +133,7 @@ static void Linux_CopyTree(const char *src, const char *dst) const size_t saveSlotPageSize = 4; size_t maxPages = 15; -#ifdef AQUARIA_BUILD_CONSOLE const int MAX_CONSOLELINES = 18; -#endif DSQ *dsq = 0; @@ -199,14 +197,10 @@ DSQ::DSQ(const std::string& fileSystem, const std::string& extraDataDir) recentSaveSlot = -1; arialFontData = 0; -#ifdef BBGE_BUILD_ACHIEVEMENTS_INTERNAL achievement_text = 0; achievement_box = 0; -#endif -#ifdef AQUARIA_BUILD_CONSOLE console = 0; -#endif cmDebug = 0; saveSlotMode = SSM_NONE; afterEffectManagerLayer = LR_AFTER_EFFECTS; // LR_AFTER_EFFECTS @@ -870,14 +864,10 @@ This build is not yet final, and as such there are a couple things lacking. They addStateInstance(game = new Game); addStateInstance(new GameOver); -#ifdef AQUARIA_BUILD_SCENEEDITOR addStateInstance(new AnimationEditor); -#endif addStateInstance(new Intro2); addStateInstance(new BitBlotLogo); -#ifdef AQUARIA_BUILD_SCENEEDITOR addStateInstance(new ParticleEditor); -#endif addStateInstance(new Credits); addStateInstance(new Intro); addStateInstance(new Nag); @@ -1067,7 +1057,6 @@ This build is not yet final, and as such there are a couple things lacking. They debugLog("done"); -#ifdef AQUARIA_BUILD_CONSOLE debugLog("Creating console"); console = new DebugFont; { @@ -1076,9 +1065,6 @@ This build is not yet final, and as such there are a couple things lacking. They console->setFontSize(6); } addRenderObject(console, LR_DEBUG_TEXT); -#else - debugLog("NOT creating console (disabled in this build)"); -#endif debugLog("1"); @@ -1130,7 +1116,6 @@ This build is not yet final, and as such there are a couple things lacking. They addRenderObject(subtext, LR_SUBTITLES); -#ifdef BBGE_BUILD_ACHIEVEMENTS_INTERNAL achievement_box = new Quad(); achievement_box->position = Vector(800,0); achievement_box->alpha = 0; @@ -1148,7 +1133,6 @@ This build is not yet final, and as such there are a couple things lacking. They achievement_text->setWidth(280); achievement_text->setAlign(ALIGN_LEFT); addRenderObject(achievement_text, LR_SUBTITLES); -#endif cutscene_bg = new Quad(); cutscene_bg->autoWidth = AUTO_VIRTUALWIDTH; @@ -1728,7 +1712,6 @@ void DSQ::reloadDevice() recreateBlackBars(); } -#ifdef AQUARIA_BUILD_CONSOLE void DSQ::toggleConsole() { if (console && isDeveloperKeys()) @@ -1773,7 +1756,6 @@ void DSQ::debugLog(const std::string &s) } Core::debugLog(s); } -#endif // AQUARIA_BUILD_CONSOLE int DSQ::getEntityTypeIndexByName(std::string s) { @@ -2055,10 +2037,8 @@ void DSQ::shutdown() UNREFTEX(texCursorSing); UNREFTEX(texCursorLook); -#ifdef AQUARIA_BUILD_CONSOLE removeRenderObject(console); console = 0; -#endif removeRenderObject(cmDebug); cmDebug = 0; removeRenderObject(subtext); @@ -2066,12 +2046,10 @@ void DSQ::shutdown() removeRenderObject(subbox); subbox = 0; -#ifdef BBGE_BUILD_ACHIEVEMENTS_INTERNAL removeRenderObject(achievement_text); achievement_text = 0; removeRenderObject(achievement_box); achievement_box = 0; -#endif removeRenderObject(cursor); removeRenderObject(cursorGlow); // is this necessary? probably @@ -3605,11 +3583,7 @@ bool DSQ::isDeveloperKeys() bool DSQ::canOpenEditor() const { -#ifdef AQUARIA_BUILD_SCENEEDITOR return dsq->isDeveloperKeys() || (dsq->mod.isActive() && !dsq->mod.isEditorBlocked()); -#else - return false; -#endif } bool DSQ::isQuitFlag() @@ -3704,14 +3678,12 @@ void DSQ::bindInput() if (isDeveloperKeys()) { -#ifdef AQUARIA_BUILD_CONSOLE addAction(MakeFunctionEvent(DSQ, toggleConsole), KEY_TILDE, 0); -#endif addAction(MakeFunctionEvent(DSQ, toggleRenderCollisionShapes), KEY_RETURN, 0); } addAction(MakeFunctionEvent(DSQ, debugMenu), KEY_BACKSPACE, 0); //addAction(MakeFunctionEvent(DSQ, takeScreenshotKey ), KEY_P, 0); - + for(size_t i = 0; i < dsq->user.control.actionSets.size(); ++i) { ActionSet& as = dsq->user.control.actionSets[i]; @@ -3719,7 +3691,7 @@ void DSQ::bindInput() as.importAction(this, "Escape", ACTION_ESC, sourceID); as.importAction(this, "Screenshot", ACTION_SCREENSHOT, sourceID); - + if(ActionInput *a = as.getActionInputByName("PrimaryAction")) almb.push_back(a); if(ActionInput *a = as.getActionInputByName("SecondaryAction")) @@ -4009,10 +3981,8 @@ void DSQ::onUpdate(float dt) fpsText->setText(os.str()); } -#ifdef AQUARIA_BUILD_CONSOLE if(console && console->alpha == 1) console->position = Vector(10 - virtualOffX,400); -#endif if (shakeCameraTimer > 0) { diff --git a/Aquaria/DSQ.h b/Aquaria/DSQ.h index ac804d5..020e779 100644 --- a/Aquaria/DSQ.h +++ b/Aquaria/DSQ.h @@ -292,9 +292,7 @@ public: int getEntityTypeIndexByName(std::string s); void screenMessage(const std::string &msg); -#ifdef AQUARIA_BUILD_CONSOLE // No need to override it otherwise. void debugLog(const std::string &s); -#endif void toggleConsole(); void toggleEffects(); void debugMenu(); @@ -388,9 +386,7 @@ public: Demo demo; DebugFont *fpsText, *cmDebug; -#ifdef AQUARIA_BUILD_CONSOLE DebugFont *console; -#endif BitmapText *versionLabel; void setVersionLabelText(); @@ -414,10 +410,8 @@ public: void startSelectedMod(); ModEntry* getSelectedModEntry(); -#ifdef BBGE_BUILD_ACHIEVEMENTS_INTERNAL BitmapText *achievement_text; Quad *achievement_box; -#endif BitmapText *subtext; Quad *subbox; @@ -515,9 +509,7 @@ protected: void onMouseInput(); std::vector voxQueue; -#ifdef AQUARIA_BUILD_CONSOLE std::vector consoleLines; -#endif std::vector saveSlots; diff --git a/Aquaria/Element.cpp b/Aquaria/Element.cpp index 48947ad..5764da4 100644 --- a/Aquaria/Element.cpp +++ b/Aquaria/Element.cpp @@ -292,7 +292,6 @@ void Element::setElementEffectByIndex(int eidx) void Element::render() { if (!elementActive) return; -#ifdef AQUARIA_BUILD_SCENEEDITOR if (dsq->game->isSceneEditorActive() && this->bgLayer == dsq->game->sceneEditor.bgLayer && dsq->game->sceneEditor.editType == ET_ELEMENTS) { @@ -313,7 +312,6 @@ void Element::render() renderBorder = true; } -#endif Quad::render(); diff --git a/Aquaria/Entity.cpp b/Aquaria/Entity.cpp index a390190..be47082 100644 --- a/Aquaria/Entity.cpp +++ b/Aquaria/Entity.cpp @@ -2491,7 +2491,6 @@ void Entity::render() color *= multColor; } -#ifdef AQUARIA_BUILD_SCENEEDITOR if (dsq->game->isSceneEditorActive() && dsq->game->sceneEditor.editType == ET_ENTITIES) { if (dsq->game->sceneEditor.editingEntity == this) @@ -2501,7 +2500,6 @@ void Entity::render() renderBorder = true; } -#endif // HACK: need to multiply base + etc skeletalSprite.setColorMult(this->color, this->alpha.x); diff --git a/Aquaria/Game.cpp b/Aquaria/Game.cpp index b25a6d5..ec6c306 100644 --- a/Aquaria/Game.cpp +++ b/Aquaria/Game.cpp @@ -846,7 +846,6 @@ void Game::loadEntityTypeList() } in.close(); -#ifdef AQUARIA_BUILD_SCENEEDITOR entityGroups.clear(); std::string fn = "scripts/entities/entitygroups.txt"; @@ -886,7 +885,6 @@ void Game::loadEntityTypeList() game->sceneEditor.entityPageNum = 0; //game->sceneEditor.page = entityGroups.begin(); -#endif } EntityClass *Game::getEntityClassForEntityType(const std::string &type) @@ -2548,9 +2546,7 @@ void Game::action(int id, int state, int source, InputDevice device) } } -#ifdef AQUARIA_BUILD_SCENEEDITOR if (id == ACTION_TOGGLESCENEEDITOR && !state) toggleSceneEditor(); -#endif if (dsq->isDeveloperKeys() || isSceneEditorActive()) { @@ -2834,13 +2830,10 @@ void Game::applyState() li = 0; - -#ifdef AQUARIA_BUILD_SCENEEDITOR if (dsq->canOpenEditor()) { sceneEditor.init(); } -#endif if (verbose) debugLog("Creating Avatar"); avatar = new Avatar(); @@ -3210,12 +3203,10 @@ void Game::bindInput() addAction(ACTION_ESC, KEY_ESCAPE, -1); -#ifdef AQUARIA_BUILD_SCENEEDITOR if (dsq->canOpenEditor()) { addAction(ACTION_TOGGLESCENEEDITOR, KEY_TAB, -1); } -#endif if (dsq->canOpenEditor()) { @@ -4134,7 +4125,6 @@ void Game::handleShotCollisionsHair(Entity *e, int num, float perc) } } -#ifdef AQUARIA_BUILD_SCENEEDITOR void Game::toggleSceneEditor() { if (!core->getAltState()) @@ -4143,7 +4133,6 @@ void Game::toggleSceneEditor() setElementLayerFlags(); } } -#endif void Game::toggleMiniMapRender() { @@ -4607,11 +4596,7 @@ void Game::update(float dt) } themenu->update(dt); -#ifdef AQUARIA_BUILD_SCENEEDITOR - { - sceneEditor.update(dt); - } -#endif + sceneEditor.update(dt); dsq->emote.update(dt); @@ -4990,11 +4975,9 @@ void Game::removeState() avatar->endOfGameState(); } -#ifdef AQUARIA_BUILD_SCENEEDITOR debugLog("toggle sceneEditor"); if (sceneEditor.isOn()) sceneEditor.toggle(false); -#endif debugLog("gameSpeed"); dsq->gameSpeed.interpolateTo(1, 0); @@ -5066,9 +5049,7 @@ void Game::removeState() dsq->clearElements(); dsq->clearEntities(); avatar = 0; -#ifdef AQUARIA_BUILD_SCENEEDITOR sceneEditor.shutdown(); -#endif cameraFollow = 0; core->cameraPos = Vector(0,0); diff --git a/Aquaria/Game.h b/Aquaria/Game.h index 645deb0..48371df 100644 --- a/Aquaria/Game.h +++ b/Aquaria/Game.h @@ -27,14 +27,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "AquariaMenuItem.h" #include "ScriptedEntity.h" #include "TileVector.h" - -#ifdef AQUARIA_DEMO -#undef AQUARIA_BUILD_SCENEEDITOR -#endif - -#ifdef AQUARIA_BUILD_SCENEEDITOR #include "SceneEditor.h" -#endif #include using namespace tinyxml2; @@ -287,12 +280,8 @@ public: Path *getNearestPath(const Vector &pos, PathType pathType=PATH_NONE); Path *getNearestPath(Path *p, std::string name); -#ifdef AQUARIA_BUILD_SCENEEDITOR SceneEditor sceneEditor; bool isSceneEditorActive() {return sceneEditor.isOn();} -#else - bool isSceneEditorActive() const {return false;} -#endif bool isInGameMenu(); @@ -362,9 +351,7 @@ public: WaterSurfaceRender *waterSurfaceRender; -#ifdef AQUARIA_BUILD_SCENEEDITOR EntityGroups entityGroups; -#endif std::string getNoteName(int n, const std::string &pre=""); @@ -521,9 +508,7 @@ protected: Entity *cameraFollowEntity; bool loadSceneXML(std::string scene); -#ifdef AQUARIA_BUILD_SCENEEDITOR void toggleSceneEditor(); -#endif Quad *bg, *bg2; diff --git a/Aquaria/ParticleEditor.cpp b/Aquaria/ParticleEditor.cpp index a5692cd..f52b41e 100644 --- a/Aquaria/ParticleEditor.cpp +++ b/Aquaria/ParticleEditor.cpp @@ -26,9 +26,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "Game.h" -#ifdef AQUARIA_BUILD_SCENEEDITOR // Through end of file - - ParticleEditor *pe = 0; @@ -156,6 +153,3 @@ void ParticleEditor::stop() { emitter->stop(); } - - -#endif // AQUARIA_BUILD_SCENEEDITOR diff --git a/Aquaria/PathRender.cpp b/Aquaria/PathRender.cpp index 6c4cc55..d24473d 100644 --- a/Aquaria/PathRender.cpp +++ b/Aquaria/PathRender.cpp @@ -39,11 +39,10 @@ void PathRender::onRender() for (size_t i = 0; i < pathcount; i++) { Path *p = dsq->game->getPath(i); -#ifdef AQUARIA_BUILD_SCENEEDITOR + if (dsq->game->sceneEditor.selectedIdx == i) glColor4f(1, 1, 1, 0.75); else -#endif glColor4f(1, 0.5, 0.5, 0.75); glBegin(GL_LINES); @@ -97,11 +96,9 @@ void PathRender::onRender() if (!p->active) a = 0.3f; -#ifdef AQUARIA_BUILD_SCENEEDITOR if (dsq->game->sceneEditor.selectedIdx == i) glColor4f(1, 1, 1, a); else -#endif glColor4f(1, 0.5, 0.5, a); glPushMatrix(); diff --git a/Aquaria/SceneEditor.cpp b/Aquaria/SceneEditor.cpp index 8169a39..0834fb4 100644 --- a/Aquaria/SceneEditor.cpp +++ b/Aquaria/SceneEditor.cpp @@ -32,9 +32,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "Shot.h" -#ifdef AQUARIA_BUILD_SCENEEDITOR // Through end of file - - #ifdef BBGE_BUILD_WINDOWS #define WIN32_LEAN_AND_MEAN #include @@ -3155,6 +3152,3 @@ void SceneEditor::dumpObs() tgaSaveRGBA(outfn.c_str(), MAX_GRID, MAX_GRID, data); dsq->screenMessage("Saved grid image to " + outfn); } - - -#endif // AQUARIA_BUILD_SCENEEDITOR diff --git a/Aquaria/SceneEditor.h b/Aquaria/SceneEditor.h index 7b270c3..916fffb 100644 --- a/Aquaria/SceneEditor.h +++ b/Aquaria/SceneEditor.h @@ -7,8 +7,6 @@ #include "ActionMapper.h" #include "Quad.h" -#ifdef AQUARIA_BUILD_SCENEEDITOR - class Element; class Entity; class Path; @@ -241,6 +239,4 @@ protected: InterpolatedVector oldGlobalScale; }; -#endif // AQUARIA_BUILD_SCENEEDITOR - #endif // AQUARIA_SCENEEDITOR_H diff --git a/Aquaria/ScriptInterface.cpp b/Aquaria/ScriptInterface.cpp index 8d6c420..eceabf0 100644 --- a/Aquaria/ScriptInterface.cpp +++ b/Aquaria/ScriptInterface.cpp @@ -19,17 +19,24 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -extern "C" -{ +// Internal Lua is built as C++ code, so we need to include the headers properly +#ifndef AQUARIA_INTERNAL_LUA +extern "C" { +#endif + #include "lua.h" #include "lauxlib.h" #include "lualib.h" -} + +#ifndef AQUARIA_INTERNAL_LUA +} // end extern "C" +#endif + #include "luaalloc.h" #include "SDL.h" #include "ScriptInterface.h" -#include "../BBGE/ScriptObject.h" +#include "ScriptObject.h" #include "ReadXML.h" @@ -55,7 +62,7 @@ extern "C" #include "ActionMapper.h" -#include "../BBGE/MathFunctions.h" +#include "MathFunctions.h" #undef quad // avoid conflict with quad precision types @@ -8414,7 +8421,7 @@ static Joystick *_getJoystick(lua_State *L, int idx = 1) int source = lua_tointeger(L, idx) - 1; if(source < 0) return core->getJoystick(0); // HACK: FIXME: do something sensible instead - + return core->getJoystickForSourceID(source); } diff --git a/Aquaria/Spore.cpp b/Aquaria/Spore.cpp index a82780a..698e836 100644 --- a/Aquaria/Spore.cpp +++ b/Aquaria/Spore.cpp @@ -88,21 +88,12 @@ void Spore::onEnterState(int state) void Spore::killAllSpores() { - std::queuesporeDeleteQueue; - for (Spores::iterator i = spores.begin(); i != spores.end(); i++) - { - sporeDeleteQueue.push(*i); - } - Spore *s = 0; - while (!sporeDeleteQueue.empty()) - { - s = sporeDeleteQueue.front(); - if (s) - { + Spores sporesToDelete = spores; // copy + + for (Spores::iterator it = sporesToDelete.begin(); it != sporesToDelete.end(); it++) + if(Spore *s = *it) s->safeKill(); - } - sporeDeleteQueue.pop(); - } + spores.clear(); } diff --git a/Aquaria/StatsAndAchievements.cpp b/Aquaria/StatsAndAchievements.cpp index c2d9d3b..5b8c5cb 100644 --- a/Aquaria/StatsAndAchievements.cpp +++ b/Aquaria/StatsAndAchievements.cpp @@ -129,7 +129,7 @@ StatsAndAchievements::StatsAndAchievements() { -#ifdef BBGE_BUILD_ACHIEVEMENTS_INTERNAL +#ifndef BBGE_BUILD_STEAMWORKS unlockedDisplayTimestamp = -1.0f; #endif @@ -148,7 +148,7 @@ StatsAndAchievements::StatsAndAchievements() //----------------------------------------------------------------------------- void StatsAndAchievements::RunFrame() { -#ifdef BBGE_BUILD_ACHIEVEMENTS_INTERNAL +#ifndef BBGE_BUILD_STEAMWORKS if ( !requestedStats ) { requestedStats = true; @@ -731,7 +731,7 @@ void StatsAndAchievements::update(float dt) } } -#ifdef BBGE_BUILD_ACHIEVEMENTS_INTERNAL +#ifndef BBGE_BUILD_STEAMWORKS // change no state if we're still fading in/out. if (!dsq->achievement_box->alpha.isInterpolating()) { @@ -755,7 +755,7 @@ void StatsAndAchievements::update(float dt) unlockedDisplayTimestamp = maxUnlockDisplayTime; std::string text("Achievement Unlocked:\n"); text += name; - unlockedToBeDisplayed.pop(); + unlockedToBeDisplayed.pop_front(); dsq->achievement_text->setText(text); dsq->achievement_text->alpha.interpolateTo(1, 1); dsq->achievement_box->alpha.interpolateTo(1, 0.1f); @@ -777,8 +777,8 @@ void StatsAndAchievements::UnlockAchievement( Achievement &achievement ) // the icon may change once it's unlocked achievement.iconImage = 0; -#ifdef BBGE_BUILD_ACHIEVEMENTS_INTERNAL - unlockedToBeDisplayed.push( std::string(achievement.name) ); +#ifndef BBGE_BUILD_STEAMWORKS + unlockedToBeDisplayed.push_back(achievement.name); #endif // Store stats end of frame @@ -794,7 +794,7 @@ void StatsAndAchievements::StoreStatsIfNecessary() { // already set any achievements in UnlockAchievement -#ifdef BBGE_BUILD_ACHIEVEMENTS_INTERNAL +#ifndef BBGE_BUILD_STEAMWORKS storeStats = false; // only ever try once. // FIXME: We should use a temporary file to ensure that data @@ -836,4 +836,6 @@ void StatsAndAchievements::StoreStatsIfNecessary() } } - +#ifdef BBGE_BUILD_STEAMWORKS +#error Someone with access to the Steamworks SDK actually has to implement this! +#endif diff --git a/Aquaria/StatsAndAchievements.h b/Aquaria/StatsAndAchievements.h index e01647c..d09179b 100644 --- a/Aquaria/StatsAndAchievements.h +++ b/Aquaria/StatsAndAchievements.h @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef STATS_ACH_H #define STATS_ACH_H -#ifdef BBGE_BUILD_ACHIEVEMENTS_INTERNAL -#include +#ifndef BBGE_BUILD_STEAMWORKS +#include #endif enum Achievements @@ -143,9 +143,9 @@ private: // Store stats void StoreStatsIfNecessary(); -#ifdef BBGE_BUILD_ACHIEVEMENTS_INTERNAL +#ifndef BBGE_BUILD_STEAMWORKS float unlockedDisplayTimestamp; - std::queue unlockedToBeDisplayed; + std::list unlockedToBeDisplayed; #endif // Did we get the stats from Steam? diff --git a/Aquaria/Web.cpp b/Aquaria/Web.cpp index 8df1336..3de52fa 100644 --- a/Aquaria/Web.cpp +++ b/Aquaria/Web.cpp @@ -42,21 +42,11 @@ void Web::setParentEntity(Entity *e) void Web::killAllWebs() { - std::queueshotDeleteQueue; - for (Webs::iterator i = webs.begin(); i != webs.end(); i++) - { - shotDeleteQueue.push(*i); - } - Web *s = 0; - while (!shotDeleteQueue.empty()) - { - s = shotDeleteQueue.front(); - if (s) - { + Webs websToDelete = webs; // copy + for (Webs::iterator it = websToDelete.begin(); it != websToDelete.end(); it++) + if(Web *s = *it) s->safeKill(); - } - shotDeleteQueue.pop(); - } + webs.clear(); } diff --git a/Aquaria/WorldMapRender.cpp b/Aquaria/WorldMapRender.cpp index 979a517..fb5e7de 100644 --- a/Aquaria/WorldMapRender.cpp +++ b/Aquaria/WorldMapRender.cpp @@ -1166,9 +1166,7 @@ void WorldMapRender::onUpdate(float dt) else { if (!dsq->isInCutscene() && dsq->game->avatar && activeTile - #ifdef AQUARIA_BUILD_SCENEEDITOR && !dsq->game->sceneEditor.isOn() - #endif ) { const float screenWidth = core->getVirtualWidth() * core->invGlobalScale; diff --git a/Aquaria/aquaria.rc b/Aquaria/aquaria.rc index 12898dd..63a8cb6 100644 --- a/Aquaria/aquaria.rc +++ b/Aquaria/aquaria.rc @@ -32,14 +32,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #else # define AQUARIA_RC_COMMENTS "Open Source Build" #endif -#define AQUARIA_RC_FILEVERSION_STRING "1.1.3.fg" +#define AQUARIA_RC_FILEVERSION_STRING "1.1.3.OSE" // Version information 1 VERSIONINFO FILEVERSION AQUARIA_RC_FILEVERSION PRODUCTVERSION AQUARIA_RC_PRODUCTVERSION -FILEOS VOS__WINDOWS32 -FILETYPE VFT_APP +//FILEOS VOS__WINDOWS32 +//FILETYPE VFT_APP BEGIN BLOCK "StringFileInfo" @@ -65,5 +65,5 @@ END END // Icon -101 ICON "AquariaWin32OSE.ico" +101 ICON "AquariaOSE.ico" diff --git a/BBGE/BBGECompileConfig.h b/BBGE/BBGECompileConfig.h deleted file mode 100644 index 0b7f98d..0000000 --- a/BBGE/BBGECompileConfig.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef BBGE_COMPILE_CONFIG_H -#define BBGE_COMPILE_CONFIG_H - -#ifndef BBGE_SKIP_CONFIG_HEADERS - -#define BBGE_BUILD_OPENGL_DYNAMIC 1 -#define BBGE_BUILD_FMOD_OPENAL_BRIDGE 1 -#define BBGE_BUILD_ACHIEVEMENTS_INTERNAL 1 -#define BBGE_BUILD_VFS 1 - -#endif - -#endif diff --git a/BBGE/Base.h b/BBGE/Base.h index 0ab9f4a..4bff87e 100644 --- a/BBGE/Base.h +++ b/BBGE/Base.h @@ -29,8 +29,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #endif #endif -#include "BBGECompileConfig.h" - #define compile_assert(pred) switch(0){case 0:case (pred):;} #ifdef _MSC_VER diff --git a/BBGE/CMakeLists.txt b/BBGE/CMakeLists.txt new file mode 100644 index 0000000..a45e45f --- /dev/null +++ b/BBGE/CMakeLists.txt @@ -0,0 +1,116 @@ +# Bit Blot Game Engine sources... +set(BBGE_SRCS + ActionInput.cpp + ActionInput.h + ActionMapper.cpp + ActionMapper.h + ActionSet.cpp + ActionSet.h + ActionStatus.cpp + ActionStatus.h + AfterEffect.cpp + AfterEffect.h + Base.cpp + Base.h + BaseText.h + bithacks.h + BitmapFont.cpp + BitmapFont.h + CMakeLists.txt + Core.cpp + Core.h + DarkLayer.cpp + DarkLayer.h + DebugFont.cpp + DebugFont.h + Effects.cpp + Effects.h + Emitter.cpp + Event.cpp + Event.h + FmodOpenALBridge.cpp + FmodOpenALBridge.h + FrameBuffer.cpp + FrameBuffer.h + GameKeyNames.cpp + GameKeyNames.h + GameKeys.h + GLLoad.cpp + GLLoad.h + Gradient.cpp + Gradient.h + Image.cpp + Image.h + Joystick.cpp + Joystick.h + LensFlare.cpp + LensFlare.h + Localization.cpp + Localization.h + MathFunctions.h + MT.cpp + MT.h + OpenGLStubs.h + OSFunctions.cpp + OSFunctions.h + ParticleEffect.cpp + ParticleManager.cpp + Particles.cpp + Particles.h + Precacher.cpp + Precacher.h + Quad.cpp + Quad.h + QuadTrail.cpp + QuadTrail.h + ReadXML.cpp + ReadXML.h + Rect.h + Refcounted.h + RenderBase.cpp + RenderBase.h + RenderObject.cpp + RenderObject.h + RenderObject_inline.h + RenderObjectLayer.cpp + RenderRect.cpp + RoundedRect.cpp + RoundedRect.h + ScreenTransition.cpp + ScreenTransition.h + ScriptObject.cpp + ScriptObject.h + Shader.cpp + Shader.h + SimpleIStringStream.h + SkeletalSprite.cpp + SkeletalSprite.h + Slider.cpp + Slider.h + SoundManager.cpp + SoundManager.h + SpawnParticleData.cpp + StateMachine.cpp + StateMachine.h + StateManager.cpp + StateManager.h + StringBank.cpp + StringBank.h + Texture.cpp + Texture.h + TTFFont.cpp + TTFFont.h + Vector.cpp + Vector.h + Window.cpp + Window.h + Window_SDL1.cpp + Window_SDL2.cpp +) + +if(APPLE AND NOT AQUARIA_USE_SDL2) + set(BBGE_SRCS ${BBGE_SRCS} Cocoa.mm) +endif() + +add_library(BBGE ${BBGE_SRCS}) +target_link_libraries(BBGE ExternalLibs ${SDL_LIBRARY}) diff --git a/BBGE/Core.cpp b/BBGE/Core.cpp index ce68297..50f09b0 100644 --- a/BBGE/Core.cpp +++ b/BBGE/Core.cpp @@ -51,6 +51,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifdef BBGE_BUILD_VFS #include "ttvfs.h" #endif +#include "ttvfs_stdio.h" Core *core = 0; @@ -709,7 +710,6 @@ void Core::initGraphicsLibrary(int width, int height, bool fullscreen, bool vsyn window->open(width, height, fullscreen, bpp, vsync, display, hz); window->setTitle(appName.c_str()); -#ifdef BBGE_BUILD_OPENGL_DYNAMIC // get GL symbols AFTER opening the window, otherwise we get a super old GL context on windows and nothing works if (!lookup_all_glsyms()) { @@ -718,7 +718,6 @@ void Core::initGraphicsLibrary(int width, int height, bool fullscreen, bool vsyn SDL_Quit(); exit_error(os.str()); } -#endif debugLog("GL vendor, renderer & version:"); debugLog((const char*)glGetString(GL_VENDOR)); @@ -833,9 +832,7 @@ void Core::shutdownGraphicsLibrary() delete window; window = NULL; SDL_QuitSubSystem(SDL_INIT_VIDEO); -#ifdef BBGE_BUILD_OPENGL_DYNAMIC unload_all_glsyms(); -#endif lib_graphics = false; @@ -2316,7 +2313,7 @@ void Core::initLocalization() while(in) { in >> low >> up; - + trans[(unsigned char)(low[0])] = (unsigned char)up[0]; } initCharTranslationTables(&trans); diff --git a/BBGE/GLLoad.cpp b/BBGE/GLLoad.cpp index 2a77c9b..9cb6a9f 100644 --- a/BBGE/GLLoad.cpp +++ b/BBGE/GLLoad.cpp @@ -1,7 +1,16 @@ +#include "GLLoad.h" + +#ifdef BBGE_BUILD_OPENGL_STATIC + +bool lookup_all_glsyms() { return true; } +bool void unload_all_glsyms() { return false; } + +#else + #include "Base.h" #include "RenderBase.h" -#include "GLLoad.h" + #include #ifdef GLAPIENTRY @@ -16,7 +25,6 @@ #include -#ifdef BBGE_BUILD_OPENGL_DYNAMIC PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT = NULL; @@ -89,6 +97,7 @@ static bool lookup_glsym(const char *funcname, void **func) bool lookup_all_glsyms() { bool retval = true; + #define GL_FUNC(ret,fn,params,call,rt) \ if (!lookup_glsym(#fn, (void **) &p##fn)) retval = false; #include "OpenGLStubs.h" @@ -210,4 +219,4 @@ void unload_all_glsyms() glUniform4ivARB = NULL; } -#endif // BBGE_BUILD_OPENGL_DYNAMIC +#endif // BBGE_BUILD_OPENGL_STATIC diff --git a/BBGE/GameKeys.h b/BBGE/GameKeys.h index edd01ba..0050be1 100644 --- a/BBGE/GameKeys.h +++ b/BBGE/GameKeys.h @@ -2,7 +2,6 @@ #define BBGE_GAME_KEYS_H #include -#include "BBGECompileConfig.h" #if SDL_VERSION_ATLEAST(2,0,0) diff --git a/BBGE/Shader.cpp b/BBGE/Shader.cpp index 95c72ed..8082ef8 100644 --- a/BBGE/Shader.cpp +++ b/BBGE/Shader.cpp @@ -37,7 +37,7 @@ void Shader::staticInit() bool use = true; -#ifdef BBGE_BUILD_OPENGL_DYNAMIC +#ifndef BBGE_BUILD_OPENGL_STATIC if( !glCreateProgramObjectARB || !glDeleteObjectARB || !glUseProgramObjectARB || !glCreateShaderObjectARB || !glCreateShaderObjectARB || !glCompileShaderARB || !glGetObjectParameterivARB || !glAttachObjectARB || !glGetInfoLogARB || diff --git a/BBGE/SoundManager.cpp b/BBGE/SoundManager.cpp index b90269c..1499ac4 100644 --- a/BBGE/SoundManager.cpp +++ b/BBGE/SoundManager.cpp @@ -24,15 +24,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "Base.h" #include "ttvfs_stdio.h" -#ifdef BBGE_BUILD_FMOD_OPENAL_BRIDGE - #include "FmodOpenALBridge.h" -#else - #include - #include - #ifdef BBGE_BUILD_WINDOWS - #pragma comment(lib, "fmodex_vc.lib") - #endif -#endif +#include "FmodOpenALBridge.h" + SoundManager *sound = 0; @@ -328,11 +321,6 @@ SoundManager::SoundManager(const std::string &defaultDevice) if (checkError()) goto get_out; } -#ifdef BBGE_BUILD_FMOD_OPENAL_BRIDGE - SoundCore::system->getNumChannels(&channels); -#endif - - debugLog("set file system"); result = SoundCore::system->setFileSystem(myopen, myclose, myread, myseek, 2048); diff --git a/BBGE/Strings.cpp b/BBGE/Strings.cpp deleted file mode 100644 index ca21f7b..0000000 --- a/BBGE/Strings.cpp +++ /dev/null @@ -1,173 +0,0 @@ -/* -Copyright (C) 2007, 2010 - Bit-Blot - -This file is part of Aquaria. - -Aquaria 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 2 -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, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ -#include "Core.h" - -typedef std::map InputCodeMap; - -InputCodeMap inputCodeMap; - -void initInputCodeMap() -{ - inputCodeMap["0"] = 0; - - inputCodeMap["KEY_A"] = KEY_A; - inputCodeMap["KEY_B"] = KEY_B; - inputCodeMap["KEY_C"] = KEY_C; - inputCodeMap["KEY_D"] = KEY_D; - inputCodeMap["KEY_E"] = KEY_E; - inputCodeMap["KEY_F"] = KEY_F; - inputCodeMap["KEY_G"] = KEY_G; - inputCodeMap["KEY_H"] = KEY_H; - inputCodeMap["KEY_I"] = KEY_I; - inputCodeMap["KEY_J"] = KEY_J; - inputCodeMap["KEY_K"] = KEY_K; - inputCodeMap["KEY_L"] = KEY_L; - inputCodeMap["KEY_M"] = KEY_M; - inputCodeMap["KEY_N"] = KEY_N; - inputCodeMap["KEY_O"] = KEY_O; - inputCodeMap["KEY_P"] = KEY_P; - inputCodeMap["KEY_Q"] = KEY_Q; - inputCodeMap["KEY_R"] = KEY_R; - inputCodeMap["KEY_S"] = KEY_S; - inputCodeMap["KEY_T"] = KEY_T; - inputCodeMap["KEY_U"] = KEY_U; - inputCodeMap["KEY_V"] = KEY_V; - inputCodeMap["KEY_W"] = KEY_W; - inputCodeMap["KEY_X"] = KEY_X; - inputCodeMap["KEY_Y"] = KEY_Y; - inputCodeMap["KEY_Z"] = KEY_Z; - - inputCodeMap["KEY_1"] = KEY_1; - inputCodeMap["KEY_2"] = KEY_2; - inputCodeMap["KEY_3"] = KEY_3; - inputCodeMap["KEY_4"] = KEY_4; - inputCodeMap["KEY_5"] = KEY_5; - inputCodeMap["KEY_6"] = KEY_6; - inputCodeMap["KEY_7"] = KEY_7; - inputCodeMap["KEY_8"] = KEY_8; - inputCodeMap["KEY_9"] = KEY_9; - inputCodeMap["KEY_0"] = KEY_0; - - inputCodeMap["KEY_NUMPAD1"] = KEY_NUMPAD1; - inputCodeMap["KEY_NUMPAD2"] = KEY_NUMPAD2; - inputCodeMap["KEY_NUMPAD3"] = KEY_NUMPAD3; - inputCodeMap["KEY_NUMPAD4"] = KEY_NUMPAD4; - inputCodeMap["KEY_NUMPAD5"] = KEY_NUMPAD5; - inputCodeMap["KEY_NUMPAD6"] = KEY_NUMPAD6; - inputCodeMap["KEY_NUMPAD7"] = KEY_NUMPAD7; - inputCodeMap["KEY_NUMPAD8"] = KEY_NUMPAD8; - inputCodeMap["KEY_NUMPAD9"] = KEY_NUMPAD9; - inputCodeMap["KEY_NUMPAD0"] = KEY_NUMPAD0; - - inputCodeMap["KEY_F1"] = KEY_F1; - inputCodeMap["KEY_F2"] = KEY_F2; - inputCodeMap["KEY_F3"] = KEY_F3; - inputCodeMap["KEY_F4"] = KEY_F4; - inputCodeMap["KEY_F5"] = KEY_F5; - inputCodeMap["KEY_F6"] = KEY_F6; - inputCodeMap["KEY_F7"] = KEY_F7; - inputCodeMap["KEY_F8"] = KEY_F8; - inputCodeMap["KEY_F9"] = KEY_F9; - inputCodeMap["KEY_F10"] = KEY_F10; - inputCodeMap["KEY_F11"] = KEY_F11; - inputCodeMap["KEY_F12"] = KEY_F12; - - inputCodeMap["KEY_LEFT"] = KEY_LEFT; - inputCodeMap["KEY_RIGHT"] = KEY_RIGHT; - inputCodeMap["KEY_UP"] = KEY_UP; - inputCodeMap["KEY_DOWN"] = KEY_DOWN; - - inputCodeMap["KEY_SPACE"] = KEY_SPACE; - inputCodeMap["KEY_LCONTROL"] = KEY_LCONTROL; - inputCodeMap["KEY_RCONTROL"] = KEY_RCONTROL; - inputCodeMap["KEY_LSHIFT"] = KEY_LSHIFT; - inputCodeMap["KEY_RSHIFT"] = KEY_RSHIFT; - inputCodeMap["KEY_LMETA"] = KEY_LMETA; - inputCodeMap["KEY_RMETA"] = KEY_RMETA; - inputCodeMap["KEY_LALT"] = KEY_LALT; - inputCodeMap["KEY_RALT"] = KEY_RALT; - inputCodeMap["KEY_RETURN"] = KEY_RETURN; - inputCodeMap["KEY_TAB"] = KEY_TAB; - - inputCodeMap["KEY_ESCAPE"] = KEY_ESCAPE; - - inputCodeMap["MOUSE_BUTTON_LEFT"] = ActionMapper::MOUSE_BUTTON_LEFT; - inputCodeMap["MOUSE_BUTTON_RIGHT"] = ActionMapper::MOUSE_BUTTON_RIGHT; - inputCodeMap["MOUSE_BUTTON_MIDDLE"] = ActionMapper::MOUSE_BUTTON_MIDDLE; - - for (int i = 0; i < 17; i++) - { - std::ostringstream os; - os << "JOY_BUTTON_" << i; - inputCodeMap[os.str()] = ActionMapper::JOY1_BUTTON_0+i; - } -} - -void clearInputCodeMap() -{ - inputCodeMap.clear(); -} - -std::string getInputCodeToString(int key) -{ - for (InputCodeMap::iterator i = inputCodeMap.begin(); i != inputCodeMap.end(); i++) - { - if ((*i).second == key) - { - return (*i).first; - } - } - return ""; -} - -// FIXME: Move stringbank to BBGE and move these strings into it. -- fg - -std::string getInputCodeToUserString(int key) -{ - for (InputCodeMap::iterator i = inputCodeMap.begin(); i != inputCodeMap.end(); i++) - { - if ((*i).second == key) - { - std::string use = (*i).first; - size_t idx = 0; - idx = use.find("KEY_"); - if (idx != std::string::npos) - { - use = use.substr(4, use.size()); - } - if (use == "MOUSE_BUTTON_LEFT") - use = "Left Mouse Button"; - if (use == "MOUSE_BUTTON_RIGHT") - use = "Right Mouse Button"; - if (use == "MOUSE_BUTTON_MIDDLE") - use = "Middle Mouse Button"; - - return use; - - } - } - return ""; -} - -int getStringToInputCode(const std::string &string) -{ - return inputCodeMap[string]; -} diff --git a/CMakeLists.txt b/CMakeLists.txt index e613761..daf13d1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,32 +1,21 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +CMAKE_MINIMUM_REQUIRED(VERSION 2.6...3.20) PROJECT(Aquaria) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") + INCLUDE(CheckCCompilerFlag) INCLUDE(CheckCXXCompilerFlag) INCLUDE(CheckFunctionExists) +# if no build type was provided, set a default one IF(NOT CMAKE_BUILD_TYPE) - SET(CMAKE_BUILD_TYPE Release CACHE STRING "None Debug Release RelWithDebInfo MinSizeRel" FORCE) + SET(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build (Debug, RelWithDebInfo, Release)" FORCE) ENDIF(NOT CMAKE_BUILD_TYPE) -IF(APPLE) - SET(MACOSX TRUE) -ENDIF(APPLE) - IF(CMAKE_SYSTEM_NAME STREQUAL "Haiku") SET(HAIKU TRUE) ENDIF() -IF(WIN32) - SET(WIN32_TRUE TRUE) -ELSE(WIN32) - SET(WIN32_TRUE FALSE) -ENDIF(WIN32) - -# if no build type was provided, set a default one -IF(NOT CMAKE_BUILD_TYPE) - SET(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build (Debug, RelWithDebInfo, Release)" FORCE) -ENDIF(NOT CMAKE_BUILD_TYPE) OPTION(AQUARIA_DEMO_BUILD "Demo Build?" FALSE) OPTION(AQUARIA_USE_VFS "Use Virtual File System? Required for some additional features." TRUE) @@ -34,223 +23,26 @@ OPTION(AQUARIA_USE_VFS "Use Virtual File System? Required for some additional fe OPTION(AQUARIA_USE_SDL2 "Use SDL2" TRUE) OPTION(AQUARIA_USE_GLM "Use GLM for matrix math" TRUE) -# No Steamworks SDK for Linux at the moment. Roll our own achievements. -ADD_DEFINITIONS(-DBBGE_BUILD_ACHIEVEMENTS_INTERNAL=1) - -SET(BBGEDIR ${CMAKE_CURRENT_SOURCE_DIR}/BBGE) -SET(SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/Aquaria) -SET(EXTLIBDIR ${CMAKE_CURRENT_SOURCE_DIR}/ExternalLibs) - -SET(FTGLDIR ${EXTLIBDIR}/FTGL) -SET(FTGLSRCDIR ${FTGLDIR}/src) -SET(FREETYPE2DIR ${EXTLIBDIR}/freetype2) -SET(FREETYPE2SRCDIR ${FREETYPE2DIR}/src) -SET(LUADIR ${EXTLIBDIR}/lua-5.1.4) -SET(LUASRCDIR ${LUADIR}/src) -SET(LIBOGGDIR ${EXTLIBDIR}/libogg) -SET(LIBVORBISDIR ${EXTLIBDIR}/libvorbis) - ################ Look for external libraries -### FreeType - -OPTION(AQUARIA_INTERNAL_FREETYPE "Always use included FreeType library" TRUE) -if(NOT AQUARIA_INTERNAL_FREETYPE) - find_package(Freetype) -endif(NOT AQUARIA_INTERNAL_FREETYPE) -if(NOT FREETYPE_FOUND) - set(FREETYPE_INCLUDE_DIRS ${FREETYPE2DIR}/include) -endif(NOT FREETYPE_FOUND) - -### Lua - -OPTION(AQUARIA_INTERNAL_LUA "Always use included Lua library" TRUE) -if(NOT AQUARIA_INTERNAL_LUA) - find_package(Lua51) -endif(NOT AQUARIA_INTERNAL_LUA) -if(NOT LUA51_FOUND) - set(LUA_INCLUDE_DIR ${LUASRCDIR}) -endif(NOT LUA51_FOUND) - -### Ogg/Vorbis - -OPTION(AQUARIA_INTERNAL_OGGVORBIS "Always use included Ogg/Vorbis libraries" TRUE) -if(NOT AQUARIA_INTERNAL_OGGVORBIS) - # CMake doesn't seem to have a module for libogg or libvorbis yet, so - # we roll our own based on existing find_package modules. - - find_path(OGG_INCLUDE_DIR ogg.h - HINTS $ENV{OGG_DIR} - PATH_SUFFIXES include/ogg include - PATHS ~/Library/Frameworks /Library/Frameworks /usr/local /usr /sw /opt/local /opt/csw /opt - ) - find_library(OGG_LIBRARY - NAMES ogg - HINTS $ENV{OGG_DIR} - PATH_SUFFIXES lib64 lib - PATHS ~/Library/Frameworks /Library/Frameworks /usr/local /usr /sw /opt/local /opt/csw /opt - ) - - if(OGG_LIBRARY) - - find_path(VORBIS_INCLUDE_DIR vorbisfile.h - HINTS $ENV{VORBIS_DIR} - PATH_SUFFIXES include/vorbis include - PATHS ~/Library/Frameworks /Library/Frameworks /usr/local /usr /sw /opt/local /opt/csw /opt - ) - find_library(VORBIS_LIBRARY - NAMES vorbis - HINTS $ENV{VORBIS_DIR} - PATH_SUFFIXES lib64 lib - PATHS ~/Library/Frameworks /Library/Frameworks /usr/local /usr /sw /opt/local /opt/csw /opt - ) - find_library(VORBISFILE_LIBRARY - NAMES vorbisfile - HINTS $ENV{VORBIS_DIR} - PATH_SUFFIXES lib64 lib - PATHS ~/Library/Frameworks /Library/Frameworks /usr/local /usr /sw /opt/local /opt/csw /opt - ) - - if(VORBIS_LIBRARY AND VORBISFILE_LIBRARY) - set(OGGVORBIS_INCLUDE_DIRS "${OGG_INCLUDE_DIR};${VORBIS_INCLUDE_DIR}" CACHE STRING "Ogg/Vorbis include directories") - if(UNIX AND NOT APPLE) - find_library(VORBIS_MATH_LIBRARY m) - set(OGGVORBIS_LIBRARIES "${VORBISFILE_LIBRARY};${VORBIS_LIBRARY};${VORBIS_MATH_LIBRARY};${OGG_LIBRARY}" CACHE STRING "Ogg/Vorbis libraries") - else(UNIX AND NOT APPLE) - set(OGGVORBIS_LIBRARIES "${VORBISFILE_LIBRARY};${VORBIS_LIBRARY};${OGG_LIBRARY}" CACHE STRING "Ogg/Vorbis libraries") - endif(UNIX AND NOT APPLE) - endif(VORBIS_LIBRARY AND VORBISFILE_LIBRARY) - - endif(OGG_LIBRARY) - - find_package_handle_standard_args(OggVorbis DEFAULT_MSG OGGVORBIS_LIBRARIES OGGVORBIS_INCLUDE_DIRS) - - mark_as_advanced(OGG_INCLUDE_DIR VORBIS_INCLUDE_DIR OGGVORBIS_INCLUDE_DIRS) - mark_as_advanced(OGG_LIBRARY VORBIS_LIBRARY VORBISFILE_LIBRARY VORBIS_MATH_LIBRARY OGGVORBIS_LIBRARIES) - -endif(NOT AQUARIA_INTERNAL_OGGVORBIS) - -if(NOT OGGVORBIS_FOUND) - set(OGGVORBIS_INCLUDE_DIRS ${LIBOGGDIR}/include ${LIBVORBISDIR}/include) -endif(NOT OGGVORBIS_FOUND) - -### SDL - -OPTION(AQUARIA_INTERNAL_SDL "Always use included SDL library" ${WIN32_TRUE}) -if(NOT AQUARIA_INTERNAL_SDL) - if(AQUARIA_USE_SDL2) - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") - find_package(SDL2) - if(SDL2_FOUND) - set(SDL_FOUND TRUE) - set(SDL_INCLUDE_DIR ${SDL2_INCLUDE_DIR}) - set(SDL_LIBRARY ${SDL2_LIBRARY}) - endif(SDL2_FOUND) - else(AQUARIA_USE_SDL2) - find_package(SDL) - endif(AQUARIA_USE_SDL2) -endif(NOT AQUARIA_INTERNAL_SDL) -if(NOT SDL_FOUND) - if(AQUARIA_USE_SDL2) - set(SDLDIR "${EXTLIBDIR}/SDL2") - else(AQUARIA_USE_SDL2) - set(SDLDIR "${EXTLIBDIR}/SDL12") - endif(AQUARIA_USE_SDL2) - - if(MACOSX) - set(SDL_INCLUDE_DIR "${SDLDIR}/include") - message(STATUS "Using internal copy of SDL") - if(AQUARIA_USE_SDL2) - set(SDL_LIBRARY "${SDLDIR}/lib/macosx/libSDL-2.0.0.dylib") - else(AQUARIA_USE_SDL2) - set(SDL_LIBRARY "${SDLDIR}/lib/macosx/libSDL-1.2.0.dylib;${SDLDIR}/lib/macosx/libSDLmain.a") - endif(AQUARIA_USE_SDL2) - elseif(WIN32) - set(SDL_INCLUDE_DIR "${SDLDIR}/include" CACHE PATH "SDL include directory" FORCE) - message(STATUS "Using internal copy of SDL") - if(AQUARIA_USE_SDL2) - set(SDLMAIN_LIBRARY "${SDLDIR}/lib/win32/SDL2main.lib" CACHE FILEPATH "Where the SDL2main library can be found" FORCE) - set(SDL_LIBRARY "${SDLDIR}/lib/win32/SDL2.lib" CACHE FILEPATH "Where the SDL2 library can be found" FORCE) - else(AQUARIA_USE_SDL2) - set(SDLMAIN_LIBRARY "${SDLDIR}/lib/win32/SDLmain.lib" CACHE FILEPATH "Where the SDLmain library can be found" FORCE) - set(SDL_LIBRARY "${SDLDIR}/lib/win32/SDL.lib" CACHE FILEPATH "Where the SDL library can be found" FORCE) - endif(AQUARIA_USE_SDL2) - set(SDL_LIBRARY ${SDLMAIN_LIBRARY} ${SDL_LIBRARY}) # not seen by user - else(MACOSX) - message(SEND_ERROR "We don't have a prebuilt SDL for this platform.") - endif(MACOSX) -endif(NOT SDL_FOUND) - -### OpenAL +### Pick one: SDL 1.2 or SDL2 if(AQUARIA_USE_SDL2) - OPTION(AQUARIA_USE_MOJOAL "Use mojoAL instead of OpenAL (requires SDL2)" TRUE) -endif() - -if(AQUARIA_USE_MOJOAL) - set(OPENALDIR "${EXTLIBDIR}/AL") - set(OPENAL_INCLUDE_DIR "${OPENALDIR}/include" CACHE PATH "OpenAL include directory" FORCE) + find_package(SDL2 REQUIRED) + if(SDL2_FOUND) + set(SDL_FOUND TRUE) + set(SDL_INCLUDE_DIR ${SDL2_INCLUDE_DIR}) + set(SDL_LIBRARY ${SDL2_LIBRARY}) + endif(SDL2_FOUND) else() - OPTION(AQUARIA_INTERNAL_OPENAL "Always use included OpenAL library" ${WIN32_TRUE}) - if(NOT AQUARIA_INTERNAL_OPENAL) - find_package(OpenAL) - endif(NOT AQUARIA_INTERNAL_OPENAL) - if (NOT OPENAL_FOUND) - if(WIN32) - set(OPENALDIR "${EXTLIBDIR}/AL") - set(OPENAL_INCLUDE_DIR "${OPENALDIR}/include" CACHE PATH "OpenAL include directory" FORCE) - message(STATUS "Using internal copy of OpenAL") - set(OPENAL_LIBRARY "${OPENALDIR}/lib/win32/OpenAL32.lib" CACHE FILEPATH "Where the OpenAL library can be found" FORCE) - else(WIN32) - message(SEND_ERROR "We don't have a prebuilt OpenAL for this platform.") - endif(WIN32) - endif (NOT OPENAL_FOUND) + find_package(SDL REQUIRED) endif() -### TinyXML2 - -OPTION(AQUARIA_INTERNAL_TINYXML2 "Always use included TinyXML2 library" ${WIN32_TRUE}) -if(NOT AQUARIA_INTERNAL_TINYXML2) - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") - find_package(TinyXML2) -endif(NOT AQUARIA_INTERNAL_TINYXML2) -if(NOT TINYXML2_FOUND) - message(STATUS "Using internal copy of TinyXML2") - set(TINYXML2_INCLUDE_DIRS "${EXTLIBDIR}/tinyxml2") - set(TINYXML2_SRCS "${EXTLIBDIR}/tinyxml2/tinyxml2.cpp") -endif(NOT TINYXML2_FOUND) - -### FTGL - -OPTION(AQUARIA_INTERNAL_FTGL "Always use included FTGL library" TRUE) -if(NOT AQUARIA_INTERNAL_FTGL) - find_package(FTGL) -endif(NOT AQUARIA_INTERNAL_FTGL) -if(FTGL_FOUND) - # Nothing else uses freetype2 directly - set(FREETYPE_INCLUDE_DIRS) -else(FTGL_FOUND) - message(STATUS "Using internal copy of FTGL") - set(FTGL_INCLUDE_DIRS "${FTGLDIR}/include") - ADD_DEFINITIONS(-DAQUARIA_INTERNAL_FTGL=1) -endif(FTGL_FOUND) +SET(BBGEDIR ${CMAKE_CURRENT_SOURCE_DIR}/BBGE) +SET(EXTLIBDIR ${CMAKE_CURRENT_SOURCE_DIR}/ExternalLibs) ################ End of external libraries -INCLUDE_DIRECTORIES(${BBGEDIR}) -INCLUDE_DIRECTORIES(${BBGEDIR}/GL) -INCLUDE_DIRECTORIES(${SRCDIR}) -INCLUDE_DIRECTORIES(${FTGL_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${FREETYPE_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR}) -INCLUDE_DIRECTORIES(${OGGVORBIS_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) -INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR}) -INCLUDE_DIRECTORIES(${TINYXML2_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${EXTLIBDIR}) - - - # Custom build ID: e.g. "-custom", " (my very own build)" SET(AQUARIA_CUSTOM_BUILD_ID "" CACHE STRING "Text to append to the Aquaria version ID on the title screen.") @@ -278,27 +70,28 @@ if(NOT(AQUARIA_EXTRA_DATA_DIR STREQUAL "")) ADD_DEFINITIONS("-DAQUARIA_EXTRA_DATA_DIR=\"${AQUARIA_EXTRA_DATA_DIR}\"") endif(NOT(AQUARIA_EXTRA_DATA_DIR STREQUAL "")) -# Aquaria/BBGE specific defines... - -ADD_DEFINITIONS(-DBBGE_SKIP_CONFIG_HEADERS=1) # if this is not defined, it will use .h files to set the necessary defines -ADD_DEFINITIONS(-DBBGE_BUILD_OPENGL_DYNAMIC=1) -ADD_DEFINITIONS(-DBBGE_BUILD_FMOD_OPENAL_BRIDGE=1) -IF(AQUARIA_USE_VFS) - ADD_DEFINITIONS(-DBBGE_BUILD_VFS=1) +# Without #define VFS_ENABLE_C_API this is just stubbed out +include_directories(ttvfs_cfileapi) +if(AQUARIA_USE_VFS) ADD_DEFINITIONS(-DVFS_ENABLE_C_API=1) + ADD_DEFINITIONS(-DBBGE_BUILD_VFS=1) INCLUDE_DIRECTORIES(${EXTLIBDIR}/ttvfs) INCLUDE_DIRECTORIES(${EXTLIBDIR}/ttvfs_zip) INCLUDE_DIRECTORIES(${EXTLIBDIR}/ttvfs_cfileapi) ENDIF(AQUARIA_USE_VFS) -IF(AQUARIA_USE_SDL2) - ADD_DEFINITIONS(-DBBGE_BUILD_SDL2=1) -ENDIF(AQUARIA_USE_SDL2) - IF(AQUARIA_USE_GLM) ADD_DEFINITIONS(-DBBGE_USE_GLM=1) ENDIF(AQUARIA_USE_GLM) +if(AQUARIA_INTERNAL_FTGL) + ADD_DEFINITIONS(-DAQUARIA_INTERNAL_FTGL=1) +endif() + +if(AQUARIA_INTERNAL_LUA) + ADD_DEFINITIONS(-DAQUARIA_INTERNAL_LUA=1) +endif() + IF(AQUARIA_DEMO_BUILD) message(STATUS "Demo build.") ADD_DEFINITIONS(-DAQUARIA_DEMO=1) @@ -316,26 +109,19 @@ IF(CMAKE_BUILD_TYPE STREQUAL "Debug") message(STATUS "This is a debug build.") ENDIF(CMAKE_BUILD_TYPE STREQUAL "Debug") +# FIXME: These should go IF(UNIX) ADD_DEFINITIONS(-DBBGE_BUILD_UNIX=1) ENDIF(UNIX) - IF(MACOSX) ADD_DEFINITIONS(-DBBGE_BUILD_MACOSX=1) ENDIF(MACOSX) - IF(WIN32) ADD_DEFINITIONS(-DBBGE_BUILD_WINDOWS=1) - SET(EXETYPE WIN32) - SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} aquaria.rc) + ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) + ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE) ENDIF(WIN32) - -# Build Lua with Unix _setjmp/_longjmp support. -IF(UNIX AND NOT HAIKU) - ADD_DEFINITIONS(-DLUA_USE_ULONGJMP=1) -ENDIF() - IF(CMAKE_COMPILER_IS_GNUCC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -pipe -fsigned-char") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic -pipe -fsigned-char -std=gnu99") @@ -348,11 +134,6 @@ IF(CMAKE_COMPILER_IS_GNUCC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fno-stack-protector") ENDIF(AQUARIA_GCC_HAS_STACKPROT) - # -O3 breaks on some GCC/MinGW versions, make sure CMake does not set this as default. - # Exceptions are not used, excluding support for release builds adds less bulk as well. - set(CMAKE_C_FLAGS_RELEASE "-O2" CACHE STRING "Flags used for release builds" FORCE) - set(CMAKE_CXX_FLAGS_RELEASE "-O2 -fno-exceptions" CACHE STRING "Flags used for release builds" FORCE) - # !!! FIXME: probably not safe long-term. # CMake mailing list had this hack for getting rid of -rdynamic: # http://public.kitware.com/pipermail/cmake/2006-July/010404.html @@ -362,387 +143,30 @@ IF(CMAKE_COMPILER_IS_GNUCC) ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux") ENDIF(CMAKE_COMPILER_IS_GNUCC) -CHECK_CXX_COMPILER_FLAG("-std=gnu++11" AQUARIA_CC_HAS_GNUXX11) -CHECK_CXX_COMPILER_FLAG("-std=gnu++1x" AQUARIA_CC_HAS_GNUXX1X) -CHECK_CXX_COMPILER_FLAG("-std=gnu++0x" AQUARIA_CC_HAS_GNUXX0X) -IF(AQUARIA_CC_HAS_GNUXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") -ELSEIF(AQUARIA_CC_HAS_GNUXX1X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++1x") -ELSEIF(AQUARIA_CC_HAS_GNUXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x") -ENDIF(AQUARIA_CC_HAS_GNUXX11) - CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP) IF(HAVE_STRCASECMP) ADD_DEFINITIONS(-DHAVE_STRCASECMP) ENDIF(HAVE_STRCASECMP) -# Main game source code for Aquaria, minus engine and other middleware... -SET(AQUARIA_SRCS - ${SRCDIR}/AnimationEditor.cpp - ${SRCDIR}/AquariaComboBox.cpp - ${SRCDIR}/AquariaMenuItem.cpp - ${SRCDIR}/AquariaSaveSlot.cpp - ${SRCDIR}/Avatar.cpp - ${SRCDIR}/Beam.cpp - ${SRCDIR}/BitBlotLogo.cpp - ${SRCDIR}/CollideEntity.cpp - ${SRCDIR}/Continuity.cpp - ${SRCDIR}/Credits.cpp - ${SRCDIR}/CurrentRender.cpp - ${SRCDIR}/Demo.cpp - ${SRCDIR}/DSQ.cpp - ${SRCDIR}/Element.cpp - ${SRCDIR}/Emote.cpp - ${SRCDIR}/Entity.cpp - ${SRCDIR}/FlockEntity.cpp - ${SRCDIR}/Game.cpp - ${SRCDIR}/GameStructs.cpp - ${SRCDIR}/GameplayVariables.cpp - ${SRCDIR}/GasCloud.cpp - ${SRCDIR}/GridRender.cpp - ${SRCDIR}/Hair.cpp - ${SRCDIR}/Ingredient.cpp - ${SRCDIR}/InGameMenu.cpp - ${SRCDIR}/Intro.cpp - ${SRCDIR}/Logo.cpp - ${SRCDIR}/Main.cpp - ${SRCDIR}/ManaBall.cpp - ${SRCDIR}/MiniMapRender.cpp - ${SRCDIR}/Mod.cpp - ${SRCDIR}/ModSelector.cpp - ${SRCDIR}/ModDownloader.cpp - ${SRCDIR}/Network.cpp - ${SRCDIR}/ParticleEditor.cpp - ${SRCDIR}/Path.cpp - ${SRCDIR}/PathFinding.cpp - ${SRCDIR}/PathRender.cpp - ${SRCDIR}/RecipeMenuEntry.cpp - ${SRCDIR}/SceneEditor.cpp - ${SRCDIR}/SchoolFish.cpp - ${SRCDIR}/Scriptable.cpp - ${SRCDIR}/ScriptedEntity.cpp - ${SRCDIR}/ScriptInterface.cpp - ${SRCDIR}/Segmented.cpp - ${SRCDIR}/SFXLoops.cpp - ${SRCDIR}/Shot.cpp - ${SRCDIR}/Spore.cpp - ${SRCDIR}/States.cpp - ${SRCDIR}/StatsAndAchievements.cpp - ${SRCDIR}/SteamRender.cpp - ${SRCDIR}/Strand.cpp - ${SRCDIR}/StringBank_gen.h - ${SRCDIR}/SubtitlePlayer.cpp - ${SRCDIR}/ToolTip.cpp - ${SRCDIR}/UserSettings.cpp - ${SRCDIR}/WaterSurfaceRender.cpp - ${SRCDIR}/Web.cpp - ${SRCDIR}/WorldMapRender.cpp - ${SRCDIR}/WorldMapTiles.cpp -) -IF(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) -SET_SOURCE_FILES_PROPERTIES( - # We knowingly apply offsetof to non-POD types. - ${SRCDIR}/ScriptInterface.cpp - PROPERTIES COMPILE_FLAGS "-Wno-invalid-offsetof" -) -ENDIF() +add_subdirectory(ExternalLibs) -IF(MACOSX) - IF(NOT AQUARIA_USE_SDL2) - SET(COCOA_SRCS "${BBGEDIR}/Cocoa.mm") - ENDIF(NOT AQUARIA_USE_SDL2) -ENDIF(MACOSX) - -# Bit Blot Game Engine sources... -SET(BBGE_SRCS - ${BBGEDIR}/ActionInput.cpp - ${BBGEDIR}/ActionMapper.cpp - ${BBGEDIR}/ActionSet.cpp - ${BBGEDIR}/ActionStatus.cpp - ${BBGEDIR}/AfterEffect.cpp - ${BBGEDIR}/Base.cpp - ${BBGEDIR}/BitmapFont.cpp - ${BBGEDIR}/Core.cpp - ${BBGEDIR}/DarkLayer.cpp - ${BBGEDIR}/DebugFont.cpp - ${BBGEDIR}/Effects.cpp - ${BBGEDIR}/Emitter.cpp - ${BBGEDIR}/Event.cpp - ${BBGEDIR}/FrameBuffer.cpp - ${BBGEDIR}/GameKeyNames.cpp - ${BBGEDIR}/Gradient.cpp - ${BBGEDIR}/GLLoad.cpp - ${BBGEDIR}/Image.cpp - ${BBGEDIR}/Joystick.cpp - ${BBGEDIR}/LensFlare.cpp - ${BBGEDIR}/Localization.cpp - ${BBGEDIR}/MT.cpp - ${BBGEDIR}/OSFunctions.cpp - ${BBGEDIR}/ParticleEffect.cpp - ${BBGEDIR}/ParticleManager.cpp - ${BBGEDIR}/Particles.cpp - ${BBGEDIR}/Precacher.cpp - ${BBGEDIR}/Quad.cpp - ${BBGEDIR}/QuadTrail.cpp - ${BBGEDIR}/ReadXML.cpp - ${BBGEDIR}/RenderBase.cpp - ${BBGEDIR}/RenderObject.cpp - ${BBGEDIR}/RenderObjectLayer.cpp - ${BBGEDIR}/RenderRect.cpp - ${BBGEDIR}/RoundedRect.cpp - ${BBGEDIR}/ScreenTransition.cpp - ${BBGEDIR}/ScriptObject.cpp - ${BBGEDIR}/Shader.cpp - ${BBGEDIR}/SkeletalSprite.cpp - ${BBGEDIR}/Slider.cpp - ${BBGEDIR}/SoundManager.cpp - ${BBGEDIR}/SpawnParticleData.cpp - ${BBGEDIR}/StateMachine.cpp - ${BBGEDIR}/StateManager.cpp - ${BBGEDIR}/StringBank.cpp - ${BBGEDIR}/Texture.cpp - ${BBGEDIR}/TTFFont.cpp - ${BBGEDIR}/Vector.cpp - ${BBGEDIR}/Window.cpp - ${BBGEDIR}/Window_SDL1.cpp - ${BBGEDIR}/Window_SDL2.cpp - ${BBGEDIR}/FmodOpenALBridge.cpp - ${COCOA_SRCS} - ${EXTLIBDIR}/DeflateCompressor.cpp - ${EXTLIBDIR}/luaalloc.cpp - ${EXTLIBDIR}/glfont2/glfont2.cpp - ${EXTLIBDIR}/minihttp.cpp - ${EXTLIBDIR}/jps.hh - ${EXTLIBDIR}/miniz.cpp - ${EXTLIBDIR}/tinylibs.cpp -) - -if(AQUARIA_USE_MOJOAL) - set(BBGE_SRCS ${BBGE_SRCS} ${EXTLIBDIR}/mojoal.c) -endif() - -IF(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) -SET_SOURCE_FILES_PROPERTIES( - ${BBGEDIR}/MT.cpp - PROPERTIES COMPILE_FLAGS "-fpermissive" -) -ENDIF() - -SET(FTGL_SRCS - ${FTGLSRCDIR}/FTCharmap.cpp - ${FTGLSRCDIR}/FTContour.cpp - ${FTGLSRCDIR}/FTFace.cpp - ${FTGLSRCDIR}/FTFont.cpp - ${FTGLSRCDIR}/FTGLTextureFont.cpp - ${FTGLSRCDIR}/FTGlyph.cpp - ${FTGLSRCDIR}/FTGlyphContainer.cpp - ${FTGLSRCDIR}/FTLibrary.cpp - ${FTGLSRCDIR}/FTPoint.cpp - ${FTGLSRCDIR}/FTSize.cpp - ${FTGLSRCDIR}/FTTextureGlyph.cpp -) - -SET_SOURCE_FILES_PROPERTIES( - ${FTGL_SRCS} - PROPERTIES COMPILE_FLAGS "-DFTGL_LIBRARY_STATIC" -) - -SET(OGGVORBIS_SRCS - ${LIBOGGDIR}/src/bitwise.c - ${LIBOGGDIR}/src/framing.c - ${LIBVORBISDIR}/lib/analysis.c - ${LIBVORBISDIR}/lib/bitrate.c - ${LIBVORBISDIR}/lib/block.c - ${LIBVORBISDIR}/lib/codebook.c - ${LIBVORBISDIR}/lib/envelope.c - ${LIBVORBISDIR}/lib/floor0.c - ${LIBVORBISDIR}/lib/floor1.c - ${LIBVORBISDIR}/lib/info.c - ${LIBVORBISDIR}/lib/lpc.c - ${LIBVORBISDIR}/lib/lsp.c - ${LIBVORBISDIR}/lib/mapping0.c - ${LIBVORBISDIR}/lib/mdct.c - ${LIBVORBISDIR}/lib/psy.c - ${LIBVORBISDIR}/lib/registry.c - ${LIBVORBISDIR}/lib/res0.c - ${LIBVORBISDIR}/lib/sharedbook.c - ${LIBVORBISDIR}/lib/smallft.c - ${LIBVORBISDIR}/lib/synthesis.c - ${LIBVORBISDIR}/lib/vorbisfile.c - ${LIBVORBISDIR}/lib/window.c -) - -SET(FREETYPE2_SRCS - ${FREETYPE2SRCDIR}/base/ftsystem.c - ${FREETYPE2SRCDIR}/base/ftdebug.c - ${FREETYPE2SRCDIR}/base/ftinit.c - ${FREETYPE2SRCDIR}/base/ftbase.c - ${FREETYPE2SRCDIR}/base/ftbbox.c - ${FREETYPE2SRCDIR}/base/ftbdf.c - ${FREETYPE2SRCDIR}/base/ftbitmap.c - ${FREETYPE2SRCDIR}/base/ftcid.c - ${FREETYPE2SRCDIR}/base/ftfstype.c - ${FREETYPE2SRCDIR}/base/ftgasp.c - ${FREETYPE2SRCDIR}/base/ftglyph.c - ${FREETYPE2SRCDIR}/base/ftgxval.c - ${FREETYPE2SRCDIR}/base/ftlcdfil.c - ${FREETYPE2SRCDIR}/base/ftmm.c - ${FREETYPE2SRCDIR}/base/ftotval.c - ${FREETYPE2SRCDIR}/base/ftpatent.c - ${FREETYPE2SRCDIR}/base/ftpfr.c - ${FREETYPE2SRCDIR}/base/ftstroke.c - ${FREETYPE2SRCDIR}/base/ftsynth.c - ${FREETYPE2SRCDIR}/base/fttype1.c - ${FREETYPE2SRCDIR}/base/ftwinfnt.c - ${FREETYPE2SRCDIR}/truetype/truetype.c - ${FREETYPE2SRCDIR}/type1/type1.c - ${FREETYPE2SRCDIR}/cff/cff.c - ${FREETYPE2SRCDIR}/cid/type1cid.c - ${FREETYPE2SRCDIR}/pfr/pfr.c - ${FREETYPE2SRCDIR}/type42/type42.c - ${FREETYPE2SRCDIR}/winfonts/winfnt.c - ${FREETYPE2SRCDIR}/pcf/pcf.c - ${FREETYPE2SRCDIR}/bdf/bdf.c - ${FREETYPE2SRCDIR}/sfnt/sfnt.c - ${FREETYPE2SRCDIR}/autofit/autofit.c - ${FREETYPE2SRCDIR}/pshinter/pshinter.c - ${FREETYPE2SRCDIR}/raster/raster.c - ${FREETYPE2SRCDIR}/smooth/smooth.c - ${FREETYPE2SRCDIR}/cache/ftcache.c - ${FREETYPE2SRCDIR}/gzip/ftgzip.c - ${FREETYPE2SRCDIR}/lzw/ftlzw.c - ${FREETYPE2SRCDIR}/psaux/psaux.c - ${FREETYPE2SRCDIR}/psnames/psmodule.c -) - -IF(MSVC) - SET_SOURCE_FILES_PROPERTIES( - ${FREETYPE2_SRCS} - PROPERTIES COMPILE_FLAGS "-DFT_CONFIG_OPTION_SYSTEM_ZLIB -DFT2_BUILD_LIBRARY -I${FREETYPE2SRCDIR} -I${FREETYPE2DIR}/include/freetype/config -DHAVE_FCNTL_H" - ) -ELSE(MSVC) - # FT2 seems to not be strict-aliasing safe, so disable that in GCC. - CHECK_C_COMPILER_FLAG("-fno-strict-aliasing" COMPILER_HAS_NOSTRICTALIAS) - IF(COMPILER_HAS_NOSTRICTALIAS) - SET(NOSTRICTALIAS "-fno-strict-aliasing") - ELSE(COMPILER_HAS_NOSTRICTALIAS) - SET(NOSTRICTALIAS "") - ENDIF(COMPILER_HAS_NOSTRICTALIAS) - SET_SOURCE_FILES_PROPERTIES( - ${FREETYPE2_SRCS} - PROPERTIES COMPILE_FLAGS "-Wno-extended-offsetof -DFT_CONFIG_OPTION_SYSTEM_ZLIB -DFT_CONFIG_CONFIG_H='\"${FREETYPE2DIR}/include/freetype/config/ftconfig.h\"' -DFT2_BUILD_LIBRARY -DFT_CONFIG_MODULES_H='\"${FREETYPE2DIR}/include/freetype/config/ftmodule.h\"' -I${FREETYPE2SRCDIR} -I${FREETYPE2DIR}/include/freetype/config -DHAVE_FCNTL_H ${NOSTRICTALIAS}" - ) -ENDIF(MSVC) +# Set external libs as deps for BBGE & Aquaria... +INCLUDE_DIRECTORIES(${BBGEDIR}) +message(STATUS "FTGL_INCLUDE_DIRS: ${FTGL_INCLUDE_DIRS}") +INCLUDE_DIRECTORIES(${FTGL_INCLUDE_DIRS}) +message(STATUS "LUA_INCLUDE_DIR: ${LUA_INCLUDE_DIR}") +INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR}) +message(STATUS "OGGVORBIS_INCLUDE_DIRS: ${OGGVORBIS_INCLUDE_DIRS}") +INCLUDE_DIRECTORIES(${OGGVORBIS_INCLUDE_DIRS}) +message(STATUS "SDL_INCLUDE_DIR: ${SDL_INCLUDE_DIR}") +INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) +message(STATUS "OPENAL_INCLUDE_DIR: ${OPENAL_INCLUDE_DIR}") +INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR}) +message(STATUS "TINYXML2_INCLUDE_DIRS: ${TINYXML2_INCLUDE_DIRS}") +INCLUDE_DIRECTORIES(${TINYXML2_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${EXTLIBDIR}) -SET(LUA_SRCS - ${LUASRCDIR}/lapi.c - ${LUASRCDIR}/ldblib.c - ${LUASRCDIR}/ldebug.c - ${LUASRCDIR}/ldo.c - ${LUASRCDIR}/ldump.c - ${LUASRCDIR}/lfunc.c - ${LUASRCDIR}/lgc.c - ${LUASRCDIR}/linit.c - ${LUASRCDIR}/liolib.c - ${LUASRCDIR}/lmem.c - ${LUASRCDIR}/loadlib.c - ${LUASRCDIR}/lobject.c - ${LUASRCDIR}/lopcodes.c - ${LUASRCDIR}/loslib.c - ${LUASRCDIR}/lstate.c - ${LUASRCDIR}/lstring.c - ${LUASRCDIR}/ltable.c - ${LUASRCDIR}/ltm.c - ${LUASRCDIR}/lundump.c - ${LUASRCDIR}/lvm.c - ${LUASRCDIR}/lzio.c - ${LUASRCDIR}/lauxlib.c - ${LUASRCDIR}/lbaselib.c - ${LUASRCDIR}/lstrlib.c - ${LUASRCDIR}/ltablib.c - ${LUASRCDIR}/lparser.c - ${LUASRCDIR}/llex.c - ${LUASRCDIR}/lcode.c - ${LUASRCDIR}/lmathlib.c -) - -IF(AQUARIA_USE_VFS) - ADD_SUBDIRECTORY("${EXTLIBDIR}/ttvfs") - ADD_SUBDIRECTORY("${EXTLIBDIR}/ttvfs_zip") - ADD_SUBDIRECTORY("${EXTLIBDIR}/ttvfs_cfileapi") - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "ttvfs") - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "ttvfs_zip") - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "ttvfs_cfileapi") -ENDIF(AQUARIA_USE_VFS) - -IF(WIN32) - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "ws2_32") -ENDIF(WIN32) - -IF(MACOSX) - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "-framework Carbon") - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "-framework Cocoa") - #SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "-framework OpenAL") -ENDIF(MACOSX) - -IF(HAIKU) - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} "network") -ENDIF() - -SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${SDL_LIBRARY}) - -if(NOT AQUARIA_USE_MOJOAL) - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${OPENAL_LIBRARY}) -endif() - -IF(NOT FTGL_FOUND) -IF(FREETYPE_FOUND) - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${FREETYPE_LIBRARIES}) -ELSE(FREETYPE_FOUND) - SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${FREETYPE2_SRCS}) -ENDIF(FREETYPE_FOUND) -ENDIF(NOT FTGL_FOUND) - -IF(LUA51_FOUND) - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${LUA_LIBRARIES}) -ELSE(LUA51_FOUND) - SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${LUA_SRCS}) -ENDIF(LUA51_FOUND) - -IF(OGGVORBIS_FOUND) - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${OGGVORBIS_LIBRARIES}) -ELSE(OGGVORBIS_FOUND) - SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${OGGVORBIS_SRCS}) -ENDIF(OGGVORBIS_FOUND) - -IF(TINYXML2_FOUND) - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${TINYXML2_LIBRARIES}) -ELSE(TINYXML2_FOUND) - SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${TINYXML2_SRCS}) -ENDIF(TINYXML2_FOUND) - -IF(FTGL_FOUND) - SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${FTGL_LIBRARIES}) -ELSE(FTGL_FOUND) - SET(OPTIONAL_SRCS ${OPTIONAL_SRCS} ${FTGL_SRCS}) -ENDIF(FTGL_FOUND) - -ADD_EXECUTABLE(aquaria ${EXETYPE} - ${AQUARIA_SRCS} - ${BBGE_SRCS} - ${OPTIONAL_SRCS} -) -TARGET_LINK_LIBRARIES(aquaria ${OPTIONAL_LIBS}) - -IF(WIN32) - SET(RC_DEFINES "" FORCE) - SET(RC_INCLUDES "" FORCE) - SET(RC_FLAGS "" FORCE) -endif(WIN32) - -# end of CMakeLists.txt ... - +add_subdirectory(Aquaria) +add_subdirectory(BBGE) diff --git a/ExternalLibs/AL/include/al.h b/ExternalLibs/AL/al.h similarity index 100% rename from ExternalLibs/AL/include/al.h rename to ExternalLibs/AL/al.h diff --git a/ExternalLibs/AL/include/alc.h b/ExternalLibs/AL/alc.h similarity index 100% rename from ExternalLibs/AL/include/alc.h rename to ExternalLibs/AL/alc.h diff --git a/ExternalLibs/CMakeLists.txt b/ExternalLibs/CMakeLists.txt new file mode 100644 index 0000000..745a82e --- /dev/null +++ b/ExternalLibs/CMakeLists.txt @@ -0,0 +1,69 @@ +include(tinyxml2.cmake) +include(FTGL.cmake) +include(oggvorbis.cmake) +include(lua51.cmake) + +INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/AL) +set(xdeps) + +if(AQUARIA_USE_VFS) + add_subdirectory(ttvfs) + add_subdirectory(ttvfs_zip) + add_subdirectory(ttvfs_cfileapi) + set(xdeps ${xdeps} ttvfs ttvfs_zip ttvfs_cfileapi) +endif() + +set(xsrc + algorithmx.h + ByteBuffer.h + DeflateCompressor.cpp + DeflateCompressor.h + jps.hh + luaalloc.cpp + luaalloc.h + minihttp.cpp + minihttp.h + minipstdint.h + miniz.cpp + miniz.h + stb_image.h + stb_image_resize.h + stb_image_write.h + tinylibs.cpp + # Modified version, can't use external lib + glfont2/glfont2.cpp + glfont2/glfont2.h +) + +if(AQUARIA_USE_SDL2 AND SDL2_FOUND) + OPTION(AQUARIA_USE_MOJOAL "Use mojoAL instead of OpenAL (requires SDL2)" TRUE) +endif() + +if(AQUARIA_USE_MOJOAL) + set(xsrc ${xsrc} mojoal.c) + set(OPENAL_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/AL" CACHE PATH "OpenAL include directory" FORCE) +else() + find_package(OpenAL REQUIRED) + SET(xdeps ${xdeps} ${OPENAL_LIBRARY}) +endif() + + + +IF(WIN32) + SET(xdeps ${xdeps} "ws2_32") +ENDIF(WIN32) + +IF(HAIKU) + SET(xdeps ${xdeps} "network") +ENDIF() + +IF(APPLE) + SET(xdeps ${xdeps} "-framework Carbon") + SET(xdeps ${xdeps} "-framework Cocoa") + #SET(xdeps ${xdeps} "-framework OpenAL") +ENDIF() + +add_library(ExternalLibs ${xsrc}) +target_link_libraries(ExternalLibs FTGL libogg tinyxml2 libvorbis ${SDL_LIBRARY} ${xdeps}) diff --git a/ExternalLibs/FTGL.cmake b/ExternalLibs/FTGL.cmake new file mode 100644 index 0000000..ca339cc --- /dev/null +++ b/ExternalLibs/FTGL.cmake @@ -0,0 +1,11 @@ +OPTION(AQUARIA_INTERNAL_FTGL "Always use included FTGL library" TRUE) +if(AQUARIA_INTERNAL_FTGL) + message(STATUS "Using internal copy of FTGL") + SET(FTGLDIR ${CMAKE_CURRENT_SOURCE_DIR}/FTGL) + set(FTGL_INCLUDE_DIRS "${FTGLDIR}/include;${FREETYPE_INCLUDE_DIRS}" CACHE INTERNAL "") + include(freetype2.cmake) # Nothing else uses freetype2 directly + INCLUDE_DIRECTORIES(${FREETYPE_INCLUDE_DIRS}) + add_subdirectory(FTGL) +else() + find_package(FTGL REQUIRED) +endif() diff --git a/ExternalLibs/FTGL/CMakeLists.txt b/ExternalLibs/FTGL/CMakeLists.txt new file mode 100644 index 0000000..891aabc --- /dev/null +++ b/ExternalLibs/FTGL/CMakeLists.txt @@ -0,0 +1,63 @@ +# For building Aquaria + +include_directories(include) + +set(FTGL_SRCS + include/FTBBox.h + include/FTBitmapGlyph.h + include/FTCharmap.h + include/FTCharToGlyphIndexMap.h + include/FTContour.h + include/FTExtrdGlyph.h + include/FTFace.h + include/FTFont.h + include/FTGL.h + include/FTGLBitmapFont.h + include/FTGLExtrdFont.h + include/FTGLOutlineFont.h + include/FTGLPixmapFont.h + include/FTGLPolygonFont.h + include/FTGLTextureFont.h + include/FTGlyph.h + include/FTGlyphContainer.h + include/FTLibrary.h + include/FTList.h + include/FTOutlineGlyph.h + include/FTPixmapGlyph.h + include/FTPoint.h + include/FTPolyGlyph.h + include/FTSize.h + include/FTTextureGlyph.h + include/FTVector.h +# include/FTVectoriser.h + src/FTBitmapGlyph.cpp + src/FTCharmap.cpp + src/FTContour.cpp + src/FTExtrdGlyph.cpp + src/FTFace.cpp + src/FTFont.cpp + src/FTGLBitmapFont.cpp + src/FTGLExtrdFont.cpp + src/FTGLOutlineFont.cpp + src/FTGLPixmapFont.cpp + src/FTGLPolygonFont.cpp + src/FTGLTextureFont.cpp + src/FTGlyph.cpp + src/FTGlyphContainer.cpp + src/FTLibrary.cpp + src/FTOutlineGlyph.cpp + src/FTPixmapGlyph.cpp + src/FTPoint.cpp + src/FTPolyGlyph.cpp + src/FTSize.cpp + src/FTTextureGlyph.cpp +# src/FTVectoriser.cpp +) + +SET_SOURCE_FILES_PROPERTIES( + ${FTGL_SRCS} + PROPERTIES COMPILE_FLAGS "-DFTGL_LIBRARY_STATIC" +) + +add_library(FTGL ${FTGL_SRCS}) +target_link_libraries(FTGL freetype) diff --git a/ExternalLibs/SDL2/lib/win32/SDL2.lib b/ExternalLibs/SDL2/lib/win32/SDL2.lib index 28adf86..2e82863 100644 Binary files a/ExternalLibs/SDL2/lib/win32/SDL2.lib and b/ExternalLibs/SDL2/lib/win32/SDL2.lib differ diff --git a/ExternalLibs/SDL2/lib/win32/SDL2main.lib b/ExternalLibs/SDL2/lib/win32/SDL2main.lib index dfc7f72..2ab6d70 100644 Binary files a/ExternalLibs/SDL2/lib/win32/SDL2main.lib and b/ExternalLibs/SDL2/lib/win32/SDL2main.lib differ diff --git a/ExternalLibs/freetype2.cmake b/ExternalLibs/freetype2.cmake new file mode 100644 index 0000000..f523e36 --- /dev/null +++ b/ExternalLibs/freetype2.cmake @@ -0,0 +1,79 @@ +# For building freetype2 in Aquaria +# Using a separate cmakefile for this since FT2 comes with its own CMakeLists.txt +# that we'd rather leave alone + +OPTION(AQUARIA_INTERNAL_FREETYPE "Always use included FreeType library" TRUE) +if(AQUARIA_INTERNAL_FREETYPE) + message(STATUS "Using internal copy of freetype2") + SET(FREETYPE2DIR ${CMAKE_CURRENT_SOURCE_DIR}/freetype2) + SET(FREETYPE2SRCDIR ${FREETYPE2DIR}/src) + set(FREETYPE_INCLUDE_DIRS "${FREETYPE2DIR}/include" CACHE INTERNAL "") + SET(FREETYPE2_SRCS + ${FREETYPE2SRCDIR}/base/ftsystem.c + ${FREETYPE2SRCDIR}/base/ftdebug.c + ${FREETYPE2SRCDIR}/base/ftinit.c + ${FREETYPE2SRCDIR}/base/ftbase.c + ${FREETYPE2SRCDIR}/base/ftbbox.c + ${FREETYPE2SRCDIR}/base/ftbdf.c + ${FREETYPE2SRCDIR}/base/ftbitmap.c + ${FREETYPE2SRCDIR}/base/ftcid.c + ${FREETYPE2SRCDIR}/base/ftfstype.c + ${FREETYPE2SRCDIR}/base/ftgasp.c + ${FREETYPE2SRCDIR}/base/ftglyph.c + ${FREETYPE2SRCDIR}/base/ftgxval.c + ${FREETYPE2SRCDIR}/base/ftlcdfil.c + ${FREETYPE2SRCDIR}/base/ftmm.c + ${FREETYPE2SRCDIR}/base/ftotval.c + ${FREETYPE2SRCDIR}/base/ftpatent.c + ${FREETYPE2SRCDIR}/base/ftpfr.c + ${FREETYPE2SRCDIR}/base/ftstroke.c + ${FREETYPE2SRCDIR}/base/ftsynth.c + ${FREETYPE2SRCDIR}/base/fttype1.c + ${FREETYPE2SRCDIR}/base/ftwinfnt.c + ${FREETYPE2SRCDIR}/truetype/truetype.c + ${FREETYPE2SRCDIR}/type1/type1.c + ${FREETYPE2SRCDIR}/cff/cff.c + ${FREETYPE2SRCDIR}/cid/type1cid.c + ${FREETYPE2SRCDIR}/pfr/pfr.c + ${FREETYPE2SRCDIR}/type42/type42.c + ${FREETYPE2SRCDIR}/winfonts/winfnt.c + ${FREETYPE2SRCDIR}/pcf/pcf.c + ${FREETYPE2SRCDIR}/bdf/bdf.c + ${FREETYPE2SRCDIR}/sfnt/sfnt.c + ${FREETYPE2SRCDIR}/autofit/autofit.c + ${FREETYPE2SRCDIR}/pshinter/pshinter.c + ${FREETYPE2SRCDIR}/raster/raster.c + ${FREETYPE2SRCDIR}/smooth/smooth.c + ${FREETYPE2SRCDIR}/cache/ftcache.c + ${FREETYPE2SRCDIR}/gzip/ftgzip.c + ${FREETYPE2SRCDIR}/lzw/ftlzw.c + ${FREETYPE2SRCDIR}/psaux/psaux.c + ${FREETYPE2SRCDIR}/psnames/psmodule.c + ) + + IF(MSVC) + SET_SOURCE_FILES_PROPERTIES( + ${FREETYPE2_SRCS} + PROPERTIES COMPILE_FLAGS "-DFT_CONFIG_OPTION_SYSTEM_ZLIB -DFT2_BUILD_LIBRARY -I${FREETYPE2SRCDIR} -I${FREETYPE2DIR}/include/freetype/config -DHAVE_FCNTL_H" + ) + ELSE(MSVC) + # FT2 seems to not be strict-aliasing safe, so disable that in GCC. + CHECK_C_COMPILER_FLAG("-fno-strict-aliasing" COMPILER_HAS_NOSTRICTALIAS) + IF(COMPILER_HAS_NOSTRICTALIAS) + SET(NOSTRICTALIAS "-fno-strict-aliasing") + ELSE(COMPILER_HAS_NOSTRICTALIAS) + SET(NOSTRICTALIAS "") + ENDIF(COMPILER_HAS_NOSTRICTALIAS) + SET_SOURCE_FILES_PROPERTIES( + ${FREETYPE2_SRCS} + PROPERTIES COMPILE_FLAGS "-Wno-extended-offsetof -DFT_CONFIG_OPTION_SYSTEM_ZLIB -DFT_CONFIG_CONFIG_H='\"${FREETYPE2DIR}/include/freetype/config/ftconfig.h\"' -DFT2_BUILD_LIBRARY -DFT_CONFIG_MODULES_H='\"${FREETYPE2DIR}/include/freetype/config/ftmodule.h\"' -I${FREETYPE2SRCDIR} -I${FREETYPE2DIR}/include/freetype/config -DHAVE_FCNTL_H ${NOSTRICTALIAS}" + ) + ENDIF(MSVC) + + add_library(freetype ${FREETYPE2_SRCS}) + +else() + + find_package(Freetype REQUIRED) + +endif() diff --git a/ExternalLibs/glfont2/glfont2.cpp b/ExternalLibs/glfont2/glfont2.cpp index fdd29b9..e9359e6 100644 --- a/ExternalLibs/glfont2/glfont2.cpp +++ b/ExternalLibs/glfont2/glfont2.cpp @@ -53,7 +53,7 @@ bool GLFont::Create (const char *file_name, int tex, bool loadTexture) //Destroy the old font if there was one, just to be safe Destroy(); - + VFILE *fh = vfopen(file_name, "rb"); if (!fh) return false; @@ -105,7 +105,7 @@ bool GLFont::Create (const char *file_name, int tex, bool loadTexture) if (loadTexture) { - glBindTexture(GL_TEXTURE_2D, tex); + glBindTexture(GL_TEXTURE_2D, tex); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); @@ -119,7 +119,7 @@ bool GLFont::Create (const char *file_name, int tex, bool loadTexture) //Build2DMipmaps(3, header.tex_width, header.tex_height, GL_LUMINANCE_ALPHA, tex_bytes, 1); //Create OpenGL texture /* - glBindTexture(GL_TEXTURE_2D, tex); + glBindTexture(GL_TEXTURE_2D, tex); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); @@ -218,7 +218,7 @@ int GLFont::GetCharWidth (unsigned char c) else { GLFontChar *glfont_char; - + //Retrieve character width glfont_char = &header.chars[c - header.start_char]; @@ -261,7 +261,7 @@ void GLFont::GetStringSize (const std::string &text, std::pair *size) unsigned int c; GLFontChar *glfont_char; float width; - + //debugLog("size->second"); //Height is the same for now...might change in future size->second = (int)(header.chars[header.start_char].dy * @@ -273,7 +273,7 @@ void GLFont::GetStringSize (const std::string &text, std::pair *size) { //Make sure character is in range c = (unsigned char)text[i]; - + if (c < header.start_char || c > header.end_char) continue; @@ -281,13 +281,13 @@ void GLFont::GetStringSize (const std::string &text, std::pair *size) glfont_char = &header.chars[c - header.start_char]; //Get width and height - width += glfont_char->dx * header.tex_width; + width += glfont_char->dx * header.tex_width; } //Save width //debugLog("size first"); size->first = (int)width; - + //debugLog("done"); } diff --git a/ExternalLibs/lua-5.1.4/CMakeLists.txt b/ExternalLibs/lua-5.1.4/CMakeLists.txt new file mode 100644 index 0000000..33940a2 --- /dev/null +++ b/ExternalLibs/lua-5.1.4/CMakeLists.txt @@ -0,0 +1,64 @@ +# For building in Aquaria + +set(lua51_src + src/lapi.c + src/lapi.h + src/lauxlib.c + src/lauxlib.h + src/lbaselib.c + src/lcode.c + src/lcode.h + src/ldblib.c + src/ldebug.c + src/ldebug.h + src/ldo.c + src/ldo.h + src/ldump.c + src/lfunc.c + src/lfunc.h + src/lgc.c + src/lgc.h + src/linit.c + src/liolib.c + src/llex.c + src/llex.h + src/llimits.h + src/lmathlib.c + src/lmem.c + src/lmem.h + src/loadlib.c + src/lobject.c + src/lobject.h + src/lopcodes.c + src/lopcodes.h + src/loslib.c + src/lparser.c + src/lparser.h + src/lstate.c + src/lstate.h + src/lstring.c + src/lstring.h + src/lstrlib.c + src/ltable.c + src/ltable.h + src/ltablib.c + src/ltm.c + src/ltm.h +# src/lua.c + src/lua.h +# src/luac.c + src/luaconf.h + src/lualib.h + src/lundump.c + src/lundump.h + src/lvm.c + src/lvm.h + src/lzio.c + src/lzio.h + src/print.c +) + +# Use C++ exceptions instead of setjmp() & longjmp() +set_source_files_properties(${lua51_src} PROPERTIES LANGUAGE CXX) + +add_library(lua51 ${lua51_src}) diff --git a/ExternalLibs/lua51.cmake b/ExternalLibs/lua51.cmake new file mode 100644 index 0000000..4038aeb --- /dev/null +++ b/ExternalLibs/lua51.cmake @@ -0,0 +1,8 @@ +OPTION(AQUARIA_INTERNAL_LUA "Always use included Lua library" TRUE) +if(AQUARIA_INTERNAL_LUA) + message(STATUS "Using internal copy of Lua 5.1") + set(LUA_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lua-5.1.4/src" CACHE INTERNAL "") + add_subdirectory(lua-5.1.4) +else() + find_package(Lua51 REQUIRED) +endif() diff --git a/ExternalLibs/oggvorbis.cmake b/ExternalLibs/oggvorbis.cmake new file mode 100644 index 0000000..38d84a2 --- /dev/null +++ b/ExternalLibs/oggvorbis.cmake @@ -0,0 +1,88 @@ +OPTION(AQUARIA_INTERNAL_OGGVORBIS "Always use included Ogg/Vorbis libraries" TRUE) +if(AQUARIA_INTERNAL_OGGVORBIS) + message(STATUS "Using internal copy of ogg/vorbis") + SET(LIBOGGDIR ${CMAKE_CURRENT_SOURCE_DIR}/libogg) + SET(LIBVORBISDIR ${CMAKE_CURRENT_SOURCE_DIR}/libvorbis) + set(OGGVORBIS_INCLUDE_DIRS "${LIBOGGDIR}/include;${LIBVORBISDIR}/include" CACHE INTERNAL "") + include_directories(${OGGVORBIS_INCLUDE_DIRS}) + + add_library(libogg + ${LIBOGGDIR}/src/bitwise.c + ${LIBOGGDIR}/src/framing.c + ) + add_library(libvorbis + ${LIBVORBISDIR}/lib/analysis.c + ${LIBVORBISDIR}/lib/bitrate.c + ${LIBVORBISDIR}/lib/block.c + ${LIBVORBISDIR}/lib/codebook.c + ${LIBVORBISDIR}/lib/envelope.c + ${LIBVORBISDIR}/lib/floor0.c + ${LIBVORBISDIR}/lib/floor1.c + ${LIBVORBISDIR}/lib/info.c + ${LIBVORBISDIR}/lib/lpc.c + ${LIBVORBISDIR}/lib/lsp.c + ${LIBVORBISDIR}/lib/mapping0.c + ${LIBVORBISDIR}/lib/mdct.c + ${LIBVORBISDIR}/lib/psy.c + ${LIBVORBISDIR}/lib/registry.c + ${LIBVORBISDIR}/lib/res0.c + ${LIBVORBISDIR}/lib/sharedbook.c + ${LIBVORBISDIR}/lib/smallft.c + ${LIBVORBISDIR}/lib/synthesis.c + ${LIBVORBISDIR}/lib/vorbisfile.c + ${LIBVORBISDIR}/lib/window.c + ) +else() + # CMake doesn't seem to have a module for libogg or libvorbis yet, so + # we roll our own based on existing find_package modules. + + find_path(OGG_INCLUDE_DIR ogg.h + HINTS $ENV{OGG_DIR} + PATH_SUFFIXES include/ogg include + PATHS ~/Library/Frameworks /Library/Frameworks /usr/local /usr /sw /opt/local /opt/csw /opt + ) + find_library(OGG_LIBRARY + NAMES ogg + HINTS $ENV{OGG_DIR} + PATH_SUFFIXES lib64 lib + PATHS ~/Library/Frameworks /Library/Frameworks /usr/local /usr /sw /opt/local /opt/csw /opt + ) + + if(OGG_LIBRARY) + + find_path(VORBIS_INCLUDE_DIR vorbisfile.h + HINTS $ENV{VORBIS_DIR} + PATH_SUFFIXES include/vorbis include + PATHS ~/Library/Frameworks /Library/Frameworks /usr/local /usr /sw /opt/local /opt/csw /opt + ) + find_library(VORBIS_LIBRARY + NAMES vorbis + HINTS $ENV{VORBIS_DIR} + PATH_SUFFIXES lib64 lib + PATHS ~/Library/Frameworks /Library/Frameworks /usr/local /usr /sw /opt/local /opt/csw /opt + ) + find_library(VORBISFILE_LIBRARY + NAMES vorbisfile + HINTS $ENV{VORBIS_DIR} + PATH_SUFFIXES lib64 lib + PATHS ~/Library/Frameworks /Library/Frameworks /usr/local /usr /sw /opt/local /opt/csw /opt + ) + + if(VORBIS_LIBRARY AND VORBISFILE_LIBRARY) + set(OGGVORBIS_INCLUDE_DIRS "${OGG_INCLUDE_DIR};${VORBIS_INCLUDE_DIR}" CACHE STRING "Ogg/Vorbis include directories") + if(UNIX AND NOT APPLE) + find_library(VORBIS_MATH_LIBRARY m) + set(OGGVORBIS_LIBRARIES "${VORBISFILE_LIBRARY};${VORBIS_LIBRARY};${VORBIS_MATH_LIBRARY};${OGG_LIBRARY}" CACHE STRING "Ogg/Vorbis libraries") + else(UNIX AND NOT APPLE) + set(OGGVORBIS_LIBRARIES "${VORBISFILE_LIBRARY};${VORBIS_LIBRARY};${OGG_LIBRARY}" CACHE STRING "Ogg/Vorbis libraries") + endif(UNIX AND NOT APPLE) + endif(VORBIS_LIBRARY AND VORBISFILE_LIBRARY) + + endif(OGG_LIBRARY) + + find_package_handle_standard_args(OggVorbis DEFAULT_MSG OGGVORBIS_LIBRARIES OGGVORBIS_INCLUDE_DIRS) + + mark_as_advanced(OGG_INCLUDE_DIR VORBIS_INCLUDE_DIR OGGVORBIS_INCLUDE_DIRS) + mark_as_advanced(OGG_LIBRARY VORBIS_LIBRARY VORBISFILE_LIBRARY VORBIS_MATH_LIBRARY OGGVORBIS_LIBRARIES) + +endif() diff --git a/ExternalLibs/tinyxml2.cmake b/ExternalLibs/tinyxml2.cmake new file mode 100644 index 0000000..b74a257 --- /dev/null +++ b/ExternalLibs/tinyxml2.cmake @@ -0,0 +1,8 @@ +OPTION(AQUARIA_INTERNAL_TINYXML2 "Always use included TinyXML2 library" TRUE) +if(AQUARIA_INTERNAL_TINYXML2) + message(STATUS "Using internal copy of TinyXML2") + set(TINYXML2_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/tinyxml2" CACHE INTERNAL "") + add_library(tinyxml2 tinyxml2/tinyxml2.cpp tinyxml2/tinyxml2.h) +else() + find_package(TinyXML2 REQUIRED) +endif() diff --git a/ExternalLibs/ttvfs/CMakeLists.txt b/ExternalLibs/ttvfs/CMakeLists.txt index 1c7c5fc..90213a9 100644 --- a/ExternalLibs/ttvfs/CMakeLists.txt +++ b/ExternalLibs/ttvfs/CMakeLists.txt @@ -30,8 +30,3 @@ set(ttvfs_SRC ) add_library(ttvfs ${ttvfs_SRC}) - -install(TARGETS ttvfs DESTINATION lib) - -install(DIRECTORY ./ DESTINATION include/ttvfs - FILES_MATCHING PATTERN "*.h") diff --git a/ExternalLibs/ttvfs_cfileapi/CMakeLists.txt b/ExternalLibs/ttvfs_cfileapi/CMakeLists.txt index 9b25d8b..b6456fe 100644 --- a/ExternalLibs/ttvfs_cfileapi/CMakeLists.txt +++ b/ExternalLibs/ttvfs_cfileapi/CMakeLists.txt @@ -9,8 +9,3 @@ include_directories(${TTVFS_INCLUDE_DIRS}) add_library(ttvfs_cfileapi ${cfileapi_SRC}) target_link_libraries(ttvfs_cfileapi ttvfs) - -install(TARGETS ttvfs_cfileapi DESTINATION lib) - -install(DIRECTORY ./ DESTINATION include/ttvfs - FILES_MATCHING PATTERN "*.h") diff --git a/ExternalLibs/ttvfs_cfileapi/ttvfs_stdio.cpp b/ExternalLibs/ttvfs_cfileapi/ttvfs_stdio.cpp index b4dfc67..60ea35c 100644 --- a/ExternalLibs/ttvfs_cfileapi/ttvfs_stdio.cpp +++ b/ExternalLibs/ttvfs_cfileapi/ttvfs_stdio.cpp @@ -1,6 +1,6 @@ #define VFS_ENABLE_C_API 1 -#include "ttvfs.h" +#include #include "ttvfs_stdio.h" #include #include diff --git a/ExternalLibs/ttvfs_zip/VFSZipArchiveRef.cpp b/ExternalLibs/ttvfs_zip/VFSZipArchiveRef.cpp index c257a39..b79de5c 100644 --- a/ExternalLibs/ttvfs_zip/VFSZipArchiveRef.cpp +++ b/ExternalLibs/ttvfs_zip/VFSZipArchiveRef.cpp @@ -1,7 +1,7 @@ #include "VFSInternal.h" #include "VFSZipArchiveRef.h" #include -#include "miniz.h" +#include VFS_NAMESPACE_START diff --git a/aquaria.ico b/aquaria.ico deleted file mode 100644 index ba4566a..0000000 Binary files a/aquaria.ico and /dev/null differ diff --git a/aquaria.rc b/aquaria.rc deleted file mode 100644 index 901113e..0000000 --- a/aquaria.rc +++ /dev/null @@ -1 +0,0 @@ -IDI_ICON1 ICON DISCARDABLE "aquaria.ico" diff --git a/win/vc90/BBGE.vcproj b/win/vc90/BBGE.vcproj index 87cf036..477e8c5 100644 --- a/win/vc90/BBGE.vcproj +++ b/win/vc90/BBGE.vcproj @@ -43,8 +43,8 @@ Name="VCCLCompilerTool" AdditionalOptions="/MP" Optimization="0" - AdditionalIncludeDirectories=""$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config";"$(SolutionDir)\..\ExternalLibs\glpng";"$(SolutionDir)\..\BBGE";"$(SolutionDir)\..\ExternalLibs\zlib";"$(SolutionDir)\..\ExternalLibs\png";"$(SolutionDir)\..\ExternalLibs\libogg\include";"$(SolutionDir)\..\ExternalLibs\libvorbis\include";"$(SolutionDir)\..\ExternalLibs\freetype2\include";"$(SolutionDir)\..\ExternalLibs\FTGL\include";"$(SolutionDir)\..\ExternalLibs\SDL2\include";"$(SolutionDir)\..\ExternalLibs\AL\include";"$(SolutionDir)\..\ExternalLibs\tinyxml2";"$(SolutionDir)\..\ExternalLibs\ttvfs";"$(SolutionDir)\..\ExternalLibs\ttvfs_cfileapi";"$(SolutionDir)\..\ExternalLibs\lvpa";"$(SolutionDir)\..\ExternalLibs\lvpa\include";"$(SolutionDir)\..\ExternalLibs"" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;HAVE_PUTENV=1;FTGL_LIBRARY_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;VFS_ENABLE_C_API=1;BBGE_USE_GLM=1;AQUARIA_INTERNAL_FTGL=1" + AdditionalIncludeDirectories=""$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config";"$(SolutionDir)\..\ExternalLibs\glpng";"$(SolutionDir)\..\BBGE";"$(SolutionDir)\..\ExternalLibs\zlib";"$(SolutionDir)\..\ExternalLibs\png";"$(SolutionDir)\..\ExternalLibs\libogg\include";"$(SolutionDir)\..\ExternalLibs\libvorbis\include";"$(SolutionDir)\..\ExternalLibs\freetype2\include";"$(SolutionDir)\..\ExternalLibs\FTGL\include";"$(SolutionDir)\..\ExternalLibs\SDL2\include";"$(SolutionDir)\..\ExternalLibs\AL";"$(SolutionDir)\..\ExternalLibs\tinyxml2";"$(SolutionDir)\..\ExternalLibs\ttvfs";"$(SolutionDir)\..\ExternalLibs\ttvfs_cfileapi";"$(SolutionDir)\..\ExternalLibs\lvpa";"$(SolutionDir)\..\ExternalLibs\lvpa\include";"$(SolutionDir)\..\ExternalLibs"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;HAVE_PUTENV=1;FTGL_LIBRARY_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;BBGE_BUILD_VFS=1;VFS_ENABLE_C_API=1;BBGE_USE_GLM=1;AQUARIA_INTERNAL_FTGL=1" MinimalRebuild="false" BasicRuntimeChecks="0" RuntimeLibrary="3" @@ -116,8 +116,8 @@ FavorSizeOrSpeed="1" OmitFramePointers="true" EnableFiberSafeOptimizations="true" - AdditionalIncludeDirectories=""$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config";"$(SolutionDir)\..\ExternalLibs\glpng";"$(SolutionDir)\..\BBGE";"$(SolutionDir)\..\ExternalLibs\zlib";"$(SolutionDir)\..\ExternalLibs\png";"$(SolutionDir)\..\ExternalLibs\libogg\include";"$(SolutionDir)\..\ExternalLibs\libvorbis\include";"$(SolutionDir)\..\ExternalLibs\freetype2\include";"$(SolutionDir)\..\ExternalLibs\FTGL\include";"$(SolutionDir)\..\ExternalLibs\SDL2\include";"$(SolutionDir)\..\ExternalLibs\AL\include";"$(SolutionDir)\..\ExternalLibs\tinyxml2";"$(SolutionDir)\..\ExternalLibs\ttvfs";"$(SolutionDir)\..\ExternalLibs\ttvfs_cfileapi";"$(SolutionDir)\..\ExternalLibs\lvpa";"$(SolutionDir)\..\ExternalLibs\lvpa\include";"$(SolutionDir)\..\ExternalLibs"" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;HAVE_PUTENV=1;FTGL_LIBRARY_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;_HAS_EXCEPTIONS=0;VFS_ENABLE_C_API=1;BBGE_USE_GLM=1;AQUARIA_INTERNAL_FTGL=1" + AdditionalIncludeDirectories=""$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config";"$(SolutionDir)\..\ExternalLibs\glpng";"$(SolutionDir)\..\BBGE";"$(SolutionDir)\..\ExternalLibs\zlib";"$(SolutionDir)\..\ExternalLibs\png";"$(SolutionDir)\..\ExternalLibs\libogg\include";"$(SolutionDir)\..\ExternalLibs\libvorbis\include";"$(SolutionDir)\..\ExternalLibs\freetype2\include";"$(SolutionDir)\..\ExternalLibs\FTGL\include";"$(SolutionDir)\..\ExternalLibs\SDL2\include";"$(SolutionDir)\..\ExternalLibs\AL";"$(SolutionDir)\..\ExternalLibs\tinyxml2";"$(SolutionDir)\..\ExternalLibs\ttvfs";"$(SolutionDir)\..\ExternalLibs\ttvfs_cfileapi";"$(SolutionDir)\..\ExternalLibs\lvpa";"$(SolutionDir)\..\ExternalLibs\lvpa\include";"$(SolutionDir)\..\ExternalLibs"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;HAVE_PUTENV=1;FTGL_LIBRARY_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;_HAS_EXCEPTIONS=0;BBGE_BUILD_VFS=1;VFS_ENABLE_C_API=1;BBGE_USE_GLM=1;AQUARIA_INTERNAL_FTGL=1" StringPooling="true" ExceptionHandling="0" RuntimeLibrary="0" @@ -187,8 +187,8 @@ Name="VCCLCompilerTool" AdditionalOptions="/MP" Optimization="0" - AdditionalIncludeDirectories=""$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config";"$(SolutionDir)\..\ExternalLibs\glpng";"$(SolutionDir)\..\BBGE";"$(SolutionDir)\..\ExternalLibs\zlib";"$(SolutionDir)\..\ExternalLibs\png";"$(SolutionDir)\..\ExternalLibs\libogg\include";"$(SolutionDir)\..\ExternalLibs\libvorbis\include";"$(SolutionDir)\..\ExternalLibs\freetype2\include";"$(SolutionDir)\..\ExternalLibs\FTGL\include";"$(SolutionDir)\..\ExternalLibs\SDL12\include";"$(SolutionDir)\..\ExternalLibs\AL\include";"$(SolutionDir)\..\ExternalLibs\tinyxml2";"$(SolutionDir)\..\ExternalLibs\ttvfs";"$(SolutionDir)\..\ExternalLibs\ttvfs_cfileapi";"$(SolutionDir)\..\ExternalLibs\lvpa";"$(SolutionDir)\..\ExternalLibs\lvpa\include";"$(SolutionDir)\..\ExternalLibs"" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;HAVE_PUTENV=1;FTGL_LIBRARY_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;VFS_ENABLE_C_API=1;BBGE_USE_GLM=1;AQUARIA_INTERNAL_FTGL=1" + AdditionalIncludeDirectories=""$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config";"$(SolutionDir)\..\ExternalLibs\glpng";"$(SolutionDir)\..\BBGE";"$(SolutionDir)\..\ExternalLibs\zlib";"$(SolutionDir)\..\ExternalLibs\png";"$(SolutionDir)\..\ExternalLibs\libogg\include";"$(SolutionDir)\..\ExternalLibs\libvorbis\include";"$(SolutionDir)\..\ExternalLibs\freetype2\include";"$(SolutionDir)\..\ExternalLibs\FTGL\include";"$(SolutionDir)\..\ExternalLibs\SDL12\include";"$(SolutionDir)\..\ExternalLibs\AL";"$(SolutionDir)\..\ExternalLibs\tinyxml2";"$(SolutionDir)\..\ExternalLibs\ttvfs";"$(SolutionDir)\..\ExternalLibs\ttvfs_cfileapi";"$(SolutionDir)\..\ExternalLibs\lvpa";"$(SolutionDir)\..\ExternalLibs\lvpa\include";"$(SolutionDir)\..\ExternalLibs"" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;HAVE_PUTENV=1;FTGL_LIBRARY_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;BBGE_BUILD_VFS=1;VFS_ENABLE_C_API=1;BBGE_USE_GLM=1;AQUARIA_INTERNAL_FTGL=1" MinimalRebuild="false" BasicRuntimeChecks="0" RuntimeLibrary="3" @@ -261,8 +261,8 @@ OmitFramePointers="true" EnableFiberSafeOptimizations="true" WholeProgramOptimization="true" - AdditionalIncludeDirectories=""$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config";"$(SolutionDir)\..\ExternalLibs\glpng";"$(SolutionDir)\..\BBGE";"$(SolutionDir)\..\ExternalLibs\zlib";"$(SolutionDir)\..\ExternalLibs\png";"$(SolutionDir)\..\ExternalLibs\libogg\include";"$(SolutionDir)\..\ExternalLibs\libvorbis\include";"$(SolutionDir)\..\ExternalLibs\freetype2\include";"$(SolutionDir)\..\ExternalLibs\FTGL\include";"$(SolutionDir)\..\ExternalLibs\SDL12\include";"$(SolutionDir)\..\ExternalLibs\AL\include";"$(SolutionDir)\..\ExternalLibs\tinyxml2";"$(SolutionDir)\..\ExternalLibs\ttvfs";"$(SolutionDir)\..\ExternalLibs\ttvfs_cfileapi";"$(SolutionDir)\..\ExternalLibs\lvpa";"$(SolutionDir)\..\ExternalLibs\lvpa\include";"$(SolutionDir)\..\ExternalLibs"" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;HAVE_PUTENV=1;FTGL_LIBRARY_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;_HAS_EXCEPTIONS=0;VFS_ENABLE_C_API=1;BBGE_USE_GLM=1;AQUARIA_INTERNAL_FTGL=1" + AdditionalIncludeDirectories=""$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config";"$(SolutionDir)\..\ExternalLibs\glpng";"$(SolutionDir)\..\BBGE";"$(SolutionDir)\..\ExternalLibs\zlib";"$(SolutionDir)\..\ExternalLibs\png";"$(SolutionDir)\..\ExternalLibs\libogg\include";"$(SolutionDir)\..\ExternalLibs\libvorbis\include";"$(SolutionDir)\..\ExternalLibs\freetype2\include";"$(SolutionDir)\..\ExternalLibs\FTGL\include";"$(SolutionDir)\..\ExternalLibs\SDL12\include";"$(SolutionDir)\..\ExternalLibs\AL";"$(SolutionDir)\..\ExternalLibs\tinyxml2";"$(SolutionDir)\..\ExternalLibs\ttvfs";"$(SolutionDir)\..\ExternalLibs\ttvfs_cfileapi";"$(SolutionDir)\..\ExternalLibs\lvpa";"$(SolutionDir)\..\ExternalLibs\lvpa\include";"$(SolutionDir)\..\ExternalLibs"" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;HAVE_PUTENV=1;FTGL_LIBRARY_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;_HAS_EXCEPTIONS=0;BBGE_BUILD_VFS=1;VFS_ENABLE_C_API=1;BBGE_USE_GLM=1;AQUARIA_INTERNAL_FTGL=1" StringPooling="true" ExceptionHandling="0" BufferSecurityCheck="false"