X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fserver%2Fmap.h;h=9f09c02fcf64df87777e29e9759bde9778bb43e0;hb=ac7521c1d40b86cd7d33cef590353692542fa0a4;hp=5407dafe34942b65f0ce6a1b6570b38baa8b4771;hpb=58486c337a7b1f04311801d902fed41ed3f67315;p=plomrogue diff --git a/src/server/map.h b/src/server/map.h index 5407daf..9f09c02 100644 --- a/src/server/map.h +++ b/src/server/map.h @@ -1,4 +1,8 @@ /* src/server/map.h + * + * This file is part of PlomRogue. PlomRogue is licensed under the GPL version 3 + * or any later version. For details on its copyright, license, and warranties, + * see the file NOTICE in the root directory of the PlomRogue source package. * * Routines to create and navigate game map. */ @@ -7,7 +11,7 @@ #define MAP_H_SERVER #include /* uint8_t */ -#include "../common/yx_uint8.h" /* yx_uint8 */ +struct yx_uint8; @@ -21,10 +25,21 @@ */ extern void remake_map(); -/* Wrapper to mv_yx_in_dir_wrap(), returns 1 if the wrapped function moved "yx" - * within the wrap borders and the map size, else 0. +/* Move "yx" into hex direction "dir". Available hex directions are: 'e' + * (north-east), 'd' (east), 'c' (south-east), 'x' (south-west), 's' (west), 'w' + * (north-west). Returns 1 if the move was legal, else 0. + * + * A move is legal if "yx" ends up in the confines of the map and the original + * wrap space. The latter is left to a neighbor wrap space if "yx" moves beyond + * the minimal (0) or maximal (UINT8_MAX) column or row of possible map space – + * in which case "yx".y or "yx".x will snap to the respective opposite side. The + * current wrapping state is kept between successive calls until a "yx" of NULL + * is passed, in which case the function does nothing but zero the wrap state. + * Successive wrapping may move "yx" several wrap spaces into either direction, + * or return it into the original wrap space. */ extern uint8_t mv_yx_in_dir_legal(char dir, struct yx_uint8 * yx); + #endif