Skip to content

Commit 12d1e4f

Browse files
committed
VoxelArea: add_{x,y,z,p} must be static
Fix some documentations issues Use getNodeNoCheck(v3s16, ...) in some cases instead of getNodeNoCheck(x, y, z, ...)
1 parent 3b27cf3 commit 12d1e4f

11 files changed

+72
-61
lines changed

src/mapgen/cavegen.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ void CavesNoiseIntersection::generateCaves(MMVManip *vm,
100100
// This 'roof' is removed when the mapchunk above is generated.
101101
for (s16 y = nmax.Y; y >= nmin.Y - 1; y--,
102102
index3d -= m_ystride,
103-
vm->m_area.add_y(em, vi, -1)) {
103+
VoxelArea::add_y(em, vi, -1)) {
104104
content_t c = vm->m_data[vi].getContent();
105105

106106
if (c == CONTENT_AIR || c == biome->c_water_top ||
@@ -245,7 +245,7 @@ bool CavernsNoise::generateCaverns(MMVManip *vm, v3s16 nmin, v3s16 nmax)
245245
// This 'roof' is excavated when the mapchunk above is generated.
246246
for (s16 y = nmax.Y; y >= nmin.Y - 1; y--,
247247
index3d -= m_ystride,
248-
vm->m_area.add_y(em, vi, -1),
248+
VoxelArea::add_y(em, vi, -1),
249249
cavern_amp_index++) {
250250
content_t c = vm->m_data[vi].getContent();
251251
float n_absamp_cavern = fabs(noise_cavern->result[index3d]) *

src/mapgen/mapgen.cpp

+16-16
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ s16 Mapgen::findGroundLevelFull(v2s16 p2d)
238238
if (ndef->get(n).walkable)
239239
break;
240240

241-
vm->m_area.add_y(em, i, -1);
241+
VoxelArea::add_y(em, i, -1);
242242
}
243243
return (y >= y_nodes_min) ? y : y_nodes_min - 1;
244244
}
@@ -256,7 +256,7 @@ s16 Mapgen::findGroundLevel(v2s16 p2d, s16 ymin, s16 ymax)
256256
if (ndef->get(n).walkable)
257257
break;
258258

259-
vm->m_area.add_y(em, i, -1);
259+
VoxelArea::add_y(em, i, -1);
260260
}
261261
return (y >= ymin) ? y : -MAX_MAP_GENERATION_LIMIT;
262262
}
@@ -277,7 +277,7 @@ s16 Mapgen::findLiquidSurface(v2s16 p2d, s16 ymin, s16 ymax)
277277
if (ndef->get(n).isLiquid())
278278
break;
279279

