Exemplo n.º 1
0
    public static void InitBattleData(BTL_DATA btl, FF9Char ff9char)
    {
        BTL_INFO bi = btl.bi;

        btl_cmd.InitCommand(btl);
        btl_stat.InitStatus(btl);
        bi.dmg_mot_f = 0;
        bi.cmd_idle  = 0;
        bi.death_f   = 0;
        bi.stop_anim = 0;
        btl.SetDisappear(0);
        bi.shadow         = 1;
        bi.cover          = 0;
        bi.dodge          = 0;
        bi.die_snd_f      = 0;
        bi.select         = 0;
        btl.escape_key    = 0;
        btl.sel_menu      = 0;
        btl.fig_info      = 0;
        btl.fig           = 0;
        btl.m_fig         = 0;
        btl.fig_stat_info = 0;
        btl.fig_regene_hp = 0;
        btl.fig_poison_hp = 0;
        btl.fig_poison_mp = 0;
        btl.die_seq       = 0;
        ff9char.btl       = btl;
        btl.evt           = ff9char.evt;
        GeoTexAnim.geoTexAnimPlay(btl.texanimptr, 2);
        btl_util.GeoSetColor2Source(btl.gameObject, 0, 0, 0);
        btl.mesh_current = 0;
    }
Exemplo n.º 2
0
 public void Remove()
 {
     battle.btl_bonus.member_flag &= (Byte) ~(1 << Data.bi.line_no);
     btl_cmd.ClearSysPhantom(Data);
     btl_cmd.KillCommand3(Data);
     btl_sys.SavePlayerData(Data, 1U);
     btl_sys.DelCharacter(Data);
     Data.SetDisappear(1);
     UIManager.Battle.DisplayInfomation();
     UIManager.Battle.RemovePlayerFromAction(Data.btl_id, true);
 }
Exemplo n.º 3
0
        public static void SetEnemyFadeToPacket(BTL_DATA btl, Int32 rate)
        {
            BBGINFO bbginfo = battlebg.nf_GetBbgInfoPtr();

            btl_util.GeoSetABR(btl.gameObject, "GEO_POLYFLAGS_TRANS_100_PLUS_25");
            btl_util.GeoSetColor2DrawPacket(btl.gameObject, (Byte)((Int32)bbginfo.chr_r * rate >> 5), (Byte)((Int32)bbginfo.chr_g * rate >> 5), (Byte)((Int32)bbginfo.chr_b * rate >> 5), Byte.MaxValue);
            if (btl.bi.shadow != 0)
            {
                btl_util.GeoSetABR(btl.getShadow(), "GEO_POLYFLAGS_TRANS_100_PLUS_25");
                btl_util.GeoSetColor2DrawPacket(btl.getShadow(), (Byte)((Int32)bbginfo.chr_r * rate >> 5), (Byte)((Int32)bbginfo.chr_g * rate >> 5), (Byte)((Int32)bbginfo.chr_b * rate >> 5), Byte.MaxValue);
            }
            if (rate == 0)
            {
                btl.SetDisappear(1);
            }
        }
