better graphics, zlib to work on vc++
authorPerttu Ahola <celeron55@gmail.com>
Mon, 13 Dec 2010 23:56:24 +0000 (01:56 +0200)
committerPerttu Ahola <celeron55@gmail.com>
Mon, 13 Dec 2010 23:56:24 +0000 (01:56 +0200)
18 files changed:
Makefile
bin/zlibwapi.dll [new file with mode: 0644]
data/grass.png
data/grass_footsteps.png
data/mud_with_grass.png
data/skybox1.png
data/skybox1_source.png [new file with mode: 0644]
data/stone.png
doc/README.txt
minetest.conf.example
minetest.vcproj
src/inventory.h
src/main.cpp
src/map.cpp
src/mapblock.cpp
src/mapnode.h
src/serialization.cpp
src/server.cpp

index 3985bdbc528546cf6ce8708bd87ea1ef35a0cced..2bdc9c3f052f1515631a9aee42cc847974818f8b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -34,7 +34,7 @@ endif
 \r
 # Target specific settings\r
 \r
-all_linux fast_linux: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L$(IRRLICHTPATH)/lib/Linux -L$(JTHREADPATH)/src/.libs -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -ljthread\r
+all_linux fast_linux: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L$(IRRLICHTPATH)/lib/Linux -L$(JTHREADPATH)/src/.libs -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -ljthread -lz\r
 all_linux fast_linux clean_linux: SYSTEM=Linux\r
 \r
 all_win32: LDFLAGS = -L$(IRRLICHTPATH)/lib/Win32-gcc -L$(JTHREADPATH)/Debug -lIrrlicht -lopengl32 -lm -ljthread\r
diff --git a/bin/zlibwapi.dll b/bin/zlibwapi.dll
new file mode 100644 (file)
index 0000000..b0d1cde
Binary files /dev/null and b/bin/zlibwapi.dll differ
index 56362053f0f2a0c0ff86cc0461cb48b40e6f0225..30ef385914f985fd39b85e23b5adfec17512494c 100644 (file)
Binary files a/data/grass.png and b/data/grass.png differ
index 36573ada217d9b4893c5f6d1d33a1a4d26ff2742..26bd236c5b2be20e16cd8d23833666d3d6649ab6 100644 (file)
Binary files a/data/grass_footsteps.png and b/data/grass_footsteps.png differ
index fe0d0af9bfa97a11b02a3a6c806a4ec84f5eae48..60ae4eec27d7c00f704375dac0019df01db2f521 100644 (file)
Binary files a/data/mud_with_grass.png and b/data/mud_with_grass.png differ
index b774ed013bcd7e901eac3602664eba23ecde6998..202e40eba9534ade3deaeb14c269bca2e6cd6683 100644 (file)
Binary files a/data/skybox1.png and b/data/skybox1.png differ
diff --git a/data/skybox1_source.png b/data/skybox1_source.png
new file mode 100644 (file)
index 0000000..642e89c
Binary files /dev/null and b/data/skybox1_source.png differ
index 7b578215a4c7282ac81e7db42ee20dd12e320ec9..daf2cceb88a063ad0c0acb0a44d3afb1703bd413 100644 (file)
Binary files a/data/stone.png and b/data/stone.png differ
index ea84a6bec8a76e8c7a61ac007ff266b217d20ac3..0cb31da3886e4762e1e11bdc4ede4fe59f41a764 100644 (file)
@@ -53,10 +53,14 @@ Compiling on GNU/Linux:
        http://downloads.sourceforge.net/irrlicht/irrlicht-1.7.2.zip
 * JThread:
        http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jthread
-- Neither of which can probably be found from your distro's repository.
+* zlib:
+       - Get the -dev package from your package manager.
+- Irrlicht and JThread are very likely not to be found from your distro's
+  repository.
 - Compiling each of them should be fairly unproblematic, though.
 
 Compiling on Windows:
+- You need Irrlicht, JThread and zlib, see above
 - Be sure to
   #define JMUTEX_CRITICALSECTION
   in jmutex.h before compiling it. Otherwise mutexes will be very slow.
@@ -81,7 +85,6 @@ 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.
 
-
 Irrlicht
 ---------------
 
index 3a1226b1a785a75cef10ea4d08b4c60a21b4d588..a193a8aac842d8319cb85628d4665db78caa9a81 100644 (file)
@@ -14,7 +14,7 @@
 #wanted_fps = 30
 #fps_max = 60
 #viewing_range_nodes_max = 300
