From 1c776c3df84c7ff7833fade3124cdcca34a01662 Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Fri, 28 Jan 2011 02:11:44 +0200
Subject: [PATCH] server builds now!

---
 src/iirrlichtwrapper.h | 55 ++++++++++++++++++++++++++++++++++++++++++
 src/irrlichtwrapper.h  |  3 ++-
 src/mapnode.cpp        |  2 +-
 src/mapnode.h          |  4 +--
 src/mineral.cpp        |  4 +--
 src/mineral.h          |  6 ++---
 src/servermain.cpp     |  7 ++++++
 7 files changed, 70 insertions(+), 11 deletions(-)
 create mode 100644 src/iirrlichtwrapper.h

diff --git a/src/iirrlichtwrapper.h b/src/iirrlichtwrapper.h
new file mode 100644
index 000000000..47ae21ee9
--- /dev/null
+++ b/src/iirrlichtwrapper.h
@@ -0,0 +1,55 @@
+/*
+Minetest-c55
+Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 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 IIRRLICHTWRAPPER_HEADER
+#define IIRRLICHTWRAPPER_HEADER
+
+#include "common_irrlicht.h"
+
+/*
+	IrrlichtWrapper prototype.
+
+	Server supplies this as a dummy wrapper.
+*/
+
+class IIrrlichtWrapper
+{
+public:
+	IIrrlichtWrapper()
+	{
+	}
+	virtual ~IIrrlichtWrapper()
+	{
+	}
+	
+	virtual u32 getTime()
+	{
+		return 0;
+	}
+	
+	virtual textureid_t getTextureId(const std::string &name){ return 0; }
+	virtual std::string getTextureName(textureid_t id){ return ""; }
+	virtual video::ITexture* getTexture(const std::string &name){ return NULL; }
+	virtual video::ITexture* getTexture(const TextureSpec &spec){ return NULL; }
+	
+private:
+};
+
+#endif
+
diff --git a/src/irrlichtwrapper.h b/src/irrlichtwrapper.h
index a695bd1e4..225ae3402 100644
--- a/src/irrlichtwrapper.h
+++ b/src/irrlichtwrapper.h
@@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "debug.h"
 #include "utility.h"
 #include "texture.h"
+#include "iirrlichtwrapper.h"
 
 #include <jmutex.h>
 #include <jmutexautolock.h>
@@ -125,7 +126,7 @@ class TextureCache
 	Also caches texture specification strings to ids and textures.
 */
 
-class IrrlichtWrapper
+class IrrlichtWrapper : public IIrrlichtWrapper
 {
 public:
 	/*
diff --git a/src/mapnode.cpp b/src/mapnode.cpp
index d197454fe..b2d579d5d 100644
--- a/src/mapnode.cpp
+++ b/src/mapnode.cpp
@@ -36,7 +36,7 @@ ContentFeatures & content_features(u8 i)
 	return g_content_features[i];
 }
 
-void init_mapnode(IrrlichtWrapper *irrlicht)
+void init_mapnode(IIrrlichtWrapper *irrlicht)
 {
 	u8 i;
 	ContentFeatures *f = NULL;
diff --git a/src/mapnode.h b/src/mapnode.h
index 0c52681be..07153f934 100644
--- a/src/mapnode.h
+++ b/src/mapnode.h
@@ -27,7 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "exceptions.h"
 #include "serialization.h"
 #include "tile.h"
-#include "irrlichtwrapper.h"
+#include "iirrlichtwrapper.h"
 
 /*
 	Initializes all kind of stuff in here.
@@ -35,7 +35,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 	irrlicht: Used for getting texture ids.
 */
-void init_mapnode(IrrlichtWrapper *irrlicht);
+void init_mapnode(IIrrlichtWrapper *irrlicht);
 
 // Initializes g_content_inventory_texture_paths
 void init_content_inventory_texture_paths();
diff --git a/src/mineral.cpp b/src/mineral.cpp
index 4f658db48..c333ae6f5 100644
--- a/src/mineral.cpp
+++ b/src/mineral.cpp
@@ -19,7 +19,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "mineral.h"
 
-#ifndef SERVER
 
 const char *mineral_filenames[MINERAL_COUNT] =
 {
@@ -30,7 +29,7 @@ const char *mineral_filenames[MINERAL_COUNT] =
 
 textureid_t mineral_textures[MINERAL_COUNT] = {0};
 
-void init_mineral(IrrlichtWrapper *irrlicht)
+void init_mineral(IIrrlichtWrapper *irrlicht)
 {
 	for(u32 i=0; i<MINERAL_COUNT; i++)
 	{
@@ -48,6 +47,5 @@ textureid_t mineral_block_texture(u8 mineral)
 	return mineral_textures[mineral];
 }
 
-#endif
 
 
diff --git a/src/mineral.h b/src/mineral.h
index 6c10c2256..c663d9275 100644
--- a/src/mineral.h
+++ b/src/mineral.h
@@ -22,7 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "inventory.h"
 #include "texture.h"
-#include "irrlichtwrapper.h"
+#include "iirrlichtwrapper.h"
 
 /*
 	Minerals
@@ -31,10 +31,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 	type param.
 */
 
-#ifndef SERVER
 // Caches textures
-void init_mineral(IrrlichtWrapper *irrlicht);
-#endif
+void init_mineral(IIrrlichtWrapper *irrlicht);
 
 #define MINERAL_NONE 0
 #define MINERAL_COAL 1
diff --git a/src/servermain.cpp b/src/servermain.cpp
index d5be5b8ac..5409fcfb3 100644
--- a/src/servermain.cpp
+++ b/src/servermain.cpp
@@ -68,6 +68,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "porting.h"
 #include "materials.h"
 #include "config.h"
+#include "mineral.h"
 
 /*
 	Settings.
@@ -255,7 +256,13 @@ int main(int argc, char *argv[])
 	{
 		run_tests();
 	}
+
+	// Initialize stuff
 	
+	IIrrlichtWrapper irrlicht; // Dummy
+	init_mapnode(&irrlicht);
+	init_mineral(&irrlicht);
+
 	// Read map parameters from settings
 
 	HMParams hm_params;
-- 
GitLab