280-
vm->m_area.add_y(em, i, -1);
280+
VoxelArea::add_y(em, i, -1);
281281
}
282282
return (y >= ymin) ? y : -MAX_MAP_GENERATION_LIMIT;
283283
}
@@ -309,7 +309,7 @@ void Mapgen::getSurfaces(v2s16 p2d, s16 ymin, s16 ymax,
309309
u32 vi = vm->m_area.index(p2d.X, ymax, p2d.Y);
310310
MapNode mn_max = vm->m_data[vi];
311311
bool walkable_above = ndef->get(mn_max).walkable;
312-
vm->m_area.add_y(em, vi, -1);
312+
VoxelArea::add_y(em, vi, -1);
313313

314314
for (s16 y = ymax - 1; y >= ymin; y--) {
315315
MapNode mn = vm->m_data[vi];
@@ -321,7 +321,7 @@ void Mapgen::getSurfaces(v2s16 p2d, s16 ymin, s16 ymax,
321321
ceilings.push_back(y + 1);
322322
}
323323

324-
vm->m_area.add_y(em, vi, -1);
324+
VoxelArea::add_y(em, vi, -1);
325325
walkable_above = is_walkable;
326326
}
327327
}
@@ -330,28 +330,28 @@ void Mapgen::getSurfaces(v2s16 p2d, s16 ymin, s16 ymax,
330330
inline bool Mapgen::isLiquidHorizontallyFlowable(u32 vi, v3s16 em)
331331
{
332332
u32 vi_neg_x = vi;
333-
vm->m_area.add_x(em, vi_neg_x, -1);
333+
VoxelArea::add_x(em, vi_neg_x, -1);
334334
if (vm->m_data[vi_neg_x].getContent() != CONTENT_IGNORE) {
335335
const ContentFeatures &c_nx = ndef->get(vm->m_data[vi_neg_x]);
336336
if (c_nx.floodable && !c_nx.isLiquid())
337337
return true;
338338
}
339339
u32 vi_pos_x = vi;
340-
vm->m_area.add_x(em, vi_pos_x, +1);
340+
VoxelArea::add_x(em, vi_pos_x, +1);
341341
if (vm->m_data[vi_pos_x].getContent() != CONTENT_IGNORE) {
342342
const ContentFeatures &c_px = ndef->get(vm->m_data[vi_pos_x]);
343343
if (c_px.floodable && !c_px.isLiquid())
344344
return true;
345345
}
346346
u32 vi_neg_z = vi;
347-
vm->m_area.add_z(em, vi_neg_z, -1);
347+
VoxelArea::add_z(em, vi_neg_z, -1);
348348
if (vm->m_data[vi_neg_z].getContent() != CONTENT_IGNORE) {
349349
const ContentFeatures &c_nz = ndef->get(vm->m_data[vi_neg_z]);
350350
if (c_nz.floodable && !c_nz.isLiquid())
351351
return true;
352352
}
353353
u32 vi_pos_z = vi;
354-
vm->m_area.add_z(em, vi_pos_z, +1);
354+
VoxelArea::add_z(em, vi_pos_z, +1);
355355
if (vm->m_data[vi_pos_z].getContent() != CONTENT_IGNORE) {
356356
const ContentFeatures &c_pz = ndef->get(vm->m_data[vi_pos_z]);
357357
if (c_pz.floodable && !c_pz.isLiquid())
@@ -395,7 +395,7 @@ void Mapgen::updateLiquid(UniqueQueue<v3s16> *trans_liquid, v3s16 nmin, v3s16 nm
395395
} else {
396396
// This is the topmost node below a liquid column
397397
u32 vi_above = vi;
398-
vm->m_area.add_y(em, vi_above, 1);
398+
VoxelArea::add_y(em, vi_above, 1);
399399
if (!waspushed && (ndef->get(vm->m_data[vi]).floodable ||
400400
(!waschecked && isLiquidHorizontallyFlowable(vi_above, em)))) {
401401
// Push back the lowest node in the column which is one
@@ -406,7 +406,7 @@ void Mapgen::updateLiquid(UniqueQueue<v3s16> *trans_liquid, v3s16 nmin, v3s16 nm
406406

407407
wasliquid = isliquid;
408408
wasignored = isignored;
409-
vm->m_area.add_y(em, vi, -1);
409+
VoxelArea::add_y(em, vi, -1);
410410
}
411411
}
412412
}
@@ -502,14 +502,14 @@ void Mapgen::propagateSunlight(v3s16 nmin, v3s16 nmax, bool propagate_shadow)
502502
propagate_shadow) {
503503
continue;
504504
}
505-
vm->m_area.add_y(em, i, -1);
505+
VoxelArea::add_y(em, i, -1);
506506

507507
for (int y = a.MaxEdge.Y; y >= a.MinEdge.Y; y--) {
508508
MapNode &n = vm->m_data[i];
509509
if (!ndef->get(n).sunlight_propagates)
510510
break;
511511
n.param1 = LIGHT_SUN;
512-
vm->m_area.add_y(em, i, -1);
512+
VoxelArea::add_y(em, i, -1);
513513
}
514514
}
515515
}
@@ -773,7 +773,7 @@ void MapgenBasic::generateBiomes(MgStoneType *mgstone_type,
773773
water_above = false;
774774
}
775775

776-
vm->m_area.add_y(em, vi, -1);
776+
VoxelArea::add_y(em, vi, -1);
777777
}
778778
}
779779

@@ -820,7 +820,7 @@ void MapgenBasic::dustTopNodes()
820820
if (vm->m_data[vi].getContent() != CONTENT_AIR)
821821
break;
822822

