/******************************************************************************
 * 763_Proj.cxx : file automaticly generated
 ******************************************************************************/

#include "gamedata\world\levels\_common\cfast\763_Proj.h"

void CFast_Alw_Projectile_Rayman_model_Cmp_YLT_PoingInit ( void ) ;
void CFast_Alw_Projectile_Rayman_model_Cmp_YLT_Shoot ( void ) ;
void CFast_Alw_Projectile_Rayman_model_Cmp_BNT_PoingGrappin ( void ) ;
void CFast_Alw_Projectile_Rayman_model_Cmp_BNT_PoingGrappinInit ( void ) ;
void CFast_Alw_Projectile_Rayman_model_Cmp_FRD_GrappinBisInit ( void ) ;
void CFast_Alw_Projectile_Rayman_model_Cmp_FRD_GrappinBisOnMeTire ( void ) ;
void CFast_Alw_Projectile_Rayman_model_Cmp_FRD_GrappinBisTireObjet ( void ) ;
void CFast_Alw_Projectile_Rayman_model_Cmp_FRD_GrappinBisFin ( void ) ;


long CFast_Alw_Projectile_Rayman_model_Macro_0 ( void ) ;
long CFast_Alw_Projectile_Rayman_model_Macro_1 ( void ) ;
long CFast_Alw_Projectile_Rayman_model_Macro_2 ( void ) ;
long CFast_Alw_Projectile_Rayman_model_Macro_3 ( void ) ;
CFast_EvalFunc CFast_Alw_Projectile_Rayman_model_ArrayComport[] = { 
  CFast_Alw_Projectile_Rayman_model_Cmp_YLT_PoingInit,
  CFast_Alw_Projectile_Rayman_model_Cmp_YLT_Shoot,
  CFast_Alw_Projectile_Rayman_model_Cmp_BNT_PoingGrappin,
  CFast_Alw_Projectile_Rayman_model_Cmp_BNT_PoingGrappinInit,
  CFast_Alw_Projectile_Rayman_model_Cmp_FRD_GrappinBisInit,
  CFast_Alw_Projectile_Rayman_model_Cmp_FRD_GrappinBisOnMeTire,
  CFast_Alw_Projectile_Rayman_model_Cmp_FRD_GrappinBisTireObjet,
  CFast_Alw_Projectile_Rayman_model_Cmp_FRD_GrappinBisFin
};

void CFast_Dummy_Alw_Projectile_Rayman_model(void) ;
char g_Alw_Projectile_Rayman_model_StaticTreeInit = 0 ;


void CFast_Alw_Projectile_Rayman_model_Main ( HIE_tdxHandleToSuperObject hSuperObjPerso )
{
  register long                lIndex ;
   register AI_tdstMind         *p_stMind = M_pstGetMindOfBrain(M_GetMSHandle(hSuperObjPerso, Brain)) ;

  p_stGlobalMind = p_stMind;
  gp_stRefTree = &M_CFast_GetReferenceNodeN(hSuperObjPerso, 0);
  g_hSuperObjectPerso = hSuperObjPerso;

#ifndef U64
  gp_stPseudoTree = p_stMind->p_stAIModel->CFast_dst_ParamArray;
#else
  gp_stPseudoTree = CFast_gast_ArrayFunctions[p_stMind->p_stAIModel->CFast_lFunction].mp_stPseudoTree;
#endif

#ifdef DEBUG_CFAST
  if ( !g_Alw_Projectile_Rayman_model_StaticTreeInit )
  {
    g_Alw_Projectile_Rayman_model_StaticTreeInit = 1 ;
    CFast_Dummy_Alw_Projectile_Rayman_model();
  }
#endif /* DEBUG_CFAST */
  p_cGlobalDsgMemBuffer = p_stMind->p_stDsgMem->p_cDsgMemBuffer;
  p_stGlobalDsgVarInfo = (*(p_stMind->p_stDsgMem->p_p_stDsgVar))->p_stDsgVarInfo;
  AI_M_SetDoingIntel(p_stMind, 1) ;
  CFast_g_bProcessReflex = 0 ;
  lIndex = M_GetCurrentComport(AI_M_p_stGetIntelligence(p_stMind))->CFast_lMyIndex ;
  CFast_Alw_Projectile_Rayman_model_ArrayComport[lIndex]();
}
/*
 * Model : Alw_Projectile_Rayman_model Comportement YLT_PoingInit
 */
void CFast_Alw_Projectile_Rayman_model_Cmp_YLT_PoingInit (void)
{
  MTH3D_tdstVector stVector0;
  MTH3D_tdstVector stVector1;
  MTH3D_tdstVector stVector2;
  MTH3D_tdstVector stVector3;


  register  AI_tdstMind * p_stLocalMind0 = p_stGlobalMind ;
  register struct tdstNodeInterpret_   *p_stRefTree = gp_stRefTree;
  register struct tdstNodeInterpret_ * p_stPseudoTree = gp_stPseudoTree ;
  register tdstIntelligence * p_stIntelligence = p_stLocalMind0 -> p_stIntelligence ;
  register char * p_cLocalDsgMemBuffer = p_cGlobalDsgMemBuffer ;
  register tdstDsgVarInfo * p_stLocalDsgVarInfo = p_stGlobalDsgVarInfo ;

  register long long1 , long2 ;
  long long3 , long4 , long5 , long6 , long7 , long8 ;
  register AI_tdstMind * p_stLocalMind1 , * p_stLocalMind2 , * p_stLocalMind4 , * p_stLocalMind8 ;


/* [Op : .] ********** [2, 2, 0]*/

/* [Cond : =] ********** [4, 2, 1]*/
  p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(0) ,Brain));
  if ( (*((char *)(M_GetDsgVarAddr(p_stLocalMind1, 10)))) == 20 ) {

/* [Keyword : Moi] ********** [0, 0, 1]*/

/* [Proc : DetruitPerso] *********** [1, 1, 0]*/
    fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
    CFast_CallProcedure_Static( 0 ) ;
    if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
      return ;
    }
  }
/* [EndTree] ************ [0]*/

/* [Func : ACT_CompteObjetsGeneres] ********** [1, 1, 1]*/
  CFast_CallFunction1_Static( 2 ) ;
  LocalCFast_fn_vSetDsgVar0To255(1, M_GetSetParam_lValue(CFast_g_a_stParam+1)) ;

/* [Keyword : Moi] ********** [0, 0, 1]*/

/* [Op : .] ********** [4, 2, 0]*/

/* [Proc : ACT_SetDrawFlag] *********** [5, 3, 0]*/
  M_eProcedureIdInterpret(&CFast_g_a_stPseudoTree[E_ti_Procedure][0]) = (tdeProcedureId)13 ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][1], E_ti_PersoRef);
  M_p_stPersoRefInterpret(&CFast_g_a_stPseudoTree[4][1]) = M_GetEngineObject(g_hSuperObjectPerso) ; 
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][2], E_ti_Constant);
  M_lValueInterpret(&CFast_g_a_stPseudoTree[4][2]) = 31 ;

/* [Op : .] ********** [0, 2, 0]*/
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][3], E_ti_Operator);
  M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[4][3]) = (tdeOperatorId)12 ;
  CFast_memcpy ( 4, 4, 2) ;
  CFast_memcpy ( 4, 5, 3) ;
  CFast_CallProcedure_NoStatic( ) ;
  p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(0) ,Brain));
  if ( (*((MTH_tdxReal *)(M_GetDsgVarAddr(p_stLocalMind1, 20)))) >= MTH_M_xLongToReal(2000) ) {

/* [Op : .] ********** [3, 2, 0]*/

/* [Cond : >] ********** [5, 2, 3]*/
    p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(0) ,Brain));
    long2 = MTH_M_bGreater(MTH_M_xLongToReal((*((char *)(M_GetDsgVarAddr(p_stLocalMind1, 115))))), MTH_M_xFloatToReal(0.000000f)) ? 1 : 0;
M_Full_GetSetParam_Integer(&CFast_g_a_stParam[3], long2) ;
    if (M_lValueInterpret(&CFast_g_a_stParam[3])) {
      M_Full_GetSetParam_Float(&CFast_g_a_stParam[4], MTH_M_xAdd(MTH_M_xFloatToReal(3.000000f),MTH_M_xFloatToReal(3.000000f)));
      M_xValueInterpret(&CFast_g_a_stParam[2]) = M_xValueInterpret(&CFast_g_a_stParam[4]);
    } else {
      M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;
      M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH_M_xFloatToReal(3.000000f) ;
    }
    M_xValueInterpret(&CFast_g_a_stParam[1]) = M_xValueInterpret(&CFast_g_a_stParam[2]);
  } else {

/* [Op : .] ********** [3, 2, 0]*/

/* [Cond : >] ********** [5, 2, 4]*/
    p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(0) ,Brain));
    long2 = MTH_M_bGreater(MTH_M_xLongToReal((*((char *)(M_GetDsgVarAddr(p_stLocalMind1, 115))))), MTH_M_xFloatToReal(0.000000f)) ? 1 : 0;
M_Full_GetSetParam_Integer(&CFast_g_a_stParam[4], long2) ;
    if (M_lValueInterpret(&CFast_g_a_stParam[4])) {
      M_GetSetParam_Type(&CFast_g_a_stParam[3]) = E_vt_Float;
      M_GetSetParam_xValue(&CFast_g_a_stParam[3]) = MTH_M_xFloatToReal(3.000000f) ;
    } else {
      M_GetSetParam_Type(&CFast_g_a_stParam[3]) = E_vt_Float;
      M_GetSetParam_xValue(&CFast_g_a_stParam[3]) = MTH_M_xFloatToReal(1.000000f) ;
    }
    M_xValueInterpret(&CFast_g_a_stParam[1]) = M_xValueInterpret(&CFast_g_a_stParam[3]);
  }

/* [Op : :=] ********** [2, 2, 0]*/
    M_lValueInterpret(p_stPseudoTree+6) = M_GetSetParam_lValue(CFast_g_a_stParam+1);
  CFast_CallOperator0_Static ( 4 ) ;
  CFast_fn_vSetDsgVarFloat(M_CFast_ucGetRealIndice(4), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),MTH_M_xFloatToReal(0.00000f)) ;

/* [Cond : =] ********** [2, 2, 1]*/
  if ( MTH_M_bEqual((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 5)))), MTH_M_xFloatToReal(3.000000f)) ) {

/* [Proc : ChangeTableObjetCourante] *********** [1, 1, 0]*/
    CFast_CallProcedure_Static( 7 ) ;

/* [Proc : EnvoieRequeteSon] *********** [1, 1, 0]*/
    CFast_CallProcedure_Static( 9 ) ;
  }
  else {

/* [Cond : =] ********** [2, 2, 1]*/
    if ( MTH_M_bEqual((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 5)))), MTH_M_xFloatToReal(1.000000f)) ) {

/* [Proc : EnvoieRequeteSon] *********** [1, 1, 0]*/
      CFast_CallProcedure_Static( 9 ) ;

/* [Op : .] ********** [2, 2, 0]*/
      p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(2) ,Brain));
      long1 = (*((char *)(M_GetDsgVarAddr(p_stLocalMind1, 47))));
      if ( long1 ) {

/* [Proc : ChangeTableObjetCourante] *********** [1, 1, 0]*/
        CFast_CallProcedure_Static( 7 ) ;
      }
      else {

/* [Op : .] ********** [2, 2, 0]*/
        p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(2) ,Brain));
        long1 = (*((char *)(M_GetDsgVarAddr(p_stLocalMind1, 48))));
        if ( long1 ) {

/* [Proc : ChangeTableObjetCourante] *********** [1, 1, 0]*/
          CFast_CallProcedure_Static( 11 ) ;
        }
        else {

/* [Proc : ChangeTableObjetCourante] *********** [1, 1, 0]*/
          CFast_CallProcedure_Static( 13 ) ;
        }
      }
    }
    else {

/* [Proc : ChangeTableObjetCourante] *********** [1, 1, 0]*/
      CFast_CallProcedure_Static( 15 ) ;

/* [Proc : EnvoieRequeteSon] *********** [1, 1, 0]*/
      CFast_CallProcedure_Static( 17 ) ;
    }
  }
/* [EndTree] ************ [0]*/

/* [Proc : ChangeActionForce] *********** [1, 1, 0]*/
  fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
  CFast_CallProcedure_Static( 19 ) ;
  if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
    return ;
  }
  LocalCFast_fn_vSetDsgVar0To255(3, 2) ;

/* [Op : ..] ********** [1, 1, 0]*/

/* [Func : HIER_MonPere] ********** [2, 1, 2]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallFunction2_Static( 21 ) ;

/* [Cond : ObjetValide] ********** [1, 1, 1]*/
    M_lValueInterpret(p_stPseudoTree+23) = M_GetSetParam_lValue(CFast_g_a_stParam+2);
  if ( CFast_CallCondition_Static(22) ) {

/* [Op : ..] ********** [1, 1, 0]*/

/* [Func : HIER_MonPere] ********** [2, 1, 1]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
    CFast_CallFunction1_Static( 21 ) ;
    LocalCFast_fn_vSetDsgVarPersoWithEngine(22, M_GetSetParam_p_stEngineObjValue(CFast_g_a_stParam+1)) ;

/* [Op : .] ********** [2, 2, 0]*/

/* [Op : .] ********** [5, 2, 0]*/

/* [Op : v+] ********** [6, 2, 2]*/
    M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[E_ti_Operator][0]) = (tdeOperatorId)16 ;

/* [Op : .] ********** [0, 2, 0]*/
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[2][1], E_ti_Operator);
    M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[2][1]) = (tdeOperatorId)12 ;
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[2][2], E_ti_DsgVarRef);
    M_lValueInterpret(&CFast_g_a_stPseudoTree[2][2]) = 22 ;
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[2][3], E_ti_Field);
    M_eFieldIdInterpret(&CFast_g_a_stPseudoTree[2][3]) = (tdeFieldId)2 ;

/* [Op : .] ********** [0, 2, 0]*/
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[2][4], E_ti_Operator);
    M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[2][4]) = (tdeOperatorId)12 ;
    CFast_memcpy ( 2, 5, 0) ;
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[2][6], E_ti_Field);
    M_eFieldIdInterpret(&CFast_g_a_stPseudoTree[2][6]) = (tdeFieldId)2 ;
    CFast_CallOperator2_NoStatic( ) ;

/* [Op : ..] ********** [2, 1, 0]*/

/* [Func : VEC_VecteurRelatif] ********** [3, 2, 1]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
      M_p_stVectorInterpret(p_stPseudoTree+25) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+2);
    CFast_CallFunction1_Static( 24 ) ;
    LocalCFast_fn_vSetDsgVarVector(13, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
  }
  else {

/* [Op : .] ********** [2, 2, 0]*/

/* [Op : ..] ********** [4, 1, 0]*/

/* [Func : VEC_VecteurRelatif] ********** [5, 2, 1]*/
    M_eFuncIdInterpret(&CFast_g_a_stPseudoTree[E_ti_Function][0]) = (tdeFuncId)52 ;

/* [Op : .] ********** [0, 2, 0]*/
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][1], E_ti_Operator);
    M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[3][1]) = (tdeOperatorId)12 ;
    CFast_memcpy ( 3, 2, 0) ;
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][3], E_ti_Field);
    M_eFieldIdInterpret(&CFast_g_a_stPseudoTree[3][3]) = (tdeFieldId)2 ;

/* [Op : ..] ********** [0, 1, 0]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
    CFast_CallFunction1_NoStatic( ) ;
    LocalCFast_fn_vSetDsgVarVector(13, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
  }
/* [EndTree] ************ [0]*/

