CreateMonster Main 1.04j Decompiled

Results 1 to 12 of 12
  1. #1
    Newbie :) Pinkof is offline
    MemberRank
    Mar 2008 Join Date
    760Posts

    happy CreateMonster Main 1.04j Decompiled

    This just create mob no draw.. if you want see a new monster create need decompile the function to draw the monster in game.

    Header
    Code:
    #pragma once
    
    
                
    
    
    #define aDataSoundMorcc "Data\\Sound\\mOrcCapAttack1.wav"
    #define aDataSoundMorca "Data\\Sound\\mOrcArcherAttack1.wav"
    #define aDataSoundMbu_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbu_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbu_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbu_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhoun "Data\\Sound\\mBull1.wav"
    #define aDataSoundMho_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMho_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMho_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMho_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbudg "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbu_4 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbu_5 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMspid "Data\\Sound\\mBull1.wav"
    #define aDataSoundMdark "Data\\Sound\\mBull1.wav"
    #define aDataSoundMda_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMda_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMda_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMda_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwiza "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwi_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwi_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwi_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwi_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgian "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgi_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgi_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgi_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgi_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMlarv "Data\\Sound\\mBull1.wav"
    #define aDataSoundMla_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhell "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhe_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhe_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMghos "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgh_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgh_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgh_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgh_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMogre "Data\\Sound\\mBull1.wav"
    #define aDataSoundMog_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMog_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMog_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMog_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgorg "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgo_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgo_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgo_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgo_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMicem "Data\\Sound\\mBull1.wav"
    #define aDataSoundMic_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMic_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMworm "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwo_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwo_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhomo "Data\\Sound\\mBull1.wav"
    #define aDataSoundMho_4 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMho_5 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMho_6 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMiceq "Data\\Sound\\mBull1.wav"
    #define aDataSoundMic_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMic_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMic_4 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMic_5 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMassa "Data\\Sound\\mBull1.wav"
    #define aDataSoundMas_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMas_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMyeti "Data\\Sound\\mBull1.wav"
    #define aDataSoundMye_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMye_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMye_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgobl "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgo_4 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgo_5 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgo_6 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgo_7 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMscor "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsc_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsc_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsc_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsc_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbeet "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbe_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbe_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhunt "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhu_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhu_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhu_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhu_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwood "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwo_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwo_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwo_4 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwo_5 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMargo "Data\\Sound\\mBull1.wav"
    #define aDataSoundMar_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMar_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMar_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMar_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgole "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgo_8 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMgo_9 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMg_10 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMg_11 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMye_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsata "Data\\Sound\\mBull1.wav"
    #define aDataSoundMye_4 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbalr "Data\\Sound\\mBull1.wav"
    #define aDataSoundMba_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMwi_4 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMg_12 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMba_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMshad "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsh_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsh_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsh_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsh_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMye_5 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbu_6 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMye_6 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbali "Data\\Sound\\mBull1.wav"
    #define aDataSoundMba_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMba_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMba_4 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbaha "Data\\Sound\\mBull1.wav"
    #define aDataSoundMye_7 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbepa "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbe_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMba_5 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMvalk "Data\\Sound\\mBull1.wav"
    #define aDataSoundMba_6 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMva_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMliza "Data\\Sound\\mBull1.wav"
    #define aDataSoundMli_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMg_13 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhydr "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhy_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundIron1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundIron_ "Data\\Sound\\mBull1.wav"
    #define aDataSoundJaika "Data\\Sound\\mBull1.wav"
    #define aDataSoundJai_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundJai_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundJai_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundJai_3 "Data\\Sound\\mBull1.wav"
    #define aMonsterBv01_2_ "Monster\\bv01_2.jpg"
    #define aMonsterBv02_2_ "Monster\\bv02_2.jpg"
    #define aDataSoundBlood "Data\\Sound\\mBull1.wav"
    #define aDataSoundBlo_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundBlo_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundBlo_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundDeath "Data\\Sound\\mBull1.wav"
    #define aDataSoundDea_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundDea_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMutan "Data\\Sound\\mBull1.wav"
    #define aDataSoundMut_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMut_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMor_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbu_7 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhu_4 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbu_8 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMor_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMcurs "Data\\Sound\\mBull1.wav"
    #define aDataSoundMcu_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMcu_1 "Data\\Sound\\mBull1.wav"
    #define aMonsterIui02_t "Monster\\iui02.tga"
    #define aMonsterIui03_t "Monster\\iui03.tga"
    #define aDataSoundMmega "Data\\Sound\\mBull1.wav"
    #define aDataSoundMme_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMme_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMmolt "Data\\Sound\\mBull1.wav"
    #define aDataSoundMmo_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMmo_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMalqu "Data\\Sound\\mBull1.wav"
    #define aDataSoundMal_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMrain "Data\\Sound\\mBull1.wav"
    #define aDataSoundMra_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMra_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMphan "Data\\Sound\\mBull1.wav"
    #define aDataSoundMph_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMph_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMdrak "Data\\Sound\\mBull1.wav"
    #define aDataSoundMdr_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMdr_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMphoe "Data\\Sound\\mBull1.wav"
    #define aDataSoundMph_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMph_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMmagi "Data\\Sound\\mBull1.wav"
    #define aDataSoundMma_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbu_9 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhu_5 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMblac "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbl_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMhu_6 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMghai "Data\\Sound\\mBull1.wav"
    #define aDataSoundMreds "Data\\Sound\\mBull1.wav"
    #define aDataSoundMre_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMre_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMdang "Data\\Sound\\mBull1.wav"
    #define aDataSoundMda_4 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMda_5 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMkund "Data\\Sound\\mBull1.wav"
    #define aDataSoundMku_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMku_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbsol "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbs_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbs_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbs_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbs_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMesis "Data\\Sound\\mBull1.wav"
    #define aDataSoundMes_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMes_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMes_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMdsid "Data\\Sound\\mBull1.wav"
    #define aDataSoundMds_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMdsat "Data\\Sound\\mBull1.wav"
    #define aDataSoundMds_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMdsde "Data\\Sound\\mBull1.wav"
    #define aDataSoundMlsid "Data\\Sound\\mBull1.wav"
    #define aDataSoundMls_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMlsat "Data\\Sound\\mBull1.wav"
    #define aDataSoundMls_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMlsde "Data\\Sound\\mBull1.wav"
    #define aDataSoundMnecr "Data\\Sound\\mBull1.wav"
    #define aDataSoundMne_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMne_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMne_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMne_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsvid "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsv_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsvat "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsv_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMsvde "Data\\Sound\\mBull1.wav"
    #define aDataSoundMlvid "Data\\Sound\\mBull1.wav"
    #define aDataSoundMlv_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMlvat "Data\\Sound\\mBull1.wav"
    #define aDataSoundMlv_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMlvde "Data\\Sound\\mBull1.wav"
    #define aDataSoundBattl "Data\\Sound\\mBull1.wav"
    #define aDataSoundBat_0 "Data\\Sound\\mBull1.wav"
    #define aDataSoundBat_1 "Data\\Sound\\mBull1.wav"
    #define aDataSoundBat_2 "Data\\Sound\\mBull1.wav"
    #define aDataSoundBat_3 "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    #define aDataSoundMbull "Data\\Sound\\mBull1.wav"
    
    
    #define aMonster_9 "Monster"
    #define aDataMonster_6 "Data\\Monster"
    #define aNpc_45 "Npc"
    #define aMonster_10 "Monster"
    #define aObject31 "Object31"
    
    
    #define MAX_ANIMATION  10
    
    
     struct SANIMATION
    {
    /*0x0*/     BYTE No_Repeat_1;
    /*0x1*/     BYTE Unk0x1;
    /*0x2*/     WORD Unk0x2;
    /*0x4*/    float SpeedAnimation_1;
    /*0x8*/    BYTE Unk0x8[8];
    
    
    };
    struct DATASMD
    {
        SANIMATION sAnimation[MAX_ANIMATION];
    };
    
    
    struct STRUCTBMD
    {
    /*0x0*/     char Path[32];
    /*0x20*/ WORD Unk0x20;
    /*0x22*/ WORD Unk0x22; //Cantidad de huesos ?
    /*0x24*/ WORD Unk0x24; //Cantidad de texturas ?
    /*0x26*/ WORD Unk0x26; //Visible?
    /*0x28*/ BYTE Unk0x28[8];
    /*0x30*/ DATASMD *dSMD;
    /*0x34*/ BYTE Unk0x34[32];
    /*0x54*/ DWORD Unk0x54;
    /*0x58*/ BYTE Unk0x58[152];
    };
    [/QUOTE]
    
    [QUOTE]
    
    
    int  CreateMonster(signed int a1)
    {
      STRUCTBMD* sBMD;
      int result; // eax@1
      signed int i; // [sp+10h] [bp-10h]@13
      int SMD_INDEX; // [sp+18h] [bp-8h]@1
     // int v4; // [sp+1Ch] [bp-4h]@1
        
      SMD_INDEX = a1 + 408;
     // sBMD = 240 * (a1 + 408) + dword_5801AE8;
      sBMD = (STRUCTBMD*)dword_5801AE8;
      
      //result = 240 * (a1 + 408) + dword_5801AE8;
      if ( sBMD[SMD_INDEX].Unk0x26 <= 0 )
      {
        result = sBMD[SMD_INDEX].Unk0x24; //Cantidad de texturas?
        if ( result <= 0 )
        {
          sub_62B803(SMD_INDEX, aDataMonster_6, aMonster_9, a1 + 1);
          result = (int)sBMD;
          if ( sBMD[SMD_INDEX].Unk0x24 )
          {
            if ( (unsigned __int8)sub_4600A0(MapNumber) != 1 || a1 < 70 || a1 > 72 )
            {
              if ( (unsigned __int8)sub_49CC90(MapNumber) != 1 || a1 != 74 )
                sub_62B387(SMD_INDEX, aMonster_10, 0x2901, 0x2600, 1); //Cargo la textura del monster
              else
                sub_62B387(SMD_INDEX, aObject31, 0x2901, 0x2600, 1);
            }
            else
            {
              sub_62B387(SMD_INDEX, aNpc_45, 0x2901, 0x2600, 1);
            }
            sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.250000f;
            sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.200000f;
            sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.340000f;
            sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.330000f;
            sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.330000f;
            sBMD[SMD_INDEX].dSMD->sAnimation[5].SpeedAnimation_1 = 0.500000f;
            sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.550000f;
            sBMD[SMD_INDEX].dSMD->sAnimation[6].No_Repeat_1 = 1;
    
    
            for ( i = 0; i < 6; ++i )
            {
              if ( a1 == 3 )
                
                sBMD[SMD_INDEX].dSMD->sAnimation[i].SpeedAnimation_1 = sBMD[SMD_INDEX].dSMD->sAnimation[i].SpeedAnimation_1 * 1.2f;
              if ( a1 == 5 || a1 == 25 )
                sBMD[SMD_INDEX].dSMD->sAnimation[i].SpeedAnimation_1 = sBMD[SMD_INDEX].dSMD->sAnimation[i].SpeedAnimation_1 * 0.69999999f;
              if ( a1 == 37 || a1 == 42 )
                sBMD[SMD_INDEX].dSMD->sAnimation[i].SpeedAnimation_1 = sBMD[SMD_INDEX].dSMD->sAnimation[i].SpeedAnimation_1 * 0.40000001f;
            }
            switch ( a1 )
            {
              case 2:
                 sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.700000f;
                break;
              case 6:
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.600000f;
                break;
              case 8:
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.700000f;
                break;
              case 9:
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 1.200000f;
                break;
              case 10:
                 sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.280000f;
                break;
              case 12:
                 sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.300000f;
                break;
              case 13:
                 sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.280000f;
                break;
              case 17:
                 sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.500000f;
                break;
              case 19:
                 sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.600000f;
                break;
              case 20:
                 sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.400000f;
                break;
              case 21:
                 sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.500000f;
                break;
              case 28:
                 sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.300000f;
                break;
              case 39:
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.220000f;
                break;
              case 41:
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.180000f;
                break;
              case 42:
                 sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.350000f;
                 sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.350000f;
                break;
              case 44:
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.300000f;
                break;
              case 63:
                 sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.100000f;
                break;
              case 64:
                 sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.300000f;
                 sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.250000f;
                 sBMD[SMD_INDEX].dSMD->sAnimation[5].SpeedAnimation_1 = 0.150000f;
                 sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.250000f;
                break;
              case 66:
                 sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.100000f;
                break;
              case 67:
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.200000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.300000f;
                break;
              case 69:
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.100000f;
                break;
              case 70:
              case 71:
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.500000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.500000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.300000f;
                break;
              case 72:
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.400000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.400000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.300000f;
                break;
              case 89:
                sBMD[SMD_INDEX].dSMD->sAnimation[7].SpeedAnimation_1 = 0.330000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[8].SpeedAnimation_1 = 0.330000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[9].SpeedAnimation_1 = 0.330000f;
                break;
              case 94:
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.200000f;
                break;
              case 92:
                sBMD[SMD_INDEX].dSMD->sAnimation[7].SpeedAnimation_1 = 0.330000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[8].SpeedAnimation_1 = 0.330000f;
                break;
              case 99:
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.370000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.370000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.150000f;
                break;
              case 100:
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.200000f;
                break;
              case 101:
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.200000f;
                goto LABEL_54;
              case 102:
    LABEL_54:
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.150000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.150000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.230000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.230000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.300000f;
                break;
              case 105:
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.150000f;
                break;
              case 106:
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.230000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.280000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.280000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.190000f;
                break;
              case 107:
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.270000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.300000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.300000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.300000f;
                break;
              case 108:
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.270000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.250000f;
                break;
              case 109:
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.270000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.300000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.300000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.300000f;
                break;
              case 110:
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.230000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.230000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.200000f;
                break;
              case 111:
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.270000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.270000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.270000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.250000f;
                goto LABEL_62;
              case 112:
    LABEL_62:
                  sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.260000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.260000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.210000;
                break;
              case 113:
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.300000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.300000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[5].SpeedAnimation_1 = 0.500000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.300000f;
                break;
              case 114:
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.340000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.330000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.330000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.230000f;
                break;
              case 115:
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.340000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.230000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.230000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.230000f;
                break;
              case 116:
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.340000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.250000f;
                break;
              case 121:
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.220000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.220000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.120000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[7].SpeedAnimation_1 = 0.220000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[8].SpeedAnimation_1 = 0.250000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[9].SpeedAnimation_1 = 0.250000f;
                break;
              case 118:
                sBMD[SMD_INDEX].dSMD->sAnimation[7].SpeedAnimation_1 = 0.120000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.120000f;
                goto LABEL_69;
              case 119:
    LABEL_69:
                sBMD[SMD_INDEX].dSMD->sAnimation[7].SpeedAnimation_1 = 0.120000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.120000f;
                break;
              case 122:
                sBMD[SMD_INDEX].dSMD->sAnimation[5].SpeedAnimation_1 = 0.300000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.220000f;
                break;
              case 127:
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.400000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.400000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.400000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[5].SpeedAnimation_1 = 0.400000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.500000f;
                break;
              default:
                break;
            }
            switch ( a1 )
            {
              case 14:
              case 31:
              case 39:
              case 40:
              case 155:
                sBMD[SMD_INDEX].dSMD->sAnimation[1].No_Repeat_1 = 1;
                break;
              default:
                break;
            }
            result = a1;
            switch ( a1 )
            {
              case 70:
              case 71:
                sub_6A4C2D(371, aDataSoundMorcc, 2, 1);
                sub_630D06(a1 + 408, -1, -1, 161, 161, -1, -1, -1, -1, -1, -1);
                result = dword_5801AE8;
                sBMD[SMD_INDEX].Unk0x54 = 20;
                break;
              case 72:
                sub_6A4C2D(372, aDataSoundMorca, 2, 1);
                result = sub_630D06(a1 + 408, -1, -1, 162, 162, -1, -1, -1, -1, -1, -1);
                sBMD[SMD_INDEX].Unk0x54 = 20;
                break;
              case 0:
              case 30:
                sub_6A4C2D(210, aDataSoundMbull, 2, 1);
                sub_6A4C2D(211, aDataSoundMbu_0, 2, 1);
                sub_6A4C2D(212, aDataSoundMbu_1, 2, 1);
                sub_6A4C2D(213, aDataSoundMbu_2, 2, 1);
                sub_6A4C2D(214, aDataSoundMbu_3, 2, 1);
                sub_630D06(a1 + 408, 0, 1, 2, 3, 4, -1, -1, -1, -1, -1);
                result = dword_5801AE8;
                sBMD[SMD_INDEX].Unk0x54 = 20;
                break;
              case 1:
                sub_6A4C2D(215, aDataSoundMhoun, 2, 1);
                sub_6A4C2D(216, aDataSoundMho_0, 2, 1);
                sub_6A4C2D(217, aDataSoundMho_1, 2, 1);
                sub_6A4C2D(218, aDataSoundMho_2, 2, 1);
                sub_6A4C2D(219, aDataSoundMho_3, 2, 1);
                sub_630D06(a1 + 408, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 5;
                break;
              case 2:
                sub_6A4C2D(220, aDataSoundMbudg, 2, 1);
                sub_6A4C2D(221, aDataSoundMbu_4, 2, 1);
                sub_6A4C2D(222, aDataSoundMbu_5, 2, 1);
                sub_630D06(a1 + 408, 10, 11, 11, 11, 12, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 7;
                break;
              case 9:
                sub_6A4C2D(223, aDataSoundMspid, 2, 1);
                result = sub_630D06(a1 + 408, 13, 13, 13, 13, 13, -1, -1, -1, -1, -1);
                break;
              case 3:
              case 29:
              case 39:
                sub_6A4C2D(225, aDataSoundMdark, 2, 1);
                sub_6A4C2D(226, aDataSoundMda_0, 2, 1);
                sub_6A4C2D(227, aDataSoundMda_1, 2, 1);
                sub_6A4C2D(228, aDataSoundMda_2, 2, 1);
                sub_6A4C2D(229, aDataSoundMda_3, 2, 1);
                result = sub_630D06(a1 + 408, 15, 16, 17, 18, 19, -1, -1, -1, -1, -1);
                if ( a1 == 3 )
                {
                  *(DWORD *)(dword_5801AE8 + 98724) = 16;
                }
                else if ( a1 == 29 )
                {
                  result = 104880;
                  *(DWORD *)(dword_5801AE8 + 104964) = 20;
                }
                else
                {
                  result = dword_5801AE8;
                  sBMD[SMD_INDEX].Unk0x54 = 19;
                }
                break;
              case 4:
                sub_6A4C2D(230, aDataSoundMwiza, 2, 1);
                sub_6A4C2D(231, aDataSoundMwi_0, 2, 1);
                sub_6A4C2D(232, aDataSoundMwi_1, 2, 1);
                sub_6A4C2D(233, aDataSoundMwi_2, 2, 1);
                sub_6A4C2D(234, aDataSoundMwi_3, 2, 1);
                sub_630D06(a1 + 408, 20, 21, 22, 23, 24, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 20;
                break;
              case 5:
                sub_6A4C2D(235, aDataSoundMgian, 2, 1);
                sub_6A4C2D(236, aDataSoundMgi_0, 2, 1);
                sub_6A4C2D(237, aDataSoundMgi_1, 2, 1);
                sub_6A4C2D(238, aDataSoundMgi_2, 2, 1);
                sub_6A4C2D(239, aDataSoundMgi_3, 2, 1);
                result = sub_630D06(a1 + 408, 25, 26, 27, 28, 29, -1, -1, -1, -1, -1);
                sBMD[SMD_INDEX].Unk0x54 = 20;
                break;
              case 6:
                sub_6A4C2D(240, aDataSoundMlarv, 2, 1);
                sub_6A4C2D(241, aDataSoundMla_0, 2, 1);
                result = sub_630D06(a1 + 408, 30, 31, 30, 31, 31, -1, -1, -1, -1, -1);
                break;
              case 8:
                sub_6A4C2D(242, aDataSoundMhell, 2, 1);
                sub_6A4C2D(243, aDataSoundMhe_0, 2, 1);
                sub_6A4C2D(244, aDataSoundMhe_1, 2, 1);
                sub_630D06(a1 + 408, 32, 33, 33, 33, 34, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 16;
                break;
              case 7:
                sub_6A4C2D(245, aDataSoundMghos, 2, 1);
                sub_6A4C2D(246, aDataSoundMgh_0, 2, 1);
                sub_6A4C2D(247, aDataSoundMgh_1, 2, 1);
                sub_6A4C2D(248, aDataSoundMgh_2, 2, 1);
                sub_6A4C2D(249, aDataSoundMgh_3, 2, 1);
                result = sub_630D06(a1 + 408, 35, 36, 37, 38, 39, -1, -1, -1, -1, -1);
                sBMD[SMD_INDEX].Unk0x54 = 20;
                break;
              case 10:
                sub_6A4C2D(250, aDataSoundMogre, 2, 1);
                sub_6A4C2D(251, aDataSoundMog_0, 2, 1);
                sub_6A4C2D(252, aDataSoundMog_1, 2, 1);
                sub_6A4C2D(253, aDataSoundMog_2, 2, 1);
                sub_6A4C2D(254, aDataSoundMog_3, 2, 1);
                sub_630D06(a1 + 408, 40, 41, 42, 43, 44, -1, -1, -1, -1, -1);
                result = dword_5801AE8;
                sBMD[SMD_INDEX].Unk0x54 = 20;
                break;
              case 11:
                sub_6A4C2D(255, aDataSoundMgorg, 2, 1);
                sub_6A4C2D(256, aDataSoundMgo_0, 2, 1);
                sub_6A4C2D(257, aDataSoundMgo_1, 2, 1);
                sub_6A4C2D(258, aDataSoundMgo_2, 2, 1);
                sub_6A4C2D(259, aDataSoundMgo_3, 2, 1);
                sub_630D06(a1 + 408, 45, 46, 47, 48, 49, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 20;
                break;
              case 15:
                sub_6A4C2D(260, aDataSoundMicem, 2, 1);
                sub_6A4C2D(261, aDataSoundMic_0, 2, 1);
                sub_6A4C2D(262, aDataSoundMic_1, 2, 1);
                sub_630D06(a1 + 408, 50, 51, 50, 50, 52, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 19;
                break;
              case 17:
                sub_6A4C2D(263, aDataSoundMworm, 2, 1);
                sub_6A4C2D(264, aDataSoundMwo_0, 2, 1);
                sub_6A4C2D(265, aDataSoundMwo_1, 2, 1);
                result = sub_630D06(a1 + 408, 53, 53, 55, 55, 55, -1, -1, -1, -1, -1);
                break;
              case 16:
                sub_6A4C2D(266, aDataSoundMhomo, 2, 1);
                sub_6A4C2D(267, aDataSoundMho_4, 2, 1);
                sub_6A4C2D(268, aDataSoundMho_5, 2, 1);
                sub_6A4C2D(269, aDataSoundMho_6, 2, 1);
                result = sub_630D06(a1 + 408, 56, 57, 58, 58, 59, -1, -1, -1, -1, -1);
                break;
              case 18:
                sub_6A4C2D(270, aDataSoundMiceq, 2, 1);
                sub_6A4C2D(271, aDataSoundMic_2, 2, 1);
                sub_6A4C2D(272, aDataSoundMic_3, 2, 1);
                sub_6A4C2D(273, aDataSoundMic_4, 2, 1);
                sub_6A4C2D(274, aDataSoundMic_5, 2, 1);
                sub_630D06(a1 + 408, 60, 61, 62, 63, 64, -1, -1, -1, -1, -1);
                result = dword_5801AE8;
                sBMD[SMD_INDEX].Unk0x54 = 16;
                break;
              case 14:
                sub_6A4C2D(275, aDataSoundMassa, 2, 1);
                sub_6A4C2D(276, aDataSoundMas_0, 2, 1);
                sub_6A4C2D(277, aDataSoundMas_1, 2, 1);
                sub_630D06(a1 + 408, -1, -1, 65, 66, 67, -1, -1, -1, -1, -1);
                result = dword_5801AE8;
                sBMD[SMD_INDEX].Unk0x54 = 20;
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.350000f;
                break;
              case 12:
              case 13:
                sub_6A4C2D(278, aDataSoundMyeti, 2, 1);
                sub_6A4C2D(279, aDataSoundMye_0, 2, 1);
                sub_6A4C2D(280, aDataSoundMye_1, 2, 1);
                sub_6A4C2D(281, aDataSoundMye_2, 2, 1);
                sub_630D06(420, 68, 68, 70, 70, 71, -1, -1, -1, -1, -1);
                sub_630D06(421, 68, 69, 70, 70, 71, -1, -1, -1, -1, -1);
                *(DWORD *)(dword_5801AE8 + 100884) = 20;
                result = dword_5801AE8;
                *(DWORD *)(dword_5801AE8 + 101124) = 20;
                break;
              case 19:
                sub_6A4C2D(282, aDataSoundMgobl, 2, 1);
                sub_6A4C2D(283, aDataSoundMgo_4, 2, 1);
                sub_6A4C2D(284, aDataSoundMgo_5, 2, 1);
                sub_6A4C2D(285, aDataSoundMgo_6, 2, 1);
                sub_6A4C2D(286, aDataSoundMgo_7, 2, 1);
                sub_630D06(a1 + 408, 72, 73, 74, 75, 76, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 6;
                break;
              case 20:
                sub_6A4C2D(287, aDataSoundMscor, 2, 1);
                sub_6A4C2D(288, aDataSoundMsc_0, 2, 1);
                sub_6A4C2D(289, aDataSoundMsc_1, 2, 1);
                sub_6A4C2D(290, aDataSoundMsc_2, 2, 1);
                sub_6A4C2D(291, aDataSoundMsc_3, 2, 1);
                result = sub_630D06(a1 + 408, 77, 78, 79, 80, 81, -1, -1, -1, -1, -1);
                break;
              case 21:
                sub_6A4C2D(292, aDataSoundMbeet, 2, 1);
                sub_6A4C2D(293, aDataSoundMbe_0, 2, 1);
                sub_6A4C2D(294, aDataSoundMbe_1, 2, 1);
                sub_630D06(a1 + 408, 82, 82, 83, 83, 84, -1, -1, -1, -1, -1);
                result = dword_5801AE8;
                sBMD[SMD_INDEX].Unk0x54 = 5;
                break;
              case 22:
                sub_6A4C2D(295, aDataSoundMhunt, 2, 1);
                sub_6A4C2D(296, aDataSoundMhu_0, 2, 1);
                sub_6A4C2D(297, aDataSoundMhu_1, 2, 1);
                sub_6A4C2D(298, aDataSoundMhu_2, 2, 1);
                sub_6A4C2D(299, aDataSoundMhu_3, 2, 1);
                sub_630D06(a1 + 408, 85, 86, 87, 88, 89, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 6;
                break;
              case 23:
                sub_6A4C2D(300, aDataSoundMwood, 2, 1);
                sub_6A4C2D(301, aDataSoundMwo_2, 2, 1);
                sub_6A4C2D(302, aDataSoundMwo_3, 2, 1);
                sub_6A4C2D(303, aDataSoundMwo_4, 2, 1);
                sub_6A4C2D(304, aDataSoundMwo_5, 2, 1);
                result = sub_630D06(a1 + 408, 90, 91, 92, 93, 94, -1, -1, -1, -1, -1);
                sBMD[SMD_INDEX].Unk0x54 = 6;
                break;
              case 24:
                sub_6A4C2D(305, aDataSoundMargo, 2, 1);
                sub_6A4C2D(306, aDataSoundMar_0, 2, 1);
                sub_6A4C2D(307, aDataSoundMar_1, 2, 1);
                sub_6A4C2D(308, aDataSoundMar_2, 2, 1);
                sub_6A4C2D(309, aDataSoundMar_3, 2, 1);
                sub_630D06(a1 + 408, 95, 96, 97, 98, 99, -1, -1, -1, -1, -1);
                result = dword_5801AE8;
                sBMD[SMD_INDEX].Unk0x54 = 16;
                break;
              case 25:
                sub_6A4C2D(310, aDataSoundMgole, 2, 1);
                sub_6A4C2D(311, aDataSoundMgo_8, 2, 1);
                sub_6A4C2D(312, aDataSoundMgo_9, 2, 1);
                sub_6A4C2D(313, aDataSoundMg_10, 2, 1);
                sub_6A4C2D(314, aDataSoundMg_11, 2, 1);
                sub_630D06(a1 + 408, 100, 101, 102, 103, 104, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 5;
                break;
              case 26:
                sub_6A4C2D(315, aDataSoundMye_3, 2, 1);
                sub_6A4C2D(316, aDataSoundMsata, 2, 1);
                sub_6A4C2D(317, aDataSoundMye_4, 2, 1);
                sub_630D06(a1 + 408, 105, 105, 106, 106, 107, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 6;
                break;
              case 27:
                sub_6A4C2D(318, aDataSoundMbalr, 2, 1);
                sub_6A4C2D(319, aDataSoundMba_0, 2, 1);
                sub_6A4C2D(320, aDataSoundMwi_4, 2, 1);
                sub_6A4C2D(321, aDataSoundMg_12, 2, 1);
                sub_6A4C2D(322, aDataSoundMba_1, 2, 1);
                sub_630D06(a1 + 408, 108, 109, 110, 111, 112, -1, -1, -1, -1, -1);
                sBMD[SMD_INDEX].Unk0x54 = 6;
                result = 240 * (a1 + 408);
                *(BYTE *)(dword_5801AE8 + result + 136) = 1;
                break;
              case 28:
                sub_6A4C2D(323, aDataSoundMshad, 2, 1);
                sub_6A4C2D(324, aDataSoundMsh_0, 2, 1);
                sub_6A4C2D(325, aDataSoundMsh_1, 2, 1);
                sub_6A4C2D(326, aDataSoundMsh_2, 2, 1);
                sub_6A4C2D(327, aDataSoundMsh_3, 2, 1);
                result = sub_630D06(a1 + 408, 113, 114, 115, 116, 117, -1, -1, -1, -1, -1);
                sBMD[SMD_INDEX].Unk0x54 = 5;
                break;
              case 31:
                sub_6A4C2D(333, aDataSoundMye_5, 2, 1);
                sub_6A4C2D(334, aDataSoundMbu_6, 2, 1);
                sub_6A4C2D(335, aDataSoundMye_6, 2, 1);
                sub_630D06(a1 + 408, 123, 123, 124, 124, 125, -1, -1, -1, -1, -1);
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.500000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.700000f;
                //result = *(DWORD *)(v4 + 48);
                sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.800000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[7].SpeedAnimation_1 = 0.800000f;
                break;
              case 32:
                sub_6A4C2D(336, aDataSoundMbali, 2, 1);
                sub_6A4C2D(337, aDataSoundMba_2, 2, 1);
                sub_6A4C2D(338, aDataSoundMba_3, 2, 1);
                sub_6A4C2D(339, aDataSoundMba_4, 2, 1);
                sub_630D06(a1 + 408, 126, 127, 128, 129, 127, -1, -1, -1, -1, -1);
                sBMD[SMD_INDEX].dSMD->sAnimation[8].SpeedAnimation_1 = 0.400000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[9].SpeedAnimation_1 = 0.400000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[7].SpeedAnimation_1 = 0.400000f;
                //result = v4;
                sBMD[SMD_INDEX].dSMD->sAnimation[10].SpeedAnimation_1 = 0.400000f;
                sBMD[SMD_INDEX].Unk0x54 = 6;
                break;
              case 33:
                sub_6A4C2D(340, aDataSoundMbaha, 2, 1);
                sub_6A4C2D(341, aDataSoundMye_7, 2, 1);
                result = sub_630D06(a1 + 408, 130, 130, 131, 131, 130, -1, -1, -1, -1, -1);
                break;
              case 34:
                sub_6A4C2D(342, aDataSoundMbepa, 2, 1);
                sub_6A4C2D(343, aDataSoundMbe_2, 2, 1);
                sub_6A4C2D(344, aDataSoundMba_5, 2, 1);
                sub_630D06(a1 + 408, 132, 133, 104, 104, 133, -1, -1, -1, -1, -1);
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.500000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.500000f;
                sBMD[SMD_INDEX].Unk0x54 = 20;
                break;
              case 35:
                sub_6A4C2D(345, aDataSoundMvalk, 2, 1);
                sub_6A4C2D(346, aDataSoundMba_6, 2, 1);
                sub_6A4C2D(347, aDataSoundMva_0, 2, 1);
                sub_630D06(a1 + 408, 135, 135, 136, 136, 137, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 19;
                break;
              case 36:
              case 40:
                sub_6A4C2D(348, aDataSoundMliza, 2, 1);
                sub_6A4C2D(349, aDataSoundMli_0, 2, 1);
                sub_6A4C2D(350, aDataSoundMg_13, 2, 1);
                sub_630D06(a1 + 408, 138, 139, 138, 139, 140, -1, -1, -1, -1, -1);
                if ( a1 == 36 )
                {
                  result = 106560;
                  *(DWORD *)(dword_5801AE8 + 106644) = 19;
                }
                else
                {
                  result = dword_5801AE8;
                  sBMD[SMD_INDEX].Unk0x54 = 6;
                }
                break;
              case 37:
                sub_6A4C2D(351, aDataSoundMhydr, 2, 1);
                sub_6A4C2D(352, aDataSoundMhy_0, 2, 1);
                sub_630D06(a1 + 408, 141, 141, 142, 142, 141, -1, -1, -1, -1, -1);
                sBMD[SMD_INDEX].dSMD->sAnimation[3].SpeedAnimation_1 = 0.150000f;
               
                 sBMD[SMD_INDEX].dSMD->sAnimation[4].SpeedAnimation_1 = 0.150000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.200000f;
                break;
              case 41:
                sub_6A4C2D(353, aDataSoundIron1, 2, 1);
                sub_6A4C2D(354, aDataSoundIron_, 2, 1);
                sub_630D06(a1 + 408, 143, 143, 144, 144, 144, -1, -1, -1, -1, -1);
                result = dword_5801AE8;
                sBMD[SMD_INDEX].Unk0x54 = 3;
                break;
              case 42:
                sub_6A4C2D(355, aDataSoundJaika, 2, 1);
                sub_6A4C2D(356, aDataSoundJai_0, 2, 1);
                sub_6A4C2D(357, aDataSoundJai_1, 2, 1);
                sub_6A4C2D(358, aDataSoundJai_2, 2, 1);
                sub_6A4C2D(359, aDataSoundJai_3, 2, 1);
                sub_630D06(a1 + 408, 145, 146, 147, 148, 149, -1, -1, -1, -1, -1);
                sub_6F9D4F(aMonsterBv01_2_, 2026, 9729, 10497, 0, 1);
                sub_6F9D4F(aMonsterBv02_2_, 2027, 9729, 10497, 0, 1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 20;
                break;
              case 43:
                sub_6A4C2D(360, aDataSoundBlood, 2, 1);
                sub_6A4C2D(361, aDataSoundBlo_0, 2, 1);
                sub_6A4C2D(362, aDataSoundBlo_1, 2, 1);
                sub_6A4C2D(363, aDataSoundBlo_2, 2, 1);
                sub_630D06(a1 + 408, 150, 150, 151, 152, 153, -1, -1, -1, -1, -1);
                result = dword_5801AE8;
                sBMD[SMD_INDEX].Unk0x54 = 7;
                break;
              case 44:
                sub_6A4C2D(364, aDataSoundDeath, 2, 1);
                sub_6A4C2D(365, aDataSoundDea_0, 2, 1);
                sub_6A4C2D(366, aDataSoundDea_1, 2, 1);
                sub_630D06(a1 + 408, 154, 154, 155, 155, 156, -1, -1, -1, -1, -1);
                result = dword_5801AE8;
                sBMD[SMD_INDEX].Unk0x54 = 6;
                break;
              case 45:
                sub_6A4C2D(367, aDataSoundMutan, 2, 1);
                sub_6A4C2D(368, aDataSoundMut_0, 2, 1);
                sub_6A4C2D(369, aDataSoundMut_1, 2, 1);
                sub_630D06(a1 + 408, 157, 158, 159, 159, 159, -1, -1, -1, -1, -1);
                result = dword_5801AE8;
                sBMD[SMD_INDEX].Unk0x54 = 6;
                break;
              case 46:
                sub_6A4C2D(372, aDataSoundMor_0, 2, 1);
                sub_6A4C2D(214, aDataSoundMbu_7, 2, 1);
                sub_630D06(a1 + 408, -1, -1, 162, 162, 4, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 7;
                break;
              case 47:
                sub_6A4C2D(296, aDataSoundMhu_4, 2, 1);
                sub_6A4C2D(214, aDataSoundMbu_8, 2, 1);
                sub_6A4C2D(371, aDataSoundMor_1, 2, 1);
                sub_630D06(a1 + 408, 86, 86, 161, 161, 4, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 20;
                break;
              case 48:
                sub_6A4C2D(370, aDataSoundMcurs, 2, 1);
                sub_6A4C2D(374, aDataSoundMcu_0, 2, 1);
                sub_6A4C2D(373, aDataSoundMcu_1, 2, 1);
                sub_630D06(a1 + 408, 160, 164, -1, -1, 163, -1, -1, -1, -1, -1);
                result = 240 * (a1 + 408);
                sBMD[SMD_INDEX].Unk0x54 = 20;
                break;
              case 52:
                sub_6FA244(aMonsterIui02_t, 745, 9728, 10496, 0, 1);
                sub_6FA244(aMonsterIui03_t, 747, 9728, 10496, 0, 1);
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.220000f;
                sub_6A4C2D(390, aDataSoundMmega, 2, 1);
                sub_6A4C2D(391, aDataSoundMme_0, 2, 1);
                sub_6A4C2D(392, aDataSoundMme_1, 2, 1);
                result = sub_630D06(a1 + 408, 180, 180, 181, 181, 182, -1, -1, -1, -1, -1);
                break;
              case 49:
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.220000f;
                sub_6A4C2D(387, aDataSoundMmolt, 2, 1);
                sub_6A4C2D(388, aDataSoundMmo_0, 2, 1);
                sub_6A4C2D(389, aDataSoundMmo_1, 2, 1);
                result = sub_630D06(a1 + 408, 177, 177, 178, 178, 179, -1, -1, -1, -1, -1);
                break;
              case 50:
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.220000f;
                sub_6A4C2D(385, aDataSoundMalqu, 2, 1);
                sub_6A4C2D(386, aDataSoundMal_0, 2, 1);
                result = sub_630D06(a1 + 408, 175, 175, 175, 175, 176, -1, -1, -1, -1, -1);
                break;
              case 51:
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.220000f;
                sub_6A4C2D(381, aDataSoundMrain, 2, 1);
                sub_6A4C2D(382, aDataSoundMra_0, 2, 1);
                sub_6A4C2D(383, aDataSoundMra_1, 2, 1);
                result = sub_630D06(a1 + 408, 171, -1, 172, 172, 173, -1, -1, -1, -1, -1);
                break;
              case 53:
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.220000f;
                sub_6A4C2D(378, aDataSoundMphan, 2, 1);
                sub_6A4C2D(379, aDataSoundMph_0, 2, 1);
                sub_6A4C2D(380, aDataSoundMph_1, 2, 1);
                result = sub_630D06(a1 + 408, 168, 168, 169, 169, 170, -1, -1, -1, -1, -1);
                break;
              case 54:
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.220000f;
                sub_6A4C2D(375, aDataSoundMdrak, 2, 1);
                sub_6A4C2D(376, aDataSoundMdr_0, 2, 1);
                sub_6A4C2D(377, aDataSoundMdr_1, 2, 1);
                result = sub_630D06(a1 + 408, 165, 165, 166, 166, 167, -1, -1, -1, -1, -1);
                break;
              case 55:
                sub_6A4C2D(393, aDataSoundMphoe, 2, 1);
                sub_6A4C2D(394, aDataSoundMph_2, 2, 1);
                sub_6A4C2D(395, aDataSoundMph_3, 2, 1);
                result = sub_630D06(a1 + 408, 183, 184, 185, 185, -1, -1, -1, -1, -1, -1);
                goto LABEL_135;
              case 56:
    LABEL_135:
                sBMD[SMD_INDEX].dSMD->sAnimation[6].SpeedAnimation_1 = 0.220000f;
                break;
              case 62:
                sub_6A4C2D(396, aDataSoundMmagi, 2, 1);
                sub_6A4C2D(397, aDataSoundMma_0, 2, 1);
                result = sub_630D06(a1 + 408, 186, -1, -1, -1, 187, -1, -1, -1, -1, -1);
                break;
              case 59:
                sub_6A4C2D(214, aDataSoundMbu_9, 2, 1);
                sub_6A4C2D(398, aDataSoundMhu_5, 2, 1);
                sub_6A4C2D(399, aDataSoundMblac, 2, 1);
                sub_6A4C2D(400, aDataSoundMbl_0, 2, 1);
                result = sub_630D06(a1 + 408, 188, -1, 190, -1, 189, -1, -1, -1, -1, -1);
                break;
              case 58:
                sub_6A4C2D(398, aDataSoundMhu_6, 2, 1);
                sub_6A4C2D(401, aDataSoundMghai, 2, 1);
                result = sub_630D06(a1 + 408, 188, -1, 190, -1, 191, -1, -1, -1, -1, -1);
                break;
              case 57:
                sub_6A4C2D(402, aDataSoundMreds, 2, 1);
                sub_6A4C2D(403, aDataSoundMre_0, 2, 1);
                sub_6A4C2D(404, aDataSoundMre_1, 2, 1);
                result = sub_630D06(a1 + 408, 192, -1, 194, -1, 193, -1, -1, -1, -1, -1);
                break;
              case 63:
                sub_6A4C2D(405, aDataSoundMdang, 2, 1);
                sub_6A4C2D(406, aDataSoundMda_4, 2, 1);
                sub_6A4C2D(407, aDataSoundMda_5, 2, 1);
                result = sub_630D06(a1 + 408, 195, 195, 196, 196, 197, -1, -1, -1, -1, -1);
                break;
              case 64:
                sub_6A4C2D(442, aDataSoundMkund, 2, 1);
                sub_6A4C2D(443, aDataSoundMku_0, 2, 1);
                sub_6A4C2D(444, aDataSoundMku_1, 2, 1);
                result = sub_630D06(a1 + 408, 232, 232, 233, 234, -1, -1, -1, -1, -1, -1);
                break;
              case 65:
                sub_6A4C2D(408, aDataSoundMbsol, 2, 1);
                sub_6A4C2D(409, aDataSoundMbs_0, 2, 1);
                sub_6A4C2D(410, aDataSoundMbs_1, 2, 1);
                sub_6A4C2D(411, aDataSoundMbs_2, 2, 1);
                sub_6A4C2D(412, aDataSoundMbs_3, 2, 1);
                result = sub_630D06(a1 + 408, 198, 199, 200, 201, 202, -1, -1, -1, -1, -1);
                break;
              case 66:
                sub_6A4C2D(413, aDataSoundMesis, 2, 1);
                sub_6A4C2D(414, aDataSoundMes_0, 2, 1);
                sub_6A4C2D(415, aDataSoundMes_1, 2, 1);
                sub_6A4C2D(416, aDataSoundMes_2, 2, 1);
                result = sub_630D06(a1 + 408, 203, 203, 204, 205, 206, -1, -1, -1, -1, -1);
                break;
              case 67:
                sub_6A4C2D(417, aDataSoundMdsid, 2, 1);
                sub_6A4C2D(418, aDataSoundMds_0, 2, 1);
                sub_6A4C2D(419, aDataSoundMdsat, 2, 1);
                sub_6A4C2D(420, aDataSoundMds_1, 2, 1);
                sub_6A4C2D(421, aDataSoundMdsde, 2, 1);
                sub_6A4C2D(422, aDataSoundMlsid, 2, 1);
                sub_6A4C2D(423, aDataSoundMls_0, 2, 1);
                sub_6A4C2D(424, aDataSoundMlsat, 2, 1);
                sub_6A4C2D(425, aDataSoundMls_1, 2, 1);
                sub_6A4C2D(426, aDataSoundMlsde, 2, 1);
                result = sub_630D06(a1 + 408, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216);
                break;
              case 68:
                sub_6A4C2D(427, aDataSoundMnecr, 2, 1);
                sub_6A4C2D(428, aDataSoundMne_0, 2, 1);
                sub_6A4C2D(429, aDataSoundMne_1, 2, 1);
                sub_6A4C2D(430, aDataSoundMne_2, 2, 1);
                sub_6A4C2D(431, aDataSoundMne_3, 2, 1);
                result = sub_630D06(a1 + 408, 217, 218, 219, 220, 221, -1, -1, -1, -1, -1);
                break;
              case 69:
                sub_6A4C2D(432, aDataSoundMsvid, 2, 1);
                sub_6A4C2D(433, aDataSoundMsv_0, 2, 1);
                sub_6A4C2D(434, aDataSoundMsvat, 2, 1);
                sub_6A4C2D(435, aDataSoundMsv_1, 2, 1);
                sub_6A4C2D(436, aDataSoundMsvde, 2, 1);
                sub_6A4C2D(437, aDataSoundMlvid, 2, 1);
                sub_6A4C2D(438, aDataSoundMlv_0, 2, 1);
                sub_6A4C2D(439, aDataSoundMlvat, 2, 1);
                sub_6A4C2D(440, aDataSoundMlv_1, 2, 1);
                sub_6A4C2D(441, aDataSoundMlvde, 2, 1);
                result = sub_630D06(a1 + 408, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231);
                break;
              case 73:
                sub_6A4C2D(442, aDataSoundBattl, 2, 1);
                result = sub_630D06(a1 + 408, -1, -1, -1, -1, 232, -1, -1, -1, -1, -1);
                break;
              case 86:
                sub_630D06(a1 + 408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
                sBMD[SMD_INDEX].dSMD->sAnimation[0].SpeedAnimation_1 = 0.050000f;
                
                 sBMD[SMD_INDEX].dSMD->sAnimation[1].SpeedAnimation_1 = 0.050000f;
                sBMD[SMD_INDEX].dSMD->sAnimation[2].SpeedAnimation_1 = 0.100000f;
                break;
              case 76:
                sub_6A4C2D(443, aDataSoundBat_0, 2, 1);
                sub_6A4C2D(444, aDataSoundBat_1, 2, 1);
                result = sub_630D06(a1 + 408, -1, -1, 233, 233, 234, -1, -1, -1, -1, -1);
                break;
              case 77:
                sub_6A4C2D(445, aDataSoundBat_2, 2, 1);
                sub_6A4C2D(446, aDataSoundBat_3, 2, 1);
                result = sub_630D06(a1 + 408, -1, -1, 235, 235, 236, -1, -1, -1, -1, -1);
                break;
              default:
                return result;
            }
          }
        }
      }
      return result;
    }
    Decompiled Draw item in the floor.

    Structs
    Code:
    struct OBJITEMS
    {
    /*0x0*/ BYTE Visible;
    /*0x1*/ BYTE Unk0x1;
    /*0x2*/ WORD Type;
    /*0x4*/ DWORD Time_Unk;
    /*0x8*/ DWORD Unk0x8;
    /*0xC*/ float size;
    /*0x10*/ float X;
    /*0x14*/ float Y;
    /*0x18*/ float Z;
    /*0x1C*/ float RotateX;
    /*0x20*/ float RotateY;
    /*0x24*/ float RotateZ;
    /*0x28*/ int unk0x28;
    /*0x2C*/ BYTE unk0x2C[0x60];
    /*0x8C*/ WORD unk0x8C;
    /*0x8E*/ WORD unk0x8E;
    /*0x90*/ BYTE unk0x90[0x98];
    /*0x128*/ float unk0x128;
    /*0x12C*/ float unk0x12C;
    /*0x130*/ float unk0x130;
    /*0x134*/ BYTE unk0x134[0x11];
    /*0x145*/ BYTE unk0x145;
    /*0x146*/ BYTE unk0x146;
    /*0x147*/ BYTE unk0x147;
    /*0x148*/ float unk0x148;
    /*0x14C*/ float unk0x14C;
    /*0x150*/ BYTE unk0x150[0x50];
    /*0x1A0*/ BYTE unk0x1A0;
    /*0x1A1*/ BYTE unk0x1A1[7];
    /*0x1A8*/ GLfloat unk0x1A8;
    /*0x1AC*/ BYTE unk0x1AC[0xA8];
    };
    
     struct SANIMATION
    {
    /*0x0*/     BYTE No_Repeat_1;
    /*0x1*/     BYTE Unk0x1;
    /*0x2*/     WORD Unk0x2;
    /*0x4*/    float SpeedAnimation_1;
    /*0x8*/    BYTE Unk0x8[8];
    
    
    };
    struct DATASMD
    {
        SANIMATION sAnimation[MAX_ANIMATION];
    };
    
    
    struct STRUCTBMD
    {
    /*0x0*/     char Path[32];
    /*0x20*/ WORD Unk0x20;
    /*0x22*/ WORD Unk0x22; //Cantidad de huesos ?
    /*0x24*/ WORD Unk0x24; //Cantidad de texturas ?
    /*0x26*/ WORD Unk0x26; //Visible?
    /*0x28*/ BYTE Unk0x28[8];
    /*0x30*/ DATASMD *dSMD;
    /*0x34*/ BYTE Unk0x34[0x20];
    /*0x54*/ DWORD Unk0x54;
    /*0x58*/ BYTE Unk0x58[0x14];
    /*0x6C*/ float X;
    /*0x70*/ float Y;
    /*0x74*/ float Z;
    /*0x78*/ BYTE Unk0x78[0x24];
    /*0x98*/ BYTE ItemClass;
    /*0x99*/ BYTE Unk0x99[8];
    /*0xA0*/ BYTE Unk0xA0;
    /*0xA1*/ BYTE Unk0xA1[0x47];
    };

    Code:
    void DrawItemFloor()
    {
      char v0; // al@4
      char CharacterClass; // al@13
      int v2; // eax@13
      double v3; // st7@16
      float v4; // ST30_4@17
      double v5; // st7@26
      float v6; // ST30_4@26
      int v7; // eax@28
      double v8; // st7@29
      float v9; // ST30_4@29
      int v10; // [sp+4h] [bp-B8h]@0
      int v11; // [sp+8h] [bp-B4h]@0
      int v12; // [sp+Ch] [bp-B0h]@0
      VAngle vAngle4; // [sp+10h] [bp-ACh]@0
      int v14; // [sp+14h] [bp-A8h]@23
      int v15; // [sp+18h] [bp-A4h]@23
      float v16; // [sp+1Ch] [bp-A0h]@23
      VAngle vAngle;  
      char v20; // [sp+2Ch] [bp-90h]@23
      VAngle vAngle2; // [sp+5Ch] [bp-60h]@23
      int v22; // [sp+60h] [bp-5Ch]@23
      int v23; // [sp+64h] [bp-58h]@23
      int CountItemToDraw; // [sp+68h] [bp-54h]@17
      int j; // [sp+6Ch] [bp-50h]@21
      float X; // [sp+70h] [bp-4Ch]@17
      float Y; // [sp+74h] [bp-48h]@17
      float Z; // [sp+78h] [bp-44h]@17
      int v29; // [sp+7Ch] [bp-40h]@9
      int v30; // [sp+80h] [bp-3Ch]@16
      float v31; // [sp+84h] [bp-38h]@16
      float v32; // [sp+88h] [bp-34h]@16
      VAngle vAngle3; // [sp+8Ch] [bp-30h]@32
      //int v34; // [sp+90h] [bp-2Ch]@32
      //float v35; // [sp+94h] [bp-28h]@32
      int v36; // [sp+98h] [bp-24h]@25
      int v37; // [sp+9Ch] [bp-20h]@25
      int v38; // [sp+A0h] [bp-1Ch]@25
      int PosX; // [sp+A4h] [bp-18h]@32
      int PosY; // [sp+A8h] [bp-14h]@32
      int v41; // [sp+ACh] [bp-10h]@13
      int ItemID; // [sp+B0h] [bp-Ch]@5
      int v43; // [sp+B4h] [bp-8h]@3
    
    
     
      for (int i = 0; i < 1000; ++i )
      { 
        
        
        
        //MessageBoxA(0,"PRUEBA",0,0);
        
       OBJITEMS * objItems = (OBJITEMS*)ITEM_MIN;
        if ( objItems[i].Visible )
        {
          v0 = sub_608D87((int)&objItems[i].X, 400.0);
        
          objItems[i].unk0x1A0 = v0;
          if (  objItems[i].unk0x1A0 )
          {
            ItemID = objItems[i].Type;
            if ( ItemID < 4233 || ItemID >= 6793 )
            {
              if ( ItemID == 7829 )
              {
                  OBJITEMS * objItems2 = (OBJITEMS*)dword_75AF42C;
                v29 =  (objItems2[i].Visible >> 3) & 0xF;
                if ( v29 )
                {
                  if ( v29 == 2 )
                    ItemID = 8942;
                }
                else
                {
                  ItemID = 8941;
                }
              }
            }
            else
            {
              ItemID = 641;
            }
    
    
            STRUCTBMD* sBMD =(STRUCTBMD*)dword_5801AE8;
    
    
            
            
           sBMD[ItemID].Unk0xA0 = 0;
            OBJCHARACTER * MygObj = (OBJCHARACTER*)MyPreviewCharacter;
           CharacterClass = pGetCharClass(MygObj->ClassType);
            sBMD[ItemID].ItemClass = CharacterClass;
           
            sBMD[ItemID].Unk0xA0 = objItems[i].unk0x145;
           
            sBMD[ItemID].X = objItems[i].X;
           
            sBMD[ItemID].Y = objItems[i].Y;
         
            sBMD[ItemID].Z = objItems[i].Z;
           
            sub_61B9F4(ItemID, (int)&sBMD[ItemID]);
           
          
            sub_5013C0((LPVOID)&sBMD[ItemID],(int)unk_694982C, objItems[i].unk0x148, objItems[i].unk0x14C,objItems[i].unk0x146, (int)&objItems[i].RotateX, (int)&objItems[i].unk0x28, 0, 0);
            if ( ItemID >= 4233 && (signed int)ItemID < 6793 )
              ItemID = ItemID; //???? WTF
            v41 = 240 * ItemID + dword_5801AE8;
    
    
            sub_605C89(objItems[i].X,objItems[i].Y, (int)&v30);
            *(float *)&v30 = *(float *)&v30 + objItems[i].unk0x128;
            v31 = v31 + objItems[i].unk0x12C;
            v3 = v32 + objItems[i].unk0x130;
            v32 = v3;
            if ( ItemID == LOAD_ITEM(14,15)/*zen*/ || ItemID == LOAD_ITEM(14,0) /*apple*/ ) 
            {
              X = objItems[i].X;
              Y = objItems[i].Y;
              Z = objItems[i].Z;
              //  OBJITEMS * objItems2 = (OBJITEMS*)dword_75AF42C;
              // *(BYTE*)(unk_75AF441+(596 * i)
              
             
            //  v4 = v3;
            sub_48F0B0(*(int*)(dword_75AF42C+(596 * i)));
    
    
              CountItemToDraw = sub_73906C() / 2;
    
    
              if ( CountItemToDraw < 3 ) //Minimas piezas de zen en el suelo
                CountItemToDraw = 20;
              if ( CountItemToDraw > 80 ) //Maximas piezas de zen el el suelo
                CountItemToDraw = 80;
              for ( j = 1; j < CountItemToDraw; ++j )
              {
               vAngle4.X = 0;
               vAngle4.Y = 0;
               vAngle4.Z = (*(DWORD*)(dword_7AFECA0+4*((i*20+j)%100)))%360;
               
                vAngle2.X = (*(DWORD*)(dword_7AFECA0+4*((j + i) % 100))) % (CountItemToDraw + 20);
                vAngle2.Y =0;
                vAngle2.Z =0;
                          
                sub_6F59F5((int)&vAngle4, (int)&v20);
                sub_6F5EC8((int)&vAngle2, (int)&v20, (int)&vAngle);
                objItems[i].X = X + vAngle.X;
                objItems[i].Y = Y + vAngle.Y;
                v3 = Z + vAngle.Z;
                objItems[i].Z = v3;
                sub_628611(
                   (int)&objItems[i],
                  ItemID,
                  0,
                  (int)&v30,
                 objItems[i].unk0x1A8,
                 (int)(dword_75AF42C+(596 * i)),
                 *(BYTE*)(unk_75AF441+(596 * i)),
                *(BYTE*)(unk_75AF442+(596 * i)),
                  1,
                  1,
                  1,
                  0,
                  2);
              }
              objItems[i].X  = X;
              objItems[i].Y  = Y;
              objItems[i].Z  = Z;
            }
            v36 = objItems[i].X ;
            v37 = objItems[i].Y ;
            v38 = objItems[i].Z ;
            if ( dword_77038C == 10 )
            {
              v11 = 1237 * i;
              v5 = ((double)(1237 * i) + flt_57FFB98) * 0.0020000001;
              v6 = v5;
              sub_49CC70(v6);
              objItems[i].Z = v5 * 10.0 + objItems[i].Z;
            }
            else if ( dword_77038C == 0x27 && (v7 = sub_490600(), sub_48FC75((LPVOID)(v7 + 0x7C))) )
            {
              v10 = 1237 * i;
              v8 = ((double)(1237 * i) + flt_57FFB98) * 0.0020000001;
              v9 = v8;
              sub_49CC70(v9);
              objItems[i].Z = v8 * 10.0 + objItems[i].Z;
            }
            else if ( (unsigned __int8)sub_4A7FD0(dword_77038C) == 1 )
            {
              sub_4D908E(objItems[i].X, objItems[i].Y);
              objItems[i].Z = v3 + 180.0;
            }
            
            sub_628611(
               (int)&objItems[i],
              ItemID,
              0,
              (int)&v30,
              objItems[i].unk0x1A8,
              (int)(dword_75AF42C+(596 * i)),
              *(BYTE*)(unk_75AF441+(596 * i)),
              *(BYTE*)(unk_75AF442+(596 * i)),
              1,
              1,
              1,
              0,
              2);
            objItems[i].X = v36;
            objItems[i].Y = v37;
            objItems[i].Z = v38;
            vAngle3.X = objItems[i].X;
            vAngle3.Y = objItems[i].Y;
            vAngle3.Z = objItems[i].Z;
            vAngle3.Z = vAngle3.Z + 30.0;
            OBJPosition(&vAngle3,&PosX,&PosY);
            objItems[i].unk0x8C = PosX;
            objItems[i].unk0x8E = PosY;
          }
        }
      }
    }


    Preview Drawing item in the floor



    Code:
    
    int sub_50B6BD()
    {
      int result; // eax@16
      signed int i; // [sp+Ch] [bp-10h]@1
      signed int j; // [sp+Ch] [bp-10h]@4
      signed int k; // [sp+Ch] [bp-10h]@7
      signed int l; // [sp+Ch] [bp-10h]@10
      signed int m; // [sp+Ch] [bp-10h]@13
      float v6; // [sp+10h] [bp-Ch]@1
      float v7; // [sp+14h] [bp-8h]@1
      float v8; // [sp+18h] [bp-4h]@1
    
    
      STRUCTBMD* sBMD= (STRUCTBMD*)dword_5801AE8;
      int ObjIndex=0x281;
    
    
      DATACHARACTER *lpObj=(DATACHARACTER*)DATACHAR;
    
    
    
    
      sub_40B3C0(This7AFEA08,dword_74D2C5C);
    
    
      v7 = (double)lpObj->AttackSpeed * 0.0040000002;
      v6 = (double)lpObj->MagicSpeed * 0.0040000002;
      v8 = (double)lpObj->MagicSpeed * 0.0020000001;
      sub_40B460(This7AFEA08,dword_74D2C5C);
    
    
    
    
      *(float *)(*(DWORD *)(dword_5801AE8 + 153888) + 548) = v7 + 0.60000002f; // Animacion 34
      for ( i = 35; i <= 55; ++i )
    	  sBMD[ObjIndex].dSMD->sAnimation[i].SpeedAnimation_1 = v7 + 0.25;
       // *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 16 * i + 4) = v7 + 0.25; //Animacion de la 35 a 55
    
    
      sBMD[ObjIndex].dSMD->sAnimation[56].SpeedAnimation_1 = v7 + 0.30000001f;
      //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 900) = v7 + 0.30000001; //Animacion 56
    
    
      sBMD[ObjIndex].dSMD->sAnimation[57].SpeedAnimation_1 = v7 + 0.30000001f;
      //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 916) = v7 + 0.30000001; // Animacion 57
    
    
      sBMD[ObjIndex].dSMD->sAnimation[58].SpeedAnimation_1 = v7 + 0.27000001f;
      //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 932) = v7 + 0.27000001;// Animacion 58
    
    
      sBMD[ObjIndex].dSMD->sAnimation[59].SpeedAnimation_1 = v7 + 0.30000001f;
      //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 948) = v7 + 0.30000001;// Animacion 59
    
    
      sBMD[ObjIndex].dSMD->sAnimation[60].SpeedAnimation_1 = v7 + 0.23999999f;
     // *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 964) = v7 + 0.23999999;// Animacion 60
    
    
      sBMD[ObjIndex].dSMD->sAnimation[61].SpeedAnimation_1 = v7 + 0.23999999f;
      //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 980) = v7 + 0.23999999;// Animacion 61
    
    
      sBMD[ObjIndex].dSMD->sAnimation[67].SpeedAnimation_1 = v7 + 0.25f;
      //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1076) = v7 + 0.25;// Animacion 67
    
    
      sBMD[ObjIndex].dSMD->sAnimation[62].SpeedAnimation_1 = v7 + 0.380000f;
      //*(_DWORD *)(*(_DWORD *)(dword_5801AE8 + 153888) + 996) = 1052938076;// Animacion 62
    
    
      sBMD[ObjIndex].dSMD->sAnimation[63].SpeedAnimation_1 = v7 + 0.340000f;
     // *(_DWORD *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1012) = 1051595899;// Animacion 63
    
    
      sBMD[ObjIndex].dSMD->sAnimation[66].SpeedAnimation_1 = v7 + 0.30000001f;
      //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1060) = v7 + 0.30000001;// Animacion 66
    
    
      sBMD[ObjIndex].dSMD->sAnimation[64].SpeedAnimation_1 = v7 + 0.30000001f;
     // *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1028) = v7 + 0.30000001;// Animacion 64
    
    
      sBMD[ObjIndex].dSMD->sAnimation[65].SpeedAnimation_1 = v7 + 0.30000001f;
     // *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1044) = v7 + 0.30000001;// Animacion 65
    
    
      sBMD[ObjIndex].dSMD->sAnimation[141].SpeedAnimation_1 = v7 + 0.25f;
     // *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 2260) = v7 + 0.25f;// Animacion 141
    
    
    
    
      for ( j = 46; j <= 49; ++j )
    	  sBMD[ObjIndex].dSMD->sAnimation[j].SpeedAnimation_1 = v7 + 0.30000001f;
       // *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 16 * j + 4) = v7 + 0.30000001;// Animacion de la 46 a 49
    
    
      for ( k = 54; k <= 55; ++k )
    	  sBMD[ObjIndex].dSMD->sAnimation[k].SpeedAnimation_1 = v7 + 0.30000001f;
       // *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 16 * k + 4) = v7 + 0.30000001;// Animacion de la  54 a 55  en la segunda line 54 y 55 se repiten
    
    
    	sBMD[ObjIndex].dSMD->sAnimation[146].SpeedAnimation_1 = v7 + 0.25f;
     // *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 2340) = v6 + 0.25;// Animacion 146
    
    
      for ( l = 142; l <= 145; ++l )
    	  sBMD[ObjIndex].dSMD->sAnimation[l].SpeedAnimation_1 = v7 + 0.28999999f;
       // *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 16 * l + 4) = v8 + 0.28999999;// Animacion 142 a 145
    
    
    	sBMD[ObjIndex].dSMD->sAnimation[147].SpeedAnimation_1 = v7 + 0.30000001f;
      //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 2356) = v8 + 0.30000001;// Animacion 147
    
    
      sBMD[ObjIndex].dSMD->sAnimation[148].SpeedAnimation_1 = v7 + 0.30000001f;
      //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 2372) = v8 + 0.40000001f;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[149].SpeedAnimation_1 = v7 + 0.30000001f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 2388) = v8 + 0.60000002;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[150].SpeedAnimation_1 = v7 + 0.5f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 2404) = v8 + 0.5;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[151].SpeedAnimation_1 = v7 + 0.30000001f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 2420) = v8 + 0.30000001;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[68].SpeedAnimation_1 = v7 + 0.5f;
     // *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1092) = v8 + 0.5f;
    
    
      sBMD[ObjIndex].dSMD->sAnimation[69].SpeedAnimation_1 = v7 + 0.300000f;
    //  *(_DWORD *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1108) = 1050253722;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[76].SpeedAnimation_1 = v7 + 0.25f;
     // *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1220) = v7 + 0.25;
    
    
      sBMD[ObjIndex].dSMD->sAnimation[77].SpeedAnimation_1 = v7 + 0.280000f;
    //  *(_DWORD *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1236) = 1049582633;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[78].SpeedAnimation_1 = v7 + 0.2f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1252) = v7 + 0.2;
    
    
      sBMD[ObjIndex].dSMD->sAnimation[79].SpeedAnimation_1 = v7 + 0.300000f;
    //  *(_DWORD *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1268) = 1050253722;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[80].SpeedAnimation_1 = v7 +  0.25f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1284) = v7 + 0.25;
    
    
      sBMD[ObjIndex].dSMD->sAnimation[81].SpeedAnimation_1 = v7 + 0.40000001f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1300) = v8 + 0.40000001;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[82].SpeedAnimation_1 = v7 + 0.30000001;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1316) = v8 + 0.30000001;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[83].SpeedAnimation_1 = v7 + 0.300000f;
    //  *(_DWORD *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1332) = 1050253722;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[86].SpeedAnimation_1 = v7 + 0.25f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1380) = v7 + 0.25;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[92].SpeedAnimation_1 = v7 + 0.25f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1476) = v7 + 0.25;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[94].SpeedAnimation_1 = v7 + 0.30000001;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1508) = v7 + 0.30000001;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[95].SpeedAnimation_1 = v7 + 0.25f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1524) = v7 + 0.25;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[96].SpeedAnimation_1 = v7 + 0.25f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1540) = v7 + 0.25;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[97].SpeedAnimation_1 = v7 + 0.30000001;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1556) = v7 + 0.30000001;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[93].SpeedAnimation_1 = v7 + 0.37f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1492) = v8 + 0.37;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[88].SpeedAnimation_1 = v7 + 0.2f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1412) = v7 + 0.2;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[90].SpeedAnimation_1 = v7 + 0.30000001f;
    //  *(_DWORD *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1444) = 1050253722;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[89].SpeedAnimation_1 = v7 + 0.25f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1428) = v7 + 0.25;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[91].SpeedAnimation_1 = v7 + 0.40000001f;
    //  *(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 1460) = v8 + 0.40000001;// Animacion 
    
    
    
    
      for ( m = 126; m <= 131; ++m )
    	  sBMD[ObjIndex].dSMD->sAnimation[m].SpeedAnimation_1 = v7 + 0.30000001;
        //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 16 * m + 4) = v7 + 0.30000001;// Animacion 
    
    
    	sBMD[ObjIndex].dSMD->sAnimation[132].SpeedAnimation_1 = v7 + 0.40000001f;
      //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 2116) = v7 + 0.40000001;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[133].SpeedAnimation_1 = v7 + 0.30000001;
      //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 2132) = v7 + 0.30000001;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[134].SpeedAnimation_1 = v7 + 0.2;
      //*(float *)(*(_DWORD *)(dword_5801AE8 + 153888) + 2148) = v7 + 0.2;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[135].SpeedAnimation_1 = v7 + 0.280000f;
      //*(_DWORD *)(*(_DWORD *)(dword_5801AE8 + 153888) + 2164) = 1049582633;// Animacion 
    
    
      sBMD[ObjIndex].dSMD->sAnimation[192].SpeedAnimation_1 = v7 + 0.30000001;
     // *(_DWORD *)(*(_DWORD *)(dword_5801AE8 + 153888) + 3076) = 1050253722;// Animacion 
    
    
      
    
    
      sBMD[ObjIndex].dSMD->sAnimation[193].SpeedAnimation_1 = v7 + 0.400000f;
     // *(_DWORD *)(*(_DWORD *)(dword_5801AE8 + 153888) + 3092) = 1053609165;// Animacion 
      return result;
    }
    Last edited by [RCZ]ShadowKing; 10-03-16 at 09:40 AM. Reason: added [CODE] tag


  2. #2
    NN - Nord & Noob mauka is online now
    MemberRank
    Jul 2004 Join Date
    1,735Posts

    Re: CreateMonster Main 1.04j Decompiled

    crazy work there made.

  3. #3
    Retired NanoGuy is offline
    MemberRank
    Jul 2012 Join Date
    IsraelLocation
    286Posts

    Re: CreateMonster Main 1.04j Decompiled

    you call this decompiled?all i see is one time click F5 maybe pseudo-code is a better thing to call this trash :)

  4. #4
    Newbie :) Pinkof is offline
    MemberRank
    Mar 2008 Join Date
    760Posts

    Re: CreateMonster Main 1.04j Decompiled

    Quote Originally Posted by NanoGuy View Post
    you call this decompiled?all i see is one time click F5 maybe pseudo-code is a better thing to call this trash :)
    sure ? try decompile just a struct from any main and show me how i need do it. i just want see that you can decompile 1 just 1 struct from main.

    like this

    #define MAX_ANIMATION 10


    struct SANIMATION
    {
    /*0x0*/ BYTE No_Repeat_1;
    /*0x1*/ BYTE Unk0x1;
    /*0x2*/ WORD Unk0x2;
    /*0x4*/ float SpeedAnimation_1;
    /*0x8*/ BYTE Unk0x8[8];


    };
    struct DATASMD
    {
    SANIMATION sAnimation[MAX_ANIMATION];
    };


    struct STRUCTBMD
    {
    /*0x0*/ char Path[32];
    /*0x20*/ WORD Unk0x20;
    /*0x22*/ WORD Unk0x22; //Cantidad de huesos ?
    /*0x24*/ WORD Unk0x24; //Cantidad de texturas ?
    /*0x26*/ WORD Unk0x26; //Visible?
    /*0x28*/ BYTE Unk0x28[8];
    /*0x30*/ DATASMD *dSMD;
    /*0x34*/ BYTE Unk0x34[32];
    /*0x54*/ DWORD Unk0x54;
    /*0x58*/ BYTE Unk0x58[152];
    };

  5. #5
    NN - Nord & Noob mauka is online now
    MemberRank
    Jul 2004 Join Date
    1,735Posts

    Re: CreateMonster Main 1.04j Decompiled

    Reversing, getting a size of structures always been pain in ass for me. @Ollydbg

  6. #6
    Newbie :) Pinkof is offline
    MemberRank
    Mar 2008 Join Date
    760Posts

    Re: CreateMonster Main 1.04j Decompiled

    added a decompilation where draw items in the floor..

  7. #7
    Enthusiast MaxSpeed is offline
    MemberRank
    Jul 2015 Join Date
    45Posts

    Re: CreateMonster Main 1.04j Decompiled

    thank, struct work for main 1.02s jpn ?

  8. #8
    Newbie :) Pinkof is offline
    MemberRank
    Mar 2008 Join Date
    760Posts

    Re: CreateMonster Main 1.04j Decompiled

    Quote Originally Posted by MaxSpeed View Post
    thank, struct work for main 1.02s jpn ?
    i dont know..check it.

  9. #9
    Darkness Member Kiosani is offline
    MemberRank
    Oct 2007 Join Date
    ArgentinaLocation
    1,276Posts

    Re: CreateMonster Main 1.04j Decompiled

    Decompiling pinkof function for 3 mains differents xD.. here I leave some aditional info about this function:
    Code:
    if (dword_E61E18 == 10)//pMapNumber -> In Icarus Map{	v10 = (double)(1237 * i) + flt_5EF5A1C;//WorldTime -> Is like a Timer.. that have all main.exe... I mean.. control to frames.	v11 = v10 * 0.002000000094994903;	v12 = sub_4DB0C0(v11);	*(float*)(v47 + 260) = v12 * 10.0 + *(float*)(v47 + 260);}This make item change position on Z Axis.. I mean.. on Icarus Item position on floor is not static.the same for this and this:else if (dword_E61E18 == 39 && (v13 = sub_4DB250(), sub_4E44A0(v13 + 132))) // Kanturu Tower Map in Event, I mean.. on Fly Kanturu.{	v14 = (double)(1237 * i) + flt_5EF5A1C;//WorldTime	v15 = v14 * 0.002000000094994903;	v16 = sub_4DB0C0(v15);	*(float*)(v47 + 260) = v16 * 10.0 + *(float*)(v47 + 260);}else if (sub_4DB1C0(dword_E61E18) == 1)// pMapNumber -> In Kalima Map from boolean function to Get -> Kalima by Levels Map Indexs.{	v17 = sub_8FEEC0(*(float*)(v47 + 252), *(float*)(v47 + 256));	*(float*)(v47 + 260) = v17 + 180.0;}

  10. #10
    Newbie :) Pinkof is offline
    MemberRank
    Mar 2008 Join Date
    760Posts

    Re: CreateMonster Main 1.04j Decompiled

    What function should decomiple ?

  11. #11
    Newbie :) Pinkof is offline
    MemberRank
    Mar 2008 Join Date
    760Posts

    Re: CreateMonster Main 1.04j Decompiled

    Added code to manage the speed of skill animation =)

  12. #12
    Member NaveMu is offline
    MemberRank
    Feb 2012 Join Date
    61Posts

    Re: CreateMonster Main 1.04j Decompiled

    Which offset that hooks to CreateMonster?



Advertisement