Esempio n. 1
0
HRESULT LoadTextureFromRes( 
	LPDIRECT3DDEVICE9 pDevice,
	LPCTSTR pFileName,
	UINT Width,
	UINT Height,
	UINT MipLevels,
	DWORD Usage,
	D3DFORMAT Format,
	D3DPOOL Pool,
	DWORD Filter,
	DWORD MipFilter,
	D3DCOLOR ColorKey,
	D3DXIMAGE_INFO *pSrcInfo,
	PALETTEENTRY *pPalette,
	LPDIRECT3DTEXTURE9 *ppTexture
	)
{
	HRESULT hr = E_FAIL;
	CResFile file;
	if( file.Open( pFileName, "rb" ) == FALSE )
	{
		LPCTSTR szErr = Error( "::LoadTextureFromRes : %s not found", pFileName );
		ADDERRORMSG( szErr );
		return E_FAIL;
	}
	
	int nSrcDataSize = file.GetLength();
	LPBYTE pSrcData = new BYTE[ nSrcDataSize ];
	if( file.Read( pSrcData, nSrcDataSize ) >= 1 )
	{
		hr = D3DXCreateTextureFromFileInMemoryEx( pDevice,
			   pSrcData, nSrcDataSize, Width, Height, MipLevels, Usage, Format, Pool, Filter, MipFilter, ColorKey, pSrcInfo, pPalette, ppTexture );
		if( FAILED( hr ) )
		{
			LPCTSTR szErr = Error( "D3DXCreateTextureFromFileInMemoryEx %s %s", pFileName, DXGetErrorString9( hr ) );
			ADDERRORMSG( szErr );
		}
	}
	SAFE_DELETE_ARRAY( pSrcData );
	return hr;
}
Esempio n. 2
0
void CWndCredit::OnInitialUpdate() 
{ 
	CWndNeuz::OnInitialUpdate(); 
	
	// 모래시계로 커서 변경
	SetMouseCursor( CUR_DELAY );
	// 여기에 코딩하세요
	{
		CResFile file; 

		CString strfile;
#ifdef __FOR_PROLOGUE_UPDATE
		if( ::GetLanguage() != LANG_KOR )
			strfile = MakePath( "Theme\\", ::GetLanguage(), _T( "Openning.inc" ) );
#else //__FOR_PROLOGUE_UPDATE		
		if( ::GetLanguage() == LANG_JAP )
			strfile = "Theme\\Japanese\\Openning.inc";
#endif //__FOR_PROLOGUE_UPDATE
		else
			strfile = "credit.txt";
		
		if( file.Open( strfile.GetBuffer(0), "rb" ) )
		{
			int nLength = file.GetLength();
			TCHAR* pChar = new TCHAR[ nLength + 1];
			file.Read( pChar, nLength );
			pChar[ nLength ] = 0;
			TCHAR* prog = pChar;
			m_strArray.RemoveAll();
		//	while( ( *prog > 0 && *prog <= 0x20 ) && *prog ) 
		//		prog++;
			while( *prog != '\0' )
			{
				TCHAR szString[ 256 ];
				TCHAR* temp = szString;
				while( *prog && ( *prog > 0 && *prog <= 0x20 ) && *prog != '\r' && *prog != '\0' ) 
					prog++;
				while( *prog!='\r' && *prog!='\0' ) 
					*temp++ = *prog++;
				if( *prog == '\r')
					prog++; // skim comma
				// white space를 스킵
				if( temp != szString )
				{
					temp--;
					while( ( *temp > 0 && *temp <= 0x20 ) && *temp ) 
						temp--;
					temp++;
				}
				*temp = '\0';

				m_strArray.Add( szString );

			}
			safe_delete( pChar );
		}
	}
	m_timerScreenShot.Set( SEC( 10 ) );

	if( ::GetLanguage() == LANG_JAP )
	{
		int i; for( i = 0; i < MAX_SCREENSHOT_JAP; i++ )
		{
			CString string;
			string.Format( "shotCredit%02d.dds", i );
			//string = "shotCredit20.dds";
			
			m_aTexScreenShot[ i ].LoadTexture( m_pApp->m_pd3dDevice, MakePath( "Theme\\Japanese\\", string ), 0xffff00ff );
			
			m_aTexScreenShot[ i ].m_size = CSize( 598 + 76, 337 );
		}
	}
	else
	{
		int i; for( i = 0; i < MAX_SCREENSHOT; i++ )
		{
			CString string;
			string.Format( "shotCredit%02d.dds", i );
			//string = "shotCredit20.dds";
			
			m_aTexScreenShot[ i ].LoadTexture( m_pApp->m_pd3dDevice, MakePath( "Theme\\", string ), 0xffff00ff );
			
			m_aTexScreenShot[ i ].m_size = CSize( 598 + 76, 337 );
		}
	}
		
	//LoadScreenShot();

	//m_pFont->RestoreDeviceObjects();//>InvalidateDeviceObjects();
	//m_mapFont.SetAt( _T( "Arial Black9"), pFont );
	// 윈도를 중앙으로 옮기는 부분.
	CRect rectRoot = m_pWndRoot->GetLayoutRect();
	CRect rectWindow = GetWindowRect();
	CPoint point( rectRoot.right - rectWindow.Width(), 110 );
	Move( point );
	MoveParentCenter();

	if( ::GetLanguage() == LANG_JAP )
	{
		CString filename = MakePath( DIR_SOUND, "VocThePrologue.WAV" );
		g_SoundMng.Play( filename.GetBuffer(0), NULL, NULL, FALSE );
		m_pSound = g_SoundMng.GetSound( filename.GetBuffer(0) );
		m_fOldMusicVolume = GetVolume();
		
		if(m_fOldMusicVolume && m_fOldMusicVolume >= 0.04f)
			SetVolume(0.04f);

		m_Starttimer.Set( SEC( 9 ) );
		m_bPlayVoice = FALSE;
	}
}