Index: head/games/dustrac/Makefile =================================================================== --- head/games/dustrac/Makefile (revision 380092) +++ head/games/dustrac/Makefile (revision 380093) @@ -1,34 +1,34 @@ # $FreeBSD$ PORTNAME= dustrac -PORTVERSION= 1.8.1 +PORTVERSION= 1.9.2 CATEGORIES= games MASTER_SITES= SF/${PORTNAME}/src MAINTAINER= makc@FreeBSD.org COMMENT= 2D top-view racing game LIB_DEPENDS= libvorbisfile.so:${PORTSDIR}/audio/libvorbis USES= compiler:c++11-lib cmake:outsource openal pkgconfig USE_GL= glu USE_QT5= core opengl xml widgets \ buildtools_build linguisttools_build qmake_build CMAKE_ARGS= -DReleaseBuild=on \ -DDATA_PATH=${DATADIR} \ -DDOC_PATH=${DOCSDIR} LDFLAGS+= -L${LOCALBASE}/lib OPTIONS_DEFINE= DOCS STRIP_FILES= bin/dustrac-game \ bin/dustrac-editor post-patch: ${REINPLACE_CMD} -e '/add_subdirectory(UnitTests)/d' \ ${WRKSRC}/src/game/MiniCore/CMakeLists.txt post-install: ${STRIP_CMD} ${STRIP_FILES:S,^,${STAGEDIR}${PREFIX}/,} .include Index: head/games/dustrac/distinfo =================================================================== --- head/games/dustrac/distinfo (revision 380092) +++ head/games/dustrac/distinfo (revision 380093) @@ -1,2 +1,2 @@ -SHA256 (dustrac-1.8.1.tar.gz) = ec0496a91cfa9dfa11225d3a0dd1b2c39250ead88cf062b7d0a00ad16352e289 -SIZE (dustrac-1.8.1.tar.gz) = 25828452 +SHA256 (dustrac-1.9.2.tar.gz) = 6254bc0d6db7f16393ba2d9a8f41d0e3ac33448b5e806e641e859a9105b8eb85 +SIZE (dustrac-1.9.2.tar.gz) = 25892050 Index: head/games/dustrac/files/patch-git6a7c41 =================================================================== --- head/games/dustrac/files/patch-git6a7c41 (revision 380092) +++ head/games/dustrac/files/patch-git6a7c41 (nonexistent) @@ -1,451 +0,0 @@ -diff --git CMakeLists.txt CMakeLists.txt -index 5921d71..1692ee0 100644 ---- CMakeLists.txt -+++ CMakeLists.txt -@@ -39,6 +39,9 @@ endif() - if(CMAKE_COMPILER_IS_GNUCXX OR MINGW) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -W -Wall -O3 -pedantic") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fomit-frame-pointer -finline-functions -ffast-math") -+elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -W -Wall -O3 -pedantic") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fomit-frame-pointer -finline-functions -ffast-math") - endif() - - set(GAME_BINARY_NAME "dustrac-game") -diff --git src/game/MiniCore/CMakeLists.txt src/game/MiniCore/CMakeLists.txt -index 5144d1a..286cfc9 100644 ---- src/game/MiniCore/CMakeLists.txt -+++ src/game/MiniCore/CMakeLists.txt -@@ -29,6 +29,7 @@ Graphics/mcglobjectbase.cc - Graphics/mcglpointparticlerenderer.cc - Graphics/mcglscene.cc - Graphics/mcglshaderprogram.cc -+Graphics/mcrenderlayer.cc - Graphics/mcshaders.hh - Graphics/mcshaders30.hh - Graphics/mcshadersGLES.hh -diff --git src/game/MiniCore/Graphics/mcrenderlayer.cc src/game/MiniCore/Graphics/mcrenderlayer.cc -new file mode 100644 -index 0000000..c5f9016 ---- /dev/null -+++ src/game/MiniCore/Graphics/mcrenderlayer.cc -@@ -0,0 +1,52 @@ -+// This file belongs to the "MiniCore" game engine. -+// Copyright (C) 2014 Jussi Lind -+// -+// This program is free software; you can redistribute it and/or -+// modify it under the terms of the GNU General Public License -+// as published by the Free Software Foundation; either version 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., 51 Franklin Street, Fifth Floor, Boston, -+// MA 02110-1301, USA. -+// -+ -+#include "mcrenderlayer.hh" -+#include "mccamera.hh" -+#include "mcobject.hh" -+ -+MCRenderLayer::MCRenderLayer() -+ : m_depthTestEnabled(false) -+{ -+} -+ -+void MCRenderLayer::setDepthTestEnabled(bool enable) -+{ -+ m_depthTestEnabled = enable; -+} -+ -+bool MCRenderLayer::depthTestEnabled() const -+{ -+ return m_depthTestEnabled; -+} -+ -+MCRenderLayer::ObjectSet & MCRenderLayer::objectSet() -+{ -+ return m_objectSet; -+} -+ -+MCRenderLayer::CameraBatchMap & MCRenderLayer::objectBatches() -+{ -+ return m_objectBatches; -+} -+ -+MCRenderLayer::CameraBatchMap & MCRenderLayer::particleBatches() -+{ -+ return m_particleBatches; -+} -diff --git src/game/MiniCore/Graphics/mcrenderlayer.hh src/game/MiniCore/Graphics/mcrenderlayer.hh -new file mode 100644 -index 0000000..0b2fae4 ---- /dev/null -+++ src/game/MiniCore/Graphics/mcrenderlayer.hh -@@ -0,0 +1,63 @@ -+// This file belongs to the "MiniCore" game engine. -+// Copyright (C) 2014 Jussi Lind -+// -+// This program is free software; you can redistribute it and/or -+// modify it under the terms of the GNU General Public License -+// as published by the Free Software Foundation; either version 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., 51 Franklin Street, Fifth Floor, Boston, -+// MA 02110-1301, USA. -+// -+ -+#ifndef MCRENDERLAYER_HH -+#define MCRENDERLAYER_HH -+ -+#include -+#include -+#include -+ -+class MCCamera; -+class MCObject; -+ -+class MCRenderLayer -+{ -+public: -+ -+ MCRenderLayer(); -+ -+ void setDepthTestEnabled(bool enable); -+ -+ bool depthTestEnabled() const; -+ -+ typedef std::unordered_set ObjectSet; -+ -+ ObjectSet & objectSet(); -+ -+ typedef int ObjectTypeId; -+ typedef std::map > BatchMap; -+ typedef std::map CameraBatchMap; -+ -+ CameraBatchMap & objectBatches(); -+ -+ CameraBatchMap & particleBatches(); -+ -+private: -+ -+ bool m_depthTestEnabled; -+ -+ ObjectSet m_objectSet; -+ -+ CameraBatchMap m_objectBatches; -+ -+ CameraBatchMap m_particleBatches; -+}; -+ -+#endif // MCRENDERLAYER_HH -diff --git src/game/MiniCore/Graphics/mcworldrenderer.cc src/game/MiniCore/Graphics/mcworldrenderer.cc -index 41e6607..ab8cb8a 100644 ---- src/game/MiniCore/Graphics/mcworldrenderer.cc -+++ src/game/MiniCore/Graphics/mcworldrenderer.cc -@@ -31,10 +31,6 @@ - - MCWorldRenderer::MCWorldRenderer() - { -- for (unsigned i = 0; i < MCWorld::MaxLayers; i++) -- { -- m_depthTestEnabled[i] = false; -- } - } - - void MCWorldRenderer::registerPointParticleRenderer(MCUint typeId, MCGLPointParticleRenderer & renderer) -@@ -61,13 +57,15 @@ void MCWorldRenderer::buildBatches(MCCamera * camera) - // Grouping the objects like this reduces texture switches etc and increases - // overall performance. - -- for (int i = 0; i < MCWorld::MaxLayers; i++) -+ auto layerIter = m_layers.begin(); -+ while (layerIter != m_layers.end()) - { -- m_objectBatches[camera][i].clear(); -- m_particleBatches[camera][i].clear(); -+ MCRenderLayer & layer = layerIter->second; - -- const auto end = m_layers[i].end(); -- for (auto objectIter = m_layers[i].begin(); objectIter != end; objectIter++) -+ layer.objectBatches().clear(); -+ layer.particleBatches().clear(); -+ -+ for (auto objectIter = layer.objectSet().begin(); objectIter != layer.objectSet().end(); objectIter++) - { - MCObject & object = **objectIter; - if (object.isRenderable()) -@@ -83,7 +81,7 @@ void MCWorldRenderer::buildBatches(MCCamera * camera) - bbox.translate(MCVector2dF(object.location())); - if (!camera || camera->isVisible(bbox)) - { -- m_objectBatches[camera][i][object.typeID()].push_back(&object); -+ layer.objectBatches()[camera][object.typeID()].push_back(&object); - } - } - } -@@ -93,7 +91,7 @@ void MCWorldRenderer::buildBatches(MCCamera * camera) - { - if (camera->isVisible(object.bbox())) - { -- m_particleBatches[camera][i][object.typeID()].push_back(&object); -+ layer.particleBatches()[camera][object.typeID()].push_back(&object); - } - else - { -@@ -120,12 +118,14 @@ void MCWorldRenderer::buildBatches(MCCamera * camera) - } - else - { -- m_particleBatches[camera][i][object.typeID()].push_back(&object); -+ layer.particleBatches()[camera][object.typeID()].push_back(&object); - } - } - } - } - } -+ -+ layerIter++; - } - } - -@@ -135,11 +135,14 @@ void MCWorldRenderer::renderBatches(MCCamera * camera) - // layer-specific. - - bool depthTest = false; -- for (int layer = 0; layer < MCWorld::MaxLayers; layer++) -+ auto layerIter = m_layers.begin(); -+ while (layerIter != m_layers.end()) - { -+ MCRenderLayer & layer = layerIter->second; -+ - // The depth test is enabled/disabled separately on - // each object layer. -- if (m_depthTestEnabled[layer] && !depthTest) -+ if (layer.depthTestEnabled() && !depthTest) - { - glEnable(GL_DEPTH_TEST); - depthTest = true; -@@ -152,13 +155,15 @@ void MCWorldRenderer::renderBatches(MCCamera * camera) - - renderObjectBatches(camera, layer); - renderParticleBatches(camera, layer); -+ -+ layerIter++; - } - } - --void MCWorldRenderer::renderObjectBatches(MCCamera * camera, int layer) -+void MCWorldRenderer::renderObjectBatches(MCCamera * camera, MCRenderLayer & layer) - { -- auto iter = m_objectBatches[camera][layer].begin(); -- const auto end = m_objectBatches[camera][layer].end(); -+ auto iter = layer.objectBatches()[camera].begin(); -+ const auto end = layer.objectBatches()[camera].end(); - while (iter != end) - { - const int itemCountInBatch = iter->second.size(); -@@ -185,11 +190,11 @@ void MCWorldRenderer::renderObjectBatches(MCCamera * camera, int layer) - } - } - --void MCWorldRenderer::renderParticleBatches(MCCamera * camera, int layer) -+void MCWorldRenderer::renderParticleBatches(MCCamera * camera, MCRenderLayer & layer) - { - // Render particle batches -- auto batchIter = m_particleBatches[camera][layer].begin(); -- const auto end = m_particleBatches[camera][layer].end(); -+ auto batchIter = layer.particleBatches()[camera].begin(); -+ const auto end = layer.particleBatches()[camera].end(); - while (batchIter != end) - { - if (!batchIter->second.size()) -@@ -233,17 +238,20 @@ void MCWorldRenderer::renderShadows(MCCamera * camera) - { - glDisable(GL_DEPTH_TEST); - -- for (int i = 0; i < MCWorld::MaxLayers; i++) -+ auto layerIter = m_layers.begin(); -+ while (layerIter != m_layers.end()) - { -+ MCRenderLayer & layer = layerIter->second; -+ - // Render batches -- auto iter = m_objectBatches[camera][i].begin(); -- const auto end = m_objectBatches[camera][i].end(); -- while (iter != end) -+ auto batchIter = layer.objectBatches()[camera].begin(); -+ const auto end = layer.objectBatches()[camera].end(); -+ while (batchIter != end) - { -- const int itemCountInBatch = iter->second.size(); -+ const int itemCountInBatch = batchIter->second.size(); - if (itemCountInBatch > 0) - { -- MCObject * object = iter->second[0]; -+ MCObject * object = batchIter->second[0]; - std::shared_ptr view = object->shape()->view(); - if (view && view->hasShadow()) - { -@@ -252,10 +260,10 @@ void MCWorldRenderer::renderShadows(MCCamera * camera) - - for (int i = 1; i < itemCountInBatch - 1; i++) - { -- iter->second[i]->renderShadow(camera); -+ batchIter->second[i]->renderShadow(camera); - } - -- object = iter->second[itemCountInBatch - 1]; -+ object = batchIter->second[itemCountInBatch - 1]; - object->renderShadow(camera); - - view = object->shape()->view(); -@@ -263,31 +271,26 @@ void MCWorldRenderer::renderShadows(MCCamera * camera) - } - } - -- iter++; -+ batchIter++; - } -+ -+ layerIter++; - } - } - - void MCWorldRenderer::enableDepthTestOnLayer(int layer, bool enable) - { -- if (layer < MCWorld::MaxLayers) -- { -- m_depthTestEnabled[layer] = enable; -- } -+ m_layers[layer].setDepthTestEnabled(enable); - } - - void MCWorldRenderer::addToLayerMap(MCObject & object) - { -- const int layerIndex = -- object.renderLayer() >= MCWorld::MaxLayers ? MCWorld::MaxLayers - 1 : object.renderLayer(); -- m_layers[layerIndex].insert(&object); -+ m_layers[object.renderLayer()].objectSet().insert(&object); - } - - void MCWorldRenderer::removeFromLayerMap(MCObject & object) - { -- const int layerIndex = -- object.renderLayer() >= MCWorld::MaxLayers ? MCWorld::MaxLayers - 1 : object.renderLayer(); -- m_layers[layerIndex].erase(&object); -+ m_layers[object.renderLayer()].objectSet().erase(&object); - } - - void MCWorldRenderer::addParticleVisibilityCamera(MCCamera & camera) -@@ -302,8 +305,5 @@ void MCWorldRenderer::removeParticleVisibilityCameras() - - void MCWorldRenderer::clear() - { -- for (int i = 0; i < MCWorld::MaxLayers; i++) -- { -- m_layers[i].clear(); -- } -+ m_layers.clear(); - } -diff --git src/game/MiniCore/Graphics/mcworldrenderer.hh src/game/MiniCore/Graphics/mcworldrenderer.hh -index 0a45a49..287af58 100644 ---- src/game/MiniCore/Graphics/mcworldrenderer.hh -+++ src/game/MiniCore/Graphics/mcworldrenderer.hh -@@ -20,6 +20,7 @@ - #ifndef MCWORLDRENDERER_HH - #define MCWORLDRENDERER_HH - -+#include "mcrenderlayer.hh" - #include "mctypes.hh" - #include "mcworld.hh" - -@@ -72,24 +73,17 @@ private: - - void renderBatches(MCCamera * camera = nullptr); - -- void renderObjectBatches(MCCamera * camera, int layer); -+ void renderObjectBatches(MCCamera * camera, MCRenderLayer & layer); - -- void renderParticleBatches(MCCamera * camera, int layer); -+ void renderParticleBatches(MCCamera * camera, MCRenderLayer & layer); - -- typedef std::unordered_set LayerSet; -- LayerSet m_layers[MCWorld::MaxLayers]; -- -- typedef std::map > BatchMap; -- typedef std::map CameraBatchMap; -- -- CameraBatchMap m_objectBatches; -- CameraBatchMap m_particleBatches; -- -- bool m_depthTestEnabled[MCWorld::MaxLayers]; -+ typedef int LayerId; -+ std::map m_layers; - - std::vector m_visibilityCameras; - -- typedef std::map ParticleRendererMap; -+ typedef int ParticleTypeId; -+ typedef std::map ParticleRendererMap; - ParticleRendererMap m_particleRenderers; - }; - -diff --git src/game/checkeredflag.cpp src/game/checkeredflag.cpp -index 10fd62d..67bb608 100644 ---- src/game/checkeredflag.cpp -+++ src/game/checkeredflag.cpp -@@ -23,7 +23,6 @@ - static const int FLAG_W = 32; - static const int FLAG_H = 24; - static const int V_SPACING = 20; --static const float APPEARANCE_SPEED = 0.05f; - - CheckeredFlag::CheckeredFlag() - : m_surface(MCAssetManager::surfaceManager().surface("checkeredFlag")) -diff --git src/game/game.cpp src/game/game.cpp -index db4a55a..5ad81ac 100644 ---- src/game/game.cpp -+++ src/game/game.cpp -@@ -44,8 +44,7 @@ - - #include - --static const unsigned int MAX_PLAYERS = 2; --static const float DEFAULT_VOLUME = 0.5; -+static const unsigned int MAX_PLAYERS = 2; - - Game * Game::m_instance = nullptr; - -diff --git src/game/game.pro src/game/game.pro -index 055d28c..a73daae 100644 ---- src/game/game.pro -+++ src/game/game.pro -@@ -152,6 +152,7 @@ HEADERS += \ - MiniCore/Graphics/mcshaders.hh \ - MiniCore/Graphics/mcshaders30.hh \ - MiniCore/Graphics/mcshadersGLES.hh \ -+ MiniCore/Graphics/mcrenderlayer.hh \ - MiniCore/Graphics/mcshapeview.hh \ - MiniCore/Graphics/mcsurface.hh \ - MiniCore/Graphics/mcsurfaceconfigloader.hh \ -@@ -292,6 +293,7 @@ SOURCES += \ - MiniCore/Graphics/mcmeshmanager.cc \ - MiniCore/Graphics/mcmeshobjectdata.cc \ - MiniCore/Graphics/mcmeshview.cc \ -+ MiniCore/Graphics/mcrenderlayer.cc \ - MiniCore/Graphics/mcsurface.cc \ - MiniCore/Graphics/mcsurfaceconfigloader.cc \ - MiniCore/Graphics/mcsurfacemanager.cc \ Property changes on: head/games/dustrac/files/patch-git6a7c41 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/games/dustrac/pkg-plist =================================================================== --- head/games/dustrac/pkg-plist (revision 380092) +++ head/games/dustrac/pkg-plist (revision 380093) @@ -1,130 +1,131 @@ bin/dustrac-editor bin/dustrac-game share/applications/dustrac-editor.desktop share/applications/dustrac-game.desktop %%PORTDOCS%%%%DOCSDIR%%/AUTHORS %%PORTDOCS%%%%DOCSDIR%%/CHANGELOG %%PORTDOCS%%%%DOCSDIR%%/COPYING %%PORTDOCS%%%%DOCSDIR%%/README %%DATADIR%%/editorModels.conf %%DATADIR%%/fonts.conf %%DATADIR%%/fonts/UbuntuMono-B.ttf %%DATADIR%%/fonts/UbuntuMono-R.ttf %%DATADIR%%/images/about.png -%%DATADIR%%/images/asphalt.jpg +%%DATADIR%%/images/asphalt.png %%DATADIR%%/images/brake.png %%DATADIR%%/images/bridge.png %%DATADIR%%/images/bridgeEditor.png %%DATADIR%%/images/bridgeObject.png %%DATADIR%%/images/bridgePreview.png %%DATADIR%%/images/bushArea.png %%DATADIR%%/images/carBlack.png %%DATADIR%%/images/carBlue.png %%DATADIR%%/images/carBrown.png %%DATADIR%%/images/carCyan.png %%DATADIR%%/images/carDarkGreen.png %%DATADIR%%/images/carDarkRed.png %%DATADIR%%/images/carGreen.png %%DATADIR%%/images/carGrey.png %%DATADIR%%/images/carNormalMap.png %%DATADIR%%/images/carOrange.png %%DATADIR%%/images/carPink.png %%DATADIR%%/images/carRed.png %%DATADIR%%/images/carViolet.png %%DATADIR%%/images/carYellow.png %%DATADIR%%/images/checkeredFlag.png %%DATADIR%%/images/clear.png %%DATADIR%%/images/corner.png %%DATADIR%%/images/corner45Left.png %%DATADIR%%/images/corner45LeftPreview.png %%DATADIR%%/images/corner45Right.png %%DATADIR%%/images/corner45RightPreview.png %%DATADIR%%/images/cornerPreview.png %%DATADIR%%/images/creditsHelpBack.png %%DATADIR%%/images/cross.png %%DATADIR%%/images/cursor.png %%DATADIR%%/images/cursor2.png %%DATADIR%%/images/dustRacing2DBanner.png %%DATADIR%%/images/finish.png %%DATADIR%%/images/finishPreview.png %%DATADIR%%/images/frontTire.png %%DATADIR%%/images/grandstand.png %%DATADIR%%/images/grandstandEditor.png %%DATADIR%%/images/grass.png %%DATADIR%%/images/grassEditor.png %%DATADIR%%/images/grid.png %%DATADIR%%/images/intro.png %%DATADIR%%/images/leaf.png %%DATADIR%%/images/left.png %%DATADIR%%/images/lock.png %%DATADIR%%/images/logo.png %%DATADIR%%/images/mainMenuBack.png %%DATADIR%%/images/monospace.png %%DATADIR%%/images/mud.png %%DATADIR%%/images/pit.png %%DATADIR%%/images/plant.png %%DATADIR%%/images/right.png %%DATADIR%%/images/rock.png %%DATADIR%%/images/sand.png %%DATADIR%%/images/sandAreaBig.png %%DATADIR%%/images/sandAreaCurve.png %%DATADIR%%/images/sandGrassCorner.png %%DATADIR%%/images/sandGrassCorner2.png %%DATADIR%%/images/sandGrassStraight.png %%DATADIR%%/images/settingsBack.png %%DATADIR%%/images/skid.png %%DATADIR%%/images/sky.png %%DATADIR%%/images/smoke.png %%DATADIR%%/images/sparkle.png %%DATADIR%%/images/star.png %%DATADIR%%/images/starGlow.png %%DATADIR%%/images/startLightGlow.png %%DATADIR%%/images/startLightOff.png %%DATADIR%%/images/startLightOffCorner.png %%DATADIR%%/images/startLightOn.png %%DATADIR%%/images/startLightOnCorner.png %%DATADIR%%/images/steel.jpg %%DATADIR%%/images/straight.png %%DATADIR%%/images/straight45Female.png %%DATADIR%%/images/straight45FemalePreview.png %%DATADIR%%/images/straight45Male.png %%DATADIR%%/images/straight45MalePreview.png %%DATADIR%%/images/straightPreview.png %%DATADIR%%/images/tire.png %%DATADIR%%/images/tireStatusIndicatorBody.png %%DATADIR%%/images/tireStatusIndicatorTires.png %%DATADIR%%/images/trackSelectionBack.png %%DATADIR%%/images/tree.png %%DATADIR%%/images/wood.png %%DATADIR%%/levels/curvastone.trk %%DATADIR%%/levels/infinity.trk %%DATADIR%%/levels/monza.trk %%DATADIR%%/levels/ring.trk %%DATADIR%%/levels/straight.trk +%%DATADIR%%/levels/suzuka.trk %%DATADIR%%/levels/triangle.trk %%DATADIR%%/levels/twister.trk %%DATADIR%%/meshes.conf %%DATADIR%%/models/cube.obj %%DATADIR%%/sounds/bell.ogg %%DATADIR%%/sounds/carEngine.ogg %%DATADIR%%/sounds/carHit.ogg %%DATADIR%%/sounds/carHit2.ogg %%DATADIR%%/sounds/carHit3.ogg %%DATADIR%%/sounds/cheering.ogg %%DATADIR%%/sounds/menuBoom.ogg %%DATADIR%%/sounds/menuClick.ogg %%DATADIR%%/sounds/pit.ogg %%DATADIR%%/sounds/skid.ogg %%DATADIR%%/textures.conf %%DATADIR%%/translations/dustrac-editor_cs.qm %%DATADIR%%/translations/dustrac-editor_fi.qm %%DATADIR%%/translations/dustrac-editor_fr.qm %%DATADIR%%/translations/dustrac-editor_it.qm %%DATADIR%%/translations/dustrac-game_cs.qm %%DATADIR%%/translations/dustrac-game_fi.qm %%DATADIR%%/translations/dustrac-game_fr.qm %%DATADIR%%/translations/dustrac-game_it.qm share/icons/hicolor/64x64/apps/dustrac-editor.png share/icons/hicolor/64x64/apps/dustrac-game.png share/pixmaps/dustrac-editor.png share/pixmaps/dustrac-game.png