823-
vm->m_area.add_y(em, vi, -1);
823+
VoxelArea::add_y(em, vi, -1);
824824
}
825825

826826
content_t c = vm->m_data[vi].getContent();
@@ -834,7 +834,7 @@ void MapgenBasic::dustTopNodes()
834834
dtype == NDT_GLASSLIKE_FRAMED ||
835835
dtype == NDT_ALLFACES) &&
836836
ndef->get(c).walkable && c != biome->c_dust) {
837-
vm->m_area.add_y(em, vi, 1);
837+
VoxelArea::add_y(em, vi, 1);
838838
vm->m_data[vi] = MapNode(biome->c_dust);
839839
}
840840
}

src/mapgen/mapgen_flat.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ s16 MapgenFlat::generateTerrain()
273273
vm->m_data[vi] = n_air;
274274
}
275275
}
276-
vm->m_area.add_y(em, vi, 1);
276+
VoxelArea::add_y(em, vi, 1);
277277
}
278278
}
279279

src/mapgen/mapgen_v6.cpp

+18-18
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ s16 MapgenV6::find_stone_level(v2s16 p2d)
223223
if (c != CONTENT_IGNORE && (c == c_stone || c == c_desert_stone))
224224
break;
225225

226-
vm->m_area.add_y(em, i, -1);
226+
VoxelArea::add_y(em, i, -1);
227227
}
228228
return (y >= y_nodes_min) ? y : y_nodes_min - 1;
229229
}
@@ -696,7 +696,7 @@ int MapgenV6::generateGround()
696696
vm->m_data[i] = n_air;
697697
}
698698
}
699-
vm->m_area.add_y(em, i, 1);
699+
VoxelArea::add_y(em, i, 1);
700700
}
701701
}
702702

@@ -759,7 +759,7 @@ void MapgenV6::addMud()
759759
vm->m_data[i] = addnode;
760760
mudcount++;
761761

762-
vm->m_area.add_y(em, i, 1);
762+
VoxelArea::add_y(em, i, 1);
763763
}
764764
}
765765
}
@@ -799,7 +799,7 @@ void MapgenV6::flowMud(s16 &mudflow_minpos, s16 &mudflow_maxpos)
799799
n->getContent() == c_gravel)
800800
break;
801801

802-
vm->m_area.add_y(em, i, -1);
802+
VoxelArea::add_y(em, i, -1);
803803
}
804804

805805
// Stop if out of area
@@ -815,7 +815,7 @@ void MapgenV6::flowMud(s16 &mudflow_minpos, s16 &mudflow_maxpos)
815815
// Don't flow it if the stuff under it is not mud
816816
{
817817
u32 i2 = i;
818-
vm->m_area.add_y(em, i2, -1);
818+
VoxelArea::add_y(em, i2, -1);
819819
// Cancel if out of area
820820
if (!vm->m_area.contains(i2))
821821
continue;
@@ -826,7 +826,7 @@ void MapgenV6::flowMud(s16 &mudflow_minpos, s16 &mudflow_maxpos)
826826
}
827827
}
828828

