All the brushes are stored parametrically (type, media, number of sides, pos, rot, size etc. - see below). .Map file contains actual planes coordinates and vectors, I think.
Yes, pretty much. Unstripped mission usually contains both - Brushes and WorldRep. Stripped mission is lacking Brush List info.
Below will help you understand BRLIST chunk in the .mis file.
file from DarkUtils (darkutils09-lib.zip).
Code:
struct DarkDBBrushFace
{
sint16 texture;
uint16 rotation; // 1 = ALIGN_BY_BRUSH
uint16 scale;
uint16 offset[2];
};
struct DarkDBBrush
{
uint16 id;
uint16 time; // time is wierd
sint32 primal; // terrain:shape, room:oid, object:oid, light:light number
sint16 base; // terrain:texture, room:room number, flow:gid, area:active
sint8 type;
uint8 zero1; // unused
Coord position; // center
Coord size; // length/2,width/2,height/2 or brightness,hue,saturation
SCoord rotation; // tx,ty,tz
sint16 cur_face; // selected face
float snap_size; // size of grid to snap to (14=1.0)
uint8 unknown3[18];
uint8 snap_grid; // vertices are snapped to grid
uint8 num_faces; // or type of light
uint8 edge;
uint8 vertex;
uint8 flags; // damn trickery
uint8 group;
uint32 unknown5;
struct DarkDBBrushFace faces[];
// Optional array of struct DarkDBBrushFace
};
#pragma pack(pop)
//
#define BRUSH_SHAPE_MASK 0xFF00
#define BRUSH_SHAPE_CUBE 0x0001
#define BRUSH_SHAPE_DODECAHEDRON 0x0006
#define BRUSH_SHAPE_WEDGE 0x0007
#define BRUSH_SHAPE_CYLINDER 0x0200
#define BRUSH_SHAPE_PYRAMID 0x0400
#define BRUSH_SHAPE_APEXPYRAMID 0x0600
#define BRUSH_ALIGN_VERTICES 0x0000
#define BRUSH_ALIGN_SIDES 0x0100
#define BRUSH_TYPE_SOLID 0
#define BRUSH_TYPE_AIR 1
#define BRUSH_TYPE_WATER 2
#define BRUSH_TYPE_AIR2WATER 3
#define BRUSH_TYPE_FLOOD BRUSH_TYPE_AIR2WATER
#define BRUSH_TYPE_WATER2AIR 4
#define BRUSH_TYPE_EVAPORATE BRUSH_TYPE_WATER2AIR
#define BRUSH_TYPE_SOLID2WATER 5
#define BRUSH_TYPE_SOLID2AIR 6
#define BRUSH_TYPE_AIR2SOLID 7
#define BRUSH_TYPE_WATER2SOLID 8
#define BRUSH_TYPE_BLOCKABLE 9
#define BRUSH_TYPE_ROOM -5
#define BRUSH_TYPE_FLOW -4
#define BRUSH_TYPE_OBJECT -3
#define BRUSH_TYPE_AREA -2
#define BRUSH_TYPE_LIGHT -1
#define BRUSH_LIGHT_OMNI 0
#define BRUSH_LIGHT_SPOT 1
#define BRUSH_AREA_ACTIVE 1
#define BRUSH_AREA_MEONLY 2
#define BRUSH_FLAG_ALIGN_BY_SIDES 0
#define BRUSH_FLAG_ALIGN_BY_VERTICES 4
#define BRUSH_FLAG_ANCHOR_VERTEX 4
#define BRUSH_FLAG_ANCHOR_EDGE 6
#define BRUSH_FLAG_LIGHT_SPOT 0
#define BRUSH_FLAG_LIGHT_OMNI 1