Go to the documentation of this file.
31 #define NUM_OF_SPECIAL_TYPES 4
33 #define SPECIAL_SUBMAP 1
34 #define SPECIAL_FOUNTAIN 2
35 #define SPECIAL_EXIT 3
45 #define NR_OF_HOLE_TYPES 3
63 for (i = xstart; i < xstart+xsize; i++)
64 for (j = ystart; j < ystart+ysize; j++) {
99 if (
tmp->head != NULL) {
174 for (; tries >= 0; tries--) {
179 for (
l = i;
l < i+xsize;
l++)
180 for (
m = j;
m < j+ysize;
m++) {
191 for (tries = 0; tries < 10; tries++) {
195 for (
l = i;
l < i+xsize;
l++)
196 for (
m = j;
m < j+ysize;
m++)
219 int ix, iy, i = -1, tries = 0;
222 if (fountain_style == NULL || fountain == NULL) {
228 while (i < 0 && tries < 10) {
283 int g_xsize, g_ysize;
334 LOG(
llevError,
"place_special_exit: undefined hole type %d\n", hole_type);
349 memset(&hole, 0,
sizeof(hole));
350 hole.
Xsize = g_xsize;
351 hole.
Ysize = g_ysize;
403 switch (special_type) {
407 if (special_map == NULL) {
uint8_t special_break_map
char layoutstyle[RM_SIZE]
#define FLAG_CLIENT_ANIM_RANDOM
void LOG(LogLevel logLevel, const char *format,...)
#define QUERY_FLAG(xyz, p)
int object_find_first_free_spot(const object *ob, mapstruct *m, int x, int y)
void place_specials_in_map(mapstruct *map, char **layout, RMParms *RP)
void object_copy(const object *src_ob, object *dest_ob)
mapstruct * find_style(const char *dirname, const char *stylename, int difficulty)
void object_copy_with_inv(const object *src_ob, object *dest_ob, bool update_speed)
int find_spot_for_submap(mapstruct *map, char **layout, int *ix, int *iy, int xsize, int ysize)
struct shopitems * shopitems
static event_registration m
char * stringbuffer_finish(StringBuffer *sb)
void object_free_drop_inventory(object *ob)
short freearr_y[SIZEOFFREE]
sstring add_string(const char *str)
#define MIN_RANDOM_MAP_SIZE
void object_update_speed(object *op)
#define FREE_AND_COPY(sv, nv)
object * object_create_arch(archetype *at)
void include_map_in_map(mapstruct *dest_map, const mapstruct *in_map, int x, int y)
const Animations * animation
object * object_insert_in_map_at(object *op, mapstruct *m, object *originator, int flag, int x, int y)
object * object_new(void)
#define FREE_AND_CLEAR_STR(xyz)
void place_special_exit(mapstruct *map, int hole_type, const RMParms *RP)
#define FOR_MAP_PREPARE(map_, mx_, my_, it_)
#define FREE_AND_CLEAR(xyz)
archetype * find_archetype(const char *name)
char exit_on_final_map[RM_SIZE]
object * pick_random_object(mapstruct *style)
void object_set_msg(object *op, const char *msg)
char treasurestyle[RM_SIZE]
#define CLEAR_FLAG(xyz, p)
void object_remove(object *op)
char monsterstyle[RM_SIZE]
void place_fountain_with_specials(mapstruct *map)
int object_set_value(object *op, const char *key, const char *value, int add_key)
short freearr_x[SIZEOFFREE]
void nuke_map_region(mapstruct *map, int xstart, int ystart, int xsize, int ysize)
#define NUM_OF_SPECIAL_TYPES
StringBuffer * write_map_parameters_to_string(const RMParms *RP)
float difficulty_increase