亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cbavi.cpp

?? 赤壁之戰的游戲源代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/////////////
//	CBAvi.cpp		:	v0010
//	Written by		:	Li Haijun
//	Compiler		:	Microsoft Visual C++ 4.0 & DirectX
//	Library			:	No .Lib
//	Copyright (C)	:	1997 WayAhead Corporation 
//	v0010			:	Apr.14.1997
/////////////
// to manage the all AVI ( send message , play, stop )
//////////////////////////////////////////////////////////

#include "stdafx.h"

#include "Assert.h"
#include "DDCompo.h"
#include "VCMApi.h"
#include "Mciapi.h"
#include "cbgame.h"
#include "CBData.h"
#include "Tbnbase.h"

#include "cbavi.h"
#include "interfac.h"
#include "DDButton.h"

// to define a global veriable to store the id of current AVI that is playing
extern struct GAME_STRUCT	GAME;
//extern	WAVEDYNAMIC	waveBack;
//////////////////////////////////////
// this is the main palettes in play state
extern	class CDDPalette	pal, palMain;
// get the current cursor
extern class CDDCursor *CURSOR_Get();

extern	MAIN_bMMX;
int		nCurrentVideoID = -1;
int		FACE_AVI_FLAG = TRUE;

// 是否全屏播放AVI, defined in CBMain.cpp
extern BOOL MAIN_AVI_bFullScreen;

extern	BOOL MAIN_InitOthers();
int bMoviePlaying = FALSE;
// 播放AVI
void	FACE_Avi_Play(LPSTR lpszAviFilename, int nCommandState /*=COMMAND_STATE_AVI_MISSION*/ )
{
	FACE_SetProgramState(PROGRAM_STATE_AVI) ;
	// to erase the whole screen to black
	DD_EraseFrontScreen();

//	WriteLogFile( "sound.log","AAAAA\n" );
	if( GAME_nDisk == 0 )
	{
		// stop playing music
		DATA_WAVE_MusicStop();
	}
	// close the sound first
	DS_QuitSound() ;
//	WriteLogFile( "sound.log","BBBBB\n" );

	CDDCursor * pCurrentCursor;
	// to get the current cursor and hide it
	pCurrentCursor = CURSOR_Get();
	if(pCurrentCursor != NULL)
	{
		// to hide current cursor if it is exist
		pCurrentCursor->Show(FALSE);
		// to erase the whole screen to black
		DD_EraseFrontScreen();
	}
	// to set all button's state to disable
	FACE_SetAllButtonState( BUTTON_DISABLE );

	if( FACE_AVI_FLAG == FALSE)
	{
		FACE_SetCommandState( nCommandState );
		PostMessage( hwndGame, MM_MCINOTIFY, 0, 0 );
		return;
	}
//	WriteLogFile( "sound.log","CCCCC\n" );
	if( MAIN_bMMX == TRUE )
	{
		Assert( bMoviePlaying == FALSE );
		MovieInitialize( hwndGame );
		while( MovieFileOpen (hwndGame, lpszAviFilename ) == FALSE )
		{
			// Aug 11, 1997, Liu Gang
			// if no avi, quit
			ErrorMessageNoQuit( hwndGame, 1011, "Insert game CD please!\n" );
//			PostMessage( hwndGame, WM_QUIT, 0, 65535 );
//			return;
		}
		MoviePause( hwndGame );
		MovieSetOptionsBitdepth (hwndGame, ID_OPTIONS_BITDEPTH_CLUT8);
		MovieSetOptionsResolution (hwndGame, ID_OPTIONS_RESOLUTION_ZOOMBY2);
		//MovieSetOptionsResolution (hwndGame, ID_OPTIONS_RESOLUTION_NATIVE);
		MoviePlay ( hwndGame );
		nCurrentVideoID = MovieGetHandle();
		bMoviePlaying = TRUE;
	}
	else
	{
		RECT rect={160, 120, 480, 360 };
		Assert( nCurrentVideoID == -1 );
		nCurrentVideoID = MCI_AVI_Open( hwndGame, lpszAviFilename, &rect );
		while( nCurrentVideoID == -1 )
		{
			// Aug 11, 1997, Liu Gang
			// if no avi, quit
			ErrorMessageNoQuit( hwndGame, 1011, "Insert game CD please!\n" );
//			PostMessage( hwndGame, WM_QUIT, 0, 65535 );
			nCurrentVideoID = MCI_AVI_Open( hwndGame, lpszAviFilename, &rect );
//			return;
		}
		Assert( nCurrentVideoID != -1 );
		if( MAIN_AVI_bFullScreen == TRUE )
			MCI_AVI_Play( hwndGame, nCurrentVideoID, MCI_NOTIFY|MCI_MCIAVI_PLAY_FULLSCREEN );
		else
			MCI_AVI_Play( hwndGame, nCurrentVideoID );
		Sleep(100);
	}

	// CD Audio only, Nov.8.1997
	if( GAME_nDisk != 0 )
	{
		// stop playing music
		DATA_WAVE_MusicStop();
	}
//	WriteLogFile( "sound.log","DDDDD\n" );
	FACE_SetCommandState( nCommandState );

}
//  to play the single fight avi
void	FACE_Avi_Play_Single_Fight( int nCommandState /*=COMMAND_STATE_AVI_MISSION*/ )
{
	// to erase the whole screen to black
	DD_EraseFrontScreen();

//	WriteLogFile( "avi.log","AAAAA\n" );

	if( GAME_nDisk == 0 )
	{
		// stop playing music
		DATA_WAVE_MusicStop();
	}

	// close the sound first
	DS_QuitSound() ;
//	WriteLogFile( "sound.log","BBBBB\n" );

	CDDCursor * pCurrentCursor;
	// to get the current cursor and hide it
	pCurrentCursor = CURSOR_Get();
	if(pCurrentCursor != NULL)
	{
		// to hide current cursor if it is exist
		pCurrentCursor->Show(FALSE);
		// to erase the whole screen to black
		DD_EraseFrontScreen();
	}
	// to set all button's state to disable
	FACE_SetAllButtonState( BUTTON_DISABLE );
	FACE_SetProgramState( PROGRAM_STATE_AVI ) ;
	FACE_SetCommandState( COMMAND_STATE_AVI_SINGLE ) ;

	if( FACE_AVI_FLAG == FALSE )
	{
		FACE_SetCommandState( nCommandState );
		PostMessage( hwndGame, MM_MCINOTIFY, 0, 0 );
		return;
	}

	RECT rect={160, 120, 480, 360 };
	Assert( nCurrentVideoID == -1 );
	char avifile[_MAX_FNAME];
	strcpy( avifile, GAME_strSetupDirectory );
	strcat( avifile, "\\avi\\ldan.avi" );
	nCurrentVideoID = MCI_AVI_Open( hwndGame, avifile, &rect );
	if( nCurrentVideoID == -1 )
	{
		PostMessage( hwndGame, MM_MCINOTIFY, 0, 0 );
		return;
	}
	Assert( nCurrentVideoID != -1 );

	int	random ;
	int Begin, End ;

	random = getrandom(0,17) ;
//	random = 0;

	Begin = 90 * random ;	// every single fight avi include 90 frames
	End = Begin + 90 ;

	char tm[32];
	itoa( random, tm, 10 );
//	MCI_AVI_Play( hwndGame, nCurrentVideoID, MCI_NOTIFY|MCI_MCIAVI_PLAY_FULLSCREEN, Begin, End );
	MCI_AVI_Play( hwndGame, nCurrentVideoID, MCI_NOTIFY, Begin, End );

	// CD Audio only, Nov.8.1997
	if( GAME_nDisk != 0 )
	{
		// stop playing music
		DATA_WAVE_MusicStop();
	}
}

