about summary refs log tree commit diff
path: root/docs/articles/map_format.txt
blob: 7583a5b7b568030ce5e8031855a453682600a564 (plain)
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Title: Map File Format

Group: Structure
(start code)
int ID // should be "MAPP"
int version // should be 2
int size
int swaplen
	
int num_item_types
int num_items
int num_raw_data
	
int item_size
int data_size

types {
	int typeid
	int start
	int num
} * (num_item_types)

item_offsets {
	int offset
} * (num_items)
	
raw_data_offsets {
	int offset
} * (num_raw_data)

item {
	int type_and_id
	int size
	datai {
		int data
	} * (size/4)
} * (num_items)

raw_data {
	byte d
} * X
(end)

Notes:
	* swaplen tells how much of the data that should be swapped
	* types.start is an index into offsets
	* item.size must be a multiple of 4
	* the types must be sorted by type id
	* special typeid of 0xffff means raw data, and there fore should always come last

Could change:
	* item.size could be removed

Section: Registered Item Types

Group: Image (0x8010)
(start code)
image {
	int width
	int height
	int raw_data_index
}

pixel_data {
	byte r
	byte g
	byte b
	byte a
} * (width * height)
(end)

Group: Tilemap (0x8020)
(start code)
tilemap {
	int image
	int width
	int height
	int x
	int y
	int scale
	int raw_data_index
}

data {
	byte data
} * (width * height)
(end)

Group: Collision (0x8030)
(start code)
collision {
	int width
	int height
	int raw_data_index
}

data {
	byte data
} * (width * height)
(end)