Exemplo n.º 4
0
    private static void BattleTrailingLoop(FF9StateGlobal sys, FF9StateBattleSystem btlsys)
    {
        //uint id = sys.id;
        UInt32 num1 = 1;

        if (SFX.isRunning || btlsys.cmd_queue.next != null || btlsys.cur_cmd != null)
        {
            num1 = 0U;
        }

        foreach (BattleUnit next in FF9StateSystem.Battle.FF9Battle.EnumerateBattleUnits())
        {
            BTL_DATA data = next.Data;
            if (data.bi.disappear == 0)
            {
                btlseq.DispCharacter(data);
                switch (btlsys.btl_seq)
                {
                case 0:
                    btl_para.CheckPointData(data);
                    if ((!next.IsPlayer && !next.IsUnderStatus((BattleStatus)4099U)) || (next.IsPlayer && next.IsUnderStatus(BattleStatus.Death)) && !btl_mot.checkMotion(data, 4))
                    {
                        num1 = 0U;
                    }
                    break;

                case 1:
                    if (next.IsPlayer && !btl_mot.checkMotion(data, 4) && !next.IsUnderStatus((BattleStatus)4099U))
                    {
                        num1 = 0U;
                    }
                    break;

                case 2:
                    if (btlsys.cmd_queue.next != null && btlsys.cur_cmd == null && (!btl_cmd.CheckSpecificCommand2(59) && !btl_cmd.CheckSpecificCommand2(60)) && (!btl_cmd.CheckSpecificCommand2(61) && !btl_cmd.CheckSpecificCommand2(62)))
                    {
                        num1 = 1U;
                    }
                    btl_para.CheckPointData(data);
                    if (next.IsPlayer)
                    {
                        next.TryRemoveStatuses((BattleStatus)33592320U);
                    }
                    if (btlsys.cmd_mode != 0)
                    {
                        num1 = 0U;
                    }
                    if (next.IsUnderStatus(BattleStatus.Death))
                    {
                        if (data.die_seq == 0 && !btl_cmd.CheckUsingCommand(data.cmd[2]))
                        {
                            btl_cmd.SetCommand(data.cmd[2], 60U, 0U, data.btl_id, 0U);
                        }
                        if (next.IsPlayer && data.die_seq != 6 || !next.IsPlayer && data.die_seq != 6)
                        {
                            num1 = 0U;
                        }
                        break;
                    }
                    if (!Status.checkCurStat(data, 33558531U) && !btl_mot.checkMotion(data, 0) && !btl_mot.checkMotion(data, 1))
                    {
                        num1 = 0U;
                    }
                    break;

                case 3:
                    btl_cmd.KillAllCommand(btlsys);
                    if (next.IsUnderStatus(BattleStatus.Death))
                    {
                        if (data.die_seq == 0)
                        {
                            data.die_seq = 1;
                        }
                        if (!btl_mot.checkMotion(data, 4) || btl_cmd.CheckSpecificCommand(data, 61))
                        {
                            num1 = 0U;
                        }
                        break;
                    }
                    if (next.IsPlayer && !Status.checkCurStat(data, 1107431747U))
                    {
                        FF9StateSystem.Battle.isFade = true;
                        data.pos[2] -= 100f;
                        btl_util.SetFadeRate(data, btlsys.btl_escape_fade);
                        if (btlsys.btl_escape_fade <= 0)
                        {
                            data.SetDisappear(1);
                            break;
                        }
                        num1 = 0U;
                        if (btlsys.btl_escape_fade == 32)
                        {
                            btlsnd.ff9btlsnd_sndeffect_play(2906, 0, SByte.MaxValue, 128);
                            btlsnd.ff9btlsnd_sndeffect_play(2907, 0, SByte.MaxValue, 128);
                            btlsnd.ff9btlsnd_sndeffect_play(2908, 0, SByte.MaxValue, 128);
                            btlsys.btl_escape_fade -= 2;
                        }
                    }
                    break;
                }
                btl_stat.SetStatusVfx(next);
            }
            btl_mot.DieSequence(data);
        }
        if (btlsys.btl_seq == 3 && btlsys.btl_escape_fade < 32 && btlsys.btl_escape_fade != 0)
        {
            btlsys.btl_escape_fade -= 2;
        }
        if ((Int32)num1 != 0)
        {
            switch (btlsys.btl_seq)
            {
            case 0:
            case 4:
                sys.btl_flag  |= 64;
                sys.btl_result = 1;
                if (btlsys.btl_scene.Info.WinPose != 0)
                {
                    if (btl_util.ManageBattleSong(sys, 30U, 5U))
                    {
                        for (BTL_DATA next = btlsys.btl_list.next; next != null; next = next.next)
                        {
                            if (next.bi.player != 0)
                            {
                                /*int num2 = (int)*/
                                btl_stat.RemoveStatuses(next, 3221208064U);
                                if (!Status.checkCurStat(next, 4355U))
                                {
                                    if (next.cur.hp > 0)
                                    {
                                        Int32 num3 = btl_mot.GetDirection(next);
                                        next.evt.rotBattle.eulerAngles = new Vector3(next.evt.rotBattle.eulerAngles.x, num3, next.evt.rotBattle.eulerAngles.z);
                                        next.rot.eulerAngles           = new Vector3(next.rot.eulerAngles.x, num3, next.rot.eulerAngles.z);
                                        next.bi.def_idle = !btl_stat.CheckStatus(next, 197122U) ? (Byte)0 : (Byte)1;
                                        next.bi.cmd_idle = 0;
                                        if (btl_util.getPlayerPtr(next).info.win_pose != 0)
                                        {
                                            btl_mot.setMotion(next, 18);
                                        }
                                        else
                                        {
                                            btl_mot.setMotion(next, next.bi.def_idle);
                                        }
                                        next.evt.animFrame = 0;
                                    }
                                    else
                                    {
                                        /*int num4 = (int)*/
                                        btl_stat.AlterStatus(next, 256U);
                                    }
                                }
                            }
                        }
                        SFX.SetCamera(2);
                    }
                    else
                    {
                        break;
                    }
                }
                else if (btlsys.btl_scene.Info.FieldBGM != 0)
                {
                    sys.btl_flag |= 8;
                }
                btlsys.btl_phase = 6;
                break;

            case 1:
                sys.btl_result   = 3;
                btlsys.btl_phase = 7;
                break;

            case 2:
                if (btlsys.btl_scene.Info.WinPose == 0 && btlsys.btl_scene.Info.FieldBGM != 0)
                {
                    sys.btl_flag |= 8;
                }
                btlsys.btl_phase = 1;
                btl_cmd.KillAllCommand(btlsys);
                btl_cmd.InitCommandSystem(btlsys);
                for (BTL_DATA next = btlsys.btl_list.next; next != null; next = next.next)
                {
                    btl_cmd.InitCommand(next);
                    if (next.bi.player == 0)
                    {
                        Int32 num2 = btl_mot.GetDirection(next);
                        next.evt.rotBattle.eulerAngles = new Vector3(next.evt.rotBattle.eulerAngles.x, num2, next.evt.rotBattle.eulerAngles.z);
                        next.rot.eulerAngles           = new Vector3(next.rot.eulerAngles.x, num2, next.rot.eulerAngles.z);
                    }
                }
                break;

            case 3:
                UInt32 gil = (UInt32)battle.btl_bonus.gil;
                sys.btl_flag |= 64;
                for (BTL_DATA next = btlsys.btl_list.next; next != null; next = next.next)
                {
                    if (next.bi.player == 0)
                    {
                        gil += btl_util.getEnemyTypePtr(next).bonus.gil;
                    }
                }
                if (btlsys.btl_scene.Info.WinPose == 0 && btlsys.btl_scene.Info.FieldBGM != 0)
                {
                    sys.btl_flag |= 8;
                }
                sys.btl_result   = 4;
                btlsys.btl_phase = 8;
                btl_sys.ClearBattleBonus();
                if ((sys.btl_flag & 4) != 0)
                {
                    UInt32 num2 = gil / 10U;
                    if (sys.party.gil > num2)
                    {
                        sys.party.gil -= num2;
                    }
                    else
                    {
                        num2          = sys.party.gil;
                        sys.party.gil = 0U;
                    }
                    UIManager.Battle.SetBattleFollowMessage(30, num2);
                    break;
                }
                if (btl_abil.CheckPartyAbility(1U, 16384U))
                {
                    battle.btl_bonus.escape_gil = true;
                    battle.btl_bonus.gil        = (Int32)(gil / 10U);
                }
                break;
            }
            if (btlsys.btl_phase != 5)
            {
                btlsys.btl_seq = btlsys.btl_phase != 6 || btlsys.btl_scene.Info.WinPose != 0 ? (Byte)0 : (Byte)1;
            }
        }
        else
        {
            btl_cmd.CommandEngine(btlsys);
        }
        battle.BattleSubSystem(sys, btlsys);
    }
