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

📄 maindata.cpp

📁 一个完整的,网络游戏客户端框架. 运行平台: Windows 2000, Windows 98 开发工具: VC++6.0
💻 CPP
字号:
// MainData.cpp: implementation of the CMainData class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "gamehigh.h"
#include "MainData.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMainData::CMainData()
{
	lpMyTable	=NULL;

	myStatus	=IDLESSE;

	memset(&myInfo, 0, sizeof(GAMEHIGH_USERINFO));
}

CMainData::~CMainData()
{

}


BOOL CMainData::Async_GameHigh_LoadRoomsFromServer(DWORD dwGameTypeID, LPGAMEHIGH_ROOM& roomArray, int& noutCount)
{
	if(dwGameTypeID < 0)
		return FALSE;
	//服务器中提取房间列表
	roomArray	=NULL;

	//test data
	if( 1 == dwGameTypeID)
	{
		noutCount	=3;
		roomArray	=new GAMEHIGH_ROOM[noutCount];
		SAFE_CHECKPOINTER(roomArray)
		{
			memset(roomArray, 0, sizeof(GAMEHIGH_ROOM) * noutCount);

			strcpy(roomArray[0].RoomName, "越南战争");
			roomArray[0].uRoomID	=0;

			strcpy(roomArray[1].RoomName, "朝鲜战场");
			roomArray[0].uRoomID	=1;
			
			strcpy(roomArray[2].RoomName, "击沉日本岛");
			roomArray[0].uRoomID	=2;
		}
	}
	return TRUE;
}

BOOL CMainData::Async_GameHigh_LoadTableFromRoom(DWORD dwRoomID, LPGAMEHIGH_TABLE& lpTabArray, int& nCount)
{
	//提取桌子列表
	nCount	=0;

	if(NULL != lpTabArray)
	{
		ASSERT(NULL);
	}

	lpTabArray	=NULL;

	//test code
	if(2 == dwRoomID)
	{
		nCount	=MAX_TABLE;

		lpTabArray	=new GAMEHIGH_TABLE[nCount];
		memset(lpTabArray, 0, sizeof(GAMEHIGH_TABLE) * nCount);

		for(int i=0; i < nCount; i++)
		{
			strcpy(lpTabArray[i].Initiator, "");
			lpTabArray[i].tableID	=i;
		}
		
		//-----------------------测试数据
		//定义第一张桌子为测试对象
		::strcpy(lpTabArray[0].Initiator, "ghost");
		::strcpy(lpTabArray[0].userStatus[0].userID, "ghost");
		::strcpy(lpTabArray[0].userStatus[0].userName, "阿鬼");
		
		
		::strcpy(lpTabArray[0].userStatus[1].userID, "Wu");
		::strcpy(lpTabArray[0].userStatus[1].userName, "小吴");
		
		
		::strcpy(lpTabArray[0].userStatus[2].userID, "knight");
		::strcpy(lpTabArray[0].userStatus[2].userName, "骑士");
	}
/*	
	memset(tableData, 0, sizeof(GAMEHIGH_TABLE) * MAX_TABLE);
														//清空原有的桌子列表		
	if(2 == dwRoomID)
	{
		//模拟数据,仅为测试用
		for(UINT i=0; i < MAX_TABLE; i++)
		{
			strcpy(tableData[i].Initiator, "");
			tableData[i].tableID	=i;
			memset(&(tableData[i].userStatus), 0, sizeof(GAMEHIGH_USERSTATUS));
		}
		
		//-----------------------测试数据
		//定义第一张桌子为测试对象
		::strcpy(tableData[0].Initiator, "ghost");
		::strcpy(tableData[0].userStatus[0].userID, "ghost");
		::strcpy(tableData[0].userStatus[0].userName, "阿鬼");

		
		::strcpy(tableData[0].userStatus[1].userID, "Wu");
		::strcpy(tableData[0].userStatus[1].userName, "小吴");
		
		
		::strcpy(tableData[0].userStatus[2].userID, "knight");
		::strcpy(tableData[0].userStatus[2].userName, "骑士");
		
	}
*/
	return TRUE;
}

LPCTSTR CMainData::Attrib_GetMyID()
{
	return strUserID;
}

USERSTATUS CMainData::Attrib_GetMyStatus()
{
	return myStatus;
}

LPGAMEHIGH_USERINFO CMainData::Attrib_GetMyInfo()
{
	return &myInfo;
}

LPGAMEHIGH_TABLE CMainData::Attrib_GetMyTable()
{
	return lpMyTable;
}

void CMainData::Attrib_SetMyTable(LPGAMEHIGH_TABLE lpTable)
{
	ASSERT(lpTable);
	if(NULL != lpTable)
	{
		lpMyTable	=lpTable;
	}
}

BOOL CMainData::Async_GameHigh_Login(LPCTSTR lpszUser, LPCTSTR lpszPass)
{
	ASSERT(lpszUser);
	ASSERT(lpszPass);

	if(NULL == lpszUser ||
		NULL == lpszPass ||
		0 != strlen(lpszUser) ||
		0 != strlen(lpszPass))
	{
		strUserID	=lpszUser;
	}
	return TRUE;
}

void CMainData::Implemen_StandUp(LPGAMEHIGH_TABLE lptab)
{
	ASSERT(lptab);
	if(NULL == lptab)
		return ;
	for(int i=0; i<MAX_TABCONTAIN; i++)
	{
		if(0 == strUserID.Compare(lptab->userStatus[i].userID))
		{	//找到了自已
			lptab->userStatus[i].status	=IDLESSE;
			memset(lptab->userStatus[i].userID, 0, sizeof(char) * MAX_USERID_LENGTH);
			memset(lptab->userStatus[i].userName, 0, sizeof(char) * MAX_USERNAME_LENGTH);
		}
	}
}

int CMainData::Attrib_GetMyPos()
{
	SAFE_CHECKPOINTER(lpMyTable)
	{
		for(int i=0; i<MAX_TABCONTAIN; i++)
		{
			if(0 == strUserID.Compare(lpMyTable->userStatus[i].userID))
			{
				return i;
			}
		}
	}
	return -1;
}

⌨️ 快捷键说明

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