/* [Op : .Z] ********** [1, 1, 3]*/
  CFast_CallOperator3_Static( 26 ) ;
  M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH_M_xAbs(M_GetSetParam_xValue(&CFast_g_a_stParam[3])) ;
  M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;

/* [Math_ : Math_ValeurAbsolue] ********** [0, 1, 2]*/
  if ( M_xValueInterpret(&CFast_g_a_stParam[2]) <= MTH_M_xFloatToReal(20.000000f) ) {
    M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Float;
    M_GetSetParam_xValue(&CFast_g_a_stParam[1]) = MTH_M_xFloatToReal(0.000000f) ;
  } else {

/* [Op : .Z] ********** [1, 1, 4]*/
    CFast_CallOperator4_Static( 26 ) ;

/* [Op : .Z] ********** [3, 1, 7]*/
    CFast_CallOperator7_Static( 26 ) ;
    M_GetSetParam_xValue(&CFast_g_a_stParam[6]) = MTH_M_bLess(M_GetSetParam_xValue(&CFast_g_a_stParam[7]), MTH_C_ZERO) ? MTH_M_xFloatToReal(-1.0f) : MTH_M_xFloatToReal(1.0f);
    M_GetSetParam_Type(&CFast_g_a_stParam[6]) = E_vt_Float;

/* [Math_ : Math_Signe] ********** [2, 1, 6]*/
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[5], MTH_M_xMul(MTH_M_xFloatToReal(20.000000f),M_GetSetParam_xValue(&CFast_g_a_stParam[6])));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[3], MTH_M_xSub(M_GetSetParam_xValue(&CFast_g_a_stParam[4]),M_GetSetParam_xValue(&CFast_g_a_stParam[5])));
    M_xValueInterpret(&CFast_g_a_stParam[1]) = M_xValueInterpret(&CFast_g_a_stParam[3]);
  }
  (LocalCFast_fn_p_stGetDsgVarVector(13))->xZ= M_GetSetParam_xValue(CFast_g_a_stParam+1) ;

/* [Op : .Y] ********** [1, 1, 3]*/
  CFast_CallOperator3_Static( 28 ) ;
  M_Full_GetSetParam_Float(&CFast_g_a_stParam[2], MTH_M_xSub(M_GetSetParam_xValue(&CFast_g_a_stParam[3]),MTH_M_xFloatToReal(25.000000f)));
  M_GetSetParam_xValue(&CFast_g_a_stParam[1]) = MTH_M_xMin(M_GetSetParam_xValue(&CFast_g_a_stParam[2]),MTH_M_xFloatToReal(-25.000000f));
  M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Float;

/* [Math_ : Math_MinimumReel] ********** [0, 2, 1]*/
  (LocalCFast_fn_p_stGetDsgVarVector(13))->xY = M_GetSetParam_xValue(CFast_g_a_stParam+1) ;

/* [Op : ..] ********** [2, 1, 0]*/

/* [Func : VEC_VecteurAbsolu] ********** [3, 2, 1]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallFunction1_Static( 30 ) ;
  LocalCFast_fn_vSetDsgVarVector(13, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
  M_GetSetParam_xValue(&CFast_g_a_stParam[1]) = MTH3D_M_xNormVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
  M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Float;
  LocalCFast_fn_vSetDsgVarFloat(4, M_GetSetParam_xValue(CFast_g_a_stParam+1)) ;
  if ( (*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 4)))) == MTH_M_xFloatToReal(0.000000f) ) {
    M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Float;
    M_GetSetParam_xValue(&CFast_g_a_stParam[1]) = MTH_M_xLongToReal(1500) ;
  } else {
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[3], MTH_M_xMul(MTH_M_xLongToReal(1500),MTH_M_xFloatToReal(25.000000f)));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[2], MTH_M_xDiv(M_GetSetParam_xValue(&CFast_g_a_stParam[3]),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 4))))));
    M_xValueInterpret(&CFast_g_a_stParam[1]) = M_xValueInterpret(&CFast_g_a_stParam[2]);
  }
  LocalCFast_fn_vSetDsgVarFloat(2, M_GetSetParam_xValue(CFast_g_a_stParam+1)) ;

/* [Vector] *********** [3, 3, 2]*/
  CFast_CallVector2_Static (32) ;

/* [Op : ..] ********** [2, 1, 0]*/

/* [Func : VEC_VecteurAbsolu] ********** [3, 2, 1]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
    M_p_stVectorInterpret(p_stPseudoTree+37) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+2);
  CFast_CallFunction1_Static( 36 ) ;

/* [Proc : ACT_DeplacePerso] *********** [2, 2, 0]*/
    M_p_stVectorInterpret(p_stPseudoTree+39) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
  CFast_CallProcedure_Static( 38 ) ;

/* [Op : .] ********** [3, 2, 0]*/

/* [Op : v-] ********** [4, 2, 2]*/
  M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[E_ti_Operator][0]) = (tdeOperatorId)17 ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[2][1], E_ti_Field);
  M_eFieldIdInterpret(&CFast_g_a_stPseudoTree[2][1]) = (tdeFieldId)0 ;

/* [Op : .] ********** [0, 2, 0]*/
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[2][2], E_ti_Operator);
  M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[2][2]) = (tdeOperatorId)12 ;
  CFast_memcpy ( 2, 3, 0) ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[2][4], E_ti_Field);
  M_eFieldIdInterpret(&CFast_g_a_stPseudoTree[2][4]) = (tdeFieldId)0 ;
  CFast_CallOperator2_NoStatic( ) ;

/* [Op : ..] ********** [2, 1, 0]*/

/* [Func : ACT_ViseePerso] ********** [3, 1, 3]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallFunction3_Static( 41 ) ;

/* [Func : VEC_ContributionVecteur] ********** [2, 2, 1]*/
    M_p_stVectorInterpret(p_stPseudoTree+43) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+2);
    M_p_stVectorInterpret(p_stPseudoTree+44) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+3);
  CFast_CallFunction1_Static( 42 ) ;
  LocalCFast_fn_vSetDsgVarVector(6, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;

/* [Op : v-] ********** [2, 2, 2]*/
  CFast_CallOperator2_Static( 45 ) ;

/* [Func : COL_PointCollision] ********** [3, 3, 1]*/
    M_p_stVectorInterpret(p_stPseudoTree+49) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+2);
  CFast_CallFunction1_Static( 48 ) ;
  LocalCFast_fn_vSetDsgVarVector(7, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;

/* [Cond : VEC_VecteurNul] ********** [1, 1, 1]*/
  if ( !( CFast_CallCondition_Static(52) ) ) {
    MTH3D_M_vMulScalarVector(&M_GetSetParam_stVertexValue(&CFast_g_a_stParam[2]), MTH_M_xFloatToReal(-0.050000f), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 6))));
    M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Vector;
    MTH3D_M_vAddVector(&M_GetSetParam_stVertexValue(&CFast_g_a_stParam[1]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 7))), &M_GetSetParam_stVectorValue(&CFast_g_a_stParam[2]));
    M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Vector;

/* [Proc : ACT_ChangePositionAbsoluePerso] *********** [1, 1, 0]*/
      M_p_stVectorInterpret(p_stPseudoTree+55) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
    CFast_CallProcedure_Static( 54 ) ;
  }
/* [EndTree] ************ [0]*/

/* [Func : Temps_Obtenir] ********** [0, 0, 2]*/
  CFast_CallFunction2_Static( 56 ) ;
  LocalCFast_fn_vSetDsgVarFloat(16, MTH_M_xAdd(MTH_M_xLongToReal(M_GetSetParam_ulValue(CFast_g_a_stParam+2)),LocalCFast_fn_xGetDsgVarFloat(2))) ;
  CFast_Alw_Projectile_Rayman_model_Macro_0 () ;
/* [BeginMacro : 35] ********** [1]*/

/* [Proc : ACT_ImposeVecteurVitesseAbsolu] *********** [2, 1, 0]*/
  CFast_CallProcedure_Static( 57 ) ;

/* [Cond : >=] ********** [3, 2, 1]*/
  if ( MTH_M_bGreaterEqual((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 5)))), MTH_M_xFloatToReal(3.000000f)) ) {
    if (MTH3D_M_bIsNullVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))))) {
      MTH3D_M_vCopyVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[1]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
    } else {
      MTH3D_M_vNormalizeVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[1]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
    }
    M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Vector;
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[2], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 5)))),MTH_M_xFloatToReal(1.500000f)));

/* [Proc : LanceAGO] *********** [6, 5, 0]*/
      M_p_stVectorInterpret(p_stPseudoTree+62) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
      M_lValueInterpret(p_stPseudoTree+64) = M_GetSetParam_lValue(CFast_g_a_stParam+2);
    CFast_CallProcedure_Static( 59 ) ;
  }
/* [EndTree] ************ [1]*/

/* [Proc : ACT_ChangeCustomBit] *********** [3, 2, 0]*/
  CFast_CallProcedure_Static( 65 ) ;

/* [Proc : ACT_FixeFrequenceCalculIA] *********** [2, 1, 0]*/
  CFast_CallProcedure_Static( 68 ) ;

/* [Proc : ChangeMonComportement] *********** [2, 1, 0]*/
  CFast_CallProcedure_Static( 70 ) ;
  CFast_Alw_Projectile_Rayman_model_ArrayComport[p_stIntelligence->p_stCurrentComport->CFast_lMyIndex]();
  return ;
/* [EndTree] ************ [1]*/
}

long CFast_Alw_Projectile_Rayman_model_Macro_0 (void)
{
  MTH3D_tdstVector stVector0;
  MTH3D_tdstVector stVector1;
  MTH3D_tdstVector stVector2;
  MTH3D_tdstVector stVector3;


  register  AI_tdstMind * p_stLocalMind0 = p_stGlobalMind ;
  register struct tdstNodeInterpret_   *p_stRefTree = gp_stRefTree;
  register struct tdstNodeInterpret_ * p_stPseudoTree = gp_stPseudoTree ;
  register char * p_cLocalDsgMemBuffer = p_cGlobalDsgMemBuffer ;
  register tdstDsgVarInfo * p_stLocalDsgVarInfo = p_stGlobalDsgVarInfo ;

  register long long1 , long2 ;
  long long3 , long4 , long5 , long6 , long7 , long8 ;
  register AI_tdstMind * p_stLocalMind1 , * p_stLocalMind2 , * p_stLocalMind4 , * p_stLocalMind8 ;


/* [Cond : VEC_VecteurNul] ********** [2, 1, 1]*/
  if ( CFast_CallCondition_Static(72) ) {

/* [Func : ACT_ViseePerso] ********** [1, 0, 1]*/
    CFast_CallFunction1_Static( 41 ) ;
    LocalCFast_fn_vSetDsgVarVector(48, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
  }
  else {
    if (MTH3D_M_bIsNullVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))))) {
      MTH3D_M_vCopyVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[1]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
    } else {
      MTH3D_M_vNormalizeVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[1]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
    }
    M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Vector;
    LocalCFast_fn_vSetDsgVarVector(48, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
  }
/* [EndTree] ************ [1]*/
  LocalCFast_fn_vSetDsgVarVector(49, LocalCFast_fn_p_stGetDsgVarVector(48)) ;

/* [Op : .] ********** [4, 2, 0]*/

/* [Op : .] ********** [7, 2, 0]*/

/* [Op : .] ********** [10, 2, 0]*/

/* [Func : ACT_CibleLaPlusProche] ********** [12, 5, 1]*/
  M_eFuncIdInterpret(&CFast_g_a_stPseudoTree[E_ti_Function][0]) = (tdeFuncId)110 ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][1], E_ti_Constant);
  M_lValueInterpret(&CFast_g_a_stPseudoTree[3][1]) = 32 ;

/* [Op : .] ********** [1, 2, 0]*/
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][2], E_ti_Operator);
  M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[3][2]) = (tdeOperatorId)12 ;
  CFast_memcpy ( 3, 3, 0) ;
  CFast_memcpy ( 3, 4, 15) ;

/* [Op : .] ********** [1, 2, 0]*/
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][5], E_ti_Operator);
  M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[3][5]) = (tdeOperatorId)12 ;
  CFast_memcpy ( 3, 6, 0) ;
  CFast_memcpy ( 3, 7, 16) ;

/* [Op : .] ********** [1, 2, 0]*/
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][8], E_ti_Operator);
  M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[3][8]) = (tdeOperatorId)12 ;
  CFast_memcpy ( 3, 9, 0) ;
  CFast_memcpy ( 3, 10, 17) ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][11], E_ti_DsgVarRef);
  M_lValueInterpret(&CFast_g_a_stPseudoTree[3][11]) = 48 ;
  CFast_CallFunction1_NoStatic( ) ;
  LocalCFast_fn_vSetDsgVarPersoWithEngine(22, M_GetSetParam_p_stEngineObjValue(CFast_g_a_stParam+1)) ;

/* [Cond : ObjetValide] ********** [2, 1, 1]*/
  if ( CFast_CallCondition_Static(74) ) {
    POS_fn_vGetTranslationVector(HIE_fn_hGetSuperObjectMatrix(LocalCFast_fn_hGetDsgVarPerso(22)), &stVector1); ;

/* [Func : ZON_LitCentreZDEType] ********** [4, 2, 4]*/
    CFast_CallFunction4_Static( 76 ) ;

/* [Op : ..] ********** [4, 1, 0]*/

/* [Func : VEC_VecteurLocalToGlobal] ********** [5, 2, 3]*/
    CFast_fn_vSetUltraOperatorPersoVar(22);
      M_p_stVectorInterpret(p_stPseudoTree+80) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+4);
    CFast_CallFunction3_Static( 79 ) ;
    MTH3D_M_vAddVector(&stVector2, &stVector1,&M_GetSetParam_stVectorValue(CFast_g_a_stParam+3)) ;
    POS_fn_vGetTranslationVector(HIE_fn_hGetSuperObjectMatrix(g_hSuperObjectPerso), &stVector0); ;
    MTH3D_M_vSubVector(&stVector3, &stVector2,&stVector0) ;
    LocalCFast_fn_vSetDsgVarVector(20, &stVector3) ;
    if (MTH3D_M_bIsNullVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 20))))) {
      MTH3D_M_vCopyVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[1]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 20))));
    } else {
      MTH3D_M_vNormalizeVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[1]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 20))));
    }
    M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Vector;
    LocalCFast_fn_vSetDsgVarVector(48, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
  }
/* [EndTree] ************ [2]*/
  MTH3D_M_vMulScalarVector(&stVector0, MTH_M_xMul(MTH_M_xMul(LocalCFast_fn_xGetDsgVarFloat(2),MTH_M_xFloatToReal(0.00150f)),LocalCFast_fn_xGetDsgVarFloat(4)),LocalCFast_fn_p_stGetDsgVarVector(48)) ;
  LocalCFast_fn_vSetDsgVarVector(7, &stVector0) ;

/* [Func : COL_PointCollision] ********** [5, 3, 1]*/
  CFast_CallFunction1_Static( 81 ) ;
  LocalCFast_fn_vSetDsgVarVector(46, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;

/* [Func : COL_NormaleCollision] ********** [5, 3, 1]*/
  CFast_CallFunction1_Static( 85 ) ;
  LocalCFast_fn_vSetDsgVarVector(47, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;

/* [Cond : ObjetValide] ********** [3, 1, 1]*/
  if ( CFast_CallCondition_Static(74) ) {
    POS_fn_vGetTranslationVector(HIE_fn_hGetSuperObjectMatrix(g_hSuperObjectPerso), &stVector0); ;
    MTH3D_M_vSubVector(&stVector1, LocalCFast_fn_p_stGetDsgVarVector(46),&stVector0) ;
    LocalCFast_fn_vSetDsgVarVector(7, &stVector1) ;
    M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH3D_M_xNormVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 20))));
    M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;
    M_GetSetParam_xValue(&CFast_g_a_stParam[3]) = MTH3D_M_xNormVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 7))));
    M_GetSetParam_Type(&CFast_g_a_stParam[3]) = E_vt_Float;