Exemplo n.º 5
0
    public static void ExecVfxCommand(BTL_DATA target)
    {
        CMD_DATA curCmdPtr = btl_util.getCurCmdPtr();

        if (curCmdPtr == null)
        {
            Debug.LogError("no command!");
        }
        else
        {
            BTL_DATA caster = curCmdPtr.regist;
            byte     num    = curCmdPtr.cmd_no;
            switch (num)
            {
            case 12:
label_7:
                caster.tar_mode = 2;
                caster.SetDisappear(1);
                break;

            case 14:
label_8:
                UIManager.Battle.ItemUse(curCmdPtr.sub_no);
                btl_calc.CalcMain(caster, target, curCmdPtr, ff9item._FF9Item_Info[btl_util.btlItemNum(curCmdPtr.sub_no)].Ref.prog_no);
                break;

            case 15:
                UIManager.Battle.ItemUse(curCmdPtr.sub_no);
                btl_calc.CalcMain(caster, target, curCmdPtr, curCmdPtr.aa.Ref.prog_no);
                break;

            default:
                switch (num)
                {
                case 49:
                case 52:
label_6:
                    btl_calc.CalcMain(caster, target, curCmdPtr, caster.weapon.Ref.prog_no);
                    return;

                case 51:
                    goto label_8;

                default:
                    switch (num)
                    {
                    case 1:
                        goto label_6;

                    case 3:
                        goto label_7;

                    default:
                        if (num == 58)
                        {
                            ushort battleId    = btl_scrp.GetBattleID(1U);
                            ushort statusBtlId = btl_util.GetStatusBtlID(1U, 4355U);
                            if (battleId == 0 || battleId == statusBtlId)
                            {
                                FF9StateBattleSystem btlsys = FF9StateSystem.Battle.FF9Battle;
                                UIManager.Battle.FF9BMenu_EnableMenu(false);
                                if (btlsys.btl_phase != 5)
                                {
                                    btlsys.btl_phase = 5;
                                    btlsys.btl_seq   = 0;
                                    KillAllCommand(btlsys);
                                }
                            }
                            btl_calc.CalcMain(caster, target, curCmdPtr, curCmdPtr.aa.Ref.prog_no);
                            return;
                        }
                        btl_calc.CalcMain(caster, target, curCmdPtr, curCmdPtr.aa.Ref.prog_no);
                        return;
                    }
                }
            }
        }
    }
Exemplo n.º 6
0
    private static void FinishCommand(FF9StateBattleSystem btlsys)
    {
        CMD_DATA cmd  = btlsys.cur_cmd;
        BTL_DATA btl1 = cmd.regist;

        if (cmd.cmd_no < 48)
        {
            if (cmd == btl1.cmd[0] && cmd.cmd_no != 3 && cmd.cmd_no != 12)
            {
                ResetCurrentBattlerActiveTime(btl1);
            }
            else if (cmd.cmd_no == 21 && btl1.bi.slot_no == 6 && (cmd == btl1.cmd[3] && !CheckUsingCommand(btl1.cmd[0])))
            {
                ResetCurrentBattlerActiveTime(btl1);
            }
            else if (cmd.cmd_no == 10)
            {
                /*int num = (int)*/
                btl_stat.RemoveStatus(btl1, 1073741824U);
                FF9StateSystem.Battle.FF9Battle.cmd_status &= 65519;
            }
            else if (cmd.cmd_no == 11)
            {
                /*int num = (int)*/
                btl_stat.AlterStatus(btl1, 1073741824U);
                btl1.tar_mode = 2;
                btl1.SetDisappear(1);
                FF9StateSystem.Battle.FF9Battle.cmd_status &= 65519;
            }
            if (Status.checkCurStat(btl1, 16384U) && cmd.cmd_no != 3 && cmd.cmd_no != 12)
            {
                byte num1 = (byte)((300 - btl1.level) / btl1.elem.wpr * 10);
                if (cmd.cmd_no == 21 || cmd.cmd_no == 23)
                {
                    num1 /= 2;
                }
                if (FF9StateSystem.Settings.IsTranceFull)
                {
                    num1 = 0;
                }
                if (btl1.trance > num1)
                {
                    btl1.trance -= num1;
                }
                else if (!FF9StateSystem.Battle.isDebug)
                {
                    /*int num2 = (int)*/
                    btl_stat.RemoveStatus(btl1, 16384U);
                }
                if (cmd.cmd_no == 18 && btlsys.phantom_no != 0)
                {
                    btlsys.cmd_status |= 4;
                    btlsys.phantom_cnt = setPhantomCount(btl1);
                }
            }
        }
        else if (cmd.cmd_no == 57)
        {
            btlsys.cmd_status &= 65527;
            btlsys.phantom_cnt = setPhantomCount(btl1);
        }
        else if (cmd.cmd_no < 53 && CheckUsingCommand(btl1.cmd[0]))
        {
            btl1.bi.cmd_idle = 1;
        }
        if (cmd.info.cover != 0)
        {
            for (BTL_DATA btl2 = FF9StateSystem.Battle.FF9Battle.btl_list.next; btl2 != null; btl2 = btl2.next)
            {
                if (btl2.bi.player != 0)
                {
                    btl_mot.setBasePos(btl2);
                    if (btl2.bi.cover != 0)
                    {
                        btl2.bi.cover = 0;
                        btl_mot.SetDefaultIdle(btl2);
                    }
                }
            }
        }
        if (cmd.info.dodge != 0)
        {
            BTL_DATA btl2 = btl_scrp.GetBtlDataPtr(cmd.tar_id);
            btl2.bi.dodge = 0;
            if (btl2.bi.player != 0)
            {
                btl_mot.SetDefaultIdle(btl2);
            }
            else if (btl2.bi.slave != 0)
            {
                btl2 = btl_util.GetMasterEnemyBtlPtr();
            }
            btl2.pos[2] = btl2.base_pos[2];
        }
        if (cmd.regist != null && cmd == btl1.cmd[0])
        {
            UIManager.Battle.RemovePlayerFromAction(cmd.regist.btl_id, true);
        }
        ClearCommand(cmd);
        btlsys.cur_cmd  = null;
        btlsys.cmd_mode = 0;
        if (btl1 != null && btl1.bi.player != 0 && FF9StateSystem.Settings.IsATBFull)
        {
            btl1.cur.at = (short)(btl1.max.at - 1);
        }
        if (FF9StateSystem.Battle.isDebug)
        {
            return;
        }
        HonoluluBattleMain.playerEnterCommand = true;
    }
