BSP结构文件分析
2007-08-03 10:59
525 查看
一直都想把Hl2的BSP的文件给分析分析,之前也尝试过很多次,可一直进展缓慢,昨天又看了一下一个BSPLoad的源码,终于知道是个什么概念了…………
头文件中包含:BSP文件的版本号等信息.
struct dheader_t
...{
int ident;
int version;
lump_t lumps[HEADER_LUMPS];
int mapRevision; // the map's revision (iteration, version) number (added BSPVERSION 6)
};
这个结构体包含以下信息:
ident BSP文件类型(id的IBSP, Valve的VBSP)
version 版本信息
lump_t 数据块信息数组
mapRevision 地图修改信息
lump_t结构体如下:
struct lump_t
...{
int fileofs, filelen;
int version; // default to zero
char fourCC[4]; // default to ( char )0, ( char )0, ( char )0, ( char )0
};
fileofs 偏移位置,也就是在文件中的起始位置
filelen 长度
version 版本
fourCC[4] 4位字符…………没有太明白它的含义,读取出来都是0
Lump数据结构对应表
相关的宏定义在:BSPFILE.H文件中,加载对应的结构体信息在:bsplib.cpp的LoadBSPFile函数中可以找到…………:)
头文件中包含:BSP文件的版本号等信息.
struct dheader_t
...{
int ident;
int version;
lump_t lumps[HEADER_LUMPS];
int mapRevision; // the map's revision (iteration, version) number (added BSPVERSION 6)
};
这个结构体包含以下信息:
ident BSP文件类型(id的IBSP, Valve的VBSP)
version 版本信息
lump_t 数据块信息数组
mapRevision 地图修改信息
lump_t结构体如下:
struct lump_t
...{
int fileofs, filelen;
int version; // default to zero
char fourCC[4]; // default to ( char )0, ( char )0, ( char )0, ( char )0
};
fileofs 偏移位置,也就是在文件中的起始位置
filelen 长度
version 版本
fourCC[4] 4位字符…………没有太明白它的含义,读取出来都是0
宏名 | 数据结构 |
LUMP_MODELS | dmodel_t |
LUMP_VERTEXES | dvertex_t |
LUMP_PLANES | dplane_t |
LUMP_NODES | dnode_t |
LUMP_TEXINFO | texinfo |
LUMP_TEXDATA | dtexdata_t |
LUMP_DISPINFO | g_dispinfo |
LUMP_DISP_VERTS | g_DispVerts |
LUMP_DISP_TRIS | g_DispTris |
LUMP_DISP_LIGHTMAP_SAMPLE_POSITIONS | g_DispLightmapSamplePositions |
LUMP_FACE_MACRO_TEXTURE_INFO | g_FaceMacroTextureInfos |
LUMP_FACES | dface_t |
LUMP_FACES_HDR | dface_t |
LUMP_PRIMITIVES | dprimitive_t |
LUMP_PRIMVERTS | dprimvert_t |
LUMP_PRIMINDICES | unsigned short |
LUMP_ORIGINALFACES | dface_t |
LUMP_LEAFFACES | dleaffaces[0] |
LUMP_LEAFBRUSHES | dleafbrushes[0] |
LUMP_SURFEDGES | dsurfedges[0] |
LUMP_EDGES | dedge_t |
LUMP_BRUSHES | dbrush_t |
LUMP_BRUSHSIDES | dbrushside_t |
LUMP_AREAS | darea_t |
LUMP_AREAPORTALS | dareaportal_t |
LUMP_VISIBILITY | 1 |
LUMP_LIGHTING | dlightdataLDR |
LUMP_LIGHTING_HDR | dlightdataHDR |
LUMP_LEAF_AMBIENT_LIGHTING | g_LeafAmbientLightingLDR |
LUMP_LEAF_AMBIENT_LIGHTING_HDR | g_LeafAmbientLightingHDR |
LUMP_ENTITIES | dentdata |
LUMP_WORLDLIGHTS | dworldlight_t |
LUMP_WORLDLIGHTS_HDR | dworldlight_t |
LUMP_LIGHTMAPPAGES | g_dLightmapPages |
LUMP_LIGHTMAPPAGEINFOS | g_dLightmapPageInfos |
LUMP_PORTALS | dportal_t |
LUMP_CLUSTERS | dcluster_t |
LUMP_LEAFWATERDATA | dleafwaterdata_t |
LUMP_PORTALVERTS | unsigned short |
LUMP_CLUSTERPORTALS | unsigned short |
LUMP_PHYSCOLLIDE | (void**)&g_pPhysCollide |
LUMP_VERTNORMALS | g_vertnormals[0] |
LUMP_VERTNORMALINDICES | g_vertnormalindices[0] |
LUMP_CLIPPORTALVERTS | g_ClipPortalVerts[0] |
LUMP_CUBEMAPS | g_CubemapSamples[0] |
LUMP_TEXDATA_STRING_DATA | g_TexDataStringData |
LUMP_TEXDATA_STRING_TABLE | g_TexDataStringTable |
LUMP_OVERLAYS | g_Overlays[0] |
LUMP_WATEROVERLAYS | g_WaterOverlays[0] |
LUMP_MAP_FLAGS | flags_lump |
LUMP_LEAFMINDISTTOWATER | g_LeafMinDistToWater[0] |
LUMP_PAKFILE | ( void ** )&pakbuffer |
LUMP_LEAFS | dleaf_t |
相关文章推荐
- BSP结构文件分析
- 【转】PNG文件结构分析(上:了解PNG文件存储格式)
- 代码分析windows下PE文件格式结构,并附带PE文件格式详细图解
- FLV文件结构分析(转载加修改)
- 分析FBReader源码(二)---文件结构及基本框架梳理
- 文件系统结构分析
- 硬盘物理结构和FAT文件结构分析(一)
- PNG文件结构分析之二(在手机上生成PNG文件)
- WinCE BSP工程文件pbcxml分析
- 使用TFileStream读取文件,分析自定义结构的数据文件。
- PNG文件结构分析(上:了解PNG文件存储格式)
- Ogre数据文件结构分析
- BSP中的CEC文件分析
- Webservice —> WSDL文件结构分析
- torcs源码分析--(2)关键文件及结构
- Peercast源代码文件结构分析
- Linux MQ中间件/var/mqm文件系统结构与错误日志分析
- 【开发工具】用cinclude2dot.pl及graphviz分析头文件包含结构
- Class文件结构分析
- 对Oracle导出文件错误和DMP文件结构的分析,EXP-00008: 遇到 ORACLE 错误 904 ORA-00904: "MAXSIZE": invalid identifier