Ejemplo n.º 1
0
/**-----------------------------------------------------------------------------
 * 애니메이션 설정
 *------------------------------------------------------------------------------
 */
VOID Animate()
{
	D3DXMATRIXA16	matX;
	D3DXMATRIXA16	matY;

	D3DXMatrixRotationX( &matX, g_xRot );
	D3DXMatrixRotationY( &matY, g_yRot );
	g_matWorld = matX * matY;
	g_pd3dDevice->SetTransform( D3DTS_WORLD, &g_matWorld ); /// 디바이스에 월드행렬 설정
	g_pd3dDevice->SetTransform( D3DTS_VIEW, &g_matView );
	g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &g_matProj );
	SetupLights();
	SetupFX();
	LogFPS();						// 로깅
}
Ejemplo n.º 2
0
void CClientExplosionSFX::HandleTrigger(HOBJECT hSender, HMESSAGEREAD hRead)
{
	CServerDE* pServerDE = GetServerDE();
	if(!pServerDE) return;

	HSTRING hMsg = pServerDE->ReadFromMessageHString(hRead);
	if(!hMsg) return;

	HSTRING hstr = pServerDE->CreateString("TRIGGER");
	if(pServerDE->CompareStringsUpper(hMsg, hstr))
	{
		SetupFX();
		m_bTriggered = 1;
	}
	pServerDE->FreeString(hMsg);
	pServerDE->FreeString(hstr);
}
Ejemplo n.º 3
0
void DDModel::DrawMesh()
{
	if ( !m_MeshInfo )
		return;


	LPDIRECT3DDEVICE9 pD3DDevice = DDRenderer::GetInstance()->GetDevice();

	if ( m_UseShader )
	{
		SetupFX();
		UINT nPass;
		//pD3DDevice->SetVertexDeclaration( m_pDecl );
		//LPDIRECT3DVERTEXBUFFER9* pVB = nullptr;
		//m_MeshInfo->m_pMesh->GetVertexBuffer(pVB);
		//pD3DDevice->SetStreamSource( 0, *pVB, 0, sizeof( **pVB ) );

		//m_pEffect->SetTechnique( "RenderRimLight" );
		m_pEffect->Begin( &nPass, NULL );

		for ( unsigned int i = 0; i < nPass; ++i )
		{
			m_pEffect->BeginPass( i );
			for ( DWORD j = 0; j < m_MeshInfo->m_dwNumMaterials; ++j )
			{
				pD3DDevice->SetMaterial( &m_MeshInfo->m_pMeshMaterials[j] );
				pD3DDevice->SetTexture( 0, m_MeshInfo->m_pMeshTexture[j] );
				m_MeshInfo->m_pMesh->DrawSubset( j );
			}
			m_pEffect->EndPass();
		}

		m_pEffect->End();
	}
	else
	{
		for ( DWORD i = 0; i < m_MeshInfo->m_dwNumMaterials; ++i )
		{
			pD3DDevice->SetMaterial( &m_MeshInfo->m_pMeshMaterials[i] );
			pD3DDevice->SetTexture( 0, m_MeshInfo->m_pMeshTexture[i] );
			m_MeshInfo->m_pMesh->DrawSubset( i );
		}
	}
}
Ejemplo n.º 4
0
DDWORD CClientParticleStreamSFX::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData)
{
	CServerDE* pServerDE = GetServerDE();
	if (!pServerDE) return 0;

	switch(messageID)
	{
		case MID_PRECREATE:
		{
			// Only read properties if object was created from a world file.
			if (fData == PRECREATE_WORLDFILE)
			{
				ReadProp((ObjectCreateStruct*)pData);
			}
			break;
		}

		case MID_INITIALUPDATE:
		{
			if (fData != INITIALUPDATE_SAVEGAME)
			{
				pServerDE->SetNextUpdate(m_hObject, 0.0f);

				DDWORD dwFlags = g_pServerDE->GetObjectFlags(m_hObject);
				dwFlags &= ~FLAG_GRAVITY;
				dwFlags |= FLAG_FORCECLIENTUPDATE;
				g_pServerDE->SetObjectFlags(m_hObject, dwFlags);

				DDWORD dwUsrFlags = g_pServerDE->GetObjectUserFlags(m_hObject);

				dwUsrFlags |= USRFLG_SAVEABLE;

				if(bOn)		dwUsrFlags |= USRFLG_VISIBLE;
					else	dwUsrFlags &= ~USRFLG_VISIBLE;
				pServerDE->SetObjectUserFlags(m_hObject, dwUsrFlags);
 
				SetupFX();
			}

			CacheFiles();
			break;
		}
/* No updates necessary for this object, since it the flags can be set by the trigger fn.
   GK 8/20/98
		case MID_UPDATE:
		{
			DDWORD dwUsrFlags = g_pServerDE->GetObjectUserFlags(m_hObject);
			if(bOn)		dwUsrFlags |= USRFLG_VISIBLE;
				else	dwUsrFlags &= ~USRFLG_VISIBLE;
			pServerDE->SetObjectUserFlags(m_hObject, dwUsrFlags);

			pServerDE->SetNextUpdate(m_hObject, 0.1f);
		    if(!pServerDE) pServerDE->RemoveObject(m_hObject);
			break;
		}
*/
		case MID_SAVEOBJECT:
		{
			Save((HMESSAGEWRITE)pData, (DDWORD)fData);
		}
		break;

		case MID_LOADOBJECT:
		{
			Load((HMESSAGEREAD)pData, (DDWORD)fData);
		}
		break;

		default : break;
	}

	return CClientSFX::EngineMessageFn(messageID, pData, fData);
}
Ejemplo n.º 5
0
DDWORD CClientWarpGateSFX::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData)
{
	CServerDE* pServerDE = GetServerDE();
	if (!pServerDE) return 0;

	switch(messageID)
	{
		case MID_PRECREATE:
		{
			if (fData == PRECREATE_WORLDFILE)	// [blg]
			{
				ReadProp((ObjectCreateStruct*)pData);
			}
			break;
		}

		case MID_INITIALUPDATE:
		{
			pServerDE->SetNextUpdate(m_hObject, 1.0f);

			DDWORD dwFlags = g_pServerDE->GetObjectFlags(m_hObject);
			dwFlags &= ~FLAG_GRAVITY;
			dwFlags |= FLAG_FORCECLIENTUPDATE;
			g_pServerDE->SetObjectFlags(m_hObject, dwFlags);

			DDWORD dwUsrFlags = g_pServerDE->GetObjectUserFlags(m_hObject);
			if(bOn)		dwUsrFlags |= USRFLG_VISIBLE;
				else	dwUsrFlags &= ~USRFLG_VISIBLE;
			dwUsrFlags |= USRFLG_SAVEABLE;
			g_pServerDE->SetObjectUserFlags(m_hObject, dwUsrFlags);
			bFirstUpdate = 1;
 			break;
		}

		case MID_UPDATE:
		{
			if(bFirstUpdate)	{ SetupFX(); bFirstUpdate = 0; }

			DDWORD dwUsrFlags = g_pServerDE->GetObjectUserFlags(m_hObject);
			if(bOn)		dwUsrFlags |= USRFLG_VISIBLE;
				else	dwUsrFlags &= ~USRFLG_VISIBLE;
			g_pServerDE->SetObjectUserFlags(m_hObject, dwUsrFlags);

			pServerDE->SetNextUpdate(m_hObject, 0.1f);
		    if(!pServerDE) pServerDE->RemoveObject(m_hObject);
			break;
		}

		case MID_SAVEOBJECT:
			Save((HMESSAGEWRITE)pData, (DDWORD)fData);
			break;

		case MID_LOADOBJECT:
			Load((HMESSAGEREAD)pData, (DDWORD)fData);
			break;

		default : break;
	}

	return CClientSFX::EngineMessageFn(messageID, pData, fData);
}