-
Notifications
You must be signed in to change notification settings - Fork 0
/
aoc-builtin-rms.h
58 lines (51 loc) · 1.64 KB
/
aoc-builtin-rms.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#ifndef _AOC_BUILTIN_RMS_H
#define _AOC_BUILTIN_RMS_H
#include <stddef.h>
#define AOC_BUILTIN_RMS_VERSION "0.6.3"
typedef struct TerrainOverrides {
int terrains[50];
} TerrainOverrides;
typedef enum CustomMapType {
Standard = 0,
RealWorld = 1,
Custom = 2,
CustomSection = 4
} CustomMapType;
typedef struct CustomMap {
/* Internal ID of the map--stored as an int but many places in game assume
* it's a single byte so this should not exceed 255 */
int id;
/* Internal name of the map */
char* name;
/* String ID containing the localised name of the map. */
int string;
/* Hover description of the map */
int description;
/* Constant name for this map for use in AI rules */
char* ai_const_name;
/* Symbol name for this map for use in AI preprocessing statements */
char* ai_symbol_name;
/* DRS ID of the map */
int drs_id;
/* Kind of map (standard/real world) */
CustomMapType type;
/* DRS ID of the scenario if a real world map (not yet supported) */
int scx_drs_id;
/* Custom terrain texture IDs */
TerrainOverrides terrains;
} CustomMap;
typedef struct MapSection {
/* String ID containing the localised name of the map style. */
int name;
/* ID of the default map selection for this style. */
int default_map;
/* Prefix for AI symbols for this style. For example, "SPECIAL-MAP" defines
* "SPECIAL-MAP-SNAKE-PIT". */
char* ai_symbol_prefix;
/* Prefix for AI constants for this style. For example, "special-map" defines
* "special-map-snake-pit". */
char* ai_const_prefix;
} MapSection;
void aoc_builtin_rms_init(MapSection*, size_t, CustomMap*, size_t);
void aoc_builtin_rms_deinit();
#endif