-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathflr-floor.mif
More file actions
169 lines (167 loc) · 3.04 KB
/
flr-floor.mif
File metadata and controls
169 lines (167 loc) · 3.04 KB
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
//===================================================================
//
// Floor (.flr) Example Template
//
// @author Aconite
// @since SWG Source 2022
// @see sharedCollision/FloorMesh.cpp
// @see sharedPathfinding/SimplePathGraph.cpp
//
//===================================================================
#pragma extension "flr"
form "FLOR"
{
// version form, 0006 is the latest
form "0006"
{
chunk "VERT"
{
// vertex count
int32 0
// then, for each vertex, a float vector (x, y, z)
float 0 // x
float 0 // y
float 0 // z
}
chunk "TRIS"
{
// triangle count
int32 0
// then, for each triangle:
// triangle normal as float vector (x, y, z)
float 0 // x
float 0 // y
float 0 // z
// then, the edge type for the three edges of the tri
// where uncrossable = 0, crossable = 1, wall base = 2, wall top = 3
// edge 0
uint8 0
// edge 1
uint8 0
// edge 2
uint8 0
// is fallthrough (0/1)
int8 0
// part tag
int32 0
// portal ID for edge 0
int32 0
// portal ID for edge 1
int32 0
// portal ID for edge 2
int32 0
}
// box tree, if there's > 10 triangles
form "BTRE"
{
// verion tag, 0000 is only version
form "0000"
{
chunk "NODS"
{
// node count
int32 0
// for each node
// max float vector
float 0 // x
float 0 // y
float 0 // z
// min float vector
float 0 // x
float 0 // y
float 0 // z
// index
int32 0
// user id
int32 0
// index A
int32 0
// index B
int32 0
}
}
}
chunk "BEDG"
{
// edge count
int32 0
// for each edge:
// triangle id
int32 0
// edge id
int32 0
// is crossable (0/1)
int8 0
}
// path graph factory
form "PGRF"
{
// version 0001
form "0001"
{
chunk "META"
{
// path graph type (cell = 0; building = 1; city = 2; none = 3)
int32 3
}
// path nodes
chunk "PNOD"
{
// count of nodes
int32 0
// for each of the above count
// index
int32 0
// id
int32 0
// key
int32 0
// path node type
// cell portal = 0; cell waypoint = 1; cell poi = 2; building entrance = 3; building cell = 4; building portal = 5;
// city building entrance = 6; city waypoint = 7; city poi = 8; city building = 9; city entrance = 10;
// building cell part = 11; invalid = 12
int32 0
// position (float vector)
float 0 // x
float 0 // y
float 0 // z
// radius
float 0
}
// path edges
chunk "PEDG"
{
// count of edges
int32 0
// for each of the above count
// index A
int32 0
// index B
int32 0
// lane width right
float 0
// lane width left
float 0
}
// edge counts
chunk "ECNT"
{
// count
int32 0
// for each of the above count
// byte
uint8 0
}
// edge starts
chunk "ESTR"
{
// count
int32 0
// for each of the above count
// byte
uint8 0
}
}
}
}
}