--- deliantra/server/include/map.h 2007/01/15 00:40:49 1.52 +++ deliantra/server/include/map.h 2007/01/25 03:54:45 1.59 @@ -1,26 +1,26 @@ /* - CrossFire, A Multiplayer game for X-windows - - Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team - Copyright (C) 2002-2005 Mark Wedel & Crossfire Development Team - Copyright (C) 1992 Frank Tore Johansen - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - The authors can be reached via e-mail at crossfire@schmorp.de -*/ + * CrossFire, A Multiplayer game for X-windows + * + * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team + * Copyright (C) 2002-2005 Mark Wedel & Crossfire Development Team + * Copyright (C) 1992 Frank Tore Johansen + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * The authors can be reached via e-mail at crossfire@schmorp.de + */ /* * The maptile is allocated each time a new map is opened. @@ -49,13 +49,6 @@ #define MAP_LAYERS 3 -/* options passed to ready_map_name and load_original_map */ -#define MAP_FLUSH 0x01 -#define MAP_PLAYER_UNIQUE 0x02 -#define MAP_BLOCK 0x04 -#define MAP_STYLE 0x08 -#define MAP_OVERLAY 0x10 - /* Values for in_memory below. Should probably be an enumerations */ enum { MAP_IN_MEMORY, @@ -85,7 +78,7 @@ * should almost always be using out_of_map instead, which takes into account * map tiling. */ -#define OUT_OF_REAL_MAP(M,X,Y) ((X)<0 || (Y)<0 || (X)>=(M)->width || (Y)>=(M)->height) +#define OUT_OF_REAL_MAP(M,X,Y) (!(IN_RANGE_EXC ((X), 0, (M)->width) && IN_RANGE_EXC ((Y), 0, (M)->height))) /* These are used in the MapLook flags element. They are not used in * in the object flags structure. @@ -127,7 +120,7 @@ struct mapspace { object *bot, *top; /* lowest/highest object on this space */ - New_Face *faces[MAP_LAYERS]; /* faces for the 3 layers */ + facetile *faces[MAP_LAYERS]; /* faces for the 3 layers */ object *faces_obj[MAP_LAYERS];/* face objects for the 3 layers */ uint8 flags_; /* flags about this space (see the P_ values above) */ sint8 light; /* How much light this space provides */ @@ -229,7 +222,7 @@ tstamp ACC (RW, last_access); /* last time this map was accessed somehow */ shstr ACC (RW, name); /* Name of map as given by its creator */ - struct region *ACC (RW, region); /* What jurisdiction in the game world this map is ruled by + struct region *ACC (RW, default_region); /* What jurisdiction in the game world this map is ruled by * points to the struct containing all the properties of * the region */ double ACC (RW, reset_time); @@ -251,6 +244,7 @@ bool ACC (RW, per_player); bool ACC (RW, per_party); bool ACC (RW, outdoor); /* True if an outdoor map */ + bool ACC (RW, nodrop); /* avoid dropping anything on this map */ uint8 ACC (RW, darkness); /* indicates level of darkness of map */ uint16 ACC (RW, enter_x); /* enter_x and enter_y are default entrance location */ @@ -299,6 +293,11 @@ MTH void clear_header (); MTH void clear_links_to (maptile *m); + struct region *region (int x, int y) const + { + return default_region; + } + // loas the header pseudo-object bool _load_header (object_thawer &thawer); MTH bool _load_header (const char *path);