-#viewing_range_nodes_min = 20
+#viewing_range_nodes_min = 50
 #screenW = 
 #screenH = 
 #host_game = 
index 6ebfaee7f7b82b95f1e1ea3ef4f8095cb850e481..774987a7aa1d0072a3a78e5b929b052dbadfa5c1 100644 (file)
                                FavorSizeOrSpeed="1"\r
                                OmitFramePointers="true"\r
                                WholeProgramOptimization="true"\r
-                               AdditionalIncludeDirectories="&quot;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include&quot;;&quot;..\jthread\jthread-1.2.1\src&quot;;&quot;..\irrlicht\irrlicht-1.7.1\include&quot;"\r
+                               AdditionalIncludeDirectories="&quot;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include&quot;;&quot;..\jthread\jthread-1.2.1\src&quot;;&quot;..\irrlicht\irrlicht-1.7.1\include&quot;;&quot;..\zlib\zlib-1.2.5&quot;"\r
                                PreprocessorDefinitions="WIN32;_HAS_ITERATOR_DEBUGGING=0,UNITTEST_DISABLE,_CRT_SECURE_NO_DEPRECATE"\r
                                BufferSecurityCheck="false"\r
                                EnableEnhancedInstructionSet="1"\r
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
-                               AdditionalLibraryDirectories="&quot;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib&quot;;&quot;..\jthread\jthread-1.2.1\Release&quot;;&quot;..\irrlicht\irrlicht-1.7.1\lib\Win32-visualstudio&quot;"\r
+                               AdditionalLibraryDirectories="&quot;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib&quot;;&quot;..\jthread\jthread-1.2.1\Release&quot;;&quot;..\irrlicht\irrlicht-1.7.1\lib\Win32-visualstudio&quot;;..\zlib125dll\dll32"\r
                                IgnoreDefaultLibraryNames="libcmtd.lib"\r
                                GenerateDebugInformation="false"\r
                                LinkTimeCodeGeneration="1"\r
                                RelativePath=".\src\mapblockobject.cpp"\r
                                >\r
                        </File>\r
+                       <File\r
+                               RelativePath=".\src\mapnode.cpp"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath=".\src\mapsector.cpp"\r
                                >\r
                                RelativePath=".\src\test.cpp"\r
                                >\r
                        </File>\r
+                       <File\r
+                               RelativePath=".\src\tile.cpp"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath=".\src\utility.cpp"\r
                                >\r
index 1fab9d0279cb4890aa8352e6461c111522a98f31..50f3247c344f022c19fcbfc5f45cb3894017d787 100644 (file)
@@ -59,9 +59,9 @@ private:
 class MaterialItem : public InventoryItem
 {
 public:
-       MaterialItem(u8 material, u16 count)
+       MaterialItem(u8 content, u16 count)
        {
-               m_material = material;
+               m_content = content;
                m_count = count;
        }
        /*
@@ -76,18 +76,26 @@ public:
                //os.imbue(std::locale("C"));
                os<<getName();
                os<<" ";
-               os<<(unsigned int)m_material;
+               os<<(unsigned int)m_content;
                os<<" ";
                os<<m_count;
        }
        virtual InventoryItem* clone()
        {
-               return new MaterialItem(m_material, m_count);
+               return new MaterialItem(m_content, m_count);
        }
        video::ITexture * getImage()
        {
-               u16 tile = content_tile(m_material, v3s16(1,0,0));
-               return g_tile_materials[tile].getTexture(0);
+               /*if(m_content == CONTENT_TORCH)
+                       return g_texturecache.get("torch_on_floor");
+
+               u16 tile = content_tile(m_content, v3s16(1,0,0));
+               return g_tile_contents[tile].getTexture(0);*/
+               
+               if(m_content >= USEFUL_CONTENT_COUNT)
+                       return NULL;
+                       
+               return g_texturecache.get(g_content_inventory_textures[m_content]);
        }
        std::string getText()
        {
@@ -100,7 +108,7 @@ public:
        */
        u8 getMaterial()
        {
-               return m_material;
+               return m_content;
        }
        u16 getCount()
        {
@@ -123,7 +131,7 @@ public:
                m_count -= count;
        }
 private:
-       u8 m_material;
+       u8 m_content;
        u16 m_count;
 };
 
