#define INITW_C #include #include #include "roads.h" #include "tiles.h" extern int view_x, view_y; /* VIEW AREA (UPPER LEFT CORNER) */ extern int viewpage; /* CURRENTLY VIEWED PAGE */ extern int startup_vmode; /* VIDEO MODE STARTUP SETTINGS, -1 IF NOT INIT */ int far *topography; /* BACKGROUND TILE LIST (ARRAY) */ int far *terrain; /* FOREGROUND TILE LIST (ARRAY) */ int world_type=75; /* TENDENCY TO GRASS */ int edgemode=1; /* BLOCKY GRASS/DIRT OR EDGED? */ extern int frogmode; /* * * Loads the world foreground tile list with roads. * */ void init_foreground(void) { register int x, tile, fails; /* INITIALIZE FOREGROUND */ for (x=0; x=CHANCE_LAND_GROUPING) /* NO GROUPING */ { if (random(100)>=world_type) landtype_here=1; else landtype_here=0; } if (landtype_here==0) topography[x]= random (NUM_GRASS_TILES)+FIRST_GRASS_TILE; /* GRASS */ else topography[x]= random (NUM_DIRT_TILES)+FIRST_DIRT_TILE; /* DIRT */ } /* DO FIRST COLUMN */ for (y=1; y=CHANCE_LAND_GROUPING) /* NO GROUPING */ { if (random(100)>=world_type) landtype_here=1; else landtype_here=0; } if (landtype_here==0) topography[WORLD_TILE(0,y)]= random (NUM_GRASS_TILES)+FIRST_GRASS_TILE; /* GRASS */ else topography[WORLD_TILE(0,y)]= random (NUM_DIRT_TILES)+FIRST_DIRT_TILE; /* DIRT */ } /* DO SUBSEQUENT ROWS */ for (y=1; y=CHANCE_LAND_GROUPING) /* UNGROUP */ { if (random(100)>=world_type) landtype_here=1; else landtype_here=0; } else if (random(2)) landtype_here=landtype_up; if (landtype_here==0) topography[WORLD_TILE(x,y)]= random (NUM_GRASS_TILES)+FIRST_GRASS_TILE; /* GRASS */ else topography[WORLD_TILE(x,y)]= random (NUM_DIRT_TILES)+FIRST_DIRT_TILE; /* DIRT */ } if (edgemode) add_dirt_edges (); } /* * * Initializes background and foreground tile lists. * */ void init_world(void) { init_background(); init_foreground(); view_x=random(WORLD_WIDTH-VIEW_WIDTH); view_y=random(WORLD_HEIGHT-VIEW_HEIGHT); }