📄 zlibbrew.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 + -