summaryrefslogtreecommitdiff
path: root/src/gen_evol.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gen_evol.c')
-rw-r--r--src/gen_evol.c156
1 files changed, 0 insertions, 156 deletions
diff --git a/src/gen_evol.c b/src/gen_evol.c
deleted file mode 100644
index bfdfbd68..00000000
--- a/src/gen_evol.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Generate a game of life level and make it evolve
- */
-
-/*
- * Copyright (c) 2003 DarkGod.
- *
- * This software may be copied and distributed for educational, research, and
- * not for profit purposes provided that this copyright and statement are
- * included in all such copies.
- */
-
-#include "angband.h"
-
-
-/*
- * Generate a game of life level :) and make it evolve
- */
-void evolve_level(bool_ noise)
-{
- int i, j;
-
- int cw = 0, cf = 0;
-
-
- /* Add a bit of noise */
- if (noise)
- {
- for (i = 1; i < cur_wid - 1; i++)
- {
- for (j = 1; j < cur_hgt - 1; j++)
- {
- if (f_info[cave[j][i].feat].flags1 & FF1_WALL) cw++;
- if (f_info[cave[j][i].feat].flags1 & FF1_FLOOR) cf++;
- }
- }
-
- for (i = 1; i < cur_wid - 1; i++)
- {
- for (j = 1; j < cur_hgt - 1; j++)
- {
- cave_type *c_ptr;
-
- /* Access the grid */
- c_ptr = &cave[j][i];
-
- /* Permanent features should stay */
- if (f_info[c_ptr->feat].flags1 & FF1_PERMANENT) continue;
-
- /* Avoid evolving grids with object or monster */
- if (c_ptr->o_idx || c_ptr->m_idx) continue;
-
- /* Avoid evolving player grid */
- if ((j == p_ptr->py) && (i == p_ptr->px)) continue;
-
- if (magik(7))
- {
- if (cw > cf)
- {
- place_floor(j, i);
- }
- else
- {
- place_filler(j, i);
- }
- }
- }
- }
- }
-
- for (i = 1; i < cur_wid - 1; i++)
- {
- for (j = 1; j < cur_hgt - 1; j++)
- {
- int x, y, c;
- cave_type *c_ptr;
-
- /* Access the grid */
- c_ptr = &cave[j][i];
-
- /* Permanent features should stay */
- if (f_info[c_ptr->feat].flags1 & FF1_PERMANENT) continue;
-
- /* Avoid evolving grids with object or monster */
- if (c_ptr->o_idx || c_ptr->m_idx) continue;
-
- /* Avoid evolving player grid */
- if ((j == p_ptr->py) && (i == p_ptr->px)) continue;
-
-
- /* Reset tally */
- c = 0;
-
- /* Count number of surrounding walls */
- for (x = i - 1; x <= i + 1; x++)
- {
- for (y = j - 1; y <= j + 1; y++)
- {
- if ((x == i) && (y == j)) continue;
- if (f_info[cave[y][x].feat].flags1 & FF1_WALL) c++;
- }
- }
-
- /*
- * Changed these parameters a bit, so that it doesn't produce
- * too open or too narrow levels -- pelpel
- */
- /* Starved or suffocated */
- if ((c < 4) || (c >= 7))
- {
- if (f_info[c_ptr->feat].flags1 & FF1_WALL)
- {
- place_floor(j, i);
- }
- }
-
- /* Spawned */
- else if ((c == 4) || (c == 5))
- {
- if (!(f_info[c_ptr->feat].flags1 & FF1_WALL))
- {
- place_filler(j, i);
- }
- }
- }
- }
-
- /* Notice changes */
- p_ptr->update |= (PU_VIEW | PU_MONSTERS | PU_FLOW | PU_MON_LITE);
-}
-
-
-bool_ level_generate_life()
-{
- int i, j;
-
- for (i = 1; i < cur_wid - 1; i++)
- {
- for (j = 1; j < cur_hgt - 1; j++)
- {
- cave[j][i].info = (CAVE_ROOM | CAVE_GLOW | CAVE_MARK);
- if (magik(45)) place_floor(j, i);
- else place_filler(j, i);
- }
- }
-
- evolve_level(FALSE);
- evolve_level(FALSE);
- evolve_level(FALSE);
-
- /* Determine the character location */
- if (!new_player_spot(get_branch()))
- return FALSE;
-
- return TRUE;
-}