home *** CD-ROM | disk | FTP | other *** search
/ Qu-ake / Qu-ake.iso / qu_ke / editor / 008 / EDMINFO.C < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-08  |  3.1 KB  |  124 lines

  1. /*EdQuake v0.02 source code
  2.   (c) Copyright 1996 Scott Mitting
  3.   email:smitting@netusa1.net
  4.   ----------------------------------
  5.   MAPEDIT.C  -  The heart of EdQuake
  6.         These functions do not work
  7.         they are under developement
  8.  
  9.   __variables:
  10.   __functions:
  11.   ----------------------------------
  12.   the entire source code is under renovation to make it easier
  13.   to understand.  happy coding.
  14. */
  15. #include <math.h>
  16. #include <stdio.h>
  17. #include <stdlib.h>
  18. #include "svgacc.h"
  19. #include "grfx.h"
  20. #include "pak.h"
  21. #include "disk.h"
  22. #include "mapedit.h"
  23. #include "input.h"
  24. #include "ripper.h"
  25. #include "viewer.h"
  26. #include "wadmap.h"
  27. #include "bsp.h"
  28.  
  29. extern void setquakecolors();
  30. extern MouseCursor mymousecursor;
  31.  
  32. mapvertex_t mapvertex[1000];
  33.   mapline_t mapline[1000];
  34.   maproom_t maproom[200];
  35.  
  36. int numvertex=0;
  37. int numlines=0;
  38. int numrooms=0;
  39.  
  40. int curvertex=1;
  41. int curline=1;
  42. int curroom=1;
  43.  
  44. int curmode = 0; //0=rooms 1=line 2=vertex
  45. long mapx=0, mapy=0;
  46. float zoom;
  47. //defaults
  48. int dwalltext=0, dfloortext=0, dceiltext=0;
  49. int dceil=128,dfloor=0;//ceiling
  50. int dtop=128,dbottom=0;
  51. char mapname[54] = "Untitled map";
  52.  
  53. //saves to .eqm ([E]d[Q]uake [M]ap)
  54. void saveeqm(char *filename)
  55. {
  56.     FILE *f;
  57.     int t, t2;
  58.     int version = 0; //0 = no things
  59.     f = fopen(filename, "wb");
  60.     if (!f) return;
  61.     fwrite("EdQuakeMap",10,1,f);
  62.     fwrite(&version,2,1,f);
  63.     fwrite(mapname,52,1,f);
  64.     fwrite(&mapx,4,1,f);
  65.     fwrite(&mapy,4,1,f);
  66.     fwrite(&zoom,4,1,f);
  67.     fwrite(&numvertex,2,1,f);
  68.     for (t = 1; t <= numvertex; t++)
  69.     {
  70.       fwrite(&mapvertex[t].x,4,1,f);
  71.       fwrite(&mapvertex[t].y,4,1,f);
  72.     }
  73.     fwrite(&numlines,2,1,f);
  74.     for (t = 1; t <= numlines; t++)
  75.     {
  76.       fwrite(&mapline[t].v1,2,1,f);
  77.       fwrite(&mapline[t].v2,2,1,f);
  78.       fwrite(&mapline[t].visible,2,1,f);
  79.       fwrite(&mapline[t].texture,2,1,f);
  80.       fwrite(&mapline[t].top,2,1,f);
  81.       fwrite(&mapline[t].bottom,2,1,f);
  82.       fwrite(&mapline[t].hole,2,1,f);
  83.     }
  84.     fwrite(&numrooms,2,1,f);
  85.     for (t = 1; t <= numrooms; t++)
  86.     {
  87.       fwrite(&maproom[t].numsides,2,1,f);
  88.       for (t2 = 1; t2 <= maproom[t].numsides; t2++)
  89.      fwrite(&maproom[t].line[t2],2,1,f);
  90.       fwrite(&maproom[t].ceiling,2,1,f);
  91.       fwrite(&maproom[t].floor,2,1,f);
  92.       fwrite(&maproom[t].ctext,2,1,f);
  93.       fwrite(&maproom[t].ftext,2,1,f);
  94.       fwrite(&maproom[t].cvis,2,1,f);
  95.       fwrite(&maproom[t].fvis,2,1,f);
  96.     }
  97. }
  98.  
  99. void loadeqm(char *filename)
  100. {
  101.     FILE *f;
  102.     char magic[10];
  103.     int t;
  104.     int version; //0 = no things
  105.     f = fopen(filename, "rb");
  106.     if (!f) return;
  107.     fread(magic,10,1,f);
  108.     if (magic != "EdQuakeMap") return;
  109.     fread(&version,2,1,f);
  110.     fread(mapname,52,1,f);
  111.     fread(&mapx,4,1,f);
  112.     fread(&mapy,4,1,f);
  113.     fread(&zoom,4,1,f);
  114.     fread(&numvertex,2,1,f);
  115.     for (t = 1; t <= numvertex; t++)
  116.       fread(&mapvertex[t],8,1,f);
  117.     fread(&numlines,2,1,f);
  118.     for (t = 1; t <= numlines; t++)
  119.       fread(&mapline[t],14,1,f);
  120.     fread(&numrooms,2,1,f);
  121.     for (t = 1; t <= numrooms; t++)
  122.       fread(&maproom[t],54,1,f);
  123. }
  124.