Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

IStrikerI

problems loading a q2 bsp-file

This topic is 6226 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hi, i wrote a class for loading a quake2 bsp-file. i tested the class and i think some of the structure members like an edge have wrong data. it is also impossible to render a face. does anyone know what i made wrong or knows a better way of loading a quake2 bsp-file ?? q2bsp.h ---------------------------------------- #include #include class Q2BSP { protected: struct qBSP_Lump { unsigned long offset; unsigned long length; }; struct qBSP_Header { unsigned long magic; unsigned long version; qBSP_Lump lump[19]; }; struct qVertex { float x,y,z; }; struct qEdge { unsigned short v1,v2; }; struct qFace { unsigned short plane; short plane_side; int first_edge; short num_edges; short texture_info; byte lightmap_styles[4]; int lightmap_offset; }; FILE *file1; qBSP_Header header; public: bool OpenBSP(char *); ~Q2BSP(); void LoadVertexLump(); void LoadEdgeLump(); void LoadFaceEdgeLump(); void LoadFaceLump(); qVertex *vertexarray; qEdge *edgearray; unsigned long *faceedgearray; qFace *facearray; unsigned long num_vertices; unsigned long num_edges; unsigned long num_faceedges; unsigned long num_faces; }; ------------eof----------------------------- q2bsp.cpp -------------------------------------------- #include "q2bsp.h" bool Q2BSP::OpenBSP(char *filename) { file1=fopen(filename,"rb"); if(!file1) return false; fseek(file1,0L,SEEK_SET); fread(&header,sizeof(header),1,file1); return true; } Q2BSP::~Q2BSP() { fclose(file1); } void Q2BSP::LoadVertexLump() { fseek(file1,header.lump[2].offset,SEEK_SET); num_vertices=header.lump[2].length/sizeof(qVertex); vertexarray = new qVertex[num_vertices]; for(unsigned long i=0;i,sizeof(qVertex),1,file1); } void Q2BSP::LoadEdgeLump() { fseek(file1,header.lump[11].offset,SEEK_SET); num_edges=header.lump[11].length/sizeof(qEdge); edgearray = new qEdge[num_edges]; for(unsigned long i=0;i

Share this post


Link to post
Share on other sites
Advertisement

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!