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

📄 layer.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
字号:
///////////////////////////////////////
// Layer.cpp
///////////////////////////////////////
#pragma warning(disable:4786)
#include "layer.h"

//-------------------------------------
// static 
HANDLE	CLayer::s_hHeap	=NULL;
UINT	CLayer::s_uNumAllocsInHeap	=0;

//--------------------------------------------------------------
void * CLayer::operator new(size_t size)
{
	// got heap?
	if (!s_hHeap)
	{
		s_hHeap	=::HeapCreate(0, 0, 0);
		if (!s_hHeap)
			return NULL;
	}
	// alloc mem for new obj
	void* p	=::HeapAlloc(s_hHeap, HEAP_ZERO_MEMORY, size);
	if (p)
	{
		s_uNumAllocsInHeap++;
	}
	
	return p;
}

//--------------------------------------------------------------
void CLayer::operator delete(void* p)
{
	// check param
	if (!s_hHeap || s_uNumAllocsInHeap <= 0)
		return;
	
	// free it...
	if (::HeapFree(s_hHeap, 0, p))
	{
		s_uNumAllocsInHeap--;
	}
	
	// time to destroy heap?
	if (s_uNumAllocsInHeap <= 0)
	{
		if (::HeapDestroy(s_hHeap))
			s_hHeap	=NULL;
	}
}

//--------------------------------------------------------------
BOOL CLayer::IsValidPt(void* p)
{
	if (!s_hHeap || !p)
		return false;
	
	if ((DWORD)p < 0x00010000 || (DWORD)p >= 0x7FFEFFFF)	// user address range from 1M--2G-64k
		return false;
	
	if (::IsBadCodePtr((FARPROC)p))
		return false;
	
	return ::HeapValidate(s_hHeap, 0, p);
}

//--------------------------------------------------------------
CLayer::CLayer()
{
	usTerrain = 0;
	sAltitude = 0;
	usMask = 0;
	//nHeight = 0;
}

//-------------------------------------

CLayer::~CLayer()
{}

//-------------------------------------


⌨️ 快捷键说明

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