/* [Cond : >] ********** [4, 2, 1]*/
    if ( MTH_M_bGreater(M_GetSetParam_xValue(&CFast_g_a_stParam[2]), M_GetSetParam_xValue(&CFast_g_a_stParam[3])) ) {
      LocalCFast_fn_vSetDsgVarVector(48, LocalCFast_fn_p_stGetDsgVarVector(49)) ;
      MTH3D_M_vMulScalarVector(&stVector0, MTH_M_xMul(MTH_M_xMul(LocalCFast_fn_xGetDsgVarFloat(2),MTH_M_xFloatToReal(0.00150f)),LocalCFast_fn_xGetDsgVarFloat(4)),LocalCFast_fn_p_stGetDsgVarVector(48)) ;
      LocalCFast_fn_vSetDsgVarVector(7, &stVector0) ;

/* [Func : COL_PointCollision] ********** [5, 3, 1]*/
      CFast_CallFunction1_Static( 81 ) ;
      LocalCFast_fn_vSetDsgVarVector(46, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;

/* [Func : COL_NormaleCollision] ********** [5, 3, 1]*/
      CFast_CallFunction1_Static( 85 ) ;
      LocalCFast_fn_vSetDsgVarVector(47, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
    }
  }
/* [EndTree] ************ [2]*/

/* [Cond : VEC_VecteurNul] ********** [3, 1, 1]*/
  if ( CFast_CallCondition_Static(89) ) {
    POS_fn_vGetTranslationVector(HIE_fn_hGetSuperObjectMatrix(g_hSuperObjectPerso), &stVector1); ;
    MTH3D_M_vMulScalarVector(&stVector0, MTH_M_xFloatToReal(2.00000f),LocalCFast_fn_p_stGetDsgVarVector(7)) ;
    MTH3D_M_vAddVector(&stVector2, &stVector1,&stVector0) ;
    LocalCFast_fn_vSetDsgVarVector(46, &stVector2) ;
    MTH3D_M_vNegVector(&stVector0,LocalCFast_fn_p_stGetDsgVarVector(48)) ;
    LocalCFast_fn_vSetDsgVarVector(47, &stVector0) ;
  }
/* [EndTree] ************ [2]*/
  MTH3D_M_vMulScalarVector(&stVector0, LocalCFast_fn_xGetDsgVarFloat(4),LocalCFast_fn_p_stGetDsgVarVector(48)) ;
  LocalCFast_fn_vSetDsgVarVector(13, &stVector0) ;
  MTH3D_M_vMulScalarVector(&stVector0, MTH_M_xFloatToReal(3.00000f),LocalCFast_fn_p_stGetDsgVarVector(48)) ;
  MTH3D_M_vAddVector(LocalCFast_fn_p_stGetDsgVarVector(46),LocalCFast_fn_p_stGetDsgVarVector(46),&stVector0) ;
  return 0 ;
}
/*
 * Model : Alw_Projectile_Rayman_model Comportement YLT_Shoot
 */
void CFast_Alw_Projectile_Rayman_model_Cmp_YLT_Shoot (void)
{
  MTH3D_tdstVector stVector0;
  MTH3D_tdstVector stVector1;
  MTH3D_tdstVector stVector2;
  MTH3D_tdstVector stVector3;


  register  AI_tdstMind * p_stLocalMind0 = p_stGlobalMind ;
  register struct tdstNodeInterpret_   *p_stRefTree = gp_stRefTree;
  register struct tdstNodeInterpret_ * p_stPseudoTree = gp_stPseudoTree ;
  register char * p_cLocalDsgMemBuffer = p_cGlobalDsgMemBuffer ;
  register tdstDsgVarInfo * p_stLocalDsgVarInfo = p_stGlobalDsgVarInfo ;

  register long long1 , long2 ;
  long long3 , long4 , long5 , long6 , long7 , long8 ;
  register AI_tdstMind * p_stLocalMind1 , * p_stLocalMind2 , * p_stLocalMind4 , * p_stLocalMind8 ;

  if ( ! ( gcGlobAleat & 0x1 ) )
  {

/* [Cond : >=] ********** [2, 2, 1]*/
    if ( MTH_M_bGreaterEqual((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 5)))), MTH_M_xFloatToReal(3.000000f)) ) {
      if ( (*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 5)))) > MTH_M_xFloatToReal(3.000000f) ) {
        M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;
        M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH_M_xFloatToReal(9.000000f) ;
      } else {
        M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;
        M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH_M_xFloatToReal(30.000000f) ;
      }
      M_GetSetParam_lValue(&CFast_g_a_stParam[1]) = MTH_M_xRealToLong(M_GetSetParam_xValue(&CFast_g_a_stParam[2])) ;
      M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Integer;

/* [Math_ : Math_ConversionEnEntier] ********** [0, 1, 1]*/

/* [Proc : LanceAGO] *********** [5, 5, 0]*/
        M_lValueInterpret(p_stPseudoTree+92) = M_GetSetParam_lValue(CFast_g_a_stParam+1);
      CFast_CallProcedure_Static( 91 ) ;
    }
  }
/* [EndTree] ************ [0]*/
  if ( ! ( gcGlobAleat & 0x3 ) )
  {

/* [Cond : EstDansAction] ********** [1, 1, 2]*/
    if ( !( CFast_CallCondition_Static(97) ) ) {

/* [Func : Temps_Obtenir] ********** [0, 0, 2]*/
      CFast_CallFunction2_Static( 56 ) ;

/* [Cond : >] ********** [2, 2, 1]*/
        M_lValueInterpret(p_stPseudoTree+100) = M_GetSetParam_lValue(CFast_g_a_stParam+2);
      if ( CFast_CallCondition_Static(99) ) {

/* [Proc : ACT_ChangeCustomBit] *********** [2, 2, 0]*/
        CFast_CallProcedure_Static( 102 ) ;

/* [Proc : ChangeAction] *********** [1, 1, 0]*/
        fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
        CFast_CallProcedure_Static( 105 ) ;
        if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
          return ;
        }
      }
      else {

/* [Func : ACT_CompteObjetsGeneres] ********** [1, 1, 2]*/
        CFast_CallFunction2_Static( 2 ) ;

/* [Cond : >=] ********** [2, 2, 1]*/
          M_lValueInterpret(p_stPseudoTree+108) = M_GetSetParam_lValue(CFast_g_a_stParam+2);
        if ( CFast_CallCondition_Static(107) ) {
          LocalCFast_fn_vSetDsgVar0To255(1, (LocalCFast_fn_lGetDsgVar0To255(1)-1)) ;
          if ( !( (*((char *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 1)))) ) ) {

/* [Proc : ACT_ChangeCustomBit] *********** [2, 2, 0]*/
            CFast_CallProcedure_Static( 102 ) ;

/* [Proc : ChangeAction] *********** [1, 1, 0]*/
            fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
            CFast_CallProcedure_Static( 105 ) ;
            if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
              return ;
            }
          }
        }
      }
    }
  }
/* [EndTree] ************ [0]*/

/* [Op : v-] ********** [2, 2, 3]*/
  CFast_CallOperator3_Static( 110 ) ;
  M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH3D_M_xNormVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[3]));
  M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;

/* [Cond : <] ********** [2, 2, 1]*/
  if ( MTH_M_bLess(M_GetSetParam_xValue(&CFast_g_a_stParam[2]), MTH_M_xFloatToReal(3.500000f)) ) {
    CFast_Alw_Projectile_Rayman_model_Macro_1 () ;
/* [BeginMacro : 9] ********** [0]*/
    if ( (*((char *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 3)))) ) {

/* [Keyword : Moi] ********** [0, 0, 1]*/
      MTH3D_M_vMulScalarVector(&M_GetSetParam_stVertexValue(&CFast_g_a_stParam[3]), MTH_M_xFloatToReal(3.010000f), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 48))));
      M_GetSetParam_Type(&CFast_g_a_stParam[3]) = E_vt_Vector;
      MTH3D_M_vSubVector(&M_GetSetParam_stVertexValue(&CFast_g_a_stParam[2]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 46))), &M_GetSetParam_stVectorValue(&CFast_g_a_stParam[3]));
      M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Vector;

/* [Proc : ACT_FixePositionPerso] *********** [2, 2, 0]*/
        M_p_stVectorInterpret(p_stPseudoTree+115) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+2);
      CFast_CallProcedure_Static( 113 ) ;
      LocalCFast_fn_vSetDsgVar0To255(3, (LocalCFast_fn_lGetDsgVar0To255(3)-1)) ;

/* [Func : COL_CalculVecteurRebond] ********** [3, 3, 1]*/
      CFast_CallFunction1_Static( 116 ) ;
      LocalCFast_fn_vSetDsgVarVector(13, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
      CFast_Alw_Projectile_Rayman_model_Macro_0 () ;
/* [BeginMacro : 34] ********** [0]*/

/* [Proc : ACT_ImposeVecteurVitesseAbsolu] *********** [1, 1, 0]*/
      CFast_CallProcedure_Static( 57 ) ;
    }
    else {

/* [Keyword : Moi] ********** [0, 0, 1]*/

/* [Proc : DetruitPerso] *********** [1, 1, 0]*/
      fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
      CFast_CallProcedure_Static( 0 ) ;
      if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
        return ;
      }
    }
  }
/* [EndTree] ************ [0]*/
  if (CFast_Alw_Projectile_Rayman_model_Macro_2 ())
    return ;
/* [BeginMacro : 7] ********** [0]*/
/* [EndTree] ************ [0]*/

/* [Proc : LST_AffecteListeAvecTypeZDEPerso] *********** [3, 3, 0]*/
  CFast_CallProcedure_Static( 120 ) ;

/* [Cond : LST_ListeVide] ********** [1, 1, 1]*/
  if ( !( CFast_CallCondition_Static(124) ) ) {

/* [Proc : LST_DetruitModeleDansListe] *********** [2, 2, 0]*/
    CFast_CallProcedure_Static( 126 ) ;

/* [Proc : LST_DetruitFamilleDansListe] *********** [2, 2, 0]*/
    CFast_CallProcedure_Static( 129 ) ;

/* [Cond : LST_ListeVide] ********** [1, 1, 1]*/
    if ( !( CFast_CallCondition_Static(124) ) ) {

/* [Func : LST_PrendPersoDansListe] ********** [2, 2, 1]*/
      CFast_CallFunction1_Static( 132 ) ;
      LocalCFast_fn_vSetDsgVarPersoWithEngine(18, M_GetSetParam_p_stEngineObjValue(CFast_g_a_stParam+1)) ;

/* [Op : ..] ********** [3, 1, 0]*/

/* [Proc : COL_ChangeTypeDeCollisionneur] *********** [4, 3, 0]*/
      CFast_fn_vSetUltraOperatorPersoVar(18);
      CFast_CallProcedure_Static( 135 ) ;
      if (MTH3D_M_bIsNullVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))))) {
        MTH3D_M_vCopyVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[1]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
      } else {
        MTH3D_M_vNormalizeVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[1]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
      }
      M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Vector;

/* [Op : ..] ********** [4, 1, 0]*/

/* [Proc : COL_ChangeVecteurDeCollisionneur] *********** [5, 4, 0]*/
      CFast_fn_vSetUltraOperatorPersoVar(18);
        M_p_stVectorInterpret(p_stPseudoTree+141) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
      CFast_CallProcedure_Static( 138 ) ;

/* [Op : ..] ********** [4, 1, 0]*/

/* [Proc : COL_ChangeReelDeCollisionneur] *********** [5, 4, 0]*/
      CFast_fn_vSetUltraOperatorPersoVar(18);
      CFast_CallProcedure_Static( 142 ) ;
      CFast_Alw_Projectile_Rayman_model_Macro_3 () ;
/* [BeginMacro : 20] ********** [0]*/

/* [Keyword : Moi] ********** [0, 0, 1]*/

/* [Proc : DetruitPerso] *********** [1, 1, 0]*/
      fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
      CFast_CallProcedure_Static( 0 ) ;
      if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
        return ;
      }
    }
  }
/* [EndTree] ************ [0]*/
}

long CFast_Alw_Projectile_Rayman_model_Macro_1 (void)
{
  MTH3D_tdstVector stVector0;
  MTH3D_tdstVector stVector1;
  MTH3D_tdstVector stVector2;
  MTH3D_tdstVector stVector3;


  register  AI_tdstMind * p_stLocalMind0 = p_stGlobalMind ;
  register struct tdstNodeInterpret_   *p_stRefTree = gp_stRefTree;
  register struct tdstNodeInterpret_ * p_stPseudoTree = gp_stPseudoTree ;
  register char * p_cLocalDsgMemBuffer = p_cGlobalDsgMemBuffer ;
  register tdstDsgVarInfo * p_stLocalDsgVarInfo = p_stGlobalDsgVarInfo ;

  register long long1 , long2 ;
  long long3 , long4 , long5 , long6 , long7 , long8 ;
  register AI_tdstMind * p_stLocalMind1 , * p_stLocalMind2 , * p_stLocalMind4 , * p_stLocalMind8 ;


/* [Proc : EnvoieRequeteSon] *********** [1, 1, 0]*/
  CFast_CallProcedure_Static( 146 ) ;

/* [Cond : ACT_TestCustomBit] ********** [1, 1, 1]*/
  if ( !( CFast_CallCondition_Static(148) ) ) {
    MTH3D_M_vMulScalarVector(&stVector0, MTH_M_xFloatToReal(3.50000f),LocalCFast_fn_p_stGetDsgVarVector(48)) ;
    MTH3D_M_vSubVector(&stVector1, LocalCFast_fn_p_stGetDsgVarVector(46),&stVector0) ;
    LocalCFast_fn_vSetDsgVarVector(6, &stVector1) ;

/* [Op : .] ********** [2, 2, 0]*/
    p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(2) ,Brain));
    long1 = (*((char *)(M_GetDsgVarAddr(p_stLocalMind1, 47))));
    if ( long1 ) {

/* [Vector] *********** [5, 3, 1]*/
      CFast_CallVector1_Static (150) ;

/* [Proc : LanceAGO] *********** [5, 5, 0]*/
        M_p_stVectorInterpret(p_stPseudoTree+157) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
      CFast_CallProcedure_Static( 154 ) ;
    }
    else {

/* [Vector] *********** [5, 3, 1]*/
      CFast_CallVector1_Static (150) ;

/* [Proc : LanceAGO] *********** [5, 5, 0]*/
        M_p_stVectorInterpret(p_stPseudoTree+163) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
      CFast_CallProcedure_Static( 160 ) ;
    }
  }
  return 0 ;
}
long CFast_Alw_Projectile_Rayman_model_Macro_2 (void)
{
  MTH3D_tdstVector stVector0;
  MTH3D_tdstVector stVector1;
  MTH3D_tdstVector stVector2;
  MTH3D_tdstVector stVector3;


  register  AI_tdstMind * p_stLocalMind0 = p_stGlobalMind ;
  register struct tdstNodeInterpret_   *p_stRefTree = gp_stRefTree;
  register struct tdstNodeInterpret_ * p_stPseudoTree = gp_stPseudoTree ;
  register tdstIntelligence * p_stIntelligence = p_stLocalMind0 -> p_stIntelligence ;
  register char * p_cLocalDsgMemBuffer = p_cGlobalDsgMemBuffer ;
  register tdstDsgVarInfo * p_stLocalDsgVarInfo = p_stGlobalDsgVarInfo ;

  register long long1 , long2 ;
  long long3 , long4 , long5 , long6 , long7 , long8 ;
  register AI_tdstMind * p_stLocalMind1 , * p_stLocalMind2 , * p_stLocalMind4 , * p_stLocalMind8 ;


/* [Op : .] ********** [2, 2, 0]*/
  p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(0) ,Brain));
  long1 = (*((char *)(M_GetDsgVarAddr(p_stLocalMind1, 108))));
  if ( long1 ) {

/* [Proc : LST_AffecteListeAvecTypeZDEPerso] *********** [3, 3, 0]*/
    CFast_CallProcedure_Static( 166 ) ;

/* [Cond : LST_ListeVide] ********** [1, 1, 1]*/
    if ( !( CFast_CallCondition_Static(124) ) ) {

/* [Func : LST_PrendPersoDansListe] ********** [2, 2, 1]*/
      CFast_CallFunction1_Static( 132 ) ;
      LocalCFast_fn_vSetDsgVarPersoWithEngine(21, M_GetSetParam_p_stEngineObjValue(CFast_g_a_stParam+1)) ;

/* [Op : ..] ********** [3, 1, 0]*/

/* [Proc : COL_ChangeTypeDeCollisionneur] *********** [4, 3, 0]*/
      CFast_fn_vSetUltraOperatorPersoVar(21);
      CFast_CallProcedure_Static( 135 ) ;

/* [Keyword : Personne] ********** [0, 0, 1]*/
      CFast_CallKeyword_Static(170, 1) ;

/* [Proc : HIER_ForcePere] *********** [1, 1, 0]*/
            CFast_CallProcedure_Static( 171 ) ;

/* [Proc : ACT_FixeFrequenceCalculIA] *********** [1, 1, 0]*/
      CFast_CallProcedure_Static( 173 ) ;

/* [Proc : ChangeMonComportement] *********** [1, 1, 0]*/
      CFast_CallProcedure_Static( 175 ) ;
      if ( !CFast_g_bProcessReflex )
{
        CFast_Alw_Projectile_Rayman_model_ArrayComport[p_stIntelligence->p_stCurrentComport->CFast_lMyIndex]();
        return (1) ;
      }
    }
  }
  return 0 ;
}
long CFast_Alw_Projectile_Rayman_model_Macro_3 (void)
{
  MTH3D_tdstVector stVector0;
  MTH3D_tdstVector stVector1;
  MTH3D_tdstVector stVector2;
  MTH3D_tdstVector stVector3;


  register  AI_tdstMind * p_stLocalMind0 = p_stGlobalMind ;
  register struct tdstNodeInterpret_   *p_stRefTree = gp_stRefTree;
  register struct tdstNodeInterpret_ * p_stPseudoTree = gp_stPseudoTree ;
  register char * p_cLocalDsgMemBuffer = p_cGlobalDsgMemBuffer ;
  register tdstDsgVarInfo * p_stLocalDsgVarInfo = p_stGlobalDsgVarInfo ;

  register long long1 , long2 ;
  long long3 , long4 , long5 , long6 , long7 , long8 ;
  register AI_tdstMind * p_stLocalMind1 , * p_stLocalMind2 , * p_stLocalMind4 , * p_stLocalMind8 ;


/* [Proc : EnvoieRequeteSon] *********** [1, 1, 0]*/
  CFast_CallProcedure_Static( 146 ) ;

/* [Cond : ACT_TestCustomBit] ********** [1, 1, 1]*/
  if ( !( CFast_CallCondition_Static(148) ) ) {

/* [Cond : >] ********** [2, 2, 1]*/
    if ( MTH_M_bGreater((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 5)))), MTH_M_xFloatToReal(3.000000f)) ) {

/* [Vector] *********** [5, 3, 1]*/
      CFast_CallVector1_Static (150) ;

/* [Proc : LanceAGO] *********** [5, 5, 0]*/
        M_p_stVectorInterpret(p_stPseudoTree+180) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
      CFast_CallProcedure_Static( 177 ) ;

/* [Vector] *********** [5, 3, 1]*/
      CFast_CallVector1_Static (150) ;

/* [Proc : LanceAGO] *********** [5, 5, 0]*/
        M_p_stVectorInterpret(p_stPseudoTree+186) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
      CFast_CallProcedure_Static( 183 ) ;

/* [Vector] *********** [5, 3, 1]*/
      CFast_CallVector1_Static (150) ;

/* [Proc : LanceAGO] *********** [5, 5, 0]*/
        M_p_stVectorInterpret(p_stPseudoTree+192) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
      CFast_CallProcedure_Static( 189 ) ;

/* [Vector] *********** [5, 3, 1]*/
      CFast_CallVector1_Static (150) ;
      M_Full_GetSetParam_Float(&CFast_g_a_stParam[2], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 5)))),MTH_M_xFloatToReal(1.200000f)));

/* [Proc : LanceAGO] *********** [5, 5, 0]*/
        M_p_stVectorInterpret(p_stPseudoTree+198) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
        M_lValueInterpret(p_stPseudoTree+200) = M_GetSetParam_lValue(CFast_g_a_stParam+2);
      CFast_CallProcedure_Static( 195 ) ;
    }
    else {

/* [Op : .] ********** [2, 2, 0]*/
      p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(2) ,Brain));
      long1 = (*((char *)(M_GetDsgVarAddr(p_stLocalMind1, 47))));
      if ( long1 ) {

/* [Vector] *********** [5, 3, 1]*/
        CFast_CallVector1_Static (150) ;
        if ( (*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 5)))) >= MTH_M_xFloatToReal(3.000000f) ) {
          M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;
          M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH_M_xFloatToReal(3.000000f) ;
        } else {
          M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;
          M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH_M_xFloatToReal(1.000000f) ;
        }

/* [Proc : LanceAGO] *********** [5, 5, 0]*/
          M_p_stVectorInterpret(p_stPseudoTree+204) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
          M_lValueInterpret(p_stPseudoTree+206) = M_GetSetParam_lValue(CFast_g_a_stParam+2);
        CFast_CallProcedure_Static( 201 ) ;
      }
      else {

/* [Vector] *********** [5, 3, 1]*/
        CFast_CallVector1_Static (150) ;

/* [Proc : LanceAGO] *********** [5, 5, 0]*/
          M_p_stVectorInterpret(p_stPseudoTree+210) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
        CFast_CallProcedure_Static( 207 ) ;
      }
    }
  }
  return 0 ;
}
/*
 * Model : Alw_Projectile_Rayman_model Comportement BNT_PoingGrappin
 */
void CFast_Alw_Projectile_Rayman_model_Cmp_BNT_PoingGrappin (void)
{
  MTH3D_tdstVector stVector0;
  MTH3D_tdstVector stVector1;
  MTH3D_tdstVector stVector2;
  MTH3D_tdstVector stVector3;
  MTH3D_tdstVector stVector4;


  register  AI_tdstMind * p_stLocalMind0 = p_stGlobalMind ;
  register struct tdstNodeInterpret_   *p_stRefTree = gp_stRefTree;
  register struct tdstNodeInterpret_ * p_stPseudoTree = gp_stPseudoTree ;
  register char * p_cLocalDsgMemBuffer = p_cGlobalDsgMemBuffer ;
  register tdstDsgVarInfo * p_stLocalDsgVarInfo = p_stGlobalDsgVarInfo ;

  register long long1 , long2 ;
  long long3 , long4 , long5 , long6 , long7 , long8 ;
  register AI_tdstMind * p_stLocalMind1 , * p_stLocalMind2 , * p_stLocalMind4 , * p_stLocalMind8 ;


/* [Cond : ObjetValide] ********** [1, 1, 2]*/
  long1 = CFast_CallCondition_Static(213) ;
if ( long1 ) {

/* [Op : ..] ********** [1, 1, 0]*/

/* [Cond : EstActivable] ********** [2, 1, 3]*/
    CFast_fn_vSetUltraOperatorPersoVar(21);
    long1 = CFast_CallCondition_Static(215) ;
  }
  if ( long1 ) {
    POS_fn_vGetTranslationVector(HIE_fn_hGetSuperObjectMatrix(LocalCFast_fn_hGetDsgVarPerso(21)), &stVector0); ;
    LocalCFast_fn_vSetDsgVarVector(38, &stVector0) ;

/* [Proc : ACT_ChangePositionAbsoluePerso] *********** [2, 1, 0]*/
    CFast_CallProcedure_Static( 216 ) ;
    POS_fn_vGetTranslationVector(HIE_fn_hGetSuperObjectMatrix(M_GetSuperObject(M_p_stPersoRefInterpret(p_stRefTree+0))), &stVector0); ;
    MTH3D_M_vSubVector(&stVector1, LocalCFast_fn_p_stGetDsgVarVector(38),&stVector0) ;
    LocalCFast_fn_vSetDsgVarVector(41, &stVector1) ;
    M_GetSetParam_xValue(&CFast_g_a_stParam[1]) = MTH3D_M_xNormVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 41))));
    M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Float;
    LocalCFast_fn_vSetDsgVarFloat(35, M_GetSetParam_xValue(CFast_g_a_stParam+1)) ;
    if ( !( (*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 35)))) ) ) {

/* [Op : ..] ********** [3, 1, 0]*/

/* [Func : ACT_AssiettePerso] ********** [4, 1, 2]*/
      CFast_fn_vSetUltraOperatorPersoRef(0);
      CFast_CallFunction2_Static( 218 ) ;
      MTH3D_M_vMulScalarVector(&stVector0, MTH_M_xFloatToReal(0.10000f),&M_GetSetParam_stVectorValue(CFast_g_a_stParam+2)) ;
      LocalCFast_fn_vSetDsgVarVector(41, &stVector0) ;
      LocalCFast_fn_vSetDsgVarFloat(35, MTH_M_xFloatToReal(0.10000f)) ;
    }

/* [Func : VEC_VecteurRelatif] ********** [3, 1, 2]*/
    CFast_CallFunction2_Static( 219 ) ;
    MTH3D_M_vDivScalarVector(&stVector0, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+2),LocalCFast_fn_xGetDsgVarFloat(35)) ;
    LocalCFast_fn_vSetDsgVarVector(39, &stVector0) ;
    LocalCFast_fn_vSetDsgVarFloat(36, LocalCFast_fn_p_stGetDsgVarVector(39)->xZ) ;
    LocalCFast_fn_vSetDsgVarFloat(45, LocalCFast_fn_xGetDsgVarFloat(37)) ;
    LocalCFast_fn_vSetDsgVarFloat(37, LocalCFast_fn_p_stGetDsgVarVector(39)->xY) ;
  }
  else {
    LocalCFast_fn_vSetDsgVarFloat(36, MTH_M_xFloatToReal(0.00000f)) ;
    CFast_fn_vSetDsgVarBoolean(M_CFast_ucGetRealIndice(31), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),1) ;
  }
/* [EndTree] ************ [2]*/

/* [Op : .] ********** [4, 2, 0]*/
  p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(0) ,Brain));
  long1 = (*((char *)(M_GetDsgVarAddr(p_stLocalMind1, 60))));
  if ( long1 ) {
    CFast_fn_vSetDsgVarInteger(M_CFast_ucGetRealIndice(32), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),(-2 * LocalCFast_fn_lGetDsgVarInteger(42))) ;

/* [Func : ACT_ViseePerso] ********** [2, 0, 1]*/
    CFast_CallFunction1_Static( 41 ) ;
    CFast_fn_vSetDsgVarVector(M_CFast_ucGetRealIndice(33), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),&M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;

/* [Op : .] ********** [4, 2, 0]*/

/* [Func : Math_MinimumReel] ********** [6, 2, 1]*/
    M_eFuncIdInterpret(&CFast_g_a_stPseudoTree[E_ti_Function][0]) = (tdeFuncId)27 ;

/* [Op : .] ********** [2, 2, 0]*/
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][1], E_ti_Operator);
    M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[3][1]) = (tdeOperatorId)12 ;
    CFast_memcpy ( 3, 2, 0) ;
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][3], E_ti_Field);
    M_eFieldIdInterpret(&CFast_g_a_stPseudoTree[3][3]) = (tdeFieldId)3 ;
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][4], E_ti_DsgVarRef);
    M_lValueInterpret(&CFast_g_a_stPseudoTree[3][4]) = 34 ;
    CFast_CallFunction1_NoStatic( ) ;
    LocalCFast_fn_vSetDsgVarFloat(8, M_GetSetParam_xValue(CFast_g_a_stParam+1)) ;

/* [Op : ..] ********** [3, 1, 0]*/

/* [Func : ACT_ViseePerso] ********** [4, 1, 1]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
    CFast_CallFunction1_Static( 41 ) ;
    LocalCFast_fn_vSetDsgVarVector(11, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
    MTH3D_M_vSetVectorElements(&stVector0, MTH_M_xFloatToReal(0.00000f), MTH_M_xFloatToReal(0.00000f), MTH_M_xMul(LocalCFast_fn_p_stGetDsgVarVector(11)->xZ,LocalCFast_fn_xGetDsgVarFloat(8))) ;
    LocalCFast_fn_vSetDsgVarVector(12, &stVector0) ;
    (LocalCFast_fn_p_stGetDsgVarVector(11))->xZ= MTH_M_xFloatToReal(0.00000f) ;

/* [Op : .] ********** [4, 2, 0]*/
    p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(0) ,Brain));
    M_Full_GetSetParam_Integer(&CFast_g_a_stParam[3], (*((int *)(M_GetDsgVarAddr(p_stLocalMind1, 92)))) - 1);

/* [Op : .] ********** [5, 2, 0]*/
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[5], MTH_M_xDiv(MTH_M_xFloatToReal(3.000000f),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 35))))));
    p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(0) ,Brain));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[4], MTH_M_xMul(MTH_M_xLongToReal((*((int *)(M_GetDsgVarAddr(p_stLocalMind1, 92))))),M_GetSetParam_xValue(&CFast_g_a_stParam[5])));
    M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH_M_xMin(MTH_M_xLongToReal(M_GetSetParam_lValue(&CFast_g_a_stParam[3])),M_GetSetParam_xValue(&CFast_g_a_stParam[4]));
    M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;

/* [Math_ : Math_MinimumReel] ********** [2, 2, 2]*/
    M_GetSetParam_lValue(&CFast_g_a_stParam[1]) = MTH_M_xRealToLong(M_GetSetParam_xValue(&CFast_g_a_stParam[2])) ;
    M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Integer;

/* [Math_ : Math_ConversionEnEntier] ********** [2, 1, 1]*/
    CFast_fn_vSetDsgVarInteger(M_CFast_ucGetRealIndice(34), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),M_GetSetParam_lValue(CFast_g_a_stParam+1)) ;

/* [Func : ACT_ViseePerso] ********** [3, 0, 8]*/
    CFast_CallFunction8_Static( 41 ) ;

/* [Op : .] ********** [6, 2, 0]*/

/* [Func : VEC_ProduitScalaire] ********** [7, 2, 7]*/
    M_eFuncIdInterpret(&CFast_g_a_stPseudoTree[E_ti_Function][0]) = (tdeFuncId)147 ;
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][1], E_ti_ConstantVector);
    M_p_stVectorInterpret(&CFast_g_a_stPseudoTree[3][1]) = &M_GetSetParam_stVectorValue(&CFast_g_a_stParam[8]) ;

/* [Op : .] ********** [3, 2, 0]*/
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][2], E_ti_Operator);
    M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[3][2]) = (tdeOperatorId)12 ;
    CFast_memcpy ( 3, 3, 0) ;
    CFast_memcpy ( 3, 4, 37) ;
    CFast_CallFunction7_NoStatic( ) ;
    M_GetSetParam_xValue(&CFast_g_a_stParam[6]) = MTH_M_xMax(MTH_M_xFloatToReal(0.000000f),M_GetSetParam_xValue(&CFast_g_a_stParam[7]));
    M_GetSetParam_Type(&CFast_g_a_stParam[6]) = E_vt_Float;

/* [Math_ : Math_MaximumReel] ********** [2, 2, 6]*/
    MTH3D_M_vMulScalarVector(&stVector1, MTH_M_xMul(M_GetSetParam_xValue(CFast_g_a_stParam+6),MTH_M_xFloatToReal(0.02000f)),LocalCFast_fn_p_stGetDsgVarVector(11)) ;
    MTH3D_M_vMulScalarVector(&stVector2, LocalCFast_fn_xGetDsgVarFloat(8),&stVector1) ;
    MTH3D_M_vAddVector(&stVector3, &stVector2,LocalCFast_fn_p_stGetDsgVarVector(12)) ;
    MTH3D_M_vMulScalarVector(&stVector0, MTH_M_xFloatToReal(-0.25000f),LocalCFast_fn_p_stGetDsgVarVector(41)) ;
    MTH3D_M_vAddVector(&stVector4, &stVector3,&stVector0) ;
    CFast_fn_vSetDsgVarVector(M_CFast_ucGetRealIndice(36), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),&stVector4) ;
    CFast_fn_vSetDsgVarBoolean(M_CFast_ucGetRealIndice(31), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),0) ;

/* [Keyword : Moi] ********** [3, 0, 1]*/

/* [Proc : DetruitPerso] *********** [4, 1, 0]*/
    fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
    CFast_CallProcedure_Static( 0 ) ;
    if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
      return ;
    }
  }
/* [EndTree] ************ [3]*/

/* [Func : Temps_LitDT] ********** [3, 0, 2]*/
  CFast_CallFunction2_Static( 221 ) ;
  LocalCFast_fn_vSetDsgVarFloat(32, MTH_M_xMul(M_GetSetParam_xValue(CFast_g_a_stParam+2),MTH_M_xFloatToReal(0.00100f))) ;
  if ( (*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 35)))) > (*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 26)))) ) {
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[4], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 32)))),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 27))))));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[3], MTH_M_xSub((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 35)))),M_GetSetParam_xValue(&CFast_g_a_stParam[4])));
    M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH_M_xMax(M_GetSetParam_xValue(&CFast_g_a_stParam[3]),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 26)))));
    M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;

/* [Math_ : Math_MaximumReel] ********** [4, 2, 2]*/
    M_xValueInterpret(&CFast_g_a_stParam[1]) = M_xValueInterpret(&CFast_g_a_stParam[2]);
  } else {
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[5], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 32)))),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 27))))));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[4], MTH_M_xAdd((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 35)))),M_GetSetParam_xValue(&CFast_g_a_stParam[5])));
    M_GetSetParam_xValue(&CFast_g_a_stParam[3]) = MTH_M_xMin(M_GetSetParam_xValue(&CFast_g_a_stParam[4]),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 26)))));
    M_GetSetParam_Type(&CFast_g_a_stParam[3]) = E_vt_Float;

/* [Math_ : Math_MinimumReel] ********** [4, 2, 3]*/
    M_xValueInterpret(&CFast_g_a_stParam[1]) = M_xValueInterpret(&CFast_g_a_stParam[3]);
  }
  LocalCFast_fn_vSetDsgVarFloat(35, M_GetSetParam_xValue(CFast_g_a_stParam+1)) ;
  M_Full_GetSetParam_Float(&CFast_g_a_stParam[5], MTH_M_xMul(MTH_M_xFloatToReal(1.250000f),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 35))))));
  M_Full_GetSetParam_Float(&CFast_g_a_stParam[4], MTH_M_xSub(M_GetSetParam_xValue(&CFast_g_a_stParam[5]),MTH_M_xFloatToReal(1.750000f)));
  M_GetSetParam_xValue(&CFast_g_a_stParam[3]) = MTH_M_xMax(M_GetSetParam_xValue(&CFast_g_a_stParam[4]),MTH_M_xFloatToReal(5.000000f));
  M_GetSetParam_Type(&CFast_g_a_stParam[3]) = E_vt_Float;

/* [Math_ : Math_MaximumReel] ********** [4, 2, 3]*/
  LocalCFast_fn_vSetDsgVarFloat(16, MTH_M_xDiv(MTH_M_xFloatToReal(14.00000f),MTH_M_xAdd(LocalCFast_fn_xGetDsgVarFloat(35),M_GetSetParam_xValue(CFast_g_a_stParam+3)))) ;
  M_Full_GetSetParam_Float(&CFast_g_a_stParam[1], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 16)))),MTH_M_xFloatToReal(100.000000f)));

/* [Op : ..] ********** [7, 1, 0]*/

/* [Proc : FixeFacteurVitesseAnimation] *********** [8, 2, 0]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
    M_lValueInterpret(p_stPseudoTree+223) = M_GetSetParam_lValue(CFast_g_a_stParam+1);
  CFast_CallProcedure_Static( 222 ) ;

/* [Cond : <=] ********** [7, 2, 1]*/
  if ( MTH_M_bLessEqual((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 36)))), (*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 23))))) ) {
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[6], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 32)))),MTH_M_xLongToReal((*((int *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 42)))))));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[5], MTH_M_xMul(M_GetSetParam_xValue(&CFast_g_a_stParam[6]),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 37))))));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[4], MTH_M_xMul(M_GetSetParam_xValue(&CFast_g_a_stParam[5]),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 25))))));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[10], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 16)))),MTH_M_xFloatToReal(0.950000f)));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[9], MTH_M_xAdd(M_GetSetParam_xValue(&CFast_g_a_stParam[10]),MTH_M_xFloatToReal(0.050000f)));
    M_GetSetParam_xValue(&CFast_g_a_stParam[8]) = MTH_M_bLess((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 16)))), MTH_M_xFloatToReal(1.000000f)) ? M_GetSetParam_xValue(&CFast_g_a_stParam[9]) : (*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 16)))) ;
    M_GetSetParam_Type(&CFast_g_a_stParam[8]) = E_vt_Float;

/* [Math_ : Math_TernInf] ********** [7, 4, 8]*/
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[7], MTH_M_xMul(M_GetSetParam_xValue(&CFast_g_a_stParam[8]),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 34))))));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[6], MTH_M_xDiv(M_GetSetParam_xValue(&CFast_g_a_stParam[7]),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 24))))));
    M_GetSetParam_xValue(&CFast_g_a_stParam[5]) = MTH_M_xSqr( M_GetSetParam_xValue(&CFast_g_a_stParam[6]) );
    M_GetSetParam_Type(&CFast_g_a_stParam[5]) = E_vt_Float;

/* [Math_ : Math_Carre] ********** [7, 1, 5]*/
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[3], MTH_M_xMul(M_GetSetParam_xValue(&CFast_g_a_stParam[4]),M_GetSetParam_xValue(&CFast_g_a_stParam[5])));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[2], MTH_M_xSub((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 33)))),M_GetSetParam_xValue(&CFast_g_a_stParam[3])));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[3], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 34)))),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 16))))));
    M_GetSetParam_xValue(&CFast_g_a_stParam[1]) = MTH_M_xMin(M_GetSetParam_xValue(&CFast_g_a_stParam[2]),M_GetSetParam_xValue(&CFast_g_a_stParam[3]));
    M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Float;

/* [Math_ : Math_MinimumReel] ********** [5, 2, 1]*/
    LocalCFast_fn_vSetDsgVarFloat(33, M_GetSetParam_xValue(CFast_g_a_stParam+1)) ;

/* [Cond : <=] ********** [7, 2, 1]*/
    if ( MTH_M_bLessEqual((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 33)))), MTH_M_xFloatToReal(0.000000f)) ) {
      LocalCFast_fn_vSetDsgVarFloat(33, MTH_M_xNeg(LocalCFast_fn_xGetDsgVarFloat(33))) ;
      LocalCFast_fn_vSetDsgVarInteger(42, (- LocalCFast_fn_lGetDsgVarInteger(42))) ;

/* [Cond : =] ********** [7, 2, 1]*/
      if ( (*((char *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 43)))) == 2 ) {
        LocalCFast_fn_vSetDsgVar0To255(43, 3) ;
      }
    }

/* [Cond : =] ********** [7, 2, 1]*/
    if ( (*((char *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 43)))) == 1 ) {
      CFast_fn_vSetDsgVarInteger(M_CFast_ucGetRealIndice(32), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),(- LocalCFast_fn_lGetDsgVarInteger(42))) ;
      LocalCFast_fn_vSetDsgVar0To255(43, 2) ;
    }
  }
  else {
    LocalCFast_fn_vSetDsgVarFloat(33, MTH_M_xMul(LocalCFast_fn_xGetDsgVarFloat(34),LocalCFast_fn_xGetDsgVarFloat(16))) ;

/* [Cond : =] ********** [7, 2, 1]*/
    if ( (*((char *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 43)))) == 3 ) {
      LocalCFast_fn_vSetDsgVar0To255(43, 4) ;
    }
  }
/* [EndTree] ************ [5]*/

/* [Cond : =] ********** [7, 2, 1]*/
  if ( (*((char *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 43)))) == 4 ) {
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[2], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 45)))),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 37))))));

/* [Cond : <=] ********** [7, 2, 1]*/
    if ( MTH_M_bLessEqual(M_GetSetParam_xValue(&CFast_g_a_stParam[2]), MTH_M_xFloatToReal(0.000000f)) ) {
      LocalCFast_fn_vSetDsgVar0To255(43, 1) ;
    }
  }
/* [EndTree] ************ [5]*/
  if ( (*((char *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 31)))) ) {

/* [Op : .] ********** [7, 2, 0]*/

/* [Cond : VEC_VecteurNul] ********** [8, 1, 1]*/
    M_eCondIdInterpret(&CFast_g_a_stPseudoTree[E_ti_Condition][0]) = (tdeCondId)102 ;

/* [Op : .] ********** [5, 2, 0]*/
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[1][1], E_ti_Operator);
    M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[1][1]) = (tdeOperatorId)12 ;
    CFast_memcpy ( 1, 2, 0) ;
    CFast_memcpy ( 1, 3, 37) ;
    long1 = CFast_CallCondition_NoStatic( ) ;
    if ( long1 ) {
      LocalCFast_fn_vSetDsgVarVector(6, LocalCFast_fn_p_stGetDsgVarVector(30)) ;

/* [Cond : VEC_VecteurNul] ********** [7, 1, 2]*/
      long2 = CFast_CallCondition_Static(224) ;
M_Full_GetSetParam_Integer(&CFast_g_a_stParam[2], long2) ;
      if (M_lValueInterpret(&CFast_g_a_stParam[2])) {
        M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Float;
        M_GetSetParam_xValue(&CFast_g_a_stParam[1]) = MTH_M_xFloatToReal(0.000000f) ;
      } else {
        M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Float;
        M_GetSetParam_xValue(&CFast_g_a_stParam[1]) = MTH_M_xFloatToReal(0.010000f) ;
      }

/* [Op : :=] ********** [7, 2, 0]*/
        M_lValueInterpret(p_stPseudoTree+228) = M_GetSetParam_lValue(CFast_g_a_stParam+1);
      CFast_CallOperator0_Static ( 226 ) ;
    }
    else {
      LocalCFast_fn_vSetDsgVarVector(6, CFast_fn_p_stGetDsgVarVector(M_CFast_ucGetRealIndice(37), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)))) ;
      LocalCFast_fn_vSetDsgVarFloat(16, MTH_M_xMul(CFast_fn_xGetDsgVarFloat(M_CFast_ucGetRealIndice(38), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0))),MTH_M_xFloatToReal(0.00020f))) ;
    }
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[3], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 16)))),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 28))))));

/* [Cond : VEC_VecteurNul] ********** [9, 1, 6]*/
    long2 = CFast_CallCondition_Static(229) ;
M_Full_GetSetParam_Integer(&CFast_g_a_stParam[6], long2) ;
    if (M_lValueInterpret(&CFast_g_a_stParam[6])) {
      M_GetSetParam_Type(&CFast_g_a_stParam[5]) = E_vt_Float;
      M_GetSetParam_xValue(&CFast_g_a_stParam[5]) = MTH_M_xFloatToReal(0.000000f) ;
    } else {

/* [Func : ACT_ViseePerso] ********** [8, 0, 8]*/
      CFast_CallFunction8_Static( 41 ) ;

/* [Func : VEC_VecteurAngle] ********** [11, 3, 7]*/
        M_p_stVectorInterpret(p_stPseudoTree+232) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+8);
      CFast_CallFunction7_Static( 231 ) ;
      M_xValueInterpret(&CFast_g_a_stParam[5]) = M_xValueInterpret(&CFast_g_a_stParam[7]);
    }
    M_GetSetParam_xValue(&CFast_g_a_stParam[4]) = MTH_M_xMin(MTH_M_xFloatToReal(100.000000f),M_GetSetParam_xValue(&CFast_g_a_stParam[5]));
    M_GetSetParam_Type(&CFast_g_a_stParam[4]) = E_vt_Float;

/* [Math_ : Math_MinimumReel] ********** [7, 2, 4]*/
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[2], MTH_M_xMul(M_GetSetParam_xValue(&CFast_g_a_stParam[3]),M_GetSetParam_xValue(&CFast_g_a_stParam[4])));
    M_Full_GetSetParam_Float(&CFast_g_a_stParam[1], MTH_M_xDiv(M_GetSetParam_xValue(&CFast_g_a_stParam[2]),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 35))))));

/* [Op : :=] ********** [7, 2, 0]*/
      M_lValueInterpret(p_stPseudoTree+237) = M_GetSetParam_lValue(CFast_g_a_stParam+1);
    CFast_CallOperator0_Static ( 235 ) ;
    if ( (*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 44)))) ) {
      M_Full_GetSetParam_Float(&CFast_g_a_stParam[1], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 32)))),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 44))))));

/* [Proc : ACT_TournePersoAutourDeZ] *********** [6, 1, 0]*/
        M_lValueInterpret(p_stPseudoTree+239) = M_GetSetParam_lValue(CFast_g_a_stParam+1);
      CFast_CallProcedure_Static( 238 ) ;
    }
  }
/* [EndTree] ************ [5]*/
  LocalCFast_fn_vSetDsgVarFloat(36, MTH_M_xMul(LocalCFast_fn_xGetDsgVarFloat(36),MTH_M_xLongToReal((- LocalCFast_fn_lGetDsgVarInteger(42))))) ;
  LocalCFast_fn_vSetDsgVarFloat(37, MTH_M_xMul(LocalCFast_fn_xGetDsgVarFloat(37),MTH_M_xLongToReal(LocalCFast_fn_lGetDsgVarInteger(42)))) ;
  MTH3D_M_vSetVectorElements(&stVector0, MTH_M_xFloatToReal(0.00000f), LocalCFast_fn_xGetDsgVarFloat(36), LocalCFast_fn_xGetDsgVarFloat(37)) ;
  MTH3D_M_vMulScalarVector(&stVector1, MTH_M_xMul(LocalCFast_fn_xGetDsgVarFloat(33),LocalCFast_fn_xGetDsgVarFloat(35)),&stVector0) ;
  LocalCFast_fn_vSetDsgVarVector(13, &stVector1) ;

