Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <string.h>
  4. #include "cubemap.h"
  5.  
  6. #ifndef __CUBEMAP_H
  7. #define __CUBEMAP_H
  8. #include <zlib.h>
  9. typedef unsigned char uchar;
  10.  
  11. struct ogzHeader             // map file format header
  12. {
  13.     char magic[4];              // "OCTA"
  14.     int version;                // any >8bit quantity is little endian
  15.     int headersize;             // sizeof(header)
  16.     int worldsize;
  17.     int numents;
  18.     int numpvs;
  19.     int lightmaps;
  20.     int lightprecision, lighterror, lightlod;
  21.     uchar ambient;
  22.     uchar watercolour[3];
  23.     uchar blendmap;
  24.     uchar lerpangle, lerpsubdiv, lerpsubdivsize;
  25.     uchar bumperror;
  26.     uchar skylight[3];
  27.     uchar lavacolour[3];
  28.     uchar waterfallcolour[3];
  29.     uchar reserved[10];
  30.     char maptitle[128];
  31. };
  32.  
  33. class SauerMap
  34. {
  35.     public:
  36.         SauerMap(char *);
  37.         void PrintMapData();
  38.         char *GetMagic();
  39.  
  40.     private:
  41.         ogzHeader header;
  42.         gzFile MapFile;
  43. };
  44. #endif
  45.  
  46. SauerMap::SauerMap(char *filename)
  47. {
  48.     MapFile = gzopen(filename, "r");
  49.     if(!MapFile)
  50.     {
  51.         printf("ERROR: Failed to load \"%s\"\n", filename);
  52.         return;
  53.     }
  54.     gzread(MapFile, &header, sizeof(ogzHeader));
  55. }
  56.  
  57. void SauerMap::PrintMapData()
  58. {
  59.     printf("header %s\n",header.magic);
  60.     printf("version %i\n", header.version);
  61.     printf("headersize %i\n", header.headersize);
  62.     printf("worldsize %i\n", header.worldsize);
  63.     printf("numents %i\n", header.numents);
  64.     printf("numpvs %i\n", header.numpvs);
  65.     printf("lightmaps %i\n", header.lightmaps);
  66.     printf("blendmap %i\n", header.blendmap);
  67.     printf("lightprecision %i\n", header.lightprecision);
  68.     printf("lighterror %i\n", header.lighterror);
  69.     printf("lightlod %i\n", header.lightlod);
  70.     printf("maptitle %s\n", header.maptitle);
  71. }
  72.  
  73. char *SauerMap::GetMagic()
  74. {
  75.     return header.magic;
  76. };
  77.  
  78. int main(int argc, char *argv[])
  79. {
  80.     if(argc > 1){
  81.         SauerMap ch(argv[1]);
  82.         if(strcmp(ch.GetMagic(),"OCTA"))
  83.         {
  84.             ch.PrintMapData();
  85.             printf("SUCCESS %s is a cube2 map!\n", argv[1]);
  86.         }else printf("ERROR: %s is not a valid Cube 2 map\n", argv[1]);
  87.     }else printf("ERROR: Usage c2mapreader.exe <mapname>\n");
  88.     return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement