reman3/Rayman_X/cpa/tempgrp/TIA/Inc/EdIRIC.hpp

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_