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

📄 cbmain.cpp

📁 赤壁之战的游戏源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
		else if( FACE_GetProgramState() == PROGRAM_STATE_NONE 
			&& MAIN_bEnding == TRUE )
		{
			// game ending
			GAME_EndingEx( -2 );
			MAIN_bFirst = TRUE;
			break;
		}

		// 调试开关
		// July 18. 1997
        switch( wParam )
        {
/*
		case	VK_F1:
			GAME_EndingEx( 0 );
			MAIN_bFirst = TRUE;
			break;
*/
		case	VK_F2:
			if( CHEAT_bEnable == TRUE )
			{
				RUN_bAUTO = 1-RUN_bAUTO;
			}
			break;

		case VK_F3:
			// 当前将领降一级
			if( CHEAT_bEnable == TRUE 
				&& GAME_bNetwork == FALSE )
			{
				CTRL_DebugGeneral(0);
			}
			break;

		case VK_F4:
			// 当前将领升一级
			if( CHEAT_bEnable == TRUE 
				&& GAME_bNetwork == FALSE )
			{
				CTRL_DebugGeneral(1);
			}
			break;

        case VK_F5:
			// 显示刷新率
			if( CHEAT_bEnable == TRUE )
			{
				static BOOL bShowFrameCount=TRUE;
				DDC_ShowFrameRate( bShowFrameCount );
				bShowFrameCount = !bShowFrameCount;
				DRAW_bShowScrollBorder = !DRAW_bShowScrollBorder;
			}
            break;

		case	VK_F6:
			// 调试显示所有命令组
			if( CHEAT_bEnable == TRUE )
			{
				CTRL_bDebugCommand = 1-CTRL_bDebugCommand;
			}
			break;

		case	VK_F7:
			// 调试不死
			// July.17.1997
			if( CHEAT_bEnable == TRUE 
				&& GAME_bNetwork == FALSE )
			{
				CTRL_bDebugDie = 1-CTRL_bDebugDie;
			}
			break;

		case	VK_F8:
			// 调试打开阴影
			// enable or disable shadow
			if( CHEAT_bEnable == TRUE )
			{
				SHADOW_Enable( 1-SHADOW_IfEnabled() );
			}
			break;
		case	VK_F9:
			// 调试加钱
			if( CHEAT_bEnable == TRUE 
				&& GAME_bNetwork == FALSE )
			{
				GAME.Players[GAME.nMe].nGold+=10000;
				GAME.Players[GAME.nMe].nFood+=10000;
				GAME.Players[GAME.nMe].nWood+=10000;
				GAME.Players[GAME.nMe].nIron+=10000;
				GFWI_bUpdate = TRUE;
			}
			break;
		case	VK_F11:
			// 拷贝当前屏幕
			DRAW_CopyScreen();
			break;
/*        case VK_F12:
			if( CHEAT_bEnable )
			{
				RUN_DEBUG_bEndGame = 1 - RUN_DEBUG_bEndGame;
			}
            break;		
*/

        case VK_ESCAPE:
			{
				FACE_EscKey(FALSE) ;
			}
			break;
		case	VK_PAUSE:
			{
				if( (FACE_GetCommandState() == COMMAND_STATE_PLAY)||
					(FACE_GetCommandState() == COMMAND_STATE_PAUSE)
				  )
					PostMessage(hwndGame, WM_COMMAND, BUTTON_PAUSE, 0);
			}
			break;
/*		case	VK_ADD:
			{
			GAME.nSpeed += 5;
			char tmp[129];
			itoa( GAME.nSpeed, tmp, 10 );
			OutputDebugString( tmp );
			OutputDebugString( "\t" );
			}
			break;
		case	VK_SUBTRACT:
			{
			if( GAME.nSpeed <= 0 )	break;
			GAME.nSpeed -= 5;
			char tmp[129];
			itoa( GAME.nSpeed, tmp, 10 );
			OutputDebugString( tmp );
			OutputDebugString( "\t" );
			}
			break;		*/
//------LHJ-------------------------------
		case VK_RETURN:
			{
				FACE_EscKey(TRUE) ;

				if( FACE_GetCommandState() == COMMAND_STATE_PLAY )
				{
					if( FACE_bMessageBox == FALSE )
					{
						FACE_bMessageBox = TRUE;
						FACE_SetMessage();
						FACE_Echo_prompt(hWnd);
					}
					else
					{
						FACE_bMessageBox = FALSE;
						FACE_UpdateMessageRect();
					}
				}
			}
			break;

		default:
			break;
//----LHJ---------------------------------
        }
        break;

//------------

    case WM_SYSKEYDOWN:
		{
			switch( wParam )
			{
			case	VK_F10:
				{
					PostMessage(hwndGame, WM_COMMAND, BUTTON_SYSTEMENU, 0);
				}
				break;
			default:
				break;
			}
		}
		break;

	////////////////////////////////////////////////////////
	//	to end the mession of a section or all of this game
	////////////////////////////////////////////////////////
	case WM_GAME_END :
		{
			if( DD_nSurfaceCounter != 210 )
				OutputDebugString("");
			class CDDPalette	pal;
			if( GAME.nID == 16 && lParam == -1 )
			{	// 刘备方胜利结束,调试
  				DD_FadeOutScreen( 5, 10 );
				DD_EraseFrontScreen();
				//FACE_ShowABitmapPicture( PICTURE_END );
				//DD_EraseFrontScreen();
				//pal.LoadPalettePAL( "res\\ending.pal", TRUE );
				//pal.LoadPalettePAL( "res\\end.pal", TRUE );
				GAME_EndingEx( 0 );
				MAIN_bEnding = TRUE;
				MAIN_bFirst = TRUE;
				//DS_QuitSound();
		        //DD_QuitGraph();
				//PostQuitMessage( 3 );
				//PostMessage( hWnd, WM_CLOSE, 0, 0 );
				break;
			}
			if( (GAME.nID == 16 || GAME.nID == 15) && lParam == 1 )
			{	// 刘备方胜利结束
  				DD_FadeOutScreen( 5, 10 );
				DD_EraseFrontScreen();
				//FACE_ShowABitmapPicture( PICTURE_END );
				//DD_EraseFrontScreen();
				//DS_QuitSound();
		        //DD_QuitGraph();
				//pal.LoadPalettePAL( "res\\end.pal", TRUE );
				if( GAME.nID == 15 )
					GAME_EndingEx( 0 );
				else
					GAME_EndingEx( 1 );
				MAIN_bEnding = TRUE;
				MAIN_bFirst = TRUE;
				//PostQuitMessage( 4 );
				//PostMessage( hWnd, WM_CLOSE, 0, 0 );
				break;
			}
			if( GAME.nID == 33 && lParam == -1 )
			{	// 曹操方胜利结束,调试
  				DD_FadeOutScreen( 5, 10 );
				DD_EraseFrontScreen();
				//FACE_ShowABitmapPicture( PICTURE_END );
				//DD_EraseFrontScreen();
				//pal.LoadPalettePAL( "res\\end.pal", TRUE );
				GAME_EndingEx( 3 );
				MAIN_bEnding = TRUE;
				MAIN_bFirst = TRUE;
				//DS_QuitSound();
		        //DD_QuitGraph();
				//PostQuitMessage( 5 );
				//PostMessage( hWnd, WM_CLOSE, 0, 0 );
				break;
			}
			if( (GAME.nID == 33 || GAME.nID == 31) && lParam == 1 )
			{	// 曹操方胜利结束
  				DD_FadeOutScreen( 5, 10 );
				DD_EraseFrontScreen();
				//FACE_ShowABitmapPicture( PICTURE_END );
				//DD_EraseFrontScreen();
				//DS_QuitSound();
		        //DD_QuitGraph();
				//pal.LoadPalettePAL( "res\\end.pal", TRUE );
				if( GAME.nID == 31 )
					GAME_EndingEx( 2 );
				else
					GAME_EndingEx( 3 );
				MAIN_bEnding = TRUE;
				MAIN_bFirst = TRUE;
				//PostQuitMessage( 2 );
				//PostMessage( hWnd, WM_CLOSE, 0, 0 );
				break;
			}
			if( GAME.nID == 0 && lParam == -2 )
			{	// 减少到0关
				FACE_SetCommandState( COMMAND_STATE_PLAY );
				break;
			}
			if( GAME.nID == 17 && lParam == -2 )
			{	// 减少到0关
				FACE_SetCommandState( COMMAND_STATE_PLAY );
				break;
			}

			if( lParam == 1 )
			{	// 胜利
  				DD_FadeOutScreen( 5, 10 );
				// 刘备方两个分支
				if( GAME.nID == 5 || GAME.nID == 14 
					|| GAME.nID == 6 || GAME.nID == 15 )
				{
					PostMessage(hwndGame, WM_COMMAND, NEW_MESSION, wParam+2 );
				}
				// 曹操方一个分支
				else if( GAME.nID == 29 )
				{
					PostMessage(hwndGame, WM_COMMAND, NEW_MESSION, wParam+3 );
				}
				// 其它
				else 
				{
					PostMessage(hwndGame, WM_COMMAND, NEW_MESSION, wParam+1 );
				}
				GAME_SetGenInfo( GAME_nSlot );
			}
			else if( lParam == 2 )
			{
				// 分支的结束,汇合
				Assert( GAME.nID == 5 || GAME.nID == 14 || GAME.nID == 29 );
				PostMessage(hwndGame, WM_COMMAND, NEW_MESSION, wParam+1 );
				GAME_SetGenInfo( GAME_nSlot );
			}
			else if( lParam == 0 )
			{	// 失败
				DD_FadeOutScreen( 5, 10 );
				// to show the fail picture
				FACE_ShowABitmapPicture( PICTURE_FAIL ) ;	// flag -> to indentify which bitmap picture to show
//				PostMessage(hwndGame, WM_COMMAND, BUTTON_SYSTEMENU_EXIT_TOMAINMENU, NONE );
				PostMessage(hwndGame, WM_COMMAND, NEW_MESSION, wParam );
			}
			else if( lParam == -1 )
			{	// 调试,下一关
  				DD_FadeOutScreen( 5, 10 );
				GAME_SetGenInfo( GAME_nSlot );
				PostMessage(hwndGame, WM_COMMAND, NEW_MESSION, wParam+1 );
			}
			else if( lParam == -2 )
			{	// 调试,上一关
  				DD_FadeOutScreen( 5, 10 );
				PostMessage(hwndGame, WM_COMMAND, NEW_MESSION, wParam-1 );
			}
		}
		break;

	case WM_COMMAND:
		{
			char	message[50];
			wsprintf(message,"Get number %d", wParam);
		//	MessageBox(hwndGame,message,NULL,MB_OK);
			FACE_ButtonCommand( hWnd, wParam, lParam );

			if( wParam == ESTABLISH_UNIT )
			{
				int tmp1=0;
				int tmp2 =0;

				tmp1 = wParam;
				tmp2 = lParam;
				char mes[50];
				sprintf(mes, " nID -> %d, COMMAND -> %d.\n", tmp2, tmp1);
//				MessageBox(hwndGame, mes, NULL, MB_OK);
			}
			// Liu
			if( FACE_GetCommandState() == COMMAND_STATE_PLAY )
			{
				if( CTRL_TASK_AssembleCmd( wParam, lParam ) == FALSE )
					CTRL_TASK_NumberButton( wParam, lParam );
			}
		}
		break;
	case WM_MOUSEMOVE:
		{	
			static int xPosSave=0, yPosSave=0;
			UINT	fwKeys = wParam;
			int		xPos = LOWORD(lParam);
			int		yPos = HIWORD(lParam);
			if( xPosSave == xPos && yPosSave == yPos )
			{
				OutputDebugString( "S" );
				break;
			}
			// LHJ. Oct.31.1996
			FACE_MouseMove(wParam, xPos, yPos);
			// LHJ

			// Liu
			if( FACE_GetCommandState() == COMMAND_STATE_PLAY )
			{	// 在整个屏幕范围内
				MOUSE_IsLeftDown( xPos, yPos );
			}
		}
		//return TRUE;
		break;
		
	case WM_LBUTTONDOWN:
		{
			UINT	fwKeys = wParam;
			int		xPos = LOWORD(lParam);
			int		yPos = HIWORD(lParam);
			
			if(FACE_GetProgramState() == PROGRAM_STATE_AVI)
			{
				if(FACE_Avi_Close() == TRUE)
					break;
			}
			if( FACE_GetCommandState() == COMMAND_STATE_PLAY )
			{
				if( DRAW_rcClient.left < xPos &&
					DRAW_rcClient.top < yPos &&
					DRAW_rcClient.right >= xPos &&
					DRAW_rcClient.bottom >= yPos )
				{	// 客户区以内
					// Liu
					if( CTRL_TASK_AssembleDest( xPos, yPos ) == FALSE )
						MOUSE_LeftDown( xPos, yPos );
				}
				else
					DRAW_JumpScreen( MOUSE_InMiniMap( xPos, yPos ) );
			}
			if( FACE_GetCommandState() != COMMAND_STATE_NONE )
			{
				// LHJ.Oct.31.1996
				FACE_LeftButtonDown(xPos, yPos);
				// LHJ
			}
		}
		break;
	case WM_LBUTTONUP:
		{
			UINT	fwKeys = wParam;
			int		xPos = LOWORD(lParam);
			int		yPos = HIWORD(lParam);

			// LHJ.Oct.31.1996
			FACE_LeftButtonUp(xPos, yPos);
			// LHJ

			// Liu 
			if( FACE_GetCommandState() == COMMAND_STATE_PLAY )
			{	// 一定在客户区以内
				if( CTRL_TASK_AssembleSrc( &MOUSE_LeftUp( xPos, yPos ), wParam ) )
				{
					//OutputString( MOUSE_nHitCounter, "\n" );
				}
			}
		}
		break;
	case WM_LBUTTONDBLCLK:
		{
			UINT	fwKeys = wParam;
			int		xPos = LOWORD(lParam);
			int		yPos = HIWORD(lParam);
			
//			if( xPos>470 )
			if( FACE_GetCommandState() != COMMAND_STATE_NONE )
			{
				FACE_LeftButtonDoubleClick(fwKeys, xPos, yPos);
			}
		}
		break;
//------------
	
	case WM_RBUTTONDOWN:
		{
			UINT	fwKeys = wParam;

⌨️ 快捷键说明

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