itemmap.cpp

来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 122 行

CPP
122
字号
////////////////////////////////////////////////////////////////////////////////// Filename : ItemMap.h// Written by : 辫己刮// Description : // 努扼捞攫飘俊辑 啊廉柯 家飘等 酒捞袍狼 甘捞促.////////////////////////////////////////////////////////////////////////////////#include "ItemMap.h"#include "Inventory.h"#include "Item.h"#define TWO_BY_TWO_PACKING_SIZE 12////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ItemMap::ItemMap() 	throw(){	__BEGIN_TRY	m_Num2x2     = 0;	m_Num2x2Temp = 0;	__END_CATCH}////////////////////////////////////////////////////////////// 酒捞袍 按眉 磊眉甫 瘤快扁甫 盔窍瘤 臼绰促搁,// 馆靛矫 clearAll()甫 龋免茄 饶俊 何甫 巴.////////////////////////////////////////////////////////////ItemMap::~ItemMap()	throw(){	__BEGIN_TRY	clear();	__END_CATCH}////////////////////////////////////////////////////////////// 氢惑等 沥纺阑 困秦 荤侩窍绰 2x2 酒捞袍狼 肮荐 技泼////////////////////////////////////////////////////////////void ItemMap::set2x2(int n) 	throw(){	__BEGIN_TRY	// 2x2 酒捞袍捞 3俺啊 乐阑 版快, 	// 快急 鉴困啊 力老 臭促. 弊贰辑 3俺 窜困肺	// 函荐 蔼阑 技泼秦霖促.	m_Num2x2 = n;	m_Num2x2Temp = (n/3)*3;	__END_CATCH}////////////////////////////////////////////////////////////// 酒捞袍阑 甘俊促 歹茄促.////////////////////////////////////////////////////////////bool ItemMap::addItem(Item* pItem)	throw(){	__BEGIN_TRY	ulonglong key = getKey(pItem);	ITEM_MAP::const_iterator itr = find(key);		if (itr == end()) // 绝栏搁 眠啊茄促.	{		insert(ITEM_MAP::value_type(key, pItem));		return true;	}	return false;	__END_CATCH}////////////////////////////////////////////////////////////// 酒捞袍阑 沥纺窍扁 困茄 虐甫 父电促.//// key绰 8 byte捞绊 惑困byte何磐..//// 4 Byte : gridWidth* gridHeight// 4 Byte : ObjectID//// 肺 钎泅等促.////////////////////////////////////////////////////////////ulonglong ItemMap::getKey(Item* pItem)	throw(){	__BEGIN_TRY	ObjectID_t objectID   = pItem->getObjectID();	int        gridWidth  = pItem->getVolumeWidth();	int        gridHeight = pItem->getVolumeHeight();	int        gridSize   = gridWidth* gridHeight;	// 2x2 酒捞袍阑 东户栏肺 快急鉴困甫 力老 臭霸 秦霖促.	if (gridSize == 4)	{		if (m_Num2x2Temp > 0)		{			m_Num2x2Temp--;			gridSize = TWO_BY_TWO_PACKING_SIZE;		}	}	gridSize = 0xFF - gridSize;	ulonglong  key = gridSize;	key = (key << 32) | objectID;	return key;	__END_CATCH}

⌨️ 快捷键说明

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