829-
v3s16 dirs4[4] = {
829+
static const v3s16 dirs4[4] = {
830830
v3s16(0, 0, 1), // back
831831
v3s16(1, 0, 0), // right
832832
v3s16(0, 0, -1), // front
@@ -836,7 +836,7 @@ void MapgenV6::flowMud(s16 &mudflow_minpos, s16 &mudflow_maxpos)
836836
// Check that upper is walkable. Cancel
837837
// dropping if upper keeps it in place.
838838
u32 i3 = i;
839-
vm->m_area.add_y(em, i3, 1);
839+
VoxelArea::add_y(em, i3, 1);
840840
MapNode *n3 = NULL;
841841

842842
if (vm->m_area.contains(i3)) {
@@ -849,7 +849,7 @@ void MapgenV6::flowMud(s16 &mudflow_minpos, s16 &mudflow_maxpos)
849849
for (const v3s16 &dirp : dirs4) {
850850
u32 i2 = i;
851851
// Move to side
852-
vm->m_area.add_p(em, i2, dirp);
852+
VoxelArea::add_p(em, i2, dirp);
853853
// Fail if out of area
854854
if (!vm->m_area.contains(i2))
855855
continue;
@@ -858,7 +858,7 @@ void MapgenV6::flowMud(s16 &mudflow_minpos, s16 &mudflow_maxpos)
858858
if (ndef->get(*n2).walkable)
859859
continue;
860860
// Check that under side is air
861-
vm->m_area.add_y(em, i2, -1);
861+
VoxelArea::add_y(em, i2, -1);
862862
if (!vm->m_area.contains(i2))
863863
continue;
864864
n2 = &vm->m_data[i2];
@@ -867,7 +867,7 @@ void MapgenV6::flowMud(s16 &mudflow_minpos, s16 &mudflow_maxpos)
867867
// Loop further down until not air
868868
bool dropped_to_unknown = false;
869869
do {
870-
vm->m_area.add_y(em, i2, -1);
870+
VoxelArea::add_y(em, i2, -1);
871871
n2 = &vm->m_data[i2];
872872
// if out of known area
873873
if (!vm->m_area.contains(i2) ||
@@ -877,7 +877,7 @@ void MapgenV6::flowMud(s16 &mudflow_minpos, s16 &mudflow_maxpos)
877877
}
878878
} while (!ndef->get(*n2).walkable);
879879
// Loop one up so that we're in air
880-
vm->m_area.add_y(em, i2, 1);
880+
VoxelArea::add_y(em, i2, 1);
881881

882882
// Move mud to new place. Outside mapchunk remove
883883
// any decorations above removed or placed mud.
@@ -917,17 +917,17 @@ void MapgenV6::moveMud(u32 remove_index, u32 place_index,
917917
vm->m_data[above_remove_index].getContent() != c_water_source &&
918918
vm->m_data[above_remove_index].getContent() != CONTENT_IGNORE) {
919919
vm->m_data[above_remove_index] = n_air;
920-
vm->m_area.add_y(em, above_remove_index, 1);
920+
VoxelArea::add_y(em, above_remove_index, 1);
921921
}
922922
// Mud placed may have partially-buried a stacked decoration, search
923923
// above and remove.
924-
vm->m_area.add_y(em, place_index, 1);
924+
VoxelArea::add_y(em, place_index, 1);
925925
while (vm->m_area.contains(place_index) &&
926926
vm->m_data[place_index].getContent() != CONTENT_AIR &&
927927
vm->m_data[place_index].getContent() != c_water_source &&
928928
vm->m_data[place_index].getContent() != CONTENT_IGNORE) {
929929
vm->m_data[place_index] = n_air;
930-
vm->m_area.add_y(em, place_index, 1);
930+
VoxelArea::add_y(em, place_index, 1);
931931
}
932932
}
933933
}
@@ -1001,7 +1001,7 @@ void MapgenV6::placeTreesAndJungleGrass()
10011001
u32 vi = vm->m_area.index(x, y, z);
10021002
// place on dirt_with_grass, since we know it is exposed to sunlight
10031003
if (vm->m_data[vi].getContent() == c_dirt_with_grass) {
1004-
vm->m_area.add_y(em, vi, 1);
1004+
VoxelArea::add_y(em, vi, 1);
10051005
vm->m_data[vi] = n_junglegrass;
10061006
}
10071007
}
@@ -1071,7 +1071,7 @@ void MapgenV6::growGrass() // Add surface nodes
10711071
ndef->get(n).liquid_type != LIQUID_NONE ||
10721072
n.getContent() == c_ice)
10731073
break;
1074-
vm->m_area.add_y(em, i, -1);
1074+
VoxelArea::add_y(em, i, -1);
10751075
}
10761076
surface_y = (y >= full_node_min.Y) ? y : full_node_min.Y;
10771077
}
@@ -1085,10 +1085,10 @@ void MapgenV6::growGrass() // Add surface nodes
10851085
} else if (bt == BT_TUNDRA) {
10861086
if (c == c_dirt) {
10871087
vm->m_data[i] = n_snowblock;
1088-
vm->m_area.add_y(em, i, -1);
1088+
VoxelArea::add_y(em, i, -1);
10891089
vm->m_data[i] = n_dirt_with_snow;
10901090
} else if (c == c_stone && surface_y < node_max.Y) {
1091-
vm->m_area.add_y(em, i, 1);
1091+
VoxelArea::add_y(em, i, 1);
10921092
vm->m_data[i] = n_snowblock;
10931093
}
10941094
} else if (c == c_dirt) {

src/mapgen/mapgen_v7.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,7 @@ int MapgenV7::generateTerrain()
539539
vm->m_data[vi] = n_air;
540540
}
541541
}
542-
vm->m_area.add_y(em, vi, 1);
542+
VoxelArea::add_y(em, vi, 1);
543543
index3d += ystride;
544544
}
545545
}

