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

📄 zlibbrew.cpp

📁 liu7788414
💻 CPP
字号:
/*
* ============================================================================
*  Name     : ZLibBrew
*  Part of  : Game
*  Created  : 2003-09-03 by Zheng Jie Sheng
*  Implementation notes:
*    To decompress from zlib compressed package. Using old packing tool. 
*  Version  :
*  Copyright: Gameloft S.A.
*
* ============================================================================
*/

//#include <aeestdlib.h>
#include "zlibbrew.h"
#include "Sysdef.h"

CZLibBrew::CZLibBrew()
{
	pZlibBuffer = NULL;
	nZlibTotalSize = nZlibAllocSize = 0;
	pZlibBuff2 = NULL;
	nZlibTotalSize2 = nZlibAllocSize2 = 0;
	bNotInitZero = 0;
}

void CZLibBrew::initZlibTempBuff( void* buff, int size, void* buf2, int size2 ) 
{
	pZlibBuffer		= (char*)buff;
	nZlibTotalSize	= size;
	nZlibAllocSize	= 0;
	pZlibBuff2		= (char*)buf2;
	nZlibTotalSize2	= size2;
	nZlibAllocSize2	= 0;
}

void CZLibBrew::freeZlibTempBuff( ) 
{
	nZlibTotalSize = 0;
	nZlibAllocSize = 0;
	nZlibTotalSize2 = 0;
	nZlibAllocSize2 = 0;
}

void* CZLibBrew::brewCalloc( unsigned items, unsigned size ) 
{
	int				askSize = items * size;
	char*			buf;

	askSize = ( askSize + 3 ) & ~3;

	if ( askSize + nZlibAllocSize <= nZlibTotalSize ) 
	{
		buf = pZlibBuffer + nZlibAllocSize;
		nZlibAllocSize += askSize;
		MEMSET( buf, 0, askSize );
		return buf;
	}

	if ( askSize + nZlibAllocSize2 <= nZlibTotalSize2 ) 
	{
		buf = pZlibBuff2 + nZlibAllocSize2;
		nZlibAllocSize2 += askSize;
		MEMSET( buf, 0, askSize );
		return buf;
	}
	SYS_ASSERT(0);
	return NULL;
}

/**
 * on PC, we can used std lib functions for mem operation
 * on Brew, they will be replaced by our own mem functions 
 */
void* CZLibBrew::zcalloc( unsigned items, unsigned size ) 
{
    return brewCalloc( items, size );
}

void CZLibBrew::zcfree( void* ptr )
{
}

void* zcalloc( void* global, unsigned items, unsigned size ) 
{
    return ((CZLibBrew*)global)->zcalloc( items, size );
}
void zcfree( void* global, void* ptr )
{
    ((CZLibBrew*)global)->zcfree(ptr);
}

⌨️ 快捷键说明

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