📄 trademanager.h
字号:
#pragma once
#include <MemoryPoolFactory.h>
#include <SolarHashTable.h>
#include "TradeSlotContainer.h"
class SCSlotContainer;
class TradeSlot;
class TradeManager
{
public:
TradeManager(void);
~TradeManager(void);
VOID Init( DWORD maxPoolSize );
VOID Release();
//PutMoney( );
BOOL CreateTradeContainer( Player * pPlayer1, Player * pPlayer2 );
BOOL DestroyTradeContainer( Player * pPlayer );
// 酒捞袍阑 棵妨初绰促.
RC::eTRADE_RESULT PutItem( Player * pPlayer, POSTYPE org_pos, POSTYPE & OUT trade_pos, ITEMSTREAMEX & OUT trade_itemStream );
// 酒捞袍阑 猾促.
RC::eTRADE_RESULT TakeItem( Player * pPlayer, POSTYPE trade_pos );
// 捣阑 棵妨初绰促.
RC::eTRADE_RESULT PutMoney( Player * pPlayer, MONEY & IN money );
// 捣阑 猾促.
RC::eTRADE_RESULT TakeMoney( Player * pPlayer, MONEY & IN money );
RC::eTRADE_RESULT Proposal( Player * pPlayer );
RC::eTRADE_RESULT Modify( Player * pPlayer );
RC::eTRADE_RESULT Exchange( Player * pPlayer1, TRADE_TOTAL_INFO & OUT rTradeInfo1, MONEY & OUT money1, TRADE_TOTAL_INFO & OUT rTradeInfo2, MONEY & OUT money2 );
BOOL ValidState( Player * pPlayer );
private:
TradeSlotContainer * _Create(){ return m_pTradePool.Alloc(); }
VOID _Destroy( TradeSlotContainer * pUnit ) { m_pTradePool.Free(pUnit); }
private:
VOID _GiveItem( SCSlotContainer * pContainer, TradeSlot ** ppSlot, POSTYPE & INOUT num, TRADE_TOTAL_INFO & OUT Info, BYTE & OUT Count );
DWORD m_TradeKey;
util::CMemoryPoolFactory<TradeSlotContainer> m_pTradePool;
};
extern TradeManager g_TradeManager;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -