]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/tile.cpp
.
[dragonfireclient.git] / src / tile.cpp
index 174c72fdfbf0870b0c7ed9f4ca8360719b0b9b44..90de1164227d362d51d6f5aa0fd5aa4454067673 100644 (file)
@@ -18,25 +18,57 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 */
 
 #include "tile.h"
-#include "irrlichtwrapper.h"
+#include "porting.h"
+// For IrrlichtWrapper
+#include "main.h"
+#include <string>
 
 // A mapping from tiles to paths of textures
-const char * g_tile_texture_paths[TILES_COUNT] =
+
+const char * g_tile_texture_filenames[TILES_COUNT] =
 {
        NULL,
-       "../data/stone.png",
-       "../data/water.png",
-       "../data/grass.png",
-       "../data/tree.png",
-       "../data/leaves.png",
-       "../data/grass_footsteps.png",
-       "../data/mese.png",
-       "../data/mud.png",
-       "../data/tree_top.png",
-       "../data/mud_with_grass.png",
-       "../data/cloud.png",
+       "stone.png",
+       "water.png",
+       "grass.png",
+       "tree.png",
+       "leaves.png",
+       "grass_footsteps.png",
+       "mese.png",
+       "mud.png",
+       "tree_top.png",
+       "mud_with_grass.png",
+       "cloud.png",
+       "coalstone.png",
+       "wood.png",
 };
 
+std::string g_tile_texture_path_strings[TILES_COUNT];
+const char * g_tile_texture_paths[TILES_COUNT] = {0};
+
+void init_tile_texture_paths()
+{
+       for(s32 i=0; i<TILES_COUNT; i++)
+       {
+               const char *filename = g_tile_texture_filenames[i];
+
+               if(filename != NULL)
+               {
+                       g_tile_texture_path_strings[i] =
+                                       porting::getDataPath(filename);
+                       g_tile_texture_paths[i] =
+                                       g_tile_texture_path_strings[i].c_str();
+               }
+       }
+}
+
+const char * tile_texture_path_get(u32 i)
+{
+       assert(i < TILES_COUNT);
+
+       return g_tile_texture_paths[i];
+}
+
 // A mapping from tiles to materials
 // Initialized at run-time.
 video::SMaterial g_tile_materials[TILES_COUNT];
@@ -45,7 +77,7 @@ void tile_materials_preload(IrrlichtWrapper *irrlicht)
 {
        for(s32 i=0; i<TILES_COUNT; i++)
        {
-               const char *path = g_tile_texture_paths[i];
+               const char *path = tile_texture_path_get(i);
 
                video::ITexture *t = NULL;