/* [Func : VEC_VecteurAbsolu] ********** [6, 1, 1]*/
  CFast_CallFunction1_Static( 30 ) ;
  LocalCFast_fn_vSetDsgVarVector(39, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;

/* [Func : ACT_ViseePerso] ********** [5, 0, 1]*/
  CFast_CallFunction1_Static( 41 ) ;
  CFast_fn_vSetDsgVarVector(M_CFast_ucGetRealIndice(39), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),&M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
  MTH3D_M_vMulScalarVector(&M_GetSetParam_stVertexValue(&CFast_g_a_stParam[1]), (*((int *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 42)))), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 39))));
  M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Vector;

/* [Func : ACT_HorizonPerso] ********** [6, 0, 2]*/
  CFast_CallFunction2_Static( 240 ) ;

/* [Op : .] ********** [10, 2, 0]*/

/* [Op : ..] ********** [12, 1, 0]*/

/* [Proc : ACT_ReorientePersoAvecOffset] *********** [13, 5, 0]*/
  M_eProcedureIdInterpret(&CFast_g_a_stPseudoTree[E_ti_Procedure][0]) = (tdeProcedureId)170 ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][1], E_ti_ConstantVector);
  M_p_stVectorInterpret(&CFast_g_a_stPseudoTree[4][1]) = &M_GetSetParam_stVectorValue(&CFast_g_a_stParam[1]) ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][2], E_ti_ConstantVector);
  M_p_stVectorInterpret(&CFast_g_a_stPseudoTree[4][2]) = &M_GetSetParam_stVectorValue(&CFast_g_a_stParam[2]) ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][3], E_ti_Constant);
  M_lValueInterpret(&CFast_g_a_stPseudoTree[4][3]) = 1 ;

/* [Op : .] ********** [5, 2, 0]*/
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][4], E_ti_Operator);
  M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[4][4]) = (tdeOperatorId)12 ;
  CFast_memcpy ( 4, 5, 0) ;
  CFast_memcpy ( 4, 6, 40) ;

/* [Op : ..] ********** [5, 1, 0]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallProcedure_NoStatic( ) ;
  MTH3D_M_vMulScalarVector(LocalCFast_fn_p_stGetDsgVarVector(39),LocalCFast_fn_xGetDsgVarFloat(32),LocalCFast_fn_p_stGetDsgVarVector(39)) ;
  POS_fn_vGetTranslationVector(HIE_fn_hGetSuperObjectMatrix(M_GetSuperObject(M_p_stPersoRefInterpret(p_stRefTree+0))), &stVector0); ;
  MTH3D_M_vAddVector(LocalCFast_fn_p_stGetDsgVarVector(39),LocalCFast_fn_p_stGetDsgVarVector(39),&stVector0) ;
  MTH3D_M_vSubVector(&M_GetSetParam_stVertexValue(&CFast_g_a_stParam[2]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 38))), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 39))));
  M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Vector;

/* [Func : VEC_VecteurRelatif] ********** [7, 1, 1]*/
    M_p_stVectorInterpret(p_stPseudoTree+242) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+2);
  CFast_CallFunction1_Static( 241 ) ;
  LocalCFast_fn_vSetDsgVarVector(40, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
  M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH3D_M_xNormVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 40))));
  M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;
  LocalCFast_fn_vSetDsgVarFloat(10, MTH_M_xSub(M_GetSetParam_xValue(CFast_g_a_stParam+2),LocalCFast_fn_xGetDsgVarFloat(35))) ;
  (LocalCFast_fn_p_stGetDsgVarVector(40))->xX = MTH_M_xFloatToReal(0.00000f) ;
  if (MTH3D_M_bIsNullVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 40))))) {
    MTH3D_M_vCopyVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[2]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 40))));
  } else {
    MTH3D_M_vNormalizeVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[2]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 40))));
  }
  M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Vector;
  MTH3D_M_vMulScalarVector(&stVector0, MTH_M_xDiv(LocalCFast_fn_xGetDsgVarFloat(10),LocalCFast_fn_xGetDsgVarFloat(32)),&M_GetSetParam_stVectorValue(CFast_g_a_stParam+2)) ;
  LocalCFast_fn_vSetDsgVarVector(40, &stVector0) ;
  MTH3D_M_vAddVector(LocalCFast_fn_p_stGetDsgVarVector(13),LocalCFast_fn_p_stGetDsgVarVector(13),LocalCFast_fn_p_stGetDsgVarVector(40)) ;
  if ( (*((char *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 31)))) ) {

/* [Func : VEC_VecteurRelatif] ********** [8, 1, 1]*/
    CFast_CallFunction1_Static( 219 ) ;
    LocalCFast_fn_vSetDsgVarVector(40, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
    LocalCFast_fn_p_stGetDsgVarVector(13)->xX = MTH_M_xAdd(LocalCFast_fn_p_stGetDsgVarVector(13)->xX,MTH_M_xDiv(LocalCFast_fn_p_stGetDsgVarVector(40)->xX,LocalCFast_fn_xGetDsgVarFloat(32))) ;
  }
/* [EndTree] ************ [7]*/

/* [Func : VEC_VecteurAbsolu] ********** [8, 1, 1]*/
  CFast_CallFunction1_Static( 30 ) ;
  LocalCFast_fn_vSetDsgVarVector(13, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;

/* [Op : ..] ********** [9, 1, 0]*/

/* [Func : MOD_PositionRelativeModule] ********** [10, 2, 4]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallFunction4_Static( 243 ) ;

/* [Op : ..] ********** [9, 1, 0]*/

/* [Func : VEC_VecteurAbsolu] ********** [10, 2, 3]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
    M_p_stVectorInterpret(p_stPseudoTree+246) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+4);
  CFast_CallFunction3_Static( 245 ) ;
  MTH3D_M_vSubVector(&stVector1, LocalCFast_fn_p_stGetDsgVarVector(41),&M_GetSetParam_stVectorValue(CFast_g_a_stParam+3)) ;
  MTH3D_M_vMulScalarVector(&stVector0, LocalCFast_fn_xGetDsgVarFloat(32),LocalCFast_fn_p_stGetDsgVarVector(13)) ;
  MTH3D_M_vSubVector(&stVector2, &stVector1,&stVector0) ;
  LocalCFast_fn_vSetDsgVarVector(39, &stVector2) ;

/* [Op : v-] ********** [11, 2, 1]*/
  CFast_CallOperator1_Static( 247 ) ;

/* [Proc : LanceAGO] *********** [12, 5, 0]*/
    M_p_stVectorInterpret(p_stPseudoTree+253) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
  CFast_CallProcedure_Static( 250 ) ;

/* [Vector] *********** [12, 3, 2]*/
  CFast_CallVector2_Static (256) ;

/* [Func : VEC_CombinaisonTemporelleVecteur] ********** [10, 3, 1]*/
    M_p_stVectorInterpret(p_stPseudoTree+263) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+2);
  CFast_CallFunction1_Static( 260 ) ;
  LocalCFast_fn_vSetDsgVarVector(11, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;
  LocalCFast_fn_vSetDsgVarFloat(34, LocalCFast_fn_p_stGetDsgVarVector(11)->xX) ;
  MTH3D_M_vSetVectorElements(&stVector0, LocalCFast_fn_xGetDsgVarFloat(34), LocalCFast_fn_xGetDsgVarFloat(33), LocalCFast_fn_xGetDsgVarFloat(24)) ;
  CFast_fn_vSetDsgVarVector(M_CFast_ucGetRealIndice(43), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),&stVector0) ;

/* [Op : ..] ********** [9, 1, 0]*/

/* [Proc : ACT_ImposeVecteurVitesseAbsolu] *********** [10, 2, 0]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallProcedure_Static( 57 ) ;

/* [Op : .] ********** [9, 2, 0]*/

/* [Op : .] ********** [15, 2, 0]*/
  p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(0) ,Brain));
  long1 = (*((char *)(M_GetDsgVarAddr(p_stLocalMind1, 17))));
  if ( long1 ) {
    M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;
    M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH_M_xLongToReal(1) ;
  } else {
    M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;
    M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH_M_xLongToReal(0) ;
  }
  M_GetSetParam_lValue(&CFast_g_a_stParam[1]) = MTH_M_xRealToLong(M_GetSetParam_xValue(&CFast_g_a_stParam[2])) ;
  M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Integer;

/* [Math_ : Math_ConversionEnEntier] ********** [13, 1, 1]*/

/* [Op : ..] ********** [17, 1, 0]*/

/* [Proc : PAD_LitJoyAnalogiqueModeMario] *********** [18, 8, 0]*/
  M_eProcedureIdInterpret(&CFast_g_a_stPseudoTree[E_ti_Procedure][0]) = (tdeProcedureId)341 ;

/* [Op : .] ********** [7, 2, 0]*/
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][1], E_ti_Operator);
  M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[4][1]) = (tdeOperatorId)12 ;
  CFast_memcpy ( 4, 2, 0) ;
  CFast_memcpy ( 4, 3, 45) ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][4], E_ti_Real);
  M_xValueInterpret(&CFast_g_a_stPseudoTree[4][4]) = MTH_M_xFloatToReal(1.000000f) ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][5], E_ti_Real);
  M_xValueInterpret(&CFast_g_a_stPseudoTree[4][5]) = MTH_M_xFloatToReal(0.000000f) ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][6], E_ti_Real);
  M_xValueInterpret(&CFast_g_a_stPseudoTree[4][6]) = MTH_M_xFloatToReal(0.960000f) ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][7], E_ti_Constant);
  M_lValueInterpret(&CFast_g_a_stPseudoTree[4][7]) = M_GetSetParam_lValue(&CFast_g_a_stParam[1]) ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][8], E_ti_Constant);
  M_lValueInterpret(&CFast_g_a_stPseudoTree[4][8]) = 0 ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[4][9], E_ti_Constant);
  M_lValueInterpret(&CFast_g_a_stPseudoTree[4][9]) = 0 ;

/* [Op : ..] ********** [7, 1, 0]*/
  CFast_fn_vSetUltraOperatorPersoRef(44);
  CFast_CallProcedure_NoStatic( ) ;
/* [EndTree] ************ [7]*/
}

/*
 * Model : Alw_Projectile_Rayman_model Comportement BNT_PoingGrappinInit
 */
void CFast_Alw_Projectile_Rayman_model_Cmp_BNT_PoingGrappinInit (void)
{
  MTH3D_tdstVector stVector0;
  MTH3D_tdstVector stVector1;
  MTH3D_tdstVector stVector2;
  struct DNM_stDynamics *p_stDynam;


  register  AI_tdstMind * p_stLocalMind0 = p_stGlobalMind ;
  register struct tdstNodeInterpret_   *p_stRefTree = gp_stRefTree;
  register struct tdstNodeInterpret_ * p_stPseudoTree = gp_stPseudoTree ;
  register tdstIntelligence * p_stIntelligence = p_stLocalMind0 -> p_stIntelligence ;
  register char * p_cLocalDsgMemBuffer = p_cGlobalDsgMemBuffer ;
  register tdstDsgVarInfo * p_stLocalDsgVarInfo = p_stGlobalDsgVarInfo ;

  register long long1 , long2 ;
  long long3 , long4 , long5 , long6 , long7 , long8 ;
  register AI_tdstMind * p_stLocalMind1 , * p_stLocalMind2 , * p_stLocalMind4 , * p_stLocalMind8 ;


/* [Cond : EstDansComportement] ********** [2, 2, 2]*/
  long1 = CFast_CallCondition_Static(264) ;
  if ( !long1 ) {

/* [Op : .] ********** [2, 2, 0]*/
    p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(0) ,Brain));
    long1 = (*((char *)(M_GetDsgVarAddr(p_stLocalMind1, 108))));
    long1 = long1 ? 0 : 1 ;
  }
  if ( long1 ) {

/* [Keyword : Moi] ********** [0, 0, 1]*/

/* [Proc : DetruitPerso] *********** [1, 1, 0]*/
    fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
    CFast_CallProcedure_Static( 0 ) ;
    if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
      return ;
    }
  }
/* [EndTree] ************ [0]*/
  POS_fn_vGetTranslationVector(HIE_fn_hGetSuperObjectMatrix(LocalCFast_fn_hGetDsgVarPerso(21)), &stVector1); ;
  POS_fn_vGetTranslationVector(HIE_fn_hGetSuperObjectMatrix(M_GetSuperObject(M_p_stPersoRefInterpret(p_stRefTree+0))), &stVector0); ;
  MTH3D_M_vSubVector(&stVector2, &stVector1,&stVector0) ;
  LocalCFast_fn_vSetDsgVarVector(41, &stVector2) ;
  LocalCFast_fn_vSetDsgVarVector(6, LocalCFast_fn_p_stGetDsgVarVector(41)) ;
  M_GetSetParam_xValue(&CFast_g_a_stParam[1]) = MTH3D_M_xNormVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 41))));
  M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Float;
  LocalCFast_fn_vSetDsgVarFloat(35, M_GetSetParam_xValue(CFast_g_a_stParam+1)) ;

/* [Op : .] ********** [4, 2, 0]*/

/* [Func : COL_PointCollision] ********** [7, 3, 2]*/
  M_eFuncIdInterpret(&CFast_g_a_stPseudoTree[E_ti_Function][0]) = (tdeFuncId)196 ;

/* [Op : .] ********** [2, 2, 0]*/
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][1], E_ti_Operator);
  M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[3][1]) = (tdeOperatorId)12 ;
  CFast_memcpy ( 3, 2, 0) ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][3], E_ti_Field);
  M_eFieldIdInterpret(&CFast_g_a_stPseudoTree[3][3]) = (tdeFieldId)0 ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][4], E_ti_DsgVarRef);
  M_lValueInterpret(&CFast_g_a_stPseudoTree[3][4]) = 6 ;
  M_SetTypeInterpret(&CFast_g_a_stPseudoTree[3][5], E_ti_Constant);
  M_lValueInterpret(&CFast_g_a_stPseudoTree[3][5]) = 0 ;
  CFast_CallFunction2_NoStatic( ) ;

/* [Cond : VEC_VecteurNul] ********** [3, 1, 1]*/
    M_p_stVectorInterpret(p_stPseudoTree+268) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+2);
  if ( !( CFast_CallCondition_Static(267) ) ) {

/* [Keyword : Moi] ********** [2, 0, 1]*/

/* [Proc : DetruitPerso] *********** [3, 1, 0]*/
    fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
    CFast_CallProcedure_Static( 0 ) ;
    if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
      return ;
    }
  }
/* [EndTree] ************ [2]*/
  (LocalCFast_fn_p_stGetDsgVarVector(6))->xZ= MTH_M_xLongToReal(0) ;

/* [Cond : VEC_VecteurNul] ********** [3, 1, 2]*/
  long1 = CFast_CallCondition_Static(229) ;
  if ( !long1 ) {

/* [Op : ..] ********** [4, 1, 0]*/

/* [Func : ACT_ViseePerso] ********** [5, 1, 5]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
    CFast_CallFunction5_Static( 41 ) ;

/* [Func : VEC_VecteurCos] ********** [4, 2, 4]*/
      M_p_stVectorInterpret(p_stPseudoTree+271) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+5);
    CFast_CallFunction4_Static( 269 ) ;

/* [Cond : <] ********** [4, 2, 3]*/
    long1 = MTH_M_bLess(M_GetSetParam_xValue(&CFast_g_a_stParam[4]), MTH_M_xFloatToReal(0.300000f)) ? 1 : 0;
  }
  if ( long1 ) {

/* [Keyword : Moi] ********** [2, 0, 1]*/

/* [Proc : DetruitPerso] *********** [3, 1, 0]*/
    fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
    CFast_CallProcedure_Static( 0 ) ;
    if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
      return ;
    }
  }
/* [EndTree] ************ [2]*/

/* [Op : ..] ********** [3, 1, 0]*/

/* [Cond : Col_CollisionAvecSol] ********** [4, 1, 1]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  if ( CFast_CallCondition_Static(272) ) {

/* [Op : .] ********** [4, 2, 0]*/

/* [Op : ..] ********** [6, 1, 0]*/

/* [Func : COL_VecteurNormalCollision] ********** [7, 1, 2]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
    CFast_CallFunction2_Static( 273 ) ;

/* [Op : v+] ********** [6, 2, 1]*/
    M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[E_ti_Operator][0]) = (tdeOperatorId)16 ;

/* [Op : .] ********** [2, 2, 0]*/
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[2][1], E_ti_Operator);
    M_eOperatorIdInterpret(&CFast_g_a_stPseudoTree[2][1]) = (tdeOperatorId)12 ;
    CFast_memcpy ( 2, 2, 0) ;
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[2][3], E_ti_Field);
    M_eFieldIdInterpret(&CFast_g_a_stPseudoTree[2][3]) = (tdeFieldId)0 ;
    M_SetTypeInterpret(&CFast_g_a_stPseudoTree[2][4], E_ti_ConstantVector);
    M_p_stVectorInterpret(&CFast_g_a_stPseudoTree[2][4]) = &M_GetSetParam_stVectorValue(&CFast_g_a_stParam[2]) ;
    CFast_CallOperator1_NoStatic( ) ;

/* [Op : ..] ********** [4, 1, 0]*/

/* [Proc : ACT_ChangePositionAbsoluePerso] *********** [5, 2, 0]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
      M_p_stVectorInterpret(p_stPseudoTree+55) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
    CFast_CallProcedure_Static( 54 ) ;
  }
/* [EndTree] ************ [2]*/

/* [Proc : ACT_ChangeViseePerso] *********** [3, 1, 0]*/
  CFast_CallProcedure_Static( 274 ) ;

/* [Op : ..] ********** [4, 1, 0]*/

/* [Proc : ACT_ChangeViseePerso] *********** [5, 2, 0]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallProcedure_Static( 274 ) ;

/* [Op : ..] ********** [3, 1, 0]*/

/* [Proc : HIER_LiberePere] *********** [4, 1, 0]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallProcedure_Static( 276 ) ;

/* [Op : ..] ********** [4, 1, 0]*/

/* [Proc : HIER_ControlePlatforme] *********** [5, 2, 0]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallProcedure_Static( 277 ) ;

/* [Op : ..] ********** [4, 1, 0]*/

/* [Proc : EnvoieRequeteSon] *********** [5, 2, 0]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallProcedure_Static( 279 ) ;

/* [Op : .] ********** [4, 2, 0]*/
  p_stLocalMind1 = M_pstGetMindOfBrain(M_GetMSHandle(M_CFast_hGetPersoRef(0) ,Brain));
  long1 = (*((char *)(M_GetDsgVarAddr(p_stLocalMind1, 123))));
  if ( long1 ) {

/* [Op : ..] ********** [4, 1, 0]*/

/* [Proc : EnvoieRequeteSon] *********** [5, 2, 0]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
    CFast_CallProcedure_Static( 281 ) ;

/* [Op : ..] ********** [4, 1, 0]*/

/* [Proc : EnvoieRequeteSon] *********** [5, 2, 0]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
    CFast_CallProcedure_Static( 283 ) ;
  }
/* [EndTree] ************ [2]*/

/* [Proc : ChangeComportement] *********** [4, 2, 0]*/
  CFast_CallProcedure_Static( 285 ) ;

/* [Proc : ChangeComportementReflexe] *********** [4, 2, 0]*/
  CFast_CallProcedure_Static( 288 ) ;

/* [Op : ..] ********** [4, 1, 0]*/

/* [Proc : ChangeAction] *********** [5, 2, 0]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
  CFast_CallProcedure_Static( 291 ) ;
  if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
    return ;
  }
  CFast_fn_vSetDsgVar0To255(M_CFast_ucGetRealIndice(1), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),20) ;
  CFast_fn_vSetDsgVarInteger(M_CFast_ucGetRealIndice(32), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),0) ;
  CFast_fn_vSetDsgVarInteger(M_CFast_ucGetRealIndice(55), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),0) ;
  MTH3D_M_vSetVectorElements(&stVector0, MTH_M_xFloatToReal(0.00000f), MTH_M_xFloatToReal(0.00000f), MTH_M_xFloatToReal(0.00000f)) ;
  CFast_fn_vSetDsgVarVector(M_CFast_ucGetRealIndice(36), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),&stVector0) ;
  CFast_fn_vSetDsgVarBoolean(M_CFast_ucGetRealIndice(56), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),0) ;
  CFast_fn_vSetDsgVarBoolean(M_CFast_ucGetRealIndice(57), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),0) ;
  CFast_fn_vSetDsgVarBoolean(M_CFast_ucGetRealIndice(58), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),1) ;
  CFast_fn_vSetDsgVarBoolean(M_CFast_ucGetRealIndice(24), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),0) ;
  CFast_fn_vSetDsgVarBoolean(M_CFast_ucGetRealIndice(31), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),0) ;
  CFast_fn_vSetDsgVarPerso(M_CFast_ucGetRealIndice(59), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),g_hSuperObjectPerso) ;

/* [Op : ..] ********** [10, 1, 0]*/

/* [Proc : PAD_LitJoyAnalogiqueModeMario] *********** [11, 8, 0]*/
  CFast_fn_vSetUltraOperatorPersoRef(44);
  CFast_CallProcedure_Static( 293 ) ;
  LocalCFast_fn_vSetDsgVarInteger(42, 1) ;
  LocalCFast_fn_vSetDsgVar0To255(43, 4) ;

/* [Op : ..] ********** [3, 1, 0]*/

/* [Cond : Col_CollisionAvecSol] ********** [4, 1, 1]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  if ( CFast_CallCondition_Static(272) ) {
    LocalCFast_fn_vSetDsgVarFloat(34, MTH_M_xMul(LocalCFast_fn_xGetDsgVarFloat(24),MTH_M_xFloatToReal(0.25000f))) ;
  }
  else {
    p_stDynam = fn_p_stDynamGetDynamicsSO(M_GetSuperObject(M_p_stPersoRefInterpret(p_stRefTree+0)));
if (p_stDynam != NULL){
MTH3D_M_vCopyVector(&stVector0, DNM_M_pDynamicsGetPreviousSpeed(p_stDynam));}
else {MTH3D_M_vNullVector(&stVector0);} ;
    LocalCFast_fn_vSetDsgVarVector(11, &stVector0) ;

/* [Op : .Z] ********** [4, 1, 2]*/
    CFast_CallOperator2_Static( 301 ) ;
    if ( M_xValueInterpret(&CFast_g_a_stParam[2]) > MTH_M_xFloatToReal(0.000000f) ) {
      M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Float;
      M_GetSetParam_xValue(&CFast_g_a_stParam[1]) = (*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 24)))) ;
    } else {
      M_Full_GetSetParam_Float(&CFast_g_a_stParam[4], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 24)))),MTH_M_xFloatToReal(2.000000f)));
      if (MTH3D_M_bIsNullVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 41))))) {
        MTH3D_M_vCopyVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[10]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 41))));
      } else {
        MTH3D_M_vNormalizeVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[10]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 41))));
      }
      M_GetSetParam_Type(&CFast_g_a_stParam[10]) = E_vt_Vector;
      MTH3D_M_vCrossProductVectorWithoutBuffer(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[9]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 11))), &M_GetSetParam_stVectorValue(&CFast_g_a_stParam[10]));
      M_GetSetParam_Type(&CFast_g_a_stParam[9]) = E_vt_Vector;
      M_GetSetParam_xValue(&CFast_g_a_stParam[8]) = MTH3D_M_xNormVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[9]));
      M_GetSetParam_Type(&CFast_g_a_stParam[8]) = E_vt_Float;
      M_Full_GetSetParam_Float(&CFast_g_a_stParam[9], MTH_M_xDiv(MTH_M_xFloatToReal(0.900000f),(*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 35))))));
      M_Full_GetSetParam_Float(&CFast_g_a_stParam[7], MTH_M_xMul(M_GetSetParam_xValue(&CFast_g_a_stParam[8]),M_GetSetParam_xValue(&CFast_g_a_stParam[9])));
      M_Full_GetSetParam_Float(&CFast_g_a_stParam[6], MTH_M_xAdd(MTH_M_xFloatToReal(1.000000f),M_GetSetParam_xValue(&CFast_g_a_stParam[7])));
      M_Full_GetSetParam_Float(&CFast_g_a_stParam[5], MTH_M_xMul((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 24)))),M_GetSetParam_xValue(&CFast_g_a_stParam[6])));
      M_GetSetParam_xValue(&CFast_g_a_stParam[3]) = MTH_M_xMin(M_GetSetParam_xValue(&CFast_g_a_stParam[4]),M_GetSetParam_xValue(&CFast_g_a_stParam[5]));
      M_GetSetParam_Type(&CFast_g_a_stParam[3]) = E_vt_Float;

/* [Math_ : Math_MinimumReel] ********** [3, 2, 3]*/
      M_xValueInterpret(&CFast_g_a_stParam[1]) = M_xValueInterpret(&CFast_g_a_stParam[3]);
    }
    LocalCFast_fn_vSetDsgVarFloat(34, M_GetSetParam_xValue(CFast_g_a_stParam+1)) ;
  }
/* [EndTree] ************ [3]*/
  LocalCFast_fn_vSetDsgVarFloat(33, LocalCFast_fn_xGetDsgVarFloat(34)) ;
  MTH3D_M_vSetVectorElements(&stVector0, LocalCFast_fn_xGetDsgVarFloat(34), MTH_M_xFloatToReal(0.00000f), MTH_M_xFloatToReal(0.00000f)) ;
  LocalCFast_fn_vSetDsgVarVector(11, &stVector0) ;

/* [Op : ..] ********** [4, 1, 0]*/

/* [Proc : COL_VideRapportDeCollision] *********** [5, 1, 0]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallProcedure_Static( 303 ) ;
  LocalCFast_fn_vSetDsgVarFloat(44, MTH_M_xFloatToReal(0.00000f)) ;
  LocalCFast_fn_vSetDsgVarFloat(37, MTH_M_xFloatToReal(-1.00000f)) ;
  LocalCFast_fn_vSetDsgVarFloat(45, MTH_M_xFloatToReal(-1.00000f)) ;

/* [Proc : ACT_ChangeSpoFlag] *********** [5, 2, 0]*/
  CFast_CallProcedure_Static( 304 ) ;

/* [Proc : ChangeAction] *********** [4, 1, 0]*/
  fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
  CFast_CallProcedure_Static( 307 ) ;
  if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
    return ;
  }

/* [Proc : ACT_ChangeCustomBit] *********** [5, 2, 0]*/
  CFast_CallProcedure_Static( 65 ) ;

/* [Proc : ChangeMonComportement] *********** [4, 1, 0]*/
  CFast_CallProcedure_Static( 309 ) ;
  CFast_Alw_Projectile_Rayman_model_ArrayComport[p_stIntelligence->p_stCurrentComport->CFast_lMyIndex]();
  return ;
/* [EndTree] ************ [3]*/
}

/*
 * Model : Alw_Projectile_Rayman_model Comportement FRD_GrappinBisInit
 */
void CFast_Alw_Projectile_Rayman_model_Cmp_FRD_GrappinBisInit (void)
{
  MTH3D_tdstVector stVector0;
  MTH3D_tdstVector stVector1;
  MTH3D_tdstVector stVector2;


  register  AI_tdstMind * p_stLocalMind0 = p_stGlobalMind ;
  register struct tdstNodeInterpret_   *p_stRefTree = gp_stRefTree;
  register struct tdstNodeInterpret_ * p_stPseudoTree = gp_stPseudoTree ;
  register tdstIntelligence * p_stIntelligence = p_stLocalMind0 -> p_stIntelligence ;
  register char * p_cLocalDsgMemBuffer = p_cGlobalDsgMemBuffer ;
  register tdstDsgVarInfo * p_stLocalDsgVarInfo = p_stGlobalDsgVarInfo ;

  register long long1 , long2 ;
  long long3 , long4 , long5 , long6 , long7 , long8 ;
  register AI_tdstMind * p_stLocalMind1 , * p_stLocalMind2 , * p_stLocalMind4 , * p_stLocalMind8 ;

  switch(p_stLocalMind0->CFast_lCmpMetaAction) {
  case 1 : goto label1 ;
  case 2 : goto label2 ;
  case 3 : goto label3 ;
  }
  CFast_fn_vSetDsgVarBoolean(M_CFast_ucGetRealIndice(61), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),1) ;
  LocalCFast_fn_vSetDsgVarFloat(14, 0) ;

/* [Keyword : Moi] ********** [0, 0, 2]*/

/* [Func : COL_LitDernierPersoCollisione] ********** [1, 1, 1]*/
  CFast_CallFunction1_Static( 311 ) ;
  LocalCFast_fn_vSetDsgVarPersoWithEngine(21, M_GetSetParam_p_stEngineObjValue(CFast_g_a_stParam+1)) ;

/* [Cond : ObjetValide] ********** [1, 1, 1]*/
  if ( !( CFast_CallCondition_Static(213) ) ) {

/* [Proc : ChangeMonComportement] *********** [1, 1, 0]*/
    CFast_CallProcedure_Static( 313 ) ;
label1 :
    return ;
  }
/* [EndTree] ************ [0]*/

/* [Op : ..] ********** [2, 1, 0]*/

/* [Cond : ACT_TestCustomBit] ********** [3, 2, 1]*/
  CFast_fn_vSetUltraOperatorPersoVar(21);
  if ( CFast_CallCondition_Static(315) ) {
    POS_fn_vGetTranslationVector(HIE_fn_hGetSuperObjectMatrix(g_hSuperObjectPerso), &stVector1); ;
    POS_fn_vGetTranslationVector(HIE_fn_hGetSuperObjectMatrix(LocalCFast_fn_hGetDsgVarPerso(21)), &stVector0); ;
    MTH3D_M_vSubVector(&stVector2, &stVector1,&stVector0) ;
    LocalCFast_fn_vSetDsgVarVector(17, &stVector2) ;

/* [Proc : ChangeMonComportement] *********** [2, 1, 0]*/
    CFast_CallProcedure_Static( 317 ) ;
label2 :
    return ;
  }
/* [EndTree] ************ [1]*/

/* [Proc : ChangeMonComportement] *********** [2, 1, 0]*/
  CFast_CallProcedure_Static( 313 ) ;
label3 :
  return ;
/* [EndTree] ************ [1]*/
}

/*
 * Model : Alw_Projectile_Rayman_model Comportement FRD_GrappinBisOnMeTire
 */
