-
Notifications
You must be signed in to change notification settings - Fork 1
/
map.h
49 lines (42 loc) · 3.1 KB
/
map.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
const static uint8_t wall_normal_templates[] PROGMEM = {0x00, 0xff, 0xb4, 0xb4, 0x1f, 0xfd, 0x72, 0xe4, 0x50, 0xf1, 0x8d, 0xd4};
const static uint8_t vertices[] PROGMEM = {0x1, 0x3, 0x43, 0x42, 0x41, 0x30, 0x20, 0x10, 0x4, 0x14, 0x10, 0x0, 0x2, 0x13, 0x23, 0xa2, 0xa0, 0x10, 0x1, 0x0, 0x2, 0x12, 0x20, 0x10, 0x2, 0x23, 0x31, 0x10, 0x2, 0x13, 0x32, 0x1, 0x13, 0x32, 0x20, 0x1, 0x2, 0x22, 0x20, 0x30, 0x11, 0x2, 0x3, 0x14, 0x34, 0x50, 0x20, 0x4, 0x44, 0x54, 0x53, 0x41, 0x0, 0x1, 0x11, 0x71, 0x81, 0x80, 0x0, 0x4, 0x44, 0x40, 0x1, 0x21, 0x20, 0x0, 0x2, 0x31, 0x20, 0x1, 0x12, 0x21, 0x10, 0x1, 0x13, 0x20, 0x10, 0x2, 0x11, 0x10, 0x0, 0x1, 0x43, 0x73, 0x70, 0x0, 0x3, 0x33, 0x20, 0x2, 0x3, 0x33, 0x53, 0x83, 0x82, 0x60, 0x10, 0x1, 0x24, 0x64, 0x81, 0x70, 0x0, 0x6, 0x26, 0x23, 0x3, 0x6, 0x17, 0x27, 0x26, 0x20, 0x1, 0x11, 0x10, 0x0, 0x0, 0x3, 0x4, 0x64, 0x60};
const static uint8_t wall_normals[] PROGMEM = {0, 0, 1, 0, 1, 2, 0, 16, 0, 0, 3, 3, 51, 3, 19, 3, 16, 16, 48, 0, 3, 0, 3, 0, 0, 0, 4, 19, 1, 17, 4, 3, 1, 0, 0, 1, 1, 80, 81, 0, 0, 0, 0};
const static uint8_t portals[] PROGMEM = {0x50, 0xa, 0xc0, 0x8, 0x40, 0x28, 0x60, 0x20, 0x68, 0x41, 0xa0, 0xc8, 0x8, 0x21, 0x62, 0x10, 0x0, 0x50, 0x13, 0x89, 0x26, 0x69, 0x20, 0x6a, 0xa8, 0x23, 0xa4, 0xee, 0x20, 0x61, 0xb0, 0xa, 0x60, 0xa9, 0x2b, 0x68, 0x20, 0x6c};
const static uint8_t doors[] PROGMEM = {0x60, 0x0, 0x51, 0x31};
const static segment segments[] PROGMEM = {
// FH CH X Y VC PC DC V N P D
{16, 20, 0, 7, 8, 2, 1, 0, 0, 0, 0},
{16, 20, 1, 3, 4, 2, 1, 8, 0, 3, 1},
{16, 20, 0, 0, 7, 2, 0, 12, 4, 5, 0},
{16, 20, 10, 0, 4, 2, 0, 19, 9, 3, 0},
{16, 20, 11, 0, 4, 2, 0, 23, 11, 3, 0},
{16, 20, 13, 1, 4, 2, 0, 27, 13, 3, 0},
{16, 20, 14, 3, 4, 2, 0, 31, 11, 7, 0},
{16, 20, 15, 5, 4, 2, 0, 35, 0, 7, 0},
{16, 20, 12, 7, 7, 3, 0, 39, 15, 9, 0},
{16, 20, 15, 7, 6, 3, 0, 46, 20, 12, 0},
{16, 20, 4, 9, 6, 3, 0, 52, 23, 15, 0},
{16, 20, 15, 11, 4, 2, 0, 58, 0, 20, 0},
{16, 20, 20, 10, 4, 2, 0, 62, 0, 22, 0},
{16, 20, 22, 9, 4, 2, 0, 66, 26, 7, 0},
{16, 20, 24, 8, 4, 2, 0, 70, 28, 7, 0},
{16, 20, 25, 6, 4, 2, 0, 74, 30, 7, 0},
{16, 20, 26, 5, 4, 2, 0, 78, 0, 7, 0},
{16, 20, 23, 2, 6, 1, 0, 82, 23, 24, 0},
{16, 20, 13, 15, 8, 3, 1, 88, 32, 25, 2},
{16, 20, 4, 10, 6, 3, 0, 96, 36, 28, 0},
{16, 20, 4, 11, 4, 1, 0, 102, 0, 8, 0},
{16, 20, 10, 11, 6, 2, 0, 106, 6, 32, 0},
{16, 20, 12, 17, 4, 2, 0, 112, 0, 34, 0},
{16, 20, 21, 17, 4, 2, 1, 112, 0, 36, 3},
{16, 20, 22, 17, 4, 2, 0, 112, 0, 7, 0},
{16, 20, 23, 17, 4, 2, 0, 112, 0, 7, 0},
{16, 20, 24, 14, 5, 1, 0, 116, 39, 5, 0}
};
#define SEGMENTS_TOUCHED_SIZE 4
uint8_t segments_touched[SEGMENTS_TOUCHED_SIZE];
#ifdef ENABLE_MAP
uint8_t segments_seen[SEGMENTS_TOUCHED_SIZE];
#endif
#define DOOR_COUNT 2
int32_t door_state[DOOR_COUNT];