* for all the rooms you ask for.\n
*/
-#if 0
+#if 1
static room_info_type room_info_normal[ROOM_T_MAX] =
{
/* Depth */
/* 0 10 20 30 40 50 60 70 80 90 100 min limit */
-
{{999,900,800,700,600,500,400,300,200,100, 0}, 0}, /*NORMAL */
{{ 1, 10, 20, 30, 40, 50, 60, 70, 80, 90,100}, 1}, /*OVERLAP */
{{ 1, 10, 20, 30, 40, 50, 60, 70, 80, 90,100}, 3}, /*CROSS */
{{ 0, 0, 1, 1, 1, 2, 3, 4, 5, 6, 8}, 20}, /*TRAP */
{{ 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2}, 40}, /*GLASS */
{{ 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3}, 1}, /*ARCADE */
- {{ 20, 40, 60, 80,100,100,100,100,100,100,100}, 1}, /*FIX */
+ {{ 20, 40, 60, 80,100,100,100,100,100,100,100}, 1}, /*FIX */
};
#endif
-#if 1
+#if 0
static room_info_type room_info_normal[ROOM_T_MAX] =
{
/*デバッグ用配列*/
{ { 0, 0, 1, 1, 1, 2, 3, 4, 5, 6, 0}, 20 }, /*TRAP */
{ { 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 0}, 40 }, /*GLASS */
{ { 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 0}, 1 }, /*ARCADE */
-{ { 20, 40, 60, 80,100,100,100,100,100,100,100}, 1 }, /*FIX */
+{ { 20, 40, 60, 80,100,100,100,100,100,100,100}, 1 }, /*FIX */
};
#endif
* @param block_x 範囲の左端
* @return なし
*/
-static bool find_space_aux(int blocks_high, int blocks_wide, int block_y, int block_x)
+static bool find_space_aux(POSITION blocks_high, POSITION blocks_wide, POSITION block_y, POSITION block_x)
{
- int by1, bx1, by2, bx2, by, bx;
+ POSITION by1, bx1, by2, bx2, by, bx;
/* Itty-bitty rooms must shift about within their rectangle */
if (blocks_wide < 3)
}
/* Extract blocks */
- by1 = block_y + 0;
- bx1 = block_x + 0;
+ by1 = block_y;
+ bx1 = block_x;
by2 = block_y + blocks_high;
bx2 = block_x + blocks_wide;
bool find_space(POSITION *y, POSITION *x, POSITION height, POSITION width)
{
int candidates, pick;
- int by, bx, by1, bx1, by2, bx2;
- int block_y = 0, block_x = 0;
-
+ POSITION by, bx, by1, bx1, by2, bx2;
+ POSITION block_y = 0, block_x = 0;
/* Find out how many blocks we need. */
- int blocks_high = 1 + ((height - 1) / BLOCK_HGT);
- int blocks_wide = 1 + ((width - 1) / BLOCK_WID);
+ POSITION blocks_high = 1 + ((height - 1) / BLOCK_HGT);
+ POSITION blocks_wide = 1 + ((width - 1) / BLOCK_WID);
/* There are no way to allocate such huge space */
if (dun->row_rooms < blocks_high) return FALSE;
}
/* Extract blocks */
- by1 = block_y + 0;
- bx1 = block_x + 0;
+ by1 = block_y;
+ bx1 = block_x;
by2 = block_y + blocks_high;
bx2 = block_x + blocks_wide;
}
}
-
/*
* Hack- See if room will cut off a cavern.
*
*/
check_room_boundary(*x - width / 2 - 1, *y - height / 2 - 1, *x + (width - 1) / 2 + 1, *y + (height - 1) / 2 + 1);
-
/* Success. */
return TRUE;
}
-
-
/*
* Structure to hold all "fill" data
*/
/* Store routine for the fractal cave generator */
/* this routine probably should be an inline function or a macro. */
-static void store_height(POSITION x, POSITION y, int val)
+static void store_height(POSITION x, POSITION y, FEAT_IDX val)
{
/* if on boundary set val > cutoff so walls are not as square */
if (((x == fill_data.xmin) || (y == fill_data.ymin) ||
- (x == fill_data.xmax) || (y == fill_data.ymax)) &&
- (val <= fill_data.c1)) val = fill_data.c1 + 1;
+ (x == fill_data.xmax) || (y == fill_data.ymax)) &&
+ (val <= fill_data.c1)) val = fill_data.c1 + 1;
/* store the value in height-map format */
- cave[y][x].feat = (s16b)val;
+ cave[y][x].feat = val;
return;
}
* this gives 8 binary places of fractional part + 8 places of normal part
*/
- u16b xstep, xhstep, ystep, yhstep;
- u16b xstep2, xhstep2, ystep2, yhstep2;
- u16b i, j, ii, jj, diagsize, xxsize, yysize;
+ POSITION xstep, xhstep, ystep, yhstep;
+ POSITION xstep2, xhstep2, ystep2, yhstep2;
+ POSITION i, j, ii, jj, diagsize, xxsize, yysize;
/* Cache for speed */
- u16b xm, xp, ym, yp;
+ POSITION xm, xp, ym, yp;
/* redefine size so can change the value if out of range */
xsize = xsiz;
}
-static bool hack_isnt_wall(POSITION y, POSITION x, int c1, int c2, int c3, int feat1, int feat2, int feat3, int info1, int info2, int info3)
+static bool hack_isnt_wall(POSITION y, POSITION x, int c1, int c2, int c3, FEAT_IDX feat1, FEAT_IDX feat2, FEAT_IDX feat3, BIT_FLAGS info1, BIT_FLAGS info2, BIT_FLAGS info3)
{
/*
* function used to convert from height-map back to the
/* 25% of the time use the other tile : it looks better this way */
if (randint1(100) < 75)
{
- cave[y][x].feat = (s16b)feat1;
+ cave[y][x].feat = feat1;
cave[y][x].info &= ~(CAVE_MASK);
cave[y][x].info |= info1;
return TRUE;
}
else
{
- cave[y][x].feat = (s16b)feat2;
+ cave[y][x].feat = feat2;
cave[y][x].info &= ~(CAVE_MASK);
cave[y][x].info |= info2;
return TRUE;
/* 25% of the time use the other tile : it looks better this way */
if (randint1(100) < 75)
{
- cave[y][x].feat = (s16b)feat2;
+ cave[y][x].feat = feat2;
cave[y][x].info &= ~(CAVE_MASK);
cave[y][x].info |= info2;
return TRUE;
}
else
{
- cave[y][x].feat = (s16b)feat1;
+ cave[y][x].feat = feat1;
cave[y][x].info &= ~(CAVE_MASK);
cave[y][x].info |= info1;
return TRUE;
}
else if (cave[y][x].feat <= c3)
{
- cave[y][x].feat = (s16b)feat3;
+ cave[y][x].feat = feat3;
cave[y][x].info &= ~(CAVE_MASK);
cave[y][x].info |= info3;
return TRUE;
static void cave_fill(POSITION y, POSITION x)
{
int i, j, d;
- int ty, tx;
+ POSITION ty, tx;
int flow_tail = 1;
int flow_head = 0;
temp_y[0] = y;
temp_x[0] = x;
-
/* Now process the queue */
while (flow_head != flow_tail)
{
*/
void build_cavern(void)
{
- int grd, roug, cutoff, xsize, ysize, x0, y0;
+ int grd, roug, cutoff;
+ POSITION xsize, ysize, x0, y0;
bool done, light;
light = done = FALSE;