index 49973e99c6c4b0139e93f8d8a4816947816cf61c..3424266ef47495a59cbb9e4dc1473860d8512a26 100644 (file)
@@ -219,6 +219,7 @@ TODO: A mapper to map contents to tile names (for each side)
 #ifdef _MSC_VER\r
 #pragma comment(lib, "Irrlicht.lib")\r
 #pragma comment(lib, "jthread.lib")\r
+#pragma comment(lib, "zlibwapi.lib")\r
 // This would get rid of the console window\r
 //#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")\r
 #endif\r
@@ -310,7 +311,7 @@ void set_default_settings()
        g_settings.set("wanted_fps", "30");\r
        g_settings.set("fps_max", "60");\r
        g_settings.set("viewing_range_nodes_max", "300");\r
-       g_settings.set("viewing_range_nodes_min", "20");\r
+       g_settings.set("viewing_range_nodes_min", "50");\r
        g_settings.set("screenW", "");\r
        g_settings.set("screenH", "");\r
        g_settings.set("host_game", "");\r
@@ -1934,7 +1935,7 @@ int main(int argc, char *argv[])
                        /*\r
                                Meta-objects\r
                        */\r
-                       if(n.d == CONTENT_LIGHT)\r
+                       if(n.d == CONTENT_TORCH)\r
                        {\r
                                v3s16 dir = unpackDir(n.dir);\r
                                v3f dir_f = v3f(dir.X, dir.Y, dir.Z);\r
index 213404a07c3a540f9bee19f5bda9fe4ab6a2aab6..b1e7da29ab55ed511d8e45b052119fdcba4da37d 100644 (file)
@@ -1846,10 +1846,9 @@ MapBlock * ServerMap::emergeBlock(
                
                //float min_slope = 0.45;
                //float max_slope = 0.85;
-               float min_slope = 0.70;
+               float min_slope = 0.60;
                float max_slope = 1.20;
-               float min_slope_depth = 4.0;
-               //float min_slope_depth = 5.0;
+               float min_slope_depth = 5.0;
                float max_slope_depth = 0;
                if(slope < min_slope)
                        surface_depth = min_slope_depth;
@@ -2091,7 +2090,7 @@ MapBlock * ServerMap::emergeBlock(
                                        p + v3s16(0,0,0), &changed_blocks_sector))
                        {
                                MapNode n;
-                               n.d = CONTENT_LIGHT;
+                               n.d = CONTENT_TORCH;
                                sector->setNode(p, n);
                                objects_to_remove.push_back(p);
                        }
index 6dd524edd67c3222cff9d0e074f28b69d916821d..e2e36c8e37cd38afa79255ebff85e62e16b91d5a 100644 (file)
@@ -551,7 +551,7 @@ void MapBlock::updateMesh()
 
                MapNode &n = getNodeRef(x,y,z);
                
-               if(n.d == CONTENT_LIGHT)
+               if(n.d == CONTENT_TORCH)
                {
                        //scene::IMeshBuffer *buf = new scene::SMeshBuffer();
                        scene::SMeshBuffer *buf = new scene::SMeshBuffer();
index b2c499f08db1e48825481da422525530eae5fbf5..680884bcd96ec83e494d463585edba524684945b 100644 (file)
@@ -68,7 +68,7 @@ enum Content
        CONTENT_STONE,
        CONTENT_GRASS,
        CONTENT_WATER,
-       CONTENT_LIGHT,
+       CONTENT_TORCH,
        CONTENT_TREE,
        CONTENT_LEAVES,
        CONTENT_GRASS_FOOTSTEPS,
@@ -81,6 +81,7 @@ enum Content
 };
 
 extern u16 g_content_tiles[USEFUL_CONTENT_COUNT][6];
+extern const char * g_content_inventory_textures[USEFUL_CONTENT_COUNT];
 
 /*
        If true, the material allows light propagation and brightness is stored
@@ -88,7 +89,7 @@ extern u16 g_content_tiles[USEFUL_CONTENT_COUNT][6];
 */
 inline bool light_propagates_content(u8 m)
 {
-       return (m == CONTENT_AIR || m == CONTENT_LIGHT || m == CONTENT_WATER || m == CONTENT_OCEAN);
+       return (m == CONTENT_AIR || m == CONTENT_TORCH || m == CONTENT_WATER || m == CONTENT_OCEAN);
 }
 
 /*
@@ -96,7 +97,7 @@ inline bool light_propagates_content(u8 m)
 */
 inline bool sunlight_propagates_content(u8 m)
 {
-       return (m == CONTENT_AIR || m == CONTENT_LIGHT);
+       return (m == CONTENT_AIR || m == CONTENT_TORCH);
 }
 
 /*
@@ -108,7 +109,8 @@ inline bool sunlight_propagates_content(u8 m)
 */
 inline u8 content_solidness(u8 m)
 {
-       if(m == CONTENT_AIR)
+       // As of now, every pseudo node like torches are added to this
+       if(m == CONTENT_AIR || m == CONTENT_TORCH)
                return 0;
        if(m == CONTENT_WATER || m == CONTENT_OCEAN)
                return 1;
@@ -118,7 +120,7 @@ inline u8 content_solidness(u8 m)
 // Objects collide with walkable contents
 inline bool content_walkable(u8 m)
 {
-       return (m != CONTENT_AIR && m != CONTENT_WATER && m != CONTENT_OCEAN && m != CONTENT_LIGHT);
+       return (m != CONTENT_AIR && m != CONTENT_WATER && m != CONTENT_OCEAN && m != CONTENT_TORCH);
 }
 
 // A liquid resists fast movement
@@ -158,6 +160,13 @@ inline bool is_ground_content(u8 m)
        );
 }
 
