⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 z_zone.h

📁 The source code of Doom legacy for windows
💻 H
字号:
// Emacs style mode select   -*- C++ -*-//-----------------------------------------------------------------------------//// $Id: z_zone.h,v 1.9 2001/03/13 22:14:20 stroggonmeth Exp $//// Copyright (C) 1993-1996 by id Software, Inc.// Portions Copyright (C) 1998-2000 by DooM Legacy Team.//// This program is free software; you can redistribute it and/or// modify it under the terms of the GNU General Public License// as published by the Free Software Foundation; either version 2// of the License, or (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.////// $Log: z_zone.h,v $// Revision 1.9  2001/03/13 22:14:20  stroggonmeth// Long time no commit. 3D floors, FraggleScript, portals, ect.//// Revision 1.8  2000/11/02 17:50:10  stroggonmeth// Big 3Dfloors & FraggleScript commit!!//// Revision 1.7  2000/10/08 13:30:01  bpereira// no message//// Revision 1.6  2000/10/04 16:19:24  hurdler// Change all those "3dfx names" to more appropriate names//// Revision 1.5  2000/10/02 18:25:46  bpereira// no message//// Revision 1.4  2000/07/01 09:23:49  bpereira// no message//// Revision 1.3  2000/04/30 10:30:10  bpereira// no message//// Revision 1.2  2000/02/27 00:42:11  hurdler// fix CR+LF problem//// Revision 1.1.1.1  2000/02/22 20:32:32  hurdler// Initial import into CVS (v1.29 pr3)////// DESCRIPTION://      Zone Memory Allocation, perhaps NeXT ObjectiveC inspired.//      Remark: this was the only stuff that, according//       to John Carmack, might have been useful for//       Quake.////---------------------------------------------------------------------#ifndef __Z_ZONE__#define __Z_ZONE__#include <stdio.h>//// ZONE MEMORY// PU - purge tags.// Tags < 100 are not overwritten until freed.#define PU_STATIC               1      // static entire execution time#define PU_SOUND                2      // static while playing#define PU_MUSIC                3      // static while playing#define PU_DAVE                 4      // anything else Dave wants static#define PU_HWRPATCHINFO         5      // Hardware GlidePatch_t struct for OpenGl/Glide texture cache#define PU_HWRPATCHCOLMIPMAP    6      // Hardware GlideMipmap_t struct colromap variation of patch#define PU_LEVEL               50      // static until level exited#define PU_LEVSPEC             51      // a special thinker in a level#define PU_HWRPLANE            52// Tags >= PU_PURGELEVEL are purgable whenever needed.#define PU_PURGELEVEL         100#define PU_CACHE              101#define PU_HWRCACHE           102      // 'second-level' cache for graphics                                       // stored in hardware format and downloaded as needed//#define ZDEBUGvoid    Z_Init (void);void    Z_FreeTags (int lowtag, int hightag);void    Z_DumpHeap (int lowtag, int hightag);void    Z_FileDumpHeap (FILE *f);void    Z_CheckHeap (int i);void    Z_ChangeTag2 (void *ptr, int tag);// returns number of bytes allocated for one tag typeint     Z_TagUsage (int tagnum);void    Z_FreeMemory (int *realfree,int *cachemem,int *usedmem,int *largefreeblock);#ifdef ZDEBUG#define Z_Free(p) Z_Free2(p,__FILE__,__LINE__)void    Z_Free2 (void *ptr,char *file,int line);#define Z_Malloc(s,t,p) Z_Malloc2(s,t,p,0,__FILE__,__LINE__)#define Z_MallocAlign(s,t,p,a) Z_Malloc2(s,t,p,a,__FILE__,__LINE__)void*   Z_Malloc2 (int size, int tag, void *ptr, int alignbits, char *file,int line);#elsevoid    Z_Free (void *ptr);void*   Z_MallocAlign(int size,int tag,void* user,int alignbits);#define Z_Malloc(s,t,p) Z_MallocAlign(s,t,p,0)#endifchar *Z_Strdup(const char *s, int tag, void **user);typedef struct memblock_s{    int                 size;   // including the header and possibly tiny fragments    void**              user;   // NULL if a free block    int                 tag;    // purgelevel    int                 id;     // should be ZONEID#ifdef ZDEBUG    char             *ownerfile;    int               ownerline; #endif    struct memblock_s*  next;    struct memblock_s*  prev;} memblock_t;//// This is used to get the local FILE:LINE info from CPP// prior to really call the function in question.//#ifdef PARANOIA#define Z_ChangeTag(p,t) \{ \      if (( (memblock_t *)( (byte *)(p) - sizeof(memblock_t)))->id!=0x1d4a11) \          I_Error("Z_CT at "__FILE__":%i",__LINE__); \      Z_ChangeTag2(p,t); \};#else#define Z_ChangeTag(p,t)  Z_ChangeTag2(p,t)#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -