@@ -0,0 +1,3 @@ | |||
[Server] | |||
ServerID=6810 | |||
Level=1 |
@@ -0,0 +1,6 @@ | |||
[Server] | |||
Level=3 | |||
ServerID=6810 | |||
Gamelog=0 | |||
[OpenDCS] | |||
Value=1 |
@@ -0,0 +1,47 @@ | |||
Microsoft Visual Studio Solution File, Format Version 12.00 | |||
# Visual Studio 2013 | |||
VisualStudioVersion = 12.0.21005.1 | |||
MinimumVisualStudioVersion = 10.0.40219.1 | |||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "游戏服务器", "游戏服务器\GameServer.vcxproj", "{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}" | |||
EndProject | |||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "机器人服务", "机器人服务\AndroidService.vcxproj", "{E50AB39C-E7B1-4310-B49D-D14C60243A5A}" | |||
EndProject | |||
Global | |||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||
Debug_Unicode|Win32 = Debug_Unicode|Win32 | |||
Debug|Win32 = Debug|Win32 | |||
DebugVD|Win32 = DebugVD|Win32 | |||
Release_Unicode|Win32 = Release_Unicode|Win32 | |||
Release|Win32 = Release|Win32 | |||
ReleaseVD|Win32 = ReleaseVD|Win32 | |||
EndGlobalSection | |||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Debug_Unicode|Win32.ActiveCfg = Debug_Unicode|Win32 | |||
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Debug_Unicode|Win32.Build.0 = Debug_Unicode|Win32 | |||
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Debug|Win32.ActiveCfg = Debug|Win32 | |||
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Debug|Win32.Build.0 = Debug|Win32 | |||
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.DebugVD|Win32.ActiveCfg = DebugVD|Win32 | |||
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.DebugVD|Win32.Build.0 = DebugVD|Win32 | |||
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Release_Unicode|Win32.ActiveCfg = Release_Unicode|Win32 | |||
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Release_Unicode|Win32.Build.0 = Release_Unicode|Win32 | |||
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Release|Win32.ActiveCfg = Release|Win32 | |||
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.Release|Win32.Build.0 = Release|Win32 | |||
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.ReleaseVD|Win32.ActiveCfg = ReleaseVD|Win32 | |||
{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}.ReleaseVD|Win32.Build.0 = ReleaseVD|Win32 | |||
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Debug_Unicode|Win32.ActiveCfg = Debug_Unicode|Win32 | |||
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Debug_Unicode|Win32.Build.0 = Debug_Unicode|Win32 | |||
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Debug|Win32.ActiveCfg = Debug|Win32 | |||
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Debug|Win32.Build.0 = Debug|Win32 | |||
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.DebugVD|Win32.ActiveCfg = Debug_Unicode|Win32 | |||
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.DebugVD|Win32.Build.0 = Debug_Unicode|Win32 | |||
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Release_Unicode|Win32.ActiveCfg = Release_Unicode|Win32 | |||
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Release_Unicode|Win32.Build.0 = Release_Unicode|Win32 | |||
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Release|Win32.ActiveCfg = Release|Win32 | |||
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.Release|Win32.Build.0 = Release|Win32 | |||
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.ReleaseVD|Win32.ActiveCfg = Release_Unicode|Win32 | |||
{E50AB39C-E7B1-4310-B49D-D14C60243A5A}.ReleaseVD|Win32.Build.0 = Release_Unicode|Win32 | |||
EndGlobalSection | |||
GlobalSection(SolutionProperties) = preSolution | |||
HideSolutionNode = FALSE | |||
EndGlobalSection | |||
EndGlobal |
@@ -0,0 +1,802 @@ | |||
#include "StdAfx.h" | |||
#include ".\androidai.h" | |||
///////////////////////////////////////////////////////////////////////////////////// | |||
//CAndroidAIBase | |||
CAndroidAIBase::CAndroidAIBase() | |||
{ | |||
memset(m_byCardData,0xff,sizeof(m_byCardData)); | |||
} | |||
CAndroidAIBase::~CAndroidAIBase() | |||
{ | |||
} | |||
//设置牌 | |||
void CAndroidAIBase::SetCardData( const BYTE cbCardData[],BYTE byCardCount, tagWeaveItem wi[MAX_WEAVE], BYTE cbWeaveCount ) | |||
{ | |||
//复制牌 | |||
CopyMemory(m_byCardData,cbCardData,sizeof(BYTE)*byCardCount); | |||
m_byCardCount = byCardCount; | |||
//初始化 | |||
ZeroMemory(m_bSelect,sizeof(m_bSelect)); | |||
// | |||
ZeroMemory(m_byThreeCard,sizeof(m_byThreeCard)); | |||
m_byThreeCount = 0; | |||
ZeroMemory(m_byGoodThreeCard,sizeof(m_byGoodThreeCard)); | |||
m_byGoodThreeCount = 0; | |||
// | |||
ZeroMemory(m_byTwoCard,sizeof(m_byTwoCard)); | |||
m_byTwoCount = 0; | |||
ZeroMemory(m_byGoodTwoCard,sizeof(m_byGoodTwoCard)); | |||
m_byGoodTwoCount = 0; | |||
// | |||
ZeroMemory(m_byRemainThree,sizeof(m_byRemainThree)); | |||
m_byRemainThreeCount = 0; | |||
ZeroMemory(m_byRemainTwo,sizeof(m_byRemainTwo)); | |||
m_byRemainTwoCount = 0; | |||
// | |||
m_nMaxScoreThree = m_nMaxScoreTwo = 0; | |||
m_nActionScore = 0; | |||
m_nScoreThree = m_nScoreTwo = 0; | |||
// | |||
m_bHaveJiang = false; | |||
// | |||
m_byBadlyCard = 0xff; | |||
//胡牌限制条件 | |||
m_cbColorCount = 0; | |||
ZeroMemory( m_cbColor,sizeof(m_cbColor) ); | |||
m_cbMinColorCount = MAX_COUNT; | |||
//搜索花色 | |||
for( BYTE i = 0; i < byCardCount; i++ ) | |||
{ | |||
m_cbColor[(cbCardData[i]/9)]++; | |||
} | |||
for( BYTE i = 0; i < cbWeaveCount; i++ ) | |||
{ | |||
m_cbColor[(wi[i].cbCenterCard&MASK_COLOR)>>4]++; | |||
} | |||
for( BYTE i = 0; i < 3; i++ ) | |||
{ | |||
if( m_cbColor[i] > 0 ) | |||
m_cbColorCount++; | |||
if( m_cbColor[i] < m_cbMinColorCount ) | |||
m_cbMinColorCount = m_cbColor[i]; | |||
} | |||
} | |||
//获取最差牌 | |||
BYTE CAndroidAIBase::GetBadlyCard() | |||
{ | |||
return m_byBadlyCard; | |||
} | |||
//获取最大分 | |||
int CAndroidAIBase::GetMaxScore() | |||
{ | |||
return m_nActionScore+m_nMaxScoreThree+m_nMaxScoreTwo; | |||
} | |||
//两只牌是否是边的 | |||
bool CAndroidAIBase::IsEdge( BYTE byCard1,BYTE byCard2 ) | |||
{ | |||
if( 0 == byCard1%9 || 8 == byCard2%9 ) | |||
return true; | |||
return false; | |||
} | |||
//搜索相同牌 | |||
bool CAndroidAIBase::SearchSameCard( BYTE byCardData,BYTE &byIndex1,BYTE &byIndex2 ) | |||
{ | |||
// | |||
byIndex1 = FindIndex(byCardData); | |||
if( byIndex1 == 0xff ) return false; | |||
byIndex2 = FindIndex(byCardData,byIndex1+1); | |||
if( byIndex2 == 0xff ) return false; | |||
return true; | |||
} | |||
//搜索连牌 | |||
bool CAndroidAIBase::SearchLinkCard( BYTE byCardData,BYTE &byIndex1,BYTE &byIndex2 ) | |||
{ | |||
//效验 | |||
if( byCardData >= 27 ) return false; | |||
//第二,三只 | |||
BYTE byCard1 = byCardData+1; | |||
BYTE byCard2 = byCardData+2; | |||
if( byCard1 >= 27 || byCard2 >= 27 || byCardData/9 != byCard1/9 || byCardData/9 != byCard2/9 ) | |||
return false; | |||
//寻找 | |||
byIndex1 = FindIndex(byCard1); | |||
if( byIndex1 == 0xff ) return false; | |||
byIndex2 = FindIndex(byCard2); | |||
if( byIndex2 == 0xff ) return false; | |||
return true; | |||
} | |||
//搜索两只同牌 | |||
bool CAndroidAIBase::SearchSameCardRemain( BYTE byCardData,BYTE &byIndex,BYTE byStart ) | |||
{ | |||
byIndex = FindIndexRemain(byCardData,byStart); | |||
return 0xff==byIndex?false:true; | |||
} | |||
//搜索有卡连牌 | |||
bool CAndroidAIBase::SearchLinkCardRemain( BYTE byCardData,BYTE byLinkType,BYTE &byIndex,BYTE byStart ) | |||
{ | |||
//验证 | |||
if( byCardData >= 27 ) return false; | |||
//判断类型 | |||
BYTE byCard1 = 0xff; | |||
if( 0 == byLinkType ) //紧连 | |||
byCard1 = byCardData+1; | |||
else if( 1 == byLinkType ) //有卡 | |||
byCard1 = byCardData+2; | |||
//过滤 | |||
if( byCard1 >= 27 || byCardData/9 != byCard1/9 ) return false; | |||
byIndex = FindIndexRemain(byCard1,byStart); | |||
return 0xff==byIndex?false:true; | |||
} | |||
//搜索牌 | |||
BYTE CAndroidAIBase::FindIndex( BYTE byCardData,BYTE byStart ) | |||
{ | |||
for( BYTE i = byStart; i < m_byCardCount; i++ ) | |||
{ | |||
if( byCardData == m_byCardData[i] && !m_bSelect[i] ) | |||
return i; | |||
} | |||
return 0xff; | |||
} | |||
//在移除最佳三只后搜索牌 | |||
BYTE CAndroidAIBase::FindIndexRemain( BYTE byCardData,BYTE byStart ) | |||
{ | |||
for( BYTE i = byStart; i < m_byRemainThreeCount; i++ ) | |||
{ | |||
if( byCardData == m_byRemainThree[i] && !m_bSelect[i] ) | |||
return i; | |||
} | |||
return 0xff; | |||
} | |||
//移除牌 | |||
bool CAndroidAIBase::RemoveCard( BYTE byCardIndex ) | |||
{ | |||
//效验 | |||
ASSERT( m_byCardCount > 0 ); | |||
if( m_byCardCount == 0 ) return false; | |||
ASSERT( byCardIndex >= 0 && byCardIndex < MAX_INDEX ); | |||
if( byCardIndex < 0 || byCardIndex >= MAX_INDEX ) return false; | |||
//删除 | |||
BYTE byCount = m_byCardCount; | |||
m_byCardCount = 0; | |||
bool bFound = false; | |||
for( BYTE i = 0; i < byCount; i++ ) | |||
{ | |||
if( i == byCardIndex ) | |||
{ | |||
bFound = true; | |||
continue; | |||
} | |||
m_byCardData[m_byCardCount++] = m_byCardData[i]; | |||
} | |||
if( bFound ) | |||
m_byCardData[byCount-1] = 0xff; | |||
return bFound; | |||
} | |||
//移除牌值 | |||
bool CAndroidAIBase::RemoveCardData( BYTE byCardData ) | |||
{ | |||
//效验 | |||
ASSERT( m_byCardCount > 0 ); | |||
if( m_byCardCount == 0 ) return false; | |||
//删除 | |||
BYTE byCount = m_byCardCount; | |||
m_byCardCount = 0; | |||
bool bFound = false; | |||
for( BYTE i = 0; i < byCount; i++ ) | |||
{ | |||
if( !bFound && m_byCardData[i] == byCardData ) | |||
{ | |||
bFound = true; | |||
continue; | |||
} | |||
m_byCardData[m_byCardCount++] = m_byCardData[i]; | |||
} | |||
if( bFound) | |||
m_byCardData[byCount-1] = 0xff; | |||
return bFound; | |||
} | |||
///////////////////////////////////////////////////////////////////////////////////// | |||
//CAndroidAI | |||
CAndroidAI::CAndroidAI(void) | |||
{ | |||
ZeroMemory(m_byEnjoinOutCard,sizeof(m_byEnjoinOutCard)); | |||
m_byEnjoinOutCount = 0; | |||
} | |||
CAndroidAI::~CAndroidAI(void) | |||
{ | |||
} | |||
//思考 | |||
void CAndroidAI::Think() | |||
{ | |||
//重置 | |||
m_nMaxScoreThree = 0; | |||
m_nMaxScoreTwo = 0; | |||
//分析三只 | |||
AnalyseThree(); | |||
//如果没三只 | |||
BYTE i; | |||
if( m_nMaxScoreThree == 0 || m_byRemainThreeCount == 0 ) | |||
{ | |||
m_byRemainThreeCount = m_byCardCount; | |||
for( i = 0; i < m_byRemainThreeCount; i++ ) | |||
m_byRemainThree[i] = m_byCardData[i]; | |||
} | |||
//分析两只 | |||
AnalyseTwo(); | |||
if( m_nMaxScoreTwo == 0 ) | |||
{ | |||
m_byRemainTwoCount = m_byRemainThreeCount; | |||
for( i = 0; i < m_byRemainTwoCount; i++ ) | |||
m_byRemainTwo[i] = m_byRemainThree[i]; | |||
} | |||
//如果全部是两只 | |||
if( m_byRemainTwoCount == 0 ) | |||
{ | |||
SearchTwo(); | |||
return; | |||
} | |||
//分析一只 | |||
AnalyseOne(); | |||
} | |||
//从最佳两只牌组合中搜索最差牌 | |||
BYTE CAndroidAI::GetBadlyIn2Card() | |||
{ | |||
BYTE byBadly = 0xff; | |||
int nMin = 33; | |||
int nScore; | |||
BYTE byCard; | |||
for( BYTE i = 0; i < m_byGoodTwoCount*2; i++ ) | |||
{ | |||
byCard = m_byGoodTwoCard[i]; | |||
if( IsEnjoinOutCard(byCard) ) continue; | |||
if( byCard >= 27 ) //如果是字 | |||
{ | |||
nScore = 2; | |||
} | |||
else if( byCard%9 == 0 || byCard%9 == 8 ) //如果是一或者九 | |||
{ | |||
nScore = 6; | |||
} | |||
else | |||
{ | |||
nScore = 10; | |||
} | |||
nScore += AddScore(byCard); | |||
//去除一种花色 | |||
if( m_cbColorCount == 3 && m_cbColor[(byCard/9)] == m_cbMinColorCount ) | |||
nScore -= 10; | |||
if( nScore < nMin ) | |||
{ | |||
nMin = nScore; | |||
byBadly = byCard; | |||
} | |||
} | |||
return byBadly; | |||
} | |||
//从最佳三只牌组合中搜索最差牌 | |||
BYTE CAndroidAI::GetBadlyIn3Card() | |||
{ | |||
BYTE byBadly = 0xff; | |||
int nMin = 33; | |||
int nScore; | |||
BYTE byCard; | |||
for( BYTE i = 0; i < m_byGoodThreeCount*3; i++ ) | |||
{ | |||
byCard = m_byGoodThreeCard[i]; | |||
if( IsEnjoinOutCard(byCard) ) continue; | |||
if( byCard >= 27 ) //如果是字 | |||
{ | |||
nScore = 2; | |||
} | |||
else if( byCard%9 == 0 || byCard%9 == 8 ) //如果是一或者九 | |||
{ | |||
nScore = 6; | |||
} | |||
else | |||
{ | |||
nScore = 10; | |||
} | |||
nScore += AddScore(byCard); | |||
//去除一种花色 | |||
if( m_cbColorCount == 3 && m_cbColor[(byCard/9)] == m_cbMinColorCount ) | |||
nScore -= 10; | |||
if( nScore < nMin ) | |||
{ | |||
nMin = nScore; | |||
byBadly = byCard; | |||
} | |||
} | |||
return byBadly; | |||
} | |||
//设置禁止出的牌 | |||
void CAndroidAI::SetEnjoinOutCard( const BYTE cbEnjoinOutCard[],BYTE cbEnjoinOutCount ) | |||
{ | |||
m_byEnjoinOutCount = cbEnjoinOutCount; | |||
if( m_byEnjoinOutCount > 0 ) | |||
{ | |||
CopyMemory(m_byEnjoinOutCard,cbEnjoinOutCard,sizeof(BYTE)*cbEnjoinOutCount); | |||
} | |||
} | |||
//模拟操作 | |||
void CAndroidAI::SetAction( BYTE byActionMask,BYTE byActionCard ) | |||
{ | |||
//验证 | |||
ASSERT( byActionCard >=0 && byActionCard < 34 ); | |||
if( byActionCard >= 34 ) return; | |||
//枚举 | |||
switch( byActionMask ) | |||
{ | |||
case WIK_LEFT: | |||
{ | |||
m_nActionScore = 300; | |||
VERIFY( RemoveCardData(byActionCard+1) ); | |||
VERIFY( RemoveCardData(byActionCard+2) ); | |||
//禁止出的牌 | |||
m_byEnjoinOutCount = 0; | |||
m_byEnjoinOutCard[m_byEnjoinOutCount++] = byActionCard; | |||
if( byActionCard%9 < 7 ) | |||
m_byEnjoinOutCard[m_byEnjoinOutCount++] = byActionCard+3; | |||
break; | |||
} | |||
case WIK_CENTER: | |||
{ | |||
m_nActionScore = 300; | |||
VERIFY( RemoveCardData(byActionCard-1) ); | |||
VERIFY( RemoveCardData(byActionCard+1) ); | |||
//禁止出的牌 | |||
m_byEnjoinOutCount = 0; | |||
m_byEnjoinOutCard[m_byEnjoinOutCount++] = byActionCard; | |||
break; | |||
} | |||
case WIK_RIGHT: | |||
{ | |||
m_nActionScore = 300; | |||
VERIFY( RemoveCardData(byActionCard-2) ); | |||
VERIFY( RemoveCardData(byActionCard-1) ); | |||
//禁止出的牌 | |||
m_byEnjoinOutCount = 0; | |||
m_byEnjoinOutCard[m_byEnjoinOutCount++] = byActionCard; | |||
if( byActionCard%9 > 3 ) | |||
m_byEnjoinOutCard[m_byEnjoinOutCount++] = byActionCard-3; | |||
break; | |||
} | |||
case WIK_PENG: | |||
{ | |||
m_nActionScore = 300;; | |||
VERIFY( RemoveCardData(byActionCard) ); | |||
VERIFY( RemoveCardData(byActionCard) ); | |||
//禁止出的牌 | |||
m_byEnjoinOutCount = 0; | |||
m_byEnjoinOutCard[m_byEnjoinOutCount++] = byActionCard; | |||
break; | |||
} | |||
case WIK_GANG: | |||
{ | |||
VERIFY( RemoveCardData(byActionCard) ); | |||
BYTE byIndex = FindIndex(byActionCard); | |||
if( byIndex != 0xff ) | |||
{ | |||
m_nActionScore = 300; | |||
VERIFY( RemoveCardData(byActionCard) ); | |||
VERIFY( RemoveCardData(byActionCard) ); | |||
byIndex = FindIndex(byActionCard); | |||
if( byIndex != 0xff ) | |||
VERIFY( RemoveCardData(byActionCard) ); | |||
} | |||
break; | |||
} | |||
default: | |||
ASSERT( FALSE ); | |||
} | |||
} | |||
//重置得分 | |||
void CAndroidAI::ResetScore() | |||
{ | |||
m_nActionScore = m_nMaxScoreThree = m_nMaxScoreTwo = 0; | |||
} | |||
//加权 | |||
int CAndroidAI::AddScore( BYTE byCardData ) | |||
{ | |||
int nScore = 0; | |||
if( byCardData >= 27 ) | |||
{ | |||
return 0; | |||
} | |||
if( byCardData%9 != 0 && FindIndex(byCardData-1) != 0xff ) //如果剩余的牌中有比其少一的牌 | |||
{ | |||
if( byCardData%9 != 1 ) //如果当前牌不是二类即加3 | |||
{ | |||
nScore += 3; | |||
} | |||
else | |||
{ | |||
nScore += 1; | |||
} | |||
} | |||
if( byCardData%9 != 8 && FindIndex(byCardData+1) != 0xff ) //如果剩余的牌中有比起多一个的牌 | |||
{ | |||
if( byCardData%9 != 7 ) | |||
{ | |||
nScore += 3; | |||
} | |||
else | |||
{ | |||
nScore += 1; | |||
} | |||
} | |||
if( byCardData%9 > 1 && FindIndex(byCardData-2) != 0xff ) //如果剩余的牌中有比其少二的牌(如3—5,1_3等) | |||
{ | |||
nScore += 2; | |||
} | |||
if( byCardData%9 < 7 && FindIndex(byCardData+2) != 0xff ) //如果剩余的牌中有比其多二的牌 | |||
{ | |||
nScore += 2; | |||
} | |||
return nScore; | |||
} | |||
//分析三只 | |||
void CAndroidAI::AnalyseThree() | |||
{ | |||
BYTE byIndex1,byIndex2; | |||
BYTE i = 0; | |||
for( ; i < m_byCardCount; i++ ) | |||
{ | |||
if( !m_bSelect[i] ) | |||
{ | |||
m_bSelect[i] = true; | |||
//搜索三只 | |||
if( SearchSameCard(m_byCardData[i],byIndex1,byIndex2) ) | |||
{ | |||
//临时记录 | |||
m_byThreeCard[m_byThreeCount*3] = m_byCardData[i]; | |||
m_byThreeCard[m_byThreeCount*3+1] = m_byCardData[i]; | |||
m_byThreeCard[m_byThreeCount*3+2] = m_byCardData[i]; | |||
//递归 | |||
m_byThreeCount++; | |||
m_nScoreThree += 300; | |||
m_bSelect[byIndex1] = true; | |||
m_bSelect[byIndex2] = true; | |||
AnalyseThree(); | |||
m_bSelect[byIndex1] = false; | |||
m_bSelect[byIndex2] = false; | |||
m_nScoreThree -= 300; | |||
m_byThreeCount--; | |||
} | |||
//搜索连牌 | |||
if( SearchLinkCard(m_byCardData[i],byIndex1,byIndex2) ) | |||
{ | |||
//临时记录 | |||
m_byThreeCard[m_byThreeCount*3] = m_byCardData[i]; | |||
m_byThreeCard[m_byThreeCount*3+1] = m_byCardData[i]+1; | |||
m_byThreeCard[m_byThreeCount*3+2] = m_byCardData[i]+2; | |||
//递归 | |||
m_byThreeCount++; | |||
m_nScoreThree += 300; | |||
m_bSelect[byIndex1] = true; | |||
m_bSelect[byIndex2] = true; | |||
AnalyseThree(); | |||
m_bSelect[byIndex1] = false; | |||
m_bSelect[byIndex2] = false; | |||
m_nScoreThree -= 300; | |||
m_byThreeCount--; | |||
} | |||
m_bSelect[i] = false; | |||
} | |||
} | |||
//如果搜索到分数更高的 | |||
if( m_nScoreThree > m_nMaxScoreThree ) | |||
{ | |||
//记录剩下的 | |||
m_byRemainThreeCount = 0; | |||
m_nMaxScoreThree = m_nScoreThree; | |||
for( i = 0; i < m_byCardCount; i++ ) | |||
{ | |||
if( !m_bSelect[i] ) | |||
m_byRemainThree[m_byRemainThreeCount++] = m_byCardData[i]; | |||
} | |||
//记录最佳三只组合 | |||
m_byGoodThreeCount = m_byThreeCount; | |||
CopyMemory(m_byGoodThreeCard,m_byThreeCard,sizeof(m_byThreeCard)); | |||
} | |||
} | |||
//分析两只 | |||
void CAndroidAI::AnalyseTwo() | |||
{ | |||
BYTE byIndex; | |||
BYTE i = 0; | |||
for(; i < m_byRemainThreeCount; i++ ) | |||
{ | |||
if( !m_bSelect[i] ) | |||
{ | |||
m_bSelect[i] = true; | |||
//搜索两只相同 | |||
if( SearchSameCardRemain(m_byRemainThree[i],byIndex,i+1) ) | |||
{ | |||
//临时记录 | |||
m_byTwoCard[m_byTwoCount*2] = m_byRemainThree[i]; | |||
m_byTwoCard[m_byTwoCount*2+1] = m_byRemainThree[byIndex]; | |||
//判断将 | |||
m_byTwoCount++; | |||
int nGoodSame = 90; | |||
if( !m_bHaveJiang ) | |||
{ | |||
m_bHaveJiang = true; | |||
nGoodSame = 120; | |||
} | |||
//递归 | |||
m_nScoreTwo += nGoodSame; | |||
m_bSelect[byIndex] = true; | |||
AnalyseTwo(); | |||
m_bSelect[byIndex] = false; | |||
if( 120 == nGoodSame ) | |||
m_bHaveJiang = false; | |||
m_nScoreTwo -= nGoodSame; | |||
m_byTwoCount--; | |||
} | |||
//搜索紧连牌 | |||
if( SearchLinkCardRemain(m_byRemainThree[i],0,byIndex,i+1) ) | |||
{ | |||
//临时记录 | |||
m_byTwoCard[m_byTwoCount*2] = m_byRemainThree[i]; | |||
m_byTwoCard[m_byTwoCount*2+1] = m_byRemainThree[byIndex]; | |||
//判断边 | |||
m_byTwoCount++; | |||
int nGoodLink; | |||
if( IsEdge(m_byRemainThree[i],m_byRemainThree[byIndex]) ) | |||
nGoodLink = 80; | |||
else nGoodLink = 100; | |||
//递归 | |||
m_nScoreTwo += nGoodLink; | |||
m_bSelect[byIndex] = true; | |||
AnalyseTwo(); | |||
m_bSelect[byIndex] = false; | |||
m_nScoreTwo -= nGoodLink; | |||
m_byTwoCount--; | |||
} | |||
//搜索有卡的连牌 | |||
if( SearchLinkCardRemain(m_byRemainThree[i],1,byIndex,i+1) ) | |||
{ | |||
//临时记录 | |||
m_byTwoCard[m_byTwoCount*2] = m_byRemainThree[i]; | |||
m_byTwoCard[m_byTwoCount*2+1] = m_byRemainThree[byIndex]; | |||
//判断边 | |||
m_byTwoCount++; | |||
int nGoodLink; | |||
if( IsEdge(m_byRemainThree[i],m_byRemainThree[byIndex]) ) | |||
nGoodLink = 70; | |||
else nGoodLink = 90; | |||
//递归 | |||
m_nScoreTwo += nGoodLink; | |||
m_bSelect[byIndex] = true; | |||
AnalyseTwo(); | |||
m_bSelect[byIndex] = false; | |||
m_nScoreTwo -= nGoodLink; | |||
m_byTwoCount--; | |||
} | |||
m_bSelect[i] = false; | |||
} | |||
} | |||
//如果有分数更高的 | |||
if( m_nScoreTwo > m_nMaxScoreTwo ) | |||
{ | |||
//记录剩下的 | |||
m_nMaxScoreTwo = m_nScoreTwo; | |||
m_byRemainTwoCount = 0; | |||
for( i = 0; i < m_byRemainThreeCount; i++ ) | |||
{ | |||
if( !m_bSelect[i] ) | |||
m_byRemainTwo[m_byRemainTwoCount++] = m_byRemainThree[i]; | |||
} | |||
//记录最佳两只组合 | |||
m_byGoodTwoCount = m_byTwoCount; | |||
CopyMemory(m_byGoodTwoCard,m_byTwoCard,sizeof(m_byTwoCard)); | |||
} | |||
} | |||
//分析单只 | |||
void CAndroidAI::AnalyseOne() | |||
{ | |||
BYTE byCard; | |||
int nScore; | |||
int nMin = 33; | |||
for(int i = 0;i < m_byRemainTwoCount;i++ ) //找出最差的一张牌 | |||
{ | |||
byCard = m_byRemainTwo[i]; | |||
if( IsEnjoinOutCard(byCard) ) continue; | |||
if( byCard >= 27 ) //如果是字 | |||
{ | |||
nScore = 2; | |||
} | |||
else if( byCard%9 == 0 || byCard%9 == 8 ) //如果是一或者九 | |||
{ | |||
nScore = 6; | |||
} | |||
else | |||
{ | |||
nScore = 10; | |||
} | |||
nScore += AddScore(byCard); | |||
//去除一种花色 | |||
if( m_cbColorCount == 3 && m_cbColor[(byCard/9)] == m_cbMinColorCount ) | |||
nScore -= 10; | |||
if( nScore < nMin ) | |||
{ | |||
nMin = nScore; | |||
m_byBadlyCard = byCard; | |||
} | |||
} | |||
} | |||
//从两只组合中分析 | |||
void CAndroidAI::SearchTwo() | |||
{ | |||
//定义变量 | |||
BYTE byCardTwo[MAX_COUNT]; | |||
BYTE byCardTwoCount = 0; | |||
bool bTeamHave = false; | |||
//设置变量 | |||
for( int i = 0;i < m_byRemainThreeCount;i++ ) | |||
byCardTwo[byCardTwoCount++] = m_byRemainThree[i]; | |||
//仅有一对 | |||
if( byCardTwoCount == 2 ) //如果只有两张牌 | |||
{ | |||
if( byCardTwo[0] == byCardTwo[1] ) //胡牌 | |||
{ | |||
if( !IsEnjoinOutCard(byCardTwo[0]) ) | |||
m_byBadlyCard = byCardTwo[0]; | |||
return; | |||
} | |||
m_byRemainTwoCount = 2; | |||
m_byRemainTwo[0] = byCardTwo[0]; | |||
m_byRemainTwo[1] = byCardTwo[1]; | |||
AnalyseOne(); | |||
} | |||
else | |||
{ | |||
bool bSameHave = false; | |||
int nMinScore = 33; | |||
int nScore[8]; | |||
memset(nScore,33,sizeof(nScore)); | |||
for( BYTE j = 0;j < byCardTwoCount/2;j++ ) //循环纪录每张牌的分数 | |||
{ | |||
if( byCardTwo[j*2] == byCardTwo[j*2 + 1] ) //对子 | |||
{ | |||
if( bSameHave ) | |||
{ | |||
nScore[j] = 6; | |||
} | |||
else | |||
{ | |||
nScore[j] = 8; | |||
bSameHave = true; | |||
} | |||
} | |||
else if( byCardTwo[j*2] == byCardTwo[j*2+1] - 1 ) //紧连门子 | |||
{ | |||
if( byCardTwo[j*2]%9 == 0 || byCardTwo[j*2+1]%9 == 8 ) | |||
{ | |||
nScore[j] = 4; | |||
} | |||
else | |||
{ | |||
nScore[j] = 7; | |||
} | |||
} | |||
else //漏一个门子 | |||
{ | |||
if( byCardTwo[j*2]%9 == 0 || byCardTwo[j*2+1]%9 == 8 ) | |||
nScore[j] = 3; | |||
else | |||
nScore[j] = 5; | |||
} | |||
} | |||
for( BYTE k = 0;k < byCardTwoCount/2;k++) //找出分数最小的一张牌就是最差的一张 | |||
{ | |||
if( nScore[k] < nMinScore ) | |||
{ | |||
if( byCardTwo[k*2] % 9 == 0 && !IsEnjoinOutCard(byCardTwo[k*2]) ) | |||
{ | |||
m_byBadlyCard = byCardTwo[k*2]; | |||
} | |||
else if( byCardTwo[k*2+1] % 9 == 8 && !IsEnjoinOutCard(byCardTwo[k*2+1]) ) | |||
{ | |||
m_byBadlyCard = byCardTwo[k*2+1]; | |||
} | |||
else | |||
{ | |||
int nIndex = rand()%2; | |||
if( IsEnjoinOutCard(byCardTwo[k*2+nIndex]) ) | |||
{ | |||
nIndex = (nIndex+1)%2; | |||
if( IsEnjoinOutCard(byCardTwo[k*2+nIndex]) ) continue; | |||
else m_byBadlyCard = byCardTwo[k*2+nIndex]; | |||
} | |||
else m_byBadlyCard = byCardTwo[k*2+nIndex]; | |||
} | |||
nMinScore = nScore[k]; | |||
} | |||
} | |||
} | |||
} | |||
//判断牌是否禁止出 | |||
bool CAndroidAI::IsEnjoinOutCard( BYTE byCard ) | |||
{ | |||
for( BYTE i = 0; i < m_byEnjoinOutCount; i++ ) | |||
{ | |||
if( byCard == m_byEnjoinOutCard[i] ) | |||
return true; | |||
} | |||
return false; | |||
} | |||
///////////////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,123 @@ | |||
#ifndef _ANDROIDAI_H_ | |||
#define _ANDROIDAI_H_ | |||
#pragma once | |||
#include "GameLogic.h" | |||
class CAndroidAIBase | |||
{ | |||
public: | |||
CAndroidAIBase(); | |||
~CAndroidAIBase(); | |||
//设置牌 | |||
void SetCardData( const BYTE cbCardData[],BYTE byCardCount, tagWeaveItem wi[MAX_WEAVE], BYTE cbWeaveCount ); | |||
//获取最差牌 | |||
BYTE GetBadlyCard(); | |||
//获取最大分 | |||
int GetMaxScore(); | |||
//思考 | |||
virtual void Think()=NULL; | |||
protected: | |||
//组合是否是边 | |||
bool IsEdge( BYTE byCard1,BYTE byCard2 ); | |||
//搜索相同牌 | |||
bool SearchSameCard( BYTE byCardData,BYTE &byIndex1,BYTE &byIndex2 ); | |||
//搜索连牌 | |||
bool SearchLinkCard( BYTE byCardData,BYTE &byIndex1,BYTE &byIndex2 ); | |||
//搜索两只同牌 | |||
bool SearchSameCardRemain( BYTE byCardData,BYTE &byIndex,BYTE byStart ); | |||
//搜索有卡连牌 | |||
bool SearchLinkCardRemain( BYTE byCardData,BYTE byLinkType,BYTE &byIndex,BYTE byStart ); | |||
//搜索牌 | |||
BYTE FindIndex( BYTE byCardData,BYTE byStart = 0 ); | |||
//在移除最佳三只后搜索牌 | |||
BYTE FindIndexRemain( BYTE byCardData,BYTE byStart = 0 ); | |||
public: | |||
//移除牌 | |||
bool RemoveCard( BYTE byCardIndex ); | |||
//移除牌值 | |||
bool RemoveCardData( BYTE byCardData ); | |||
protected: | |||
BYTE m_byCardData[MAX_COUNT]; //原始牌 | |||
BYTE m_byCardCount; //原始牌数 | |||
bool m_bSelect[MAX_COUNT]; //牌是否被选择 | |||
BYTE m_byThreeCard[MAX_COUNT]; //三张牌组合 | |||
BYTE m_byThreeCount; //三张牌组合数 | |||
BYTE m_byGoodThreeCard[MAX_COUNT]; //最佳三张牌组合 | |||
BYTE m_byGoodThreeCount; //最佳三张牌组合数 | |||
BYTE m_byTwoCard[MAX_COUNT]; //两只牌组合 | |||
BYTE m_byTwoCount; //两只牌组合数 | |||
BYTE m_byGoodTwoCard[MAX_COUNT]; //最佳两只牌组合 | |||
BYTE m_byGoodTwoCount; //最佳两只牌组合数 | |||
BYTE m_byRemainThree[MAX_COUNT]; //移去最佳三只组合后的牌 | |||
BYTE m_byRemainThreeCount; //移去最佳三只组合后的牌数 | |||
BYTE m_byRemainTwo[MAX_COUNT]; //移去最佳三只组合及两只组合后的牌 | |||
BYTE m_byRemainTwoCount; //移去最佳三只组合及两只组合后的牌数 | |||
int m_nMaxScoreThree; //最佳三只牌组合分数 | |||
int m_nMaxScoreTwo; //最佳两只牌组合分数 | |||
int m_nActionScore; //模拟操作得分 | |||
int m_nScoreThree; //临时三只牌组合分数 | |||
int m_nScoreTwo; //临时两只牌组合分数 | |||
bool m_bHaveJiang; //是否有将 | |||
BYTE m_byBadlyCard; //最差牌 | |||
//胡牌限制条件 | |||
BYTE m_cbColorCount; //花色数目 | |||
BYTE m_cbColor[4]; //花色数目 | |||
BYTE m_cbMinColorCount; //最少花色 | |||
}; | |||
class CAndroidAI:public CAndroidAIBase | |||
{ | |||
public: | |||
CAndroidAI(void); | |||
~CAndroidAI(void); | |||
//思考 | |||
virtual void Think(); | |||
//从最佳三只牌组合中搜索最差牌 | |||
BYTE GetBadlyIn3Card(); | |||
//从最佳两只牌组合中搜索最差牌 | |||
BYTE GetBadlyIn2Card(); | |||
//设置禁止出的牌 | |||
void SetEnjoinOutCard( const BYTE cbEnjoinOutCard[],BYTE cbEnjoinOutCount ); | |||
//模拟操作 | |||
void SetAction( BYTE byActionMask,BYTE byActionCard ); | |||
//重置得分 | |||
void ResetScore(); | |||
protected: | |||
//加权 | |||
int AddScore( BYTE byCardData ); | |||
//分析三只 | |||
void AnalyseThree(); | |||
//分析两只 | |||
void AnalyseTwo(); | |||
//分析单只 | |||
void AnalyseOne(); | |||
//从两只组合中分析 | |||
void SearchTwo(); | |||
//判断牌是否禁止出 | |||
bool IsEnjoinOutCard( BYTE byCard ); | |||
protected: | |||
BYTE m_byEnjoinOutCard[MAX_COUNT]; //禁止出的牌 | |||
BYTE m_byEnjoinOutCount; //禁止出的牌数 | |||
}; | |||
#endif |
@@ -0,0 +1,29 @@ | |||
#include "Stdafx.h" | |||
#include "AfxDLLx.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//¾²Ì¬±äÁ¿ | |||
static AFX_EXTENSION_MODULE AndroidServiceDLL={NULL,NULL}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//DLL Ö÷º¯Êý | |||
extern "C" INT APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) | |||
{ | |||
UNREFERENCED_PARAMETER(lpReserved); | |||
if (dwReason==DLL_PROCESS_ATTACH) | |||
{ | |||
if (!AfxInitExtensionModule(AndroidServiceDLL, hInstance)) return 0; | |||
new CDynLinkLibrary(AndroidServiceDLL); | |||
} | |||
else if (dwReason==DLL_PROCESS_DETACH) | |||
{ | |||
AfxTermExtensionModule(AndroidServiceDLL); | |||
} | |||
return 1; | |||
} | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,6 @@ | |||
; AndroidService.def : 声明 DLL 的模块参数。 | |||
LIBRARY "AndroidService" | |||
EXPORTS | |||
; 此处可以是显式导出 |
@@ -0,0 +1,123 @@ | |||
// Microsoft Visual C++ generated resource script. | |||
// | |||
#include "resource.h" | |||
#define APSTUDIO_READONLY_SYMBOLS | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Generated from the TEXTINCLUDE 2 resource. | |||
// | |||
#include "afxres.h" | |||
///////////////////////////////////////////////////////////////////////////// | |||
#undef APSTUDIO_READONLY_SYMBOLS | |||
///////////////////////////////////////////////////////////////////////////// | |||
// 中文(中华人民共和国) resources | |||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) | |||
#ifdef _WIN32 | |||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED | |||
#pragma code_page(936) | |||
#endif //_WIN32 | |||
#ifdef APSTUDIO_INVOKED | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// TEXTINCLUDE | |||
// | |||
1 TEXTINCLUDE | |||
BEGIN | |||
"resource.h\0" | |||
END | |||
2 TEXTINCLUDE | |||
BEGIN | |||
"#include ""afxres.h""\r\n" | |||
"\0" | |||
END | |||
3 TEXTINCLUDE | |||
BEGIN | |||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n" | |||
"#define _AFX_NO_OLE_RESOURCES\r\n" | |||
"#define _AFX_NO_TRACKER_RESOURCES\r\n" | |||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n" | |||
"\r\n" | |||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n" | |||
"LANGUAGE 4, 2\r\n" | |||
"#pragma code_page(936)\r\n" | |||
"#include ""res\\AndroidService.rc2"" // 不是由 Microsoft Visual C++ 编辑过的资源\r\n" | |||
"#include ""afxres.rc"" // 标准组件\r\n" | |||
"#endif\r\n" | |||
"\0" | |||
END | |||
#endif // APSTUDIO_INVOKED | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Version | |||
// | |||
VS_VERSION_INFO VERSIONINFO | |||
FILEVERSION 8,1,0,1 | |||
PRODUCTVERSION 8,1,0,1 | |||
FILEFLAGSMASK 0x3fL | |||
#ifdef _DEBUG | |||
FILEFLAGS 0x1L | |||
#else | |||
FILEFLAGS 0x0L | |||
#endif | |||
FILEOS 0x4L | |||
FILETYPE 0x2L | |||
FILESUBTYPE 0x0L | |||
BEGIN | |||
BLOCK "StringFileInfo" | |||
BEGIN | |||
BLOCK "080403a8" | |||
BEGIN | |||
VALUE "Comments", "DK" | |||
VALUE "CompanyName", "DK" | |||
VALUE "FileDescription", "机器人服务组件" | |||
VALUE "FileVersion", "8, 1, 0, 1" | |||
VALUE "InternalName", "AndroidService.dll" | |||
VALUE "LegalCopyright", "DK保留所有权利。" | |||
VALUE "OriginalFilename", "AndroidService.dll" | |||
VALUE "ProductName", "机器人服务组件" | |||
VALUE "ProductVersion", "8, 1, 0, 1" | |||
END | |||
END | |||
BLOCK "VarFileInfo" | |||
BEGIN | |||
VALUE "Translation", 0x804, 936 | |||
END | |||
END | |||
#endif // 中文(中华人民共和国) resources | |||
///////////////////////////////////////////////////////////////////////////// | |||
#ifndef APSTUDIO_INVOKED | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Generated from the TEXTINCLUDE 3 resource. | |||
// | |||
#define _AFX_NO_SPLITTER_RESOURCES | |||
#define _AFX_NO_OLE_RESOURCES | |||
#define _AFX_NO_TRACKER_RESOURCES | |||
#define _AFX_NO_PROPERTY_RESOURCES | |||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) | |||
LANGUAGE 4, 2 | |||
#pragma code_page(936) | |||
#include "res\AndroidService.rc2" // 不是由 Microsoft Visual C++ 编辑过的资源 | |||
#include "afxres.rc" // 标准组件 | |||
#endif | |||
///////////////////////////////////////////////////////////////////////////// | |||
#endif // not APSTUDIO_INVOKED | |||
@@ -0,0 +1,27 @@ | |||
Microsoft Visual Studio Solution File, Format Version 8.00 | |||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "»úÆ÷ÈË·þÎñ", "AndroidService.vcproj", "{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}" | |||
ProjectSection(ProjectDependencies) = postProject | |||
EndProjectSection | |||
EndProject | |||
Global | |||
GlobalSection(SolutionConfiguration) = preSolution | |||
Debug = Debug | |||
Debug_Unicode = Debug_Unicode | |||
Release = Release | |||
Release_Unicode = Release_Unicode | |||
EndGlobalSection | |||
GlobalSection(ProjectConfiguration) = postSolution | |||
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Debug.ActiveCfg = Debug|Win32 | |||
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Debug.Build.0 = Debug|Win32 | |||
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Debug_Unicode.ActiveCfg = Debug_Unicode|Win32 | |||
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Debug_Unicode.Build.0 = Debug_Unicode|Win32 | |||
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Release.ActiveCfg = Release|Win32 | |||
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Release.Build.0 = Release|Win32 | |||
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Release_Unicode.ActiveCfg = Release_Unicode|Win32 | |||
{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}.Release_Unicode.Build.0 = Release_Unicode|Win32 | |||
EndGlobalSection | |||
GlobalSection(ExtensibilityGlobals) = postSolution | |||
EndGlobalSection | |||
GlobalSection(ExtensibilityAddIns) = postSolution | |||
EndGlobalSection | |||
EndGlobal |
@@ -0,0 +1,477 @@ | |||
<?xml version="1.0" encoding="gb2312"?> | |||
<VisualStudioProject | |||
ProjectType="Visual C++" | |||
Version="8.00" | |||
Name="机器人服务" | |||
ProjectGUID="{E50AB39C-E7B1-4310-B49D-D14C60243A5A}" | |||
RootNamespace="AndroidService" | |||
Keyword="MFCDLLProj" | |||
> | |||
<Platforms> | |||
<Platform | |||
Name="Win32" | |||
/> | |||
</Platforms> | |||
<ToolFiles> | |||
</ToolFiles> | |||
<Configurations> | |||
<Configuration | |||
Name="Debug|Win32" | |||
OutputDirectory="Debug" | |||
IntermediateDirectory="Debug" | |||
ConfigurationType="2" | |||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | |||
UseOfMFC="2" | |||
CharacterSet="2" | |||
> | |||
<Tool | |||
Name="VCPreBuildEventTool" | |||
/> | |||
<Tool | |||
Name="VCCustomBuildTool" | |||
/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
MkTypLibCompatible="false" | |||
/> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
Optimization="0" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT" | |||
MinimalRebuild="true" | |||
BasicRuntimeChecks="3" | |||
RuntimeLibrary="3" | |||
TreatWChar_tAsBuiltInType="true" | |||
UsePrecompiledHeader="2" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="true" | |||
DebugInformationFormat="4" | |||
/> | |||
<Tool | |||
Name="VCManagedResourceCompilerTool" | |||
/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)" | |||
/> | |||
<Tool | |||
Name="VCPreLinkEventTool" | |||
/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll" | |||
LinkIncremental="2" | |||
ModuleDefinitionFile=".\AndroidServiceD.def" | |||
GenerateDebugInformation="true" | |||
SubSystem="2" | |||
ImportLibrary="Debug\AndroidServiceD.lib" | |||
TargetMachine="1" | |||
/> | |||
<Tool | |||
Name="VCALinkTool" | |||
/> | |||
<Tool | |||
Name="VCManifestTool" | |||
/> | |||
<Tool | |||
Name="VCXDCMakeTool" | |||
/> | |||
<Tool | |||
Name="VCBscMakeTool" | |||
/> | |||
<Tool | |||
Name="VCFxCopTool" | |||
/> | |||
<Tool | |||
Name="VCAppVerifierTool" | |||
/> | |||
<Tool | |||
Name="VCWebDeploymentTool" | |||
/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Debug
copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName)
" | |||
/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release|Win32" | |||
OutputDirectory="Release" | |||
IntermediateDirectory="Release" | |||
ConfigurationType="2" | |||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | |||
UseOfMFC="2" | |||
CharacterSet="2" | |||
> | |||
<Tool | |||
Name="VCPreBuildEventTool" | |||
/> | |||
<Tool | |||
Name="VCCustomBuildTool" | |||
/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
MkTypLibCompatible="false" | |||
/> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL" | |||
RuntimeLibrary="2" | |||
TreatWChar_tAsBuiltInType="true" | |||
UsePrecompiledHeader="2" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="true" | |||
DebugInformationFormat="3" | |||
/> | |||
<Tool | |||
Name="VCManagedResourceCompilerTool" | |||
/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)" | |||
/> | |||
<Tool | |||
Name="VCPreLinkEventTool" | |||
/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Release/SparrowXZAndroid.dll" | |||
LinkIncremental="1" | |||
ModuleDefinitionFile=".\AndroidService.def" | |||
GenerateDebugInformation="true" | |||
SubSystem="2" | |||
OptimizeReferences="2" | |||
EnableCOMDATFolding="2" | |||
ImportLibrary="Release\AndroidService.lib" | |||
TargetMachine="1" | |||
/> | |||
<Tool | |||
Name="VCALinkTool" | |||
/> | |||
<Tool | |||
Name="VCManifestTool" | |||
/> | |||
<Tool | |||
Name="VCXDCMakeTool" | |||
/> | |||
<Tool | |||
Name="VCBscMakeTool" | |||
/> | |||
<Tool | |||
Name="VCFxCopTool" | |||
/> | |||
<Tool | |||
Name="VCAppVerifierTool" | |||
/> | |||
<Tool | |||
Name="VCWebDeploymentTool" | |||
/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)
" | |||
/> | |||
</Configuration> | |||
<Configuration | |||
Name="Debug_Unicode|Win32" | |||
OutputDirectory="$(ConfigurationName)" | |||
IntermediateDirectory="$(ConfigurationName)" | |||
ConfigurationType="2" | |||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | |||
UseOfMFC="2" | |||
CharacterSet="1" | |||
> | |||
<Tool | |||
Name="VCPreBuildEventTool" | |||
/> | |||
<Tool | |||
Name="VCCustomBuildTool" | |||
/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
MkTypLibCompatible="false" | |||
/> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
Optimization="0" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT" | |||
MinimalRebuild="true" | |||
BasicRuntimeChecks="3" | |||
RuntimeLibrary="3" | |||
TreatWChar_tAsBuiltInType="true" | |||
UsePrecompiledHeader="2" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="true" | |||
DebugInformationFormat="4" | |||
/> | |||
<Tool | |||
Name="VCManagedResourceCompilerTool" | |||
/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)" | |||
/> | |||
<Tool | |||
Name="VCPreLinkEventTool" | |||
/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll" | |||
LinkIncremental="2" | |||
ModuleDefinitionFile=".\AndroidServiceD.def" | |||
GenerateDebugInformation="true" | |||
SubSystem="2" | |||
ImportLibrary="Debug\AndroidServiceD.lib" | |||
TargetMachine="1" | |||
/> | |||
<Tool | |||
Name="VCALinkTool" | |||
/> | |||
<Tool | |||
Name="VCManifestTool" | |||
/> | |||
<Tool | |||
Name="VCXDCMakeTool" | |||
/> | |||
<Tool | |||
Name="VCBscMakeTool" | |||
/> | |||
<Tool | |||
Name="VCFxCopTool" | |||
/> | |||
<Tool | |||
Name="VCAppVerifierTool" | |||
/> | |||
<Tool | |||
Name="VCWebDeploymentTool" | |||
/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\..\发布组件\服务器组件\Debug\Unicode
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\..\发布组件\服务器组件\Debug\Unicode\$(TargetFileName)
" | |||
/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release_Unicode|Win32" | |||
OutputDirectory="$(ConfigurationName)" | |||
IntermediateDirectory="$(ConfigurationName)" | |||
ConfigurationType="2" | |||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | |||
UseOfMFC="2" | |||
CharacterSet="1" | |||
> | |||
<Tool | |||
Name="VCPreBuildEventTool" | |||
/> | |||
<Tool | |||
Name="VCCustomBuildTool" | |||
/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
MkTypLibCompatible="false" | |||
/> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL" | |||
RuntimeLibrary="2" | |||
TreatWChar_tAsBuiltInType="true" | |||
UsePrecompiledHeader="2" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="true" | |||
DebugInformationFormat="3" | |||
/> | |||
<Tool | |||
Name="VCManagedResourceCompilerTool" | |||
/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)" | |||
/> | |||
<Tool | |||
Name="VCPreLinkEventTool" | |||
/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Release/SparrowXZAndroid.dll" | |||
LinkIncremental="1" | |||
ModuleDefinitionFile=".\AndroidService.def" | |||
GenerateDebugInformation="true" | |||
SubSystem="2" | |||
OptimizeReferences="2" | |||
EnableCOMDATFolding="2" | |||
ImportLibrary="Release\AndroidService.lib" | |||
TargetMachine="1" | |||
/> | |||
<Tool | |||
Name="VCALinkTool" | |||
/> | |||
<Tool | |||
Name="VCManifestTool" | |||
/> | |||
<Tool | |||
Name="VCXDCMakeTool" | |||
/> | |||
<Tool | |||
Name="VCBscMakeTool" | |||
/> | |||
<Tool | |||
Name="VCFxCopTool" | |||
/> | |||
<Tool | |||
Name="VCAppVerifierTool" | |||
/> | |||
<Tool | |||
Name="VCWebDeploymentTool" | |||
/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)
" | |||
/> | |||
</Configuration> | |||
</Configurations> | |||
<References> | |||
</References> | |||
<Files> | |||
<Filter | |||
Name="源文件" | |||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" | |||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" | |||
> | |||
<File | |||
RelativePath=".\AndroidAI.cpp" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidService.cpp" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidServiceManager.cpp" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidUserItemSink.cpp" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\GameLogic.cpp" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\Stdafx.cpp" | |||
> | |||
<FileConfiguration | |||
Name="Debug|Win32" | |||
> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1" | |||
/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Release|Win32" | |||
> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1" | |||
/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Debug_Unicode|Win32" | |||
> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1" | |||
/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Release_Unicode|Win32" | |||
> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1" | |||
/> | |||
</FileConfiguration> | |||
</File> | |||
</Filter> | |||
<Filter | |||
Name="头文件" | |||
Filter="h;hpp;hxx;hm;inl;inc;xsd" | |||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" | |||
> | |||
<File | |||
RelativePath=".\AndroidAI.h" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidServiceManager.h" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidUserItemSink.h" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\GameLogic.h" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\Resource.h" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\Stdafx.h" | |||
> | |||
</File> | |||
</Filter> | |||
<Filter | |||
Name="资源文件" | |||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" | |||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" | |||
> | |||
<File | |||
RelativePath=".\AndroidService.rc" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\res\AndroidService.rc2" | |||
> | |||
</File> | |||
</Filter> | |||
</Files> | |||
<Globals> | |||
</Globals> | |||
</VisualStudioProject> |
@@ -0,0 +1,339 @@ | |||
<?xml version="1.0" encoding="gb2312"?> | |||
<VisualStudioProject | |||
ProjectType="Visual C++" | |||
Version="7.10" | |||
Name="机器人服务" | |||
ProjectGUID="{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}" | |||
SccProjectName="" | |||
SccAuxPath="" | |||
SccLocalPath="" | |||
SccProvider="" | |||
Keyword="MFCDLLProj"> | |||
<Platforms> | |||
<Platform | |||
Name="Win32"/> | |||
</Platforms> | |||
<Configurations> | |||
<Configuration | |||
Name="Debug|Win32" | |||
OutputDirectory="Debug" | |||
IntermediateDirectory="Debug" | |||
ConfigurationType="2" | |||
UseOfMFC="2" | |||
CharacterSet="2"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
Optimization="0" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT" | |||
MinimalRebuild="TRUE" | |||
BasicRuntimeChecks="3" | |||
RuntimeLibrary="3" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="4"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll" | |||
LinkIncremental="2" | |||
ModuleDefinitionFile=".\AndroidServiceD.def" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
ImportLibrary="Debug\AndroidServiceD.lib" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Debug | |||
copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName) | |||
"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release|Win32" | |||
OutputDirectory="Release" | |||
IntermediateDirectory="Release" | |||
ConfigurationType="2" | |||
UseOfMFC="2" | |||
CharacterSet="2"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL" | |||
RuntimeLibrary="2" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="3"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Release/SparrowXZAndroid.dll" | |||
LinkIncremental="1" | |||
ModuleDefinitionFile=".\AndroidService.def" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
OptimizeReferences="2" | |||
EnableCOMDATFolding="2" | |||
ImportLibrary="Release\AndroidService.lib" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release | |||
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName) | |||
"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
<Configuration | |||
Name="Debug_Unicode|Win32" | |||
OutputDirectory="$(ConfigurationName)" | |||
IntermediateDirectory="$(ConfigurationName)" | |||
ConfigurationType="2" | |||
UseOfMFC="2" | |||
CharacterSet="1"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
Optimization="0" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT" | |||
MinimalRebuild="TRUE" | |||
BasicRuntimeChecks="3" | |||
RuntimeLibrary="3" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="4"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll" | |||
LinkIncremental="2" | |||
ModuleDefinitionFile=".\AndroidServiceD.def" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
ImportLibrary="Debug\AndroidServiceD.lib" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Debug | |||
copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName) | |||
"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release_Unicode|Win32" | |||
OutputDirectory="$(ConfigurationName)" | |||
IntermediateDirectory="$(ConfigurationName)" | |||
ConfigurationType="2" | |||
UseOfMFC="2" | |||
CharacterSet="1"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL" | |||
RuntimeLibrary="2" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="3"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Release/SparrowXZAndroid.dll" | |||
LinkIncremental="1" | |||
ModuleDefinitionFile=".\AndroidService.def" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
OptimizeReferences="2" | |||
EnableCOMDATFolding="2" | |||
ImportLibrary="Release\AndroidService.lib" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release | |||
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName) | |||
"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
</Configurations> | |||
<References> | |||
</References> | |||
<Files> | |||
<Filter | |||
Name="源文件" | |||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" | |||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> | |||
<File | |||
RelativePath=".\AndroidAI.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidService.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidServiceManager.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidUserItemSink.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\GameLogic.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\Stdafx.cpp"> | |||
<FileConfiguration | |||
Name="Debug|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Release|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Debug_Unicode|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Release_Unicode|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
</File> | |||
</Filter> | |||
<Filter | |||
Name="头文件" | |||
Filter="h;hpp;hxx;hm;inl;inc;xsd" | |||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> | |||
<File | |||
RelativePath=".\AndroidAI.h"> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidServiceManager.h"> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidUserItemSink.h"> | |||
</File> | |||
<File | |||
RelativePath=".\GameLogic.h"> | |||
</File> | |||
<File | |||
RelativePath=".\Resource.h"> | |||
</File> | |||
<File | |||
RelativePath=".\Stdafx.h"> | |||
</File> | |||
</Filter> | |||
<Filter | |||
Name="资源文件" | |||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" | |||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> | |||
<File | |||
RelativePath=".\AndroidService.rc"> | |||
</File> | |||
<File | |||
RelativePath=".\res\AndroidService.rc2"> | |||
</File> | |||
</Filter> | |||
</Files> | |||
<Globals> | |||
</Globals> | |||
</VisualStudioProject> |
@@ -0,0 +1,121 @@ | |||
<?xml version="1.0" encoding="gb2312"?> | |||
<VisualStudioUserFile | |||
ProjectType="Visual C++" | |||
Version="8.00" | |||
ShowAllFiles="false" | |||
> | |||
<Configurations> | |||
<Configuration | |||
Name="Debug|Win32" | |||
> | |||
<DebugSettings | |||
Command="" | |||
WorkingDirectory="" | |||
CommandArguments="" | |||
Attach="false" | |||
DebuggerType="3" | |||
Remote="1" | |||
RemoteMachine="ZGC-20110418DJO" | |||
RemoteCommand="" | |||
HttpUrl="" | |||
PDBPath="" | |||
SQLDebugging="" | |||
Environment="" | |||
EnvironmentMerge="true" | |||
DebuggerFlavor="" | |||
MPIRunCommand="" | |||
MPIRunArguments="" | |||
MPIRunWorkingDirectory="" | |||
ApplicationCommand="" | |||
ApplicationArguments="" | |||
ShimCommand="" | |||
MPIAcceptMode="" | |||
MPIAcceptFilter="" | |||
/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release|Win32" | |||
> | |||
<DebugSettings | |||
Command="" | |||
WorkingDirectory="" | |||
CommandArguments="" | |||
Attach="false" | |||
DebuggerType="3" | |||
Remote="1" | |||
RemoteMachine="ZGC-20110418DJO" | |||
RemoteCommand="" | |||
HttpUrl="" | |||
PDBPath="" | |||
SQLDebugging="" | |||
Environment="" | |||
EnvironmentMerge="true" | |||
DebuggerFlavor="" | |||
MPIRunCommand="" | |||
MPIRunArguments="" | |||
MPIRunWorkingDirectory="" | |||
ApplicationCommand="" | |||
ApplicationArguments="" | |||
ShimCommand="" | |||
MPIAcceptMode="" | |||
MPIAcceptFilter="" | |||
/> | |||
</Configuration> | |||
<Configuration | |||
Name="Debug_Unicode|Win32" | |||
> | |||
<DebugSettings | |||
Command="" | |||
WorkingDirectory="" | |||
CommandArguments="" | |||
Attach="false" | |||
DebuggerType="3" | |||
Remote="1" | |||
RemoteMachine="ZGC-20110418DJO" | |||
RemoteCommand="" | |||
HttpUrl="" | |||
PDBPath="" | |||
SQLDebugging="" | |||
Environment="" | |||
EnvironmentMerge="true" | |||
DebuggerFlavor="" | |||
MPIRunCommand="" | |||
MPIRunArguments="" | |||
MPIRunWorkingDirectory="" | |||
ApplicationCommand="" | |||
ApplicationArguments="" | |||
ShimCommand="" | |||
MPIAcceptMode="" | |||
MPIAcceptFilter="" | |||
/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release_Unicode|Win32" | |||
> | |||
<DebugSettings | |||
Command="" | |||
WorkingDirectory="" | |||
CommandArguments="" | |||
Attach="false" | |||
DebuggerType="3" | |||
Remote="1" | |||
RemoteMachine="ZGC-20110418DJO" | |||
RemoteCommand="" | |||
HttpUrl="" | |||
PDBPath="" | |||
SQLDebugging="" | |||
Environment="" | |||
EnvironmentMerge="true" | |||
DebuggerFlavor="" | |||
MPIRunCommand="" | |||
MPIRunArguments="" | |||
MPIRunWorkingDirectory="" | |||
ApplicationCommand="" | |||
ApplicationArguments="" | |||
ShimCommand="" | |||
MPIAcceptMode="" | |||
MPIAcceptFilter="" | |||
/> | |||
</Configuration> | |||
</Configurations> | |||
</VisualStudioUserFile> |
@@ -0,0 +1,265 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<ItemGroup Label="ProjectConfigurations"> | |||
<ProjectConfiguration Include="Debug_Unicode|Win32"> | |||
<Configuration>Debug_Unicode</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Debug|Win32"> | |||
<Configuration>Debug</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Release_Unicode|Win32"> | |||
<Configuration>Release_Unicode</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Release|Win32"> | |||
<Configuration>Release</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
</ItemGroup> | |||
<PropertyGroup Label="Globals"> | |||
<ProjectName>机器人服务</ProjectName> | |||
<ProjectGuid>{E50AB39C-E7B1-4310-B49D-D14C60243A5A}</ProjectGuid> | |||
<RootNamespace>AndroidService</RootNamespace> | |||
<Keyword>MFCDLLProj</Keyword> | |||
</PropertyGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>Unicode</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>Unicode</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>MultiByte</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>MultiByte</CharacterSet> | |||
</PropertyGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | |||
<ImportGroup Label="ExtensionSettings"> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<PropertyGroup Label="UserMacros" /> | |||
<PropertyGroup> | |||
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||
<OutDir>Debug\</OutDir> | |||
<IntDir>Debug\</IntDir> | |||
<LinkIncremental>true</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |||
<OutDir>Release\</OutDir> | |||
<IntDir>Release\</IntDir> | |||
<LinkIncremental>false</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'"> | |||
<OutDir>$(Configuration)\</OutDir> | |||
<IntDir>$(Configuration)\</IntDir> | |||
<LinkIncremental>true</LinkIncremental> | |||
<TargetName>SparrowXZAndroid</TargetName> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'"> | |||
<OutDir>$(Configuration)\</OutDir> | |||
<IntDir>$(Configuration)\</IntDir> | |||
<LinkIncremental>false</LinkIncremental> | |||
<TargetName>SparrowXZAndroid</TargetName> | |||
</PropertyGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<Optimization>Disabled</Optimization> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>true</MinimalRebuild> | |||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | |||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../运行/Debug/SparrowXZAndroid.dll</OutputFile> | |||
<ModuleDefinitionFile>.\AndroidServiceD.def</ModuleDefinitionFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<ImportLibrary>Debug\AndroidServiceD.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\服务器组件\Debug | |||
copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../运行/Release/SparrowXZAndroid.dll</OutputFile> | |||
<ModuleDefinitionFile>.\AndroidService.def</ModuleDefinitionFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<OptimizeReferences>true</OptimizeReferences> | |||
<EnableCOMDATFolding>true</EnableCOMDATFolding> | |||
<ImportLibrary>Release\AndroidService.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\服务器组件\Release | |||
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<Optimization>Disabled</Optimization> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>true</MinimalRebuild> | |||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | |||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Debug/Unicode/SparrowXZAndroid.dll</OutputFile> | |||
<ModuleDefinitionFile>.\AndroidServiceD.def</ModuleDefinitionFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<ImportLibrary>Debug\AndroidServiceD.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\..\Publish\Server\Debug_Unicode\ | |||
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\..\Publish\Server\Debug_Unicode\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Release/unicode/SparrowXZAndroid.dll</OutputFile> | |||
<ModuleDefinitionFile>.\AndroidService.def</ModuleDefinitionFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<OptimizeReferences>true</OptimizeReferences> | |||
<EnableCOMDATFolding>true</EnableCOMDATFolding> | |||
<ImportLibrary>Release\AndroidService.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\..\Publish\Server\Release_Unicode | |||
copy /y ..\..\..\..\运行\Release\Unicode\$(TargetFileName) ..\..\..\..\Publish\Server\Release_Unicode\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
</ItemDefinitionGroup> | |||
<ItemGroup> | |||
<ClCompile Include="AndroidAI.cpp" /> | |||
<ClCompile Include="AndroidService.cpp" /> | |||
<ClCompile Include="AndroidServiceManager.cpp" /> | |||
<ClCompile Include="AndroidUserItemSink.cpp" /> | |||
<ClCompile Include="GameLogic.cpp" /> | |||
<ClCompile Include="Stdafx.cpp"> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> | |||
</ClCompile> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClInclude Include="AndroidAI.h" /> | |||
<ClInclude Include="AndroidServiceManager.h" /> | |||
<ClInclude Include="AndroidUserItemSink.h" /> | |||
<ClInclude Include="GameLogic.h" /> | |||
<ClInclude Include="Resource.h" /> | |||
<ClInclude Include="Stdafx.h" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ResourceCompile Include="AndroidService.rc" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="res\AndroidService.rc2" /> | |||
</ItemGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | |||
<ImportGroup Label="ExtensionTargets"> | |||
</ImportGroup> | |||
</Project> |
@@ -0,0 +1,67 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<ItemGroup> | |||
<Filter Include="源文件"> | |||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> | |||
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> | |||
</Filter> | |||
<Filter Include="头文件"> | |||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> | |||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> | |||
</Filter> | |||
<Filter Include="资源文件"> | |||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> | |||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions> | |||
</Filter> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClCompile Include="AndroidAI.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="AndroidService.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="AndroidServiceManager.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="AndroidUserItemSink.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="GameLogic.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="Stdafx.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClInclude Include="AndroidAI.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="AndroidServiceManager.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="AndroidUserItemSink.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="GameLogic.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="Resource.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="Stdafx.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ResourceCompile Include="AndroidService.rc"> | |||
<Filter>资源文件</Filter> | |||
</ResourceCompile> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="res\AndroidService.rc2"> | |||
<Filter>资源文件</Filter> | |||
</None> | |||
</ItemGroup> | |||
</Project> |
@@ -0,0 +1,339 @@ | |||
<?xml version="1.0" encoding="gb2312"?> | |||
<VisualStudioProject | |||
ProjectType="Visual C++" | |||
Version="7.10" | |||
Name="机器人服务" | |||
ProjectGUID="{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}" | |||
SccProjectName="" | |||
SccAuxPath="" | |||
SccLocalPath="" | |||
SccProvider="" | |||
Keyword="MFCDLLProj"> | |||
<Platforms> | |||
<Platform | |||
Name="Win32"/> | |||
</Platforms> | |||
<Configurations> | |||
<Configuration | |||
Name="Debug|Win32" | |||
OutputDirectory="Debug" | |||
IntermediateDirectory="Debug" | |||
ConfigurationType="2" | |||
UseOfMFC="2" | |||
CharacterSet="2"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
Optimization="0" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT" | |||
MinimalRebuild="TRUE" | |||
BasicRuntimeChecks="3" | |||
RuntimeLibrary="3" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="4"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll" | |||
LinkIncremental="2" | |||
ModuleDefinitionFile=".\AndroidServiceD.def" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
ImportLibrary="Debug\AndroidServiceD.lib" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Debug | |||
copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName) | |||
"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release|Win32" | |||
OutputDirectory="Release" | |||
IntermediateDirectory="Release" | |||
ConfigurationType="2" | |||
UseOfMFC="2" | |||
CharacterSet="2"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL" | |||
RuntimeLibrary="2" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="3"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Release/SparrowXZAndroid.dll" | |||
LinkIncremental="1" | |||
ModuleDefinitionFile=".\AndroidService.def" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
OptimizeReferences="2" | |||
EnableCOMDATFolding="2" | |||
ImportLibrary="Release\AndroidService.lib" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release | |||
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName) | |||
"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
<Configuration | |||
Name="Debug_Unicode|Win32" | |||
OutputDirectory="$(ConfigurationName)" | |||
IntermediateDirectory="$(ConfigurationName)" | |||
ConfigurationType="2" | |||
UseOfMFC="2" | |||
CharacterSet="1"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
Optimization="0" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT;_UNICODE" | |||
MinimalRebuild="TRUE" | |||
BasicRuntimeChecks="3" | |||
RuntimeLibrary="3" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="4"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../../运行/Debug/Unicode/SparrowXZAndroid.dll" | |||
LinkIncremental="2" | |||
ModuleDefinitionFile=".\AndroidServiceD.def" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
ImportLibrary="$(OutDir)\AndroidServiceD.lib" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\..\发布组件\服务器组件\Debug\Unicode | |||
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\..\发布组件\服务器组件\Debug\Unicode\$(TargetFileName) | |||
"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release_Unicode|Win32" | |||
OutputDirectory="$(ConfigurationName)" | |||
IntermediateDirectory="$(ConfigurationName)" | |||
ConfigurationType="2" | |||
UseOfMFC="2" | |||
CharacterSet="1"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL" | |||
RuntimeLibrary="2" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="3"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Release/SparrowXZAndroid.dll" | |||
LinkIncremental="1" | |||
ModuleDefinitionFile=".\AndroidService.def" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
OptimizeReferences="2" | |||
EnableCOMDATFolding="2" | |||
ImportLibrary="Release\AndroidService.lib" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release | |||
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName) | |||
"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
</Configurations> | |||
<References> | |||
</References> | |||
<Files> | |||
<Filter | |||
Name="源文件" | |||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" | |||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> | |||
<File | |||
RelativePath=".\AndroidAI.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidService.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidServiceManager.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidUserItemSink.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\GameLogic.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\Stdafx.cpp"> | |||
<FileConfiguration | |||
Name="Debug|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Release|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Debug_Unicode|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Release_Unicode|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
</File> | |||
</Filter> | |||
<Filter | |||
Name="头文件" | |||
Filter="h;hpp;hxx;hm;inl;inc;xsd" | |||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> | |||
<File | |||
RelativePath=".\AndroidAI.h"> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidServiceManager.h"> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidUserItemSink.h"> | |||
</File> | |||
<File | |||
RelativePath=".\GameLogic.h"> | |||
</File> | |||
<File | |||
RelativePath=".\Resource.h"> | |||
</File> | |||
<File | |||
RelativePath=".\Stdafx.h"> | |||
</File> | |||
</Filter> | |||
<Filter | |||
Name="资源文件" | |||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" | |||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> | |||
<File | |||
RelativePath=".\AndroidService.rc"> | |||
</File> | |||
<File | |||
RelativePath=".\res\AndroidService.rc2"> | |||
</File> | |||
</Filter> | |||
</Files> | |||
<Globals> | |||
</Globals> | |||
</VisualStudioProject> |
@@ -0,0 +1,265 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<ItemGroup Label="ProjectConfigurations"> | |||
<ProjectConfiguration Include="Debug_Unicode|Win32"> | |||
<Configuration>Debug_Unicode</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Debug|Win32"> | |||
<Configuration>Debug</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Release_Unicode|Win32"> | |||
<Configuration>Release_Unicode</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Release|Win32"> | |||
<Configuration>Release</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
</ItemGroup> | |||
<PropertyGroup Label="Globals"> | |||
<ProjectName>机器人服务</ProjectName> | |||
<ProjectGuid>{487AE71A-160E-49E0-A1EF-6D115F6B8A3F}</ProjectGuid> | |||
<SccProjectName /> | |||
<SccAuxPath /> | |||
<SccLocalPath /> | |||
<SccProvider /> | |||
<Keyword>MFCDLLProj</Keyword> | |||
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> | |||
</PropertyGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v140</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>Unicode</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v140</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>Unicode</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v140</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>MultiByte</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v140</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>MultiByte</CharacterSet> | |||
</PropertyGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | |||
<ImportGroup Label="ExtensionSettings"> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
</ImportGroup> | |||
<PropertyGroup Label="UserMacros" /> | |||
<PropertyGroup> | |||
<_ProjectFileVersion>14.0.25123.0</_ProjectFileVersion> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||
<OutDir>Debug\</OutDir> | |||
<IntDir>Debug\</IntDir> | |||
<LinkIncremental>true</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |||
<OutDir>Release\</OutDir> | |||
<IntDir>Release\</IntDir> | |||
<LinkIncremental>false</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'"> | |||
<OutDir>$(Configuration)\</OutDir> | |||
<IntDir>$(Configuration)\</IntDir> | |||
<LinkIncremental>true</LinkIncremental> | |||
<TargetName>SparrowXZAndroid</TargetName> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'"> | |||
<OutDir>$(Configuration)\</OutDir> | |||
<IntDir>$(Configuration)\</IntDir> | |||
<LinkIncremental>false</LinkIncremental> | |||
<TargetName>SparrowXZAndroid</TargetName> | |||
</PropertyGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||
<ClCompile> | |||
<Optimization>Disabled</Optimization> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>true</MinimalRebuild> | |||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | |||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |||
</ClCompile> | |||
<Link> | |||
<OutputFile>../../../运行/Debug/SparrowXZAndroid.dll</OutputFile> | |||
<ModuleDefinitionFile>.\AndroidServiceD.def</ModuleDefinitionFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<ImportLibrary>Debug\AndroidServiceD.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<Midl> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\服务器组件\Debug | |||
copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |||
<ClCompile> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | |||
</ClCompile> | |||
<Link> | |||
<OutputFile>../../../运行/Release/SparrowXZAndroid.dll</OutputFile> | |||
<ModuleDefinitionFile>.\AndroidService.def</ModuleDefinitionFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<OptimizeReferences>true</OptimizeReferences> | |||
<EnableCOMDATFolding>true</EnableCOMDATFolding> | |||
<ImportLibrary>Release\AndroidService.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<Midl> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\服务器组件\Release | |||
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'"> | |||
<ClCompile> | |||
<Optimization>Disabled</Optimization> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>true</MinimalRebuild> | |||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | |||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |||
</ClCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Debug/Unicode/SparrowXZAndroid.dll</OutputFile> | |||
<ModuleDefinitionFile>.\AndroidServiceD.def</ModuleDefinitionFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<ImportLibrary>$(OutDir)AndroidServiceD.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<Midl> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\..\Publish\Server\Debug_Unicode\ | |||
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\..\Publish\Server\Debug_Unicode\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'"> | |||
<ClCompile> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | |||
</ClCompile> | |||
<Link> | |||
<OutputFile>../../../运行/Release/SparrowXZAndroid.dll</OutputFile> | |||
<ModuleDefinitionFile>.\AndroidService.def</ModuleDefinitionFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<OptimizeReferences>true</OptimizeReferences> | |||
<EnableCOMDATFolding>true</EnableCOMDATFolding> | |||
<ImportLibrary>Release\AndroidService.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<Midl> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\服务器组件\Release | |||
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
</ItemDefinitionGroup> | |||
<ItemGroup> | |||
<ClCompile Include="AndroidAI.cpp" /> | |||
<ClCompile Include="AndroidService.cpp" /> | |||
<ClCompile Include="AndroidServiceManager.cpp" /> | |||
<ClCompile Include="AndroidUserItemSink.cpp" /> | |||
<ClCompile Include="GameLogic.cpp" /> | |||
<ClCompile Include="Stdafx.cpp"> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> | |||
</ClCompile> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClInclude Include="AndroidAI.h" /> | |||
<ClInclude Include="AndroidServiceManager.h" /> | |||
<ClInclude Include="AndroidUserItemSink.h" /> | |||
<ClInclude Include="GameLogic.h" /> | |||
<ClInclude Include="Resource.h" /> | |||
<ClInclude Include="Stdafx.h" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ResourceCompile Include="AndroidService.rc" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="res\AndroidService.rc2" /> | |||
</ItemGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | |||
<ImportGroup Label="ExtensionTargets"> | |||
</ImportGroup> | |||
</Project> |
@@ -0,0 +1,67 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<ItemGroup> | |||
<Filter Include="源文件"> | |||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> | |||
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> | |||
</Filter> | |||
<Filter Include="头文件"> | |||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> | |||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> | |||
</Filter> | |||
<Filter Include="资源文件"> | |||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> | |||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions> | |||
</Filter> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClCompile Include="AndroidAI.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="AndroidService.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="AndroidServiceManager.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="AndroidUserItemSink.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="GameLogic.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="Stdafx.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClInclude Include="AndroidAI.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="AndroidServiceManager.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="AndroidUserItemSink.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="GameLogic.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="Resource.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="Stdafx.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ResourceCompile Include="AndroidService.rc"> | |||
<Filter>资源文件</Filter> | |||
</ResourceCompile> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="res\AndroidService.rc2"> | |||
<Filter>资源文件</Filter> | |||
</None> | |||
</ItemGroup> | |||
</Project> |
@@ -0,0 +1,4 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<PropertyGroup /> | |||
</Project> |
@@ -0,0 +1,477 @@ | |||
<?xml version="1.0" encoding="gb2312"?> | |||
<VisualStudioProject | |||
ProjectType="Visual C++" | |||
Version="8.00" | |||
Name="机器人服务" | |||
ProjectGUID="{E50AB39C-E7B1-4310-B49D-D14C60243A5A}" | |||
RootNamespace="AndroidService" | |||
Keyword="MFCDLLProj" | |||
> | |||
<Platforms> | |||
<Platform | |||
Name="Win32" | |||
/> | |||
</Platforms> | |||
<ToolFiles> | |||
</ToolFiles> | |||
<Configurations> | |||
<Configuration | |||
Name="Debug|Win32" | |||
OutputDirectory="Debug" | |||
IntermediateDirectory="Debug" | |||
ConfigurationType="2" | |||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | |||
UseOfMFC="2" | |||
CharacterSet="2" | |||
> | |||
<Tool | |||
Name="VCPreBuildEventTool" | |||
/> | |||
<Tool | |||
Name="VCCustomBuildTool" | |||
/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
MkTypLibCompatible="false" | |||
/> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
Optimization="0" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT" | |||
MinimalRebuild="true" | |||
BasicRuntimeChecks="3" | |||
RuntimeLibrary="3" | |||
TreatWChar_tAsBuiltInType="true" | |||
UsePrecompiledHeader="2" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="true" | |||
DebugInformationFormat="4" | |||
/> | |||
<Tool | |||
Name="VCManagedResourceCompilerTool" | |||
/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)" | |||
/> | |||
<Tool | |||
Name="VCPreLinkEventTool" | |||
/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll" | |||
LinkIncremental="2" | |||
ModuleDefinitionFile=".\AndroidServiceD.def" | |||
GenerateDebugInformation="true" | |||
SubSystem="2" | |||
ImportLibrary="Debug\AndroidServiceD.lib" | |||
TargetMachine="1" | |||
/> | |||
<Tool | |||
Name="VCALinkTool" | |||
/> | |||
<Tool | |||
Name="VCManifestTool" | |||
/> | |||
<Tool | |||
Name="VCXDCMakeTool" | |||
/> | |||
<Tool | |||
Name="VCBscMakeTool" | |||
/> | |||
<Tool | |||
Name="VCFxCopTool" | |||
/> | |||
<Tool | |||
Name="VCAppVerifierTool" | |||
/> | |||
<Tool | |||
Name="VCWebDeploymentTool" | |||
/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Debug
copy /y ..\..\..\运行\Debug\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\$(TargetFileName)
" | |||
/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release|Win32" | |||
OutputDirectory="Release" | |||
IntermediateDirectory="Release" | |||
ConfigurationType="2" | |||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | |||
UseOfMFC="2" | |||
CharacterSet="2" | |||
> | |||
<Tool | |||
Name="VCPreBuildEventTool" | |||
/> | |||
<Tool | |||
Name="VCCustomBuildTool" | |||
/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
MkTypLibCompatible="false" | |||
/> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL" | |||
RuntimeLibrary="2" | |||
TreatWChar_tAsBuiltInType="true" | |||
UsePrecompiledHeader="2" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="true" | |||
DebugInformationFormat="3" | |||
/> | |||
<Tool | |||
Name="VCManagedResourceCompilerTool" | |||
/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)" | |||
/> | |||
<Tool | |||
Name="VCPreLinkEventTool" | |||
/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Release/SparrowXZAndroid.dll" | |||
LinkIncremental="1" | |||
ModuleDefinitionFile=".\AndroidService.def" | |||
GenerateDebugInformation="true" | |||
SubSystem="2" | |||
OptimizeReferences="2" | |||
EnableCOMDATFolding="2" | |||
ImportLibrary="Release\AndroidService.lib" | |||
TargetMachine="1" | |||
/> | |||
<Tool | |||
Name="VCALinkTool" | |||
/> | |||
<Tool | |||
Name="VCManifestTool" | |||
/> | |||
<Tool | |||
Name="VCXDCMakeTool" | |||
/> | |||
<Tool | |||
Name="VCBscMakeTool" | |||
/> | |||
<Tool | |||
Name="VCFxCopTool" | |||
/> | |||
<Tool | |||
Name="VCAppVerifierTool" | |||
/> | |||
<Tool | |||
Name="VCWebDeploymentTool" | |||
/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)
" | |||
/> | |||
</Configuration> | |||
<Configuration | |||
Name="Debug_Unicode|Win32" | |||
OutputDirectory="$(ConfigurationName)" | |||
IntermediateDirectory="$(ConfigurationName)" | |||
ConfigurationType="2" | |||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | |||
UseOfMFC="2" | |||
CharacterSet="1" | |||
> | |||
<Tool | |||
Name="VCPreBuildEventTool" | |||
/> | |||
<Tool | |||
Name="VCCustomBuildTool" | |||
/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
MkTypLibCompatible="false" | |||
/> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
Optimization="0" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_AFXEXT" | |||
MinimalRebuild="true" | |||
BasicRuntimeChecks="3" | |||
RuntimeLibrary="3" | |||
TreatWChar_tAsBuiltInType="true" | |||
UsePrecompiledHeader="2" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="true" | |||
DebugInformationFormat="4" | |||
/> | |||
<Tool | |||
Name="VCManagedResourceCompilerTool" | |||
/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)" | |||
/> | |||
<Tool | |||
Name="VCPreLinkEventTool" | |||
/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Debug/SparrowXZAndroid.dll" | |||
LinkIncremental="2" | |||
ModuleDefinitionFile=".\AndroidServiceD.def" | |||
GenerateDebugInformation="true" | |||
SubSystem="2" | |||
ImportLibrary="Debug\AndroidServiceD.lib" | |||
TargetMachine="1" | |||
/> | |||
<Tool | |||
Name="VCALinkTool" | |||
/> | |||
<Tool | |||
Name="VCManifestTool" | |||
/> | |||
<Tool | |||
Name="VCXDCMakeTool" | |||
/> | |||
<Tool | |||
Name="VCBscMakeTool" | |||
/> | |||
<Tool | |||
Name="VCFxCopTool" | |||
/> | |||
<Tool | |||
Name="VCAppVerifierTool" | |||
/> | |||
<Tool | |||
Name="VCWebDeploymentTool" | |||
/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\..\发布组件\服务器组件\Debug\Unicode
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\..\发布组件\服务器组件\Debug\Unicode\$(TargetFileName)
" | |||
/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release_Unicode|Win32" | |||
OutputDirectory="$(ConfigurationName)" | |||
IntermediateDirectory="$(ConfigurationName)" | |||
ConfigurationType="2" | |||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" | |||
UseOfMFC="2" | |||
CharacterSet="1" | |||
> | |||
<Tool | |||
Name="VCPreBuildEventTool" | |||
/> | |||
<Tool | |||
Name="VCCustomBuildTool" | |||
/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool" | |||
/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
MkTypLibCompatible="false" | |||
/> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_AFXEXT;ANDROID_SERVICE_DLL" | |||
RuntimeLibrary="2" | |||
TreatWChar_tAsBuiltInType="true" | |||
UsePrecompiledHeader="2" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="true" | |||
DebugInformationFormat="3" | |||
/> | |||
<Tool | |||
Name="VCManagedResourceCompilerTool" | |||
/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)" | |||
/> | |||
<Tool | |||
Name="VCPreLinkEventTool" | |||
/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../运行/Release/SparrowXZAndroid.dll" | |||
LinkIncremental="1" | |||
ModuleDefinitionFile=".\AndroidService.def" | |||
GenerateDebugInformation="true" | |||
SubSystem="2" | |||
OptimizeReferences="2" | |||
EnableCOMDATFolding="2" | |||
ImportLibrary="Release\AndroidService.lib" | |||
TargetMachine="1" | |||
/> | |||
<Tool | |||
Name="VCALinkTool" | |||
/> | |||
<Tool | |||
Name="VCManifestTool" | |||
/> | |||
<Tool | |||
Name="VCXDCMakeTool" | |||
/> | |||
<Tool | |||
Name="VCBscMakeTool" | |||
/> | |||
<Tool | |||
Name="VCFxCopTool" | |||
/> | |||
<Tool | |||
Name="VCAppVerifierTool" | |||
/> | |||
<Tool | |||
Name="VCWebDeploymentTool" | |||
/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\服务器组件\Release
copy /y ..\..\..\运行\Release\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\$(TargetFileName)
" | |||
/> | |||
</Configuration> | |||
</Configurations> | |||
<References> | |||
</References> | |||
<Files> | |||
<Filter | |||
Name="源文件" | |||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" | |||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" | |||
> | |||
<File | |||
RelativePath=".\AndroidAI.cpp" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidService.cpp" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidServiceManager.cpp" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidUserItemSink.cpp" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\GameLogic.cpp" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\Stdafx.cpp" | |||
> | |||
<FileConfiguration | |||
Name="Debug|Win32" | |||
> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1" | |||
/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Release|Win32" | |||
> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1" | |||
/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Debug_Unicode|Win32" | |||
> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1" | |||
/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Release_Unicode|Win32" | |||
> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1" | |||
/> | |||
</FileConfiguration> | |||
</File> | |||
</Filter> | |||
<Filter | |||
Name="头文件" | |||
Filter="h;hpp;hxx;hm;inl;inc;xsd" | |||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" | |||
> | |||
<File | |||
RelativePath=".\AndroidAI.h" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidServiceManager.h" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\AndroidUserItemSink.h" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\GameLogic.h" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\Resource.h" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\Stdafx.h" | |||
> | |||
</File> | |||
</Filter> | |||
<Filter | |||
Name="资源文件" | |||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" | |||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" | |||
> | |||
<File | |||
RelativePath=".\AndroidService.rc" | |||
> | |||
</File> | |||
<File | |||
RelativePath=".\res\AndroidService.rc2" | |||
> | |||
</File> | |||
</Filter> | |||
</Files> | |||
<Globals> | |||
</Globals> | |||
</VisualStudioProject> |
@@ -0,0 +1,6 @@ | |||
; AndroidServiceD.def : 声明 DLL 的模块参数。 | |||
LIBRARY "AndroidServiceD" | |||
EXPORTS | |||
; 此处可以是显式导出 |
@@ -0,0 +1,92 @@ | |||
#include "StdAfx.h" | |||
#include "AndroidServiceManager.h" | |||
#include "AndroidUserItemSink.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//构造函数 | |||
CAndroidService::CAndroidService() | |||
{ | |||
} | |||
//析构函数 | |||
CAndroidService::~CAndroidService() | |||
{ | |||
} | |||
//接口查询 | |||
void * CAndroidService::QueryInterface(const IID & Guid, DWORD dwQueryVer) | |||
{ | |||
QUERYINTERFACE(IGameServiceManager,Guid,dwQueryVer); | |||
QUERYINTERFACE_IUNKNOWNEX(IGameServiceManager,Guid,dwQueryVer); | |||
return NULL; | |||
} | |||
//创建机器 | |||
VOID * CAndroidService::CreateAndroidUserItemSink(REFGUID Guid, DWORD dwQueryVer) | |||
{ | |||
//变量定义 | |||
CAndroidUserItemSink * pAndroidUserItemSink=NULL; | |||
try | |||
{ | |||
//建立对象 | |||
pAndroidUserItemSink=new CAndroidUserItemSink(); | |||
if (pAndroidUserItemSink==NULL) throw TEXT("创建失败"); | |||
//查询接口 | |||
VOID * pObject=pAndroidUserItemSink->QueryInterface(Guid,dwQueryVer); | |||
if (pObject==NULL) throw TEXT("接口查询失败"); | |||
return pObject; | |||
} | |||
catch (...) {} | |||
//删除对象 | |||
SafeDelete(pAndroidUserItemSink); | |||
return NULL; | |||
} | |||
//创建游戏桌 | |||
VOID * CAndroidService::CreateTableFrameSink(REFGUID Guid, DWORD dwQueryVer) | |||
{ | |||
return NULL; | |||
} | |||
//创建数据 | |||
VOID * CAndroidService::CreateGameDataBaseEngineSink(REFGUID Guid, DWORD dwQueryVer) | |||
{ | |||
return NULL; | |||
} | |||
//获取属性 | |||
bool CAndroidService::GetServiceAttrib(tagGameServiceAttrib & GameServiceAttrib) | |||
{ | |||
return true; | |||
} | |||
//参数修改 | |||
bool CAndroidService::RectifyParameter(tagGameServiceOption & GameServiceOption) | |||
{ | |||
//效验参数 | |||
ASSERT(&GameServiceOption!=NULL); | |||
if (&GameServiceOption==NULL) return false; | |||
//单元积分 | |||
GameServiceOption.lCellScore -=__max(1L,GameServiceOption.lCellScore); | |||
//积分下限 | |||
GameServiceOption.lMinTableScore=__max(0L,GameServiceOption.lMinTableScore); | |||
//积分上限 | |||
if (GameServiceOption.lRestrictScore!=0L) | |||
{ | |||
GameServiceOption.lRestrictScore=__max(GameServiceOption.lRestrictScore,GameServiceOption.lMinTableScore); | |||
} | |||
return true; | |||
} | |||
//建立对象 | |||
DECLARE_CREATE_MODULE(AndroidService) | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,46 @@ | |||
#ifndef ANDROID_SERVICE_HEAD_FILE | |||
#define ANDROID_SERVICE_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//游戏服务器管理类 | |||
class CAndroidService : public IGameServiceManager | |||
{ | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CAndroidService(void); | |||
//析构函数 | |||
virtual ~CAndroidService(void); | |||
//基础接口 | |||
public: | |||
//释放对象 | |||
virtual VOID Release() { return; } | |||
//接口查询 | |||
virtual VOID * QueryInterface(const IID & Guid, DWORD dwQueryVer); | |||
//创建接口 | |||
public: | |||
//创建桌子 | |||
virtual VOID * CreateTableFrameSink(REFGUID Guid, DWORD dwQueryVer); | |||
//创建机器 | |||
virtual VOID * CreateAndroidUserItemSink(REFGUID Guid, DWORD dwQueryVer); | |||
//创建数据 | |||
virtual VOID * CreateGameDataBaseEngineSink(REFGUID Guid, DWORD dwQueryVer); | |||
//参数接口 | |||
public: | |||
//组件属性 | |||
virtual bool GetServiceAttrib(tagGameServiceAttrib & GameServiceAttrib); | |||
//调整参数 | |||
virtual bool RectifyParameter(tagGameServiceOption & GameServiceOption); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,140 @@ | |||
#ifndef ANDROID_USER_ITEM_SINK_HEAD_FILE | |||
#define ANDROID_USER_ITEM_SINK_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "GameLogic.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//出牌结果 | |||
struct tagOutCardResult | |||
{ | |||
BYTE cbOperateCode; //出牌代码 | |||
BYTE cbOperateCard; //出牌值 | |||
}; | |||
//听牌分析结果 | |||
struct tagTingCardResult | |||
{ | |||
BYTE bAbandonCount; //可丢弃牌数 | |||
BYTE bAbandonCard[MAX_COUNT]; //可丢弃牌 | |||
BYTE bTingCardCount[MAX_COUNT]; //听牌数目 | |||
BYTE bTingCard[MAX_COUNT][MAX_COUNT-1]; //听牌 | |||
BYTE bRemainCount[MAX_COUNT]; //听的牌的剩余数 | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//机器人类 | |||
class CAndroidUserItemSink : public IAndroidUserItemSink | |||
{ | |||
//用户变量 | |||
protected: | |||
WORD m_wBankerUser; //庄家用户 | |||
WORD m_wCurrentUser; //当前用户 | |||
BYTE m_cbActionMask; //动作标识 | |||
BYTE m_cbActionCard; //操作牌 | |||
//扑克变量 | |||
protected: | |||
BYTE m_cbLeftCardCount; //剩余数目 | |||
BYTE m_cbCardIndex[GAME_PLAYER][MAX_INDEX]; //手中扑克 | |||
BYTE m_cbRepertoryCard[MAX_REPERTORY]; //库存扑克 | |||
//组合扑克 | |||
protected: | |||
BYTE m_cbWeaveCount[GAME_PLAYER]; //组合数目 | |||
tagWeaveItem m_WeaveItemArray[GAME_PLAYER][MAX_WEAVE]; //组合扑克 | |||
//出牌信息 | |||
protected: | |||
WORD m_wOutCardUser; //出牌用户 | |||
BYTE m_cbOutCardData; //出牌扑克 | |||
BYTE m_cbDiscardCount[GAME_PLAYER]; //丢弃数目 | |||
BYTE m_cbDiscardCard[GAME_PLAYER][55]; //丢弃记录 | |||
//控件变量 | |||
protected: | |||
CGameLogic m_GameLogic; //游戏逻辑 | |||
IAndroidUserItem * m_pIAndroidUserItem; //用户接口 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CAndroidUserItemSink(); | |||
//析构函数 | |||
virtual ~CAndroidUserItemSink(); | |||
//基础接口 | |||
public: | |||
//释放对象 | |||
virtual VOID Release() { delete this; } | |||
//接口查询 | |||
virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer); | |||
//控制接口 | |||
public: | |||
//初始接口 | |||
virtual bool Initialization(IUnknownEx * pIUnknownEx); | |||
//重置接口 | |||
virtual bool RepositionSink(); | |||
//游戏事件 | |||
public: | |||
//时间消息 | |||
virtual bool OnEventTimer(UINT nTimerID); | |||
//游戏消息 | |||
virtual bool OnEventGameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize); | |||
//游戏消息 | |||
virtual bool OnEventFrameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize); | |||
//场景消息 | |||
virtual bool OnEventSceneMessage(BYTE cbGameStatus, bool bLookonOther, VOID * pData, WORD wDataSize); | |||
//用户事件 | |||
public: | |||
//用户进入 | |||
virtual VOID OnEventUserEnter(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser); | |||
//用户离开 | |||
virtual VOID OnEventUserLeave(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser); | |||
//用户积分 | |||
virtual VOID OnEventUserScore(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser); | |||
//用户状态 | |||
virtual VOID OnEventUserStatus(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser); | |||
//用户段位 | |||
virtual VOID OnEventUserSegment(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser); | |||
//消息处理 | |||
protected: | |||
//游戏开始 | |||
bool OnSubGameStart(const void * pBuffer, WORD wDataSize); | |||
//用户出牌 | |||
bool OnSubOutCard(const void * pBuffer, WORD wDataSize); | |||
//发牌消息 | |||
bool OnSubSendCard(const void * pBuffer, WORD wDataSize); | |||
//操作提示 | |||
bool OnSubOperateNotify(const void * pBuffer, WORD wDataSize); | |||
//操作结果 | |||
bool OnSubOperateResult(const void * pBuffer, WORD wDataSize); | |||
//游戏结束 | |||
bool OnSubGameEnd(const void * pBuffer, WORD wDataSize); | |||
//处理函数 | |||
protected: | |||
//出牌 | |||
void OnOutCard( BYTE cbOutCard ); | |||
//操作牌 | |||
void OnOperateCard( BYTE cbOperateCode,BYTE cbOperateCard ); | |||
//辅助函数 | |||
protected: | |||
//返回废弃的牌 | |||
bool SearchTingCard( tagTingCardResult &TingCardResult ); | |||
//搜索出牌 | |||
bool SearchOutCard( tagOutCardResult &OutCardResult ); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,276 @@ | |||
#ifndef GAME_LOGIC_HEAD_FILE | |||
#define GAME_LOGIC_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
////////////////////////////////////////////////////////////////////////// | |||
//逻辑掩码 | |||
#define MASK_COLOR 0xF0 //花色掩码 | |||
#define MASK_VALUE 0x0F //数值掩码 | |||
////////////////////////////////////////////////////////////////////////// | |||
//动作定义 | |||
//动作标志 | |||
#define WIK_NULL 0x00 //没有类型 | |||
#define WIK_LEFT 0x01 //左吃类型 | |||
#define WIK_CENTER 0x02 //中吃类型 | |||
#define WIK_RIGHT 0x04 //右吃类型 | |||
#define WIK_PENG 0x08 //碰牌类型 | |||
#define WIK_GANG 0x10 //杠牌类型 | |||
#define WIK_LISTEN 0x20 //吃牌类型 | |||
#define WIK_CHI_HU 0x40 //吃胡类型 | |||
#define WIK_ZI_MO 0x80 //自摸 | |||
////////////////////////////////////////////////////////////////////////// | |||
//胡牌定义 | |||
//胡牌 | |||
#define CHK_NULL 0x00 //非胡类型 | |||
#define CHK_CHI_HU 0x01 //胡类型 | |||
#define CHR_QIANG_GANG 0x00000001 //抢杠 | |||
#define CHR_GANG_SHANG_PAO 0x00000002 //杠上炮 | |||
#define CHR_GANG_KAI 0x00000004 //杠上花 | |||
#define CHR_TIAN_HU 0x00000008 //天胡 | |||
#define CHR_DI_HU 0x00000010 //地胡 | |||
#define CHR_DA_DUI_ZI 0x00000020 //大对子 | |||
#define CHR_QING_YI_SE 0x00000040 //清一色 | |||
#define CHR_QI_XIAO_DUI 0x00000080 //暗七对 | |||
#define CHR_DAI_YAO 0x00000100 //带幺 | |||
#define CHR_JIANG_DUI 0x00000200 //将对 | |||
#define CHR_SHU_FAN 0x00000400 //素番 | |||
#define CHR_QING_DUI 0x00000800 //清对 | |||
#define CHR_LONG_QI_DUI 0x00001000 //龙七对 | |||
#define CHR_QING_QI_DUI 0x00002000 //清七对 | |||
#define CHR_QING_YAO_JIU 0x00004000 //清幺九 | |||
#define CHR_QING_LONG_QI_DUI 0x00008000 //清龙七对 | |||
#define CHR_MEN_QING_ZHONG_ZHANG 0x00010000 //门清中张(不吃不杠不碰) | |||
#define GAMETYPE_XZDD 1 //血战到底 | |||
#define GAMETYPE_XLCH 2 //血流成河 | |||
#define GAMETYPE_LFSZ 3 //两房三张 | |||
#define GAMETYPE_DDH 4 //倒到胡 | |||
////////////////////////////////////////////////////////////////////////// | |||
#define ZI_PAI_COUNT 7 | |||
#pragma pack(1) | |||
//类型子项 | |||
struct tagKindItem | |||
{ | |||
BYTE cbWeaveKind; //组合类型 | |||
BYTE cbCenterCard; //中心扑克 | |||
BYTE cbCardIndex[3]; //扑克索引 | |||
BYTE cbValidIndex[3]; //实际扑克索引 | |||
}; | |||
//组合子项 | |||
struct tagWeaveItem | |||
{ | |||
BYTE cbWeaveKind; //组合类型 | |||
BYTE cbCenterCard; //中心扑克 | |||
BYTE cbPublicCard; //公开标志 | |||
WORD wProvideUser; //供应用户 | |||
}; | |||
//杠牌结果 | |||
struct tagGangCardResult | |||
{ | |||
BYTE cbCardCount; //扑克数目 | |||
BYTE cbCardData[4]; //扑克数据 | |||
}; | |||
//分析子项 | |||
struct tagAnalyseItem | |||
{ | |||
BYTE cbCardEye; //牌眼扑克 | |||
bool bMagicEye; //牌眼是否是王霸 | |||
BYTE cbWeaveKind[4]; //组合类型 | |||
BYTE cbCenterCard[4]; //中心扑克 | |||
BYTE cbCardData[4][4]; //实际扑克 | |||
}; | |||
#pragma pack() | |||
////////////////////////////////////////////////////////////////////////// | |||
#define MASK_CHI_HU_RIGHT 0x0fffffff | |||
/* | |||
// 权位类。 | |||
// 注意,在操作仅位时最好只操作单个权位.例如 | |||
// CChiHuRight chr; | |||
// chr |= (chr_zi_mo|chr_peng_peng),这样结果是无定义的。 | |||
// 只能单个操作: | |||
// chr |= chr_zi_mo; | |||
// chr |= chr_peng_peng; | |||
*/ | |||
class CChiHuRight | |||
{ | |||
//静态变量 | |||
private: | |||
static bool m_bInit; | |||
static DWORD m_dwRightMask[MAX_RIGHT_COUNT]; | |||
//权位变量 | |||
private: | |||
DWORD m_dwRight[MAX_RIGHT_COUNT]; | |||
public: | |||
//构造函数 | |||
CChiHuRight(); | |||
//运算符重载 | |||
public: | |||
//赋值符 | |||
CChiHuRight & operator = ( DWORD dwRight ); | |||
//与等于 | |||
CChiHuRight & operator &= ( DWORD dwRight ); | |||
//或等于 | |||
CChiHuRight & operator |= ( DWORD dwRight ); | |||
//与 | |||
CChiHuRight operator & ( DWORD dwRight ); | |||
CChiHuRight operator & ( DWORD dwRight ) const; | |||
//或 | |||
CChiHuRight operator | ( DWORD dwRight ); | |||
CChiHuRight operator | ( DWORD dwRight ) const; | |||
//功能函数 | |||
public: | |||
//是否权位为空 | |||
bool IsEmpty(); | |||
//设置权位为空 | |||
void SetEmpty(); | |||
//获取权位数值 | |||
BYTE GetRightData( DWORD dwRight[], BYTE cbMaxCount ); | |||
//设置权位数值 | |||
bool SetRightData( const DWORD dwRight[], BYTE cbRightCount ); | |||
private: | |||
//检查权位是否正确 | |||
bool IsValidRight( DWORD dwRight ); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//数组说明 | |||
typedef CWHArray<tagAnalyseItem,tagAnalyseItem &> CAnalyseItemArray; | |||
//游戏逻辑类 | |||
class CGameLogic | |||
{ | |||
//变量定义 | |||
protected: | |||
static const BYTE m_cbCardDataArray[MAX_REPERTORY]; //扑克数据 | |||
BYTE m_cbMagicIndex; //钻牌索引 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CGameLogic(); | |||
//析构函数 | |||
virtual ~CGameLogic(); | |||
//控制函数 | |||
public: | |||
//混乱扑克 | |||
void RandCardData(BYTE cbCardData[], BYTE cbMaxCount); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbRemoveCard); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], const BYTE cbRemoveCard[], BYTE cbRemoveCount); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, const BYTE cbRemoveCard[], BYTE cbRemoveCount); | |||
//设置钻牌 | |||
void SetMagicIndex( BYTE cbMagicIndex ) { m_cbMagicIndex = cbMagicIndex; } | |||
//钻牌 | |||
bool IsMagicCard( BYTE cbCardData ); | |||
//辅助函数 | |||
public: | |||
//有效判断 | |||
bool IsValidCard(BYTE cbCardData); | |||
//扑克数目 | |||
BYTE GetCardCount(const BYTE cbCardIndex[MAX_INDEX]); | |||
//组合扑克 | |||
BYTE GetWeaveCard(BYTE cbWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]); | |||
//等级函数 | |||
public: | |||
//动作等级 | |||
BYTE GetUserActionRank(BYTE cbUserAction); | |||
//胡牌等级 | |||
WORD GetChiHuActionRank(const CChiHuRight & ChiHuRight); | |||
//动作判断 | |||
public: | |||
//吃牌判断 一脚耐油不需要吃牌判断 | |||
//BYTE EstimateEatCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//碰牌判断 | |||
BYTE EstimatePengCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//杠牌判断 | |||
BYTE EstimateGangCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//动作判断 | |||
public: | |||
//杠牌分析 | |||
BYTE AnalyseGangCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, tagGangCardResult & GangCardResult); | |||
//吃胡分析 | |||
BYTE AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, CChiHuRight &ChiHuRight); | |||
//听牌分析 | |||
BYTE AnalyseTingCard( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount ); | |||
//是否听牌 | |||
bool IsTingCard( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount ); | |||
//是否花猪 | |||
bool IsHuaZhu( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE bDingQueHuase=INVALID_BYTE); | |||
//是否缺指定一个花色 | |||
bool IsQueyimen(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount); | |||
//转换函数 | |||
public: | |||
//扑克转换 | |||
BYTE SwitchToCardData(BYTE cbCardIndex); | |||
//扑克转换 | |||
BYTE SwitchToCardIndex(BYTE cbCardData); | |||
//扑克转换 | |||
BYTE SwitchToCardData(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[MAX_COUNT]); | |||
//扑克转换 | |||
BYTE SwitchToCardIndex(const BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX]); | |||
//胡法分析 | |||
protected: | |||
//大对子 | |||
bool IsPengPeng( const tagAnalyseItem *pAnalyseItem ); | |||
//清一色牌 | |||
bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount,const BYTE cbCurrentCard); | |||
//七小对牌 | |||
bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[],const BYTE cbWeaveCount,const BYTE cbCurrentCard); | |||
//带幺 | |||
bool IsDaiYao( const tagAnalyseItem *pAnalyseItem ); | |||
//将对 | |||
bool IsJiangDui( const tagAnalyseItem *pAnalyseItem ); | |||
//内部函数 | |||
private: | |||
//分析扑克 | |||
bool AnalyseCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbItemCount, CAnalyseItemArray & AnalyseItemArray); | |||
//排序,根据牌值排序 | |||
bool SortCardList( BYTE cbCardData[MAX_COUNT], BYTE cbCardCount ); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,13 @@ | |||
// | |||
// AndroidService.RC2 - Microsoft Visual C++ 不会直接编辑的资源 | |||
// | |||
#ifdef APSTUDIO_INVOKED | |||
#error this file is not editable by Microsoft Visual C++ | |||
#endif //APSTUDIO_INVOKED | |||
///////////////////////////////////////////////////////////////////////////// | |||
// 在此处添加手动编辑的资源... | |||
///////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,16 @@ | |||
//{{NO_DEPENDENCIES}} | |||
// Microsoft Visual C++ generated include file. | |||
// Used by AndroidService.RC | |||
// | |||
// 新对象的下一些默认值 | |||
// | |||
#ifdef APSTUDIO_INVOKED | |||
#ifndef APSTUDIO_READONLY_SYMBOLS | |||
#define _APS_NEXT_RESOURCE_VALUE 6000 | |||
#define _APS_NEXT_CONTROL_VALUE 6000 | |||
#define _APS_NEXT_SYMED_VALUE 6000 | |||
#define _APS_NEXT_COMMAND_VALUE 32771 | |||
#endif | |||
#endif |
@@ -0,0 +1,7 @@ | |||
// stdafx.cpp : 只包括标准包含文件的源文件 | |||
// AndroidService.pch 将成为预编译头 | |||
// stdafx.obj 将包含预编译类型信息 | |||
#include "stdafx.h" | |||
@@ -0,0 +1,94 @@ | |||
#pragma once | |||
////////////////////////////////////////////////////////////////////////////////// | |||
#ifndef VC_EXTRALEAN | |||
#define VC_EXTRALEAN | |||
#endif | |||
#ifndef WINVER | |||
#define WINVER 0x0501 | |||
#endif | |||
#ifndef _WIN32_WINNT | |||
#define _WIN32_WINNT 0x0501 | |||
#endif | |||
#ifndef _WIN32_WINDOWS | |||
#define _WIN32_WINDOWS 0x0410 | |||
#endif | |||
#ifndef _WIN32_IE | |||
#define _WIN32_IE 0x0400 | |||
#endif | |||
#define _ATL_ATTRIBUTES | |||
#define _AFX_ALL_WARNINGS | |||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS | |||
////////////////////////////////////////////////////////////////////////////////// | |||
//MFC 文件 | |||
#include <AfxWin.h> | |||
#include <AfxExt.h> | |||
#include <AfxCmn.h> | |||
#include <AfxDisp.h> | |||
//编译环境 | |||
//#include "..\..\..\SDKCondition.h" | |||
////////////////////////////////////////////////////////////////////////////////// | |||
#ifdef SDK_CONDITION | |||
////////////////////////////////////////////////////////////////////////////////// | |||
//开发环境 | |||
//平台环境 | |||
#include "..\..\..\开发库\Include\GameServiceHead.h" | |||
#ifndef _DEBUG | |||
#ifndef _UNICODE | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/KernelEngine.lib") | |||
#else | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/KernelEngine.lib") | |||
#endif | |||
#else | |||
#ifndef _UNICODE | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/KernelEngineD.lib") | |||
#else | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/KernelEngineD.lib") | |||
#endif | |||
#endif | |||
////////////////////////////////////////////////////////////////////////////////// | |||
#else | |||
////////////////////////////////////////////////////////////////////////////////// | |||
//系统环境 | |||
//平台环境 | |||
#include "..\..\..\..\Source\ServerControl\GameService\GameServiceHead.h" | |||
#ifndef _DEBUG | |||
#ifndef _UNICODE | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/KernelEngine.lib") | |||
#else | |||
#pragma comment (lib,"../../../../Source/Libs/Release_Unicode/KernelEngine.lib") | |||
#endif | |||
#else | |||
#ifndef _UNICODE | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/KernelEngineD.lib") | |||
#else | |||
#pragma comment (lib,"../../../../Source/Libs/Debug_Unicode/KernelEngineD.lib") | |||
#endif | |||
#endif | |||
////////////////////////////////////////////////////////////////////////////////// | |||
#endif // SDK_CONDITION | |||
////////////////////////////////////////////////////////////////////////// | |||
//组件头文件 | |||
#include "..\消息定义\CMD_Sparrow.h" | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,447 @@ | |||
#ifndef CARD_CONTROL_HEAD_FILE | |||
#define CARD_CONTROL_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "Resource.h" | |||
#include "GameLogic.h" | |||
#include "cassert" | |||
////////////////////////////////////////////////////////////////////////// | |||
// 扑克定义 | |||
// 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, //万子 | |||
// 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19, //索子 | |||
// 0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29, //同子 | |||
// 0x31,0x32,0x33,0x34,0x35,0x36,0x37, //番子 | |||
// 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, //花子 | |||
////////////////////////////////////////////////////////////////////////// | |||
////////////////////////////////////////////////////////////////////////// | |||
//X 排列方式 | |||
enum enXCollocateMode | |||
{ | |||
enXLeft, //左对齐 | |||
enXCenter, //中对齐 | |||
enXRight, //右对齐 | |||
}; | |||
//Y 排列方式 | |||
enum enYCollocateMode | |||
{ | |||
enYTop, //上对齐 | |||
enYCenter, //中对齐 | |||
enYBottom, //下对齐 | |||
}; | |||
//方向枚举 | |||
enum enDirection | |||
{ | |||
Direction_East, //东向 右 | |||
Direction_South, //南向 | |||
Direction_West, //西向 | |||
Direction_North, //北向 | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//扑克图片 | |||
class CCardListImage | |||
{ | |||
//位置变量 | |||
protected: | |||
int m_nItemWidth; //子项高度 | |||
int m_nItemHeight; //子项宽度 | |||
int m_nViewWidth; //子项高度 | |||
int m_nViewHeight; //子项宽度 | |||
//资源变量 | |||
protected: | |||
CPngImage m_CardListImage; //图片资源 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CCardListImage(); | |||
//析构函数 | |||
virtual ~CCardListImage(); | |||
//信息函数 | |||
public: | |||
//获取宽度 | |||
int GetViewWidth() { return m_nViewWidth; } | |||
//获取高度 | |||
int GetViewHeight() { return m_nViewHeight; } | |||
//资源管理 | |||
public: | |||
//加载资源 | |||
bool LoadResource(LPCTSTR uResourceID, int nViewWidth, int nViewHeight); | |||
//释放资源 | |||
bool DestroyResource(); | |||
//功能函数 | |||
public: | |||
//获取位置 | |||
inline int GetImageIndex(BYTE cbCardData); | |||
//绘画扑克 | |||
inline bool DrawCardItem(CDC * pDestDC, BYTE cbCardData, int xDest, int yDest); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//扑克资源 | |||
class CCardResource | |||
{ | |||
//用户扑克 | |||
public: | |||
CPngImage m_ImageUserTop; //图片资源 | |||
CCardListImage m_ImageUserBottom; //图片资源 | |||
CPngImage m_ImageUserLeft; //图片资源 | |||
CPngImage m_ImageUserRight; //图片资源 | |||
//桌子扑克 | |||
public: | |||
CCardListImage m_ImageTableTop; //图片资源 | |||
CCardListImage m_ImageTableLeft; //图片资源 | |||
CCardListImage m_ImageTableRight; //图片资源 | |||
CCardListImage m_ImageTableBottom; //图片资源 | |||
//牌堆扑克 | |||
public: | |||
CPngImage m_ImageHeapDoubleLV; //左边的堆牌 | |||
CPngImage m_ImageHeapSingleLV; //左边的堆牌 | |||
CPngImage m_ImageHeapDoubleRV; //右边的堆牌 | |||
CPngImage m_ImageHeapSingleRV; //右边的堆牌 | |||
CPngImage m_ImageHeapDoubleTV; //上边的堆牌 | |||
CPngImage m_ImageHeapSingleTV; //上边的堆牌 | |||
CPngImage m_ImageHeapDoubleBV; //下边的堆牌 | |||
CPngImage m_ImageHeapSingleBV; //下边的堆牌 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CCardResource(); | |||
//析构函数 | |||
virtual ~CCardResource(); | |||
//功能函数 | |||
public: | |||
//加载资源 | |||
bool LoadResource(); | |||
//消耗资源 | |||
bool DestroyResource(); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//堆立扑克 | |||
class CHeapCard | |||
{ | |||
//控制变量 | |||
protected: | |||
CPoint m_ControlPoint; //基准位置 | |||
enDirection m_CardDirection; //扑克方向 | |||
//扑克变量 | |||
protected: | |||
WORD m_wFullCount; //全满数目 | |||
WORD m_wMinusHeadCount; //头部空缺 | |||
WORD m_wMinusLastCount; //尾部空缺 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CHeapCard(); | |||
//析构函数 | |||
virtual ~CHeapCard(); | |||
//功能函数 | |||
public: | |||
//绘画扑克 | |||
void DrawCardControl(CDC * pDC); | |||
//设置扑克 | |||
bool SetCardData(WORD wMinusHeadCount, WORD wMinusLastCount, WORD wFullCount); | |||
//控件控制 | |||
public: | |||
//设置方向 | |||
void SetDirection(enDirection Direction) { m_CardDirection=Direction; } | |||
//基准位置 | |||
void SetControlPoint(int nXPos, int nYPos) { m_ControlPoint.SetPoint(nXPos,nYPos); } | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//组合扑克 | |||
class CWeaveCard | |||
{ | |||
//控制变量 | |||
protected: | |||
bool m_bDisplayItem; //显示标志 | |||
CPoint m_ControlPoint; //基准位置 | |||
enDirection m_CardDirection; //扑克方向 | |||
BYTE m_cbDirectionCardPos; //方向扑克 | |||
bool m_bGameEnd; // | |||
//扑克数据 | |||
protected: | |||
WORD m_wCardCount; //扑克数目 | |||
BYTE m_cbCardData[4]; //扑克数据 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CWeaveCard(); | |||
//析构函数 | |||
virtual ~CWeaveCard(); | |||
//功能函数 | |||
public: | |||
//绘画扑克 | |||
void DrawCardControl(CDC * pDC); | |||
//绘画扑克 | |||
void DrawCardControl(CDC * pDC, int nXPos, int nYPos); | |||
//设置扑克 | |||
bool SetCardData(const BYTE cbCardData[], WORD wCardCount); | |||
//控件控制 | |||
public: | |||
//设置显示 | |||
void SetDisplayItem(bool bDisplayItem) { m_bDisplayItem=bDisplayItem; } | |||
//设置方向 | |||
void SetDirection(enDirection Direction) { m_CardDirection=Direction; } | |||
//基准位置 | |||
void SetControlPoint(int nXPos, int nYPos) { m_ControlPoint.SetPoint(nXPos,nYPos); } | |||
//方向牌 | |||
void SetDirectionCardPos(BYTE cbPos) { assert(cbPos <= 3); m_cbDirectionCardPos = cbPos;} | |||
// | |||
void SetGameEnd( bool bGameEnd ) { m_bGameEnd = bGameEnd; } | |||
//内部函数 | |||
private: | |||
//获取扑克 | |||
inline BYTE GetCardData(WORD wIndex); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//用户扑克 | |||
class CUserCard | |||
{ | |||
//扑克数据 | |||
protected: | |||
WORD m_wCardCount; //扑克数目 | |||
bool m_bCurrentCard; //当前标志 | |||
//控制变量 | |||
protected: | |||
CPoint m_ControlPoint; //基准位置 | |||
enDirection m_CardDirection; //扑克方向 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CUserCard(); | |||
//析构函数 | |||
virtual ~CUserCard(); | |||
//功能函数 | |||
public: | |||
//绘画扑克 | |||
void DrawCardControl(CDC * pDC); | |||
//设置扑克 | |||
bool SetCurrentCard(bool bCurrentCard); | |||
//设置扑克 | |||
bool SetCardData(WORD wCardCount, bool bCurrentCard); | |||
//控件控制 | |||
public: | |||
//设置方向 | |||
void SetDirection(enDirection Direction) { m_CardDirection=Direction; } | |||
//基准位置 | |||
void SetControlPoint(int nXPos, int nYPos) { m_ControlPoint.SetPoint(nXPos,nYPos); } | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//丢弃扑克 | |||
class CDiscardCard | |||
{ | |||
//扑克数据 | |||
protected: | |||
WORD m_wCardCount; //扑克数目 | |||
BYTE m_cbCardData[24]; //扑克数据 | |||
//控制变量 | |||
protected: | |||
CPoint m_ControlPoint; //基准位置 | |||
enDirection m_CardDirection; //扑克方向 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CDiscardCard(); | |||
//析构函数 | |||
virtual ~CDiscardCard(); | |||
//功能函数 | |||
public: | |||
//绘画扑克 | |||
void DrawCardControl(CDC * pDC); | |||
//增加扑克 | |||
bool AddCardItem(BYTE cbCardData); | |||
//设置扑克 | |||
bool SetCardData(const BYTE cbCardData[], WORD wCardCount); | |||
//获取位置 | |||
CPoint GetLastCardPosition(); | |||
//控件控制 | |||
public: | |||
//设置方向 | |||
void SetDirection(enDirection Direction) { m_CardDirection=Direction; } | |||
//基准位置 | |||
void SetControlPoint(int nXPos, int nYPos) { m_ControlPoint.SetPoint(nXPos,nYPos); } | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//桌面扑克 | |||
class CTableCard | |||
{ | |||
//扑克数据 | |||
protected: | |||
WORD m_wCardCount; //扑克数目 | |||
BYTE m_cbCardData[14]; //扑克数据 | |||
//控制变量 | |||
protected: | |||
CPoint m_ControlPoint; //基准位置 | |||
enDirection m_CardDirection; //扑克方向 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CTableCard(); | |||
//析构函数 | |||
virtual ~CTableCard(); | |||
//功能函数 | |||
public: | |||
//绘画扑克 | |||
void DrawCardControl(CDC * pDC); | |||
//设置扑克 | |||
bool SetCardData(const BYTE cbCardData[], WORD wCardCount); | |||
//控件控制 | |||
public: | |||
//设置方向 | |||
void SetDirection(enDirection Direction) { m_CardDirection=Direction; } | |||
//基准位置 | |||
void SetControlPoint(int nXPos, int nYPos) { m_ControlPoint.SetPoint(nXPos,nYPos); } | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//扑克结构 | |||
struct tagCardItem | |||
{ | |||
bool bShoot; //弹起标志 | |||
BYTE cbCardData; //扑克数据 | |||
}; | |||
//扑克控件 | |||
class CCardControl | |||
{ | |||
//状态变量 | |||
protected: | |||
bool m_bPositively; //响应标志 | |||
bool m_bDisplayItem; //显示标志 | |||
//位置变量 | |||
protected: | |||
CPoint m_BenchmarkPos; //基准位置 | |||
enXCollocateMode m_XCollocateMode; //显示模式 | |||
enYCollocateMode m_YCollocateMode; //显示模式 | |||
//扑克数据 | |||
protected: | |||
WORD m_wCardCount; //扑克数目 | |||
WORD m_wHoverItem; //盘旋子项 | |||
tagCardItem m_CurrentCard; //当前扑克 | |||
tagCardItem m_CardItemArray[13]; //扑克数据 | |||
//资源变量 | |||
protected: | |||
CSize m_ControlSize; //控件大小 | |||
CPoint m_ControlPoint; //控件位置 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CCardControl(); | |||
//析构函数 | |||
virtual ~CCardControl(); | |||
//查询函数 | |||
public: | |||
//获取扑克 | |||
BYTE GetHoverCard(); | |||
//获取扑克 | |||
BYTE GetCurrentCard() { return m_CurrentCard.cbCardData; } | |||
//扑克控制 | |||
public: | |||
//设置扑克 | |||
bool SetCurrentCard(BYTE cbCardData); | |||
//设置扑克 | |||
bool SetCurrentCard(tagCardItem CardItem); | |||
//设置扑克 | |||
bool SetCardData(const BYTE cbCardData[], WORD wCardCount, BYTE cbCurrentCard); | |||
//设置扑克 | |||
bool SetCardItem(const tagCardItem CardItemArray[], WORD wCardCount); | |||
//控件控制 | |||
public: | |||
//设置响应 | |||
void SetPositively(bool bPositively) { m_bPositively=bPositively; } | |||
//设置显示 | |||
void SetDisplayItem(bool bDisplayItem) { m_bDisplayItem=bDisplayItem; } | |||
//基准位置 | |||
void SetBenchmarkPos(int nXPos, int nYPos, enXCollocateMode XCollocateMode, enYCollocateMode YCollocateMode); | |||
//基准位置 | |||
void SetBenchmarkPos(const CPoint & BenchmarkPos, enXCollocateMode XCollocateMode, enYCollocateMode YCollocateMode); | |||
//事件控制 | |||
public: | |||
//绘画扑克 | |||
void DrawCardControl(CDC * pDC); | |||
//光标消息 | |||
bool OnEventSetCursor(CPoint Point, bool & bRePaint); | |||
//内部函数 | |||
private: | |||
//索引切换 | |||
WORD SwitchCardPoint(CPoint & MousePoint); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
////////////////////////////////////////////////////////////////////////// | |||
//变量声明 | |||
//导出变量 | |||
extern CCardResource g_CardResource; //扑克资源 | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,359 @@ | |||
#include "StdAfx.h" | |||
#include "GameLogic.h" | |||
#include "ControlWnd.h" | |||
#include "CardControl.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//按钮标识 | |||
#define IDC_CHIHU 100 //吃胡按钮 | |||
#define IDC_LISTEN 101 //听牌按钮 | |||
#define IDC_GIVEUP 102 //放弃按钮 | |||
//位置标识 | |||
#define ITEM_WIDTH 90 //子项宽度 | |||
#define ITEM_HEIGHT 55 //子项高度 | |||
#define CONTROL_WIDTH 173 //控制宽度 | |||
#define CONTROL_HEIGHT 41 //控制高度 | |||
////////////////////////////////////////////////////////////////////////// | |||
BEGIN_MESSAGE_MAP(CControlWnd, CWnd) | |||
ON_WM_PAINT() | |||
ON_WM_CREATE() | |||
ON_WM_SETCURSOR() | |||
ON_WM_LBUTTONDOWN() | |||
ON_BN_CLICKED(IDC_CHIHU, OnChiHu) | |||
ON_BN_CLICKED(IDC_LISTEN, OnListen) | |||
ON_BN_CLICKED(IDC_GIVEUP, OnGiveUp) | |||
END_MESSAGE_MAP() | |||
////////////////////////////////////////////////////////////////////////// | |||
//构造函数 | |||
CControlWnd::CControlWnd() | |||
{ | |||
//配置变量 | |||
m_cbActionMask=0; | |||
m_cbCenterCard=0; | |||
m_PointBenchmark.SetPoint(0,0); | |||
ZeroMemory(m_cbGangCard,sizeof(m_cbGangCard)); | |||
//状态变量 | |||
m_cbItemCount=0; | |||
m_cbCurrentItem=0xFF; | |||
//加载资源 | |||
HINSTANCE hInstance=AfxGetInstanceHandle(); | |||
m_ImageControlTop.LoadFromResource(hInstance, IDB_CONTROL_TOP); | |||
m_ImageControlMid.LoadFromResource(hInstance, IDB_CONTROL_MID); | |||
m_ImageControlButtom.LoadFromResource(hInstance, IDB_CONTROL_BOTTOM); | |||
m_ImageActionExplain.LoadFromResource(hInstance, IDB_ACTION_EXPLAIN); | |||
return; | |||
} | |||
//析构函数 | |||
CControlWnd::~CControlWnd() | |||
{ | |||
} | |||
//基准位置 | |||
void CControlWnd::SetBenchmarkPos(int nXPos, int nYPos) | |||
{ | |||
//位置变量 | |||
m_PointBenchmark.SetPoint(nXPos,nYPos); | |||
//调整控件 | |||
RectifyControl(); | |||
return; | |||
} | |||
//设置扑克 | |||
void CControlWnd::SetControlInfo(BYTE cbCenterCard, BYTE cbActionMask, tagGangCardResult & GangCardResult) | |||
{ | |||
//设置变量 | |||
m_cbItemCount=0; | |||
m_cbCurrentItem=0xFF; | |||
m_cbActionMask=cbActionMask; | |||
m_cbCenterCard=cbCenterCard; | |||
//杠牌信息 | |||
ZeroMemory(m_cbGangCard,sizeof(m_cbGangCard)); | |||
for (BYTE i=0;i<GangCardResult.cbCardCount;i++) | |||
{ | |||
m_cbItemCount++; | |||
m_cbGangCard[i]=GangCardResult.cbCardData[i]; | |||
} | |||
//计算数目 | |||
BYTE cbItemKind[4]={WIK_LEFT,WIK_CENTER,WIK_RIGHT,WIK_PENG}; | |||
for (BYTE i=0;i<CountArray(cbItemKind);i++) | |||
if ((m_cbActionMask&cbItemKind[i])!=0) | |||
m_cbItemCount++; | |||
//按钮控制 | |||
m_btChiHu.EnableWindow(cbActionMask&WIK_CHI_HU); | |||
//m_btListen.EnableWindow(cbActionMask&WIK_LISTEN); | |||
//调整控件 | |||
RectifyControl(); | |||
//显示窗口 | |||
ShowWindow(SW_SHOW); | |||
return; | |||
} | |||
//调整控件 | |||
void CControlWnd::RectifyControl() | |||
{ | |||
//设置位置 | |||
CRect rcRect; | |||
rcRect.right=m_PointBenchmark.x; | |||
rcRect.bottom=m_PointBenchmark.y; | |||
rcRect.left=m_PointBenchmark.x-CONTROL_WIDTH; | |||
rcRect.top=m_PointBenchmark.y-ITEM_HEIGHT*m_cbItemCount-CONTROL_HEIGHT; | |||
if (m_cbItemCount>0) | |||
rcRect.top-=5; | |||
//移动窗口 | |||
MoveWindow(&rcRect); | |||
//调整按钮 | |||
CRect rcButton; | |||
m_btChiHu.GetWindowRect(&rcButton); | |||
int nYPos=rcRect.Height()-rcButton.Height()-9; | |||
m_btChiHu.SetWindowPos(NULL,rcRect.Width()-rcButton.Width()*3-14,nYPos,0,0,SWP_NOZORDER|SWP_NOSIZE); | |||
m_btListen.SetWindowPos(NULL,rcRect.Width()-rcButton.Width()*2-11,nYPos,0,0,SWP_NOZORDER|SWP_NOSIZE); | |||
m_btGiveUp.SetWindowPos(NULL,rcRect.Width()-rcButton.Width()-8,nYPos,0,0,SWP_NOZORDER|SWP_NOSIZE); | |||
return; | |||
} | |||
//吃胡按钮 | |||
void CControlWnd::OnChiHu() | |||
{ | |||
CGameFrameView::GetInstance()->SendEngineMessage(IDM_CARD_OPERATE,WIK_CHI_HU,0); | |||
return; | |||
} | |||
//听牌按钮 | |||
void CControlWnd::OnListen() | |||
{ | |||
CGameFrameView::GetInstance()->SendEngineMessage(IDM_LISTEN_CARD,0,0); | |||
return; | |||
} | |||
//放弃按钮 | |||
void CControlWnd::OnGiveUp() | |||
{ | |||
CGameFrameView::GetInstance()->SendEngineMessage(IDM_CARD_OPERATE,WIK_NULL,0); | |||
return; | |||
} | |||
//重画函数 | |||
void CControlWnd::OnPaint() | |||
{ | |||
CPaintDC dc(this); | |||
//获取位置 | |||
CRect rcClient; | |||
GetClientRect(&rcClient); | |||
//创建缓冲 | |||
CDC BufferDC; | |||
CBitmap BufferImage; | |||
BufferDC.CreateCompatibleDC(&dc); | |||
BufferImage.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height()); | |||
BufferDC.SelectObject(&BufferImage); | |||
//绘画背景 | |||
m_ImageControlTop.BitBlt(BufferDC,0,0); | |||
for (int nImageYPos=m_ImageControlTop.GetHeight();nImageYPos<rcClient.Height();nImageYPos+=m_ImageControlMid.GetHeight()) | |||
{ | |||
m_ImageControlMid.BitBlt(BufferDC,0,nImageYPos); | |||
} | |||
m_ImageControlButtom.BitBlt(BufferDC,0,rcClient.Height()-m_ImageControlButtom.GetHeight()); | |||
//变量定义 | |||
int nYPos=5; | |||
BYTE cbCurrentItem=0; | |||
BYTE cbExcursion[3]={0,1,2}; | |||
BYTE cbItemKind[4]={WIK_LEFT,WIK_CENTER,WIK_RIGHT,WIK_PENG}; | |||
//绘画扑克 | |||
for (BYTE i=0;i<CountArray(cbItemKind);i++) | |||
{ | |||
if ((m_cbActionMask&cbItemKind[i])!=0) | |||
{ | |||
//绘画扑克 | |||
for (BYTE j=0;j<3;j++) | |||
{ | |||
BYTE cbCardData=m_cbCenterCard; | |||
if (i<CountArray(cbExcursion)) | |||
cbCardData=m_cbCenterCard+j-cbExcursion[i]; | |||
g_CardResource.m_ImageTableBottom.DrawCardItem(&BufferDC,cbCardData,j*26+12,nYPos+5); | |||
} | |||
//计算位置 | |||
int nXImagePos=0; | |||
int nItemWidth=m_ImageActionExplain.GetWidth()/7; | |||
if ((m_cbActionMask&cbItemKind[i])&WIK_PENG) | |||
nXImagePos=nItemWidth; | |||
//绘画标志 | |||
int nItemHeight=m_ImageActionExplain.GetHeight(); | |||
m_ImageActionExplain.BitBlt(BufferDC,126,nYPos+5,nItemWidth,nItemHeight,nXImagePos,0); | |||
//绘画边框 | |||
if (cbCurrentItem==m_cbCurrentItem) | |||
{ | |||
BufferDC.Draw3dRect(7,nYPos,rcClient.Width()-14,ITEM_HEIGHT,RGB(255,255,0),RGB(255,255,0)); | |||
} | |||
//设置变量 | |||
++cbCurrentItem; | |||
nYPos+=ITEM_HEIGHT; | |||
} | |||
} | |||
//杠牌扑克 | |||
for (BYTE i=0;i<CountArray(m_cbGangCard);i++) | |||
{ | |||
if (m_cbGangCard[i]!=0) | |||
{ | |||
//绘画扑克 | |||
for (BYTE j=0;j<4;j++) | |||
{ | |||
g_CardResource.m_ImageTableBottom.DrawCardItem(&BufferDC,m_cbGangCard[i],j*26+12,nYPos+5); | |||
} | |||
//绘画边框 | |||
if (cbCurrentItem==m_cbCurrentItem) | |||
{ | |||
BufferDC.Draw3dRect(7,nYPos,rcClient.Width()-14,ITEM_HEIGHT,RGB(255,255,0),RGB(255,255,0)); | |||
} | |||
//绘画标志 | |||
int nItemWidth=m_ImageActionExplain.GetWidth()/7; | |||
int nItemHeight=m_ImageActionExplain.GetHeight(); | |||
m_ImageActionExplain.BitBlt(BufferDC,126,nYPos+5,nItemWidth,nItemHeight,nItemWidth*3,0); | |||
//设置变量 | |||
cbCurrentItem++; | |||
nYPos+=ITEM_HEIGHT; | |||
} | |||
else | |||
break; | |||
} | |||
//绘画界面 | |||
dc.BitBlt(0,0,rcClient.Width(),rcClient.Height(),&BufferDC,0,0,SRCCOPY); | |||
//清理资源 | |||
BufferDC.DeleteDC(); | |||
BufferImage.DeleteObject(); | |||
return; | |||
} | |||
//建立消息 | |||
int CControlWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) | |||
{ | |||
if (__super::OnCreate(lpCreateStruct)==-1) return -1; | |||
//创建按钮 | |||
CRect rcCreate(0,0,0,0); | |||
m_btListen.Create(NULL,WS_CHILD|WS_VISIBLE,rcCreate,this,IDC_LISTEN); | |||
m_btGiveUp.Create(NULL,WS_CHILD|WS_VISIBLE,rcCreate,this,IDC_GIVEUP); | |||
m_btChiHu.Create(NULL,WS_CHILD|WS_VISIBLE|WS_DISABLED,rcCreate,this,IDC_CHIHU); | |||
//设置位图 | |||
m_btChiHu.SetButtonImage(IDB_BT_CHIHU,AfxGetInstanceHandle(),false,false); | |||
//m_btListen.SetButtonImage(IDB_BT_LISTEN,AfxGetInstanceHandle(),false); | |||
m_btGiveUp.SetButtonImage(IDB_BT_GIVEUP,AfxGetInstanceHandle(),false,false); | |||
return 0; | |||
} | |||
//鼠标消息 | |||
void CControlWnd::OnLButtonDown(UINT nFlags, CPoint Point) | |||
{ | |||
__super::OnLButtonDown(nFlags, Point); | |||
//索引判断 | |||
if (m_cbCurrentItem!=0xFF) | |||
{ | |||
//变量定义 | |||
BYTE cbIndex=0; | |||
BYTE cbItemKind[4]={WIK_LEFT,WIK_CENTER,WIK_RIGHT,WIK_PENG}; | |||
//类型子项 | |||
for (BYTE i=0;i<CountArray(cbItemKind);i++) | |||
{ | |||
if (((m_cbActionMask&cbItemKind[i])!=0)&&(m_cbCurrentItem==cbIndex++)) | |||
{ | |||
CGameFrameView::GetInstance()->SendEngineMessage(IDM_CARD_OPERATE,cbItemKind[i],m_cbCenterCard); | |||
return; | |||
} | |||
} | |||
//杠牌子项 | |||
for (BYTE i=0;i<CountArray(m_cbGangCard);i++) | |||
{ | |||
if ((m_cbGangCard[i]!=0)&&(m_cbCurrentItem==cbIndex++)) | |||
{ | |||
CGameFrameView::GetInstance()->SendEngineMessage(IDM_CARD_OPERATE,WIK_GANG,m_cbGangCard[i]); | |||
return; | |||
} | |||
} | |||
//错误断言 | |||
ASSERT(FALSE); | |||
} | |||
return; | |||
} | |||
//光标消息 | |||
BOOL CControlWnd::OnSetCursor(CWnd * pWnd, UINT nHitTest, UINT uMessage) | |||
{ | |||
//位置测试 | |||
if (m_cbItemCount!=0) | |||
{ | |||
//获取位置 | |||
CRect rcClient; | |||
CPoint MousePoint; | |||
GetClientRect(&rcClient); | |||
GetCursorPos(&MousePoint); | |||
ScreenToClient(&MousePoint); | |||
//计算索引 | |||
BYTE bCurrentItem=0xFF; | |||
CRect rcItem(5,5,rcClient.Width()-5,ITEM_HEIGHT*m_cbItemCount+5); | |||
if (rcItem.PtInRect(MousePoint)) | |||
bCurrentItem=(BYTE)((MousePoint.y-7)/ITEM_HEIGHT); | |||
//设置索引 | |||
if (m_cbCurrentItem!=bCurrentItem) | |||
{ | |||
Invalidate(FALSE); | |||
m_cbCurrentItem=bCurrentItem; | |||
} | |||
//设置光标 | |||
if (m_cbCurrentItem!=0xFF) | |||
{ | |||
SetCursor(LoadCursor(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDC_CARD_CUR))); | |||
return TRUE; | |||
} | |||
} | |||
return __super::OnSetCursor(pWnd,nHitTest,uMessage); | |||
} | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,87 @@ | |||
#ifndef CONTROL_WND_HEAD_FILE | |||
#define CONTROL_WND_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "Resource.h" | |||
#include "GameLogic.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//消息定义 | |||
#define IDM_LISTEN_CARD (WM_USER+300) //扑克操作 | |||
#define IDM_CARD_OPERATE (WM_USER+301) //扑克操作 | |||
////////////////////////////////////////////////////////////////////////// | |||
//控制窗口 | |||
class CControlWnd : public CWnd | |||
{ | |||
//配置变量 | |||
protected: | |||
BYTE m_cbActionMask; //类型掩码 | |||
BYTE m_cbCenterCard; //中心扑克 | |||
BYTE m_cbGangCard[5]; //杠牌数据 | |||
CPoint m_PointBenchmark; //基准位置 | |||
//状态变量 | |||
protected: | |||
BYTE m_cbItemCount; //子项数目 | |||
BYTE m_cbCurrentItem; //当前子项 | |||
//控件变量 | |||
protected: | |||
CSkinButton m_btChiHu; //吃胡按钮 | |||
CSkinButton m_btListen; //听牌按钮 | |||
CSkinButton m_btGiveUp; //放弃按钮 | |||
//资源变量 | |||
protected: | |||
CBitImage m_ImageControlTop; //资源图片 | |||
CBitImage m_ImageControlMid; //资源图片 | |||
CBitImage m_ImageControlButtom; //资源图片 | |||
CBitImage m_ImageActionExplain; //动作解释 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CControlWnd(); | |||
//析构函数 | |||
virtual ~CControlWnd(); | |||
//控件控制 | |||
public: | |||
//基准位置 | |||
void SetBenchmarkPos(int nXPos, int nYPos); | |||
//设置扑克 | |||
void SetControlInfo(BYTE cbCenterCard, BYTE cbActionMask, tagGangCardResult & GangCardResult); | |||
//内部函数 | |||
protected: | |||
//调整控件 | |||
void RectifyControl(); | |||
//消息映射 | |||
protected: | |||
//重画函数 | |||
afx_msg void OnPaint(); | |||
//吃胡按钮 | |||
afx_msg void OnChiHu(); | |||
//听牌按钮 | |||
afx_msg void OnListen(); | |||
//放弃按钮 | |||
afx_msg void OnGiveUp(); | |||
//建立消息 | |||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); | |||
//鼠标消息 | |||
afx_msg void OnLButtonDown(UINT nFlags, CPoint Point); | |||
//光标消息 | |||
afx_msg BOOL OnSetCursor(CWnd * pWnd, UINT nHitTest, UINT uMessage); | |||
DECLARE_MESSAGE_MAP() | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,297 @@ | |||
///////////////////////////////////////////////////////////////////////////// | |||
// Copyright (C) 1998 by Jörg König | |||
// All rights reserved | |||
// | |||
// This file is part of the completely free tetris clone "CGTetris". | |||
// | |||
// This is free software. | |||
// You may redistribute it by any means providing it is not sold for profit | |||
// without the authors written consent. | |||
// | |||
// No warrantee of any kind, expressed or implied, is included with this | |||
// software; use at your own risk, responsibility for damages (if any) to | |||
// anyone resulting from the use of this software rests entirely with the | |||
// user. | |||
// | |||
// Send bug reports, bug fixes, enhancements, requests, flames, etc., and | |||
// I'll try to keep a version up to date. I can be reached as follows: | |||
// J.Koenig@adg.de (company site) | |||
// Joerg.Koenig@rhein-neckar.de (private site) | |||
///////////////////////////////////////////////////////////////////////////// | |||
// DirectSound.cpp: implementation of the CDirectSound class. | |||
// | |||
////////////////////////////////////////////////////////////////////// | |||
#include "stdafx.h" | |||
#include "DirectSound.h" | |||
// The following macro is defined since DirectX 5, but will work with | |||
// older versions too. | |||
#ifndef DSBLOCK_ENTIREBUFFER | |||
#define DSBLOCK_ENTIREBUFFER 0x00000002 | |||
#endif | |||
#ifdef _DEBUG | |||
#undef THIS_FILE | |||
static char THIS_FILE[]=__FILE__; | |||
#define new DEBUG_NEW | |||
#endif | |||
static void DSError( HRESULT hRes ) { | |||
switch(hRes) { | |||
case DS_OK: TRACE0("NO ERROR\n"); break; | |||
case DSERR_ALLOCATED: TRACE0("ALLOCATED\n"); break; | |||
case DSERR_INVALIDPARAM: TRACE0("INVALIDPARAM\n"); break; | |||
case DSERR_OUTOFMEMORY: TRACE0("OUTOFMEMORY\n"); break; | |||
case DSERR_UNSUPPORTED: TRACE0("UNSUPPORTED\n"); break; | |||
case DSERR_NOAGGREGATION: TRACE0("NOAGGREGATION\n"); break; | |||
case DSERR_UNINITIALIZED: TRACE0("UNINITIALIZED\n"); break; | |||
case DSERR_BADFORMAT: TRACE0("BADFORMAT\n"); break; | |||
case DSERR_ALREADYINITIALIZED: TRACE0("ALREADYINITIALIZED\n"); break; | |||
case DSERR_BUFFERLOST: TRACE0("BUFFERLOST\n"); break; | |||
case DSERR_CONTROLUNAVAIL: TRACE0("CONTROLUNAVAIL\n"); break; | |||
case DSERR_GENERIC: TRACE0("GENERIC\n"); break; | |||
case DSERR_INVALIDCALL: TRACE0("INVALIDCALL\n"); break; | |||
case DSERR_OTHERAPPHASPRIO: TRACE0("OTHERAPPHASPRIO\n"); break; | |||
case DSERR_PRIOLEVELNEEDED: TRACE0("PRIOLEVELNEEDED\n"); break; | |||
default: TRACE1("%lu\n",hRes);break; | |||
} | |||
} | |||
////////////////////////////////////////////////////////////////////// | |||
// Construction/Destruction | |||
////////////////////////////////////////////////////////////////////// | |||
LPDIRECTSOUND CDirectSound::m_lpDirectSound; | |||
DWORD CDirectSound::m_dwInstances; | |||
CDirectSound::CDirectSound() | |||
{ | |||
m_lpDirectSound = 0; | |||
m_pDsb = 0; | |||
m_pTheSound = 0; | |||
m_dwTheSound = 0; | |||
m_bEnabled = TRUE; | |||
++m_dwInstances; | |||
} | |||
CDirectSound::~CDirectSound() | |||
{ | |||
if( m_pDsb ) | |||
m_pDsb->Release(); | |||
if( !--m_dwInstances && m_lpDirectSound ) { | |||
m_lpDirectSound->Release(); | |||
m_lpDirectSound = 0; | |||
} | |||
} | |||
BOOL CDirectSound::Create(LPCTSTR pszResource, CWnd * pWnd) | |||
{ | |||
////////////////////////////////////////////////////////////////// | |||
// load resource | |||
HINSTANCE hApp = ::GetModuleHandle(0); | |||
ASSERT(hApp); | |||
HRSRC hResInfo = ::FindResource(hApp, pszResource, TEXT("WAVE")); | |||
if(hResInfo == 0) | |||
return FALSE; | |||
HGLOBAL hRes = ::LoadResource(hApp, hResInfo); | |||
if(hRes == 0) | |||
return FALSE; | |||
LPVOID pTheSound = ::LockResource(hRes); | |||
if(pTheSound == 0) | |||
return FALSE; | |||
return Create(pTheSound, pWnd); | |||
} | |||
BOOL CDirectSound :: Create(LPVOID pSoundData, CWnd * pWnd) { | |||
if(pWnd == 0) | |||
pWnd = AfxGetApp()->GetMainWnd(); | |||
ASSERT(pWnd != 0); | |||
ASSERT(::IsWindow(pWnd->GetSafeHwnd())); | |||
ASSERT(pSoundData != 0); | |||
////////////////////////////////////////////////////////////////// | |||
// create direct sound object | |||
if( m_lpDirectSound == 0 ) { | |||
// Someone might use sounds for starting apps. This may cause | |||
// DirectSoundCreate() to fail because the driver is used by | |||
// anyone else. So wait a little before starting with the work ... | |||
HRESULT hRes = DS_OK; | |||
short nRes = 0; | |||
do { | |||
if( nRes ) | |||
::Sleep(500); | |||
hRes = ::DirectSoundCreate(0, &m_lpDirectSound, 0); | |||
++nRes; | |||
} while( nRes < 10 && (hRes == DSERR_ALLOCATED || hRes == DSERR_NODRIVER) ); | |||
if( hRes != DS_OK ) | |||
return FALSE; | |||
m_lpDirectSound->SetCooperativeLevel(pWnd->GetSafeHwnd(), DSSCL_NORMAL); | |||
} | |||
ASSERT(m_lpDirectSound != 0); | |||
WAVEFORMATEX * pcmwf; | |||
if( ! GetWaveData(pSoundData, pcmwf, m_pTheSound, m_dwTheSound) || | |||
! CreateSoundBuffer(pcmwf) || | |||
! SetSoundData(m_pTheSound, m_dwTheSound) ) | |||
return FALSE; | |||
return TRUE; | |||
} | |||
BOOL CDirectSound :: GetWaveData(void * pRes, WAVEFORMATEX * & pWaveHeader, void * & pbWaveData, DWORD & cbWaveSize) { | |||
pWaveHeader = 0; | |||
pbWaveData = 0; | |||
cbWaveSize = 0; | |||
DWORD * pdw = (DWORD *)pRes; | |||
DWORD dwRiff = *pdw++; | |||
DWORD dwLength = *pdw++; | |||
DWORD dwType = *pdw++; | |||
if( dwRiff != mmioFOURCC('R', 'I', 'F', 'F') ) | |||
return FALSE; // not even RIFF | |||
if( dwType != mmioFOURCC('W', 'A', 'V', 'E') ) | |||
return FALSE; // not a WAV | |||
DWORD * pdwEnd = (DWORD *)((BYTE *)pdw + dwLength-4); | |||
while( pdw < pdwEnd ) { | |||
dwType = *pdw++; | |||
dwLength = *pdw++; | |||
switch( dwType ) { | |||
case mmioFOURCC('f', 'm', 't', ' '): | |||
if( !pWaveHeader ) { | |||
if( dwLength < sizeof(WAVEFORMAT) ) | |||
return FALSE; // not a WAV | |||
pWaveHeader = (WAVEFORMATEX *)pdw; | |||
if( pbWaveData && cbWaveSize ) | |||
return TRUE; | |||
} | |||
break; | |||
case mmioFOURCC('d', 'a', 't', 'a'): | |||
pbWaveData = LPVOID(pdw); | |||
cbWaveSize = dwLength; | |||
if( pWaveHeader ) | |||
return TRUE; | |||
break; | |||
} | |||
pdw = (DWORD *)((BYTE *)pdw + ((dwLength+1)&~1)); | |||
} | |||
return FALSE; | |||
} | |||
BOOL CDirectSound::CreateSoundBuffer(WAVEFORMATEX * pcmwf) | |||
{ | |||
DSBUFFERDESC dsbdesc; | |||
// Set up DSBUFFERDESC structure. | |||
memset(&dsbdesc, 0, sizeof(DSBUFFERDESC)); // Zero it out. | |||
dsbdesc.dwSize = sizeof(DSBUFFERDESC); | |||
// Need no controls (pan, volume, frequency). | |||
dsbdesc.dwFlags = DSBCAPS_STATIC; // assumes that the sound is played often | |||
dsbdesc.dwBufferBytes = m_dwTheSound; | |||
dsbdesc.lpwfxFormat = pcmwf; // Create buffer. | |||
HRESULT hRes; | |||
if( DS_OK != (hRes = m_lpDirectSound->CreateSoundBuffer(&dsbdesc, &m_pDsb, 0)) ) { | |||
// Failed. | |||
DSError(hRes); | |||
m_pDsb = 0; | |||
return FALSE; | |||
} | |||
return TRUE; | |||
} | |||
BOOL CDirectSound::SetSoundData(void * pSoundData, DWORD dwSoundSize) { | |||
LPVOID lpvPtr1; | |||
DWORD dwBytes1; | |||
// Obtain write pointer. | |||
HRESULT hr = m_pDsb->Lock(0, 0, &lpvPtr1, &dwBytes1, 0, 0, DSBLOCK_ENTIREBUFFER); | |||
// If DSERR_BUFFERLOST is returned, restore and retry lock. | |||
if(DSERR_BUFFERLOST == hr) { | |||
m_pDsb->Restore(); | |||
hr = m_pDsb->Lock(0, 0, &lpvPtr1, &dwBytes1, 0, 0, DSBLOCK_ENTIREBUFFER); | |||
} | |||
if(DS_OK == hr) { | |||
// Write to pointers. | |||
::CopyMemory(lpvPtr1, pSoundData, dwBytes1); | |||
// Release the data back to DirectSound. | |||
hr = m_pDsb->Unlock(lpvPtr1, dwBytes1, 0, 0); | |||
if(DS_OK == hr) | |||
return TRUE; | |||
} | |||
// Lock, Unlock, or Restore failed. | |||
return FALSE; | |||
} | |||
void CDirectSound::Play(DWORD dwStartPosition, BOOL bLoop) | |||
{ | |||
if( ! IsValid() || ! IsEnabled() ) | |||
return; // no chance to play the sound ... | |||
if( dwStartPosition > m_dwTheSound ) | |||
dwStartPosition = m_dwTheSound; | |||
m_pDsb->SetCurrentPosition(dwStartPosition); | |||
if( DSERR_BUFFERLOST == m_pDsb->Play(0, 0, bLoop ? DSBPLAY_LOOPING : 0) ) { | |||
// another application had stolen our buffer | |||
// Note that a "Restore()" is not enough, because | |||
// the sound data is invalid after Restore(). | |||
SetSoundData(m_pTheSound, m_dwTheSound); | |||
// Try playing again | |||
m_pDsb->Play(0, 0, bLoop ? DSBPLAY_LOOPING : 0); | |||
} | |||
} | |||
void CDirectSound::Stop() | |||
{ | |||
if( IsValid() ) | |||
m_pDsb->Stop(); | |||
} | |||
void CDirectSound::Pause() | |||
{ | |||
Stop(); | |||
} | |||
void CDirectSound::Continue() | |||
{ | |||
if( IsValid() ) { | |||
DWORD dwPlayCursor, dwWriteCursor; | |||
m_pDsb->GetCurrentPosition(&dwPlayCursor, &dwWriteCursor); | |||
Play(dwPlayCursor); | |||
} | |||
} | |||
BOOL CDirectSound::IsValid() const | |||
{ | |||
return (m_lpDirectSound && m_pDsb && m_pTheSound && m_dwTheSound) ? TRUE : FALSE; | |||
} |
@@ -0,0 +1,89 @@ | |||
///////////////////////////////////////////////////////////////////////////// | |||
// Copyright (C) 1998 by Jörg König | |||
// All rights reserved | |||
// | |||
// This file is part of the completely free tetris clone "CGTetris". | |||
// | |||
// This is free software. | |||
// You may redistribute it by any means providing it is not sold for profit | |||
// without the authors written consent. | |||
// | |||
// No warrantee of any kind, expressed or implied, is included with this | |||
// software; use at your own risk, responsibility for damages (if any) to | |||
// anyone resulting from the use of this software rests entirely with the | |||
// user. | |||
// | |||
// Send bug reports, bug fixes, enhancements, requests, flames, etc., and | |||
// I'll try to keep a version up to date. I can be reached as follows: | |||
// J.Koenig@adg.de (company site) | |||
// Joerg.Koenig@rhein-neckar.de (private site) | |||
///////////////////////////////////////////////////////////////////////////// | |||
// DirectSound.h: interface for the CDirectSound class. | |||
// | |||
////////////////////////////////////////////////////////////////////// | |||
#ifndef D_SOUND_HEAD_FILE | |||
#define D_SOUND_HEAD_FILE | |||
#if !defined(AFX_DIRECTSOUND_H__A20FE86F_118F_11D2_9AB3_0060B0CDC13E__INCLUDED_) | |||
#define AFX_DIRECTSOUND_H__A20FE86F_118F_11D2_9AB3_0060B0CDC13E__INCLUDED_ | |||
#if _MSC_VER >= 1000 | |||
#pragma once | |||
#endif // _MSC_VER >= 1000 | |||
#include <mmsystem.h> | |||
#include <dsound.h> | |||
//#pragma message("linking with Microsoft's DirectSound library ...") | |||
#pragma comment(lib, "dsound.lib") | |||
class CDirectSound | |||
{ | |||
public: // construction/destruction | |||
CDirectSound(); | |||
virtual ~CDirectSound(); | |||
// If the "pWnd" paramter is NULL, then AfxGetApp()->GetMainWnd() will be used. | |||
BOOL Create(LPCTSTR pszResource, CWnd * pWnd = 0); | |||
BOOL Create(UINT uResourceID, CWnd * pWnd = 0) { | |||
return Create(MAKEINTRESOURCE(uResourceID), pWnd); | |||
} | |||
// Alternativly you can specify the sound by yourself | |||
// Note that the class does not copy the entire data ! Instead | |||
// a pointer to the given data will be stored ! | |||
// You can load an entire WAV file into memory and then call this | |||
// Create() method. | |||
BOOL Create(LPVOID pSoundData, CWnd * pWnd = 0); | |||
public: // operations | |||
BOOL IsValid() const; | |||
void Play(DWORD dwStartPosition = 0, BOOL bLoop = FALSE); | |||
void Stop(); | |||
void Pause(); | |||
void Continue(); | |||
CDirectSound & EnableSound(BOOL bEnable = TRUE) { | |||
m_bEnabled = bEnable; | |||
if( ! bEnable ) | |||
Stop(); | |||
return * this; | |||
} | |||
BOOL IsEnabled() const { return m_bEnabled; } | |||
protected: // implementation | |||
BOOL SetSoundData(LPVOID pSoundData, DWORD dwSoundSize); | |||
BOOL CreateSoundBuffer(WAVEFORMATEX * pcmwf); | |||
BOOL GetWaveData(void * pRes, WAVEFORMATEX * & pWaveHeader, void * & pbWaveData, DWORD & cbWaveSize); | |||
private: // data member | |||
LPVOID m_pTheSound; | |||
DWORD m_dwTheSound; | |||
LPDIRECTSOUNDBUFFER m_pDsb; | |||
BOOL m_bEnabled; | |||
static LPDIRECTSOUND m_lpDirectSound; | |||
static DWORD m_dwInstances; | |||
}; | |||
#endif // !defined(AFX_DIRECTSOUND_H__A20FE86F_118F_11D2_9AB3_0060B0CDC13E__INCLUDED_) | |||
#endif |
@@ -0,0 +1,169 @@ | |||
#include "StdAfx.h" | |||
#include "DrawSiceWnd.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
#define IDI_SICE_POS 203 //移动定时器 | |||
////////////////////////////////////////////////////////////////////////// | |||
BEGIN_MESSAGE_MAP(CDrawSiceWnd, CWnd) | |||
ON_WM_PAINT() | |||
ON_WM_CREATE() | |||
ON_WM_TIMER() | |||
END_MESSAGE_MAP() | |||
////////////////////////////////////////////////////////////////////////// | |||
//构造函数 | |||
CDrawSiceWnd::CDrawSiceWnd() | |||
{ | |||
//加载资源 | |||
m_bSicePos=0; | |||
m_nXPos=0; | |||
m_nYPos=0; | |||
HINSTANCE hInstance=AfxGetInstanceHandle(); | |||
m_ImageBack.LoadFromResource(hInstance, IDB_SICE_BACK); | |||
for ( int i = 0; i < 12; ++i ) | |||
{ | |||
m_ImageDrawSice[i].LoadFromResource(hInstance, IDB_DRAW_SICE1 + i); | |||
} | |||
m_ImageDrawSiceUserSecond = NULL; | |||
m_ImageDrawSiceSecond = NULL; | |||
m_ImageDrawSiceUserFirst = NULL; | |||
m_ImageDrawSiceUserSecond = NULL; | |||
return; | |||
} | |||
//析构函数 | |||
CDrawSiceWnd::~CDrawSiceWnd() | |||
{ | |||
} | |||
//重画函数 | |||
void CDrawSiceWnd::OnPaint() | |||
{ | |||
CPaintDC dc(this); | |||
//获取位置 | |||
CRect rcClient; | |||
GetClientRect(&rcClient); | |||
//创建缓冲 | |||
CDC BufferDC; | |||
CBitmap BufferImage; | |||
BufferDC.CreateCompatibleDC(&dc); | |||
BufferImage.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height()); | |||
BufferDC.SelectObject(&BufferImage); | |||
//绘画背景 | |||
m_ImageBack.BitBlt(BufferDC,0,0); | |||
if(m_bSicePos<9 ) | |||
{ | |||
if ( m_ImageDrawSiceFirst ) | |||
m_ImageDrawSiceFirst->TransDrawImage(&BufferDC,30,0,m_ImageDrawSiceFirst->GetWidth()/9,m_ImageDrawSiceFirst->GetHeight(), m_bSicePos*m_ImageDrawSiceFirst->GetWidth()/9,0,RGB(0,0,255)); | |||
if ( m_ImageDrawSiceSecond ) | |||
m_ImageDrawSiceSecond->TransDrawImage(&BufferDC,30,0,m_ImageDrawSiceSecond->GetWidth()/9,m_ImageDrawSiceSecond->GetHeight(),m_bSicePos*m_ImageDrawSiceSecond->GetWidth()/9,0,RGB(0,0,255)); | |||
} | |||
else | |||
{ | |||
if ( m_ImageDrawSiceUserFirst ) | |||
m_ImageDrawSiceUserFirst->TransDrawImage(&BufferDC,30,0,m_ImageDrawSiceUserFirst->GetWidth()/9,m_ImageDrawSiceUserFirst->GetHeight(),m_bSicePos%9*m_ImageDrawSiceUserFirst->GetWidth()/9,0,RGB(0,0,255)); | |||
if ( m_ImageDrawSiceUserSecond ) | |||
m_ImageDrawSiceUserSecond->TransDrawImage(&BufferDC,30,0,m_ImageDrawSiceUserSecond->GetWidth()/9,m_ImageDrawSiceUserSecond->GetHeight(),m_bSicePos%9*m_ImageDrawSiceUserSecond->GetWidth()/9,0,RGB(0,0,255)); | |||
} | |||
//绘画界面 | |||
dc.BitBlt(0,0,rcClient.Width(),rcClient.Height(),&BufferDC,0,0,SRCCOPY); | |||
//清理资源 | |||
BufferDC.DeleteDC(); | |||
BufferImage.DeleteObject(); | |||
return; | |||
} | |||
//建立消息 | |||
int CDrawSiceWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) | |||
{ | |||
if (__super::OnCreate(lpCreateStruct)==-1) return -1; | |||
SetWindowPos(NULL,0,0,m_ImageBack.GetWidth(),m_ImageBack.GetHeight(),SWP_NOZORDER|SWP_NOREPOSITION); | |||
return 0; | |||
} | |||
//定时器消息 | |||
void CDrawSiceWnd::OnTimer(UINT nIDEvent) | |||
{ | |||
if(IDI_SICE_POS==nIDEvent) | |||
{ | |||
if(m_bSicePos>=17) | |||
{ | |||
KillTimer(IDI_SICE_POS); | |||
Sleep(1000); | |||
CGameFrameView::GetInstance()->PostEngineMessage(IDM_SICE_FINISH,NULL,NULL); | |||
} | |||
else | |||
{ | |||
if(m_bSicePos==8) | |||
{ | |||
Sleep(1000); | |||
CGameFrameView::GetInstance()->PostEngineMessage(IDM_SICE_TWO,NULL,NULL); | |||
} | |||
m_bSicePos++; | |||
} | |||
Invalidate(); | |||
} | |||
__super::OnTimer(nIDEvent); | |||
} | |||
//设置色子信息 | |||
void CDrawSiceWnd::SetSiceInfo(CDC *dc,BYTE bMoveTime,WORD wSice1,WORD wSice2) | |||
{ | |||
HINSTANCE hInstance=AfxGetInstanceHandle(); | |||
ParentDC=dc; | |||
BYTE SiceFirst,SiceSecond; | |||
if( wSice1 > 0 ) | |||
{ | |||
SiceFirst = HIBYTE(wSice1); | |||
SiceSecond = LOBYTE(wSice1); | |||
ASSERT( SiceFirst > 0 && SiceFirst < 7 && SiceSecond > 0 && SiceSecond < 7 ); | |||
m_ImageDrawSiceFirst = &m_ImageDrawSice[SiceFirst-1]; | |||
m_ImageDrawSiceSecond = &m_ImageDrawSice[6 + SiceSecond-1]; | |||
//m_ImageDrawSiceFirst.LoadFromResource(hInstance, IDB_DRAW_SICE1+SiceFirst-1); | |||
//m_ImageDrawSiceSecond.LoadFromResource(hInstance, IDB_DRAW_SICE7+SiceSecond-1); | |||
} | |||
if( wSice2 > 0 ) | |||
{ | |||
SiceFirst = HIBYTE(wSice2); | |||
SiceSecond = LOBYTE(wSice2); | |||
ASSERT( SiceFirst > 0 && SiceFirst < 7 && SiceSecond > 0 && SiceSecond < 7 ); | |||
m_ImageDrawSiceUserFirst = &m_ImageDrawSice[SiceFirst-1]; | |||
m_ImageDrawSiceUserSecond = &m_ImageDrawSice[6 + SiceSecond-1]; | |||
//m_ImageDrawSiceUserFirst.LoadFromResource(hInstance, IDB_DRAW_SICE1+SiceFirst-1); | |||
//m_ImageDrawSiceUserSecond.LoadFromResource(hInstance, IDB_DRAW_SICE7+SiceSecond-1); | |||
} | |||
m_bSicePos = (wSice1>0)?0:9; | |||
SetTimer(IDI_SICE_POS,bMoveTime,NULL); | |||
} | |||
//基准位置 | |||
void CDrawSiceWnd::SetBenchmarkPos(int nXPos, int nYPos) | |||
{ | |||
m_nXPos=nXPos; | |||
m_nYPos=nYPos; | |||
} | |||
//设置窗口钩子 | |||
void CDrawSiceWnd::SetWindowSink(CWnd *pSinkWnd) | |||
{ | |||
m_pSinkWnd = pSinkWnd; | |||
} | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,63 @@ | |||
#ifndef DRAW_WND_HEAD_FILE | |||
#define DRAW_WND_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "Resource.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
#define IDM_SICE_FINISH (WM_USER+401) //扑克操作 | |||
#define IDM_CARD_MOVE (WM_USER+402) //移动声音 | |||
#define IDM_SICE_TWO (WM_USER+403) //移动声音 | |||
////////////////////////////////////////////////////////////////////////// | |||
//控制窗口 | |||
class CDrawSiceWnd : public CWnd | |||
{ | |||
//配置变量 | |||
protected: | |||
CBitImage m_ImageBack; //背景图案 | |||
CBitImage* m_ImageDrawSiceFirst; //动作解释 | |||
CBitImage* m_ImageDrawSiceSecond; // | |||
CBitImage* m_ImageDrawSiceUserFirst; //动作解释 | |||
CBitImage* m_ImageDrawSiceUserSecond; //动作解释 | |||
CBitImage m_ImageDrawSice[12]; //动作解释 | |||
BYTE m_bSicePos; | |||
int m_nXPos; | |||
int m_nYPos; | |||
CDC *ParentDC; | |||
CWnd *m_pSinkWnd; //通知钩子 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CDrawSiceWnd(); | |||
//析构函数 | |||
virtual ~CDrawSiceWnd(); | |||
//内部函数 | |||
public: | |||
//设置色子信息 | |||
void SetSiceInfo(CDC *dc,BYTE bMoveTime,WORD wSice1,WORD wSice2); | |||
//设置基准位置 | |||
void SetBenchmarkPos(int nXPos, int nYPos); | |||
//设置通知钩子 | |||
void SetWindowSink(CWnd *pSinkWnd); | |||
//消息映射 | |||
protected: | |||
//重画函数 | |||
afx_msg void OnPaint(); | |||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); | |||
afx_msg void OnTimer(UINT nIDEvent); | |||
DECLARE_MESSAGE_MAP() | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,31 @@ | |||
#pragma once | |||
#ifndef __AFXWIN_H__ | |||
#error 在包含用于 PCH 的此文件之前包含“stdafx.h” | |||
#endif | |||
#include "Resource.h" | |||
#include "GameClientEngine.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//应用程序类 | |||
class CGameClientApp : public CGameFrameApp | |||
{ | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CGameClientApp(); | |||
//析构函数 | |||
virtual ~CGameClientApp(); | |||
//继承函数 | |||
public: | |||
//创建引擎 | |||
virtual CGameFrameEngine * GetGameFrameEngine(DWORD dwSDKVersion); | |||
}; | |||
//应用程序对象 | |||
extern CGameClientApp theApp; | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,354 @@ | |||
// Microsoft Visual C++ generated resource script. | |||
// | |||
#include "resource.h" | |||
#define APSTUDIO_READONLY_SYMBOLS | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Generated from the TEXTINCLUDE 2 resource. | |||
// | |||
#include "afxres.h" | |||
///////////////////////////////////////////////////////////////////////////// | |||
#undef APSTUDIO_READONLY_SYMBOLS | |||
///////////////////////////////////////////////////////////////////////////// | |||
// 中文(中华人民共和国) resources | |||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) | |||
#ifdef _WIN32 | |||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED | |||
#pragma code_page(936) | |||
#endif //_WIN32 | |||
#ifdef APSTUDIO_INVOKED | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// TEXTINCLUDE | |||
// | |||
1 TEXTINCLUDE | |||
BEGIN | |||
"resource.h\0" | |||
END | |||
2 TEXTINCLUDE | |||
BEGIN | |||
"#include ""afxres.h""\r\n" | |||
"\0" | |||
END | |||
3 TEXTINCLUDE | |||
BEGIN | |||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n" | |||
"#define _AFX_NO_OLE_RESOURCES\r\n" | |||
"#define _AFX_NO_TRACKER_RESOURCES\r\n" | |||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n" | |||
"\r\n" | |||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n" | |||
"LANGUAGE 4, 2\r\n" | |||
"#pragma code_page(936)\r\n" | |||
"#include ""res\\GameClient.rc2"" // 非 Microsoft Visual C++ 编辑过的资源\r\n" | |||
"#include ""afxres.rc"" // 标准组件\r\n" | |||
"#endif\r\n" | |||
"\0" | |||
END | |||
#endif // APSTUDIO_INVOKED | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Icon | |||
// | |||
// Icon with lowest ID value placed first to ensure application icon | |||
// remains consistent on all systems. | |||
IDR_MAINFRAME ICON "res\\GameClient.ico" | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Version | |||
// | |||
VS_VERSION_INFO VERSIONINFO | |||
FILEVERSION 6,6,0,3 | |||
PRODUCTVERSION 6,6,0,3 | |||
FILEFLAGSMASK 0x3fL | |||
#ifdef _DEBUG | |||
FILEFLAGS 0x1L | |||
#else | |||
FILEFLAGS 0x0L | |||
#endif | |||
FILEOS 0x4L | |||
FILETYPE 0x1L | |||
FILESUBTYPE 0x0L | |||
BEGIN | |||
BLOCK "StringFileInfo" | |||
BEGIN | |||
BLOCK "080403a8" | |||
BEGIN | |||
VALUE "Comments", "深圳网狐科技有限公司" | |||
VALUE "CompanyName", "深圳网狐科技有限公司" | |||
VALUE "FileDescription", "血战麻将客户端" | |||
VALUE "FileVersion", "6, 6, 0, 3" | |||
VALUE "InternalName", "SparrowXZ.exe" | |||
VALUE "LegalCopyright", "深圳网狐科技有限公司保留所有权利。" | |||
VALUE "OriginalFilename", "SparrowXZ.exe" | |||
VALUE "ProductName", "血战麻将客户端" | |||
VALUE "ProductVersion", "6, 6, 0, 3" | |||
END | |||
END | |||
BLOCK "VarFileInfo" | |||
BEGIN | |||
VALUE "Translation", 0x804, 936 | |||
END | |||
END | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Bitmap | |||
// | |||
GAME_LOGO BITMAP "res\\GAME_LOGO.bmp" | |||
IDB_VIEW_BACK BITMAP "res\\VIEW_BACK.bmp" | |||
IDB_USER_FLAG BITMAP "res\\USER_FLAG.bmp" | |||
IDB_BT_START BITMAP "res\\BT_START.bmp" | |||
IDB_BT_GIVEUP BITMAP "res\\BT_GIVEUP.bmp" | |||
IDB_BT_CHIHU BITMAP "res\\BT_CHIHU.bmp" | |||
IDB_ACTION_EXPLAIN BITMAP "res\\ACTION_EXPLAIN.bmp" | |||
IDB_ACTION_BACK BITMAP "res\\ACTION_BACK.bmp" | |||
IDB_WAIT_TIP BITMAP "res\\WAIT_TIP.bmp" | |||
IDB_USER_ACTION BITMAP "res\\USER_ACTION.bmp" | |||
IDB_OUT_CARD_TIP BITMAP "res\\OUT_CARD_TIP.bmp" | |||
IDB_CONTROL_TOP BITMAP "res\\CONTROL_TOP.bmp" | |||
IDB_CONTROL_MID BITMAP "res\\CONTROL_MID.bmp" | |||
IDB_CONTROL_BOTTOM BITMAP "res\\CONTROL_BOTTOM.bmp" | |||
IDB_BT_START_TRUSTEE BITMAP "res\\BT_START_TRUSTEE.bmp" | |||
IDB_BT_STOP_TRUSTEE BITMAP "res\\BT_STOP_TRUSTEE.bmp" | |||
IDB_BT_SCORE_CLOSE BITMAP "res\\BT_SCORE_CLOSE.bmp" | |||
IDB_VIEW_CENTER BITMAP "res\\VIEW_CENTER.BMP" | |||
IDB_DRAW_SICE1 BITMAP "res\\SICE1.bmp" | |||
IDB_DRAW_SICE2 BITMAP "res\\SICE2.bmp" | |||
IDB_DRAW_SICE3 BITMAP "res\\SICE3.bmp" | |||
IDB_DRAW_SICE4 BITMAP "res\\SICE4.bmp" | |||
IDB_DRAW_SICE5 BITMAP "res\\SICE5.bmp" | |||
IDB_DRAW_SICE6 BITMAP "res\\SICE6.bmp" | |||
IDB_DRAW_SICE7 BITMAP "res\\SICE7.bmp" | |||
IDB_DRAW_SICE8 BITMAP "res\\SICE8.bmp" | |||
IDB_DRAW_SICE9 BITMAP "res\\SICE9.bmp" | |||
IDB_DRAW_SICE10 BITMAP "res\\SICE10.bmp" | |||
IDB_DRAW_SICE11 BITMAP "res\\SICE11.bmp" | |||
IDB_DRAW_SICE12 BITMAP "res\\SICE12.bmp" | |||
IDB_SICE_BACK BITMAP "res\\SICE_BACK.bmp" | |||
IDB_WIN_ORDER BITMAP "res\\WIN_ORDER.bmp" | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Cursor | |||
// | |||
IDC_CARD_CUR CURSOR "res\\CARD_CUR.cur" | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// PNG | |||
// | |||
DISC PNG "res\\DISC.png" | |||
ACTIONANI PNG "res\\ACTIONANI.png" | |||
ARROW PNG "res\\ARROW.png" | |||
TRUSTEE PNG "res\\Trustee.png" | |||
CARD_HEAP_DOUBLE_LV PNG "res\\CARD_HEAP_DOUBLE_LV.png" | |||
CARD_HEAP_DOUBLE_RV PNG "res\\CARD_HEAP_DOUBLE_RV.png" | |||
CARD_HEAP_DOUBLE_BV PNG "res\\CARD_HEAP_DOUBLE_BV.png" | |||
CARD_HEAP_DOUBLE_TV PNG "res\\CARD_HEAP_DOUBLE_TV.png" | |||
CARD_HEAP_SINGLE_LV PNG "res\\CARD_HEAP_SINGLE_LV.png" | |||
CARD_HEAP_SINGLE_RV PNG "res\\CARD_HEAP_SINGLE_RV.png" | |||
CARD_HEAP_SINGLE_BV PNG "res\\CARD_HEAP_SINGLE_BV.png" | |||
CARD_HEAP_SINGLE_TV PNG "res\\CARD_HEAP_SINGLE_TV.png" | |||
CARD_USER_LEFT PNG "res\\CARD_USER_LEFT.png" | |||
CARD_USER_RIGHT PNG "res\\CARD_USER_RIGHT.png" | |||
CARD_USER_BOTTOM PNG "res\\CARD_USER_BOTTOM.png" | |||
CARD_TABLE_BOTTOM PNG "res\\CARD_TABLE_BOTTOM.png" | |||
CARD_TABLE_TOP PNG "res\\CARD_TABLE_TOP.png" | |||
CARD_TABLE_LEFT PNG "res\\CARD_TABLE_LEFT.png" | |||
CARD_TABLE_RIGHT PNG "res\\CARD_TABLE_RIGHT.png" | |||
CELL_SCORE PNG "res\\CELL_SCORE.PNG" | |||
NUM_LOST PNG "res\\NUM_LOST.PNG" | |||
NUM_WIN PNG "res\\NUM_WIN.PNG" | |||
NUM_ORDER PNG "res\\NUM_ORDER.PNG" | |||
GAME_WIN PNG "res\\GAME_WIN.PNG" | |||
GAME_LOST PNG "res\\GAME_LOST.PNG" | |||
GUA_FENG PNG "res\\GUA_FENG.PNG" | |||
XIAO_YU PNG "res\\XIAO_YU.PNG" | |||
CARD_USER_TOP PNG "res\\CARD_USER_TOP.png" | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// WAVE | |||
// | |||
OUT_CARD WAVE "res\\麻将声音\\OUT_CARD.WAV" | |||
GAME_WIN WAVE "res\\麻将声音\\GAME_WIN.WAV" | |||
GAME_WARN WAVE "res\\麻将声音\\GAME_WARN.WAV" | |||
GAME_START WAVE "res\\麻将声音\\GAME_START.WAV" | |||
GAME_LOST WAVE "res\\麻将声音\\GAME_LOST.WAV" | |||
GAME_END WAVE "res\\麻将声音\\GAME_END.WAV" | |||
BOY_CHI WAVE "res\\麻将声音\\男\\CHI.WAV" | |||
BOY_PENG WAVE "res\\麻将声音\\男\\PENG.WAV" | |||
BOY_CHI_HU WAVE "res\\麻将声音\\男\\CHI_HU.WAV" | |||
BOY_GANG WAVE "res\\麻将声音\\男\\GANG.WAV" | |||
GIRL_CHI WAVE "res\\麻将声音\\女\\CHI.WAV" | |||
GIRL_PENG WAVE "res\\麻将声音\\女\\PENG.WAV" | |||
GIRL_CHI_HU WAVE "res\\麻将声音\\女\\CHI_HU.WAV" | |||
GIRL_GANG WAVE "res\\麻将声音\\女\\GANG.WAV" | |||
BOY_W_9 WAVE "res\\麻将声音\\男\\W_9.WAV" | |||
BOY_W_8 WAVE "res\\麻将声音\\男\\W_8.WAV" | |||
BOY_W_7 WAVE "res\\麻将声音\\男\\W_7.WAV" | |||
BOY_W_6 WAVE "res\\麻将声音\\男\\W_6.WAV" | |||
BOY_W_5 WAVE "res\\麻将声音\\男\\W_5.WAV" | |||
BOY_W_4 WAVE "res\\麻将声音\\男\\W_4.WAV" | |||
BOY_W_3 WAVE "res\\麻将声音\\男\\W_3.WAV" | |||
BOY_W_2 WAVE "res\\麻将声音\\男\\W_2.WAV" | |||
BOY_W_1 WAVE "res\\麻将声音\\男\\W_1.WAV" | |||
BOY_T_9 WAVE "res\\麻将声音\\男\\T_9.WAV" | |||
BOY_T_8 WAVE "res\\麻将声音\\男\\T_8.WAV" | |||
BOY_T_7 WAVE "res\\麻将声音\\男\\T_7.WAV" | |||
BOY_T_6 WAVE "res\\麻将声音\\男\\T_6.WAV" | |||
BOY_T_5 WAVE "res\\麻将声音\\男\\T_5.WAV" | |||
BOY_T_4 WAVE "res\\麻将声音\\男\\T_4.WAV" | |||
BOY_T_3 WAVE "res\\麻将声音\\男\\T_3.WAV" | |||
BOY_T_2 WAVE "res\\麻将声音\\男\\T_2.WAV" | |||
BOY_T_1 WAVE "res\\麻将声音\\男\\T_1.WAV" | |||
BOY_S_9 WAVE "res\\麻将声音\\男\\S_9.WAV" | |||
BOY_S_8 WAVE "res\\麻将声音\\男\\S_8.WAV" | |||
BOY_S_7 WAVE "res\\麻将声音\\男\\S_7.WAV" | |||
BOY_S_6 WAVE "res\\麻将声音\\男\\S_6.WAV" | |||
BOY_S_5 WAVE "res\\麻将声音\\男\\S_5.WAV" | |||
BOY_S_4 WAVE "res\\麻将声音\\男\\S_4.WAV" | |||
BOY_S_3 WAVE "res\\麻将声音\\男\\S_3.WAV" | |||
BOY_S_2 WAVE "res\\麻将声音\\男\\S_2.WAV" | |||
BOY_S_1 WAVE "res\\麻将声音\\男\\S_1.WAV" | |||
BOY_F_1 WAVE "res\\麻将声音\\男\\F_1.WAV" | |||
BOY_F_2 WAVE "res\\麻将声音\\男\\F_2.WAV" | |||
BOY_F_3 WAVE "res\\麻将声音\\男\\F_3.WAV" | |||
BOY_F_4 WAVE "res\\麻将声音\\男\\F_4.WAV" | |||
BOY_F_5 WAVE "res\\麻将声音\\男\\F_5.WAV" | |||
BOY_F_6 WAVE "res\\麻将声音\\男\\F_6.WAV" | |||
BOY_F_7 WAVE "res\\麻将声音\\男\\F_7.WAV" | |||
GIRL_W_9 WAVE "res\\麻将声音\\女\\W_9.WAV" | |||
GIRL_W_8 WAVE "res\\麻将声音\\女\\W_8.WAV" | |||
GIRL_W_7 WAVE "res\\麻将声音\\女\\W_7.WAV" | |||
GIRL_W_6 WAVE "res\\麻将声音\\女\\W_6.WAV" | |||
GIRL_W_5 WAVE "res\\麻将声音\\女\\W_5.WAV" | |||
GIRL_W_4 WAVE "res\\麻将声音\\女\\W_4.WAV" | |||
GIRL_W_3 WAVE "res\\麻将声音\\女\\W_3.WAV" | |||
GIRL_W_2 WAVE "res\\麻将声音\\女\\W_2.WAV" | |||
GIRL_W_1 WAVE "res\\麻将声音\\女\\W_1.WAV" | |||
GIRL_T_9 WAVE "res\\麻将声音\\女\\T_9.WAV" | |||
GIRL_T_8 WAVE "res\\麻将声音\\女\\T_8.WAV" | |||
GIRL_T_7 WAVE "res\\麻将声音\\女\\T_7.WAV" | |||
GIRL_T_6 WAVE "res\\麻将声音\\女\\T_6.WAV" | |||
GIRL_T_5 WAVE "res\\麻将声音\\女\\T_5.WAV" | |||
GIRL_T_4 WAVE "res\\麻将声音\\女\\T_4.WAV" | |||
GIRL_T_3 WAVE "res\\麻将声音\\女\\T_3.WAV" | |||
GIRL_T_2 WAVE "res\\麻将声音\\女\\T_2.WAV" | |||
GIRL_T_1 WAVE "res\\麻将声音\\女\\T_1.WAV" | |||
GIRL_S_9 WAVE "res\\麻将声音\\女\\S_9.WAV" | |||
GIRL_S_8 WAVE "res\\麻将声音\\女\\S_8.WAV" | |||
GIRL_S_7 WAVE "res\\麻将声音\\女\\S_7.WAV" | |||
GIRL_S_6 WAVE "res\\麻将声音\\女\\S_6.WAV" | |||
GIRL_S_4 WAVE "res\\麻将声音\\女\\S_4.WAV" | |||
GIRL_S_3 WAVE "res\\麻将声音\\女\\S_3.WAV" | |||
GIRL_S_2 WAVE "res\\麻将声音\\女\\S_2.WAV" | |||
GIRL_S_1 WAVE "res\\麻将声音\\女\\S_1.WAV" | |||
GIRL_F_1 WAVE "res\\麻将声音\\女\\F_1.WAV" | |||
GIRL_F_2 WAVE "res\\麻将声音\\女\\F_2.WAV" | |||
GIRL_F_3 WAVE "res\\麻将声音\\女\\F_3.WAV" | |||
GIRL_F_4 WAVE "res\\麻将声音\\女\\F_4.WAV" | |||
GIRL_F_5 WAVE "res\\麻将声音\\女\\F_5.WAV" | |||
GIRL_F_6 WAVE "res\\麻将声音\\女\\F_6.WAV" | |||
GIRL_F_7 WAVE "res\\麻将声音\\女\\F_7.WAV" | |||
DRAW_SICE WAVE "res\\麻将声音\\DRAW_SICE.wav" | |||
GIRL_S_5 WAVE "res\\麻将声音\\女\\S_5.WAV" | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Dialog | |||
// | |||
IDD_OPTION DIALOGEX 0, 0, 169, 94 | |||
STYLE DS_SETFONT | WS_POPUP | WS_SYSMENU | |||
FONT 9, "宋体", 400, 0, 0x0 | |||
BEGIN | |||
DEFPUSHBUTTON "确定",IDOK,26,75,46,13 | |||
PUSHBUTTON "取消",IDCANCEL,95,75,46,13 | |||
CONTROL "允许声音效果",IDC_ENABLE_SOUND,"Button",BS_AUTOCHECKBOX | | |||
BS_FLAT | WS_TABSTOP,79,36,64,10 | |||
CONTROL "允许旁观",IDC_ENABLE_LOOKON,"Button",BS_AUTOCHECKBOX | | |||
BS_FLAT | WS_TABSTOP,79,48,48,10 | |||
GROUPBOX "常规配置",IDC_STATIC,17,24,134,36 | |||
ICON IDR_MAINFRAME,IDC_STATIC,32,35,21,21 | |||
END | |||
IDD_RESPONSE_LISTEN DIALOGEX 0, 0, 186, 104 | |||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_SYSMENU | |||
FONT 8, "MS Shell Dlg", 400, 0, 0x1 | |||
BEGIN | |||
LTEXT "Static",IDC_STATIC,23,26,140,54 | |||
PUSHBUTTON "是",IDOK,31,83,50,14 | |||
PUSHBUTTON "否",IDCANCEL,100,83,50,14 | |||
END | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// DESIGNINFO | |||
// | |||
#ifdef APSTUDIO_INVOKED | |||
GUIDELINES DESIGNINFO | |||
BEGIN | |||
IDD_OPTION, DIALOG | |||
BEGIN | |||
RIGHTMARGIN, 161 | |||
BOTTOMMARGIN, 91 | |||
END | |||
IDD_RESPONSE_LISTEN, DIALOG | |||
BEGIN | |||
LEFTMARGIN, 7 | |||
RIGHTMARGIN, 179 | |||
TOPMARGIN, 7 | |||
BOTTOMMARGIN, 97 | |||
END | |||
END | |||
#endif // APSTUDIO_INVOKED | |||
#endif // 中文(中华人民共和国) resources | |||
///////////////////////////////////////////////////////////////////////////// | |||
#ifndef APSTUDIO_INVOKED | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Generated from the TEXTINCLUDE 3 resource. | |||
// | |||
#define _AFX_NO_SPLITTER_RESOURCES | |||
#define _AFX_NO_OLE_RESOURCES | |||
#define _AFX_NO_TRACKER_RESOURCES | |||
#define _AFX_NO_PROPERTY_RESOURCES | |||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) | |||
LANGUAGE 4, 2 | |||
#pragma code_page(936) | |||
#include "res\GameClient.rc2" // 非 Microsoft Visual C++ 编辑过的资源 | |||
#include "afxres.rc" // 标准组件 | |||
#endif | |||
///////////////////////////////////////////////////////////////////////////// | |||
#endif // not APSTUDIO_INVOKED | |||
@@ -0,0 +1,913 @@ | |||
<?xml version="1.0" encoding="gb2312"?> | |||
<VisualStudioProject | |||
ProjectType="Visual C++" | |||
Version="7.10" | |||
Name="游戏客户端" | |||
ProjectGUID="{F2D70F30-23FC-4973-A798-AED329359B33}" | |||
Keyword="MFCProj"> | |||
<Platforms> | |||
<Platform | |||
Name="Win32"/> | |||
</Platforms> | |||
<Configurations> | |||
<Configuration | |||
Name="Debug|Win32" | |||
OutputDirectory="Debug" | |||
IntermediateDirectory="Debug" | |||
ConfigurationType="1" | |||
UseOfMFC="2" | |||
CharacterSet="2"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
Optimization="0" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG" | |||
MinimalRebuild="TRUE" | |||
BasicRuntimeChecks="3" | |||
RuntimeLibrary="3" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="4"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../../运行/Debug/ansi/SparrowXZ.exe" | |||
LinkIncremental="2" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Debug\Ansi | |||
copy /y ..\..\..\..\运行\Debug\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Ansi\$(TargetFileName)"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release|Win32" | |||
OutputDirectory="Release" | |||
IntermediateDirectory="Release" | |||
ConfigurationType="1" | |||
UseOfMFC="2" | |||
CharacterSet="2"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG" | |||
MinimalRebuild="FALSE" | |||
RuntimeLibrary="2" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="3"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../../运行/Release/ansi/SparrowXZ.exe" | |||
LinkIncremental="1" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
OptimizeReferences="2" | |||
EnableCOMDATFolding="2" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Release\Ansi | |||
copy /y ..\..\..\..\运行\Release\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Ansi\$(TargetFileName)"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
<Configuration | |||
Name="Debug_Unicode|Win32" | |||
OutputDirectory="$(ConfigurationName)" | |||
IntermediateDirectory="$(ConfigurationName)" | |||
ConfigurationType="1" | |||
UseOfMFC="2" | |||
CharacterSet="1"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
Optimization="0" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG" | |||
MinimalRebuild="TRUE" | |||
BasicRuntimeChecks="3" | |||
RuntimeLibrary="3" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="4"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../../运行/Debug/unicode/SparrowXZ.exe" | |||
LinkIncremental="2" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Debug\Unicode | |||
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Unicode\$(TargetFileName)"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release_Unicode|Win32" | |||
OutputDirectory="$(ConfigurationName)" | |||
IntermediateDirectory="$(ConfigurationName)" | |||
ConfigurationType="1" | |||
UseOfMFC="2" | |||
CharacterSet="1"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG" | |||
MinimalRebuild="FALSE" | |||
RuntimeLibrary="2" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="3"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../../运行/Release/unicode/SparrowXZ.exe" | |||
LinkIncremental="1" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
OptimizeReferences="2" | |||
EnableCOMDATFolding="2" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Release\Unicode | |||
copy /y ..\..\..\..\运行\Release\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Unicode\$(TargetFileName)"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
</Configurations> | |||
<References> | |||
</References> | |||
<Files> | |||
<Filter | |||
Name="源文件" | |||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" | |||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> | |||
<File | |||
RelativePath=".\CardControl.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\ControlWnd.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\DirectSound.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\DrawSiceWnd.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClient.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClientEngine.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClientView.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\GameLogic.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\GameOption.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\ScoreControl.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\Stdafx.cpp"> | |||
<FileConfiguration | |||
Name="Debug|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Release|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Debug_Unicode|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Release_Unicode|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
</File> | |||
</Filter> | |||
<Filter | |||
Name="头文件" | |||
Filter="h;hpp;hxx;hm;inl;inc;xsd" | |||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> | |||
<File | |||
RelativePath=".\CardControl.h"> | |||
</File> | |||
<File | |||
RelativePath="..\消息定义\CMD_Sparrow.h"> | |||
</File> | |||
<File | |||
RelativePath=".\ControlWnd.h"> | |||
</File> | |||
<File | |||
RelativePath=".\DirectSound.h"> | |||
</File> | |||
<File | |||
RelativePath=".\DrawSiceWnd.h"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClient.h"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClientEngine.h"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClientView.h"> | |||
</File> | |||
<File | |||
RelativePath=".\GameLogic.h"> | |||
</File> | |||
<File | |||
RelativePath=".\GameOption.h"> | |||
</File> | |||
<File | |||
RelativePath=".\Resource.h"> | |||
</File> | |||
<File | |||
RelativePath=".\ScoreControl.h"> | |||
</File> | |||
<File | |||
RelativePath=".\Stdafx.h"> | |||
</File> | |||
</Filter> | |||
<Filter | |||
Name="资源文件" | |||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" | |||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\A_chi.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\A_chi.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\A_chi_hu.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\A_chi_hu.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\A_gang.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\A_gang.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\A_peng.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\A_peng.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\ACTION_BACK.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\ACTION_EXPLAIN.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_CHIHU.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_GIVEUP.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_LISTEN.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_SCORE_CLOSE.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_START.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_START_TRUSTEE.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_STOP_TRUSTEE.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_BACK_H.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_BACK_V.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_CUR.cur"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_DOUBLE_H.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_DOUBLE_V.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_SINGLE_H.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_SINGLE_V.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_BOTTOM.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_LEFT.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_RIGHT.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_TOP.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_BOTTOM.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_LEFT.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_RIGHT.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_TOP.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CELL_SCORE.BMP"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CONTROL_BOTTOM.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CONTROL_MID.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CONTROL_TOP.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\FAN_PAI.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Game_end.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GAME_LOGO.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Game_lose.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Game_lost.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GAME_SCORE.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GAME_SCORE_FLAG.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Game_start.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Game_warn.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Game_win.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GameClient.ico"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClient.rc"> | |||
</File> | |||
<File | |||
RelativePath=".\res\GameClient.rc2"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\HUANG_ZHUANG.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\LISTEN_FLAG_H.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\LISTEN_FLAG_V.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Out_card.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\OUT_CARD_TIP.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_8.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_8.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_9.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_9.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SELECT.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE1.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE10.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE11.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE12.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE2.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE3.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE4.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE5.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE6.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE7.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE8.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE9.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE_BACK.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_8.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_8.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_9.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_9.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\Ting.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\Ting.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\TRUSTEE.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\USER_ACTION.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\USER_FLAG.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\VIEW_BACK.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\View_center.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_8.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_8.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_9.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_9.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\WAIT_TIP.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\WIN_LOSE.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\WIN_ORDER.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\ZUAN_PAI.bmp"> | |||
</File> | |||
</Filter> | |||
<File | |||
RelativePath=".\Res\ACTIONANI.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\ARROW.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_DOUBLE_BV.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_DOUBLE_LV.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_DOUBLE_RV.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_DOUBLE_TV.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_SINGLE_BV.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_SINGLE_LV.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_SINGLE_RV.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_SINGLE_TV.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_BOTTOM.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_LEFT.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_RIGHT.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_TOP.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_BOTTOM.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_LEFT.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_RIGHT.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_TOP.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CELL_SCORE.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\Chi.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\Chi.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\Chi_hu.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\Chi_hu.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\DISC.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\DRAW_SICE.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GAME_LOST.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GAME_WIN.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\Gang.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\Gang.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GUA_FENG.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\NUM_LOST.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\NUM_ORDER.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\NUM_WIN.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\Peng.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\Peng.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\png1.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\Trustee.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\XIAO_YU.PNG"> | |||
</File> | |||
</Files> | |||
<Globals> | |||
<Global | |||
Name="RESOURCE_FILE" | |||
Value="GameClient.rc"/> | |||
</Globals> | |||
</VisualStudioProject> |
@@ -0,0 +1,121 @@ | |||
<?xml version="1.0" encoding="gb2312"?> | |||
<VisualStudioUserFile | |||
ProjectType="Visual C++" | |||
Version="8.00" | |||
ShowAllFiles="false" | |||
> | |||
<Configurations> | |||
<Configuration | |||
Name="Debug|Win32" | |||
> | |||
<DebugSettings | |||
Command="$(TargetPath)" | |||
WorkingDirectory="" | |||
CommandArguments="" | |||
Attach="false" | |||
DebuggerType="3" | |||
Remote="1" | |||
RemoteMachine="ZGC-20110418DJO" | |||
RemoteCommand="" | |||
HttpUrl="" | |||
PDBPath="" | |||
SQLDebugging="" | |||
Environment="" | |||
EnvironmentMerge="true" | |||
DebuggerFlavor="" | |||
MPIRunCommand="" | |||
MPIRunArguments="" | |||
MPIRunWorkingDirectory="" | |||
ApplicationCommand="" | |||
ApplicationArguments="" | |||
ShimCommand="" | |||
MPIAcceptMode="" | |||
MPIAcceptFilter="" | |||
/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release|Win32" | |||
> | |||
<DebugSettings | |||
Command="$(TargetPath)" | |||
WorkingDirectory="" | |||
CommandArguments="" | |||
Attach="false" | |||
DebuggerType="3" | |||
Remote="1" | |||
RemoteMachine="ZGC-20110418DJO" | |||
RemoteCommand="" | |||
HttpUrl="" | |||
PDBPath="" | |||
SQLDebugging="" | |||
Environment="" | |||
EnvironmentMerge="true" | |||
DebuggerFlavor="" | |||
MPIRunCommand="" | |||
MPIRunArguments="" | |||
MPIRunWorkingDirectory="" | |||
ApplicationCommand="" | |||
ApplicationArguments="" | |||
ShimCommand="" | |||
MPIAcceptMode="" | |||
MPIAcceptFilter="" | |||
/> | |||
</Configuration> | |||
<Configuration | |||
Name="Debug_Unicode|Win32" | |||
> | |||
<DebugSettings | |||
Command="$(TargetPath)" | |||
WorkingDirectory="" | |||
CommandArguments="" | |||
Attach="false" | |||
DebuggerType="3" | |||
Remote="1" | |||
RemoteMachine="ZGC-20110418DJO" | |||
RemoteCommand="" | |||
HttpUrl="" | |||
PDBPath="" | |||
SQLDebugging="" | |||
Environment="" | |||
EnvironmentMerge="true" | |||
DebuggerFlavor="" | |||
MPIRunCommand="" | |||
MPIRunArguments="" | |||
MPIRunWorkingDirectory="" | |||
ApplicationCommand="" | |||
ApplicationArguments="" | |||
ShimCommand="" | |||
MPIAcceptMode="" | |||
MPIAcceptFilter="" | |||
/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release_Unicode|Win32" | |||
> | |||
<DebugSettings | |||
Command="$(TargetPath)" | |||
WorkingDirectory="" | |||
CommandArguments="" | |||
Attach="false" | |||
DebuggerType="3" | |||
Remote="1" | |||
RemoteMachine="ZGC-20110418DJO" | |||
RemoteCommand="" | |||
HttpUrl="" | |||
PDBPath="" | |||
SQLDebugging="" | |||
Environment="" | |||
EnvironmentMerge="true" | |||
DebuggerFlavor="" | |||
MPIRunCommand="" | |||
MPIRunArguments="" | |||
MPIRunWorkingDirectory="" | |||
ApplicationCommand="" | |||
ApplicationArguments="" | |||
ShimCommand="" | |||
MPIAcceptMode="" | |||
MPIAcceptFilter="" | |||
/> | |||
</Configuration> | |||
</Configurations> | |||
</VisualStudioUserFile> |
@@ -0,0 +1,462 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<ItemGroup Label="ProjectConfigurations"> | |||
<ProjectConfiguration Include="Debug_Unicode|Win32"> | |||
<Configuration>Debug_Unicode</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Debug|Win32"> | |||
<Configuration>Debug</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Release_Unicode|Win32"> | |||
<Configuration>Release_Unicode</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Release|Win32"> | |||
<Configuration>Release</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
</ItemGroup> | |||
<PropertyGroup Label="Globals"> | |||
<ProjectName>游戏客户端</ProjectName> | |||
<ProjectGuid>{8AE42F19-68DA-44F9-9D8C-2AB90269691D}</ProjectGuid> | |||
<RootNamespace>游戏客户端</RootNamespace> | |||
<Keyword>MFCProj</Keyword> | |||
</PropertyGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="Configuration"> | |||
<ConfigurationType>Application</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>Unicode</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="Configuration"> | |||
<ConfigurationType>Application</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>Unicode</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | |||
<ConfigurationType>Application</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>MultiByte</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | |||
<ConfigurationType>Application</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>MultiByte</CharacterSet> | |||
</PropertyGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | |||
<ImportGroup Label="ExtensionSettings"> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<PropertyGroup Label="UserMacros" /> | |||
<PropertyGroup> | |||
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||
<OutDir>Debug\</OutDir> | |||
<IntDir>Debug\</IntDir> | |||
<LinkIncremental>true</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |||
<OutDir>Release\</OutDir> | |||
<IntDir>Release\</IntDir> | |||
<LinkIncremental>false</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'"> | |||
<OutDir>$(Configuration)\</OutDir> | |||
<IntDir>$(Configuration)\</IntDir> | |||
<LinkIncremental>true</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'"> | |||
<OutDir>$(Configuration)\</OutDir> | |||
<IntDir>$(Configuration)\</IntDir> | |||
<LinkIncremental>false</LinkIncremental> | |||
<TargetName>SparrowXZ</TargetName> | |||
</PropertyGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<Optimization>Disabled</Optimization> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>true</MinimalRebuild> | |||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | |||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Debug/ansi/SparrowXZ.exe</OutputFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\客户端组件\Debug\Ansi | |||
copy /y ..\..\..\..\运行\Debug\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Ansi\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>false</MinimalRebuild> | |||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Release/ansi/SparrowXZ.exe</OutputFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<OptimizeReferences>true</OptimizeReferences> | |||
<EnableCOMDATFolding>true</EnableCOMDATFolding> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\客户端组件\Release\Ansi | |||
copy /y ..\..\..\..\运行\Release\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Ansi\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<Optimization>Disabled</Optimization> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>true</MinimalRebuild> | |||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | |||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Debug/unicode/SparrowXZ.exe</OutputFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\..\发布组件\客户端组件\Debug\Unicode | |||
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\..\发布组件\客户端组件\Debug\Unicode\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>false</MinimalRebuild> | |||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Release/unicode/SparrowXZ.exe</OutputFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<OptimizeReferences>true</OptimizeReferences> | |||
<EnableCOMDATFolding>true</EnableCOMDATFolding> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\客户端组件\Release\Unicode | |||
copy /y ..\..\..\..\运行\Release\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Unicode\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
</ItemDefinitionGroup> | |||
<ItemGroup> | |||
<ClCompile Include="CardControl.cpp" /> | |||
<ClCompile Include="ControlWnd.cpp" /> | |||
<ClCompile Include="DirectSound.cpp" /> | |||
<ClCompile Include="DrawSiceWnd.cpp" /> | |||
<ClCompile Include="GameClient.cpp" /> | |||
<ClCompile Include="GameClientEngine.cpp" /> | |||
<ClCompile Include="GameClientView.cpp" /> | |||
<ClCompile Include="GameLogic.cpp" /> | |||
<ClCompile Include="GameOption.cpp" /> | |||
<ClCompile Include="ScoreControl.cpp" /> | |||
<ClCompile Include="Stdafx.cpp"> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> | |||
</ClCompile> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClInclude Include="CardControl.h" /> | |||
<ClInclude Include="..\消息定义\CMD_Sparrow.h" /> | |||
<ClInclude Include="ControlWnd.h" /> | |||
<ClInclude Include="DirectSound.h" /> | |||
<ClInclude Include="DrawSiceWnd.h" /> | |||
<ClInclude Include="GameClient.h" /> | |||
<ClInclude Include="GameClientEngine.h" /> | |||
<ClInclude Include="GameClientView.h" /> | |||
<ClInclude Include="GameLogic.h" /> | |||
<ClInclude Include="GameOption.h" /> | |||
<ClInclude Include="Resource.h" /> | |||
<ClInclude Include="ScoreControl.h" /> | |||
<ClInclude Include="Stdafx.h" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Media Include="Res\麻将声音\女\A_chi.wav" /> | |||
<Media Include="Res\麻将声音\男\A_chi.wav" /> | |||
<Media Include="Res\麻将声音\女\A_chi_hu.wav" /> | |||
<Media Include="Res\麻将声音\男\A_chi_hu.wav" /> | |||
<Media Include="Res\麻将声音\男\A_gang.wav" /> | |||
<Media Include="Res\麻将声音\女\A_gang.wav" /> | |||
<Media Include="Res\麻将声音\男\A_peng.wav" /> | |||
<Media Include="Res\麻将声音\女\A_peng.wav" /> | |||
<Media Include="Res\麻将声音\男\F_1.wav" /> | |||
<Media Include="Res\麻将声音\女\F_1.wav" /> | |||
<Media Include="Res\麻将声音\男\F_2.wav" /> | |||
<Media Include="Res\麻将声音\女\F_2.wav" /> | |||
<Media Include="Res\麻将声音\女\F_3.wav" /> | |||
<Media Include="Res\麻将声音\男\F_3.wav" /> | |||
<Media Include="Res\麻将声音\男\F_4.wav" /> | |||
<Media Include="Res\麻将声音\女\F_4.wav" /> | |||
<Media Include="Res\麻将声音\男\F_5.wav" /> | |||
<Media Include="Res\麻将声音\女\F_5.wav" /> | |||
<Media Include="Res\麻将声音\男\F_6.wav" /> | |||
<Media Include="Res\麻将声音\女\F_6.wav" /> | |||
<Media Include="Res\麻将声音\女\F_7.wav" /> | |||
<Media Include="Res\麻将声音\男\F_7.wav" /> | |||
<Media Include="Res\麻将声音\Game_end.wav" /> | |||
<Media Include="Res\麻将声音\Game_lose.wav" /> | |||
<Media Include="Res\麻将声音\Game_lost.wav" /> | |||
<Media Include="Res\麻将声音\Game_start.wav" /> | |||
<Media Include="Res\麻将声音\Game_warn.wav" /> | |||
<Media Include="Res\麻将声音\Game_win.wav" /> | |||
<Media Include="Res\麻将声音\Out_card.wav" /> | |||
<Media Include="Res\麻将声音\女\S_1.wav" /> | |||
<Media Include="Res\麻将声音\男\S_1.wav" /> | |||
<Media Include="Res\麻将声音\男\S_2.wav" /> | |||
<Media Include="Res\麻将声音\女\S_2.wav" /> | |||
<Media Include="Res\麻将声音\女\S_3.wav" /> | |||
<Media Include="Res\麻将声音\男\S_3.wav" /> | |||
<Media Include="Res\麻将声音\男\S_4.wav" /> | |||
<Media Include="Res\麻将声音\女\S_4.wav" /> | |||
<Media Include="Res\麻将声音\男\S_5.wav" /> | |||
<Media Include="Res\麻将声音\女\S_5.wav" /> | |||
<Media Include="Res\麻将声音\女\S_6.wav" /> | |||
<Media Include="Res\麻将声音\男\S_6.wav" /> | |||
<Media Include="Res\麻将声音\男\S_7.wav" /> | |||
<Media Include="Res\麻将声音\女\S_7.wav" /> | |||
<Media Include="Res\麻将声音\男\S_8.wav" /> | |||
<Media Include="Res\麻将声音\女\S_8.wav" /> | |||
<Media Include="Res\麻将声音\男\S_9.wav" /> | |||
<Media Include="Res\麻将声音\女\S_9.wav" /> | |||
<Media Include="Res\麻将声音\女\T_1.wav" /> | |||
<Media Include="Res\麻将声音\男\T_1.wav" /> | |||
<Media Include="Res\麻将声音\女\T_2.wav" /> | |||
<Media Include="Res\麻将声音\男\T_2.wav" /> | |||
<Media Include="Res\麻将声音\男\T_3.wav" /> | |||
<Media Include="Res\麻将声音\女\T_3.wav" /> | |||
<Media Include="Res\麻将声音\女\T_4.wav" /> | |||
<Media Include="Res\麻将声音\男\T_4.wav" /> | |||
<Media Include="Res\麻将声音\男\T_5.wav" /> | |||
<Media Include="Res\麻将声音\女\T_5.wav" /> | |||
<Media Include="Res\麻将声音\男\T_6.wav" /> | |||
<Media Include="Res\麻将声音\女\T_6.wav" /> | |||
<Media Include="Res\麻将声音\男\T_7.wav" /> | |||
<Media Include="Res\麻将声音\女\T_7.wav" /> | |||
<Media Include="Res\麻将声音\女\T_8.wav" /> | |||
<Media Include="Res\麻将声音\男\T_8.wav" /> | |||
<Media Include="Res\麻将声音\男\T_9.wav" /> | |||
<Media Include="Res\麻将声音\女\T_9.wav" /> | |||
<Media Include="Res\麻将声音\男\Ting.wav" /> | |||
<Media Include="Res\麻将声音\女\Ting.wav" /> | |||
<Media Include="Res\麻将声音\女\W_1.wav" /> | |||
<Media Include="Res\麻将声音\男\W_1.wav" /> | |||
<Media Include="Res\麻将声音\女\W_2.wav" /> | |||
<Media Include="Res\麻将声音\男\W_2.wav" /> | |||
<Media Include="Res\麻将声音\男\W_3.wav" /> | |||
<Media Include="Res\麻将声音\女\W_3.wav" /> | |||
<Media Include="Res\麻将声音\男\W_4.wav" /> | |||
<Media Include="Res\麻将声音\女\W_4.wav" /> | |||
<Media Include="Res\麻将声音\男\W_5.wav" /> | |||
<Media Include="Res\麻将声音\女\W_5.wav" /> | |||
<Media Include="Res\麻将声音\男\W_6.wav" /> | |||
<Media Include="Res\麻将声音\女\W_6.wav" /> | |||
<Media Include="Res\麻将声音\男\W_7.wav" /> | |||
<Media Include="Res\麻将声音\女\W_7.wav" /> | |||
<Media Include="Res\麻将声音\男\W_8.wav" /> | |||
<Media Include="Res\麻将声音\女\W_8.wav" /> | |||
<Media Include="Res\麻将声音\女\W_9.wav" /> | |||
<Media Include="Res\麻将声音\男\W_9.wav" /> | |||
<Media Include="Res\麻将声音\男\Chi.wav" /> | |||
<Media Include="Res\麻将声音\女\Chi.wav" /> | |||
<Media Include="Res\麻将声音\女\Chi_hu.wav" /> | |||
<Media Include="Res\麻将声音\男\Chi_hu.wav" /> | |||
<Media Include="Res\麻将声音\DRAW_SICE.wav" /> | |||
<Media Include="Res\麻将声音\男\Gang.wav" /> | |||
<Media Include="Res\麻将声音\女\Gang.wav" /> | |||
<Media Include="Res\麻将声音\女\Peng.wav" /> | |||
<Media Include="Res\麻将声音\男\Peng.wav" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Image Include="Res\ACTION_BACK.bmp" /> | |||
<Image Include="Res\ACTION_EXPLAIN.bmp" /> | |||
<Image Include="Res\BT_CHIHU.bmp" /> | |||
<Image Include="Res\BT_GIVEUP.bmp" /> | |||
<Image Include="Res\BT_LISTEN.bmp" /> | |||
<Image Include="Res\BT_SCORE_CLOSE.bmp" /> | |||
<Image Include="Res\BT_START.bmp" /> | |||
<Image Include="Res\BT_START_TRUSTEE.bmp" /> | |||
<Image Include="Res\BT_STOP_TRUSTEE.bmp" /> | |||
<Image Include="Res\CARD_BACK_H.bmp" /> | |||
<Image Include="Res\CARD_BACK_V.bmp" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_H.bmp" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_V.bmp" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_H.bmp" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_V.bmp" /> | |||
<Image Include="Res\CARD_TABLE_BOTTOM.bmp" /> | |||
<Image Include="Res\CARD_TABLE_LEFT.bmp" /> | |||
<Image Include="Res\CARD_TABLE_RIGHT.bmp" /> | |||
<Image Include="Res\CARD_TABLE_TOP.bmp" /> | |||
<Image Include="Res\CARD_USER_BOTTOM.bmp" /> | |||
<Image Include="Res\CARD_USER_LEFT.bmp" /> | |||
<Image Include="Res\CARD_USER_RIGHT.bmp" /> | |||
<Image Include="Res\CARD_USER_TOP.bmp" /> | |||
<Image Include="Res\CELL_SCORE.BMP" /> | |||
<Image Include="Res\CONTROL_BOTTOM.bmp" /> | |||
<Image Include="Res\CONTROL_MID.bmp" /> | |||
<Image Include="Res\CONTROL_TOP.bmp" /> | |||
<Image Include="Res\FAN_PAI.bmp" /> | |||
<Image Include="Res\GAME_LOGO.bmp" /> | |||
<Image Include="Res\GAME_SCORE.bmp" /> | |||
<Image Include="Res\GAME_SCORE_FLAG.bmp" /> | |||
<Image Include="Res\GameClient.ico" /> | |||
<Image Include="Res\HUANG_ZHUANG.bmp" /> | |||
<Image Include="Res\LISTEN_FLAG_H.bmp" /> | |||
<Image Include="Res\LISTEN_FLAG_V.bmp" /> | |||
<Image Include="Res\OUT_CARD_TIP.bmp" /> | |||
<Image Include="Res\SELECT.bmp" /> | |||
<Image Include="Res\SICE1.bmp" /> | |||
<Image Include="Res\SICE10.bmp" /> | |||
<Image Include="Res\SICE11.bmp" /> | |||
<Image Include="Res\SICE12.bmp" /> | |||
<Image Include="Res\SICE2.bmp" /> | |||
<Image Include="Res\SICE3.bmp" /> | |||
<Image Include="Res\SICE4.bmp" /> | |||
<Image Include="Res\SICE5.bmp" /> | |||
<Image Include="Res\SICE6.bmp" /> | |||
<Image Include="Res\SICE7.bmp" /> | |||
<Image Include="Res\SICE8.bmp" /> | |||
<Image Include="Res\SICE9.bmp" /> | |||
<Image Include="Res\SICE_BACK.bmp" /> | |||
<Image Include="Res\TRUSTEE.bmp" /> | |||
<Image Include="Res\USER_ACTION.bmp" /> | |||
<Image Include="Res\USER_FLAG.bmp" /> | |||
<Image Include="Res\VIEW_BACK.bmp" /> | |||
<Image Include="Res\View_center.bmp" /> | |||
<Image Include="Res\WAIT_TIP.bmp" /> | |||
<Image Include="Res\WIN_LOSE.bmp" /> | |||
<Image Include="Res\WIN_ORDER.bmp" /> | |||
<Image Include="Res\ZUAN_PAI.bmp" /> | |||
<Image Include="Res\ACTIONANI.png" /> | |||
<Image Include="Res\ARROW.png" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_BV.png" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_LV.png" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_RV.PNG" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_TV.PNG" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_BV.png" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_LV.png" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_RV.PNG" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_TV.png" /> | |||
<Image Include="Res\CARD_TABLE_BOTTOM.PNG" /> | |||
<Image Include="Res\CARD_TABLE_LEFT.png" /> | |||
<Image Include="Res\CARD_TABLE_RIGHT.png" /> | |||
<Image Include="Res\CARD_TABLE_TOP.png" /> | |||
<Image Include="Res\CARD_USER_BOTTOM.png" /> | |||
<Image Include="Res\CARD_USER_LEFT.png" /> | |||
<Image Include="Res\CARD_USER_RIGHT.png" /> | |||
<Image Include="Res\CARD_USER_TOP.png" /> | |||
<Image Include="Res\CELL_SCORE.PNG" /> | |||
<Image Include="Res\DISC.png" /> | |||
<Image Include="Res\GAME_LOST.PNG" /> | |||
<Image Include="Res\GAME_WIN.PNG" /> | |||
<Image Include="Res\GUA_FENG.PNG" /> | |||
<Image Include="Res\NUM_LOST.PNG" /> | |||
<Image Include="Res\NUM_ORDER.PNG" /> | |||
<Image Include="Res\NUM_WIN.PNG" /> | |||
<Image Include="Res\png1.png" /> | |||
<Image Include="Res\Trustee.png" /> | |||
<Image Include="Res\XIAO_YU.PNG" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="Res\CARD_CUR.cur" /> | |||
<None Include="res\GameClient.rc2" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ResourceCompile Include="GameClient.rc" /> | |||
</ItemGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | |||
<ImportGroup Label="ExtensionTargets"> | |||
</ImportGroup> | |||
<ProjectExtensions> | |||
<VisualStudio> | |||
<UserProperties RESOURCE_FILE="GameClient.rc" /> | |||
</VisualStudio> | |||
</ProjectExtensions> | |||
</Project> |
@@ -0,0 +1,580 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<ItemGroup> | |||
<Filter Include="源文件"> | |||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> | |||
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> | |||
</Filter> | |||
<Filter Include="头文件"> | |||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> | |||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> | |||
</Filter> | |||
<Filter Include="资源文件"> | |||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> | |||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions> | |||
</Filter> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClCompile Include="CardControl.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="ControlWnd.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="DirectSound.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="DrawSiceWnd.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="GameClient.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="GameClientEngine.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="GameClientView.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="GameLogic.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="GameOption.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="ScoreControl.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="Stdafx.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClInclude Include="CardControl.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="..\消息定义\CMD_Sparrow.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="ControlWnd.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="DirectSound.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="DrawSiceWnd.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="GameClient.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="GameClientEngine.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="GameClientView.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="GameLogic.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="GameOption.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="Resource.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="ScoreControl.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="Stdafx.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Media Include="Res\麻将声音\女\A_chi.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\A_chi.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\A_chi_hu.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\A_chi_hu.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\A_gang.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\A_gang.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\A_peng.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\A_peng.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Game_end.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Game_lose.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Game_lost.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Game_start.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Game_warn.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Game_win.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Out_card.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_8.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_8.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_9.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_9.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_8.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_8.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_9.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_9.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\Ting.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\Ting.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_8.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_8.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_9.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_9.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\Chi.wav" /> | |||
<Media Include="Res\麻将声音\女\Chi.wav" /> | |||
<Media Include="Res\麻将声音\女\Chi_hu.wav" /> | |||
<Media Include="Res\麻将声音\男\Chi_hu.wav" /> | |||
<Media Include="Res\麻将声音\DRAW_SICE.wav" /> | |||
<Media Include="Res\麻将声音\男\Gang.wav" /> | |||
<Media Include="Res\麻将声音\女\Gang.wav" /> | |||
<Media Include="Res\麻将声音\女\Peng.wav" /> | |||
<Media Include="Res\麻将声音\男\Peng.wav" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Image Include="Res\ACTION_BACK.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\ACTION_EXPLAIN.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_CHIHU.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_GIVEUP.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_LISTEN.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_SCORE_CLOSE.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_START.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_START_TRUSTEE.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_STOP_TRUSTEE.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_BACK_H.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_BACK_V.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_H.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_V.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_HEAP_SINGLE_H.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_HEAP_SINGLE_V.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_TABLE_BOTTOM.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_TABLE_LEFT.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_TABLE_RIGHT.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_TABLE_TOP.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_USER_BOTTOM.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_USER_LEFT.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_USER_RIGHT.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_USER_TOP.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CELL_SCORE.BMP"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CONTROL_BOTTOM.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CONTROL_MID.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CONTROL_TOP.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\FAN_PAI.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\GAME_LOGO.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\GAME_SCORE.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\GAME_SCORE_FLAG.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\GameClient.ico"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\HUANG_ZHUANG.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\LISTEN_FLAG_H.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\LISTEN_FLAG_V.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\OUT_CARD_TIP.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SELECT.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE1.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE10.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE11.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE12.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE2.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE3.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE4.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE5.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE6.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE7.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE8.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE9.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE_BACK.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\TRUSTEE.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\USER_ACTION.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\USER_FLAG.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\VIEW_BACK.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\View_center.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\WAIT_TIP.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\WIN_LOSE.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\WIN_ORDER.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\ZUAN_PAI.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\ACTIONANI.png" /> | |||
<Image Include="Res\ARROW.png" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_BV.png" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_LV.png" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_RV.PNG" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_TV.PNG" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_BV.png" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_LV.png" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_RV.PNG" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_TV.png" /> | |||
<Image Include="Res\CARD_TABLE_BOTTOM.PNG" /> | |||
<Image Include="Res\CARD_TABLE_LEFT.png" /> | |||
<Image Include="Res\CARD_TABLE_RIGHT.png" /> | |||
<Image Include="Res\CARD_TABLE_TOP.png" /> | |||
<Image Include="Res\CARD_USER_BOTTOM.png" /> | |||
<Image Include="Res\CARD_USER_LEFT.png" /> | |||
<Image Include="Res\CARD_USER_RIGHT.png" /> | |||
<Image Include="Res\CARD_USER_TOP.png" /> | |||
<Image Include="Res\CELL_SCORE.PNG" /> | |||
<Image Include="Res\DISC.png" /> | |||
<Image Include="Res\GAME_LOST.PNG" /> | |||
<Image Include="Res\GAME_WIN.PNG" /> | |||
<Image Include="Res\GUA_FENG.PNG" /> | |||
<Image Include="Res\NUM_LOST.PNG" /> | |||
<Image Include="Res\NUM_ORDER.PNG" /> | |||
<Image Include="Res\NUM_WIN.PNG" /> | |||
<Image Include="Res\png1.png" /> | |||
<Image Include="Res\Trustee.png" /> | |||
<Image Include="Res\XIAO_YU.PNG" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="Res\CARD_CUR.cur"> | |||
<Filter>资源文件</Filter> | |||
</None> | |||
<None Include="res\GameClient.rc2"> | |||
<Filter>资源文件</Filter> | |||
</None> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ResourceCompile Include="GameClient.rc"> | |||
<Filter>资源文件</Filter> | |||
</ResourceCompile> | |||
</ItemGroup> | |||
</Project> |
@@ -0,0 +1,4 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<PropertyGroup /> | |||
</Project> |
@@ -0,0 +1,913 @@ | |||
<?xml version="1.0" encoding="gb2312"?> | |||
<VisualStudioProject | |||
ProjectType="Visual C++" | |||
Version="7.10" | |||
Name="游戏客户端" | |||
ProjectGUID="{F2D70F30-23FC-4973-A798-AED329359B33}" | |||
Keyword="MFCProj"> | |||
<Platforms> | |||
<Platform | |||
Name="Win32"/> | |||
</Platforms> | |||
<Configurations> | |||
<Configuration | |||
Name="Debug|Win32" | |||
OutputDirectory="Debug" | |||
IntermediateDirectory="Debug" | |||
ConfigurationType="1" | |||
UseOfMFC="2" | |||
CharacterSet="2"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
Optimization="0" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG" | |||
MinimalRebuild="TRUE" | |||
BasicRuntimeChecks="3" | |||
RuntimeLibrary="3" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="4"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../../运行/Debug/ansi/SparrowXZ.exe" | |||
LinkIncremental="2" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Debug\Ansi | |||
copy /y ..\..\..\..\运行\Debug\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Ansi\$(TargetFileName)"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release|Win32" | |||
OutputDirectory="Release" | |||
IntermediateDirectory="Release" | |||
ConfigurationType="1" | |||
UseOfMFC="2" | |||
CharacterSet="2"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG" | |||
MinimalRebuild="FALSE" | |||
RuntimeLibrary="2" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="3"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../../运行/Release/ansi/SparrowXZ.exe" | |||
LinkIncremental="1" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
OptimizeReferences="2" | |||
EnableCOMDATFolding="2" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Release\Ansi | |||
copy /y ..\..\..\..\运行\Release\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Ansi\$(TargetFileName)"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
<Configuration | |||
Name="Debug_Unicode|Win32" | |||
OutputDirectory="$(ConfigurationName)" | |||
IntermediateDirectory="$(ConfigurationName)" | |||
ConfigurationType="1" | |||
UseOfMFC="2" | |||
CharacterSet="1"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
Optimization="0" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG" | |||
MinimalRebuild="TRUE" | |||
BasicRuntimeChecks="3" | |||
RuntimeLibrary="3" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="4"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../../运行/Debug/unicode/SparrowXZ.exe" | |||
LinkIncremental="2" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Debug\Unicode | |||
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Unicode\$(TargetFileName)"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="_DEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
<Configuration | |||
Name="Release_Unicode|Win32" | |||
OutputDirectory="$(ConfigurationName)" | |||
IntermediateDirectory="$(ConfigurationName)" | |||
ConfigurationType="1" | |||
UseOfMFC="2" | |||
CharacterSet="1"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG" | |||
MinimalRebuild="FALSE" | |||
RuntimeLibrary="2" | |||
TreatWChar_tAsBuiltInType="TRUE" | |||
UsePrecompiledHeader="3" | |||
WarningLevel="3" | |||
Detect64BitPortabilityProblems="TRUE" | |||
DebugInformationFormat="3"/> | |||
<Tool | |||
Name="VCCustomBuildTool"/> | |||
<Tool | |||
Name="VCLinkerTool" | |||
OutputFile="../../../../运行/Release/unicode/SparrowXZ.exe" | |||
LinkIncremental="1" | |||
GenerateDebugInformation="TRUE" | |||
SubSystem="2" | |||
OptimizeReferences="2" | |||
EnableCOMDATFolding="2" | |||
TargetMachine="1"/> | |||
<Tool | |||
Name="VCMIDLTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
MkTypLibCompatible="FALSE"/> | |||
<Tool | |||
Name="VCPostBuildEventTool" | |||
CommandLine="mkdir ..\..\..\发布组件\客户端组件\Release\Unicode | |||
copy /y ..\..\..\..\运行\Release\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Unicode\$(TargetFileName)"/> | |||
<Tool | |||
Name="VCPreBuildEventTool"/> | |||
<Tool | |||
Name="VCPreLinkEventTool"/> | |||
<Tool | |||
Name="VCResourceCompilerTool" | |||
PreprocessorDefinitions="NDEBUG" | |||
Culture="2052" | |||
AdditionalIncludeDirectories="$(IntDir)"/> | |||
<Tool | |||
Name="VCWebServiceProxyGeneratorTool"/> | |||
<Tool | |||
Name="VCXMLDataGeneratorTool"/> | |||
<Tool | |||
Name="VCWebDeploymentTool"/> | |||
<Tool | |||
Name="VCManagedWrapperGeneratorTool"/> | |||
<Tool | |||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> | |||
</Configuration> | |||
</Configurations> | |||
<References> | |||
</References> | |||
<Files> | |||
<Filter | |||
Name="源文件" | |||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" | |||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> | |||
<File | |||
RelativePath=".\CardControl.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\ControlWnd.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\DirectSound.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\DrawSiceWnd.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClient.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClientEngine.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClientView.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\GameLogic.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\GameOption.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\ScoreControl.cpp"> | |||
</File> | |||
<File | |||
RelativePath=".\Stdafx.cpp"> | |||
<FileConfiguration | |||
Name="Debug|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Release|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Debug_Unicode|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
<FileConfiguration | |||
Name="Release_Unicode|Win32"> | |||
<Tool | |||
Name="VCCLCompilerTool" | |||
UsePrecompiledHeader="1"/> | |||
</FileConfiguration> | |||
</File> | |||
</Filter> | |||
<Filter | |||
Name="头文件" | |||
Filter="h;hpp;hxx;hm;inl;inc;xsd" | |||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> | |||
<File | |||
RelativePath=".\CardControl.h"> | |||
</File> | |||
<File | |||
RelativePath="..\消息定义\CMD_Sparrow.h"> | |||
</File> | |||
<File | |||
RelativePath=".\ControlWnd.h"> | |||
</File> | |||
<File | |||
RelativePath=".\DirectSound.h"> | |||
</File> | |||
<File | |||
RelativePath=".\DrawSiceWnd.h"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClient.h"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClientEngine.h"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClientView.h"> | |||
</File> | |||
<File | |||
RelativePath=".\GameLogic.h"> | |||
</File> | |||
<File | |||
RelativePath=".\GameOption.h"> | |||
</File> | |||
<File | |||
RelativePath=".\Resource.h"> | |||
</File> | |||
<File | |||
RelativePath=".\ScoreControl.h"> | |||
</File> | |||
<File | |||
RelativePath=".\Stdafx.h"> | |||
</File> | |||
</Filter> | |||
<Filter | |||
Name="资源文件" | |||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" | |||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\A_chi.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\A_chi.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\A_chi_hu.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\A_chi_hu.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\A_gang.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\A_gang.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\A_peng.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\A_peng.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\ACTION_BACK.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\ACTION_EXPLAIN.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_CHIHU.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_GIVEUP.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_LISTEN.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_SCORE_CLOSE.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_START.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_START_TRUSTEE.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\BT_STOP_TRUSTEE.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_BACK_H.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_BACK_V.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_CUR.cur"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_DOUBLE_H.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_DOUBLE_V.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_SINGLE_H.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_SINGLE_V.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_BOTTOM.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_LEFT.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_RIGHT.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_TOP.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_BOTTOM.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_LEFT.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_RIGHT.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_TOP.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CELL_SCORE.BMP"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CONTROL_BOTTOM.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CONTROL_MID.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CONTROL_TOP.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\F_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\F_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\FAN_PAI.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Game_end.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GAME_LOGO.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Game_lose.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Game_lost.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GAME_SCORE.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GAME_SCORE_FLAG.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Game_start.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Game_warn.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Game_win.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GameClient.ico"> | |||
</File> | |||
<File | |||
RelativePath=".\GameClient.rc"> | |||
</File> | |||
<File | |||
RelativePath=".\res\GameClient.rc2"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\HUANG_ZHUANG.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\LISTEN_FLAG_H.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\LISTEN_FLAG_V.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\Out_card.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\OUT_CARD_TIP.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_8.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_8.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\S_9.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\S_9.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SELECT.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE1.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE10.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE11.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE12.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE2.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE3.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE4.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE5.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE6.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE7.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE8.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE9.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\SICE_BACK.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_8.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_8.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\T_9.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\T_9.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\Ting.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\Ting.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\TRUSTEE.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\USER_ACTION.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\USER_FLAG.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\VIEW_BACK.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\View_center.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_1.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_2.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_3.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_4.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_5.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_6.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_7.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_8.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_8.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\W_9.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\W_9.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\WAIT_TIP.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\WIN_LOSE.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\WIN_ORDER.bmp"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\ZUAN_PAI.bmp"> | |||
</File> | |||
</Filter> | |||
<File | |||
RelativePath=".\Res\ACTIONANI.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\ARROW.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_DOUBLE_BV.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_DOUBLE_LV.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_DOUBLE_RV.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_DOUBLE_TV.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_SINGLE_BV.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_SINGLE_LV.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_SINGLE_RV.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_HEAP_SINGLE_TV.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_BOTTOM.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_LEFT.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_RIGHT.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_TABLE_TOP.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_BOTTOM.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_LEFT.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_RIGHT.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CARD_USER_TOP.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\CELL_SCORE.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\Chi.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\Chi.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\Chi_hu.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\Chi_hu.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\DISC.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\DRAW_SICE.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GAME_LOST.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GAME_WIN.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\Gang.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\Gang.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\GUA_FENG.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\NUM_LOST.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\NUM_ORDER.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\NUM_WIN.PNG"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\女\Peng.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\麻将声音\男\Peng.wav"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\png1.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\Trustee.png"> | |||
</File> | |||
<File | |||
RelativePath=".\Res\XIAO_YU.PNG"> | |||
</File> | |||
</Files> | |||
<Globals> | |||
<Global | |||
Name="RESOURCE_FILE" | |||
Value="GameClient.rc"/> | |||
</Globals> | |||
</VisualStudioProject> |
@@ -0,0 +1,458 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<ItemGroup Label="ProjectConfigurations"> | |||
<ProjectConfiguration Include="Debug_Unicode|Win32"> | |||
<Configuration>Debug_Unicode</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Debug|Win32"> | |||
<Configuration>Debug</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Release_Unicode|Win32"> | |||
<Configuration>Release_Unicode</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Release|Win32"> | |||
<Configuration>Release</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
</ItemGroup> | |||
<PropertyGroup Label="Globals"> | |||
<ProjectName>游戏客户端</ProjectName> | |||
<ProjectGuid>{F2D70F30-23FC-4973-A798-AED329359B33}</ProjectGuid> | |||
<Keyword>MFCProj</Keyword> | |||
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> | |||
</PropertyGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="Configuration"> | |||
<ConfigurationType>Application</ConfigurationType> | |||
<PlatformToolset>v140</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>Unicode</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="Configuration"> | |||
<ConfigurationType>Application</ConfigurationType> | |||
<PlatformToolset>v140</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>Unicode</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | |||
<ConfigurationType>Application</ConfigurationType> | |||
<PlatformToolset>v140</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>MultiByte</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | |||
<ConfigurationType>Application</ConfigurationType> | |||
<PlatformToolset>v140</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>MultiByte</CharacterSet> | |||
</PropertyGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | |||
<ImportGroup Label="ExtensionSettings"> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
</ImportGroup> | |||
<PropertyGroup Label="UserMacros" /> | |||
<PropertyGroup> | |||
<_ProjectFileVersion>14.0.25123.0</_ProjectFileVersion> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||
<OutDir>Debug\</OutDir> | |||
<IntDir>Debug\</IntDir> | |||
<LinkIncremental>true</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |||
<OutDir>Release\</OutDir> | |||
<IntDir>Release\</IntDir> | |||
<LinkIncremental>false</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'"> | |||
<OutDir>$(Configuration)\</OutDir> | |||
<IntDir>$(Configuration)\</IntDir> | |||
<LinkIncremental>true</LinkIncremental> | |||
<IncludePath>C:\game\qipai\trunk\whjd\游戏组件\开发库\DirectX\include;C:\game\qipai\trunk\whjd\游戏组件\开发库;C:\game\qipai\trunk\whjd\游戏组件\开发库\Include;$(IncludePath)</IncludePath> | |||
<TargetName>SparrowXZ</TargetName> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'"> | |||
<OutDir>$(Configuration)\</OutDir> | |||
<IntDir>$(Configuration)\</IntDir> | |||
<LinkIncremental>false</LinkIncremental> | |||
<IncludePath>C:\game\qipai\trunk\whjd\游戏组件\开发库\DirectX\include;C:\game\qipai\trunk\whjd\游戏组件\开发库;C:\game\qipai\trunk\whjd\游戏组件\开发库\Include;$(IncludePath)</IncludePath> | |||
<LibraryPath>C:\game\qipai\trunk\whjd\游戏组件\开发库\Lib;C:\game\qipai\trunk\whjd\游戏组件\开发库\DirectX\lib;C:\game\qipai\trunk\whjd\系统模块\链接库\unicode;$(LibraryPath)</LibraryPath> | |||
<TargetName>SparrowXZ</TargetName> | |||
</PropertyGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||
<ClCompile> | |||
<Optimization>Disabled</Optimization> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>true</MinimalRebuild> | |||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | |||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |||
</ClCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Debug/ansi/SparrowXZ.exe</OutputFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<Midl> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\客户端组件\Debug\Ansi | |||
copy /y ..\..\..\..\运行\Debug\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Ansi\$(TargetFileName)</Command> | |||
</PostBuildEvent> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |||
<ClCompile> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>false</MinimalRebuild> | |||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | |||
</ClCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Release/ansi/SparrowXZ.exe</OutputFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<OptimizeReferences>true</OptimizeReferences> | |||
<EnableCOMDATFolding>true</EnableCOMDATFolding> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<Midl> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\客户端组件\Release\Ansi | |||
copy /y ..\..\..\..\运行\Release\Ansi\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Ansi\$(TargetFileName)</Command> | |||
</PostBuildEvent> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'"> | |||
<ClCompile> | |||
<Optimization>Disabled</Optimization> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_NO_DISPATCHEX_GUIDS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>true</MinimalRebuild> | |||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | |||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |||
</ClCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Debug/Unicode/SparrowXZ.exe</OutputFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<Midl> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\客户端组件\Debug\Unicode | |||
copy /y ..\..\..\..\运行\Debug\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Debug\Unicode\$(TargetFileName)</Command> | |||
</PostBuildEvent> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'"> | |||
<ClCompile> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_NO_DISPATCHEX_GUIDS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>false</MinimalRebuild> | |||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | |||
</ClCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Release/unicode/SparrowXZ.exe</OutputFile> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<OptimizeReferences>true</OptimizeReferences> | |||
<EnableCOMDATFolding>true</EnableCOMDATFolding> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<Midl> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\客户端组件\Release\Unicode | |||
copy /y ..\..\..\..\运行\Release\Unicode\$(TargetFileName) ..\..\..\发布组件\客户端组件\Release\Unicode\$(TargetFileName)</Command> | |||
</PostBuildEvent> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
</ItemDefinitionGroup> | |||
<ItemGroup> | |||
<ClCompile Include="CardControl.cpp" /> | |||
<ClCompile Include="ControlWnd.cpp" /> | |||
<ClCompile Include="DirectSound.cpp" /> | |||
<ClCompile Include="DrawSiceWnd.cpp" /> | |||
<ClCompile Include="GameClient.cpp" /> | |||
<ClCompile Include="GameClientEngine.cpp" /> | |||
<ClCompile Include="GameClientView.cpp" /> | |||
<ClCompile Include="GameLogic.cpp" /> | |||
<ClCompile Include="GameOption.cpp" /> | |||
<ClCompile Include="ScoreControl.cpp" /> | |||
<ClCompile Include="Stdafx.cpp"> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> | |||
</ClCompile> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClInclude Include="..\消息定义\CMD_Sparrow.h" /> | |||
<ClInclude Include="CardControl.h" /> | |||
<ClInclude Include="ControlWnd.h" /> | |||
<ClInclude Include="DirectSound.h" /> | |||
<ClInclude Include="DrawSiceWnd.h" /> | |||
<ClInclude Include="GameClient.h" /> | |||
<ClInclude Include="GameClientEngine.h" /> | |||
<ClInclude Include="GameClientView.h" /> | |||
<ClInclude Include="GameLogic.h" /> | |||
<ClInclude Include="GameOption.h" /> | |||
<ClInclude Include="Resource.h" /> | |||
<ClInclude Include="ScoreControl.h" /> | |||
<ClInclude Include="Stdafx.h" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Media Include="Res\麻将声音\DRAW_SICE.wav" /> | |||
<Media Include="Res\麻将声音\Game_end.wav" /> | |||
<Media Include="Res\麻将声音\Game_lose.wav" /> | |||
<Media Include="Res\麻将声音\Game_lost.wav" /> | |||
<Media Include="Res\麻将声音\Game_start.wav" /> | |||
<Media Include="Res\麻将声音\Game_warn.wav" /> | |||
<Media Include="Res\麻将声音\Game_win.wav" /> | |||
<Media Include="Res\麻将声音\Out_card.wav" /> | |||
<Media Include="Res\麻将声音\女\A_chi.wav" /> | |||
<Media Include="Res\麻将声音\女\A_chi_hu.wav" /> | |||
<Media Include="Res\麻将声音\女\A_gang.wav" /> | |||
<Media Include="Res\麻将声音\女\A_peng.wav" /> | |||
<Media Include="Res\麻将声音\女\Chi.wav" /> | |||
<Media Include="Res\麻将声音\女\Chi_hu.wav" /> | |||
<Media Include="Res\麻将声音\女\F_1.wav" /> | |||
<Media Include="Res\麻将声音\女\F_2.wav" /> | |||
<Media Include="Res\麻将声音\女\F_3.wav" /> | |||
<Media Include="Res\麻将声音\女\F_4.wav" /> | |||
<Media Include="Res\麻将声音\女\F_5.wav" /> | |||
<Media Include="Res\麻将声音\女\F_6.wav" /> | |||
<Media Include="Res\麻将声音\女\F_7.wav" /> | |||
<Media Include="Res\麻将声音\女\Gang.wav" /> | |||
<Media Include="Res\麻将声音\女\Peng.wav" /> | |||
<Media Include="Res\麻将声音\女\S_1.wav" /> | |||
<Media Include="Res\麻将声音\女\S_2.wav" /> | |||
<Media Include="Res\麻将声音\女\S_3.wav" /> | |||
<Media Include="Res\麻将声音\女\S_4.wav" /> | |||
<Media Include="Res\麻将声音\女\S_5.wav" /> | |||
<Media Include="Res\麻将声音\女\S_6.wav" /> | |||
<Media Include="Res\麻将声音\女\S_7.wav" /> | |||
<Media Include="Res\麻将声音\女\S_8.wav" /> | |||
<Media Include="Res\麻将声音\女\S_9.wav" /> | |||
<Media Include="Res\麻将声音\女\Ting.wav" /> | |||
<Media Include="Res\麻将声音\女\T_1.wav" /> | |||
<Media Include="Res\麻将声音\女\T_2.wav" /> | |||
<Media Include="Res\麻将声音\女\T_3.wav" /> | |||
<Media Include="Res\麻将声音\女\T_4.wav" /> | |||
<Media Include="Res\麻将声音\女\T_5.wav" /> | |||
<Media Include="Res\麻将声音\女\T_6.wav" /> | |||
<Media Include="Res\麻将声音\女\T_7.wav" /> | |||
<Media Include="Res\麻将声音\女\T_8.wav" /> | |||
<Media Include="Res\麻将声音\女\T_9.wav" /> | |||
<Media Include="Res\麻将声音\女\W_1.wav" /> | |||
<Media Include="Res\麻将声音\女\W_2.wav" /> | |||
<Media Include="Res\麻将声音\女\W_3.wav" /> | |||
<Media Include="Res\麻将声音\女\W_4.wav" /> | |||
<Media Include="Res\麻将声音\女\W_5.wav" /> | |||
<Media Include="Res\麻将声音\女\W_6.wav" /> | |||
<Media Include="Res\麻将声音\女\W_7.wav" /> | |||
<Media Include="Res\麻将声音\女\W_8.wav" /> | |||
<Media Include="Res\麻将声音\女\W_9.wav" /> | |||
<Media Include="Res\麻将声音\男\A_chi.wav" /> | |||
<Media Include="Res\麻将声音\男\A_chi_hu.wav" /> | |||
<Media Include="Res\麻将声音\男\A_gang.wav" /> | |||
<Media Include="Res\麻将声音\男\A_peng.wav" /> | |||
<Media Include="Res\麻将声音\男\Chi.wav" /> | |||
<Media Include="Res\麻将声音\男\Chi_hu.wav" /> | |||
<Media Include="Res\麻将声音\男\F_1.wav" /> | |||
<Media Include="Res\麻将声音\男\F_2.wav" /> | |||
<Media Include="Res\麻将声音\男\F_3.wav" /> | |||
<Media Include="Res\麻将声音\男\F_4.wav" /> | |||
<Media Include="Res\麻将声音\男\F_5.wav" /> | |||
<Media Include="Res\麻将声音\男\F_6.wav" /> | |||
<Media Include="Res\麻将声音\男\F_7.wav" /> | |||
<Media Include="Res\麻将声音\男\Gang.wav" /> | |||
<Media Include="Res\麻将声音\男\Peng.wav" /> | |||
<Media Include="Res\麻将声音\男\S_1.wav" /> | |||
<Media Include="Res\麻将声音\男\S_2.wav" /> | |||
<Media Include="Res\麻将声音\男\S_3.wav" /> | |||
<Media Include="Res\麻将声音\男\S_4.wav" /> | |||
<Media Include="Res\麻将声音\男\S_5.wav" /> | |||
<Media Include="Res\麻将声音\男\S_6.wav" /> | |||
<Media Include="Res\麻将声音\男\S_7.wav" /> | |||
<Media Include="Res\麻将声音\男\S_8.wav" /> | |||
<Media Include="Res\麻将声音\男\S_9.wav" /> | |||
<Media Include="Res\麻将声音\男\Ting.wav" /> | |||
<Media Include="Res\麻将声音\男\T_1.wav" /> | |||
<Media Include="Res\麻将声音\男\T_2.wav" /> | |||
<Media Include="Res\麻将声音\男\T_3.wav" /> | |||
<Media Include="Res\麻将声音\男\T_4.wav" /> | |||
<Media Include="Res\麻将声音\男\T_5.wav" /> | |||
<Media Include="Res\麻将声音\男\T_6.wav" /> | |||
<Media Include="Res\麻将声音\男\T_7.wav" /> | |||
<Media Include="Res\麻将声音\男\T_8.wav" /> | |||
<Media Include="Res\麻将声音\男\T_9.wav" /> | |||
<Media Include="Res\麻将声音\男\W_1.wav" /> | |||
<Media Include="Res\麻将声音\男\W_2.wav" /> | |||
<Media Include="Res\麻将声音\男\W_3.wav" /> | |||
<Media Include="Res\麻将声音\男\W_4.wav" /> | |||
<Media Include="Res\麻将声音\男\W_5.wav" /> | |||
<Media Include="Res\麻将声音\男\W_6.wav" /> | |||
<Media Include="Res\麻将声音\男\W_7.wav" /> | |||
<Media Include="Res\麻将声音\男\W_8.wav" /> | |||
<Media Include="Res\麻将声音\男\W_9.wav" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Image Include="Res\ACTIONANI.png" /> | |||
<Image Include="Res\ACTION_BACK.bmp" /> | |||
<Image Include="Res\ACTION_EXPLAIN.bmp" /> | |||
<Image Include="Res\ARROW.png" /> | |||
<Image Include="Res\BT_CHIHU.bmp" /> | |||
<Image Include="Res\BT_GIVEUP.bmp" /> | |||
<Image Include="Res\BT_LISTEN.bmp" /> | |||
<Image Include="Res\BT_SCORE_CLOSE.bmp" /> | |||
<Image Include="Res\BT_START.bmp" /> | |||
<Image Include="Res\BT_START_TRUSTEE.bmp" /> | |||
<Image Include="Res\BT_STOP_TRUSTEE.bmp" /> | |||
<Image Include="Res\CARD_BACK_H.bmp" /> | |||
<Image Include="Res\CARD_BACK_V.bmp" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_BV.png" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_H.bmp" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_LV.png" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_RV.PNG" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_TV.PNG" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_V.bmp" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_BV.png" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_H.bmp" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_LV.png" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_RV.PNG" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_TV.png" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_V.bmp" /> | |||
<Image Include="Res\CARD_TABLE_BOTTOM.bmp" /> | |||
<Image Include="Res\CARD_TABLE_BOTTOM.PNG" /> | |||
<Image Include="Res\CARD_TABLE_LEFT.bmp" /> | |||
<Image Include="Res\CARD_TABLE_LEFT.png" /> | |||
<Image Include="Res\CARD_TABLE_RIGHT.bmp" /> | |||
<Image Include="Res\CARD_TABLE_RIGHT.png" /> | |||
<Image Include="Res\CARD_TABLE_TOP.bmp" /> | |||
<Image Include="Res\CARD_TABLE_TOP.png" /> | |||
<Image Include="Res\CARD_USER_BOTTOM.bmp" /> | |||
<Image Include="Res\CARD_USER_BOTTOM.png" /> | |||
<Image Include="Res\CARD_USER_LEFT.bmp" /> | |||
<Image Include="Res\CARD_USER_LEFT.png" /> | |||
<Image Include="Res\CARD_USER_RIGHT.bmp" /> | |||
<Image Include="Res\CARD_USER_RIGHT.png" /> | |||
<Image Include="Res\CARD_USER_TOP.bmp" /> | |||
<Image Include="Res\CARD_USER_TOP.png" /> | |||
<Image Include="Res\CELL_SCORE.BMP" /> | |||
<Image Include="Res\CELL_SCORE.PNG" /> | |||
<Image Include="Res\CONTROL_BOTTOM.bmp" /> | |||
<Image Include="Res\CONTROL_MID.bmp" /> | |||
<Image Include="Res\CONTROL_TOP.bmp" /> | |||
<Image Include="Res\DISC.png" /> | |||
<Image Include="Res\FAN_PAI.bmp" /> | |||
<Image Include="Res\GameClient.ico" /> | |||
<Image Include="Res\GAME_LOGO.bmp" /> | |||
<Image Include="Res\GAME_LOST.PNG" /> | |||
<Image Include="Res\GAME_SCORE.bmp" /> | |||
<Image Include="Res\GAME_SCORE_FLAG.bmp" /> | |||
<Image Include="Res\GAME_WIN.PNG" /> | |||
<Image Include="Res\GUA_FENG.PNG" /> | |||
<Image Include="Res\HUANG_ZHUANG.bmp" /> | |||
<Image Include="Res\LISTEN_FLAG_H.bmp" /> | |||
<Image Include="Res\LISTEN_FLAG_V.bmp" /> | |||
<Image Include="Res\NUM_LOST.PNG" /> | |||
<Image Include="Res\NUM_ORDER.PNG" /> | |||
<Image Include="Res\NUM_WIN.PNG" /> | |||
<Image Include="Res\OUT_CARD_TIP.bmp" /> | |||
<Image Include="Res\png1.png" /> | |||
<Image Include="Res\SELECT.bmp" /> | |||
<Image Include="Res\SICE1.bmp" /> | |||
<Image Include="Res\SICE10.bmp" /> | |||
<Image Include="Res\SICE11.bmp" /> | |||
<Image Include="Res\SICE12.bmp" /> | |||
<Image Include="Res\SICE2.bmp" /> | |||
<Image Include="Res\SICE3.bmp" /> | |||
<Image Include="Res\SICE4.bmp" /> | |||
<Image Include="Res\SICE5.bmp" /> | |||
<Image Include="Res\SICE6.bmp" /> | |||
<Image Include="Res\SICE7.bmp" /> | |||
<Image Include="Res\SICE8.bmp" /> | |||
<Image Include="Res\SICE9.bmp" /> | |||
<Image Include="Res\SICE_BACK.bmp" /> | |||
<Image Include="Res\TRUSTEE.bmp" /> | |||
<Image Include="Res\Trustee.png" /> | |||
<Image Include="Res\USER_ACTION.bmp" /> | |||
<Image Include="Res\USER_FLAG.bmp" /> | |||
<Image Include="Res\VIEW_BACK.bmp" /> | |||
<Image Include="Res\View_center.bmp" /> | |||
<Image Include="Res\WAIT_TIP.bmp" /> | |||
<Image Include="Res\WIN_LOSE.bmp" /> | |||
<Image Include="Res\WIN_ORDER.bmp" /> | |||
<Image Include="Res\XIAO_YU.PNG" /> | |||
<Image Include="Res\ZUAN_PAI.bmp" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="Res\CARD_CUR.cur" /> | |||
<None Include="res\GameClient.rc2" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ResourceCompile Include="GameClient.rc" /> | |||
</ItemGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | |||
<ImportGroup Label="ExtensionTargets"> | |||
</ImportGroup> | |||
<ProjectExtensions> | |||
<VisualStudio> | |||
<UserProperties RESOURCE_FILE="GameClient.rc" /> | |||
</VisualStudio> | |||
</ProjectExtensions> | |||
</Project> |
@@ -0,0 +1,580 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<ItemGroup> | |||
<Filter Include="源文件"> | |||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> | |||
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> | |||
</Filter> | |||
<Filter Include="头文件"> | |||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> | |||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> | |||
</Filter> | |||
<Filter Include="资源文件"> | |||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> | |||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions> | |||
</Filter> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClCompile Include="CardControl.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="ControlWnd.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="DirectSound.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="DrawSiceWnd.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="GameClient.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="GameClientEngine.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="GameClientView.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="GameLogic.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="GameOption.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="ScoreControl.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
<ClCompile Include="Stdafx.cpp"> | |||
<Filter>源文件</Filter> | |||
</ClCompile> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClInclude Include="CardControl.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="..\消息定义\CMD_Sparrow.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="ControlWnd.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="DirectSound.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="DrawSiceWnd.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="GameClient.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="GameClientEngine.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="GameClientView.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="GameLogic.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="GameOption.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="Resource.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="ScoreControl.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
<ClInclude Include="Stdafx.h"> | |||
<Filter>头文件</Filter> | |||
</ClInclude> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Media Include="Res\麻将声音\女\A_chi.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\A_chi.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\A_chi_hu.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\A_chi_hu.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\A_gang.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\A_gang.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\A_peng.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\A_peng.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\F_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\F_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Game_end.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Game_lose.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Game_lost.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Game_start.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Game_warn.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Game_win.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\Out_card.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_8.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_8.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\S_9.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\S_9.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_8.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_8.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\T_9.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\T_9.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\Ting.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\Ting.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_1.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_2.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_3.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_4.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_5.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_6.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_7.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_8.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_8.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\女\W_9.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\W_9.wav"> | |||
<Filter>资源文件</Filter> | |||
</Media> | |||
<Media Include="Res\麻将声音\男\Chi.wav" /> | |||
<Media Include="Res\麻将声音\女\Chi.wav" /> | |||
<Media Include="Res\麻将声音\女\Chi_hu.wav" /> | |||
<Media Include="Res\麻将声音\男\Chi_hu.wav" /> | |||
<Media Include="Res\麻将声音\DRAW_SICE.wav" /> | |||
<Media Include="Res\麻将声音\男\Gang.wav" /> | |||
<Media Include="Res\麻将声音\女\Gang.wav" /> | |||
<Media Include="Res\麻将声音\女\Peng.wav" /> | |||
<Media Include="Res\麻将声音\男\Peng.wav" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Image Include="Res\ACTION_BACK.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\ACTION_EXPLAIN.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_CHIHU.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_GIVEUP.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_LISTEN.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_SCORE_CLOSE.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_START.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_START_TRUSTEE.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\BT_STOP_TRUSTEE.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_BACK_H.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_BACK_V.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_H.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_V.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_HEAP_SINGLE_H.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_HEAP_SINGLE_V.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_TABLE_BOTTOM.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_TABLE_LEFT.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_TABLE_RIGHT.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_TABLE_TOP.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_USER_BOTTOM.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_USER_LEFT.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_USER_RIGHT.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CARD_USER_TOP.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CELL_SCORE.BMP"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CONTROL_BOTTOM.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CONTROL_MID.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\CONTROL_TOP.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\FAN_PAI.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\GAME_LOGO.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\GAME_SCORE.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\GAME_SCORE_FLAG.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\GameClient.ico"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\HUANG_ZHUANG.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\LISTEN_FLAG_H.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\LISTEN_FLAG_V.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\OUT_CARD_TIP.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SELECT.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE1.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE10.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE11.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE12.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE2.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE3.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE4.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE5.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE6.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE7.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE8.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE9.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\SICE_BACK.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\TRUSTEE.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\USER_ACTION.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\USER_FLAG.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\VIEW_BACK.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\View_center.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\WAIT_TIP.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\WIN_LOSE.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\WIN_ORDER.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\ZUAN_PAI.bmp"> | |||
<Filter>资源文件</Filter> | |||
</Image> | |||
<Image Include="Res\ACTIONANI.png" /> | |||
<Image Include="Res\ARROW.png" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_BV.png" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_LV.png" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_RV.PNG" /> | |||
<Image Include="Res\CARD_HEAP_DOUBLE_TV.PNG" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_BV.png" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_LV.png" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_RV.PNG" /> | |||
<Image Include="Res\CARD_HEAP_SINGLE_TV.png" /> | |||
<Image Include="Res\CARD_TABLE_BOTTOM.PNG" /> | |||
<Image Include="Res\CARD_TABLE_LEFT.png" /> | |||
<Image Include="Res\CARD_TABLE_RIGHT.png" /> | |||
<Image Include="Res\CARD_TABLE_TOP.png" /> | |||
<Image Include="Res\CARD_USER_BOTTOM.png" /> | |||
<Image Include="Res\CARD_USER_LEFT.png" /> | |||
<Image Include="Res\CARD_USER_RIGHT.png" /> | |||
<Image Include="Res\CARD_USER_TOP.png" /> | |||
<Image Include="Res\CELL_SCORE.PNG" /> | |||
<Image Include="Res\DISC.png" /> | |||
<Image Include="Res\GAME_LOST.PNG" /> | |||
<Image Include="Res\GAME_WIN.PNG" /> | |||
<Image Include="Res\GUA_FENG.PNG" /> | |||
<Image Include="Res\NUM_LOST.PNG" /> | |||
<Image Include="Res\NUM_ORDER.PNG" /> | |||
<Image Include="Res\NUM_WIN.PNG" /> | |||
<Image Include="Res\png1.png" /> | |||
<Image Include="Res\Trustee.png" /> | |||
<Image Include="Res\XIAO_YU.PNG" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="Res\CARD_CUR.cur"> | |||
<Filter>资源文件</Filter> | |||
</None> | |||
<None Include="res\GameClient.rc2"> | |||
<Filter>资源文件</Filter> | |||
</None> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ResourceCompile Include="GameClient.rc"> | |||
<Filter>资源文件</Filter> | |||
</ResourceCompile> | |||
</ItemGroup> | |||
</Project> |
@@ -0,0 +1,7 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'"> | |||
<LocalDebuggerWorkingDirectory>../../../../运行/Debug/unicode/SparrowXZ.exe</LocalDebuggerWorkingDirectory> | |||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor> | |||
</PropertyGroup> | |||
</Project> |
@@ -0,0 +1,132 @@ | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "GameLogic.h" | |||
#include "GameClientView.h" | |||
#include "DirectSound.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//游戏对话框 | |||
class CGameClientEngine : public CGameFrameEngine | |||
{ | |||
//用户变量 | |||
protected: | |||
WORD m_wBankerUser; //庄家用户 | |||
WORD m_wCurrentUser; //当前用户 | |||
BYTE m_cbUserAction; //玩家动作 | |||
LONG m_lSiceCount; // | |||
TCHAR m_szAccounts[GAME_PLAYER][32]; | |||
//托管变量 | |||
protected: | |||
bool m_bStustee; //托管标志 | |||
WORD m_wTimeOutCount; //超时次数 | |||
//堆立变量 | |||
protected: | |||
WORD m_wHeapHand; //堆立头部 | |||
WORD m_wHeapTail; //堆立尾部 | |||
BYTE m_cbHeapCardInfo[4][2]; //堆牌信息 | |||
//扑克变量 | |||
protected: | |||
BYTE m_cbLeftCardCount; //剩余数目 | |||
BYTE m_cbCardIndex[MAX_INDEX]; //手中扑克 | |||
//组合扑克 | |||
protected: | |||
BYTE m_cbWeaveCount[GAME_PLAYER]; //组合数目 | |||
tagWeaveItem m_WeaveItemArray[GAME_PLAYER][4]; //组合扑克 | |||
//出牌信息 | |||
protected: | |||
WORD m_wOutCardUser; //出牌用户 | |||
BYTE m_cbOutCardData; //出牌扑克 | |||
BYTE m_cbDiscardCount[GAME_PLAYER]; //丢弃数目 | |||
BYTE m_cbDiscardCard[GAME_PLAYER][55]; //丢弃记录 | |||
//控件变量 | |||
protected: | |||
CGameLogic m_GameLogic; //游戏逻辑 | |||
CGameClientView m_GameClientView; //游戏视图 | |||
CDirectSound m_DirectSound; //出牌和发牌声音 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CGameClientEngine(); | |||
//析构函数 | |||
virtual ~CGameClientEngine(); | |||
//常规继承 | |||
private: | |||
//初始函数 | |||
virtual bool OnInitGameEngine(); | |||
//重置框架 | |||
virtual bool OnResetGameEngine(); | |||
//时钟删除 | |||
virtual bool OnEventGameClockKill(WORD wChairID); | |||
//时间消息 | |||
virtual bool OnEventGameClockInfo(WORD wChairID, UINT nElapse, WORD wClockID); | |||
//旁观状态 | |||
virtual bool OnEventLookonMode(VOID * pData, WORD wDataSize); | |||
//网络消息 | |||
virtual bool OnEventGameMessage(WORD wSubCmdID, VOID * pBuffer, WORD wDataSize); | |||
//游戏场景 | |||
virtual bool OnEventSceneMessage(BYTE cbGameStatus, bool bLookonOther, VOID * pBuffer, WORD wDataSize); | |||
//消息处理 | |||
protected: | |||
//游戏开始 | |||
bool OnSubGameStart(const void * pBuffer, WORD wDataSize); | |||
//用户出牌 | |||
bool OnSubOutCard(const void * pBuffer, WORD wDataSize); | |||
//发牌消息 | |||
bool OnSubSendCard(const void * pBuffer, WORD wDataSize); | |||
//操作提示 | |||
bool OnSubOperateNotify(const void * pBuffer, WORD wDataSize); | |||
//操作结果 | |||
bool OnSubOperateResult(const void * pBuffer, WORD wDataSize); | |||
//游戏结束 | |||
bool OnSubGameEnd(const void * pBuffer, WORD wDataSize); | |||
//用户托管 | |||
bool OnSubTrustee(const void * pBuffer,WORD wDataSize); | |||
// | |||
bool OnSubUserChiHu( const void *pBuffer,WORD wDataSize ); | |||
// | |||
bool OnSubGangScore( const void *pBuffer, WORD wDataSize ); | |||
//辅助函数 | |||
protected: | |||
//播放声音 | |||
void PlayCardSound(WORD wChairID,BYTE cbCardData); | |||
//播放声音 | |||
void PlayActionSound(WORD wChairID,BYTE cbAction); | |||
//出牌判断 | |||
bool VerdictOutCard(BYTE cbCardData); | |||
//扣除扑克 | |||
void DeductionTableCard(bool bHeadCard); | |||
//显示控制 | |||
bool ShowOperateControl(BYTE cbUserAction, BYTE cbActionCard); | |||
//消息映射 | |||
protected: | |||
//开始消息 | |||
LRESULT OnStart(WPARAM wParam, LPARAM lParam); | |||
//出牌操作 | |||
LRESULT OnOutCard(WPARAM wParam, LPARAM lParam); | |||
//扑克操作 | |||
LRESULT OnCardOperate(WPARAM wParam, LPARAM lParam); | |||
//拖管控制 | |||
LRESULT OnStusteeControl(WPARAM wParam, LPARAM lParam); | |||
//第二次摇色子消息 | |||
LRESULT OnSiceTwo(WPARAM wParam, LPARAM lParam); | |||
//摇色子结束消息 | |||
LRESULT OnSiceFinish(WPARAM wParam, LPARAM lParam); | |||
DECLARE_MESSAGE_MAP() | |||
}; | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,268 @@ | |||
#ifndef GAME_LOGIC_HEAD_FILE | |||
#define GAME_LOGIC_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
////////////////////////////////////////////////////////////////////////// | |||
//逻辑掩码 | |||
#define MASK_COLOR 0xF0 //花色掩码 | |||
#define MASK_VALUE 0x0F //数值掩码 | |||
////////////////////////////////////////////////////////////////////////// | |||
//动作定义 | |||
//动作标志 | |||
#define WIK_NULL 0x00 //没有类型 | |||
#define WIK_LEFT 0x01 //左吃类型 | |||
#define WIK_CENTER 0x02 //中吃类型 | |||
#define WIK_RIGHT 0x04 //右吃类型 | |||
#define WIK_PENG 0x08 //碰牌类型 | |||
#define WIK_GANG 0x10 //杠牌类型 | |||
#define WIK_LISTEN 0x20 //吃牌类型 | |||
#define WIK_CHI_HU 0x40 //吃胡类型 | |||
#define WIK_ZI_MO 0x80 //自摸 | |||
////////////////////////////////////////////////////////////////////////// | |||
//胡牌定义 | |||
//胡牌 | |||
#define CHK_NULL 0x00 //非胡类型 | |||
#define CHK_CHI_HU 0x01 //胡类型 | |||
#define CHR_QIANG_GANG 0x00000001 //抢杠 | |||
#define CHR_GANG_SHANG_PAO 0x00000002 //杠上炮 | |||
#define CHR_GANG_KAI 0x00000004 //杠上花 | |||
#define CHR_TIAN_HU 0x00000008 //天胡 | |||
#define CHR_DI_HU 0x00000010 //地胡 | |||
#define CHR_DA_DUI_ZI 0x00000020 //大对子 | |||
#define CHR_QING_YI_SE 0x00000040 //清一色 | |||
#define CHR_QI_XIAO_DUI 0x00000080 //暗七对 | |||
#define CHR_DAI_YAO 0x00000100 //带幺 | |||
#define CHR_JIANG_DUI 0x00000200 //将对 | |||
#define CHR_SHU_FAN 0x00000400 //素番 | |||
#define CHR_QING_DUI 0x00000800 //清对 | |||
#define CHR_LONG_QI_DUI 0x00001000 //龙七对 | |||
#define CHR_QING_QI_DUI 0x00002000 //清七对 | |||
#define CHR_QING_YAO_JIU 0x00004000 //清幺九 | |||
#define CHR_QING_LONG_QI_DUI 0x00008000 //清龙七对 | |||
////////////////////////////////////////////////////////////////////////// | |||
#define ZI_PAI_COUNT 7 | |||
#pragma pack(1) | |||
//类型子项 | |||
struct tagKindItem | |||
{ | |||
BYTE cbWeaveKind; //组合类型 | |||
BYTE cbCenterCard; //中心扑克 | |||
BYTE cbCardIndex[3]; //扑克索引 | |||
BYTE cbValidIndex[3]; //实际扑克索引 | |||
}; | |||
//组合子项 | |||
struct tagWeaveItem | |||
{ | |||
BYTE cbWeaveKind; //组合类型 | |||
BYTE cbCenterCard; //中心扑克 | |||
BYTE cbPublicCard; //公开标志 | |||
WORD wProvideUser; //供应用户 | |||
}; | |||
//杠牌结果 | |||
struct tagGangCardResult | |||
{ | |||
BYTE cbCardCount; //扑克数目 | |||
BYTE cbCardData[4]; //扑克数据 | |||
}; | |||
//分析子项 | |||
struct tagAnalyseItem | |||
{ | |||
BYTE cbCardEye; //牌眼扑克 | |||
bool bMagicEye; //牌眼是否是王霸 | |||
BYTE cbWeaveKind[4]; //组合类型 | |||
BYTE cbCenterCard[4]; //中心扑克 | |||
BYTE cbCardData[4][4]; //实际扑克 | |||
}; | |||
#pragma pack() | |||
////////////////////////////////////////////////////////////////////////// | |||
#define MASK_CHI_HU_RIGHT 0x0fffffff | |||
/* | |||
// 权位类。 | |||
// 注意,在操作仅位时最好只操作单个权位.例如 | |||
// CChiHuRight chr; | |||
// chr |= (chr_zi_mo|chr_peng_peng),这样结果是无定义的。 | |||
// 只能单个操作: | |||
// chr |= chr_zi_mo; | |||
// chr |= chr_peng_peng; | |||
*/ | |||
class CChiHuRight | |||
{ | |||
//静态变量 | |||
private: | |||
static bool m_bInit; | |||
static DWORD m_dwRightMask[MAX_RIGHT_COUNT]; | |||
//权位变量 | |||
private: | |||
DWORD m_dwRight[MAX_RIGHT_COUNT]; | |||
public: | |||
//构造函数 | |||
CChiHuRight(); | |||
//运算符重载 | |||
public: | |||
//赋值符 | |||
CChiHuRight & operator = ( DWORD dwRight ); | |||
//与等于 | |||
CChiHuRight & operator &= ( DWORD dwRight ); | |||
//或等于 | |||
CChiHuRight & operator |= ( DWORD dwRight ); | |||
//与 | |||
CChiHuRight operator & ( DWORD dwRight ); | |||
CChiHuRight operator & ( DWORD dwRight ) const; | |||
//或 | |||
CChiHuRight operator | ( DWORD dwRight ); | |||
CChiHuRight operator | ( DWORD dwRight ) const; | |||
//功能函数 | |||
public: | |||
//是否权位为空 | |||
bool IsEmpty(); | |||
//设置权位为空 | |||
void SetEmpty(); | |||
//获取权位数值 | |||
BYTE GetRightData( DWORD dwRight[], BYTE cbMaxCount ); | |||
//设置权位数值 | |||
bool SetRightData( const DWORD dwRight[], BYTE cbRightCount ); | |||
private: | |||
//检查权位是否正确 | |||
bool IsValidRight( DWORD dwRight ); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//数组说明 | |||
typedef CWHArray<tagAnalyseItem,tagAnalyseItem &> CAnalyseItemArray; | |||
//游戏逻辑类 | |||
class CGameLogic | |||
{ | |||
//变量定义 | |||
protected: | |||
static const BYTE m_cbCardDataArray[MAX_REPERTORY]; //扑克数据 | |||
BYTE m_cbMagicIndex; //钻牌索引 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CGameLogic(); | |||
//析构函数 | |||
virtual ~CGameLogic(); | |||
//控制函数 | |||
public: | |||
//混乱扑克 | |||
void RandCardData(BYTE cbCardData[], BYTE cbMaxCount); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbRemoveCard); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], const BYTE cbRemoveCard[], BYTE cbRemoveCount); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, const BYTE cbRemoveCard[], BYTE cbRemoveCount); | |||
//设置钻牌 | |||
void SetMagicIndex( BYTE cbMagicIndex ) { m_cbMagicIndex = cbMagicIndex; } | |||
//钻牌 | |||
bool IsMagicCard( BYTE cbCardData ); | |||
//辅助函数 | |||
public: | |||
//有效判断 | |||
bool IsValidCard(BYTE cbCardData); | |||
//扑克数目 | |||
BYTE GetCardCount(const BYTE cbCardIndex[MAX_INDEX]); | |||
//组合扑克 | |||
BYTE GetWeaveCard(BYTE cbWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]); | |||
//等级函数 | |||
public: | |||
//动作等级 | |||
BYTE GetUserActionRank(BYTE cbUserAction); | |||
//胡牌等级 | |||
WORD GetChiHuActionRank(const CChiHuRight & ChiHuRight); | |||
//动作判断 | |||
public: | |||
//吃牌判断 | |||
BYTE EstimateEatCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//碰牌判断 | |||
BYTE EstimatePengCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//杠牌判断 | |||
BYTE EstimateGangCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//动作判断 | |||
public: | |||
//杠牌分析 | |||
BYTE AnalyseGangCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, tagGangCardResult & GangCardResult); | |||
//吃胡分析 | |||
BYTE AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, CChiHuRight &ChiHuRight); | |||
//听牌分析 | |||
BYTE AnalyseTingCard( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount ); | |||
//是否听牌 | |||
bool IsTingCard( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount ); | |||
//是否花猪 | |||
bool IsHuaZhu( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount ); | |||
//转换函数 | |||
public: | |||
//扑克转换 | |||
BYTE SwitchToCardData(BYTE cbCardIndex); | |||
//扑克转换 | |||
BYTE SwitchToCardIndex(BYTE cbCardData); | |||
//扑克转换 | |||
BYTE SwitchToCardData(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[MAX_COUNT]); | |||
//扑克转换 | |||
BYTE SwitchToCardIndex(const BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX]); | |||
//胡法分析 | |||
protected: | |||
//大对子 | |||
bool IsPengPeng( const tagAnalyseItem *pAnalyseItem ); | |||
//清一色牌 | |||
bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount,const BYTE cbCurrentCard); | |||
//七小对牌 | |||
bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[],const BYTE cbWeaveCount,const BYTE cbCurrentCard); | |||
//带幺 | |||
bool IsDaiYao( const tagAnalyseItem *pAnalyseItem ); | |||
//将对 | |||
bool IsJiangDui( const tagAnalyseItem *pAnalyseItem ); | |||
//内部函数 | |||
private: | |||
//分析扑克 | |||
bool AnalyseCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbItemCount, CAnalyseItemArray & AnalyseItemArray); | |||
//排序,根据牌值排序 | |||
bool SortCardList( BYTE cbCardData[MAX_COUNT], BYTE cbCardCount ); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,65 @@ | |||
#include "Stdafx.h" | |||
#include "GameOption.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
BEGIN_MESSAGE_MAP(CGameOption, CSkinDialog) | |||
END_MESSAGE_MAP() | |||
////////////////////////////////////////////////////////////////////////// | |||
//构造函数 | |||
CGameOption::CGameOption() : CSkinDialog(IDD_OPTION) | |||
{ | |||
m_bEnableSound=true; | |||
m_bAllowLookon=false; | |||
return; | |||
} | |||
//析构函数 | |||
CGameOption::~CGameOption() | |||
{ | |||
} | |||
//控件绑定 | |||
void CGameOption::DoDataExchange(CDataExchange * pDX) | |||
{ | |||
__super::DoDataExchange(pDX); | |||
DDX_Control(pDX, IDOK, m_btOK); | |||
DDX_Control(pDX, IDCANCEL, m_btCancel); | |||
} | |||
//初始化函数 | |||
BOOL CGameOption::OnInitDialog() | |||
{ | |||
__super::OnInitDialog(); | |||
//设置标题 | |||
SetWindowText(TEXT("游戏配置")); | |||
if(m_bAllowLookon == true) | |||
{ | |||
((CButton *)GetDlgItem(IDC_ENABLE_LOOKON))->SetCheck(BST_CHECKED); | |||
} | |||
//设置控件 | |||
if (m_bEnableSound==true) | |||
((CButton *)GetDlgItem(IDC_ENABLE_SOUND))->SetCheck(BST_CHECKED); | |||
return TRUE; | |||
} | |||
//确定消息 | |||
void CGameOption::OnOK() | |||
{ | |||
//获取变量 | |||
m_bEnableSound=(((CButton *)GetDlgItem(IDC_ENABLE_SOUND))->GetCheck()==BST_CHECKED); | |||
m_bAllowLookon =(((CButton *)GetDlgItem(IDC_ENABLE_LOOKON))->GetCheck()==BST_CHECKED); | |||
__super::OnOK(); | |||
} | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,40 @@ | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "Resource.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//游戏配置 | |||
class CGameOption : public CSkinDialog | |||
{ | |||
//变量定义 | |||
public: | |||
bool m_bEnableSound; //启用声音 | |||
bool m_bAllowLookon; //允许旁观 | |||
//控件变量 | |||
public: | |||
CSkinButton m_btOK; //确定按钮 | |||
CSkinButton m_btCancel; //取消按钮 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CGameOption(); | |||
//析构函数 | |||
virtual ~CGameOption(); | |||
//重载函数 | |||
protected: | |||
//控件绑定 | |||
virtual void DoDataExchange(CDataExchange * pDX); | |||
//初始化函数 | |||
virtual BOOL OnInitDialog(); | |||
//确定消息 | |||
virtual void OnOK(); | |||
DECLARE_MESSAGE_MAP() | |||
}; | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,276 @@ | |||
#include "StdAfx.h" | |||
#include "CardControl.h" | |||
#include "GameScoreWnd.h" | |||
#include "GameLogic.h" | |||
#include ".\gamescorewnd.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
BEGIN_MESSAGE_MAP(CGameScoreWnd, CWnd) | |||
ON_WM_PAINT() | |||
ON_WM_CREATE() | |||
ON_WM_ERASEBKGND() | |||
ON_WM_LBUTTONDOWN() | |||
ON_WM_MOVE() | |||
END_MESSAGE_MAP() | |||
////////////////////////////////////////////////////////////////////////// | |||
//构造函数 | |||
CGameScoreWnd::CGameScoreWnd() | |||
{ | |||
//设置变量 | |||
ZeroMemory(&m_GameScoreInfo,sizeof(m_GameScoreInfo)); | |||
m_ImageBack.SetLoadInfo(IDB_GAME_SCORE,AfxGetInstanceHandle()); | |||
return; | |||
} | |||
//析构函数 | |||
CGameScoreWnd::~CGameScoreWnd() | |||
{ | |||
} | |||
//建立消息 | |||
int CGameScoreWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) | |||
{ | |||
if (__super::OnCreate(lpCreateStruct)==-1) return -1; | |||
//移动窗口 | |||
CImageHandle BackImageHandle(&m_ImageBack); | |||
SetWindowPos(NULL,0,0,m_ImageBack.GetWidth(),m_ImageBack.GetHeight(),SWP_NOZORDER|SWP_NOREPOSITION); | |||
return TRUE; | |||
} | |||
//重画函数 | |||
void CGameScoreWnd::OnPaint() | |||
{ | |||
CPaintDC dc(this); | |||
//获取位置 | |||
CRect rcClient; | |||
GetClientRect(&rcClient); | |||
//创建缓冲 | |||
CDC BufferDC; | |||
CBitmap ImageBuffer; | |||
BufferDC.CreateCompatibleDC(&dc); | |||
ImageBuffer.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height()); | |||
BufferDC.SelectObject(&ImageBuffer); | |||
//绘画背景 | |||
CImageHandle BackImageHandle(&m_ImageBack); | |||
m_ImageBack.BitBlt(BufferDC,0,0); | |||
//设置 DC | |||
BufferDC.SetBkMode(TRANSPARENT); | |||
BufferDC.SetTextColor(RGB(230,230,230)); | |||
BufferDC.SelectObject(CSkinAttribute::m_DefaultFont); | |||
//绘画扑克 | |||
g_CardResource.m_ImageUserBottom.DrawCardItem(&BufferDC,m_GameScoreInfo.cbChiHuCard,85,23); | |||
//用户成绩 | |||
CRect rcDraw; | |||
TCHAR szBuffer[64]; | |||
for (int i=0;i<GAME_PLAYER;i++) | |||
{ | |||
//用户名字 | |||
rcDraw.left=25; | |||
rcDraw.right=125; | |||
rcDraw.top=125+i*25; | |||
rcDraw.bottom=rcDraw.top+12; | |||
BufferDC.DrawText(m_GameScoreInfo.szUserName[i],lstrlen(m_GameScoreInfo.szUserName[i]),&rcDraw,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); | |||
//用户积分 | |||
rcDraw.left=130; | |||
rcDraw.right=170; | |||
rcDraw.top=125+i*25; | |||
rcDraw.bottom=rcDraw.top+12; | |||
_snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_GameScoreInfo.lScore[i]); | |||
BufferDC.DrawText(szBuffer,lstrlen(szBuffer),&rcDraw,DT_CENTER|DT_VCENTER|DT_SINGLELINE); | |||
//用户状态 | |||
if (m_GameScoreInfo.wCardType[i]!=0) | |||
BufferDC.TextOut(180,125+i*25,TEXT("胡牌"),4); | |||
else if (m_GameScoreInfo.wProvideUser==i) | |||
BufferDC.TextOut(180,125+i*25,TEXT("放炮"),4); | |||
//其他信息 | |||
if (m_GameScoreInfo.wBankerUser==i) | |||
BufferDC.TextOut(228,125+i*25,TEXT("是"),2); | |||
} | |||
//游戏税收 | |||
if(m_GameScoreInfo.lGameTax!=0L) | |||
{ | |||
rcDraw.left=25; | |||
rcDraw.right=125; | |||
rcDraw.top=125+4*25; | |||
rcDraw.bottom=rcDraw.top+12; | |||
LPCTSTR pszTax=TEXT("交易税"); | |||
BufferDC.DrawText(pszTax,lstrlen(pszTax),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS); | |||
rcDraw.left=130; | |||
rcDraw.right=170; | |||
rcDraw.top=125+4*25; | |||
rcDraw.bottom=rcDraw.top+12; | |||
_snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_GameScoreInfo.lGameTax); | |||
BufferDC.DrawText(szBuffer,lstrlen(szBuffer),&rcDraw,DT_CENTER|DT_VCENTER|DT_SINGLELINE); | |||
} | |||
//绘制结果 | |||
int row=0,colum=0; | |||
WORD KindIndex[]={CHK_JI_HU, | |||
CHK_PING_HU, | |||
CHK_PENG_PENG, | |||
CHK_QI_XIAO_DUI, | |||
CHR_DI, | |||
CHR_TIAN, | |||
CHR_ZI_YI_SE, | |||
CHR_HUN_YI_SE, | |||
CHK_QING_YI_SE, | |||
CHR_QIANG_GANG, | |||
CHR_YI_TIAO_LONG, | |||
CHK_QUAN_QIU_REN, | |||
CHK_DA_SAN_YUAN}; | |||
TCHAR *KindBuffer[]={"鸡 胡","平 胡","碰碰胡","七小对","地 胡"," 天 胡", | |||
"字一色","混一色","清一色","杠 胡","一条龙","全求人","大三元"}; | |||
if(m_GameScoreInfo.wwChiHuKind!=0&&(m_GameScoreInfo.wwChiHuKind&0xff00)==0) | |||
{ | |||
if(m_GameScoreInfo.wwChiHuKind!=0) | |||
{ | |||
BufferDC.TextOut(28+colum*84,250+row*15,KindBuffer[1]); | |||
if(colum==2) | |||
{ | |||
row++; | |||
colum=0; | |||
} | |||
else | |||
colum++; | |||
} | |||
} | |||
else | |||
{ | |||
m_GameScoreInfo.wwChiHuKind&=0xff00; | |||
for(BYTE i=0;i<CountArray(KindIndex);i++) | |||
{ | |||
if(i<4&&m_GameScoreInfo.wwChiHuKind&KindIndex[i]) | |||
{ | |||
BufferDC.TextOut(28+colum*84,250+row*15,KindBuffer[i]); | |||
if(colum==2) | |||
{ | |||
row++; | |||
colum=0; | |||
} | |||
else | |||
colum++; | |||
} | |||
if(i>=4&&m_GameScoreInfo.wChiHuRight&KindIndex[i]) | |||
{ | |||
BufferDC.TextOut(28+colum*84,250+row*15,KindBuffer[i]); | |||
if(colum==2) | |||
{ | |||
row++; | |||
colum=0; | |||
} | |||
else | |||
colum++; | |||
} | |||
} | |||
} | |||
/* | |||
if(m_GameScoreInfo.wwChiHuKind != 0) | |||
{ | |||
m_GameScoreInfo.wwChiHuKind&=0xffff; | |||
for(BYTE i=0;i<CountArray(KindIndex);i++) | |||
{ | |||
if(i<4&&m_GameScoreInfo.wwChiHuKind&KindIndex[i]) | |||
{ | |||
BufferDC.TextOut(28+colum*84,250+row*15,KindBuffer[i]); | |||
if(colum==2) | |||
{ | |||
row++; | |||
colum=0; | |||
} | |||
else | |||
colum++; | |||
} | |||
if(i>=4&&m_GameScoreInfo.wChiHuRight&KindIndex[i]) | |||
{ | |||
BufferDC.TextOut(28+colum*84,250+row*15,KindBuffer[i]); | |||
if(colum==2) | |||
{ | |||
row++; | |||
colum=0; | |||
} | |||
else | |||
colum++; | |||
} | |||
} | |||
}*/ | |||
//绘画界面 | |||
dc.BitBlt(0,0,rcClient.Width(),rcClient.Height(),&BufferDC,0,0,SRCCOPY); | |||
//清理资源 | |||
BufferDC.DeleteDC(); | |||
ImageBuffer.DeleteObject(); | |||
return; | |||
} | |||
//绘画背景 | |||
BOOL CGameScoreWnd::OnEraseBkgnd(CDC * pDC) | |||
{ | |||
Invalidate(FALSE); | |||
UpdateWindow(); | |||
return TRUE; | |||
} | |||
//鼠标消息 | |||
void CGameScoreWnd::OnLButtonDown(UINT nFlags, CPoint point) | |||
{ | |||
__super::OnLButtonDown(nFlags,point); | |||
//消息模拟 | |||
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y)); | |||
return; | |||
} | |||
//设置积分 | |||
void CGameScoreWnd::SetScoreInfo(tagGameScoreInfo & GameScoreInfo) | |||
{ | |||
//设置变量 | |||
m_GameScoreInfo=GameScoreInfo; | |||
/* | |||
if(m_GameScoreInfo.wwChiHuKind !=0) | |||
ASSERT(FALSE); | |||
*/ | |||
//显示窗口 | |||
Invalidate(NULL); | |||
ShowWindow(SW_SHOW); | |||
return; | |||
} | |||
////////////////////////////////////////////////////////////////////////// | |||
void CGameScoreWnd::OnMove(int x, int y) | |||
{ | |||
__super::OnMove(x, y); | |||
//刷新界面 | |||
Invalidate(FALSE); | |||
UpdateWindow(); | |||
return; | |||
} |
@@ -0,0 +1,65 @@ | |||
#include "Stdafx.h" | |||
#include "Resource.h" | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "Resource.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//结构定义 | |||
//积分信息 | |||
struct tagGameScoreInfo | |||
{ | |||
BYTE cbChiHuCard; //吃胡扑克 | |||
WORD wBankerUser; //庄家用户 | |||
WORD wProvideUser; //点炮用户 | |||
LONG lGameTax; //游戏税收 | |||
LONG lScore[GAME_PLAYER]; //用户积分 | |||
WORD wCardType[GAME_PLAYER]; //胡牌类型 | |||
TCHAR szUserName[GAME_PLAYER][NAME_LEN]; //用户帐号 | |||
WORD wwChiHuKind; //吃胡类型 | |||
WORD wChiHuRight; //胡牌权位 | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//积分报告 | |||
class CGameScoreWnd : public CWnd | |||
{ | |||
//变量定义 | |||
protected: | |||
CSkinImage m_ImageBack; //背景资源 | |||
tagGameScoreInfo m_GameScoreInfo; //积分信息 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CGameScoreWnd(); | |||
//析构函数 | |||
virtual ~CGameScoreWnd(); | |||
//功能函数 | |||
public: | |||
//设置积分 | |||
void SetScoreInfo(tagGameScoreInfo & GameScoreInfo); | |||
//消息映射 | |||
protected: | |||
//重画函数 | |||
afx_msg void OnPaint(); | |||
//绘画背景 | |||
afx_msg BOOL OnEraseBkgnd(CDC * pDC); | |||
//建立函数 | |||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); | |||
//鼠标消息 | |||
afx_msg void OnLButtonDown(UINT nFlags, CPoint point); | |||
DECLARE_MESSAGE_MAP() | |||
public: | |||
afx_msg void OnMove(int x, int y); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,82 @@ | |||
================================================================================ | |||
MICROSOFT 基础类库: GameClient 项目概述 | |||
=============================================================================== | |||
应用程序向导已为您创建了此 GameClient 应用程序。此应用程序 | |||
不仅介绍了使用 Microsoft 基础类的基本知识, | |||
而且是编写应用程序的起点。 | |||
此文件包含组成 GameClient 应用程序的每个文件的内容摘要。 | |||
GameClient.vcproj | |||
这是使用“应用程序向导”生成的 VC++ 项目的主项目文件。 | |||
它包含有关生成文件的 Visual C++ 版本的信息,以及 | |||
有关用“应用程序向导”所选择的平台、配置和 | |||
项目功能的信息。 | |||
GameClient.h | |||
这是应用程序的主头文件。 它包含其他 | |||
项目特定的头文件(包括 Resource.h),并声明 | |||
CGameClientApp 应用程序类。 | |||
GameClient.cpp | |||
这是包含应用程序 | |||
类 CGameClientApp 的主应用程序源文件。 | |||
GameClient.rc | |||
这是程序使用的所有 Microsoft Windows 资源 | |||
的列表。 它包含存储在 RES 子目录中 | |||
的图标、位图和光标。 可直接在 Microsoft | |||
Visual C++ 中编辑此文件。 项目资源包含在 2052 中。 | |||
res\GameClient.ico | |||
这是一个图标文件,用作应用程序的图标。 此 | |||
图标包含在主资源文件 GameClient.rc 中。 | |||
res\GameClient.rc2 | |||
此文件包含不由 Microsoft | |||
Visual C++ 编辑的资源。 应将所有不能由 | |||
资源编辑器编辑的资源放在此文件中。 | |||
///////////////////////////////////////////////////////////////////////////// | |||
应用程序向导将创建一个对话框类: | |||
GameClientDlg.h、GameClientDlg.cpp - 对话框 | |||
这些文件包含 CGameClientDlg 类。 此类定义 | |||
应用程序主对话框的行为。 此对话框的模板包含在 | |||
GameClient.rc 中,而此文件可以在 Microsoft Visual C++ 中进行编辑。 | |||
///////////////////////////////////////////////////////////////////////////// | |||
其他功能: | |||
ActiveX 控件 | |||
应用程序支持使用 ActiveX 控件。 | |||
///////////////////////////////////////////////////////////////////////////// | |||
其他标准文件: | |||
StdAfx.h、StdAfx.cpp | |||
这些文件用于生成名为 GameClient.pch 的预编译头文件 (PCH) | |||
和名为 StdAfx.obj 的预编译类型文件。 | |||
Resource.h | |||
这是标准头文件,它定义新资源 ID。 | |||
Microsoft Visual C++ 将读取并更新此文件。 | |||
///////////////////////////////////////////////////////////////////////////// | |||
其他说明: | |||
应用程序向导使用“TODO:” 来指示 | |||
应添加或自定义的源代码部分。 | |||
如果应用程序在共享 DLL 中使用 MFC,且应用程序使用的语言不是 | |||
操作系统的当前语言,则需要从 Microsoft Visual C++ 光盘上 | |||
Win\System 目录下将相应的本地化资源 MFC70XXX.DLL | |||
复制到计算机的 system 或 system32 目录下, | |||
并将其重命名为 MFCLOC.DLL。 (“XXX”代表 | |||
语言缩写。 例如,MFC70DEU.DLL 包含翻译成 | |||
德语的资源。) 如果不这样做,应用程序的某些 UI 元素 | |||
将保留为操作系统的语言。 | |||
///////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,251 @@ | |||
#include "StdAfx.h" | |||
#include "ScoreControl.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//构造函数 | |||
CScoreControl::CScoreControl() | |||
{ | |||
//设置变量 | |||
ZeroMemory(&m_ScoreInfo,sizeof(m_ScoreInfo)); | |||
m_ChiHuRight.SetEmpty(); | |||
m_ptBenchmark.SetPoint(0,0); | |||
m_bShow = false; | |||
//加载资源 | |||
HINSTANCE hResInstance=AfxGetInstanceHandle(); | |||
m_ImageGameLost.LoadImage( hResInstance,TEXT("GAME_LOST") ); | |||
m_ImageGameWin.LoadImage( hResInstance,TEXT("GAME_WIN") ); | |||
m_PngNum.LoadImage( hResInstance,TEXT("NUM_ORDER") ); | |||
return; | |||
} | |||
//析构函数 | |||
CScoreControl::~CScoreControl() | |||
{ | |||
} | |||
//复位数据 | |||
void CScoreControl::RestorationData() | |||
{ | |||
//设置变量 | |||
ZeroMemory(&m_ScoreInfo,sizeof(m_ScoreInfo)); | |||
m_ChiHuRight.SetEmpty(); | |||
m_bShow = false; | |||
return; | |||
} | |||
//设置积分 | |||
void CScoreControl::SetScoreInfo(const tagScoreInfo & ScoreInfo) | |||
{ | |||
//设置变量 | |||
m_ScoreInfo=ScoreInfo; | |||
m_ChiHuRight.SetRightData( ScoreInfo.dwChiHuRight,MAX_RIGHT_COUNT ); | |||
//显示窗口 | |||
m_bShow = true; | |||
return; | |||
} | |||
//重画函数 | |||
void CScoreControl::DrawScoreControl( CDC *pDC ) | |||
{ | |||
if( !m_bShow ) return; | |||
pDC->SetBkMode(TRANSPARENT); | |||
int nXPos = m_ptBenchmark.x; | |||
int nYPos = m_ptBenchmark.y; | |||
//绘画背景 | |||
if( m_ScoreInfo.lGameScore > 0 ) | |||
m_ImageGameWin.DrawImage( pDC,nXPos,nYPos ); | |||
else m_ImageGameLost.DrawImage( pDC,nXPos,nYPos ); | |||
if( m_ScoreInfo.lGameScore > 0 ) | |||
{ | |||
nXPos += 84; | |||
nYPos += 17; | |||
} | |||
else | |||
{ | |||
nXPos += 46; | |||
nYPos += 14; | |||
} | |||
//胡牌名次 | |||
if( m_ScoreInfo.cbWinOrder > 0 ) | |||
{ | |||
if( m_ScoreInfo.lGameScore > 0 ) | |||
DrawNumberString( pDC,m_PngNum,m_ptBenchmark.x+58,m_ptBenchmark.y+30,m_ScoreInfo.cbWinOrder,true ); | |||
else | |||
DrawNumberString( pDC,m_PngNum,m_ptBenchmark.x+20,m_ptBenchmark.y+27,m_ScoreInfo.cbWinOrder,true ); | |||
} | |||
//胡牌信息 | |||
TCHAR szBuffer[256] = TEXT(""); | |||
if( !m_ChiHuRight.IsEmpty() ) | |||
{ | |||
if( m_ScoreInfo.wMeChairId == m_ScoreInfo.wProvideUser ) | |||
lstrcpy( szBuffer,TEXT("自摸") ); | |||
else | |||
{ | |||
lstrcpy( szBuffer,TEXT("赢:") ); | |||
TCHAR szName[10] = TEXT(""); | |||
lstrcpyn( szName,m_ScoreInfo.szUserName[m_ScoreInfo.wProvideUser],sizeof(szName)/sizeof(TCHAR)); | |||
lstrcat( szBuffer,szName ); | |||
if( lstrlen(m_ScoreInfo.szUserName[m_ScoreInfo.wProvideUser]) > 8 ) | |||
lstrcat( szBuffer,TEXT("...") ); | |||
lstrcat( szBuffer,TEXT(" 放炮") ); | |||
} | |||
DrawTextString( pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),nXPos,nYPos,false ); | |||
nYPos += 19; | |||
DWORD dwRight[] = { | |||
CHR_SHU_FAN,CHR_TIAN_HU,CHR_DI_HU, | |||
CHR_DA_DUI_ZI,CHR_QING_YI_SE,CHR_QI_XIAO_DUI,CHR_DAI_YAO,CHR_JIANG_DUI,CHR_QING_DUI, | |||
CHR_LONG_QI_DUI,CHR_QING_QI_DUI,CHR_QING_YAO_JIU,CHR_QING_LONG_QI_DUI, | |||
CHR_GANG_SHANG_PAO,CHR_GANG_KAI | |||
}; | |||
LPCTSTR pszRight[] = { | |||
TEXT("素番 1番 "),TEXT("天胡 6番 "),TEXT("地胡 6番 "), | |||
TEXT("大对子 2番 "),TEXT("清一色 3番 "),TEXT("七小对 3番 "),TEXT("带幺 3番 "),TEXT("将对 4番 "), | |||
TEXT("清对 4番 "),TEXT("龙七对 5番 "),TEXT("清七对 5番 "),TEXT("清幺九 5番 "),TEXT("清龙七对 6番 "), | |||
TEXT("杠上炮 1翻 "),TEXT("杠上花 1翻 ") | |||
}; | |||
szBuffer[0] = 0; | |||
for( BYTE j = 0; j < CountArray(pszRight); j++ ) | |||
{ | |||
if( !(m_ChiHuRight&dwRight[j]).IsEmpty() ) | |||
lstrcat( szBuffer,pszRight[j] ); | |||
} | |||
//根 | |||
if( m_ScoreInfo.cbGenCount > 0 ) | |||
{ | |||
TCHAR szGen[8]; | |||
_sntprintf( szGen,CountArray(szGen),TEXT("根 %d番"),m_ScoreInfo.cbGenCount ); | |||
lstrcat( szBuffer,szGen ); | |||
} | |||
DrawTextString( pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),nXPos,nYPos,false ); | |||
nYPos += 19; | |||
} | |||
//输给玩家 | |||
bool bFirstDraw = true; | |||
szBuffer[0] = 0; | |||
for( WORD i = 0; i < GAME_PLAYER; i++ ) | |||
{ | |||
if( i == m_ScoreInfo.wMeChairId ) continue; | |||
if( m_ScoreInfo.wLostFanShu[i] > 0 ) | |||
{ | |||
if( bFirstDraw ) | |||
{ | |||
bFirstDraw = false; | |||
lstrcpy( szBuffer,TEXT("输给 ") ); | |||
} | |||
else lstrcpy( szBuffer,TEXT(" ") ); | |||
TCHAR szName[10] = TEXT(""); | |||
lstrcpyn( szName,m_ScoreInfo.szUserName[i],sizeof(szName)/sizeof(TCHAR) ); | |||
lstrcat( szBuffer,szName ); | |||
if( lstrlen(m_ScoreInfo.szUserName[i]) > 8 ) | |||
lstrcat( szBuffer,TEXT("...") ); | |||
_sntprintf( szBuffer,CountArray(szBuffer),TEXT("%s %d"),szBuffer,m_ScoreInfo.wLostFanShu[i] ); | |||
DrawTextString( pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),nXPos,nYPos,false ); | |||
nYPos += 19; | |||
} | |||
} | |||
//刮风下雨 | |||
if( m_ScoreInfo.lGangScore != 0 ) | |||
{ | |||
_sntprintf( szBuffer,CountArray(szBuffer),TEXT("刮风下雨:%I64d"),m_ScoreInfo.lGangScore ); | |||
DrawTextString( pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),nXPos,nYPos,false ); | |||
} | |||
//总计 | |||
_sntprintf( szBuffer,CountArray(szBuffer),TEXT("%I64d"),m_ScoreInfo.lGameScore ); | |||
if( m_ScoreInfo.lGameScore > 0 ) | |||
DrawTextString( pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),m_ptBenchmark.x+151,m_ptBenchmark.y+117,false ); | |||
else | |||
DrawTextString( pDC,szBuffer,RGB(255,255,255),RGB(0,0,0),m_ptBenchmark.x+115,m_ptBenchmark.y+114,false ); | |||
return; | |||
} | |||
//艺术字体 | |||
void CScoreControl::DrawTextString(CDC * pDC, LPCTSTR pszString, COLORREF crText, COLORREF crFrame, int nXPos, int nYPos, bool bDrawCenter) | |||
{ | |||
//变量定义 | |||
int nStringLength=lstrlen(pszString); | |||
int nXExcursion[8]={1,1,1,0,-1,-1,-1,0}; | |||
int nYExcursion[8]={-1,0,1,1,1,0,-1,-1}; | |||
if( bDrawCenter ) | |||
{ | |||
TEXTMETRIC tm; | |||
ZeroMemory( &tm,sizeof(tm) ); | |||
GetTextMetrics(pDC->m_hDC,&tm ); | |||
nXPos -= tm.tmAveCharWidth*nStringLength/2; | |||
nYPos -= tm.tmHeight/2; | |||
} | |||
//绘画边框 | |||
pDC->SetTextColor(crFrame); | |||
for (int i=0;i<CountArray(nXExcursion);i++) | |||
{ | |||
pDC->TextOut(nXPos+nXExcursion[i],nYPos+nYExcursion[i],pszString,nStringLength); | |||
} | |||
//绘画字体 | |||
pDC->SetTextColor(crText); | |||
pDC->TextOut(nXPos,nYPos,pszString,nStringLength); | |||
return; | |||
} | |||
//绘画数字 | |||
void CScoreControl::DrawNumberString( CDC *pDC, CPngImage &PngNumber, int nXPos, int nYPos, LONGLONG lNumber, bool bDrawCenter) | |||
{ | |||
int nWidthNumber = PngNumber.GetWidth()/10; | |||
int nHeightNumber = PngNumber.GetHeight(); | |||
int nXDrawPos = nXPos, nYDrawPos = nYPos; | |||
nYDrawPos -= nHeightNumber/2; | |||
TCHAR szNum[256] = {0}; | |||
_sntprintf(szNum,CountArray(szNum),TEXT("%+I64d"),lNumber); | |||
if( bDrawCenter ) | |||
{ | |||
nXDrawPos -= (lstrlen(szNum)-1)*nWidthNumber/2; | |||
} | |||
for( int i = 1; i < lstrlen(szNum); i++ ) | |||
{ | |||
if( ::isdigit(szNum[i]) ) | |||
{ | |||
PngNumber.DrawImage( pDC,nXDrawPos,nYDrawPos,nWidthNumber,nHeightNumber,(((int)szNum[i]-48))*nWidthNumber, | |||
0,nWidthNumber,nHeightNumber ); | |||
} | |||
else | |||
{ | |||
break; | |||
} | |||
nXDrawPos += nWidthNumber; | |||
} | |||
} | |||
// | |||
void CScoreControl::SetBenchmarkPos( int nXPos, int nYPos ) | |||
{ | |||
m_ptBenchmark.SetPoint( nXPos,nYPos ); | |||
} | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,82 @@ | |||
#ifndef SCORE_CONTROL_HEAD_FILE | |||
#define SCORE_CONTROL_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "CardControl.h" | |||
#include "GameLogic.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//积分信息 | |||
struct tagScoreInfo | |||
{ | |||
TCHAR szUserName[GAME_PLAYER][32]; //用户名字 | |||
//用户信息 | |||
WORD wMeChairId; // | |||
BYTE cbWinOrder; //胡牌排名 | |||
//积分信息 | |||
WORD wProvideUser; //供应用户 | |||
LONGLONG lGameScore; //游戏积分 | |||
LONG lGameTax; // | |||
DWORD dwChiHuRight[MAX_RIGHT_COUNT]; // | |||
LONGLONG lGangScore; //详细得分 | |||
BYTE cbGenCount; // | |||
WORD wLostFanShu[GAME_PLAYER]; // | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
//积分控件 | |||
class CScoreControl | |||
{ | |||
//变量定义 | |||
protected: | |||
tagScoreInfo m_ScoreInfo; //积分信息 | |||
CChiHuRight m_ChiHuRight; // | |||
bool m_bShow; // | |||
//位置变量 | |||
protected: | |||
CPoint m_ptBenchmark; // | |||
//资源变量 | |||
protected: | |||
CPngImage m_ImageGameWin; //积分视图 | |||
CPngImage m_ImageGameLost; // | |||
CPngImage m_PngNum; // | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CScoreControl(); | |||
//析构函数 | |||
virtual ~CScoreControl(); | |||
//功能函数 | |||
public: | |||
//复位数据 | |||
void RestorationData(); | |||
//设置积分 | |||
void SetScoreInfo(const tagScoreInfo & ScoreInfo); | |||
// | |||
void DrawScoreControl( CDC *pDC ); | |||
// | |||
void SetBenchmarkPos( int nXPos, int nYPos ); | |||
//辅助函数 | |||
protected: | |||
//艺术字体 | |||
void DrawTextString(CDC * pDC, LPCTSTR pszString, COLORREF crText, COLORREF crFrame, int nXPos, int nYPos, bool bDrawCenter); | |||
//绘画数字 | |||
void DrawNumberString( CDC *pDC, CPngImage &PngNumber, int nXPos, int nYPos, LONGLONG lNumber, bool bDrawCenter); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,7 @@ | |||
// stdafx.cpp : 只包括标准包含文件的源文件 | |||
// GameClient.pch 将是预编译头 | |||
// stdafx.obj 将包含预编译类型信息 | |||
#include "stdafx.h" | |||
@@ -0,0 +1,131 @@ | |||
#pragma once | |||
#ifndef VC_EXTRALEAN | |||
#define VC_EXTRALEAN // 从 Windows 标头中排除不常使用的资料 | |||
#endif | |||
// 如果您必须使用下列所指定的平台之前的平台,则修改下面的定义。 | |||
// 有关不同平台的相应值的最新信息,请参考 MSDN。 | |||
#ifndef WINVER // 允许使用 Windows 95 和 Windows NT 4 或更高版本的特定功能。 | |||
#define WINVER 0x0501 //为 Windows98 和 Windows 2000 及更新版本改变为适当的值。 | |||
#endif | |||
#ifndef _WIN32_WINNT // 允许使用 Windows NT 4 或更高版本的特定功能。 | |||
#define _WIN32_WINNT 0x0501 //为 Windows98 和 Windows 2000 及更新版本改变为适当的值。 | |||
#endif | |||
#ifndef _WIN32_WINDOWS // 允许使用 Windows 98 或更高版本的特定功能。 | |||
#define _WIN32_WINDOWS 0x0410 //为 Windows Me 及更新版本改变为适当的值。 | |||
#endif | |||
#ifndef _WIN32_IE // 允许使用 IE 4.0 或更高版本的特定功能。 | |||
#define _WIN32_IE 0x0400 //为 IE 5.0 及更新版本改变为适当的值。 | |||
#endif | |||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的 | |||
// 关闭 MFC 对某些常见但经常被安全忽略的警告消息的隐藏 | |||
#define _AFX_ALL_WARNINGS | |||
#include <afxwin.h> // MFC 核心和标准组件 | |||
#include <afxext.h> // MFC 扩展 | |||
#include <afxdisp.h> // MFC 自动化类 | |||
#include <afxdtctl.h> // Internet Explorer 4 公共控件的 MFC 支持 | |||
#ifndef _AFX_NO_AFXCMN_SUPPORT | |||
#include <afxcmn.h> // Windows 公共控件的 MFC 支持 | |||
#endif // _AFX_NO_AFXCMN_SUPPORT | |||
////////////////////////////////////////////////////////////////////////// | |||
#include "..\消息定义\CMD_Sparrow.h" | |||
////////////////////////////////////////////////////////////////////////////////// | |||
//编译环境 | |||
#include "..\..\..\SDKCondition.h" | |||
////////////////////////////////////////////////////////////////////////////////// | |||
#ifdef SDK_CONDITION | |||
////////////////////////////////////////////////////////////////////////////////// | |||
//开发环境 | |||
#include "..\..\..\开发库\Include\GameFrameHead.h" | |||
#ifndef _DEBUG | |||
#ifndef _UNICODE | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/WHImage.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/GameFrame.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/GameEngine.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/SkinControl.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/ServiceCore.lib") | |||
#else | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/WHImage.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/GameFrame.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/GameEngine.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/SkinControl.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/ServiceCore.lib") | |||
#endif | |||
#else | |||
#ifndef _UNICODE | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/WHImageD.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/GameFrameD.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/GameEngineD.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/SkinControlD.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/ServiceCoreD.lib") | |||
#else | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/WHImageD.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/GameFrameD.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/GameEngineD.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/SkinControlD.lib") | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/ServiceCoreD.lib") | |||
#endif | |||
#endif | |||
////////////////////////////////////////////////////////////////////////////////// | |||
#else | |||
////////////////////////////////////////////////////////////////////////////////// | |||
//系统环境 | |||
#include "..\..\..\..\系统模块\客户端组件\游戏框架\GameFrameHead.h" | |||
#ifndef _DEBUG | |||
#ifndef _UNICODE | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/WHImage.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/GameFrame.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/GameEngine.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/SkinControl.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/ServiceCore.lib") | |||
#else | |||
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/WHImage.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/GameFrame.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/GameEngine.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/SkinControl.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/ServiceCore.lib") | |||
#endif | |||
#else | |||
#ifndef _UNICODE | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/WHImageD.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/GameFrameD.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/GameEngineD.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/SkinControlD.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/ServiceCoreD.lib") | |||
#else | |||
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/WHImageD.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/GameFrameD.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/GameEngineD.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/SkinControlD.lib") | |||
#pragma comment (lib,"../../../../系统模块/链接库/Unicode/ServiceCoreD.lib") | |||
#endif | |||
#endif | |||
////////////////////////////////////////////////////////////////////////////////// | |||
#endif | |||
////////////////////////////////////////////////////////////////////////// | |||
//#pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.VC80.CRT' version='8.0.50727.702' processorArchitecture='X86' publicKeyToken='1fc8b3b9a1e18e3b' language='*' \"") |
@@ -0,0 +1,31 @@ | |||
#include "Stdafx.h" | |||
#include "GameClient.h" | |||
#include "GameClientEngine.h" | |||
//应用程序对象 | |||
CGameClientApp theApp; | |||
////////////////////////////////////////////////////////////////////////// | |||
//构造函数 | |||
CGameClientApp::CGameClientApp() | |||
{ | |||
} | |||
//析构函数 | |||
CGameClientApp::~CGameClientApp() | |||
{ | |||
} | |||
//创建引擎 | |||
CGameFrameEngine * CGameClientApp::GetGameFrameEngine(DWORD dwSDKVersion) | |||
{ | |||
//版本检测 | |||
if (InterfaceVersionCompare(VERSION_FRAME_SDK,dwSDKVersion)==false) return NULL; | |||
//创建引擎 | |||
return new CGameClientEngine; | |||
} | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,168 @@ | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "ControlWnd.h" | |||
#include "CardControl.h" | |||
#include "ScoreControl.h" | |||
#include "DrawSiceWnd.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//消息定义 | |||
#define IDM_START (WM_USER+100) //开始消息 | |||
#define IDM_OUT_CARD (WM_USER+101) //出牌消息 | |||
#define IDM_TRUSTEE_CONTROL (WM_USER+102) //托管控制 | |||
#define IDI_DISC_EFFECT 102 //丢弃效果 | |||
////////////////////////////////////////////////////////////////////////// | |||
//游戏视图 | |||
class CGameClientView : public CGameFrameViewGDI | |||
{ | |||
//标志变量 | |||
protected: | |||
bool m_bOutCard; //出牌标志 | |||
bool m_bWaitOther; //等待标志 | |||
bool m_bTrustee[GAME_PLAYER]; //是否托管 | |||
LONGLONG m_lGangScore[GAME_PLAYER]; // | |||
//游戏属性 | |||
protected: | |||
LONGLONG m_lCellScore; //基础积分 | |||
WORD m_wBankerUser; //庄家用户 | |||
WORD m_wCurrentUser; //当前用户 | |||
BYTE m_cbWinOrder[GAME_PLAYER]; // | |||
//动作动画 | |||
protected: | |||
bool m_bBombEffect; //动作效果 | |||
BYTE m_cbBombFrameIndex; //帧数索引 | |||
//丢弃效果 | |||
WORD m_wDiscUser; //丢弃用户 | |||
BYTE m_cbDiscFrameIndex; //帧数索引 | |||
//杠牌动画 | |||
int m_nYGangStep; // | |||
BYTE m_cbXiaYu; // | |||
WORD m_wGangChairId; // | |||
BYTE m_cbGangIndex; // | |||
//用户状态 | |||
protected: | |||
BYTE m_cbCardData; //出牌扑克 | |||
WORD m_wOutCardUser; //出牌用户 | |||
BYTE m_cbUserAction[4]; //用户动作 | |||
//位置变量 | |||
protected: | |||
CPoint m_UserFlagPos[4]; //标志位置 | |||
CPoint m_PointTrustee[GAME_PLAYER]; //托管位置 | |||
CPoint m_ptWinOrder[GAME_PLAYER]; // | |||
CPoint m_ptGangScore[GAME_PLAYER]; // | |||
//位图变量 | |||
protected: | |||
CBitImage m_ImageBack; //背景图案 | |||
CBitImage m_ImageCenter; //LOGO图 | |||
CBitImage m_ImageWait; //等待提示 | |||
CBitImage m_ImageOutCard; //出牌提示 | |||
CBitImage m_ImageUserFlag; //用户标志 | |||
CBitImage m_ImageUserAction; //用户动作 | |||
CBitImage m_ImageActionBack; //动作背景 | |||
CPngImage m_ImageTrustee; //托管标志 | |||
CPngImage m_ImageActionAni; //吃牌动画资源 | |||
CPngImage m_ImageDisc; //丢弃效果 | |||
CPngImage m_ImageArrow; //定时器箭头 | |||
CBitImage m_ImageWinOrder; // | |||
CPngImage m_ImageCellScore; // | |||
CPngImage m_PngNumWin; // | |||
CPngImage m_PngNumLost; // | |||
CPngImage m_PngXiaYu; // | |||
CPngImage m_PngGuaFeng; // | |||
//扑克控件 | |||
public: | |||
CHeapCard m_HeapCard[4]; //堆立扑克 | |||
CUserCard m_UserCard[3]; //用户扑克 | |||
CTableCard m_TableCard[4]; //桌面扑克 | |||
CWeaveCard m_WeaveCard[4][4]; //组合扑克 | |||
CDiscardCard m_DiscardCard[4]; //丢弃扑克 | |||
CCardControl m_HandCardControl; //手上扑克 | |||
//控件变量 | |||
public: | |||
CSkinButton m_btStart; //开始按钮 | |||
CSkinButton m_btStusteeControl; //拖管控制 | |||
CControlWnd m_ControlWnd; //控制窗口 | |||
CScoreControl m_ScoreControl[GAME_PLAYER]; //积分控件 | |||
CDrawSiceWnd m_DrawSiceWnd; //色子控件 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CGameClientView(); | |||
//析构函数 | |||
virtual ~CGameClientView(); | |||
//继承函数 | |||
private: | |||
//重置界面 | |||
virtual void ResetGameView(); | |||
//调整控件 | |||
virtual void RectifyControl(int nWidth, int nHeight); | |||
//绘画界面 | |||
virtual void DrawGameView(CDC * pDC, int nWidth, int nHeight); | |||
//功能函数 | |||
public: | |||
//基础积分 | |||
void SetCellScore(LONGLONG lCellScore); | |||
//庄家用户 | |||
void SetBankerUser(WORD wBankerUser); | |||
//状态标志 | |||
void SetStatusFlag(bool bOutCard, bool bWaitOther); | |||
//出牌信息 | |||
void SetOutCardInfo(WORD wViewChairID, BYTE cbCardData); | |||
//动作信息 | |||
void SetUserAction(WORD wViewChairID, BYTE bUserAction); | |||
//设置动作 | |||
bool SetBombEffect(bool bBombEffect); | |||
//丢弃用户 | |||
void SetDiscUser(WORD wDiscUser); | |||
//定时玩家 | |||
void SetCurrentUser(WORD wCurrentUser); | |||
//设置托管 | |||
void SetTrustee(WORD wTrusteeUser,bool bTrustee); | |||
// | |||
void SetWinOrder( WORD wChairId, BYTE cbWinOrder ); | |||
// | |||
void SetGangScore( WORD wChairId, BYTE cbXiaYu, LONGLONG lGangScore[GAME_PLAYER] ); | |||
//辅助函数 | |||
protected: | |||
//艺术字体 | |||
void DrawTextString(CDC * pDC, LPCTSTR pszString, COLORREF crText, COLORREF crFrame, int nXPos, int nYPos, bool bDrawCenter); | |||
//绘画数字 | |||
void DrawNumberString( CDC *pDC, CPngImage &PngNumber, int nXPos, int nYPos, LONGLONG lNumber, bool bDrawCenter, bool bDrawSign); | |||
//消息映射 | |||
protected: | |||
//开始按钮 | |||
afx_msg void OnStart(); | |||
//拖管控制 | |||
afx_msg void OnStusteeControl(); | |||
//建立函数 | |||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); | |||
//鼠标消息 | |||
afx_msg void OnLButtonDown(UINT nFlags, CPoint Point); | |||
//光标消息 | |||
afx_msg BOOL OnSetCursor(CWnd * pWnd, UINT nHitTest, UINT uMessage); | |||
DECLARE_MESSAGE_MAP() | |||
public: | |||
afx_msg void OnTimer(UINT nIDEvent); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,63 @@ | |||
//{{NO_DEPENDENCIES}} | |||
// Microsoft Visual C++ generated include file. | |||
// Used by GameClient.rc | |||
// | |||
#define IDR_MAINFRAME 128 | |||
#define IDR_WAVE1 146 | |||
#define IDB_VIEW_BACK 147 | |||
#define IDC_CARD_CUR 147 | |||
#define IDB_BT_START 164 | |||
#define IDB_OUT_CARD_TIP 165 | |||
#define IDB_BT_CHIHU 166 | |||
#define IDB_ACTION_BACK 169 | |||
#define IDB_USER_ACTION 170 | |||
#define IDB_USER_FLAG 171 | |||
#define IDB_BT_GIVEUP 172 | |||
#define IDB_CONTROL_TOP 174 | |||
#define IDB_CONTROL_BOTTOM 175 | |||
#define IDD_OPTION 175 | |||
#define IDB_CONTROL_MID 176 | |||
#define IDB_WAIT_TIP 178 | |||
#define IDB_ACTION_EXPLAIN 184 | |||
#define IDB_BITMAP1 191 | |||
#define IDB_SELECT 191 | |||
#define IDB_BT_SCORE_CLOSE 193 | |||
#define IDB_BITMAP2 194 | |||
#define IDB_BITMAP3 195 | |||
#define IDB_BITMAP4 196 | |||
#define IDB_VIEW_CENTER 196 | |||
#define IDB_DRAW_SICE1 197 | |||
#define IDB_DRAW_SICE2 198 | |||
#define IDB_DRAW_SICE3 199 | |||
#define IDB_DRAW_SICE4 200 | |||
#define IDB_DRAW_SICE5 201 | |||
#define IDB_DRAW_SICE6 202 | |||
#define IDB_DRAW_SICE7 203 | |||
#define IDB_DRAW_SICE8 204 | |||
#define IDB_DRAW_SICE9 205 | |||
#define IDB_DRAW_SICE10 206 | |||
#define IDB_DRAW_SICE11 207 | |||
#define IDB_DRAW_SICE12 208 | |||
#define IDB_BT_START_TRUSTEE 209 | |||
#define IDB_BT_STOP_TRUSTEE 210 | |||
#define IDB_SICE_BACK 211 | |||
#define IDB_BITMAP5 214 | |||
#define IDD_RESPONSE_LISTEN 215 | |||
#define IDB_BITMAP6 217 | |||
#define IDB_BITMAP7 218 | |||
#define IDB_WIN_ORDER 218 | |||
#define IDR_PNG2 234 | |||
#define IDC_ENABLE_LOOKON 1000 | |||
#define IDC_ENABLE_SOUND 1002 | |||
#define IDC_COMBOX_MANDERIN 1003 | |||
// Next default values for new objects | |||
// | |||
#ifdef APSTUDIO_INVOKED | |||
#ifndef APSTUDIO_READONLY_SYMBOLS | |||
#define _APS_NEXT_RESOURCE_VALUE 238 | |||
#define _APS_NEXT_COMMAND_VALUE 32771 | |||
#define _APS_NEXT_CONTROL_VALUE 1005 | |||
#define _APS_NEXT_SYMED_VALUE 101 | |||
#endif | |||
#endif |
@@ -0,0 +1,128 @@ | |||
#ifndef GAME_LOGIC_HEAD_FILE | |||
#define GAME_LOGIC_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "data.h" | |||
class CTableFrameSink; | |||
//游戏逻辑类 | |||
class CGameLogic | |||
{ | |||
//变量定义 | |||
protected: | |||
static const BYTE m_cbCardDataArray[MAX_REPERTORY]; //扑克数据 | |||
static const BYTE m_cbCardDataArray_SRLF[MAX_REPERTORY_SRLF]; //扑克数据 | |||
BYTE m_cbMagicIndex; //钻牌索引 | |||
CTableFrameSink* m_pTableFramSink; | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CGameLogic(CTableFrameSink* pTableFramSink); | |||
//析构函数 | |||
virtual ~CGameLogic(); | |||
//控制函数 | |||
public: | |||
//混乱扑克 | |||
BYTE RandCardData(BYTE cbCardData[]); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbRemoveCard); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], const BYTE cbRemoveCard[], BYTE cbRemoveCount); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, const BYTE cbRemoveCard[], BYTE cbRemoveCount); | |||
//设置钻牌 | |||
void SetMagicIndex( BYTE cbMagicIndex ) { m_cbMagicIndex = cbMagicIndex; } | |||
//钻牌 | |||
bool IsMagicCard( BYTE cbCardData ); | |||
//获取手上癞子数量 | |||
BYTE GetLaiZiCount(const BYTE cbCardIndex[MAX_INDEX], BYTE m_cbLaiZi); | |||
//辅助函数 | |||
public: | |||
//获取麻将花色 | |||
BYTE GetCardColor(BYTE cbCardData) { return (cbCardData&MASK_COLOR) >> 4 ;} | |||
//有效判断 | |||
bool IsValidCard(BYTE cbCardData); | |||
//扑克数目 | |||
BYTE GetCardCount(const BYTE cbCardIndex[MAX_INDEX]); | |||
//组合扑克 | |||
BYTE GetWeaveCard(int cbWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]); | |||
//等级函数 | |||
public: | |||
//动作等级 | |||
BYTE GetUserActionRank(BYTE cbUserAction); | |||
//胡牌等级 | |||
//WORD GetChiHuActionRank(const CChiHuRight & ChiHuRight); | |||
//动作判断 | |||
public: | |||
//吃牌判断,一脚耐油不需要 | |||
//BYTE EstimateEatCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//碰牌判断 | |||
int EstimatePengCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard, BYTE LaiZiPiData); | |||
//杠牌判断 | |||
int EstimateGangCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//动作判断 | |||
public: | |||
//杠牌分析 | |||
int AnalyseGangCard(const BYTE cbCardIndex[MAX_INDEX], const BYTE m_cbLaiZiData, const BYTE m_cbLaiZiPiData, const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, tagGangCardResult & GangCardResult, BYTE bProvideCard = 0, bool bCanAnGang = true); | |||
//吃胡分析,改成自摸分析 | |||
//int AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, CChiHuRight &ChiHuRight, BYTE m_cbLaiZi); | |||
//重载一个用来无赖到底的判断 | |||
int AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, CChiHuRight &ChiHuRight, BYTE m_cbLaiZi, BYTE bSubMit); | |||
//听牌分析 | |||
bool AnalyseTingCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE *m_cbTingPaiData, BYTE m_cbLaiZi, BYTE subMit, BYTE LaiZiCount); | |||
//是否听牌 | |||
bool IsTingCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE m_cbLaiZi, BYTE subMit, BYTE LaiZiCount); | |||
//是否花猪,一脚耐油不需要判断花猪牌型 | |||
//bool IsHuaZhu( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbDingque); | |||
//中张 | |||
//bool IsZhongZhang(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount); | |||
//转换函数 | |||
public: | |||
//扑克转换 | |||
BYTE SwitchToCardData(BYTE cbCardIndex); | |||
//扑克转换 | |||
BYTE SwitchToCardIndex(BYTE cbCardData); | |||
//扑克转换 | |||
BYTE SwitchToCardData(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[MAX_COUNT]); | |||
//扑克转换 | |||
BYTE SwitchToCardIndex(const BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX]); | |||
BYTE GetValue(USHORT uNum, byte PaiZhi); | |||
//获取手牌最后牌值 | |||
BYTE GetEndCard(const BYTE cbCardIndex[MAX_INDEX],BYTE mLaiZiData); | |||
bool PeiPai(BYTE cbCardData[MAX_REPERTORY]); | |||
//胡法分析 | |||
protected: | |||
//大对子 | |||
//bool IsPengPeng( const tagAnalyseItem *pAnalyseItem ); | |||
//清一色牌 | |||
//bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount,const BYTE cbCurrentCard); | |||
//七小对牌 | |||
//bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[],const BYTE cbWeaveCount,const BYTE cbCurrentCard); | |||
//带幺 | |||
//bool IsDaiYao( const tagAnalyseItem *pAnalyseItem ); | |||
//将对 | |||
//bool IsJiangDui( const tagAnalyseItem *pAnalyseItem ); | |||
//内部函数 | |||
private: | |||
//分析扑克 | |||
bool AnalyseCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, CAnalyseItemArray & AnalyseItemArray); | |||
//排序,根据牌值排序 | |||
bool SortCardList( BYTE cbCardData[MAX_COUNT], BYTE cbCardCount ); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,128 @@ | |||
#ifndef GAME_LOGIC_CXZ_HEAD_FILE | |||
#define GAME_LOGIC_CXZ_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "data.h" | |||
class TableFrameSinkCxz; | |||
//游戏逻辑类 | |||
class CGameLogicCxz | |||
{ | |||
//变量定义 | |||
protected: | |||
static const BYTE m_cbCardDataArray[MAX_REPERTORY]; //扑克数据 | |||
static const BYTE m_cbCardDataArray_SRLF[MAX_REPERTORY_SRLF]; //扑克数据 | |||
BYTE m_cbMagicIndex; //钻牌索引 | |||
TableFrameSinkCxz* m_pTableFramSink; | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CGameLogicCxz(TableFrameSinkCxz* pTableFramSink); | |||
//析构函数 | |||
virtual ~CGameLogicCxz(); | |||
//控制函数 | |||
public: | |||
//混乱扑克 | |||
BYTE RandCardData(BYTE cbCardData[]); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbRemoveCard); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], const BYTE cbRemoveCard[], BYTE cbRemoveCount); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, const BYTE cbRemoveCard[], BYTE cbRemoveCount); | |||
//设置钻牌 | |||
void SetMagicIndex( BYTE cbMagicIndex ) { m_cbMagicIndex = cbMagicIndex; } | |||
//钻牌 | |||
bool IsMagicCard( BYTE cbCardData ); | |||
//获取手上癞子数量 | |||
BYTE GetLaiZiCount(const BYTE cbCardIndex[MAX_INDEX], BYTE m_cbLaiZi); | |||
//辅助函数 | |||
public: | |||
//获取麻将花色 | |||
BYTE GetCardColor(BYTE cbCardData) { return (cbCardData&MASK_COLOR) >> 4 ;} | |||
//有效判断 | |||
bool IsValidCard(BYTE cbCardData); | |||
//扑克数目 | |||
BYTE GetCardCount(const BYTE cbCardIndex[MAX_INDEX]); | |||
//组合扑克 | |||
BYTE GetWeaveCard(int cbWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]); | |||
//等级函数 | |||
public: | |||
//动作等级 | |||
BYTE GetUserActionRank(BYTE cbUserAction); | |||
//胡牌等级 | |||
//WORD GetChiHuActionRank(const CChiHuRight & ChiHuRight); | |||
//动作判断 | |||
public: | |||
//吃牌判断,一脚耐油不需要 | |||
//BYTE EstimateEatCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//碰牌判断 | |||
int EstimatePengCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard, BYTE LaiZiPiData); | |||
//杠牌判断 | |||
int EstimateGangCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//动作判断 | |||
public: | |||
//杠牌分析 | |||
int AnalyseGangCard(const BYTE cbCardIndex[MAX_INDEX], const BYTE m_cbLaiZiData, const BYTE m_cbLaiZiPiData, const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, tagGangCardResult & GangCardResult, BYTE bProvideCard = 0, bool bCanAnGang = true); | |||
//吃胡分析,改成自摸分析 | |||
//int AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, CChiHuRight &ChiHuRight, BYTE m_cbLaiZi); | |||
//重载一个用来无赖到底的判断 | |||
int AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, CChiHuRight &ChiHuRight, BYTE m_cbLaiZi, BYTE bSubMit); | |||
//听牌分析 | |||
bool AnalyseTingCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE *m_cbTingPaiData, BYTE m_cbLaiZi, BYTE subMit, BYTE LaiZiCount); | |||
//是否听牌 | |||
bool IsTingCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE m_cbLaiZi, BYTE subMit, BYTE LaiZiCount); | |||
//是否花猪,一脚耐油不需要判断花猪牌型 | |||
//bool IsHuaZhu( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbDingque); | |||
//中张 | |||
//bool IsZhongZhang(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount); | |||
//转换函数 | |||
public: | |||
//扑克转换 | |||
BYTE SwitchToCardData(BYTE cbCardIndex); | |||
//扑克转换 | |||
BYTE SwitchToCardIndex(BYTE cbCardData); | |||
//扑克转换 | |||
BYTE SwitchToCardData(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[MAX_COUNT]); | |||
//扑克转换 | |||
BYTE SwitchToCardIndex(const BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX]); | |||
BYTE GetValue(USHORT uNum, byte PaiZhi); | |||
//获取手牌最后牌值 | |||
BYTE GetEndCard(const BYTE cbCardIndex[MAX_INDEX], BYTE mLaiZiData); | |||
bool PeiPai(BYTE cbCardData[MAX_REPERTORY]); | |||
//胡法分析 | |||
protected: | |||
//大对子 | |||
//bool IsPengPeng( const tagAnalyseItem *pAnalyseItem ); | |||
//清一色牌 | |||
//bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount,const BYTE cbCurrentCard); | |||
//七小对牌 | |||
//bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[],const BYTE cbWeaveCount,const BYTE cbCurrentCard); | |||
//带幺 | |||
//bool IsDaiYao( const tagAnalyseItem *pAnalyseItem ); | |||
//将对 | |||
//bool IsJiangDui( const tagAnalyseItem *pAnalyseItem ); | |||
//内部函数 | |||
private: | |||
//分析扑克 | |||
bool AnalyseCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, CAnalyseItemArray & AnalyseItemArray); | |||
//排序,根据牌值排序 | |||
bool SortCardList( BYTE cbCardData[MAX_COUNT], BYTE cbCardCount ); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,128 @@ | |||
#ifndef GAME_LOGIC_OTHER_HEAD_FILE | |||
#define GAME_LOGIC_OTHER_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "data.h" | |||
class CTableFrameSinkOther; | |||
//游戏逻辑类 | |||
class CGameLogicOther | |||
{ | |||
//变量定义 | |||
protected: | |||
static const BYTE m_cbCardDataArray[MAX_REPERTORY]; //扑克数据 | |||
static const BYTE m_cbCardDataArray_SRLF[MAX_REPERTORY_SRLF]; //扑克数据 | |||
BYTE m_cbMagicIndex; //钻牌索引 | |||
CTableFrameSinkOther* m_pTableFramSink; | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CGameLogicOther(CTableFrameSinkOther* pTableFramSink); | |||
//析构函数 | |||
virtual ~CGameLogicOther(); | |||
//控制函数 | |||
public: | |||
//混乱扑克 | |||
BYTE RandCardData(BYTE cbCardData[]); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbRemoveCard); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], const BYTE cbRemoveCard[], BYTE cbRemoveCount); | |||
//删除扑克 | |||
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, const BYTE cbRemoveCard[], BYTE cbRemoveCount); | |||
//设置钻牌 | |||
void SetMagicIndex( BYTE cbMagicIndex ) { m_cbMagicIndex = cbMagicIndex; } | |||
//钻牌 | |||
bool IsMagicCard( BYTE cbCardData ); | |||
//辅助函数 | |||
public: | |||
//获取麻将花色 | |||
BYTE GetCardColor(BYTE cbCardData) { return (cbCardData&MASK_COLOR) >> 4 ;} | |||
//有效判断 | |||
bool IsValidCard(BYTE cbCardData); | |||
//扑克数目 | |||
BYTE GetCardCount(const BYTE cbCardIndex[MAX_INDEX]); | |||
//组合扑克 | |||
BYTE GetWeaveCard(int cbWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]); | |||
//等级函数 | |||
public: | |||
//动作等级 | |||
BYTE GetUserActionRank(INT cbUserAction); | |||
//胡牌等级 | |||
WORD GetChiHuActionRank(const CChiHuRight & ChiHuRight); | |||
//动作判断 | |||
public: | |||
//吃牌判断,一脚耐油不需要 | |||
//BYTE EstimateEatCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//碰牌判断 | |||
int EstimatePengCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//杠牌判断 | |||
int EstimateGangCard(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard); | |||
//动作判断 | |||
public: | |||
//杠牌分析 | |||
int AnalyseGangCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, tagGangCardResult & GangCardResult, BYTE bProvideCard = 0, bool bCanAnGang = true); | |||
//吃胡分析,改成自摸分析 | |||
int AnalyseChiHuCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, CChiHuRight &ChiHuRight, BYTE bSubMit); | |||
//听牌分析 | |||
bool AnalyseTingCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE *m_cbTingPaiData, BYTE subMit); | |||
//是否听牌,true表示已经听牌 | |||
bool IsTingCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE subMit); | |||
//是否花猪,一脚耐油不需要判断花猪牌型 | |||
bool IsHuaZhu( const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount); | |||
//中张 | |||
//bool IsZhongZhang(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount); | |||
//转换函数 | |||
public: | |||
//扑克转换 | |||
BYTE SwitchToCardData(BYTE cbCardIndex); | |||
//扑克转换 | |||
BYTE SwitchToCardIndex(BYTE cbCardData); | |||
//扑克转换 | |||
BYTE SwitchToCardData(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[MAX_COUNT]); | |||
//扑克转换 | |||
BYTE SwitchToCardIndex(const BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX]); | |||
//获取默认换三张牌值 | |||
bool ExchangeCardIndex(const BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[EXCHANGE]); | |||
//获取牌个数 | |||
WORD GetValue(BYTE uNum,BYTE fanshu, BYTE PaiZhi); | |||
//解码加密的牌 | |||
BYTE DeCodeCard(const WORD cbCardData); | |||
//解码翻数 | |||
BYTE DeCodeFanshu(const WORD cbCardData); | |||
//获取手牌最后牌值 | |||
BYTE GetEndCard(BYTE cbCardIndex[MAX_INDEX]); | |||
bool PeiPai(BYTE cbCardData[MAX_REPERTORY]); | |||
//胡法分析 | |||
//大对子 | |||
bool IsPengPeng(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount); | |||
//清一色牌 | |||
bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount,const BYTE cbCurrentCard); | |||
//七小对牌 | |||
//bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[],const BYTE cbWeaveCount,const BYTE cbCurrentCard); | |||
//带幺 | |||
//bool IsDaiYao( const tagAnalyseItem *pAnalyseItem ); | |||
//将对 | |||
//bool IsJiangDui( const tagAnalyseItem *pAnalyseItem ); | |||
//内部函数 | |||
private: | |||
//分析扑克 | |||
bool AnalyseCard(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, CAnalyseItemArray & AnalyseItemArray); | |||
//排序,根据牌值排序 | |||
bool SortCardList( BYTE cbCardData[MAX_COUNT], BYTE cbCardCount ); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,147 @@ | |||
#ifndef GAME_LOGIC_ZHIPAI_HEAD_FILE | |||
#define GAME_LOGIC_ZHIPAI_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "data.h" | |||
class TableFrameSinkZhiPai; | |||
//游戏逻辑类 | |||
class CGameLogicZhiPai | |||
{ | |||
//变量定义 | |||
protected: | |||
////////////////////////////////////////////////////////////////////////// | |||
/* | |||
*长沙麻将已定义的成员变量 | |||
*/ | |||
static const BYTE m_cbCardDataArray_HUA[MAX_REPERTORY_HUA]; //花牌 | |||
static const BYTE m_cbCardDataArray_HUA_One[MAX_REPERTORY_HUA_ONE]; //花牌 | |||
static const BYTE m_cbCardDataArray_HUA_Two[MAX_REPERTORY_HUA_TWO]; //花牌 | |||
TableFrameSinkZhiPai* m_pTableFramSink; | |||
BYTE m_cbMagicIndex; //钻牌索引 | |||
////////////////////////////////////////////////////////////////////////// | |||
////////////////////////////////////////////////////////////////////////// | |||
/* | |||
*长沙麻将已定义的函数 | |||
*/ | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CGameLogicZhiPai(TableFrameSinkZhiPai* pTableFramSink); | |||
//析构函数 | |||
virtual ~CGameLogicZhiPai(); | |||
//控制函数 | |||
public: | |||
//混乱麻将 | |||
BYTE RandCardData(BYTE cbCardData[], BYTE bGameType); | |||
//删除麻将 | |||
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX_HUA], BYTE cbRemoveCard); | |||
//删除麻将 | |||
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX_HUA], const BYTE cbRemoveCard[], BYTE cbRemoveCount); | |||
//删除麻将 | |||
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, const BYTE cbRemoveCard[], BYTE cbRemoveCount); | |||
//辅助函数 | |||
public: | |||
//获取麻将花色 | |||
BYTE GetCardColor(BYTE cbCardData) { return (cbCardData&MASK_COLOR) >> 4; } | |||
//有效判断 | |||
bool IsValidCard(BYTE cbCardData); | |||
//麻将数目 | |||
BYTE GetCardCount(const BYTE cbCardIndex[MAX_INDEX_HUA]); | |||
//组合麻将 | |||
BYTE GetWeaveCard(int cbWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]); | |||
//等级函数 | |||
public: | |||
//动作等级 | |||
BYTE GetUserActionRank(int cbUserAction); | |||
//动作判断 | |||
public: | |||
//吃牌判断 | |||
//int EstimateEatCard(const BYTE cbCardIndex[MAX_INDEX_HUA], BYTE cbCurrentCard); | |||
//对牌判断 | |||
int EstimatePengCard(const BYTE cbCardIndex[MAX_INDEX_HUA], BYTE cbCurrentCard); | |||
//招牌判断,bFlag = false表示正常杠,true表示已经杠了的人 | |||
int EstimateGangCard(const BYTE cbCardIndex[MAX_INDEX_HUA], BYTE cbCurrentCard, const tagWeaveItem_Hua WeaveItem[], BYTE cbWeaveCount); | |||
//杠牌补张分析,默认false表示正常判断,true表示游戏开始的请统 | |||
int AnalyseGangCard(const BYTE cbCardIndex[MAX_INDEX_HUA], const BYTE HuaCardInex[5], const tagWeaveItem_Hua WeaveItem[], BYTE cbWeaveCount, | |||
tagGangCardResult_Hua & GangCardResult, bool bFlag = false); | |||
//是否听牌 | |||
//bool IsTingCard(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE subMit); | |||
//是否胡牌 | |||
//bool IsHuCard(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard); | |||
//听牌分析 | |||
//bool AnalyseTingCard(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], BYTE cbWeaveCount, | |||
// BYTE *cbTingPaiData, BYTE subMit); | |||
//胡牌分析 | |||
//分析胡牌 | |||
int AnalyseHuCard(const BYTE cbCardIndex[MAX_INDEX_HUA], const BYTE HuaCardInex[5], BYTE cbCurrentCard, const tagWeaveItem_Hua WeaveItem[MAX_WEAVE_HUA], BYTE cbItemCount, const BYTE WeavHuaIndex[5], BYTE TongCount, tagHuCardResult & ChiHuResult); | |||
//转换函数 | |||
public: | |||
//扑克转换 | |||
BYTE SwitchToCardData(BYTE cbCardIndex); | |||
//扑克转换 | |||
BYTE SwitchToCardIndex(BYTE cbCardData); | |||
//扑克转换 | |||
BYTE SwitchToCardData(BYTE cbCardIndex[MAX_INDEX_HUA], BYTE cbCardData[MAX_COUNT_HUA], BYTE cbHuaCardIndex[]); | |||
//扑克转换 | |||
BYTE SwitchToCardIndex(const BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX_HUA]); | |||
//把组合牌里面的统转化成手牌 | |||
bool HeBingCardIndex(BYTE cbCardIndexTemp[MAX_INDEX_HUA], const BYTE cbCardIndex_Tong[MAX_INDEX_HUA], BYTE cbTempHuaCardIndex[5], const BYTE HuaCardInex_Tong[5]); | |||
//根据扑克牌数据,得到花牌保存到索引数组中 | |||
// 扑克牌数据 牌数 花牌索引数组 | |||
BYTE GetHuaCard(BYTE cbCardData[], BYTE bCardCount, BYTE cbHuaCardIndex[]); | |||
//获取牌个数 | |||
WORD GetValue(BYTE uNum, BYTE fanshu, WORD PaiZhi); | |||
//解码加密的牌 | |||
BYTE DeCodeCard(const WORD cbCardData); | |||
//解码翻数 | |||
BYTE DeCodeFanshu(const WORD cbCardData); | |||
//获取手牌最后牌值 | |||
BYTE GetEndCard(BYTE cbCardIndex[MAX_INDEX_HUA]); | |||
//胡法分析 | |||
protected: | |||
//不符合硬胡规则 | |||
//七小对 | |||
//bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], const BYTE cbWeaveCount); | |||
////将将胡 | |||
//bool IsJiangJiang(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], const BYTE cbWeaveCount); | |||
////要符合硬胡规则 | |||
////清一色 | |||
//bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], const BYTE cbItemCount); | |||
////碰碰胡 | |||
//bool IsPengPeng(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], const BYTE cbItemCount); | |||
////全求人 | |||
//bool IsQuanQiuRen(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem WeaveItem[], const BYTE cbItemCount); | |||
////七小对类型 | |||
//int TypeQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX_HUA]); | |||
//内部函数 | |||
public: | |||
bool PeiPai(BYTE cbCardData[], BYTE nCount); | |||
//分析扑克 | |||
bool AnalyseCard(const BYTE cbCardIndex[MAX_INDEX_HUA], const tagWeaveItem_Hua WeaveItem[], BYTE cbWeaveCount, CAnalyseItemArray_hua & AnalyseItemArray); | |||
//算最大胡子 | |||
BYTE AnalyseCardHuNum(const BYTE cbCardIndex[MAX_INDEX_HUA], BYTE cbCurrentCard, BYTE cbHandGoldCard[3], BYTE LaiZi[3], BYTE cbTempHuaCardIndex[5], BYTE cbTempWeaveHuaIndex[5], const tagWeaveItem_Hua WeaveItem[], BYTE cbItemCount, BYTE TongCount, CAnalyseItemArray_hua & AnalyseItemArray, tagAnalyseItem_hua & BestAnalyseItem); | |||
// | |||
BYTE GetWeaveIndex(BYTE cbWeaveKind, BYTE cbCenterCardIndex, BYTE cbCardIndex[]); | |||
bool IsYaKou(const BYTE cbCardIndex[], BYTE &FirstIndex, BYTE &SecondeIndex); | |||
BYTE Abs(BYTE cbFirst, BYTE cbSecond); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,24 @@ | |||
#include "Stdafx.h" | |||
#include <afxdllx.h> | |||
////////////////////////////////////////////////////////////////////////// | |||
static AFX_EXTENSION_MODULE GameServerDLL={NULL,NULL}; | |||
//DLL µ¼³öÖ÷º¯Êý | |||
extern "C" int APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) | |||
{ | |||
UNREFERENCED_PARAMETER(lpReserved); | |||
if (dwReason==DLL_PROCESS_ATTACH) | |||
{ | |||
if (!AfxInitExtensionModule(GameServerDLL, hInstance)) return 0; | |||
new CDynLinkLibrary(GameServerDLL); | |||
} | |||
else if (dwReason==DLL_PROCESS_DETACH) | |||
{ | |||
AfxTermExtensionModule(GameServerDLL); | |||
} | |||
return 1; | |||
} | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,122 @@ | |||
// Microsoft Visual C++ generated resource script. | |||
// | |||
#include "resource.h" | |||
#define APSTUDIO_READONLY_SYMBOLS | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Generated from the TEXTINCLUDE 2 resource. | |||
// | |||
#include "afxres.h" | |||
///////////////////////////////////////////////////////////////////////////// | |||
#undef APSTUDIO_READONLY_SYMBOLS | |||
///////////////////////////////////////////////////////////////////////////// | |||
// 中文(中华人民共和国) resources | |||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) | |||
#ifdef _WIN32 | |||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED | |||
#pragma code_page(936) | |||
#endif //_WIN32 | |||
#ifdef APSTUDIO_INVOKED | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// TEXTINCLUDE | |||
// | |||
1 TEXTINCLUDE | |||
BEGIN | |||
"resource.h\0" | |||
END | |||
2 TEXTINCLUDE | |||
BEGIN | |||
"#include ""afxres.h""\r\n" | |||
"\0" | |||
END | |||
3 TEXTINCLUDE | |||
BEGIN | |||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n" | |||
"#define _AFX_NO_OLE_RESOURCES\r\n" | |||
"#define _AFX_NO_TRACKER_RESOURCES\r\n" | |||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n" | |||
"\r\n" | |||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n" | |||
"LANGUAGE 4, 2\r\n" | |||
"#pragma code_page(936)\r\n" | |||
"#include ""res\\GameServer.rc2"" // 不是由 Microsoft Visual C++ 编辑过的资源\r\n" | |||
"#include ""afxres.rc"" // 标准组件\r\n" | |||
"#endif\r\n" | |||
"\0" | |||
END | |||
#endif // APSTUDIO_INVOKED | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Version | |||
// | |||
VS_VERSION_INFO VERSIONINFO | |||
FILEVERSION 6,6,0,3 | |||
PRODUCTVERSION 6,6,0,3 | |||
FILEFLAGSMASK 0x3fL | |||
#ifdef _DEBUG | |||
FILEFLAGS 0x1L | |||
#else | |||
FILEFLAGS 0x0L | |||
#endif | |||
FILEOS 0x4L | |||
FILETYPE 0x2L | |||
FILESUBTYPE 0x0L | |||
BEGIN | |||
BLOCK "StringFileInfo" | |||
BEGIN | |||
BLOCK "080403a8" | |||
BEGIN | |||
VALUE "CompanyName", "TODO: <公司名>" | |||
VALUE "FileDescription", "TODO: <文件说明>" | |||
VALUE "FileVersion", "6, 6, 0, 3" | |||
VALUE "InternalName", "GameServer.dll" | |||
VALUE "LegalCopyright", "TODO: (C) <公司名>。保留所有权利。" | |||
VALUE "OriginalFilename", "GameServer.dll" | |||
VALUE "ProductName", "TODO: <产品名>" | |||
VALUE "ProductVersion", "6, 6, 0, 3" | |||
END | |||
END | |||
BLOCK "VarFileInfo" | |||
BEGIN | |||
VALUE "Translation", 0x804, 936 | |||
END | |||
END | |||
#endif // 中文(中华人民共和国) resources | |||
///////////////////////////////////////////////////////////////////////////// | |||
#ifndef APSTUDIO_INVOKED | |||
///////////////////////////////////////////////////////////////////////////// | |||
// | |||
// Generated from the TEXTINCLUDE 3 resource. | |||
// | |||
#define _AFX_NO_SPLITTER_RESOURCES | |||
#define _AFX_NO_OLE_RESOURCES | |||
#define _AFX_NO_TRACKER_RESOURCES | |||
#define _AFX_NO_PROPERTY_RESOURCES | |||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) | |||
LANGUAGE 4, 2 | |||
#pragma code_page(936) | |||
#include "res\GameServer.rc2" // 不是由 Microsoft Visual C++ 编辑过的资源 | |||
#include "afxres.rc" // 标准组件 | |||
#endif | |||
///////////////////////////////////////////////////////////////////////////// | |||
#endif // not APSTUDIO_INVOKED | |||
@@ -0,0 +1,390 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<ItemGroup Label="ProjectConfigurations"> | |||
<ProjectConfiguration Include="DebugVD|Win32"> | |||
<Configuration>DebugVD</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Debug_Unicode|Win32"> | |||
<Configuration>Debug_Unicode</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Debug|Win32"> | |||
<Configuration>Debug</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="ReleaseVD|Win32"> | |||
<Configuration>ReleaseVD</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Release_Unicode|Win32"> | |||
<Configuration>Release_Unicode</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
<ProjectConfiguration Include="Release|Win32"> | |||
<Configuration>Release</Configuration> | |||
<Platform>Win32</Platform> | |||
</ProjectConfiguration> | |||
</ItemGroup> | |||
<PropertyGroup Label="Globals"> | |||
<ProjectName>游戏服务器</ProjectName> | |||
<ProjectGuid>{660F9BCF-23A3-425A-9BDC-40D7AFBC8DFB}</ProjectGuid> | |||
<RootNamespace>游戏服务器</RootNamespace> | |||
<Keyword>MFCDLLProj</Keyword> | |||
</PropertyGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>Unicode</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>Unicode</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVD|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>MultiByte</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugVD|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>MultiByte</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>MultiByte</CharacterSet> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | |||
<ConfigurationType>DynamicLibrary</ConfigurationType> | |||
<PlatformToolset>v120</PlatformToolset> | |||
<UseOfMfc>Dynamic</UseOfMfc> | |||
<CharacterSet>MultiByte</CharacterSet> | |||
</PropertyGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | |||
<ImportGroup Label="ExtensionSettings"> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVD|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugVD|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> | |||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> | |||
</ImportGroup> | |||
<PropertyGroup Label="UserMacros" /> | |||
<PropertyGroup> | |||
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||
<OutDir>Debug\</OutDir> | |||
<IntDir>Debug\</IntDir> | |||
<LinkIncremental>true</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |||
<OutDir>Release\</OutDir> | |||
<IntDir>Release\</IntDir> | |||
<LinkIncremental>false</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugVD|Win32'"> | |||
<OutDir>$(Configuration)\</OutDir> | |||
<IntDir>$(Configuration)\</IntDir> | |||
<LinkIncremental>true</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVD|Win32'"> | |||
<OutDir>$(Configuration)\</OutDir> | |||
<IntDir>$(Configuration)\</IntDir> | |||
<LinkIncremental>false</LinkIncremental> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'"> | |||
<OutDir>$(Configuration)\</OutDir> | |||
<IntDir>$(Configuration)\</IntDir> | |||
<LinkIncremental>true</LinkIncremental> | |||
<TargetName>SparrowXZServer</TargetName> | |||
<PostBuildEventUseInBuild>true</PostBuildEventUseInBuild> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'"> | |||
<OutDir>$(Configuration)\</OutDir> | |||
<IntDir>$(Configuration)\</IntDir> | |||
<LinkIncremental>false</LinkIncremental> | |||
<TargetName>SparrowXZServer</TargetName> | |||
</PropertyGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<Optimization>Disabled</Optimization> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>true</MinimalRebuild> | |||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | |||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Debug/ansi/SparrowXZServer.dll</OutputFile> | |||
<ModuleDefinitionFile /> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<ImportLibrary>$(OutDir)GameServer.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\服务器组件\Debug\Ansi | |||
copy /y ..\..\..\..\运行\Debug\Ansi\$(TargetFileName) ..\..\..\发布组件\服务器组件\Debug\Ansi\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Release/ansi/SparrowXZServer.dll</OutputFile> | |||
<ModuleDefinitionFile /> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<OptimizeReferences>true</OptimizeReferences> | |||
<EnableCOMDATFolding>true</EnableCOMDATFolding> | |||
<ImportLibrary>$(OutDir)GameServer.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\发布组件\服务器组件\Release\Ansi | |||
copy /y ..\..\..\..\运行\Release\Ansi\$(TargetFileName) ..\..\..\发布组件\服务器组件\Release\Ansi\$(TargetFileName) | |||
</Command> | |||
</PostBuildEvent> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugVD|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<Optimization>Disabled</Optimization> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;VIDEO_GAME;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>true</MinimalRebuild> | |||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | |||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../运行/Debug/SparrowXZVDServer.dll</OutputFile> | |||
<ModuleDefinitionFile /> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<ImportLibrary>$(OutDir)GameServer.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseVD|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;VIDEO_GAME;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../运行/Release/SparrowXZVDServer.dll</OutputFile> | |||
<ModuleDefinitionFile /> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<OptimizeReferences>true</OptimizeReferences> | |||
<EnableCOMDATFolding>true</EnableCOMDATFolding> | |||
<ImportLibrary>$(OutDir)GameServer.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<Optimization>Disabled</Optimization> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MinimalRebuild>true</MinimalRebuild> | |||
<BasicRuntimeChecks>Default</BasicRuntimeChecks> | |||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../..\Bin\Debug_Unicode/SparrowXZServer.dll</OutputFile> | |||
<ModuleDefinitionFile /> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<ImportLibrary>$(OutDir)GameServer.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
<AdditionalDependencies> | |||
</AdditionalDependencies> | |||
<AdditionalLibraryDirectories>../../../../\Source\Libs\Debug_Unicode</AdditionalLibraryDirectories> | |||
</Link> | |||
<PostBuildEvent> | |||
<Command> | |||
</Command> | |||
</PostBuildEvent> | |||
</ItemDefinitionGroup> | |||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'"> | |||
<Midl> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<MkTypLibCompatible>false</MkTypLibCompatible> | |||
</Midl> | |||
<ClCompile> | |||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_AFXEXT;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> | |||
<PrecompiledHeader>Use</PrecompiledHeader> | |||
<WarningLevel>Level3</WarningLevel> | |||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | |||
</ClCompile> | |||
<ResourceCompile> | |||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||
<Culture>0x0804</Culture> | |||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||
</ResourceCompile> | |||
<Link> | |||
<OutputFile>../../../../运行/Release/unicode/SparrowXZServer.dll</OutputFile> | |||
<ModuleDefinitionFile /> | |||
<GenerateDebugInformation>true</GenerateDebugInformation> | |||
<SubSystem>Windows</SubSystem> | |||
<OptimizeReferences>true</OptimizeReferences> | |||
<EnableCOMDATFolding>true</EnableCOMDATFolding> | |||
<ImportLibrary>$(OutDir)GameServer.lib</ImportLibrary> | |||
<TargetMachine>MachineX86</TargetMachine> | |||
</Link> | |||
<PostBuildEvent> | |||
<Command>mkdir ..\..\..\..\Publish\Server\Release_Unicode | |||
copy /y ..\..\..\..\运行\Release\Unicode\SparrowXZServer.dll ..\..\..\..\Publish\Server\Release_Unicode\SparrowXZServer.dll | |||
</Command> | |||
</PostBuildEvent> | |||
</ItemDefinitionGroup> | |||
<ItemGroup> | |||
<ClCompile Include="GameLogic.cpp" /> | |||
<ClCompile Include="GameLogicCxz.cpp" /> | |||
<ClCompile Include="GameLogicOther.cpp" /> | |||
<ClCompile Include="GameLogicZhiPai.cpp" /> | |||
<ClCompile Include="GameServer.cpp" /> | |||
<ClCompile Include="GameServerManager.cpp" /> | |||
<ClCompile Include="LogString.cpp" /> | |||
<ClCompile Include="ReplayRecordManager.cpp" /> | |||
<ClCompile Include="Stdafx.cpp"> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='DebugVD|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='ReleaseVD|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release_Unicode|Win32'">Create</PrecompiledHeader> | |||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> | |||
</ClCompile> | |||
<ClCompile Include="TableFrameSink.cpp"> | |||
<DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='DebugVD|Win32'">4244;%(DisableSpecificWarnings)</DisableSpecificWarnings> | |||
<DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug_Unicode|Win32'">4244;%(DisableSpecificWarnings)</DisableSpecificWarnings> | |||
<DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4244;%(DisableSpecificWarnings)</DisableSpecificWarnings> | |||
</ClCompile> | |||
<ClCompile Include="TableFrameSinkCxz.cpp" /> | |||
<ClCompile Include="TableFrameSinkOther.cpp" /> | |||
<ClCompile Include="TableFrameSinkZhiPai.cpp" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ClInclude Include="..\消息定义\CMD_Sparrow.h" /> | |||
<ClInclude Include="data.h" /> | |||
<ClInclude Include="GameLogic.h" /> | |||
<ClInclude Include="GameLogicCxz.h" /> | |||
<ClInclude Include="GameLogicOther.h" /> | |||
<ClInclude Include="GameLogicZhiPai.h" /> | |||
<ClInclude Include="GameServerManager.h" /> | |||
<ClInclude Include="LogString.h" /> | |||
<ClInclude Include="ReplayRecordManager.h" /> | |||
<ClInclude Include="Resource.h" /> | |||
<ClInclude Include="Stdafx.h" /> | |||
<ClInclude Include="TableFrameSink.h" /> | |||
<ClInclude Include="TableFrameSinkCxz.h" /> | |||
<ClInclude Include="TableFrameSinkOther.h" /> | |||
<ClInclude Include="TableFrameSinkZhiPai.h" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ResourceCompile Include="GameServer.rc" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="res\GameServer.rc2" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Text Include="ReadMe.txt" /> | |||
</ItemGroup> | |||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | |||
<ImportGroup Label="ExtensionTargets"> | |||
</ImportGroup> | |||
</Project> |
@@ -0,0 +1,6 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<PropertyGroup> | |||
<ShowAllFiles>true</ShowAllFiles> | |||
</PropertyGroup> | |||
</Project> |
@@ -0,0 +1,210 @@ | |||
#include "StdAfx.h" | |||
#include "Tableframesink.h" | |||
#include "TableframesinkOther.h" | |||
#include "TableFrameSinkCxz.h" | |||
#include "TableFrameSinkZhiPai.h" | |||
#include "GameServerManager.h" | |||
#include "LogString.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//全局变量 | |||
static CGameServiceManager g_GameServiceManager; //管理变量 | |||
////////////////////////////////////////////////////////////////////////// | |||
//构造函数 | |||
CGameServiceManager::CGameServiceManager() | |||
{ | |||
//内核属性 | |||
m_GameServiceAttrib.wKindID=KIND_ID; | |||
m_GameServiceAttrib.wChairCount=GAME_PLAYER; | |||
m_GameServiceAttrib.wSupporType=(GAME_GENRE_GOLD|GAME_GENRE_SCORE|GAME_GENRE_MATCH|GAME_GENRE_EDUCATE); | |||
//功能标志 | |||
m_GameServiceAttrib.cbDynamicJoin=TRUE; | |||
m_GameServiceAttrib.cbAndroidUser=TRUE; | |||
m_GameServiceAttrib.cbOffLineTrustee=FALSE; | |||
//服务属性 | |||
m_GameServiceAttrib.dwServerVersion=VERSION_SERVER; | |||
m_GameServiceAttrib.dwClientVersion=VERSION_CLIENT; | |||
lstrcpyn(m_GameServiceAttrib.szGameName,GAME_NAME,CountArray(m_GameServiceAttrib.szGameName)); | |||
lstrcpyn(m_GameServiceAttrib.szDataBaseName,TEXT("QPSparrowXZDB"),CountArray(m_GameServiceAttrib.szDataBaseName)); | |||
lstrcpyn(m_GameServiceAttrib.szClientEXEName,TEXT("SparrowXZ.EXE"),CountArray(m_GameServiceAttrib.szClientEXEName)); | |||
lstrcpyn(m_GameServiceAttrib.szServerDLLName,TEXT("SparrowXZServer.DLL"),CountArray(m_GameServiceAttrib.szServerDLLName)); | |||
return; | |||
} | |||
//析构函数 | |||
CGameServiceManager::~CGameServiceManager() | |||
{ | |||
} | |||
//接口查询 | |||
void * CGameServiceManager::QueryInterface(const IID & Guid, DWORD dwQueryVer) | |||
{ | |||
QUERYINTERFACE(IGameServiceManager,Guid,dwQueryVer); | |||
QUERYINTERFACE_IUNKNOWNEX(IGameServiceManager,Guid,dwQueryVer); | |||
return NULL; | |||
} | |||
//创建游戏桌 | |||
void * CGameServiceManager::CreateTableFrameSink(const IID & Guid, DWORD dwQueryVer) | |||
{ | |||
if (dwQueryVer == VER_ITableFrameSink) | |||
{ | |||
//建立对象 | |||
CTableFrameSink * pTableFrameSink = NULL; | |||
try | |||
{ | |||
pTableFrameSink = new CTableFrameSink(); | |||
if (pTableFrameSink == NULL) | |||
throw TEXT("创建失败"); | |||
void * pObject = pTableFrameSink->QueryInterface(Guid, dwQueryVer); | |||
if (pObject == NULL) | |||
throw TEXT("接口查询失败"); | |||
return pObject; | |||
} | |||
catch (...) {} | |||
//清理对象 | |||
SafeDelete(pTableFrameSink); | |||
} | |||
else if (dwQueryVer == VER_ITableFrameSinkOther) | |||
{ | |||
//建立对象 | |||
CTableFrameSinkOther * pTableFrameSink = NULL; | |||
try | |||
{ | |||
pTableFrameSink = new CTableFrameSinkOther(); | |||
if (pTableFrameSink == NULL) | |||
throw TEXT("创建失败"); | |||
void * pObject = pTableFrameSink->QueryInterface(Guid, dwQueryVer); | |||
if (pObject == NULL) | |||
throw TEXT("接口查询失败"); | |||
return pObject; | |||
} | |||
catch (...) {} | |||
//清理对象 | |||
SafeDelete(pTableFrameSink); | |||
} | |||
else if (dwQueryVer == VER_ITableFrameSinkCxz) | |||
{ | |||
TableFrameSinkCxz * pTableFrameSink = NULL; | |||
try | |||
{ | |||
pTableFrameSink = new TableFrameSinkCxz(); | |||
if (pTableFrameSink == NULL) | |||
throw TEXT("创建失败"); | |||
void * pObject = pTableFrameSink->QueryInterface(Guid, dwQueryVer); | |||
if (pObject == NULL) | |||
throw TEXT("接口查询失败"); | |||
return pObject; | |||
} | |||
catch (...) {} | |||
//清理对象 | |||
SafeDelete(pTableFrameSink); | |||
} | |||
else if (dwQueryVer == VER_ITableFrameSinkZhiPai) | |||
{ | |||
TableFrameSinkZhiPai * pTableFrameSink = NULL; | |||
try | |||
{ | |||
pTableFrameSink = new TableFrameSinkZhiPai(); | |||
if (pTableFrameSink == NULL) | |||
throw TEXT("创建失败"); | |||
void * pObject = pTableFrameSink->QueryInterface(Guid, dwQueryVer); | |||
if (pObject == NULL) | |||
throw TEXT("接口查询失败"); | |||
return pObject; | |||
} | |||
catch (...) {} | |||
//清理对象 | |||
SafeDelete(pTableFrameSink); | |||
} | |||
return NULL; | |||
} | |||
//获取属性 | |||
bool CGameServiceManager::GetServiceAttrib(tagGameServiceAttrib & GameServiceAttrib) | |||
{ | |||
GameServiceAttrib = m_GameServiceAttrib; | |||
return true; | |||
} | |||
//参数修改 | |||
bool CGameServiceManager::RectifyParameter(tagGameServiceOption & GameServiceOption) | |||
{ | |||
//单元积分 | |||
GameServiceOption.lCellScore=__max(1L,GameServiceOption.lCellScore); | |||
//积分下限 | |||
if (GameServiceOption.wServerType!=GAME_GENRE_SCORE) | |||
{ | |||
GameServiceOption.lMinEnterScore=__max(GameServiceOption.lCellScore*256L,GameServiceOption.lMinEnterScore); | |||
} | |||
//积分上限 | |||
if (GameServiceOption.lRestrictScore!=0L) | |||
{ | |||
GameServiceOption.lRestrictScore=__max(GameServiceOption.lRestrictScore,GameServiceOption.lMinEnterScore); | |||
} | |||
//积分上限 | |||
if (GameServiceOption.wServerType!=GAME_GENRE_SCORE) | |||
{ | |||
if(GameServiceOption.lMaxEnterScore<=GameServiceOption.lMinEnterScore) | |||
GameServiceOption.lMinEnterScore=0L; | |||
else if(GameServiceOption.lRestrictScore>0) | |||
GameServiceOption.lMaxEnterScore=__min(GameServiceOption.lMaxEnterScore,GameServiceOption.lRestrictScore); | |||
} | |||
return true; | |||
} | |||
//创建机器 | |||
VOID * CGameServiceManager::CreateAndroidUserItemSink(REFGUID Guid, DWORD dwQueryVer) | |||
{ | |||
try | |||
{ | |||
//创建组件 | |||
if( m_AndroidServiceHelper.GetInterface() == NULL ) | |||
{ | |||
m_AndroidServiceHelper.SetModuleCreateInfo(TEXT("SparrowXZAndroid.dll"),"CreateAndroidService"); | |||
if( !m_AndroidServiceHelper.CreateInstance() ) throw 0; | |||
} | |||
//创建机器人 | |||
VOID *pAndroidObject = m_AndroidServiceHelper->CreateAndroidUserItemSink(Guid,dwQueryVer); | |||
if( pAndroidObject == NULL ) throw TEXT("创建机器人失败"); | |||
return pAndroidObject; | |||
} | |||
catch(...) {} | |||
return NULL; | |||
} | |||
////////////////////////////////////////////////////////////////////////// | |||
//设置子游戏协议解析地址 | |||
PVOID CGameServiceManager::GetDataString() | |||
{ | |||
PVOID sgRet = NULL; | |||
sgRet = LogString::GetString; | |||
return sgRet; | |||
} | |||
//建立对象函数 | |||
extern "C" __declspec(dllexport) void * CreateGameServiceManager(const GUID & Guid, DWORD dwInterfaceVer) | |||
{ | |||
return g_GameServiceManager.QueryInterface(Guid,dwInterfaceVer); | |||
} | |||
////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,56 @@ | |||
#ifndef GAME_SERVER_MANAGER_HEAD_FILE | |||
#define GAME_SERVER_MANAGER_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
////////////////////////////////////////////////////////////////////////// | |||
//游戏服务器管理类 | |||
class CGameServiceManager : public IGameServiceManager | |||
{ | |||
//变量定义 | |||
protected: | |||
tagGameServiceAttrib m_GameServiceAttrib; //服务属性 | |||
//组件变量 | |||
protected: | |||
CGameServiceManagerHelper m_AndroidServiceHelper; //机器人服务 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CGameServiceManager(void); | |||
//析构函数 | |||
virtual ~CGameServiceManager(void); | |||
//基础接口 | |||
public: | |||
//释放对象 | |||
virtual VOID Release() { } | |||
//是否有效 | |||
virtual bool IsValid() { return AfxIsValidAddress(this,sizeof(CGameServiceManager))?true:false; } | |||
//接口查询 | |||
virtual void * QueryInterface(const IID & Guid, DWORD dwQueryVer); | |||
//接口函数 | |||
public: | |||
//创建桌子 | |||
virtual void * CreateTableFrameSink(const IID & Guid, DWORD dwQueryVer); | |||
//创建机器 | |||
virtual VOID * CreateAndroidUserItemSink(REFGUID Guid, DWORD dwQueryVer); | |||
//创建数据 | |||
virtual VOID * CreateGameDataBaseEngineSink(REFGUID Guid, DWORD dwQueryVer) { return NULL; } | |||
//获取属性 | |||
virtual bool GetServiceAttrib(tagGameServiceAttrib & GameServiceAttrib); | |||
//修改参数 | |||
virtual bool RectifyParameter(tagGameServiceOption & GameServiceOption); | |||
//设置子游戏协议解析地址 | |||
virtual PVOID GetDataString(); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |
@@ -0,0 +1,122 @@ | |||
#include "stdafx.h" | |||
#include "LogString.h" | |||
LogString::LogString() | |||
{ | |||
} | |||
LogString::~LogString() | |||
{ | |||
} | |||
// 获取子协议解析 | |||
bool LogString::GetString(WORD wCommend, const PVOID pData, int iLen, PVOID pOutData, int iOutLen) | |||
{ | |||
int a = 1; | |||
switch (wCommend) | |||
{ | |||
//case SUB_S_SEND_LAIZIGANG: | |||
//{ | |||
// return ((CMD_S_OutCard*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
//} | |||
case SUB_C_OPERATE_CARD: | |||
{ | |||
return ((CMD_C_OperateCard*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_S_GAME_START: | |||
{ | |||
return ((CMD_S_GameStart*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_S_OUT_CARD: | |||
{ | |||
return ((CMD_S_OutCard*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_S_SEND_CARD: | |||
{ | |||
return ((CMD_S_SendCard*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_S_OPERATE_NOTIFY: | |||
{ | |||
return ((CMD_S_OperateNotify*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_S_OPERATE_RESULT: | |||
{ | |||
return ((CMD_S_OperateResult*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_S_OPERATE_NOTIFY_HUA: //花牌操作提示 | |||
{ | |||
return ((CMD_S_OperateNotify_Hua*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_S_QINGTONG_NOTIFY_HUA: //请统操作提示 | |||
{ | |||
return ((CMD_S_QingTongNotify*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_S_OPERATE_RESULT_HUA: //操作广播命令 | |||
{ | |||
return ((CMD_S_OperateResult_Hua*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_S_GAME_START_HUA: //广播花牌开始 | |||
{ | |||
return ((CMD_S_GameStart_Hua*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_S_SEND_CARD_HUA: //广播起牌 | |||
{ | |||
return ((CMD_S_SendCard_Hua*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_S_OUT_CARD_HUA: //广播出牌 | |||
{ | |||
return ((CMD_S_OutCard*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_C_OPERATE_CARD_HUA: //操作牌值 | |||
{ | |||
return ((CMD_C_OperateCard_Hua*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_C_OUT_CARD_HUA: //出牌 | |||
{ | |||
return ((CMD_C_OutCard_Hua*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_C_YIWEI_HUA: | |||
{ | |||
return ((CMD_C_YIWEI_HUA*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
case SUB_S_YI_WEI_HUA: | |||
{ | |||
return ((CMD_S_YIWEI_HUA*)pData)->ToString((TCHAR*)pOutData, iOutLen); | |||
} | |||
//case SUB_S_GAME_END: | |||
//{ | |||
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen); | |||
//} | |||
//case SUB_S_TRUSTEE: | |||
//{ | |||
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen); | |||
//} | |||
//case SUB_S_CHI_HU: | |||
//{ | |||
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen); | |||
//} | |||
//case SUB_S_GANG_SCORE: | |||
//{ | |||
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen); | |||
//} | |||
//case SUB_S_DIGNQUE: | |||
//{ | |||
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen); | |||
//} | |||
//case SUB_S_HUAN_SAN_ZHANG: | |||
//{ | |||
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen); | |||
//} | |||
//case SUB_S_GAME_NOTIFY: | |||
//{ | |||
// //return ((CMD_S_GameStart*)pData)->ToString(pOutData, iOutLen); | |||
//} | |||
default: | |||
break; | |||
} | |||
return true; | |||
} |
@@ -0,0 +1,10 @@ | |||
#pragma once | |||
class LogString | |||
{ | |||
public: | |||
LogString(); | |||
~LogString(); | |||
// »ñÈ¡×ÓÐÒé½âÎö | |||
static bool __stdcall GetString(WORD wCommend, const PVOID pData, int iLen, PVOID pOutData, int iOutLen); | |||
}; | |||
@@ -0,0 +1,55 @@ | |||
======================================================================== | |||
MICROSOFT 基础类库 : GameServer 项目概况 | |||
======================================================================== | |||
应用程序向导已为您创建了此 GameServer DLL。此 DLL 不仅 | |||
说明了使用 Microsoft 基础类的基础,而且 | |||
也是编写 DLL 的起点。 | |||
此文件包含组成 GameServer DLL | |||
的每个文件的内容摘要。 | |||
GameServer.vcproj | |||
这是用应用程序向导生成的 VC++ 项目的主项目文件。 | |||
它包含有关生成此文件的 Visual C++ 版本的信息,以及 | |||
有关使用应用程序向导选择的 | |||
平台、配置和项目功能的信息。 | |||
GameServer.cpp | |||
这是包含 DllMain() | |||
定义的主 DLL 源文件。 | |||
GameServer.rc | |||
这是程序使用的所有 Microsoft Windows 资源的列表。 | |||
它包含存储在 RES 子目录下的图标、位图和光标。 | |||
此文件可在 Microsoft Visual C++ 中直接编辑。 | |||
res\GameServer.rc2 | |||
此文件包含不由 Microsoft | |||
Visual C++ 编辑的资源。您应将不能由 | |||
资源编辑器编辑的所有资源放置在此文件中。 | |||
GameServer.def | |||
此文件包含有关运行 Microsoft Windows | |||
所需的 DLL 的信息。 | |||
它定义此 DLL 的名称和说明等参数。 | |||
它还从此 DLL 导出函数。 | |||
///////////////////////////////////////////////////////////////////////////// | |||
其他标准文件: | |||
StdAfx.h、StdAfx.cpp | |||
这些文件用于生成名为 GameServer.pch | |||
的预编译头(PCH)文件以及名为 StdAfx.obj 的预编译类型文件。 | |||
Resource.h | |||
这是标准的头文件,它定义了新的资源 ID。 | |||
Microsoft Visual C++ 读取和更新此文件。 | |||
///////////////////////////////////////////////////////////////////////////// | |||
其他注释: | |||
应用程序向导使用 "TODO:" 注释指示应添加或自定义的源代码部分。 | |||
///////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,12 @@ | |||
#include "stdafx.h" | |||
#include "ReplayRecordManager.h" | |||
ReplayRecordManager::ReplayRecordManager() | |||
{ | |||
} | |||
ReplayRecordManager::~ReplayRecordManager() | |||
{ | |||
} |
@@ -0,0 +1,25 @@ | |||
#pragma once | |||
#include <vector> | |||
#include <unordered_map> | |||
class ReplayRecordManager | |||
{ | |||
public: | |||
static ReplayRecordManager& Instance() | |||
{ | |||
static ReplayRecordManager instance; | |||
return instance; | |||
} | |||
~ReplayRecordManager(); | |||
private: | |||
ReplayRecordManager(); | |||
std::unordered_map<UINT32, std::list<CMD_GR_ReplayRecordResp>> m_userRecords; | |||
}; | |||
@@ -0,0 +1,13 @@ | |||
// | |||
// GameServer.RC2 - Microsoft Visual C++ 不会直接编辑的资源 | |||
// | |||
#ifdef APSTUDIO_INVOKED | |||
#error this file is not editable by Microsoft Visual C++ | |||
#endif //APSTUDIO_INVOKED | |||
///////////////////////////////////////////////////////////////////////////// | |||
// 在此处添加手动编辑的资源... | |||
///////////////////////////////////////////////////////////////////////////// |
@@ -0,0 +1,16 @@ | |||
//{{NO_DEPENDENCIES}} | |||
// Microsoft Visual C++ generated include file. | |||
// Used by GameServer.RC | |||
// | |||
// 新对象的下一些默认值 | |||
// | |||
#ifdef APSTUDIO_INVOKED | |||
#ifndef APSTUDIO_READONLY_SYMBOLS | |||
#define _APS_NEXT_RESOURCE_VALUE 4000 | |||
#define _APS_NEXT_CONTROL_VALUE 4000 | |||
#define _APS_NEXT_SYMED_VALUE 4000 | |||
#define _APS_NEXT_COMMAND_VALUE 32771 | |||
#endif | |||
#endif |
@@ -0,0 +1,7 @@ | |||
// stdafx.cpp : 只包括标准包含文件的源文件 | |||
// GameServer.pch 将成为预编译头 | |||
// stdafx.obj 将包含预编译类型信息 | |||
#include "stdafx.h" | |||
@@ -0,0 +1,104 @@ | |||
#pragma once | |||
#ifndef VC_EXTRALEAN | |||
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料 | |||
#endif | |||
// 如果您必须使用下列所指定的平台之前的平台,则修改下面的定义。 | |||
// 有关不同平台的相应值的最新信息,请参考 MSDN。 | |||
#ifndef WINVER // 允许使用特定于 Windows 95 和 Windows NT 4 或更高版本的功能。 | |||
#define WINVER 0x0501 // 将此更改为针对于 Windows 98 和 Windows 2000 或更高版本的合适的值。 | |||
#endif | |||
#ifndef _WIN32_WINNT // 允许使用特定于 Windows NT 4 或更高版本的功能。 | |||
#define _WIN32_WINNT 0x0501 // 将此更改为针对于 Windows 2000 或更高版本的合适的值。 | |||
#endif | |||
#ifndef _WIN32_WINDOWS // 允许使用特定于 Windows 98 或更高版本的功能。 | |||
#define _WIN32_WINDOWS 0x0410 // 将此更改为针对于 Windows Me 或更高版本的合适的值。 | |||
#endif | |||
#ifndef _WIN32_IE // 允许使用特定于 IE 4.0 或更高版本的功能。 | |||
#define _WIN32_IE 0x0400 // 将此更改为针对于 IE 5.0 或更高版本的合适的值。 | |||
#endif | |||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将为显式的 | |||
#include <afxwin.h> // MFC 核心组件和标准组件 | |||
#include <afxext.h> // MFC 扩展 | |||
#ifndef _AFX_NO_OLE_SUPPORT | |||
#include <afxole.h> // MFC OLE 类 | |||
#include <afxodlgs.h> // MFC OLE 对话框类 | |||
#include <afxdisp.h> // MFC 自动化类 | |||
#endif // _AFX_NO_OLE_SUPPORT | |||
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持 | |||
#ifndef _AFX_NO_AFXCMN_SUPPORT | |||
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持 | |||
#endif // _AFX_NO_AFXCMN_SUPPORT | |||
////////////////////////////////////////////////////////////////////////// | |||
//组件头文件 | |||
#include "..\消息定义\CMD_Sparrow.h" | |||
////////////////////////////////////////////////////////////////////////////////// | |||
//编译环境 | |||
//#include "..\..\..\SDKCondition.h" | |||
#ifdef SDK_CONDITION | |||
////////////////////////////////////////////////////////////////////////////////// | |||
//开发环境 | |||
//平台环境 | |||
#include "..\..\..\开发库\Include\GameServiceHead.h" | |||
#ifndef _DEBUG | |||
#ifndef _UNICODE | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/KernelEngine.lib") | |||
#else | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/KernelEngine.lib") | |||
#endif | |||
#else | |||
#ifndef _UNICODE | |||
#pragma comment (lib,"../../../开发库/Lib/Ansi/KernelEngineD.lib") | |||
#else | |||
#pragma comment (lib,"../../../开发库/Lib/Unicode/KernelEngineD.lib") | |||
#endif | |||
#endif | |||
////////////////////////////////////////////////////////////////////////////////// | |||
#else | |||
////////////////////////////////////////////////////////////////////////////////// | |||
//系统环境 | |||
//平台环境 | |||
#include "..\..\..\..\Source\ServerControl\GameService\GameServiceHead.h" | |||
#ifndef _DEBUG | |||
#ifndef _UNICODE | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/KernelEngine.lib") | |||
#else | |||
#pragma comment (lib,"../../../../Source/Libs/Release_Unicode/KernelEngine.lib") | |||
#endif | |||
#else | |||
#ifndef _UNICODE | |||
#pragma comment (lib,"../../../../系统模块/链接库/Ansi/KernelEngineD.lib") | |||
#else | |||
#pragma comment (lib,"../../../../Source/Libs/Debug_Unicode/KernelEngineD.lib") | |||
#endif | |||
#endif | |||
////////////////////////////////////////////////////////////////////////////////// | |||
#endif | |||
////////////////////////////////////////////////////////////////////////// | |||
@@ -0,0 +1,260 @@ | |||
#ifndef TABLE_FRAME_SINK_HEAD_FILE | |||
#define TABLE_FRAME_SINK_HEAD_FILE | |||
#pragma once | |||
#include "Stdafx.h" | |||
#include "GameLogic.h" | |||
#include "ReplayRecordManager.h" | |||
#include "data.h" | |||
//游戏桌子类 | |||
class CTableFrameSink : public ITableFrameSink, public ITableUserAction | |||
{ | |||
//游戏变量 | |||
private: | |||
BYTE bGameType; //游戏到底是0一脚癞油,1无癞到底,2半癞 | |||
LONG m_lSiceCount; //骰子点数 | |||
WORD m_wBankerUser; //庄家用户 | |||
WORD m_wNextBankerUser; //下一个庄家 | |||
int m_lGameScore[GAME_PLAYER]; //单局游戏得分 | |||
int m_lGameTatolScore[GAME_PLAYER]; //单轮积分计算 | |||
BYTE m_HuPai[GAME_PLAYER]; //玩家胡牌次数 | |||
int m_HuPaiLiuShui[16*GAME_PLAYER]; //流水详情 | |||
BYTE m_cbCardIndex[GAME_PLAYER][MAX_INDEX]; //用户扑克 | |||
BYTE m_bTrustee[GAME_PLAYER]; //是否托管 | |||
BYTE m_bReading[GAME_PLAYER]; //是否准备 | |||
BYTE m_cbLaiZiPiData; //癞子皮 | |||
BYTE m_cbLaiZiData; //癞子 | |||
BYTE m_cbQiangGangCardData[GAME_PLAYER]; //抢杠的牌 | |||
BYTE m_cbGenCount[GAME_PLAYER]; // | |||
bool m_bPlayStatus[GAME_PLAYER]; //玩家状态 | |||
std::list<DWORD> m_offlineUsers; //掉线的玩家 | |||
BYTE m_cbWinCount; // | |||
WORD m_wWinOrder[GAME_PLAYER]; // | |||
LONG m_lGameTax[GAME_PLAYER]; // | |||
//tagGangScore m_GangScore[GAME_PLAYER]; //玩家具体杠的信息 | |||
BYTE m_OutLaiZi[GAME_PLAYER]; //每个用户打出癞子牌个数 | |||
BYTE m_TabbOutCardCout[GAME_PLAYER]; //可以打出的牌就听牌的个数 | |||
BYTE m_TabbOutCardData[GAME_PLAYER][MAX_COUNT]; //具体打哪几张牌 | |||
BYTE m_TabbTingCardCount[GAME_PLAYER][MAX_COUNT]; //相对应打出牌可听牌个数,索引表示第几张,值是对应对应的听牌个数 | |||
BYTE m_TabbTingCardData[GAME_PLAYER][MAX_COUNT][MAX_INDEX]; //具体听牌数据,一维索引表示打出牌的第几个,二维索引表示听牌的第几个,值表示牌数据 | |||
private: | |||
CMD_S_GameConfig m_gameConfig; //游戏配置 | |||
bool m_isCanOutCard; //是否可以出牌 | |||
bool m_bDelete; //是否解散房间 | |||
bool bIsHuang; | |||
//bool m_isTingPai[GAME_PLAYER]; //玩家是否听牌 | |||
//出牌信息 | |||
private: | |||
WORD m_wOutCardUser; //出牌用户 | |||
BYTE m_cbOutCardData; //出牌扑克 | |||
BYTE m_cbOutCardCount; //出牌数目 | |||
BYTE m_cbDiscardCount[GAME_PLAYER]; //丢弃数目 | |||
BYTE m_cbDiscardCard[GAME_PLAYER][55]; //丢弃记录 | |||
BYTE m_cbLastDisCardData[GAME_PLAYER][MAX_COUNT];//每个玩家得记忆库,用于判断是否可以碰不 | |||
BYTE m_cbLastDisCount[GAME_PLAYER]; //每个玩家记忆库得个数 | |||
///BYTE m_cbDiscardWuYongCount[GAME_PLAYER]; //丢弃之后,也没碰杠的牌数目 | |||
//BYTE m_cbDiscardWuYongCard[GAME_PLAYER][55]; //具体数据 | |||
//发牌信息 | |||
private: | |||
BYTE m_cbSendCardData; //发牌扑克 | |||
BYTE m_cbSendCardCount; //发牌数目 | |||
BYTE m_cbLeftCardCount; //剩余数目 | |||
BYTE m_cbRepertoryCard[MAX_REPERTORY]; //库存扑克 | |||
//堆立变量 | |||
private: | |||
WORD m_wHeapHand; //堆立头部(从哪堆牌开始摸?) | |||
WORD m_wHeapTail; //堆立尾部(摸到堆牌结束?) | |||
BYTE m_cbHeapCardInfo[4][2]; //堆牌信息(记录4堆牌的堆头和堆尾各被摸了几张,如果( 堆头+堆尾 = 堆总数 ) 表示这堆牌被摸完了,需要切到下个玩家的那堆牌开始摸) | |||
//运行变量 | |||
private: | |||
WORD m_wResumeUser; //还原用户(下一个用户?) | |||
WORD m_wCurrentUser; //当前用户 | |||
WORD m_wProvideUser; //供应用户 | |||
BYTE m_cbProvideCard; //供应扑克 | |||
//状态变量 | |||
private: | |||
bool m_bSendStatus; //发牌状态 | |||
bool m_bGangStatus; //癞子杠状态,表示当时出牌是癞子,杠胡癞油 | |||
WORD m_wDianGangUser; //点杠用户(如果是自己,表示暗杠,他人表示点杠) | |||
bool m_bGangOutStatus; //杠后炮,没用 | |||
bool m_bEnjoinChiHu[GAME_PLAYER]; //禁止吃胡,没用 | |||
bool m_bEnjoinChiPeng[GAME_PLAYER]; //禁止吃碰,没用 | |||
//用户状态 | |||
private: | |||
bool m_bResponse[GAME_PLAYER]; //响应标志 | |||
INT m_cbUserAction[GAME_PLAYER]; //用户动作 | |||
BYTE m_cbOperateCard[GAME_PLAYER]; //操作扑克 | |||
INT m_cbPerformAction[GAME_PLAYER]; //执行动作 | |||
//组合扑克 | |||
private: | |||
BYTE m_cbWeaveItemCount[GAME_PLAYER]; //组合数目 | |||
tagWeaveItem m_WeaveItemArray[GAME_PLAYER][MAX_WEAVE];//组合扑克 | |||
//结束信息 | |||
private: | |||
BYTE m_cbChiHuCard; //吃胡扑克 | |||
DWORD m_dwChiHuKind[GAME_PLAYER]; //吃胡结果 | |||
//std::vector<tagChihu> m_ChiHuRight[GAME_PLAYER]; //血战到底需要记录下每个用户胡牌的类型,但是癞油不需要,胡牌就结束 | |||
WORD m_wProvider[GAME_PLAYER]; // | |||
//组件变量 | |||
private: | |||
CGameLogic m_GameLogic; //游戏逻辑 | |||
ITableFrame * m_pITableFrame; //框架接口 | |||
const tagGameServiceOption * m_pGameServiceOption; //配置参数 | |||
bool m_bReplayRecordStart; //是否开始录像 | |||
std::vector<GameRecordPacket> m_UserReplayRecord; //对四个位置用户的数据的记录,用于回放。 | |||
//bool m_bReduceBean; //是否已扣房卡(游戏豆) | |||
LONGLONG m_lUserTmpScore[GAME_PLAYER]; | |||
//INT m_lZimo[GAME_PLAYER]; //累计自摸次数 | |||
//LONG m_lFangPao[GAME_PLAYER]; //累计放炮次数 | |||
//LONG m_lDianPao[GAME_PLAYER]; //累计点炮次数 | |||
//LONG m_lMingGang[GAME_PLAYER]; //累计明杠次数 | |||
//LONG m_lAnGang[GAME_PLAYER]; //累计暗杠次数 | |||
//LONG m_lChaDaJiao[GAME_PLAYER]; //累计查大叫 | |||
//函数定义 | |||
public: | |||
//构造函数 | |||
CTableFrameSink(); | |||
//析构函数 | |||
virtual ~CTableFrameSink(); | |||
//void ReduceBean(); | |||
//bool IsCanOutCard(); //是否可以出牌 | |||
//基础接口 | |||
public: | |||
//释放对象 | |||
virtual VOID Release() { delete this; } | |||
//接口查询 | |||
virtual void * QueryInterface(const IID & Guid, DWORD dwQueryVer); | |||
//管理接口 | |||
public: | |||
//初始化 | |||
virtual bool Initialization(IUnknownEx * pIUnknownEx); | |||
//复位桌子 | |||
virtual VOID RepositionSink(); | |||
//查询接口 | |||
public: | |||
virtual void DeletePrivateTable(bool bSendState = false); | |||
virtual bool ConcludeGame(BYTE cbGameStatus, bool bSendState = false) | |||
{ | |||
//结束记录回放数据 | |||
auto dataPair = RepayRecordEnd(); | |||
//结束游戏 | |||
m_pITableFrame->ConcludeGame(cbGameStatus, bSendState); | |||
return true; | |||
} | |||
//查询限额 | |||
virtual SCORE QueryConsumeQuota(IServerUserItem * pIServerUserItem){ return 0; }; | |||
//最少积分 | |||
virtual SCORE QueryLessEnterScore(WORD wChairID, IServerUserItem * pIServerUserItem){ return 0; }; | |||
//查询是否扣服务费 | |||
virtual bool QueryBuckleServiceCharge(WORD wChairID){return true;} | |||
//查询总得分 | |||
virtual int QueryTatolScore(WORD wChairID){ if (wChairID >= GAME_PLAYER || wChairID<0) ASSERT(false); return m_lGameTatolScore[wChairID]; } | |||
//查询癞子数 | |||
virtual int QueryTatolLaiGang(WORD wChairID){ if (wChairID >= GAME_PLAYER || wChairID < 0) ASSERT(false); return m_OutLaiZi[wChairID]; } | |||
//查询是否使用临时积分 | |||
virtual bool QueryUseTemporaryScore() { | |||
return (0!=lstrlen(m_gameConfig.sPrivateTableID)); //私有房间私用临时积分 | |||
} | |||
//比赛接口 | |||
public: | |||
//设置基数 | |||
virtual void SetGameBaseScore(LONG lBaseScore){}; | |||
virtual void SetGameConfig(VOID * pDataBuffer, WORD wDataSize, std::wstring sPrivateRoomId); | |||
//游戏事件 | |||
public: | |||
bool RepayRecordStart(); | |||
bool RepayRecordEnd(); | |||
bool RepayRecord(WORD wChairID, WORD wSubCmdId, void* pData, WORD wSize); | |||
// bool CheckGameConclude(); | |||
public: | |||
//游戏开始 | |||
virtual bool OnEventGameStart(); | |||
//游戏结束 | |||
virtual bool OnEventGameConclude(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason, bool bSendState = false); | |||
//发送场景 | |||
virtual bool OnEventSendGameScene(WORD wChiarID, IServerUserItem * pIServerUserItem, BYTE cbGameStatus, bool bSendSecret); | |||
//事件接口 | |||
public: | |||
//定时器事件 | |||
virtual bool OnTimerMessage(DWORD wTimerID, WPARAM wBindParam); | |||
//数据事件 | |||
virtual bool OnDataBaseMessage(WORD wRequestID, VOID * pData, WORD wDataSize) { return false; } | |||
//积分事件 | |||
virtual bool OnUserScroeNotify(WORD wChairID, IServerUserItem * pIServerUserItem, BYTE cbReason) { return false; } | |||
//网络接口 | |||
public: | |||
//游戏消息处理 | |||
virtual bool OnGameMessage(WORD wSubCmdID, VOID * pDataBuffer, WORD wDataSize, IServerUserItem * pIServerUserItem); | |||
//框架消息处理 | |||
virtual bool OnFrameMessage(WORD wSubCmdID, VOID * pDataBuffer, WORD wDataSize, IServerUserItem * pIServerUserItem); | |||
//用户事件 | |||
public: | |||
//用户断线 | |||
virtual bool OnActionUserOffLine(WORD wChairID,IServerUserItem * pIServerUserItem) { return true; } | |||
//用户重入 需要处理重新发送指令 | |||
virtual bool OnActionUserConnect(WORD wChairID, IServerUserItem * pIServerUserItem); | |||
//用户坐下 | |||
virtual bool OnActionUserSitDown(WORD wChairID,IServerUserItem * pIServerUserItem, bool bLookonUser); | |||
//用户起立 | |||
virtual bool OnActionUserStandUp(WORD wChairID,IServerUserItem * pIServerUserItem, bool bLookonUser); | |||
//用户同意 | |||
virtual bool OnActionUserOnReady(WORD wChairID,IServerUserItem * pIServerUserItem, void * pData, WORD wDataSize) { return true; } | |||
//用户准备 | |||
//virtual bool OnActionUserReading(WORD wChairID); | |||
//游戏中途旁观进入 | |||
virtual bool PerformLookonLogin(IServerUserItem * pIServerUserItem); | |||
//游戏事件 | |||
protected: | |||
//用户出牌 | |||
bool OnUserOutCard(WORD wChairID, BYTE cbCardData); | |||
//用户操作 | |||
bool OnUserOperateCard(WORD wChairID, int cbOperateCode, BYTE cbOperateCard); | |||
//辅助函数 | |||
protected: | |||
bool IsWin(WORD wChairID); | |||
//发送操作 | |||
bool SendOperateNotify(); | |||
//派发扑克 | |||
bool DispatchCardData(WORD wCurrentUser,bool bTail=false,bool bLaiZiGang=false); | |||
//响应判断 | |||
bool EstimateUserRespond(WORD wCenterUser, BYTE cbCenterCard, enEstimatKind EstimatKind); | |||
// | |||
//void ProcessChiHuUser( WORD wChairId,CChiHuRight& chr, bool bGiveUp ); | |||
//获取根数 | |||
int GetGenCount(WORD wChairId, CChiHuRight& chr); | |||
BYTE RemainNum(WORD wChairId, const BYTE m_cbCard,BYTE bIndex); | |||
// | |||
//void FiltrateRight( WORD wChairId,CChiHuRight &chr ); | |||
}; | |||
////////////////////////////////////////////////////////////////////////// | |||
#endif |