reman3/Rayman_X/cpa/tempgrp/TAc/inc/STModif.hpp

436 lines
13 KiB
C++

//#################################################################################
//
// BASE DEFINITION CLASS OF DLL interface Modification
//
//#################################################################################
//
//
#ifndef __STMODIF_HPP__
#define __STMODIF_HPP__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif
/******************************************/
class CPA_Family;
class CPA_Animation;
class CPA_Action;
class CPA_State;
class TAction_Interface;
tdstTransitionStateInfo;
#include "TAC.h"
///////////////////////////////////////////////////////////////////////////////
// typedef
typedef struct tdstIAInfo_
{
CPA_State *p_oOwnerState;
CPA_Action *p_oActionThatInterrupt;
CPA_State *p_oTransitionalState;
BOOL bActive;
} tdstIAInfo;
///////////////////////////////////////////////////////////////////////////////
// class State_New
class State_New : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_Action *m_p_oAction;
CPA_State *m_p_oState;
CPA_Animation *m_p_oAnim;
char *m_szName;
BOOL m_bNormalState;
CPA_SaveObject *m_p_oMeca;
public:
State_New(TAction_Interface *_p_oParentDLL, CPA_Action *_p_oAction,
CPA_Animation *_p_oAnim, char *_szNewName, BOOL _bNormalState, CPA_SaveObject *_p_oMeca);
~State_New();
// actions
BOOL Do();
BOOL Undo();
};
///////////////////////////////////////////////////////////////////////////////
// class State_CreateFromAnims
class State_CreateFromAnims : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_Action *m_p_oAction;
CPA_List<CPA_State> m_oListOfCreatedStates;
CPA_List<CPA_Animation> m_oListOfAnimations;
BOOL m_bNormalState;
CPA_SaveObject *m_p_oMeca;
public:
State_CreateFromAnims(TAction_Interface *_p_oParentDLL, CPA_Action *_p_oAction);
~State_CreateFromAnims();
// init
void mfn_vAddAnim (CPA_Animation *_p_oAnim);
void mfn_vSetNormalState (BOOL _bNormalState);
void mfn_vSetMecaCard (CPA_SaveObject *_p_oMeca);
// actions
BOOL Do();
BOOL Undo();
};
///////////////////////////////////////////////////////////////////////////////
// class State_Copy
class State_Copy : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_Action *m_p_oAction;
CPA_State *m_p_oStateSource;
CPA_State *m_p_oStateTarget;
public:
State_Copy(TAction_Interface *_p_oParentDLL, CPA_Action *_p_oAction,
CPA_State *_p_oState);
~State_Copy();
// actions
BOOL Do();
BOOL Undo();
};
///////////////////////////////////////////////////////////////////////////////
// class State_Rename
class State_Rename : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_Action *m_p_oAction;
CPA_State *m_p_oState;
char *m_szNewName;
public:
State_Rename(TAction_Interface *_p_oParentDLL, CPA_Action *_p_oAction,
CPA_State *_p_oState, char *_szNewName);
~State_Rename();
// actions
BOOL Do();
BOOL Undo();
};
///////////////////////////////////////////////////////////////////////////////
// class State_Delete
class State_Delete : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_Action *m_p_oAction;
CPA_State *m_p_oState;
BOOL m_bIsDefault;
// CPA_Ed_1 Mihaela Tancu begin
CPA_State *m_p_oStateNext; // the next state of the state be delete
CPA_State *m_p_Previous; //the previous state of the state to delete (in the list)
CPA_State *m_p_PreviousNext; //the next state of its previous state
BOOL m_bDefault; //true if the state to delete is default
// CPA_Ed_1 Mihaela Tancu end
public:
State_Delete(TAction_Interface *_p_oParentDLL, CPA_Action *_p_oAction,
CPA_State *_p_oState);
~State_Delete();
// actions
BOOL Do();
BOOL Undo();
};
///////////////////////////////////////////////////////////////////////////////
// class State_Default
class State_Default : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_Action *m_p_oAction;
CPA_State *m_p_oNewDefaultState;
public:
State_Default(TAction_Interface *_p_oParentDLL, CPA_Action *_p_oAction,
CPA_State *_p_oNewState);
~State_Default();
// actions
BOOL Do();
BOOL Undo();
protected:
BOOL mfn_vSwapDefaultState();
};
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// class State_ModifAnim
class State_ModifAnim : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_State *m_p_oState;
CPA_Animation *m_p_oNewAnim;
public:
State_ModifAnim(TAction_Interface *_p_oParentDLL, CPA_State *_p_oState,
CPA_Animation *_p_oNewAnim);
~State_ModifAnim();
// actions
BOOL Do();
BOOL Undo();
protected:
BOOL mfn_vSwapAnimation();
};
///////////////////////////////////////////////////////////////////////////////
// class State_ModifNextState
class State_ModifNextState : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_State *m_p_oState;
CPA_State *m_p_oNewNextState;
public:
State_ModifNextState(TAction_Interface *_p_oParentDLL, CPA_State *_p_oState,
CPA_State *_p_oNewNextState);
~State_ModifNextState();
// actions
BOOL Do();
BOOL Undo();
protected:
BOOL mfn_vSwapNextState();
};
///////////////////////////////////////////////////////////////////////////////
// class State_ModifSpeed
class State_ModifSpeed : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_State *m_p_oState;
signed char m_cNewSpeed;
BOOL m_bFirstDo;
public:
State_ModifSpeed(TAction_Interface *_p_oParentDLL, CPA_State *_p_oState, signed char m_cNewSpeed);
~State_ModifSpeed();
// actions
BOOL Do();
BOOL Undo();
protected:
BOOL mfn_vSwapSpeed();
};
///////////////////////////////////////////////////////////////////////////////
// class State_ModifReplay
class State_ModifReplay : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_State *m_p_oState;
unsigned char m_ucNewReplay;
BOOL m_bFirstDo;
public:
State_ModifReplay(TAction_Interface *_p_oParentDLL, CPA_State *_p_oState, unsigned char _ucNewSpeed);
~State_ModifReplay();
// actions
BOOL Do();
BOOL Undo();
protected:
BOOL mfn_vSwapReplay();
};
///////////////////////////////////////////////////////////////////////////////
// class State_ModifMechanic
class State_ModifMechanic : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_State *m_p_oState;
CPA_SaveObject *m_p_oNewMeca;
public:
State_ModifMechanic(TAction_Interface *_p_oParentDLL, CPA_State *_p_oState,CPA_SaveObject *_p_oNewMeca);
~State_ModifMechanic();
// actions
BOOL Do();
BOOL Undo();
protected:
BOOL mfn_vSwapMecaCard();
};
///////////////////////////////////////////////////////////////////////////////
// class State_ModifTransition
class State_ModifTransition : public CPA_Modif
{
public:
TAction_Interface *m_p_oParentDLL;
CPA_State *m_p_oState;
tdstTransitionStateInfo m_stNextTransition;
protected:
private:
public:
State_ModifTransition( TAction_Interface *_p_oParentDLL, CPA_State *_p_oState, CPA_Action *_p_oAction,
tdeTransitionState _eState, CPA_State *_p_oStatoToGo = NULL );
~State_ModifTransition();
// actions
BOOL Do();
BOOL Undo();
protected:
BOOL mfn_bMakeDo();
};
///////////////////////////////////////////////////////////////////////////////
// class State_ModifTransitionExtended
class State_ModifTransitionExtended : public CPA_Modif
{
public:
TAction_Interface *m_p_oParentDLL;
CPA_State *m_p_oCurrentState;
CPA_List<CPA_State> m_oListOfStates;
CPA_List<tdstTransitionStateInfo> m_oListOfTSI;
CPA_List<tdstTSIState> m_oListOfTSIState;
BOOL m_bEndCreation;
protected:
private:
public:
State_ModifTransitionExtended( TAction_Interface *_p_oParentDLL, CPA_State *_p_oCurrentState );
~State_ModifTransitionExtended();
void mfn_vAddState ( CPA_State *_p_oState );
void mfn_vAddTransition ( CPA_Action *_p_oAction, tdeTransitionState _eState, CPA_State *_p_oStatoToGo = NULL );
void mfn_vEndCreation ( void );
// actions
BOOL Do();
BOOL Undo();
protected:
BOOL mfn_bMakeDo();
};
///////////////////////////////////////////////////////////////////////////////
// class State_SwapDefaultTransitionStatus
class State_SwapDefaultTransitionStatus : public CPA_Modif
{
public:
TAction_Interface *m_p_oParentDLL;
CPA_State *m_p_oState;
tdeTransitionState m_eNextState;
protected:
private:
public:
State_SwapDefaultTransitionStatus( TAction_Interface *_p_oParentDLL, CPA_State *_p_oState );
~State_SwapDefaultTransitionStatus();
// actions
BOOL Do();
BOOL Undo();
protected:
BOOL mfn_bMakeDo();
};
// CPA_Ed_1 Mihaela Tancu begin
///////////////////////////////////////////////////////////////////////////////
// class State_Move
class State_Move : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_Action *m_p_oAction;
CPA_State *m_p_oPrevStateToMove; //the previous state in list of the state to move
CPA_State *m_p_oStateToMove; //the state to move
CPA_State *m_p_oPrevStateTarget; //the previous state in the list of the target state before which is inserted the state to move
CPA_State *m_p_oStateTarget; //the target state
CPA_State *m_p_oPrevStateToMoveNext; //next states used for saving and restoring the next states of the states which are changing its next states
CPA_State *m_p_oStateToMoveNext;
CPA_State *m_p_oPrevStateTargetNext;
BOOL m_bDefault; //true if the state to move is default
BOOL m_bDefaultTarget; //true if the state before which is inserted the state to move is default
public:
State_Move(TAction_Interface *_p_oParentDLL, CPA_Action *_p_oAction,
CPA_State *_p_oPrevStateToMove, CPA_State *_p_oStateToMove,
CPA_State *_p_oPrevStateTarget, CPA_State *_p_oStateTarget,
CPA_State *_p_oPrevStateToMoveNext, CPA_State *_p_oStateToMoveNext,
CPA_State *_p_oPrevStateTargetNext,
BOOL _bDefault, BOOL _bDefaultTarget );
~State_Move();
void mfn_vMoveNormalState(); //move the normal state in the list box
void mfn_vMoveTransitionalState(); //move the transitional state in the list box
void mfn_vUndoMoveNormalState(); //undo the moving for the normal state
void mfn_vUndoMoveTransitionalState(); //undo the moving for the transitional state
// actions
BOOL Do();
BOOL Undo();
};
class State_CreateFromAnimsMove : public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_Action *m_p_oAction;
CPA_List<CPA_State> m_oListOfCreatedStates;
CPA_List<CPA_Animation> m_oListOfAnimations;
BOOL m_bNormalState;
CPA_SaveObject *m_p_oMeca;
CPA_State *m_p_oPrevStateTarget; // the state before which is inserted the new state
CPA_State *m_p_oStateTarget; // the previous state
CPA_State *m_p_oPrevStateTargetNext; // the old Next state of the previous state
BOOL m_bDefaultTarget; // if the target state is default
public:
State_CreateFromAnimsMove(TAction_Interface *_p_oParentDLL, CPA_Action *_p_oAction,
CPA_State *_p_oPrevStateTarget, CPA_State *_p_oStateTarget,
CPA_State *_p_oPrevStateTargetNext);
~State_CreateFromAnimsMove();
// init
void mfn_vAddAnim (CPA_Animation *_p_oAnim);
void mfn_vSetNormalState (BOOL _bNormalState);
void mfn_vSetMecaCard (CPA_SaveObject *_p_oMeca);
void mfn_vDo (void);
void mfn_vDoMany (int iNumber);
void mfn_vUndoMany (int iNumber);
// actions
BOOL Do();
BOOL Undo();
};
// CPA_Ed_1 Mihaela Tancu end
class State_ModifCustomBits: public CPA_Modif
{
protected:
TAction_Interface *m_p_oParentDLL;
CPA_State *m_p_oState;
unsigned char m_ucCBNumber;
BOOL m_bFirstDo;
public:
State_ModifCustomBits(TAction_Interface *_p_oParentDLL, CPA_State *_p_oState, unsigned char _ucCBNumber);
~State_ModifCustomBits();
// actions
BOOL Do();
BOOL Undo();
protected:
BOOL mfn_vSwapCB();
};
///////////////////////////////////////////////////////////////////////////////
#endif // __STMODIF_HPP__
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////