void CFast_Alw_Projectile_Rayman_model_Cmp_FRD_GrappinBisOnMeTire (void)
{
  MTH3D_tdstVector stVector0;


  register  AI_tdstMind * p_stLocalMind0 = p_stGlobalMind ;
  register struct tdstNodeInterpret_   *p_stRefTree = gp_stRefTree;
  register struct tdstNodeInterpret_ * p_stPseudoTree = gp_stPseudoTree ;
  register tdstIntelligence * p_stIntelligence = p_stLocalMind0 -> p_stIntelligence ;
  register char * p_cLocalDsgMemBuffer = p_cGlobalDsgMemBuffer ;
  register tdstDsgVarInfo * p_stLocalDsgVarInfo = p_stGlobalDsgVarInfo ;

  register long long1 , long2 ;
  long long3 , long4 , long5 , long6 , long7 , long8 ;
  register AI_tdstMind * p_stLocalMind1 , * p_stLocalMind2 , * p_stLocalMind4 , * p_stLocalMind8 ;

  switch(p_stLocalMind0->CFast_lCmpMetaAction) {
  case 1 : goto label1 ;
  case 2 : goto label2 ;
  case 3 : goto label3 ;
  }

/* [Cond : BoutonJusteAppuye] ********** [1, 1, 1]*/
  if ( (long)IPT_fn_bIsJustValidated((IPT_tdxHandleToEntryElement) M_lValueInterpret(p_stRefTree+64)) ) {

/* [Proc : ChangeMonComportement] *********** [1, 1, 0]*/
    CFast_CallProcedure_Static( 319 ) ;
label1 :
    return ;
  }
/* [EndTree] ************ [0]*/

/* [Op : ..] ********** [1, 1, 0]*/

/* [Func : HIER_MonPere] ********** [2, 1, 1]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallFunction1_Static( 21 ) ;
  LocalCFast_fn_vSetDsgVarPersoWithEngine(21, M_GetSetParam_p_stEngineObjValue(CFast_g_a_stParam+1)) ;

/* [Func : ACT_PositionAbsoluePerso] ********** [0, 0, 1]*/
  CFast_CallFunction1_Static( 321 ) ;
  LocalCFast_fn_vSetDsgVarVector(38, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1)) ;

/* [Op : ..] ********** [1, 1, 0]*/

/* [Func : ACT_PositionAbsoluePerso] ********** [2, 1, 2]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallFunction2_Static( 321 ) ;
  MTH3D_M_vSubVector(&stVector0, LocalCFast_fn_p_stGetDsgVarVector(38),&M_GetSetParam_stVectorValue(CFast_g_a_stParam+2)) ;
  LocalCFast_fn_vSetDsgVarVector(41, &stVector0) ;
  M_GetSetParam_xValue(&CFast_g_a_stParam[1]) = MTH3D_M_xNormVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 41))));
  M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Float;
  LocalCFast_fn_vSetDsgVarFloat(35, M_GetSetParam_xValue(CFast_g_a_stParam+1)) ;

/* [Cond : <] ********** [2, 2, 1]*/
  if ( MTH_M_bLess((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 35)))), MTH_M_xFloatToReal(1.500000f)) ) {

/* [Proc : ChangeMonComportement] *********** [1, 1, 0]*/
    CFast_CallProcedure_Static( 319 ) ;
label2 :
    return ;
  }
/* [EndTree] ************ [0]*/

/* [Cond : VoitPerso] ********** [1, 1, 1]*/
  if ( !( CFast_CallCondition_Static(322) ) ) {

/* [Proc : ChangeMonComportement] *********** [1, 1, 0]*/
    CFast_CallProcedure_Static( 319 ) ;
label3 :
    return ;
  }
/* [EndTree] ************ [0]*/

/* [Cond : ObjetValide] ********** [1, 1, 1]*/
  if ( CFast_CallCondition_Static(213) ) {

/* [Op : ..] ********** [2, 1, 0]*/

/* [Func : MOD_PositionRelativeModule] ********** [3, 2, 3]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
    CFast_CallFunction3_Static( 243 ) ;

/* [Op : ..] ********** [2, 1, 0]*/

/* [Func : VEC_VecteurAbsolu] ********** [3, 2, 2]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
      M_p_stVectorInterpret(p_stPseudoTree+246) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+3);
    CFast_CallFunction2_Static( 245 ) ;
    MTH3D_M_vSubVector(&stVector0, LocalCFast_fn_p_stGetDsgVarVector(41),&M_GetSetParam_stVectorValue(CFast_g_a_stParam+2)) ;
    LocalCFast_fn_vSetDsgVarVector(13, &stVector0) ;
    MTH3D_M_vAddVector(&M_GetSetParam_stVertexValue(&CFast_g_a_stParam[1]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 38))), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
    M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Vector;
    M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH3D_M_xNormVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
    M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;

/* [Proc : LanceAGO] *********** [5, 5, 0]*/
      M_p_stVectorInterpret(p_stPseudoTree+327) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
      M_lValueInterpret(p_stPseudoTree+329) = M_GetSetParam_lValue(CFast_g_a_stParam+2);
    CFast_CallProcedure_Static( 324 ) ;

/* [Op : ..] ********** [2, 1, 0]*/

/* [Cond : ACT_TestCustomBit] ********** [3, 2, 1]*/
    CFast_fn_vSetUltraOperatorPersoVar(21);
    if ( CFast_CallCondition_Static(315) ) {
      if (MTH3D_M_bIsNullVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))))) {
        MTH3D_M_vCopyVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[2]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
      } else {
        MTH3D_M_vNormalizeVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[2]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
      }
      M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Vector;

/* [Op : ..] ********** [2, 1, 0]*/

/* [Func : ACT_LitFacteurDeTraction] ********** [3, 1, 4]*/
      CFast_fn_vSetUltraOperatorPersoVar(21);
      CFast_CallFunction4_Static( 330 ) ;
      MTH3D_M_vMulScalarVector(&stVector0, MTH_M_xLongToReal(MTH_M_xMul(MTH_M_xLongToReal(M_GetSetParam_lValue(CFast_g_a_stParam+4)),MTH_M_xFloatToReal(0.10000f))),&M_GetSetParam_stVectorValue(CFast_g_a_stParam+2)) ;
      LocalCFast_fn_vSetDsgVarVector(13, &stVector0) ;

/* [Op : ..] ********** [3, 1, 0]*/

/* [Proc : ACT_AddVecteurVitesseAbsolu] *********** [4, 2, 0]*/
      CFast_fn_vSetUltraOperatorPersoVar(21);
      CFast_CallProcedure_Static( 331 ) ;
    }
  }
/* [EndTree] ************ [1]*/
}

/*
 * Model : Alw_Projectile_Rayman_model Comportement FRD_GrappinBisTireObjet
 */
void CFast_Alw_Projectile_Rayman_model_Cmp_FRD_GrappinBisTireObjet (void)
{
  MTH3D_tdstVector stVector0;


  register  AI_tdstMind * p_stLocalMind0 = p_stGlobalMind ;
  register struct tdstNodeInterpret_   *p_stRefTree = gp_stRefTree;
  register struct tdstNodeInterpret_ * p_stPseudoTree = gp_stPseudoTree ;
  register tdstIntelligence * p_stIntelligence = p_stLocalMind0 -> p_stIntelligence ;
  register char * p_cLocalDsgMemBuffer = p_cGlobalDsgMemBuffer ;
  register tdstDsgVarInfo * p_stLocalDsgVarInfo = p_stGlobalDsgVarInfo ;

  register long long1 , long2 ;
  long long3 , long4 , long5 , long6 , long7 , long8 ;
  register AI_tdstMind * p_stLocalMind1 , * p_stLocalMind2 , * p_stLocalMind4 , * p_stLocalMind8 ;

  switch(p_stLocalMind0->CFast_lCmpMetaAction) {
  case 1 : goto label1 ;
  case 2 : goto label2 ;
  case 3 : goto label3 ;
  case 4 : goto label4 ;
  }

/* [Cond : BoutonJusteAppuye] ********** [1, 1, 1]*/
  if ( (long)IPT_fn_bIsJustValidated((IPT_tdxHandleToEntryElement) M_lValueInterpret(p_stRefTree+64)) ) {

/* [Proc : ChangeMonComportement] *********** [1, 1, 0]*/
    CFast_CallProcedure_Static( 319 ) ;
label1 :
    return ;
  }
/* [EndTree] ************ [0]*/

/* [Cond : ObjetValide] ********** [1, 1, 1]*/
  if ( !( CFast_CallCondition_Static(213) ) ) {

/* [Proc : ChangeMonComportement] *********** [1, 1, 0]*/
    CFast_CallProcedure_Static( 319 ) ;
label2 :
    return ;
  }
/* [EndTree] ************ [0]*/

/* [Op : ..] ********** [1, 1, 0]*/

/* [Func : ACT_PositionAbsoluePerso] ********** [2, 1, 2]*/
  CFast_fn_vSetUltraOperatorPersoVar(21);
  CFast_CallFunction2_Static( 321 ) ;
  MTH3D_M_vAddVector(&stVector0, &M_GetSetParam_stVectorValue(CFast_g_a_stParam+2),LocalCFast_fn_p_stGetDsgVarVector(17)) ;
  LocalCFast_fn_vSetDsgVarVector(38, &stVector0) ;

/* [Proc : ACT_ChangePositionAbsoluePerso] *********** [1, 1, 0]*/
  CFast_CallProcedure_Static( 216 ) ;

/* [Op : ..] ********** [1, 1, 0]*/

/* [Func : ACT_PositionAbsoluePerso] ********** [2, 1, 2]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  CFast_CallFunction2_Static( 321 ) ;
  MTH3D_M_vSubVector(&stVector0, LocalCFast_fn_p_stGetDsgVarVector(38),&M_GetSetParam_stVectorValue(CFast_g_a_stParam+2)) ;
  LocalCFast_fn_vSetDsgVarVector(41, &stVector0) ;
  M_GetSetParam_xValue(&CFast_g_a_stParam[1]) = MTH3D_M_xNormVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 41))));
  M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Float;
  LocalCFast_fn_vSetDsgVarFloat(35, M_GetSetParam_xValue(CFast_g_a_stParam+1)) ;

/* [Cond : <] ********** [2, 2, 1]*/
  if ( MTH_M_bLess((*((MTH_tdxReal *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 35)))), MTH_M_xFloatToReal(1.500000f)) ) {

/* [Proc : ChangeMonComportement] *********** [1, 1, 0]*/
    CFast_CallProcedure_Static( 319 ) ;
label3 :
    return ;
  }
/* [EndTree] ************ [0]*/

/* [Cond : VoitPerso] ********** [1, 1, 1]*/
  if ( !( CFast_CallCondition_Static(322) ) ) {

/* [Proc : ChangeMonComportement] *********** [1, 1, 0]*/
    CFast_CallProcedure_Static( 319 ) ;
label4 :
    return ;
  }
/* [EndTree] ************ [0]*/

/* [Op : ..] ********** [1, 1, 0]*/

/* [Cond : Col_CollisionAvecSol] ********** [2, 1, 1]*/
  CFast_fn_vSetUltraOperatorPersoRef(0);
  if ( CFast_CallCondition_Static(272) ) {

/* [Op : ..] ********** [2, 1, 0]*/

/* [Func : MOD_PositionRelativeModule] ********** [3, 2, 3]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
    CFast_CallFunction3_Static( 243 ) ;

/* [Op : ..] ********** [2, 1, 0]*/

/* [Func : VEC_VecteurAbsolu] ********** [3, 2, 2]*/
    CFast_fn_vSetUltraOperatorPersoRef(0);
      M_p_stVectorInterpret(p_stPseudoTree+246) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+3);
    CFast_CallFunction2_Static( 245 ) ;
    MTH3D_M_vSubVector(&stVector0, LocalCFast_fn_p_stGetDsgVarVector(41),&M_GetSetParam_stVectorValue(CFast_g_a_stParam+2)) ;
    LocalCFast_fn_vSetDsgVarVector(13, &stVector0) ;
    MTH3D_M_vAddVector(&M_GetSetParam_stVertexValue(&CFast_g_a_stParam[1]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 38))), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
    M_GetSetParam_Type(&CFast_g_a_stParam[1]) = E_vt_Vector;
    M_GetSetParam_xValue(&CFast_g_a_stParam[2]) = MTH3D_M_xNormVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
    M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Float;

/* [Proc : LanceAGO] *********** [5, 5, 0]*/
      M_p_stVectorInterpret(p_stPseudoTree+327) = &M_GetSetParam_stVectorValue(CFast_g_a_stParam+1);
      M_lValueInterpret(p_stPseudoTree+329) = M_GetSetParam_lValue(CFast_g_a_stParam+2);
    CFast_CallProcedure_Static( 324 ) ;
    if (MTH3D_M_bIsNullVector(((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))))) {
      MTH3D_M_vCopyVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[2]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
    } else {
      MTH3D_M_vNormalizeVector(&M_GetSetParam_stVectorValue(&CFast_g_a_stParam[2]), ((MTH3D_tdstVector *)(M_LocalGetDsgVarAddr(p_stLocalMind0, 13))));
    }
    M_GetSetParam_Type(&CFast_g_a_stParam[2]) = E_vt_Vector;

/* [Op : ..] ********** [2, 1, 0]*/

/* [Func : ACT_LitFacteurDeTraction] ********** [3, 1, 4]*/
    CFast_fn_vSetUltraOperatorPersoVar(21);
    CFast_CallFunction4_Static( 330 ) ;
    MTH3D_M_vMulScalarVector(&stVector0, MTH_M_xLongToReal(MTH_M_xMul(MTH_M_xLongToReal(M_GetSetParam_lValue(CFast_g_a_stParam+4)),MTH_M_xFloatToReal(-0.10000f))),&M_GetSetParam_stVectorValue(CFast_g_a_stParam+2)) ;
    LocalCFast_fn_vSetDsgVarVector(13, &stVector0) ;

/* [Op : ..] ********** [3, 1, 0]*/

/* [Proc : ACT_AddVecteurVitesseAbsolu] *********** [4, 2, 0]*/
    CFast_fn_vSetUltraOperatorPersoVar(21);
    CFast_CallProcedure_Static( 331 ) ;
  }
/* [EndTree] ************ [1]*/
}

/*
 * Model : Alw_Projectile_Rayman_model Comportement FRD_GrappinBisFin
 */
void CFast_Alw_Projectile_Rayman_model_Cmp_FRD_GrappinBisFin (void)
{
  MTH3D_tdstVector stVector0;


  register  AI_tdstMind * p_stLocalMind0 = p_stGlobalMind ;
  register struct tdstNodeInterpret_   *p_stRefTree = gp_stRefTree;
  register struct tdstNodeInterpret_ * p_stPseudoTree = gp_stPseudoTree ;

  register long long1 , long2 ;
  long long3 , long4 , long5 , long6 , long7 , long8 ;
  register AI_tdstMind * p_stLocalMind1 , * p_stLocalMind2 , * p_stLocalMind4 , * p_stLocalMind8 ;

  CFast_fn_vSetDsgVarBoolean(M_CFast_ucGetRealIndice(61), AI_M_stGetMindOfSuperObj(M_CFast_hGetPersoRef( 0)),0) ;

/* [Keyword : Moi] ********** [0, 0, 1]*/

/* [Proc : DetruitPerso] *********** [1, 1, 0]*/
  fn_vSetProcedureActionReturn(C_ACTION_ENGINE_CONTINUE);
  CFast_CallProcedure_Static( 0 ) ;
  if (fn_ucGetProcedureActionReturn() != (C_ACTION_ENGINE_CONTINUE))
{
    return ;
  }
/* [EndTree] ************ [0]*/
}

void CFast_Dummy_Alw_Projectile_Rayman_model(void) {
#ifdef DEBUG_CFAST
  long lSize ;
  FILE *fd = fopen ( "CfastAISize.log", "a") ;

  lSize = (long)CFast_Dummy_Alw_Projectile_Rayman_model - (long)CFast_Alw_Projectile_Rayman_model_Main ;
  lSize += sizeof ( CFast_Alw_Projectile_Rayman_model_ArrayComport ) ;
  lSize += 2664;
  fprintf ( fd, "Alw_Projectile_Rayman_model : 	AI = 14664\tC = %d\tDiff = %+d\n", lSize, 14664-lSize ) ;
  fclose (fd) ;
#endif /* DEBUG_CFAST */
}
