diff options
author | PilzAdam <pilzadam@minetest.net> | 2013-08-10 16:26:02 +0200 |
---|---|---|
committer | PilzAdam <pilzadam@minetest.net> | 2013-08-10 16:26:02 +0200 |
commit | 56b9377c1c55a08eb5ae09c058f9f1cb8e9e4a73 (patch) | |
tree | 9a6861500f18c18dfe8088dd4af118e9a3085c92 /src | |
parent | 0d60bc55e4373167141f0f08a10a2174cc7e029a (diff) | |
download | minetest-56b9377c1c55a08eb5ae09c058f9f1cb8e9e4a73.tar.gz minetest-56b9377c1c55a08eb5ae09c058f9f1cb8e9e4a73.tar.bz2 minetest-56b9377c1c55a08eb5ae09c058f9f1cb8e9e4a73.zip |
Dont crash if facedir > 23
Diffstat (limited to 'src')
-rw-r--r-- | src/mapblock_mesh.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mapblock_mesh.cpp b/src/mapblock_mesh.cpp index 28c52f4b9..b70b25eab 100644 --- a/src/mapblock_mesh.cpp +++ b/src/mapblock_mesh.cpp @@ -711,7 +711,8 @@ TileSpec getNodeTile(MapNode mn, v3s16 p, v3s16 dir, MeshMakeData *data) // Get rotation for things like chests u8 facedir = mn.getFaceDir(ndef); - assert(facedir <= 23); + if (facedir > 23) + facedir = 0; static const u16 dir_to_tile[24 * 16] = { // 0 +X +Y +Z -Z -Y -X -> value=tile,rotation @@ -734,17 +735,17 @@ TileSpec getNodeTile(MapNode mn, v3s16 p, v3s16 dir, MeshMakeData *data) 0,0, 0,2 , 5,3 , 3,1 , 0,0, 2,3 , 4,3 , 1,0 , 0,0, 0,1 , 2,3 , 5,1 , 0,0, 4,3 , 3,3 , 1,1 , 0,0, 0,0 , 4,3 , 2,1 , 0,0, 3,3 , 5,3 , 1,2 , - + 0,0, 1,1 , 2,1 , 4,3 , 0,0, 5,1 , 3,1 , 0,1 , // rotate around x- 16 - 19 0,0, 1,2 , 4,1 , 3,3 , 0,0, 2,1 , 5,1 , 0,0 , 0,0, 1,3 , 3,1 , 5,3 , 0,0, 4,1 , 2,1 , 0,3 , 0,0, 1,0 , 5,1 , 2,3 , 0,0, 3,1 , 4,1 , 0,2 , - + 0,0, 3,2 , 1,2 , 4,2 , 0,0, 5,2 , 0,2 , 2,2 , // rotate around y- 20 - 23 0,0, 5,2 , 1,3 , 3,2 , 0,0, 2,2 , 0,1 , 4,2 , 0,0, 2,2 , 1,0 , 5,2 , 0,0, 4,2 , 0,0 , 3,2 , 0,0, 4,2 , 1,1 , 2,2 , 0,0, 3,2 , 0,3 , 5,2 - + }; u16 tile_index=facedir*16 + dir_i; TileSpec spec = getNodeTileN(mn, p, dir_to_tile[tile_index], data); |