1 /** @file mapspot.h  Map spot where a Thing will be spawned.
2  *
3  * @authors Copyright (c) 2016-2017 Jaakko Keränen <jaakko.keranen@iki.fi>
4  *
5  * @par License
6  * GPL: http://www.gnu.org/licenses/gpl.html
7  *
8  * <small>This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by the
10  * Free Software Foundation; either version 2 of the License, or (at your
11  * option) any later version. This program is distributed in the hope that it
12  * will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
14  * Public License for more details. You should have received a copy of the GNU
15  * General Public License along with this program; if not, see:
16  * http://www.gnu.org/licenses</small>
17  */
18 
19 #ifndef LIBGAMEFW_MAPSPOT_H
20 #define LIBGAMEFW_MAPSPOT_H
21 
22 #include "libgamefw.h"
23 #include <de/libcore.h>
24 
25 typedef uint32_t gfw_mapspot_flags_t;
26 
27 /*
28  * Universal mapspot flags.
29  * - The least significant byte control the presence of the object.
30  * - The second byte controls the appearance of the object.
31  * - The third byte controls the behavior of the object.
32  */
33 
34 #define GFW_MAPSPOT_SINGLE      0x00000001
35 #define GFW_MAPSPOT_DM          0x00000002
36 #define GFW_MAPSPOT_COOP        0x00000004
37 #define GFW_MAPSPOT_CLASS1      0x00000008
38 #define GFW_MAPSPOT_CLASS2      0x00000010
39 #define GFW_MAPSPOT_CLASS3      0x00000020
40 
41 #define GFW_MAPSPOT_TRANSLUCENT 0x00000100
42 #define GFW_MAPSPOT_INVISIBLE   0x00000200
43 
44 #define GFW_MAPSPOT_DEAF        0x00010000
45 #define GFW_MAPSPOT_DORMANT     0x00020000
46 #define GFW_MAPSPOT_STANDING    0x00040000
47 #define GFW_MAPSPOT_MBF_FRIEND  0x00080000
48 #define GFW_MAPSPOT_STRIFE_ALLY 0x00100000
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 LIBGAMEFW_PUBLIC int gfw_MapSpot_TranslateFlagsToInternal(gfw_mapspot_flags_t mapSpotFlags);
55 
56 LIBGAMEFW_PUBLIC gfw_mapspot_flags_t gfw_MapSpot_TranslateFlagsFromInternal(int internalFlags);
57 
58 #ifdef __cplusplus
59 } // extern "C"
60 #endif
61 
62 #endif // LIBGAMEFW_MAPSPOT_H
63