+/*inline bool content_has_faces(u8 c)
+{
+       return (m != CONTENT_IGNORE
+            && m != CONTENT_AIR
+                && m != CONTENT_TORCH);
+}*/
+
 /*
        Nodes make a face if contents differ and solidness differs.
        Return value:
@@ -185,7 +194,7 @@ inline u8 face_contents(u8 m1, u8 m2)
 
 inline bool liquid_replaces_content(u8 c)
 {
-       return (c == CONTENT_AIR || c == CONTENT_LIGHT);
+       return (c == CONTENT_AIR || c == CONTENT_TORCH);
 }
 
 /*
@@ -193,7 +202,7 @@ inline bool liquid_replaces_content(u8 c)
 */
 inline bool content_directional(u8 c)
 {
-       return (c == CONTENT_LIGHT);
+       return (c == CONTENT_TORCH);
 }
 
 /*
@@ -336,7 +345,7 @@ struct MapNode
                /*
                        Note that a block that isn't light_propagates() can be a light source.
                */
-               if(d == CONTENT_LIGHT)
+               if(d == CONTENT_TORCH)
                        return LIGHT_MAX;
                
                return 0;
index eb80f3c608b3ec000bd393426f398b91a21974ba..c324ca0fdb13ef38deb917ce93a595d8914305af 100644 (file)
@@ -19,6 +19,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "serialization.h"
 #include "utility.h"
+#ifdef _WIN32
+       #define ZLIB_WINAPI
+#endif
 #include "zlib.h"
 
 /* report a zlib or i/o error */
index 139731a9c241df334f848c964ad0f2bc458083a3..487ce2a98656ab518737bbdf22ecc2a0c72266eb 100644 (file)
@@ -1011,6 +1011,13 @@ void Server::AsyncRunStep()
                Flow water
        */
        {
+               float interval;
+               
+               if(g_settings.getBool("endless_water") == false)
+                       interval = 1.0;
+               else
+                       interval = 0.25;
+
                static float counter = 0.0;
                counter += dtime;
                if(counter >= 0.25 && m_flow_active_nodes.size() > 0)
@@ -1028,7 +1035,10 @@ void Server::AsyncRunStep()
                        v.m_disable_water_climb =
                                        g_settings.getBool("disable_water_climb");
                        
-                       v.flowWater(m_flow_active_nodes, 0, false, 50);
+                       if(g_settings.getBool("endless_water") == false)
+                               v.flowWater(m_flow_active_nodes, 0, false, 250);
+                       else
+                               v.flowWater(m_flow_active_nodes, 0, false, 50);
 
                        v.blitBack(modified_blocks);
 
@@ -1883,8 +1893,8 @@ void Server::SendBlockNoLock(u16 peer_id, MapBlock *block, u8 ver)
        writeS16(&reply[6], p.Z);
        memcpy(&reply[8], *blockdata, blockdata.getSize());
 
-       dstream<<"Sending block ("<<p.X<<","<<p.Y<<","<<p.Z<<")"
-                       <<":  \tpacket size: "<<replysize<<std::endl;
+       /*dstream<<"Sending block ("<<p.X<<","<<p.Y<<","<<p.Z<<")"
+                       <<":  \tpacket size: "<<replysize<<std::endl;*/
        
        /*
                Send packet