src/mapgen/mapgen_valleys.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,7 @@ int MapgenValleys::generateTerrain()
540540
}
541541
}
542542

543-
vm->m_area.add_y(em, index_data, 1);
543+
VoxelArea::add_y(em, index_data, 1);
544544
index_3d += ystride;
545545
}
546546

@@ -668,7 +668,7 @@ void MapgenValleys::generateCaves(s16 max_stone_y, s16 large_cave_depth)
668668
// This 'roof' is removed when the mapchunk above is generated.
669669
for (s16 y = node_max.Y; y >= node_min.Y - 1; y--,
670670
index_3d -= ystride,
671-
vm->m_area.add_y(em, index_data, -1)) {
671+
VoxelArea::add_y(em, index_data, -1)) {
672672

673673
float terrain = noise_terrain_height->result[index_2d];
674674

@@ -705,7 +705,7 @@ void MapgenValleys::generateCaves(s16 max_stone_y, s16 large_cave_depth)
705705
// at the tunnel floor
706706
s16 sr = ps.range(0, 39);
707707
u32 j = index_data;
708-
vm->m_area.add_y(em, j, 1);
708+
VoxelArea::add_y(em, j, 1);
709709

710710
if (sr > terrain - y) {
711711
// Put biome nodes in tunnels near the surface

src/mapgen/mg_decoration.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -301,21 +301,21 @@ size_t DecoSimple::generate(MMVManip *vm, PcgRandom *pr, v3s16 p, bool ceiling)
301301
if (ceiling) {
302302
// Ceiling decorations
303303
// 'place offset y' is inverted
304-
vm->m_area.add_y(em, vi, -place_offset_y);
304+
VoxelArea::add_y(em, vi, -place_offset_y);
305305

306306
for (int i = 0; i < height; i++) {
307-
vm->m_area.add_y(em, vi, -1);
307+
VoxelArea::add_y(em, vi, -1);
308308
content_t c = vm->m_data[vi].getContent();
309309
if (c != CONTENT_AIR && c != CONTENT_IGNORE && !force_placement)
310310
break;
311311

312312
vm->m_data[vi] = MapNode(c_place, 0, param2);
313313
}
314314
} else { // Heightmap and floor decorations
315-
vm->m_area.add_y(em, vi, place_offset_y);
315+
VoxelArea::add_y(em, vi, place_offset_y);
316316

317317
for (int i = 0; i < height; i++) {
318-
vm->m_area.add_y(em, vi, 1);
318+
VoxelArea::add_y(em, vi, 1);
319319
content_t c = vm->m_data[vi].getContent();
320320
if (c != CONTENT_AIR && c != CONTENT_IGNORE && !force_placement)
321321
break;

src/serverenvironment.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1430,8 +1430,8 @@ bool ServerEnvironment::isFreeServerActiveObjectId(u16 id) const
14301430
}
14311431

14321432
/**
1433-
* Retrieve the next free activeobject ID
1434-
* @return free activeobject ID or zero if not free ID found
1433+
* Retrieve the first free ActiveObject ID
1434+
* @return free activeobject ID or 0 if none was found
14351435
*/
14361436
u16 ServerEnvironment::getFreeServerActiveObjectId()
14371437
{

0 commit comments

Comments
 (0)