![]() |
Crossfire Server, Trunk
1.75.0
|
Go to the source code of this file.
Data Structures | |
struct | MapSpace |
This structure contains all information related to one map square. More... | |
struct | mapstruct |
This is a game-map. More... | |
struct | region |
This is a game region. More... | |
struct | rv_vector |
This is used by get_rangevector to determine where the other creature is. More... | |
struct | shopitems |
Shop-related information for a map. More... | |
Macros | |
#define | AB_NO_PASS 0x04 |
#define | GET_MAP_FACE_OBJ(M, X, Y, L) (map_space(M, X, Y)->faces_obj[L]) |
Gets the layer face of specified square. More... | |
#define | GET_MAP_FACE_OBJS(M, X, Y) (map_space(M, X, Y)->faces_obj) |
Returns the layers array so update_position can just copy the entire array over. More... | |
#define | GET_MAP_FLAGS(M, X, Y) (map_space(M, X, Y)->flags) |
Gets map flags. More... | |
#define | GET_MAP_LIGHT(M, X, Y) (map_space(M, X, Y)->light) |
Gets map light. More... | |
#define | GET_MAP_MOVE_BLOCK(M, X, Y) (map_space(M, X, Y)->move_block) |
Gets the blocking state of a square. More... | |
#define | GET_MAP_MOVE_OFF(M, X, Y) (map_space(M, X, Y)->move_off) |
Gets the move_off state of a square. More... | |
#define | GET_MAP_MOVE_ON(M, X, Y) (map_space(M, X, Y)->move_on) |
Gets the move_on state of a square. More... | |
#define | GET_MAP_MOVE_SLOW(M, X, Y) (map_space(M, X, Y)->move_slow) |
Gets the slowing state of a square. More... | |
#define | GET_MAP_OB(M, X, Y) (map_space(M, X, Y)->bottom) |
Gets the bottom object on a map. More... | |
#define | GET_MAP_PLAYER(M, X, Y) (map_space(M, X, Y)->pl) |
#define | GET_MAP_TOP(M, X, Y) (map_space(M, X, Y)->top) |
Gets the top object on a map. More... | |
#define | MAGIC_MAP_HALF MAGIC_MAP_SIZE/2 |
#define | MAGIC_MAP_SIZE 50 |
#define | MAP_DARKNESS(m) (m)->darkness |
Map darkness level (0-MAX_DARKNESS) More... | |
#define | MAP_DIFFICULTY(m) ((m)->difficulty) |
#define | MAP_ENTER_X(m) (m)->enter_x |
Default X coordinate for map enter. More... | |
#define | MAP_ENTER_Y(m) (m)->enter_y |
Default Y coordinate for map enter. More... | |
#define | MAP_FLUSH 0x1 |
Always load map from the map directory, and don't do unique items or the like. More... | |
#define | MAP_HEIGHT(m) (m)->height |
Map height. More... | |
#define | MAP_IN_MEMORY 1 |
Map is fully loaded. More... | |
#define | MAP_LAYER_FLOOR 0 |
#define | MAP_LAYER_FLY1 8 |
Flying objects - creatures, spells. More... | |
#define | MAP_LAYER_FLY2 9 |
Arrows, etc. More... | |
#define | MAP_LAYER_ITEM1 3 |
Items that can be picked up. More... | |
#define | MAP_LAYER_ITEM2 4 |
#define | MAP_LAYER_ITEM3 5 |
#define | MAP_LAYER_LIVING1 6 |
Living creatures. More... | |
#define | MAP_LAYER_LIVING2 7 |
#define | MAP_LAYER_NO_PICK1 1 |
Non pickable ground objects. More... | |
#define | MAP_LAYER_NO_PICK2 2 |
Non pickable ground objects. More... | |
#define | MAP_LAYERS 10 |
#define | MAP_LOADING 3 |
This map is being loaded. More... | |
#define | MAP_NO_DIFFICULTY 0x4 |
If set then don't compute a map difficulty if it is 0. More... | |
#define | MAP_NOSMOOTH(m) (m)->nosmooth |
#define | MAP_OUTDOORS(m) ((m)->outdoor) |
#define | MAP_OVERLAY 0x10 |
Map to load is an overlay. More... | |
#define | MAP_PLAYER_UNIQUE 0x2 |
This map is player-specific. More... | |
#define | MAP_RESET_TIMEOUT(m) ((m)->reset_timeout) |
#define | MAP_SAVING 4 |
Map being saved. More... | |
#define | MAP_SIZE(m) map_size(m) |
Convenient function - total number of spaces is used in many places. More... | |
#define | MAP_STYLE 0x8 |
Active objects shouldn't be put on active list. More... | |
#define | MAP_SWAPPED 2 |
Map spaces have been saved to disk. More... | |
#define | MAP_TIMEOUT(m) ((m)->timeout) |
#define | MAP_TYPE_CHOICE 3 |
Choice of maps presented to player. More... | |
#define | MAP_TYPE_DEFAULT 2 |
If no map is specified, where character starts. More... | |
#define | MAP_TYPE_LEGACY 1 |
These are map subtypes. More... | |
#define | MAP_WHEN_RESET(m) ((m)->reset_time) |
This is when the map will reset. More... | |
#define | MAP_WIDTH(m) (m)->width |
Map width. More... | |
#define | OUT_OF_REAL_MAP(M, X, Y) ((X) < 0 || (Y) < 0 || (X) >= (M)->width || (Y) >= (M)->height) |
Checks if a square is out of the map. More... | |
#define | P_BLOCKSVIEW 0x01 |
This spot blocks the player's view. More... | |
#define | P_IS_ALIVE 0x10 |
Something alive is on this space. More... | |
#define | P_NEED_UPDATE 0x40 |
This space is out of date. More... | |
#define | P_NEW_MAP 0x200 |
Coordinates passed result in a new tiled map. More... | |
#define | P_NO_CLERIC 0x20 |
No clerical spells cast here. More... | |
#define | P_NO_ERROR 0x80 |
Purely temporary - if set, update_position does not complain if the flags are different. More... | |
#define | P_NO_MAGIC 0x02 |
Spells (some) can't pass this object. More... | |
#define | P_OUT_OF_MAP 0x100 |
This space is outside the map. More... | |
#define | P_PLAYER 0x08 |
There is a player on this space. More... | |
#define | SAVE_ERROR_CLOSE -6 |
Close error for regular file. More... | |
#define | SAVE_ERROR_NO_PATH -4 |
Map had no path set. More... | |
#define | SAVE_ERROR_NOT_IN_MEMORY -10 |
Map to swap isn't in memory. More... | |
#define | SAVE_ERROR_OK 0 |
No error. More... | |
#define | SAVE_ERROR_PLAYER -11 |
Player on map to save. More... | |
#define | SAVE_ERROR_RCREATION -1 |
Couldn't create the regular save file. More... | |
#define | SAVE_ERROR_UCREATION -2 |
Couldn't create the file for unique objects. More... | |
#define | SAVE_ERROR_URENAME -5 |
Couldn't rename unique temporary file. More... | |
#define | SAVE_ERROR_WRITE -3 |
Write error. More... | |
#define | SAVE_FLAG_NO_REMOVE 2 |
If set, objects are not removed while saving. More... | |
#define | SAVE_FLAG_SAVE_UNPAID 1 |
If set, unpaid items will be saved. More... | |
#define | SAVE_MODE_INPLACE 1 |
Map is saved from where it was loaded. More... | |
#define | SAVE_MODE_NORMAL 0 |
No special handling. More... | |
#define | SAVE_MODE_OVERLAY 2 |
Map is persisted as an overlay. More... | |
#define | SET_MAP_FACE_OBJ(M, X, Y, C, L) (map_space(M, X, Y)->faces_obj[L] = C) |
Sets the layer face of specified square. More... | |
#define | SET_MAP_FLAGS(M, X, Y, C) (map_space(M, X, Y)->flags = C) |
Sets map flags. More... | |
#define | SET_MAP_LIGHT(M, X, Y, L) (map_space(M, X, Y)->light = L) |
Sets map light. More... | |
#define | SET_MAP_MOVE_BLOCK(M, X, Y, C) (map_space(M, X, Y)->move_block = C) |
Sets the blocking state of a square. More... | |
#define | SET_MAP_MOVE_OFF(M, X, Y, C) (map_space(M, X, Y)->move_off = C) |
Sets the move_off state of a square. More... | |
#define | SET_MAP_MOVE_ON(M, X, Y, C) (map_space(M, X, Y)->move_on = C) |
Sets the move_on state of a square. More... | |
#define | SET_MAP_MOVE_SLOW(M, X, Y, C) (map_space(M, X, Y)->move_slow = C) |
Sets the slowing state of a square. More... | |
#define | SET_MAP_OB(M, X, Y, tmp) (map_space(M, X, Y)->bottom = (tmp)) |
Sets the bottom object on a map. More... | |
#define | SET_MAP_PLAYER(M, X, Y, C) (map_space(M, X, Y)->pl = C) |
#define | SET_MAP_TOP(M, X, Y, tmp) (map_space(M, X, Y)->top = (tmp)) |
Sets the top object on a map. More... | |
Functions | |
int | map_light_on (mapstruct *m, int x, int y) |
Return the light level at position (X, Y) on map M. More... | |
bool | map_path_unique (const char *name) |
Return true if the given map path leads to a unique map. More... | |
void | map_reset_swap (mapstruct *m) |
Call this when an in-memory map is used or referenced. More... | |
uint32_t | map_size (mapstruct *m) |
Calculate map size without intermediate sign extension. More... | |
MapSpace * | map_space (const mapstruct *m, int x, int y) |
bool | ob_move_block (object *ob1, object *ob2) |
Basic macro to see if ob2 blocks ob1 from moving onto this space. More... | |
Variables | |
const char *const | map_layer_name [MAP_LAYERS] |
These correspond to the layer names in map.h - since some of the types can be on multiple layers, names are duplicated to correspond to that layer. More... | |
This file contains basic map-related structures and macros.
Definition in file map.h.
#define MAGIC_MAP_HALF MAGIC_MAP_SIZE/2 |
#define MAP_FLUSH 0x1 |
#define MAP_NO_DIFFICULTY 0x4 |
#define MAP_OVERLAY 0x10 |
#define MAP_PLAYER_UNIQUE 0x2 |
#define MAP_SAVING 4 |
Map being saved.
Will stop object_remove() from some processing.
#define MAP_STYLE 0x8 |
#define MAP_TYPE_DEFAULT 2 |
#define MAP_TYPE_LEGACY 1 |
Checks if a square is out of the map.
You should really know what you are doing before using this - you should almost always be using out_of_map() instead, which takes into account map tiling.
#define P_NEW_MAP 0x200 |
#define P_NO_ERROR 0x80 |
#define SAVE_ERROR_NOT_IN_MEMORY -10 |
#define SAVE_ERROR_RCREATION -1 |
#define SAVE_ERROR_UCREATION -2 |
#define SAVE_ERROR_URENAME -5 |
#define SAVE_FLAG_NO_REMOVE 2 |
#define SAVE_FLAG_SAVE_UNPAID 1 |
#define SAVE_MODE_INPLACE 1 |
int map_light_on | ( | mapstruct * | m, |
int | x, | ||
int | y | ||
) |
Return the light level at position (X, Y) on map M.
Currently either 1 (lit) or 0 (unlit).
Definition at line 2712 of file map.cpp.
References get_map_from_coord(), GET_MAP_LIGHT, ihypot(), m, and MAX_LIGHT_RADII.
Referenced by monster_stand_in_light_internal().
bool map_path_unique | ( | const char * | path | ) |
Return true if the given map path leads to a unique map.
This is needed to correctly load a map with the MAP_UNIQUE flag set, because there are some contexts in which only a map path is available.
Definition at line 2696 of file map.cpp.
References path().
Referenced by cast_create_town_portal(), enter_exit(), and town_portal_destroy_existing().
void map_reset_swap | ( | mapstruct * | m | ) |
Call this when an in-memory map is used or referenced.
Helps inform which maps to swap.
Definition at line 1762 of file map.cpp.
References m, and MAP_MINTIMEOUT.
Referenced by draw_client_map(), and ready_map_name().
uint32_t map_size | ( | mapstruct * | m | ) |
Calculate map size without intermediate sign extension.
Definition at line 810 of file map.cpp.
References m.
Referenced by allocate_map(), command_style_map_info(), and malloc_info().
Definition at line 2700 of file map.cpp.
References m, and OUT_OF_REAL_MAP.
Basic macro to see if ob2 blocks ob1 from moving onto this space.
Basically, ob2 has to block all of ob1 movement types.
Definition at line 327 of file map.cpp.
References object::move_block, and object::move_type.
const char* const map_layer_name[MAP_LAYERS] |
These correspond to the layer names in map.h - since some of the types can be on multiple layers, names are duplicated to correspond to that layer.
Definition at line 46 of file map.cpp.
Referenced by get_ob_diff(), and while().