www.pudn.com > goodchessGame.zip > Floor.cpp


#include "StdAfx.h" 
#include "Floor.h" 
#include "FloorDialog.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
CFloor::CFloor() 
{ 
} 
 
CFloor::~CFloor() 
{ 
	POSITION pos = m_CardList.GetHeadPosition(); 
	while (pos != NULL) 
	{ 
		CCard *pCard = m_CardList.GetNext(pos); 
		pCard->DestroyWindow(); 
		delete pCard; 
	} 
	m_CardList.RemoveAll(); 
} 
 
void CFloor::Initialization() 
{ 
	POSITION pos = m_CardList.GetHeadPosition(); 
	while (pos != NULL) 
	{ 
		CCard *pCard = m_CardList.GetNext(pos); 
		pCard->DestroyWindow(); 
		delete pCard; 
	} 
	m_CardList.RemoveAll(); 
} 
 
void CFloor::AcceptCard(CPlayer *pSourcePlayer, CCard *pCard, CWnd *pParentWnd) 
{ 
	CCard *Card; 
	CPoint Point(0,22); 
	Card = new CCard; 
	Card->SetStartingPoint(Point); 
	Card->SetBitmapIndex(pCard->GetBitmapIndex()); 
	CFloorDialog *pDialog = (CFloorDialog*)pParentWnd; 
	pDialog->AddThrownCard(pSourcePlayer, Card->GetBitmapIndex()); 
	//Card->Creation(pParentWnd, Card->GetBitmapIndex(), TRUE); 
	//Card->CenterWindow(); 
	//Card->MoveWindow(0, 22, 71, 96); 
	if(!m_CardList.IsEmpty()) 
	{ 
		CCard* pInCard = m_CardList.RemoveHead(); 
		pInCard->DestroyWindow(); 
		delete pInCard; 
	} 
	m_CardList.AddHead(Card); 
} 
 
int CFloor::PickCard(CPlayer *pPlayer, BOOL FrontView, CWnd *pParentWnd) 
{ 
	if(m_CardList.IsEmpty()) 
		return -1; 
	else 
	{ 
		CCard *pCard; 
		pCard = m_CardList.RemoveHead(); 
		CCard *Card = new CCard; 
		Card->SetStartingPoint(CPoint(0,22)); 
		Card->SetBitmapIndex(pCard->GetBitmapIndex()); 
		pCard->DestroyWindow(); 
		delete pCard; 
		Card->Creation(pParentWnd, Card->GetBitmapIndex(), FrontView, TRUE); 
		return pPlayer->m_CardArray.Add(Card); 
	} 
}