153 lines
3.4 KiB
C++
153 lines
3.4 KiB
C++
// EdIRIC.hpp : header file
|
|
//
|
|
|
|
#ifndef _EDIRIC_HPP_
|
|
#define _EDIRIC_HPP_
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
|
|
#define D_ZdxStuff_StructureDefine
|
|
|
|
#include "MTH.h"
|
|
#include "ai_intf.hpp"
|
|
#include "Ctl.h"
|
|
#include "CPA_NLL.hpp"
|
|
#include "ITF.h"
|
|
#include "incAI.h"
|
|
|
|
typedef enum tdeNodeType_
|
|
{
|
|
eCreateSchedule ,
|
|
eCreateRule ,
|
|
eCreateDsgVar ,
|
|
//BEGIN ROMTEAM Cristi Petrescu 98-04-
|
|
eCreateSubr,
|
|
eSubrRef,
|
|
//END ROMTEAM Cristi Petrescu 98-04-
|
|
|
|
eBeginMacro ,
|
|
eEndMacro ,
|
|
|
|
eIncDepth ,
|
|
eDecDepth ,
|
|
|
|
eStopEngine ,
|
|
eStopRule ,
|
|
eNonStop ,
|
|
|
|
eKeyWord ,
|
|
eCondition ,
|
|
eMetaAction ,
|
|
eProcedure ,
|
|
eField ,
|
|
eConstant ,
|
|
eOperator ,
|
|
eFunction ,
|
|
eDsgVar ,
|
|
eConstantInt ,
|
|
eConstantReal ,
|
|
ePerso ,
|
|
eReal ,
|
|
eZdd ,
|
|
eZde ,
|
|
eZdm ,
|
|
eVector ,
|
|
eVectorConstant ,
|
|
eAction ,
|
|
eState ,
|
|
eWay ,
|
|
eWayPoint ,
|
|
eModule ,
|
|
eKeyButton ,
|
|
eComport ,
|
|
eMaskType ,
|
|
ePower ,
|
|
eSurface ,
|
|
eEnvironment ,
|
|
eSector ,
|
|
eSuperObject ,
|
|
eLipSynchro ,
|
|
eObjectTable ,
|
|
eFamily ,
|
|
eModel ,
|
|
eSoundEvent ,
|
|
eString ,
|
|
eText ,
|
|
eFont ,
|
|
eGameMaterial ,
|
|
eLight ,
|
|
eCaps ,
|
|
eGraph ,
|
|
eParticleGenerator ,
|
|
eMyRfxBehaviour ,
|
|
eMyIABehaviour ,
|
|
eRfxBehaviour ,
|
|
eIABehaviour ,
|
|
eZdr ,
|
|
eInvalidNode
|
|
} tdeNodeType;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// class CPA_EdIR_IntermediateCode
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CPA_Actor;
|
|
|
|
class CPA_EdIR_IntermediateCode
|
|
{
|
|
private:
|
|
enum eType
|
|
{
|
|
eUseLong,
|
|
eUseReal,
|
|
eUseVector,
|
|
eUseString,
|
|
eInvalidType
|
|
};
|
|
|
|
long m_lOffset; //in original text
|
|
tdeNodeType m_eNodeType; //node type
|
|
unsigned char m_ucDepth; //depth
|
|
eType m_eType; //to know if we use m_lIndex, m_dfValue or m_tdstVector
|
|
long m_lIndex; //value
|
|
CPA_Actor *m_pclModel; //for behaviour
|
|
double m_dfValue; //value
|
|
MTH3D_tdstVector m_tdstVector; //value
|
|
CString m_csString; //value
|
|
|
|
public:
|
|
tdstNodeInterpret *pstRefNode; /* To remember address of node for a reference */
|
|
CPA_EdIR_IntermediateCode();
|
|
CPA_EdIR_IntermediateCode(CPA_EdIR_IntermediateCode *);
|
|
CPA_EdIR_IntermediateCode(long,tdeNodeType,long,CPA_Actor *pclModel=NULL);
|
|
CPA_EdIR_IntermediateCode(long,tdeNodeType,double);
|
|
CPA_EdIR_IntermediateCode(long,tdeNodeType,double,double,double);
|
|
CPA_EdIR_IntermediateCode(long,tdeNodeType,CString);
|
|
|
|
CString m_fn_csGetValue();
|
|
long m_fn_lGetIndex();
|
|
CPA_Actor *m_fn_pclGetModel();
|
|
double m_fn_dfGetValue();
|
|
MTH3D_tdstVector m_fn_tdstGetVector();
|
|
CString m_fn_csGetString();
|
|
|
|
long m_fn_lGetOffset();
|
|
|
|
tdeNodeType m_fn_tdeGetNodeType();
|
|
unsigned char m_fn_ucGetDepth();
|
|
|
|
void m_fn_vSetIndex(long);
|
|
void m_fn_vSetValue(double);
|
|
void m_fn_vSetNodeType(tdeNodeType);
|
|
void m_fn_vSetDepth(unsigned char);
|
|
void m_fn_vSetModel(CPA_Actor *);
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
//TEMPORAIRE
|
|
void m_fn_vSetString(CString);
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
};
|
|
|
|
#endif //_EDIRIC_HPP_
|