Crossfire Server, Trunk
floor.c File Reference
#include <global.h>
#include <random_map.h>
#include <rproto.h>
+ Include dependency graph for floor.c:

Go to the source code of this file.

Functions

static int can_propagate (char item)
 
mapstructmake_map_floor (char **layout, char *floorstyle, RMParms *RP)
 
static void put_floor (mapstruct *map, char **layout, int x, int y, object *floor_arch)
 

Detailed Description

Floor handling.

Definition in file floor.c.

Function Documentation

◆ can_propagate()

static int can_propagate ( char  item)
static

Checks if the tile 'propagates' the floor.

Parameters
itemtile to check.
Returns
1 if this tile should propagate, 0 else.

Definition at line 30 of file floor.c.

Referenced by put_floor().

+ Here is the caller graph for this function:

◆ make_map_floor()

mapstruct* make_map_floor ( char **  layout,
char *  floorstyle,
RMParms RP 
)

Creates the Crossfire mapstruct object from the layout, and adds the floor.

Parameters
layoutgenerated layout.
floorstylefloor style. Can be NULL, in which case a random one is chosen.
RPparameters of the random map.
Returns
Crossfire map.

Definition at line 75 of file floor.c.

References obj::arch, arch_to_object(), find_style(), get_empty_map(), GET_MAP_OB, INS_NO_MERGE, INS_NO_WALK_ON, RMParms::multiple_floors, object_insert_in_map_at(), pick_random_object(), put_floor(), diamondslots::x, RMParms::Xsize, diamondslots::y, and RMParms::Ysize.

Referenced by generate_random_map().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ put_floor()

static void put_floor ( mapstruct map,
char **  layout,
int  x,
int  y,
object floor_arch 
)
static

Put a floor at specified location, and then to adjacent tiles if applicable.

Parameters
mapwhere to put the floor.
layoutlayout that was used to generate the map.
x
ycoordinates.
floor_archwhat floor to use.

Definition at line 47 of file floor.c.

References obj::arch, arch_to_object(), can_propagate(), GET_MAP_OB, INS_NO_MERGE, INS_NO_WALK_ON, disinfect::map, object_insert_in_map_at(), diamondslots::x, and diamondslots::y.

Referenced by make_map_floor().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: