aplayerdata.cpp

来自「◆◆◆ 《投掷飞镖记分工具》◆◆◆ 操作系统 : Windows Mobil」· C++ 代码 · 共 70 行

CPP
70
字号
#include "StdAfx.h"
#include "DartScore.h"
#include "APlayerData.h"

CAPlayerData::CAPlayerData(void)
	: m_pAGameData ( NULL )
	, m_pUIntAry_Scores ( NULL )
{
}

CAPlayerData::~CAPlayerData(void)
{
	if ( m_pUIntAry_Scores )
		delete[] m_pUIntAry_Scores;
}

BOOL CAPlayerData::SetAGameData(LPVOID pAGameData, LPCTSTR lpszPlayerName)
{
	if ( !lpszPlayerName || lstrlen(lpszPlayerName) < 1 ) return FALSE;
	m_csPlayerName = lpszPlayerName;

	if ( !pAGameData ) return FALSE;
	if ( ( (t_AGameData*)pAGameData )->nDartNum < 1 ) return FALSE;
	m_pAGameData = pAGameData;
	
	if ( m_pUIntAry_Scores )
		delete[] m_pUIntAry_Scores;

	m_pUIntAry_Scores = new CUIntArray[( (t_AGameData*)m_pAGameData )->nDartNum];
	if ( !m_pUIntAry_Scores ) return FALSE;

	return TRUE;
}

CString CAPlayerData::GenerateSaveDataString ()
{
	if ( !m_pAGameData ) return _T("");
	CString csSaveDataString;
	csSaveDataString.Format ( _T("// %s ====================\r\n"), m_csPlayerName );
	if ( !m_pUIntAry_Scores ) return csSaveDataString;
	if ( ( (t_AGameData*)m_pAGameData )->nDartNum < 1 ) return _T("");

	BOOL bEndLoop = FALSE;
	for ( int i=0; i<( (t_AGameData*)m_pAGameData )->nCycleTimes; i++ )
	{
		CString csName, csValue;
		csName.Format ( _T("%d"), i );
		for ( int j=0; j<( (t_AGameData*)m_pAGameData )->nDartNum; j++ )
		{
			if ( i >= m_pUIntAry_Scores[j].GetSize() )
			{
				bEndLoop = TRUE;
				break;
			}
			CString csText;
			csText.Format ( _T("%u"), m_pUIntAry_Scores[j].GetAt(i) );
			if ( !csValue.IsEmpty() ) csValue += _T(",");
			csValue += csText;
		}
		if ( bEndLoop ) break;
		if ( !csValue.IsEmpty() )
		{
			csSaveDataString += ::GenerateSaveDataString ( csName, csValue );
		}
	}
	
	csSaveDataString += _T("\r\n");
	return csSaveDataString;
}

⌨️ 快捷键说明

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