reman3/Rayman_X/cpa/tempgrp/OAC/Src/EdActors/EDACSpec.cpp

132 lines
4.1 KiB
C++

// The Special functions called on Instanciation,
// when a particular MS is allocated
///////////////////////////////////////////////////////
#include "StdAfx.h"
/////////////////////////////////////////////////////
//////// !!!!!!!!!!!! DANGER !!!!!!!!!!! ////////////
/////////////////////////////////////////////////////
#define _ED_CAR_MUST_DEFINE_STRUCT_
#include "EdAllAct.hpp"
/////////////////////////////////////////////////////
//////// !!!!!!!!!!!! End DANGER !!!!!!!!!!! ////////
/////////////////////////////////////////////////////
#include "EDACSpec.hpp"
#include "EDACMStA.hpp"
#include "EDACActr.hpp"
#include "_AInterf.hpp"
#include "EDACStrg.hpp"
//External Modules
#include "ErO.h"
#include "CTL.h"
//End of External Modules
#undef CPA_WANTS_IMPORT
#undef CPA_EXPORT
#define CPA_WANTS_EXPORT
#include "_Actors.hpp"
#undef CPA_WANTS_EXPORT
#define CPA_WANTS_IMPORT
//***********************************************************************
void EDACT_fn_vCineinfoAfterAllocation(EdActors_ActorMiniStructure *pclAMS)
{
struct tdstCineinfo_ *hCineInfo = (struct tdstCineinfo_ *)pclAMS->m_fn_pvGetBaseAddress();
ERROR_ASSERT( hCineInfo != NULL );
CPA_Actor *pclActor = pclAMS->m_pclParentActor->m_pclActor;
if ( pclActor->m_fn_bIsAnInstance() )
{
//Always points on Ed at allocation
//ANNECY YLG 23/01/98{
// CPA_Actor *pclActorEd = (CPA_Actor *)g_pclInterface->GetMainWorld()->fn_p_oFindObject("Ed", C_szActorInstanceTypeName);
// HIE_tdxHandleToSuperObject hMotorSO = pclActorEd->m_pub_fn_hGetMotorSuperObject();
HIE_tdxHandleToSuperObject hMotorSO = MC_fn_hGetCharacterInMainCharacterNode( MC_fn_hGetFirstMainCharNode());
//ENDANNECY YLG }
//ANNECY CB
CAM_fn_vCineInfoSetSuperObjectTargeted(hCineInfo->hInit, hMotorSO);
//ENDANNECY CB
}
}
//***********************************************************************
void EDACT_fn_vLightAfterAllocation(EdActors_ActorMiniStructure *pclAMS)
{
struct tdstMSLight_ *ptdstLight = (struct tdstMSLight_ *)pclAMS->m_fn_pvGetBaseAddress();
//PROVISOIRE...
if ( ptdstLight->p_stLight == NULL )
GLI_xCreateLight(&(ptdstLight->p_stLight), 1);
}
//***********************************************************************
void EDACT_fn_vStdGameAfterAllocation(EdActors_ActorMiniStructure *pclAMS)
{
MS_tdxHandleToStandardGame hStdGame = (MS_tdxHandleToStandardGame)pclAMS->m_fn_pvGetBaseAddress();
ERROR_ASSERT( hStdGame != NULL );
CPA_Actor *pclActor = pclAMS->m_pclParentActor->m_pclActor;
if ( pclActor != NULL )
if ( pclActor->m_fn_bIsAnInstance() )
{
HIE_tdxHandleToSuperObject h_SuperObject = pclActor->m_pub_fn_hGetMotorSuperObject();
h_SuperObject->hLinkedObject.p_Void = (void *)pclActor->m_fn_pclGetEditorActor()->m_fn_ptdstGetMotorActor();
fn_vStandardGameSetSuperObject(hStdGame, h_SuperObject);
}
}
//***********************************************************************
void EDACT_fn_v3dDataAfterAllocation(EdActors_ActorMiniStructure *pclAMS)
{
MS_tdxHandleTo3dData h3dData = (MS_tdxHandleTo3dData)pclAMS->m_fn_pvGetBaseAddress();
ERROR_ASSERT( h3dData != NULL );
}
// Shaitan FastC {
//***********************************************************************
void EDACT_fn_vBrainAfterAllocation(EdActors_ActorMiniStructure *pclAMS)
{
MS_tdxHandleToBrain hBrain = (MS_tdxHandleToBrain)pclAMS->m_fn_pvGetBaseAddress();
ERROR_ASSERT( hBrain != NULL );
}
//End Shaitan FastC }
//***********************************************************************
void EDACT_fn_vDynamicsAfterAllocation(EdActors_ActorMiniStructure *pclAMS)
{
MS_tdxHandleToDynam hDynam = (MS_tdxHandleToDynam)pclAMS->m_fn_pvGetBaseAddress();
ERROR_ASSERT( hDynam != NULL );
CPA_Actor *pclActor = pclAMS->m_pclParentActor->m_pclActor;
ERROR_ASSERT( pclActor != NULL );
if ( pclActor->m_fn_bIsAnInstance() )
{
if ( (pclActor->m_pub_fn_pclGetSuperObject() != NULL)
&& (pclActor->m_pub_fn_pclGetSuperObject()->GetData() != NULL)
&& (!pclActor->m_fn_bIsAnAlways())
)
{
struct tdstEngineObject_ *p_stObject = pclAMS->m_pclParentActor->m_fn_ptdstGetMotorActor();
fn_vDynamInit(p_stObject, OTI_MapLoaded);
}
//else this is done elsewhere !
}
}