home *** CD-ROM | disk | FTP | other *** search
/ 100 af Verdens Bedste Spil / 100Spil.iso / dos / wolf3d / source / wolfsrc.1 / ID_CA.H < prev    next >
C/C++ Source or Header  |  1993-02-04  |  3KB  |  102 lines

  1. // ID_CA.H
  2. //===========================================================================
  3.  
  4. #define NUMMAPS        60
  5. #define MAPPLANES    2
  6.  
  7. #define UNCACHEGRCHUNK(chunk)    {MM_FreePtr(&grsegs[chunk]);grneeded[chunk]&=~ca_levelbit;}
  8.  
  9. //===========================================================================
  10.  
  11. typedef    struct
  12. {
  13.     long        planestart[3];
  14.     unsigned    planelength[3];
  15.     unsigned    width,height;
  16.     char        name[16];
  17. } maptype;
  18.  
  19. //===========================================================================
  20.  
  21. extern    char        audioname[13];
  22.  
  23. extern    byte         _seg    *tinf;
  24. extern    int            mapon;
  25.  
  26. extern    unsigned    _seg    *mapsegs[MAPPLANES];
  27. extern    maptype        _seg    *mapheaderseg[NUMMAPS];
  28. extern    byte        _seg    *audiosegs[NUMSNDCHUNKS];
  29. extern    void        _seg    *grsegs[NUMCHUNKS];
  30.  
  31. extern    byte        far    grneeded[NUMCHUNKS];
  32. extern    byte        ca_levelbit,ca_levelnum;
  33.  
  34. extern    char        *titleptr[8];
  35.  
  36. extern    int            profilehandle,debughandle;
  37.  
  38. extern    char        extension[5],
  39.             gheadname[10],
  40.             gfilename[10],
  41.             gdictname[10],
  42.             mheadname[10],
  43.             mfilename[10],
  44.             aheadname[10],
  45.             afilename[10];
  46.  
  47. extern long        _seg *grstarts;    // array of offsets in egagraph, -1 for sparse
  48. extern long        _seg *audiostarts;    // array of offsets in audio / audiot
  49. //
  50. // hooks for custom cache dialogs
  51. //
  52. extern    void    (*drawcachebox)        (char *title, unsigned numcache);
  53. extern    void    (*updatecachebox)    (void);
  54. extern    void    (*finishcachebox)    (void);
  55.  
  56. //===========================================================================
  57.  
  58. // just for the score box reshifting
  59.  
  60. void CAL_ShiftSprite (unsigned segment,unsigned source,unsigned dest,
  61.     unsigned width, unsigned height, unsigned pixshift);
  62.  
  63. //===========================================================================
  64.  
  65. void CA_OpenDebug (void);
  66. void CA_CloseDebug (void);
  67. boolean CA_FarRead (int handle, byte far *dest, long length);
  68. boolean CA_FarWrite (int handle, byte far *source, long length);
  69. boolean CA_ReadFile (char *filename, memptr *ptr);
  70. boolean CA_LoadFile (char *filename, memptr *ptr);
  71. boolean CA_WriteFile (char *filename, void far *ptr, long length);
  72.  
  73. long CA_RLEWCompress (unsigned huge *source, long length, unsigned huge *dest,
  74.   unsigned rlewtag);
  75.  
  76. void CA_RLEWexpand (unsigned huge *source, unsigned huge *dest,long length,
  77.   unsigned rlewtag);
  78.  
  79. void CA_Startup (void);
  80. void CA_Shutdown (void);
  81.  
  82. void CA_SetGrPurge (void);
  83. void CA_CacheAudioChunk (int chunk);
  84. void CA_LoadAllSounds (void);
  85.  
  86. void CA_UpLevel (void);
  87. void CA_DownLevel (void);
  88.  
  89. void CA_SetAllPurge (void);
  90.  
  91. void CA_ClearMarks (void);
  92. void CA_ClearAllMarks (void);
  93.  
  94. #define CA_MarkGrChunk(chunk)    grneeded[chunk]|=ca_levelbit
  95.  
  96. void CA_CacheGrChunk (int chunk);
  97. void CA_CacheMap (int mapnum);
  98.  
  99. void CA_CacheMarks (void);
  100.  
  101. void CA_CacheScreen (int chunk);
  102.