📄 bufreader.h
字号:
/*
* ============================================================================
* Name : CBufReader from BufReader.h
* Part of : Game
* Created : 2003-06-16 by Qiu Wei Min
* Description:
* Version :
* Copyright: Gameloft S.A.
* ============================================================================
*/
#ifndef BUFREADER_H
#define BUFREADER_H
//#include "engine.h"
#include "simplememory.h"
// INCLUDES
// CONSTANTS
// CLASS DECLARATION
class CBufReader
{
public:
CBufReader()
{
m_pData = NULL;
m_pCur = NULL;
m_length = -1;
}
CBufReader(void* pData, int len)
{
SYS_ASSERT(pData != NULL);
m_pData = (signed char*)pData;
m_pCur = m_pData;
m_length = len;
}
void CBufReader_init( void * pData, int len)
{
SYS_ASSERT(pData != NULL);
m_pData =(signed char *)pData;
m_pCur = m_pData;
m_length = len;
}
signed char ReadChar(){
SYS_ASSERT(m_pCur < m_pData + m_length);
return *m_pCur++;
}
unsigned char ReadUChar(){
SYS_ASSERT(m_pCur < m_pData + m_length);
return (unsigned char)*m_pCur++;
}
unsigned char ReadString(char *des)
{
int count = (unsigned char)*m_pCur++;
int i;
for (i=0; i<count; i++)
des[i] = *m_pCur++;
des[i] = 0;
return count;
}
unsigned short ReadUShort(){
unsigned short r;
SYS_ASSERT(m_pCur + 2 <= m_pData + m_length);
r = (unsigned short)(((m_pCur[1]&0xff)<<8)|(m_pCur[0]&0xff));
m_pCur += 2;
return r;
}
short ReadShort(){
short r = 0;
SYS_ASSERT(m_pCur + 2 <= m_pData + m_length);
r = (short)(((m_pCur[1]&0xff)<<8)|(m_pCur[0]&0xff));
m_pCur += 2;
return r;
}
unsigned short ReadUShortReverse(){
unsigned short r = (unsigned short)( ((m_pCur[0]&0xff)<<8) | (m_pCur[1]&0xff) );
m_pCur += 2;
return r;
}
short ReadShortReverse(){
short r;
SYS_ASSERT(m_pCur + 2 <= m_pData + m_length);
r = (short)(((m_pCur[0]&0xff)<<8)|(m_pCur[1]&0xff));
m_pCur += 2;
return r;
}
int ReadInt(){
int r;
SYS_ASSERT(m_pCur + 4 <= m_pData + m_length);
r = (int)(((m_pCur[3]&0xff)<<24)|((m_pCur[2]&0xff)<<16)|((m_pCur[1]&0xff)<<8)|(m_pCur[0]&0xff));
m_pCur += 4;
return r;
}
void ReadBlock(void *buf, int sz){
//ASSERT(m_pCur + sz <= m_pData + m_length);
CSimpleMemory::Copy(buf, m_pCur, sz);
m_pCur += sz;
}
void Seek(int pos){
m_pCur = m_pData + pos;
}
signed char *GetCurPointer(){
return m_pCur;
}
protected:
signed char* m_pData;
signed char* m_pCur;
int m_length;
};
#endif
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -