]> git.lizzy.rs Git - minetest.git/blobdiff - src/mapgen/mg_schematic.cpp
Use a safer implementation of gsub in core.chat_format_message (#9133)
[minetest.git] / src / mapgen / mg_schematic.cpp
index ba619b2e00b965e86a4b3f2702c66bc596b5beb0..c1acbfd9d6f370fab4b1b5c5612402a2881823a8 100644 (file)
@@ -137,8 +137,8 @@ void Schematic::blitToVManip(MMVManip *vm, v3s16 p, Rotation rot, bool force_pla
                for (s16 z = 0; z != sz; z++) {
                        u32 i = z * i_step_z + y * ystride + i_start;
                        for (s16 x = 0; x != sx; x++, i += i_step_x) {
-                               u32 vi = vm->m_area.index(p.X + x, y_map, p.Z + z);
-                               if (!vm->m_area.contains(vi))
+                               v3s16 pos(p.X + x, y_map, p.Z + z);
+                               if (!vm->m_area.contains(pos))
                                        continue;
 
                                if (schemdata[i].getContent() == CONTENT_IGNORE)
@@ -150,6 +150,7 @@ void Schematic::blitToVManip(MMVManip *vm, v3s16 p, Rotation rot, bool force_pla
                                if (placement_prob == MTSCHEM_PROB_NEVER)
                                        continue;
 
+                               u32 vi = vm->m_area.index(pos);
                                if (!force_place && !force_place_node) {
                                        content_t c = vm->m_data[vi].getContent();
                                        if (c != CONTENT_AIR && c != CONTENT_IGNORE)
@@ -245,7 +246,7 @@ void Schematic::placeOnMap(ServerMap *map, v3s16 p, u32 flags,
        for (it = modified_blocks.begin(); it != modified_blocks.end(); ++it)
                event.modified_blocks.insert(it->first);
 
-       map->dispatchEvent(&event);
+       map->dispatchEvent(event);
 }