Exemplo n.º 7
0
    public static void SetCharacterData(BTL_DATA btl, UInt32 id, UInt32 val)
    {
        FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;

        switch (id)
        {
        case 32u:
            for (Int32 i = 0; i < btl.meshCount; i++)
            {
                btl.SetIsEnabledMeshRenderer(i, true);
            }
            btl.getShadow().SetActive(true);
            btl.SetIsEnabledWeaponRenderer(true);
            btl.SetIsEnabledBattleModelRenderer(true);
            btl_sys.AddCharacter(btl);
            break;

        case 33u:
            for (Int32 j = 0; j < btl.meshCount; j++)
            {
                btl.SetIsEnabledMeshRenderer(j, false);
            }
            btl.getShadow().SetActive(false);
            btl.SetIsEnabledWeaponRenderer(false);
            btl.SetIsEnabledBattleModelRenderer(false);
            btl_cmd.KillCommand2(btl);
            btl_sys.DelCharacter(btl);
            break;

        case 34u:
            if (btl_cmd.KillCommand2(btl))
            {
                btl.sel_mode = 0;
            }
            break;

        case 35u:
            btl.max.hp = (UInt16)val;
            break;

        case 36u:
            btl.cur.hp = (UInt16)val;
            break;

        case 37u:
            btl.max.mp = (Int16)val;
            break;

        case 38u:
            btl.cur.mp = (Int16)val;
            break;

        case 40u:
            btl.cur.at = (Int16)val;
            break;

        case 48u:
            btl.def_attr.invalid = (Byte)val;
            break;

        case 49u:
            btl.def_attr.absorb = (Byte)val;
            break;

        case 50u:
            btl.def_attr.half = (Byte)val;
            break;

        case 51u:
            btl.def_attr.weak = (Byte)val;
            break;

        case 52u:
            if (ff9Battle.btl_phase == 2)
            {
                btl.tar_mode  = 0;
                btl.bi.target = 0;
                btl.bi.atb    = 0;
                btl.bi.select = 0;
            }
            else
            {
                btl.tar_mode = (Byte)(2u + val);
            }
            break;

        case 53u:
            btl.SetDisappear((Byte)val);
            if (val == 0u || ff9Battle.btl_phase == 2)
            {
            }
            break;

        case 54u:
            btl.bi.shadow = (Byte)val;
            if (btl.bi.shadow != 0)
            {
                btl.getShadow().SetActive(true);
            }
            else
            {
                btl.getShadow().SetActive(false);
            }
            break;

        case 55u:
            geo.geoScaleSet(btl, (Int32)val);
            btlshadow.FF9ShadowSetScaleBattle(btl_util.GetFF9CharNo(btl), (Byte)(btl.shadow_x * val >> 12), (Byte)(btl.shadow_z * val >> 12));
            break;

        case 56u:
            geo.geoScaleReset(btl);
            btlshadow.FF9ShadowSetScaleBattle(btl_util.GetFF9CharNo(btl), btl.shadow_x, btl.shadow_z);
            break;

        case 59u:
            btl_mot.HideMesh(btl, (UInt16)val, false);
            btl.mesh_current = (UInt16)(btl.mesh_current | (UInt16)val);
            break;

        case 60u:
            btl_mot.ShowMesh(btl, (UInt16)val, false);
            btl.mesh_current = (UInt16)(btl.mesh_current & (UInt16)(~(UInt16)val));
            break;

        case 61u:
            GeoTexAnim.geoTexAnimPlay(btl.texanimptr, (Int32)val);
            break;

        case 62u:
            GeoTexAnim.geoTexAnimStop(btl.texanimptr, (Int32)val);
            break;

        case 63u:
            GeoTexAnim.geoTexAnimPlayOnce(btl.texanimptr, (Int32)val);
            break;

        case 69u:
            btl.bi.def_idle = (Byte)val;
            break;

        case 71u:
            btl_sys.SetBonus(btl_util.getEnemyTypePtr(btl));
            break;

        case 72u:
            btl.elem.str = (Byte)val;
            break;

        case 73u:
            btl.elem.mgc = (Byte)val;
            break;

        case 74u:
            btl.defence.PhisicalDefence = (Byte)val;
            break;

        case 75u:
            btl.defence.PhisicalEvade = (Byte)val;
            break;

        case 76u:
            btl.defence.MagicalDefence = (Byte)val;
            break;

        case 77u:
            btl.defence.MagicalEvade = (Byte)val;
            break;

        case 78u:
            btl.cur.at   = btl.max.at;
            btl.sel_mode = 1;
            btl_cmd.SetCommand(btl.cmd[0], BattleCommandId.SummonEiko, 187u, (UInt16)val, 8u);
            UIManager.Battle.FF9BMenu_EnableMenu(true);
            break;
        }
    }
