X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fterrain.cpp;h=072a6e5a26b322066e2818873dd6b8b026332b25;hb=3553ca7e70942fe3f5a534a4e27a6ae2dc82e0fe;hp=d4f3e416a84357efd1107d82d3c2c1b9fe91e573;hpb=6b90a1c8bb9efff7f660e352bf69a02992d620cc;p=r2c2.git diff --git a/source/libr2c2/terrain.cpp b/source/libr2c2/terrain.cpp index d4f3e41..072a6e5 100644 --- a/source/libr2c2/terrain.cpp +++ b/source/libr2c2/terrain.cpp @@ -97,7 +97,7 @@ void Terrain::set_node_elevation(const NodeCoordinates &c, float elev, bool join Tile &tile = tiles[x+y*width]; if(tile.nodes[i].elevation==ref) { - tile.nodes[i].elevation = elev; + tile.set_node_elevation(i, elev); signal_tile_changed.emit(x, y); } } @@ -105,7 +105,7 @@ void Terrain::set_node_elevation(const NodeCoordinates &c, float elev, bool join } else { - tiles[c.x+c.y*width].nodes[c.i].elevation = elev; + tiles[c.x+c.y*width].set_node_elevation(c.i, elev); signal_tile_changed.emit(c.x, c.y); } } @@ -144,7 +144,7 @@ Terrain::NodeCoordinates Terrain::get_closest_node(const Ray &ray) const for(unsigned i=0; i<4; ++i) { NodeCoordinates c(x, y, i); - Vector node_pos((x+i%2)*ts, (y+i/2)*ts, get_node_elevation(c)); + Vector node_pos((x+0.25+(i%2)*0.5)*ts, (y+0.25+(i/2)*0.5)*ts, get_node_elevation(c)); Vector v = node_pos-local_ray.get_start(); float dist = (v-local_ray.get_direction()*dot(local_ray.get_direction(), v)).norm(); if(closest_dist<0 || dist &st) const { bool flat = true;