@@ -38,7 +38,8 @@ NoiseParams nparams_dungeon_density(0.0, 1.0, v3f(2.5, 2.5, 2.5), 0, 2, 1.4, 2.0
38
38
// /////////////////////////////////////////////////////////////////////////////
39
39
40
40
41
- DungeonGen::DungeonGen (Mapgen *mapgen, DungeonParams *dparams) {
41
+ DungeonGen::DungeonGen (Mapgen *mapgen, DungeonParams *dparams)
42
+ {
42
43
this ->mg = mapgen;
43
44
this ->vm = mapgen->vm ;
44
45
@@ -55,10 +56,10 @@ DungeonGen::DungeonGen(Mapgen *mapgen, DungeonParams *dparams) {
55
56
dp.c_stair = mg->ndef ->getId (" mapgen_stair_cobble" );
56
57
57
58
dp.diagonal_dirs = false ;
58
- dp.mossratio = 3.0 ;
59
- dp.holesize = v3s16 (1 , 2 , 1 );
60
- dp.roomsize = v3s16 (0 ,0 , 0 );
61
- dp.notifytype = GENNOTIFY_DUNGEON;
59
+ dp.mossratio = 3.0 ;
60
+ dp.holesize = v3s16 (1 , 2 , 1 );
61
+ dp.roomsize = v3s16 (0 , 0 , 0 );
62
+ dp.notifytype = GENNOTIFY_DUNGEON;
62
63
63
64
dp.np_rarity = nparams_dungeon_rarity;
64
65
dp.np_wetness = nparams_dungeon_wetness;
@@ -67,7 +68,8 @@ DungeonGen::DungeonGen(Mapgen *mapgen, DungeonParams *dparams) {
67
68
}
68
69
69
70
70
- void DungeonGen::generate (u32 bseed, v3s16 nmin, v3s16 nmax) {
71
+ void DungeonGen::generate (u32 bseed, v3s16 nmin, v3s16 nmax)
72
+ {
71
73
// TimeTaker t("gen dungeons");
72
74
if (NoisePerlin3D (&dp.np_rarity , nmin.X , nmin.Y , nmin.Z , mg->seed ) < 0.2 )
73
75
return ;
@@ -87,16 +89,16 @@ void DungeonGen::generate(u32 bseed, v3s16 nmin, v3s16 nmax) {
87
89
u32 i = vm->m_area .index (nmin.X , y, z);
88
90
for (s16 x = nmin.X ; x <= nmax.X ; x++) {
89
91
content_t c = vm->m_data [i].getContent ();
90
- if (c == CONTENT_AIR || c == dp.c_water
91
- || (no_float && c == CONTENT_IGNORE))
92
+ if (c == CONTENT_AIR || c == dp.c_water ||
93
+ (no_float && c == CONTENT_IGNORE))
92
94
vm->m_flags [i] |= VMANIP_FLAG_DUNGEON_PRESERVE;
93
95
i++;
94
96
}
95
97
}
96
98
}
97
99
98
100
// Add it
99
- makeDungeon (v3s16 (1 ,1 , 1 ) * MAP_BLOCKSIZE);
101
+ makeDungeon (v3s16 (1 , 1 , 1 ) * MAP_BLOCKSIZE);
100
102
101
103
// Convert some cobble to mossy cobble
102
104
if (dp.mossratio != 0.0 ) {
@@ -129,20 +131,19 @@ void DungeonGen::makeDungeon(v3s16 start_padding)
129
131
Find place for first room
130
132
*/
131
133
bool fits = false ;
132
- for (u32 i = 0 ; i < 100 && !fits; i++)
133
- {
134
+ for (u32 i = 0 ; i < 100 && !fits; i++) {
134
135
bool is_large_room = ((random .next () & 3 ) == 1 );
135
136
roomsize = is_large_room ?
136
- v3s16 (random .range (8 , 16 ),random .range (8 , 16 ),random .range (8 , 16 )) :
137
- v3s16 (random .range (4 , 8 ),random .range (4 , 6 ),random .range (4 , 8 ));
137
+ v3s16 (random .range (8 , 16 ), random .range (8 , 16 ), random .range (8 , 16 )) :
138
+ v3s16 (random .range (4 , 8 ), random .range (4 , 6 ), random .range (4 , 8 ));
138
139
roomsize += dp.roomsize ;
139
140
140
141
// start_padding is used to disallow starting the generation of
141
142
// a dungeon in a neighboring generation chunk
142
143
roomplace = vm->m_area .MinEdge + start_padding + v3s16 (
143
- random .range (0 ,areasize.X - roomsize.X - 1 - start_padding.X ),
144
- random .range (0 ,areasize.Y - roomsize.Y - 1 - start_padding.Y ),
145
- random .range (0 ,areasize.Z - roomsize.Z - 1 - start_padding.Z ));
144
+ random .range (0 , areasize.X - roomsize.X - 1 - start_padding.X ),
145
+ random .range (0 , areasize.Y - roomsize.Y - 1 - start_padding.Y ),
146
+ random .range (0 , areasize.Z - roomsize.Z - 1 - start_padding.Z ));
146
147
147
148
/*
148
149
Check that we're not putting the room to an unknown place,
@@ -151,12 +152,11 @@ void DungeonGen::makeDungeon(v3s16 start_padding)
151
152
fits = true ;
152
153
for (s16 z = 1 ; z < roomsize.Z - 1 ; z++)
153
154
for (s16 y = 1 ; y < roomsize.Y - 1 ; y++)
154
- for (s16 x = 1 ; x < roomsize.X - 1 ; x++)
155
- {
155
+ for (s16 x = 1 ; x < roomsize.X - 1 ; x++) {
156
156
v3s16 p = roomplace + v3s16 (x, y, z);
157
157
u32 vi = vm->m_area .index (p);
158
158
if ((vm->m_flags [vi] & VMANIP_FLAG_DUNGEON_INSIDE) ||
159
- vm->m_data [vi].getContent () == CONTENT_IGNORE) {
159
+ vm->m_data [vi].getContent () == CONTENT_IGNORE) {
160
160
fits = false ;
161
161
break ;
Has conversations. Original line has conversations. 162
162
}
@@ -174,8 +174,7 @@ void DungeonGen::makeDungeon(v3s16 start_padding)
174
174
v3s16 last_room_center = roomplace + v3s16 (roomsize.X / 2 , 1 , roomsize.Z / 2 );
175
175
176
176
u32 room_count = random .range (2 , 16 );
177
- for (u32 i = 0 ; i < room_count; i++)
178
- {
177
+ for (u32 i = 0 ; i < room_count; i++) {
179
178
// Make a room to the determined place
180
179
makeRoom (roomsize, roomplace);
181
180
@@ -213,7 +212,7 @@ void DungeonGen::makeDungeon(v3s16 start_padding)
213
212
if (!findPlaceForDoor (doorplace, doordir))
214
213
return ;
215
214
216
- if (random .range (0 ,1 ) == 0 )
215
+ if (random .range (0 , 1 ) == 0 )
217
216
// Make the door
218
217
makeDoor (doorplace, doordir);
219
218
else
@@ -226,15 +225,15 @@ void DungeonGen::makeDungeon(v3s16 start_padding)
226
225
makeCorridor (doorplace, doordir, corridor_end, corridor_end_dir);
227
226
228
227
// Find a place for a random sized room
229
- roomsize = v3s16 (random .range (4 ,8 ),random .range (4 ,6 ),random .range (4 ,8 ));
228
+ roomsize = v3s16 (random .range (4 , 8 ), random .range (4 , 6 ), random .range (4 , 8 ));
230
229
roomsize += dp.roomsize ;
231
230
232
231
m_pos = corridor_end;
233
232
m_dir = corridor_end_dir;
234
233
if (!findPlaceForRoomDoor (roomsize, doorplace, doordir, roomplace))
235
234
return ;
236
235
237
- if (random .range (0 ,1 ) == 0 )
236
+ if (random .range (0 , 1 ) == 0 )
238
237
// Make the door
239
238
makeDoor (doorplace, doordir);
240
239
else
@@ -252,11 +251,10 @@ void DungeonGen::makeRoom(v3s16 roomsize, v3s16 roomplace)
252
251
253
252
// Make +-X walls
254
253
for (s16 z = 0 ; z < roomsize.Z ; z++)
255
- for (s16 y = 0 ; y < roomsize.Y ; y++)
256
- {
254
+ for (s16 y = 0 ; y < roomsize.Y ; y++) {
257
255
{
258
256
v3s16 p = roomplace + v3s16 (0 , y, z);
259
- if (vm->m_area .contains (p) == false )
257
+ if (! vm->m_area .contains (p))
260
258
continue ;
261
259
u32 vi = vm->m_area .index (p);
262
260
if (vm->m_flags [vi] & VMANIP_FLAG_DUNGEON_UNTOUCHABLE)
@@ -265,7 +263,7 @@ void DungeonGen::makeRoom(v3s16 roomsize, v3s16 roomplace)
265
263
}
266
264
{
267
265
v3s16 p = roomplace + v3s16 (roomsize.X - 1 , y, z);
268
- if (vm->m_area .contains (p) == false )
266
+ if (! vm->m_area .contains (p))
269
267
continue ;
270
268
u32 vi = vm->m_area .index (p);
271
269
if (vm->m_flags [vi] & VMANIP_FLAG_DUNGEON_UNTOUCHABLE)
@@ -276,11 +274,10 @@ void DungeonGen::makeRoom(v3s16 roomsize, v3s16 roomplace)
276
274
277
275
// Make +-Z walls
278
276
for (s16 x = 0 ; x < roomsize.X ; x++)
279
- for (s16 y = 0 ; y < roomsize.Y ; y++)
280
- {
277
+ for (s16 y = 0 ; y < roomsize.Y ; y++) {
281
278
{
282
279
v3s16 p = roomplace + v3s16 (x, y, 0 );
283
- if (vm->m_area .contains (p) == false )
280
+ if (! vm->m_area .contains (p))
284
281
continue ;
285
282
u32 vi = vm->m_area .index (p);
286
283
if (vm->m_flags [vi] & VMANIP_FLAG_DUNGEON_UNTOUCHABLE)
@@ -289,7 +286,7 @@ void DungeonGen::makeRoom(v3s16 roomsize, v3s16 roomplace)
289
286
}
290
287
{
291
288
v3s16 p = roomplace + v3s16 (x, y, roomsize.Z - 1 );
292
- if (vm->m_area .contains (p) == false )
289
+ if (! vm->m_area .contains (p))
293
290
continue ;
294
291
u32 vi = vm->m_area .index (p);
295
292
if (vm->m_flags [vi] & VMANIP_FLAG_DUNGEON_UNTOUCHABLE)
@@ -300,11 +297,10 @@ void DungeonGen::makeRoom(v3s16 roomsize, v3s16 roomplace)
300
297
301
298
// Make +-Y walls (floor and ceiling)
302
299
for (s16 z = 0 ; z < roomsize.Z ; z++)
303
- for (s16 x = 0 ; x < roomsize.X ; x++)
304
- {
300
+ for (s16 x = 0 ; x < roomsize.X ; x++) {
305
301
{
306
302
v3s16 p = roomplace + v3s16 (x, 0 , z);
307
- if (vm->m_area .contains (p) == false )
303
+ if (! vm->m_area .contains (p))
308
304
continue ;
309
305
u32 vi = vm->m_area .index (p);
310
306
if (vm->m_flags [vi] & VMANIP_FLAG_DUNGEON_UNTOUCHABLE)
@@ -313,7 +309,7 @@ void DungeonGen::makeRoom(v3s16 roomsize, v3s16 roomplace)
313
309
}
314
310
{
315
311
v3s16 p = roomplace + v3s16 (x,roomsize. Y - 1 , z);
316
- if (vm->m_area .contains (p) == false )
312
+ if (! vm->m_area .contains (p))
317
313
continue ;
318
314
u32 vi = vm->m_area .index (p);
319
315
if (vm->m_flags [vi] & VMANIP_FLAG_DUNGEON_UNTOUCHABLE)
@@ -325,41 +321,39 @@ void DungeonGen::makeRoom(v3s16 roomsize, v3s16 roomplace)
325
321
// Fill with air
326
322
for (s16 z = 1 ; z < roomsize.Z - 1 ; z++)
327
323
for (s16 y = 1 ; y < roomsize.Y - 1 ; y++)
328
- for (s16 x = 1 ; x < roomsize.X - 1 ; x++)
329
- {
324
+ for (s16 x = 1 ; x < roomsize.X - 1 ; x++) {
330
325
v3s16 p = roomplace + v3s16 (x, y, z);
331
- if (vm->m_area .contains (p) == false )
326
+ if (! vm->m_area .contains (p))
332
327
continue ;
333
328
u32 vi = vm->m_area .index (p);
334
329
vm->m_flags [vi] |= VMANIP_FLAG_DUNGEON_UNTOUCHABLE;
335
- vm->m_data [vi] = n_air;
330
+ vm->m_data [vi] = n_air;
336
331
}
337
332
}
338
333
339
334
340
335
void DungeonGen::makeFill (v3s16 place, v3s16 size,
341
- u8 avoid_flags, MapNode n, u8 or_flags)
336
+ u8 avoid_flags, MapNode n, u8 or_flags)
342
337
{
343
338
for (s16 z = 0 ; z < size.Z ; z++)
344
339
for (s16 y = 0 ; y < size.Y ; y++)
345
- for (s16 x = 0 ; x < size.X ; x++)
346
- {
340
+ for (s16 x = 0 ; x < size.X ; x++) {
347
341
v3s16 p = place + v3s16 (x, y, z);
348
- if (vm->m_area .contains (p) == false )
342
+ if (! vm->m_area .contains (p))
349
343
continue ;
350
344
u32 vi = vm->m_area .index (p);
351
345
if (vm->m_flags [vi] & avoid_flags)
352
346
continue ;
353
347
vm->m_flags [vi] |= or_flags;
354
- vm->m_data [vi] = n;
348
+ vm->m_data [vi] = n;
355
349
}
356
350
}
357
351
358
352
359
353
void DungeonGen::makeHole (v3s16 place)
360
354
{
361
- makeFill (place, dp.holesize , 0 ,
362
- MapNode (CONTENT_AIR), VMANIP_FLAG_DUNGEON_INSIDE);
355
+ makeFill (place, dp.holesize , 0 , MapNode (CONTENT_AIR),
356
+ VMANIP_FLAG_DUNGEON_INSIDE);
363
357
}
364
358
365
359
@@ -374,8 +368,8 @@ void DungeonGen::makeDoor(v3s16 doorplace, v3s16 doordir)
374
368
}
375
369
376
370
377
- void DungeonGen::makeCorridor (v3s16 doorplace,
378
- v3s16 doordir, v3s16 &result_place, v3s16 &result_dir)
371
+ void DungeonGen::makeCorridor (v3s16 doorplace, v3s16 doordir,
372
+ v3s16 &result_place, v3s16 &result_dir)
379
373
{
380
374
makeHole (doorplace);
381
375
v3s16 p0 = doorplace;
@@ -398,22 +392,26 @@ void DungeonGen::makeCorridor(v3s16 doorplace,
398
392
if (partcount != 0 )
399
393
p.Y += make_stairs;
400
394
401
- if (vm->m_area .contains (p) == true &&
402
- vm->m_area .contains (p + v3s16 (0 , 1 , 0 )) == true ) {
395
+ if (vm->m_area .contains (p) && vm->m_area .contains (p + v3s16 (0 , 1 , 0 ))) {
403
396
if (make_stairs) {
404
- makeFill (p + v3s16 (-1 , -1 , -1 ), dp.holesize + v3s16 (2 , 3 , 2 ),
405
- VMANIP_FLAG_DUNGEON_UNTOUCHABLE, MapNode (dp.c_cobble ), 0 );
397
+ makeFill (p + v3s16 (-1 , -1 , -1 ),
398
+ dp.holesize + v3s16 (2 , 3 , 2 ),
399
+ VMANIP_FLAG_DUNGEON_UNTOUCHABLE,
400
+ MapNode (dp.c_cobble ),
401
+ 0 );
406
402
makeHole (p);
407
403
makeHole (p - dir);
408
404
409
- // TODO: fix stairs code so it works 100% (quite difficult)
405
+ // TODO: fix stairs code so it works 100%
406
+ // (quite difficult)
410
407
411
408
// exclude stairs from the bottom step
412
409
// exclude stairs from diagonal steps
413
410
if (((dir.X ^ dir.Z ) & 1 ) &&
414
- (((make_stairs == 1 ) && i != 0 ) ||
415
- ((make_stairs == -1 ) && i != length - 1 ))) {
416
- // rotate face 180 deg if making stairs backwards
411
+ (((make_stairs == 1 ) && i != 0 ) ||
412
+ ((make_stairs == -1 ) && i != length - 1 ))) {
413
+ // rotate face 180 deg if
414
+ // making stairs backwards
417
415
int facedir = dir_to_facedir (dir * make_stairs);
418
416
419
417
u32 vi = vm->m_area .index (p.X - dir.X , p.Y - 1 , p.Z - dir.Z );
@@ -425,8 +423,11 @@ void DungeonGen::makeCorridor(v3s16 doorplace,
425
423
vm->m_data [vi] = MapNode (dp.c_stair , 0 , facedir);
426
424
}
427
425
} else {
428
- makeFill (p + v3s16 (-1 , -1 , -1 ), dp.holesize + v3s16 (2 , 2 , 2 ),
429
- VMANIP_FLAG_DUNGEON_UNTOUCHABLE, MapNode (dp.c_cobble ), 0 );
426
+ makeFill (p + v3s16 (-1 , -1 , -1 ),
427
+ dp.holesize + v3s16 (2 , 2 , 2 ),
428
+ VMANIP_FLAG_DUNGEON_UNTOUCHABLE,
429
+ MapNode (dp.c_cobble ),
430
+ 0 );
430
431
makeHole (p);
431
432
}
432
433
@@ -446,7 +447,7 @@ void DungeonGen::makeCorridor(v3s16 doorplace,
446
447
447
448
dir = random_turn (random , dir);
448
449
449
- partlength = random .range (1 ,length);
450
+ partlength = random .range (1 , length);
450
451
451
452
make_stairs = 0 ;
452
453
if (random .next () % 2 == 0 && partlength >= 3 )
@@ -460,20 +461,15 @@ void DungeonGen::makeCorridor(v3s16 doorplace,
460
461
461
462
bool DungeonGen::findPlaceForDoor (v3s16 &result_place, v3s16 &result_dir)
462
463
{
463
- for (u32 i = 0 ; i < 100 ; i++)
464
- {
464
+ for (u32 i = 0 ; i < 100 ; i++) {
465
465
v3s16 p = m_pos + m_dir;
466
466
v3s16 p1 = p + v3s16 (0 , 1 , 0 );
467
- if (vm->m_area .contains (p) == false
468
- || vm->m_area .contains (p1) == false
469
- || i % 4 == 0 )
470
- {
467
+ if (!vm->m_area .contains (p) || !vm->m_area .contains (p1) || i % 4 == 0 ) {
471
468
randomizeDir ();
472
469
continue ;
473
470
}
474
- if (vm->getNodeNoExNoEmerge (p).getContent () == dp.c_cobble
475
- && vm->getNodeNoExNoEmerge (p1).getContent () == dp.c_cobble )
476
- {
471
+ if (vm->getNodeNoExNoEmerge (p).getContent () == dp.c_cobble &&
472
+ vm->getNodeNoExNoEmerge (p1).getContent () == dp.c_cobble ) {
477
473
// Found wall, this is a good place!
478
474
result_place = p;
479
475
result_dir = m_dir;
@@ -485,19 +481,25 @@ bool DungeonGen::findPlaceForDoor(v3s16 &result_place, v3s16 &result_dir)
485
481
Determine where to move next
486
482
*/
487
483
// Jump one up if the actual space is there
488
- if (vm->getNodeNoExNoEmerge (p+v3s16 (0 ,0 ,0 )).getContent () == dp.c_cobble
489
- && vm->getNodeNoExNoEmerge (p+v3s16 (0 ,1 ,0 )).getContent () == CONTENT_AIR
490
- && vm->getNodeNoExNoEmerge (p+v3s16 (0 ,2 ,0 )).getContent () == CONTENT_AIR)
484
+ if (vm->getNodeNoExNoEmerge (p +
485
+ v3s16 (0 , 0 , 0 )).getContent () == dp.c_cobble &&
486
+ vm->getNodeNoExNoEmerge (p +
487
+ v3s16 (0 , 1 , 0 )).getContent () == CONTENT_AIR &&
488
+ vm->getNodeNoExNoEmerge (p +
489
+ v3s16 (0 , 2 , 0 )).getContent () == CONTENT_AIR)
491
490
p += v3s16 (0 ,1 ,0 );
492
491
// Jump one down if the actual space is there
493
- if (vm->getNodeNoExNoEmerge (p+v3s16 (0 ,1 ,0 )).getContent () == dp.c_cobble
494
- && vm->getNodeNoExNoEmerge (p+v3s16 (0 ,0 ,0 )).getContent () == CONTENT_AIR
495
- && vm->getNodeNoExNoEmerge (p+v3s16 (0 ,-1 ,0 )).getContent () == CONTENT_AIR)
496
- p += v3s16 (0 ,-1 ,0 );
492
+ if (vm->getNodeNoExNoEmerge (p +
493
+ v3s16 (0 , 1 , 0 )).getContent () == dp.c_cobble &&
494
+ vm->getNodeNoExNoEmerge (p +
495
+ v3s16 (0 , 0 , 0 )).getContent () == CONTENT_AIR &&
496
+ vm->getNodeNoExNoEmerge (p +
497
+ v3s16 (0 , -1 , 0 )).getContent () == CONTENT_AIR)
498
+ p += v3s16 (0 , -1 , 0 );
497
499
// Check if walking is now possible
498
- if (vm->getNodeNoExNoEmerge (p).getContent () != CONTENT_AIR
499
- || vm->getNodeNoExNoEmerge (p+ v3s16 ( 0 , 1 , 0 )). getContent () != CONTENT_AIR)
500
- {
500
+ if (vm->getNodeNoExNoEmerge (p).getContent () != CONTENT_AIR ||
501
+ vm->getNodeNoExNoEmerge (p +
502
+ v3s16 ( 0 , 1 , 0 )). getContent () != CONTENT_AIR) {
501
503
// Cannot continue walking here
502
504
randomizeDir ();
503
505
continue ;
@@ -510,10 +512,9 @@ bool DungeonGen::findPlaceForDoor(v3s16 &result_place, v3s16 &result_dir)
510
512
511
513
512
514
bool DungeonGen::findPlaceForRoomDoor (v3s16 roomsize, v3s16 &result_doorplace,
513
- v3s16 &result_doordir, v3s16 &result_roomplace)
515
+ v3s16 &result_doordir, v3s16 &result_roomplace)
514
516
{
515
- for (s16 trycount = 0 ; trycount < 30 ; trycount++)
516
- {
517
+ for (s16 trycount = 0 ; trycount < 30 ; trycount++) {
517
518
v3s16 doorplace;
518
519
v3s16 doordir;
519
520
bool r = findPlaceForDoor (doorplace, doordir);
@@ -524,16 +525,16 @@ bool DungeonGen::findPlaceForRoomDoor(v3s16 roomsize, v3s16 &result_doorplace,
524
525
#if 1
525
526
if (doordir == v3s16 (1 , 0 , 0 )) // X+
526
527
roomplace = doorplace +
527
- v3s16 (0 , -1 , random .range (-roomsize.Z + 2 , -2 ));
528
+ v3s16 (0 , -1 , random .range (-roomsize.Z + 2 , -2 ));
528
529
if (doordir == v3s16 (-1 , 0 , 0 )) // X-
529
530
roomplace = doorplace +
530
- v3s16 (-roomsize.X + 1 , -1 , random .range (-roomsize.Z + 2 , -2 ));
531
+ v3s16 (-roomsize.X + 1 , -1 , random .range (-roomsize.Z + 2 , -2 ));
531
532
if (doordir == v3s16 (0 , 0 , 1 )) // Z+
532
533
roomplace = doorplace +
533
- v3s16 (random .range (-roomsize.X + 2 , -2 ), -1 , 0 );
534
+ v3s16 (random .range (-roomsize.X + 2 , -2 ), -1 , 0 );
534
535
if (doordir == v3s16 (0 , 0 , -1 )) // Z-
535
536
roomplace = doorplace +
536
- v3s16 (random .range (-roomsize.X + 2 , -2 ), -1 , -roomsize.Z + 1 );
537
+ v3s16 (random .range (-roomsize.X + 2 , -2 ), -1 , -roomsize.Z + 1 );
537
538
#endif
538
539
#if 0
539
540
if (doordir == v3s16(1, 0, 0)) // X+
@@ -550,23 +551,18 @@ bool DungeonGen::findPlaceForRoomDoor(v3s16 roomsize, v3s16 &result_doorplace,
550
551
bool fits = true ;
551
552
for (s16 z = 1 ; z < roomsize.Z - 1 ; z++)
552
553
for (s16 y = 1 ; y < roomsize.Y - 1 ; y++)
553
- for (s16 x = 1 ; x < roomsize.X - 1 ; x++)
554
- {
554
+ for (s16 x = 1 ; x < roomsize.X - 1 ; x++) {
555
555
v3s16 p = roomplace + v3s16 (x, y, z);
556
- if (vm->m_area .contains (p) == false )
557
- {
556
+ if (!vm->m_area .contains (p)) {
558
557
fits = false ;
559
558
break ;
560
559
}
561
- if (vm->m_flags [vm->m_area .index (p)]
562
- & VMANIP_FLAG_DUNGEON_INSIDE)
563
- {
560
+ if (vm->m_flags [vm->m_area .index (p)] & VMANIP_FLAG_DUNGEON_INSIDE) {
564
561
fits = false ;
565
562
break ;
566
563
}
567
564
}
568
- if (fits == false )
569
- {
565
+ if (fits == false ) {
570
566
// Find new place
571
567
continue ;
572
568
}
@@ -604,15 +600,12 @@ v3s16 rand_ortho_dir(PseudoRandom &random, bool diagonal_dirs)
604
600
v3s16 turn_xz (v3s16 olddir, int t)
605
601
{
606
602
v3s16 dir;
607
- if (t == 0 )
608
- {
603
+ if (t == 0 ) {
609
604
// Turn right
610
605
dir.X = olddir.Z ;
611
606
dir.Z = -olddir.X ;
612
607
dir.Y = olddir.Y ;
613
- }
614
- else
615
- {
608
+ } else {
616
609
// Turn left
617
610
dir.X = -olddir.Z ;
618
611
dir.Z = olddir.X ;
@@ -627,10 +620,8 @@ v3s16 random_turn(PseudoRandom &random, v3s16 olddir)
627
620
int turn = random .range (0 , 2 );
628
621
v3s16 dir;
629
622
if (turn == 0 )
630
- {
631
623
// Go straight
632
624
dir = olddir;
633
- }
634
625
else if (turn == 1 )
635
626
// Turn right
636
627
dir = turn_xz (olddir, 0 );
@@ -641,7 +632,8 @@ v3s16 random_turn(PseudoRandom &random, v3s16 olddir)
641
632
}
642
633
643
634
644
- int dir_to_facedir (v3s16 d) {
635
+ int dir_to_facedir (v3s16 d)
636
+ {
645
637
if (abs (d.X ) > abs (d.Z ))
646
638
return d.X < 0 ? 3 : 1 ;
647
639
else