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

📄 itemmanager.h

📁 墨香最新私服
💻 H
字号:
// ItemManager.h: interface for the CItemManager class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_ITEMMANAGER_H__60209143_2AB6_46C5_A79E_4307FAFE0986__INCLUDED_)
#define AFX_ITEMMANAGER_H__60209143_2AB6_46C5_A79E_4307FAFE0986__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Item.h"
#include "ItemShow.h"
#include "ItemGround.h"
#include "ItemCalc.h"
#include "IndexGenerator.h"
#include "MugongBase.h"

class CDealDialog;
class CExchangeDialog;
class CMixDialog;
class CRecvExchangeDialog;
class ITEM_OPTION_INFO;

class cIcon;
class cImage;

#define ITEMMGR USINGTON(CItemManager)


//---for item tooltip
struct TOOLTIP_TEXT
{
	TOOLTIP_TEXT() { strToolTip = NULL; pNext = NULL; }
	char*			strToolTip;
	TOOLTIP_TEXT*	pNext;
};



class CItemManager  
{
	CItemCalc m_ItemCalc;

	CYHHashTable<CItem> m_ItemHash;

	CYHHashTable<ITEM_INFO> m_ItemInfoList;

	CYHHashTable<TOOLTIP_TEXT> m_ItemToolTipTextList;
	CYHHashTable<ITEM_OPTION_INFO> m_ItemOptionList;

	CIndexGenerator m_IconIndexCreator;
	BOOL			m_bAddPrice;

public:
//	//MAKESINGLETON(CItemManager)

	CItemManager();
	virtual ~CItemManager();
	
	void InitItemOption(ITEM_OPTION_INFO * pInfo, WORD num);
	void AddItemOption(ITEM_OPTION_INFO * pInfo);
	ITEM_OPTION_INFO * GetItemOption(DWORD dwOptionIdx);
	void RemoveItemOption(DWORD dwOptionIdx, ITEM_OPTION_INFO * pItemOptionInfoOut = NULL );

	void Release();

	CItem* MakeNewItem(ITEMBASE* pBaseInfo, char* strKind);
	
	void ItemDelete(CItem* pItem);
	
	cImage* GetIconImage(WORD ItemIdx, cImage * pImageGet);
	CItem* GetItem(DWORD dwDBIdx);
	void SetToolTipIcon(cIcon * pIcon, ITEM_OPTION_INFO * pOptionInfo=NULL);

	void NetworkMsgParse(BYTE Protocol,void* pMsg);

	

	void MoveItem( MSG_ITEM_MOVE_ACK * pMsg );
	void DivideItem(ITEMOBTAINARRAY * pMsg );
/*	
	void MoveItemToMunpa( MSG_ITEM_MUNPA_MOVE_SYN* pMsg );
	void MoveItemToPyoguk(MSG_ITEM_MUNPA_MOVE_SYN* pMsg);
*/

	void MoveItemToMunpa( MSG_ITEM_MOVE_ACK* pMsg );
	void MoveItemToGuild( MSG_ITEM_MOVE_ACK* pMsg );
	void MoveItemToPyoguk( MSG_ITEM_MOVE_ACK* pMsg );

	
	void CombineItem( MSG_ITEM_COMBINE_ACK * pMsg );
//	void DivideItem( MSG_ITEM_DIVIDE_ACK * pMsg );
	void DeleteItem( POSTYPE absPos, CItem** ppItemOut, ITEM_OPTION_INFO * pItemOptionInfoOut=NULL );
	BOOL AddItem(CItem* pItem);
	
//	void GetYoungyakItemToolTip(char * tooltip, int lens, ITEM_INFO * pInfo);
//	void GetMugongItemToolTip(char * tooltip, int lens, ITEM_INFO * pInfo);
//	void GetEquipItemToolTip(char * tooltip, int lens, ITEM_INFO * pInfo);
//	void GetExtraItemToolTip(char * tooltip, int lens, ITEM_INFO * pInfo);

	void SetYoungyakItemToolTip( cIcon * pIcon, ITEM_INFO * pInfo);
	void SetMugongItemToolTip( cIcon * pIcon, ITEM_INFO * pInfo);
	void SetEquipItemToolTip( cIcon * pIcon, ITEM_INFO * pInfo, ITEM_OPTION_INFO * pOptionInfo=NULL);
	void SetExtraItemToolTip( cIcon * pIcon, ITEM_INFO * pInfo);

	
	BYTE GetTableIdxForAbsPos(POSTYPE absPos);
	CItem* GetItemofTable(WORD TableIDX, POSTYPE absPos);

	// yunho StatsCalcManager 傍蜡甫 困秦
	const ITEMBASE* GetItemInfoAbsIn(CHero* pHero,POSTYPE absPos);

	void DeleteItemofTable(WORD TableIdx, POSTYPE absPos, ITEM_OPTION_INFO * pItemOptionInfoOut=NULL );
	BOOL IsEqualTableIdxForPos(WORD TableIdx, POSTYPE absPos );

	void RefreshAllItem();
	void RefreshItem( CItem* pItem );
	BOOL CanEquip(WORD wItemIdx);
	BOOL CanConvertToMugong(WORD wItemIdx,MUGONG_TYPE MugongType=MUGONGTYPE_MAX);

	void LoadItemList();
	void LoadItemToolTipList();
	ITEM_INFO * GetItemInfo(WORD wItemIdx);
	void SetPreItemData(sPRELOAD_INFO* pPreLoadInfo, int* Level, int Count);
	DWORD m_dwStateParam;
	//BOOL CanGradeUp(CItem * pItem);
	BOOL IsDupItem( WORD wItemIdx );
	BOOL IsOptionItem( WORD wItemIdx, WORD wDurability );

	void SetPriceToItem( BOOL bAddPrice );
	void SetDisableDialog(BOOL val, BYTE TableIdx);

///
	TOOLTIP_TEXT* GetItemToolTipInfo( WORD wIdx );
	void AddItemDescriptionToolTip( cIcon* pIcon, WORD wIndex );
		
	ITEM_INFO* FindItemInfoForName( char* strName );
	
//	BOOL CheckQPosForItemIdx( WORD wItemIdx );
	
	void ReLinkQuickPosition(CItem* pItem);

	
	void ItemDropEffect( WORD wItemIdx );
	void MoneyDropEffect();

//for GM...泅犁绰..
#ifdef _GMTOOL_
	void SetItemIfoPositionHead()	{ m_ItemInfoList.SetPositionHead(); }
	ITEM_INFO* GetItemInfoData()	{ return m_ItemInfoList.GetData(); }
#endif

};


EXTERNGLOBALTON(CItemManager)

#endif // !defined(AFX_ITEMMANAGER_H__60209143_2AB6_46C5_A79E_4307FAFE0986__INCLUDED_)

⌨️ 快捷键说明

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