Fix wallmounted mesh rotations
authorShadowNinja <shadowninja@minetest.net>
Wed, 19 Nov 2014 21:17:54 +0000 (16:17 -0500)
committerShadowNinja <shadowninja@minetest.net>
Wed, 19 Nov 2014 21:17:54 +0000 (16:17 -0500)
src/content_mapblock.cpp
src/nodedef.cpp

index 9f0d8aa5f335fcef29ff5f7f18031ded0516d655..2584c07790cf9b52e54c06860908262f39db14a3 100644 (file)
@@ -1731,9 +1731,9 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
                        } else if (f.param_type_2 == CPT2_WALLMOUNTED) {
                                //convert wallmounted to 6dfacedir.
                                //when cache enabled, it is already converted
-                               facedir = n.getWallMounted(nodedef);                            
+                               facedir = n.getWallMounted(nodedef);
                                if (!enable_mesh_cache) {
-                                       static const u8 wm_to_6d[6] =   {20, 0, 16, 12, 8, 4};
+                                       static const u8 wm_to_6d[6] = {20, 0, 16+1, 12+3, 8, 4+2};
                                        facedir = wm_to_6d[facedir];
                                }
                        }
index 7dbaaee9cf07179dbe6a32dcacf901455fbe2942..51e71a052af9a65bcd8f8252b6d799bff691751c 100644 (file)
@@ -879,7 +879,7 @@ void CNodeDefManager::updateTextures(IGameDef *gamedef)
                                meshmanip->recalculateNormals(f->mesh_ptr[j], true, false);
                        }
                } else if (enable_mesh_cache && f->mesh_ptr[0] && (f->param_type_2 == CPT2_WALLMOUNTED)) {
-                       static const u8 wm_to_6d[6] =   {20, 0, 16, 12, 8, 4}; 
+                       static const u8 wm_to_6d[6] = {20, 0, 16+1, 12+3, 8, 4+2};
                        for (u16 j = 1; j < 6; j++) {
                                f->mesh_ptr[j] = cloneMesh(f->mesh_ptr[0]);
                                rotateMeshBy6dFacedir(f->mesh_ptr[j], wm_to_6d[j]);