//	to restore the program state and close the avi file when receive the MM_MCINOTIFY
extern BOOL MAIN_bFirst;	// defined in CBMain.cpp
BOOL	FACE_Avi_Close()
{

	if( (FACE_GetCommandState() == COMMAND_STATE_AVI_BEGIN ) ||
		(FACE_GetCommandState() == COMMAND_STATE_AVI_END ) ||
		(FACE_GetCommandState() == COMMAND_STATE_AVI_MISSION ) ||
		(FACE_GetCommandState() == COMMAND_STATE_AVI_REALTIME ) ||
		(FACE_GetCommandState() == COMMAND_STATE_AVI_SINGLE ) ||
		(FACE_GetCommandState() == COMMAND_STATE_AVI_HISTORY ) 
	  )
	{	// 會接收到兩次消息
		// to erase the whole screen to black
		DD_EraseFrontScreen();

		// to do the next thing by the current program state
		int		nCommandState;

		nCommandState = FACE_GetCommandState();
		if( GAME_nDisk != 0 )
		{
			if( MAIN_bMMX == TRUE 
			&& FACE_GetCommandState() != COMMAND_STATE_AVI_SINGLE )
			{
				MovieStop( hwndGame );
			}
			else
			{
				MCI_AVI_Stop( hwndGame, nCurrentVideoID );
			}
			if( nCommandState == COMMAND_STATE_AVI_BEGIN )
			{
				char wavfile[_MAX_FNAME];
				strcpy( wavfile, GAME_strSetupDirectory );
				strcat( wavfile, "\\sound\\Start.wav" );
				DATA_WAVE_MusicPlayS( wavfile );
				strcpy( GAME.strStartWAV, wavfile );
			}
			else if( nCommandState == COMMAND_STATE_AVI_END )
			{
				DATA_WAVE_MusicPlay( GAME.nMusicID );
			}
			else if( nCommandState == COMMAND_STATE_AVI_MISSION )
			{
				DATA_WAVE_MusicPlay( GAME.nMusicID );
			}
			else if( nCommandState == COMMAND_STATE_AVI_REALTIME )
			{
				DATA_WAVE_MusicPlay( GAME.nMusicID );
			}
			else if( nCommandState == COMMAND_STATE_AVI_SINGLE )
			{
				DATA_WAVE_MusicPlay( GAME.nMusicID );
			}
			else if( nCommandState == COMMAND_STATE_AVI_HISTORY )
			{
				char wavfile[_MAX_FNAME];
				strcpy( wavfile, GAME_strSetupDirectory );
				strcat( wavfile, "\\sound\\Start.wav" );
				DATA_WAVE_MusicPlayS( wavfile );
			}
		}


		if( FACE_AVI_FLAG == FALSE )
		{
		}
		else if( MAIN_bMMX == TRUE 
			&& FACE_GetCommandState() != COMMAND_STATE_AVI_SINGLE )
		{
			Assert( bMoviePlaying == TRUE );
			if( GAME_nDisk == 0 )
			{
				MovieStop( hwndGame );
			}
			MovieFileClose( hwndGame );
			MovieTerminate( hwndGame );
			nCurrentVideoID = -1;
			bMoviePlaying = FALSE;
		}
		else
		{
			Assert( nCurrentVideoID != -1 );
			if( GAME_nDisk == 0 )
			{
				MCI_AVI_Stop( hwndGame, nCurrentVideoID );
			}
			MCI_AVI_Close( nCurrentVideoID );
			nCurrentVideoID = -1;
		}

		// to get the sound device 
		DS_InitSound( hwndGame ) ;

		// what are you going to do after play the begin AVI
		if( nCommandState == COMMAND_STATE_AVI_BEGIN )
		{
			DD_EraseFrontScreen();
			MAIN_InitOthers();

			//to play the sound 
			//DATA_WAVE_MusicPlay( GAME.nMusicID );

			if( GAME_nDisk == 0 )
			{
				char wavfile[_MAX_FNAME];
				strcpy( wavfile, GAME_strSetupDirectory );
				strcat( wavfile, "\\sound\\Start.wav" );
				DATA_WAVE_MusicPlayS( wavfile );
				strcpy( GAME.strStartWAV, wavfile );
			}
			
			GAME.nID = 0;
			FACE_SetProgramState( PROGRAM_STATE_PLAY );
			FACE_SetCommandState( COMMAND_STATE_PLAY );
			SendMessage(hwndGame, WM_COMMAND, SHOW_MAIN_MENU, 0);
			// to restore all button's state
			FACE_RestoreAllButtonState();
		}
		// what are you going to do after play the end AVI
		else if( nCommandState == COMMAND_STATE_AVI_END )
		{
			//to play the sound 
			if( GAME_nDisk == 0 )
			{
				DATA_WAVE_MusicPlay( GAME.nMusicID );
			}
			//DATA_WAVE_MusicPlay(0) ;
//			WriteLogFile( "sound.log","IIIII\n" );
			// to restore all button's state
			FACE_RestoreAllButtonState();
		}
		// what are you going to do after play the mission AVI
		else if( nCommandState == COMMAND_STATE_AVI_MISSION )
		{
			// to restore the palette
			palMain.ReloadPalette();
			//--fade in
			DD_FadeClear( palMain.GetPalette() );
			palMain.SetPalette();
			//--fade in

			// to get current cursor and show it
			CURSOR_Get()->Show(TRUE);
//			FACE_SetProgramState( FACE_GetPreProgramState() );
			FACE_SetProgramState( PROGRAM_STATE_PLAY );
			FACE_SetCommandState( COMMAND_STATE_MENU );

			//to play the sound 
			if( GAME_nDisk == 0 )
			{
				DATA_WAVE_MusicPlay( GAME.nMusicID );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷精品大在线视频| 欧美区视频在线观看| 五月天中文字幕一区二区| 17c精品麻豆一区二区免费| 精品国产乱码久久| 日韩一区二区麻豆国产| 精品日韩成人av| 久久久久国色av免费看影院| 久久综合九色综合97婷婷女人| 欧美v日韩v国产v| 久久九九久精品国产免费直播| 精品91自产拍在线观看一区| 波多野结衣在线一区| 色综合久久天天| 国产日韩亚洲欧美综合| 日韩av成人高清| 日本一区二区免费在线观看视频| 国产精品素人视频| 亚洲一区二区三区自拍| 男男gaygay亚洲| 国产成a人亚洲精品| 91一区在线观看| 欧美一卡二卡在线观看| 久久麻豆一区二区| 亚洲人成在线播放网站岛国| 午夜精品爽啪视频| 国产成人精品亚洲777人妖| 色综合天天性综合| 日韩视频在线永久播放| 国产精品久久国产精麻豆99网站 | 在线视频你懂得一区| 欧美色老头old∨ideo| 精品入口麻豆88视频| 日韩美女啊v在线免费观看| 三级久久三级久久| 成人黄色小视频| 678五月天丁香亚洲综合网| 中文字幕va一区二区三区| 一区二区三区国产精品| 国产一区在线观看麻豆| 色综合久久久久综合体| 国产亚洲欧美日韩在线一区| 亚洲国产精品久久久男人的天堂| 国产精品一二三四区| 欧美视频日韩视频在线观看| 久久精品人人做人人综合| 午夜一区二区三区在线观看| 成人黄色在线视频| 精品国精品国产尤物美女| 夜夜嗨av一区二区三区| 成人手机电影网| 久久午夜免费电影| 天天综合天天综合色| 91麻豆国产香蕉久久精品| xfplay精品久久| 天堂久久一区二区三区| 91电影在线观看| 亚洲图片欧美激情| 成人99免费视频| 国产日韩av一区| 国内精品免费**视频| 欧美福利视频一区| 一二三区精品福利视频| 色综合色综合色综合色综合色综合 | 久久se这里有精品| 欧美日韩在线免费视频| 亚洲影视资源网| 色综合久久久久综合体桃花网| 国产精品视频第一区| 成人性生交大合| 中文字幕第一区二区| 国产精品白丝jk黑袜喷水| 欧美成人女星排名| 久久精品国产精品亚洲红杏| 欧美一区二区三区日韩| 婷婷六月综合亚洲| 欧美一级视频精品观看| 视频在线观看国产精品| 欧美狂野另类xxxxoooo| 日韩中文字幕不卡| 日韩一级片网址| 国产一区二区三区免费| 久久久美女毛片| 成人理论电影网| 一区二区在线观看不卡| 91福利精品第一导航| 亚洲国产aⅴ天堂久久| 欧美日韩国产另类不卡| 久久精品av麻豆的观看方式| 欧美一区二区三区思思人| 久久aⅴ国产欧美74aaa| 精品电影一区二区| 成人午夜视频在线| 玉米视频成人免费看| 欧美日韩中字一区| 久久国产精品免费| 中文字幕第一区第二区| 欧美视频在线一区二区三区| 日韩电影在线免费观看| 久久综合狠狠综合| 91行情网站电视在线观看高清版| 亚洲电影视频在线| 久久久久久久av麻豆果冻| 色视频欧美一区二区三区| 日本成人在线视频网站| 久久久www免费人成精品| 国产成人av电影在线| 亚洲国产成人高清精品| 久久香蕉国产线看观看99| 色综合久久中文综合久久97| 美日韩黄色大片| 亚洲精品中文在线影院| 精品免费日韩av| 欧美在线免费观看亚洲| 国产一区999| 手机精品视频在线观看| 自拍偷拍亚洲综合| 欧美不卡一二三| 色婷婷国产精品综合在线观看| 国产中文字幕精品| 亚洲成人免费视频| 欧美国产综合色视频| 7777精品伊人久久久大香线蕉经典版下载 | 99在线精品观看| 国产永久精品大片wwwapp | 亚洲美女一区二区三区| 成人禁用看黄a在线| 亚洲欧美成aⅴ人在线观看| 欧美成人猛片aaaaaaa| 欧美日韩亚洲高清一区二区| 粉嫩欧美一区二区三区高清影视 | 一区二区三区四区国产精品| 亚洲精品在线一区二区| 91精品一区二区三区在线观看| caoporm超碰国产精品| 国产综合久久久久影院| 日韩av电影免费观看高清完整版在线观看 | 欧美精品在线一区二区三区| a亚洲天堂av| 成人avav影音| 国产成人精品亚洲午夜麻豆| 麻豆精品视频在线| 精久久久久久久久久久| 免费观看久久久4p| 秋霞电影网一区二区| 天天操天天综合网| 亚洲国产成人av好男人在线观看| 一区二区三区小说| 一区二区三区鲁丝不卡| 亚洲欧美电影一区二区| 亚洲精品视频一区二区| 亚洲综合在线视频| 亚洲一区二区成人在线观看| 一区二区三区美女视频| 一区二区三区精品在线| 一区二区三区免费看视频| 一区二区三区免费观看| 午夜激情一区二区三区| 美女尤物国产一区| 国产一区三区三区| 波多野结衣中文字幕一区二区三区| av男人天堂一区| 91久久一区二区| 欧美一区二区久久| 国产三级精品在线| 自拍偷拍亚洲激情| 日韩精品成人一区二区在线| 免费观看30秒视频久久| 国产老妇另类xxxxx| 成人99免费视频| 欧美亚洲动漫精品| 日韩欧美一区二区三区在线| 精品sm在线观看| 国产精品五月天| 亚洲色图视频网站| 日韩成人免费看| 成熟亚洲日本毛茸茸凸凹| 99久久亚洲一区二区三区青草| 欧美亚洲愉拍一区二区| 日韩精品一区国产麻豆| 日本一区二区三区免费乱视频| 亚洲精品videosex极品| 秋霞午夜av一区二区三区| 风间由美一区二区三区在线观看 | 成人美女在线观看| 欧美午夜精品免费| 久久综合五月天婷婷伊人| 亚洲欧美中日韩| 日韩av在线播放中文字幕| 国产东北露脸精品视频| 欧美午夜精品久久久| 久久精品视频在线看| 性做久久久久久久久| 国产精品99久久久| 欧美疯狂性受xxxxx喷水图片| 国产日本一区二区| 日韩av电影免费观看高清完整版在线观看| 国产精品一区二区男女羞羞无遮挡 | 99国产精品久久久久久久久久| 中文字幕av一区二区三区|