132 lines
4.1 KiB
C++
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 !
|
|
}
|
|
}
|
|
|