Exemplo n.º 8
0
    public static UInt32 RemoveStatus(BTL_DATA btl, UInt32 status)
    {
        STAT_INFO stat = btl.stat;

        if (((Int32)stat.permanent & (Int32)status) != 0 || ((Int32)stat.cur & (Int32)status) == 0 || btl.bi.player == 0 && FF9StateSystem.Battle.FF9Battle.btl_phase == 5 && (status & 4099L) != 0L)
        {
            return(1);
        }
        stat.cur &= ~status;
        switch ((BattleStatus)status)
        {
        case BattleStatus.Petrify:
            SetStatusClut(btl, false);
            break;

        case BattleStatus.Zombie:
        case BattleStatus.Heat:
        case BattleStatus.Freeze:
            if (Status.checkCurStat(btl, 50333760U))
            {
                SetStatusPolyColor(btl);
            }
            break;

        case BattleStatus.Death:
            btl.die_seq      = 0;
            btl.bi.dmg_mot_f = 0;
            btl.bi.cmd_idle  = 0;
            btl.bi.death_f   = 0;
            btl.bi.stop_anim = 0;
            btl.escape_key   = 0;
            if (btl_mot.checkMotion(btl, 4) || btl_mot.checkMotion(btl, 8))
            {
                GeoTexAnim.geoTexAnimPlay(btl.texanimptr, 2);
                if (btl.bi.player != 0)
                {
                    GeoTexAnim.geoTexAnimPlay(btl.tranceTexanimptr, 2);
                }
                btl_mot.setMotion(btl, 6);
                btl.evt.animFrame = 0;
            }
            if (FF9StateSystem.Battle.FF9Battle.cur_cmd.regist != btl || FF9StateSystem.Battle.FF9Battle.cur_cmd.cmd_no > 48)
            {
                btl.sel_mode = 0;
            }
            btl_cmd.KillSpecificCommand(btl, 60);
            if (((Int32)btl.stat.permanent & 262144) != 0)
            {
                SetOprStatusCount(btl, 18U);
            }
            break;

        case BattleStatus.Confuse:
            Vector3 eulerAngles = btl.rot.eulerAngles;
            eulerAngles.y = btl.evt.rotBattle.eulerAngles.y;
            btl.rot       = Quaternion.Euler(eulerAngles);
            StatusCommandCancel(btl, status);
            break;

        case BattleStatus.Berserk:
            StatusCommandCancel(btl, status);
            if (Status.checkCurStat(btl, 50333760U))
            {
                SetStatusPolyColor(btl);
            }
            break;

        case BattleStatus.Trance:
            btl.trance = 0;
            if (Status.checkCurStat(btl, 1073741824U))
            {
                RemoveStatus(btl, 1073741824U);
                btl.SetDisappear(0);
                btl_mot.setBasePos(btl);
                btl_mot.setMotion(btl, btl.bi.def_idle);
                btl.evt.animFrame = 0;
            }
            btl_cmd.SetCommand(btl.cmd[4], 59U, 0U, btl.btl_id, 0U);
            break;

        case BattleStatus.Haste:
        case BattleStatus.Slow:
            btl_para.InitATB(btl);
            break;

        case BattleStatus.Float:
            Single value = 0f;
            btl.pos[1]      = value;
            btl.base_pos[1] = value;
            break;

        case BattleStatus.Vanish:
            btl_mot.ShowMesh(btl, btl.mesh_banish, true);
            break;

        case BattleStatus.Doom:
            if (btl.deathMessage != null)
            {
                Singleton <HUDMessage> .Instance.ReleaseObject(btl.deathMessage);

                btl.deathMessage = null;
            }
            break;

        case BattleStatus.Mini:
            geo.geoScaleReset(btl);
            btlshadow.FF9ShadowSetScaleBattle(btl_util.GetFF9CharNo(btl), btl.shadow_x, btl.shadow_z);
            break;

        case BattleStatus.Jump:
            btl.tar_mode = 3;
            btl.bi.atb   = 1;
            if (btl.bi.player != 0 && !FF9StateSystem.Settings.IsATBFull)
            {
                btl.cur.at = 0;
            }
            btl.sel_mode      = 0;
            btl.cmd[3].cmd_no = 0;
            btl.cmd[3].tar_id = 0;
            break;

        case BattleStatus.GradualPetrify:
            if (btl.petrifyMessage != null)
            {
                Singleton <HUDMessage> .Instance.ReleaseObject(btl.petrifyMessage);

                btl.petrifyMessage = null;
            }
            btl_cmd.KillSpecificCommand(btl, 62);
            break;
        }
        HonoluluBattleMain.battleSPS.RemoveBtlSPSObj(btl, status);
        return(2);
    }