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

📄 mbinary.cpp

📁 这是一个用BREW和VC++开发的暴力摩托游戏,与大家一同分享.
💻 CPP
字号:
#include "MBinary.h"

CMBinary *CMBinary::createFrom() {
/*
//	return value : 汗荤登绢 父甸绢龙 货 按眉
*/
	return createFrom(this);
}

CMBinary *CMBinary::createFrom(CMBinary *pSrc) {
/*
//	pSrc : 汗荤且 家胶 按眉
//	retrurn value : 汗荤登绢 父甸绢龙 货 按眉
*/
	int size = pSrc->getSize();
	byte *buffer = (byte *)MALLOC(sizeof(byte) * size);
	MEMCPY(buffer, pSrc->getData(), size);
	return new CMBinary(buffer, size);
}

void CMBinary::attachFrom(const byte *src, int size, boolean tail) {
/*
//	pSrc : 汗荤秦棵 盔夯 滚欺
//	size : 滚欺俊 甸绢 乐绰 单捞磐狼 农扁
//	tail : 缔何盒俊 汗荤且 巴牢瘤 菊何盒俊 汗荤且 巴牢瘤狼 咯何
*/	
	byte *buffer;
	const byte *p1,*p2;
	int s1, s2;

	buffer = (byte *)MALLOC( sizeof(byte) * ( getSize() + size ) );

	if ( tail ) {
		p1 = getData();
		s1 = getSize();
		p2 = src;
		s2 = size;
	} else {
		p1 = src;
		s1 = size;
		p2 = getData();
		s2 = getSize();
	}


	MEMCPY(buffer, p1, s1 );
//	DBGPRINTF("size = %d %d",p2,s2);
	MEMCPY(buffer+s1, p2, s2);

	size_ = s1 + s2;
	freeBinary();
	dataOrigin_ = buffer;
	realData_ = buffer;
}

void CMBinary::attachFrom(CMBinary *pSrc, boolean tail) {
/*
//	pSrc : 汗荤秦棵 盔夯 按眉
//	tail : 缔何盒俊 汗荤且 巴牢瘤 菊何盒俊 汗荤且 巴牢瘤狼 咯何
*/	
	attachFrom(pSrc->getData(), pSrc->getSize(), tail);
}

void CMBinary::attachTo(CMBinary *pTrg, boolean tail) {
/*
//	pTrg : 汗荤窍霸瞪 格利 按眉
//	tail : 缔何盒俊 汗荤且 巴牢瘤 菊何盒俊 汗荤且 巴牢瘤狼 咯何
*/
	pTrg->attachFrom(this, tail);
}

void CMBinary::writeFrom(const byte *src, int trgOffset, int srcOffset, int len) {
/*
// src : 盔夯 滚欺
// trgOffset : 镜 困摹
// srcOffset : 盔夯 滚欺俊辑 佬阑 困摹
// len : 镜 官捞飘 荐
*/
	MEMCPY(getData()+trgOffset, src+srcOffset, len);
}

void CMBinary::writeFrom(CMBinary *pSrc, int trgOffset, int srcOffset, int len) {
/*
// pSrc : 盔夯 滚欺
// trgOffset : 镜 困摹
// srcOffset : 盔夯 滚欺俊辑 佬阑 困摹
// len : 镜 官捞飘 荐
*/
	writeFrom(pSrc->getData(), trgOffset, srcOffset, len);
}

void CMBinary::set(void *binaryData) {
/*
// binaryData : LoadResData 俊 狼秦 肺靛等 单捞磐 器牢磐
*/

	dataOrigin_ = (byte *)binaryData;
	realData_ = dataOrigin_ + (*dataOrigin_);
	size_ = CMTool::BytesToIntLittleEndian(realData_,4)+4;

	truncateHead(4);
}

void CMBinary::set(byte *pureData, uint32 size) {
/*
// pureData : 角力肺 荤侩窍霸瞪 单捞鸥 ( 抗. 拘绵秦力 饶 单捞磐 )
// size : 单捞磐狼 农扁
*/
	dataOrigin_ = pureData;
	realData_ = pureData;

	size_ = size;
}

void CMBinary::freeBinary() {
	FREE(dataOrigin_);
}


void CMBinary::truncateHead(int byte) {
/*
//	byte : 磊福绊磊 窍绰 官捞飘荐
*/
	realData_ += byte;
	size_ -= byte;
}

void CMBinary::truncateTail(int byte) {
/*
//	byte : 磊福绊磊 窍绰 官捞飘荐
*/
	size_ -= byte;
}

void CMBinary::resizeBuffer(uint32 newSize) {
	uint32 smallSize;
	byte *buffer;

	if ( newSize > size_ ) 
		smallSize = size_;
	else
		smallSize = newSize;
	
	buffer = (byte *)MALLOC(sizeof(byte) * newSize);
	if ( smallSize > 0 ) {
		MEMCPY(buffer, getData(), smallSize);
	}

	if ( newSize > smallSize ) {
		MEMSET(buffer+smallSize, 0, newSize-smallSize);
	}
	
	freeBinary();
	dataOrigin_ = buffer;
	realData_ = buffer;
	size_ = newSize;
}


byte *CMBinary::getData() {
	return realData_; 
}

uint32 CMBinary::getSize() {
	return size_;
}

⌨️ 快捷键说明

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