示例#1
0
    // Token: 0x06000D8B RID: 3467 RVA: 0x000767BC File Offset: 0x000749BC
    private static void gmSplStageRingGateChk(AppMain.GMS_SPL_STG_WORK tcb_work)
    {
        GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)];
        ushort          get_ring        = tcb_work.get_ring;

        for (ushort num = 0; num < 9; num += 1)
        {
            if ((( int )tcb_work.get_ring & 1 << ( int )num) == 0)
            {
                ushort num2 = AppMain.GmSplStageRingGateNumGet(num);
                if (num2 == 255)
                {
                    break;
                }
                if (num2 <= ( ushort )gms_PLAYER_WORK.ring_num)
                {
                    tcb_work.get_ring |= ( ushort )(1 << ( int )num);
                }
            }
        }
        if (get_ring != tcb_work.get_ring)
        {
            GmSound.PlaySE("Special7");
        }
    }
示例#2
0
    // Token: 0x06000D84 RID: 3460 RVA: 0x00076328 File Offset: 0x00074528
    private static void gmSplStagePlayEndChk(MTS_TASK_TCB tcb)
    {
        AppMain.GMS_SPL_STG_WORK gms_SPL_STG_WORK = (AppMain.GMS_SPL_STG_WORK)tcb.work;
        GMS_PLAYER_WORK          gms_PLAYER_WORK  = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)];
        OBS_CAMERA obs_CAMERA = ObjCamera.Get(0);

        if (AppMain.ObjObjectPauseCheck(0U) != 0U)
        {
            return;
        }
        AppMain.gmSplStageLightCtrl(gms_SPL_STG_WORK);
        gms_SPL_STG_WORK.flag &= 4294967294U;
        AppMain.gmSplStageNudgeCtrl();
        AppMain.gmSplStageRingGateChk(gms_SPL_STG_WORK);
        if ((AppMain.g_gm_main_system.game_flag & 458752U) != 0U)
        {
            AppMain.g_gm_main_system.game_flag &= 4294966271U;
            gms_PLAYER_WORK.obj_work.flag      |= 130U;
            gms_PLAYER_WORK.obj_work.move_flag |= 8448U;
            gms_PLAYER_WORK.obj_work.disp_flag &= 4294967294U;
            gms_PLAYER_WORK.player_flag        |= 4194304U;
            if ((AppMain.g_gm_main_system.game_flag & 393216U) != 0U)
            {
                AppMain.GMM_PAD_VIB_MID_TIME(90f);
            }
            gms_SPL_STG_WORK.roll     = obs_CAMERA.roll;
            gms_SPL_STG_WORK.roll_spd = 256;
            gms_SPL_STG_WORK.counter  = 0U;
            AppMain.mtTaskChangeTcbProcedure(tcb, AppMain.gmSplStageRolling);
        }
    }
示例#3
0
    // Token: 0x06000D85 RID: 3461 RVA: 0x0007644C File Offset: 0x0007464C
    private static void gmSplStageRolling(MTS_TASK_TCB tcb)
    {
        AppMain.GMS_SPL_STG_WORK gms_SPL_STG_WORK = (AppMain.GMS_SPL_STG_WORK)tcb.work;
        OBS_CAMERA obs_CAMERA = ObjCamera.Get(0);

        if (AppMain.ObjObjectPauseCheck(0U) != 0U)
        {
            return;
        }
        if (obs_CAMERA == null)
        {
            return;
        }
        gms_SPL_STG_WORK.roll_spd += 56;
        gms_SPL_STG_WORK.roll     += gms_SPL_STG_WORK.roll_spd;
        obs_CAMERA.roll            = gms_SPL_STG_WORK.roll;
        gms_SPL_STG_WORK.counter  += 1U;
        if (gms_SPL_STG_WORK.counter == 90U)
        {
            AppMain.IzFadeInitEasy(0U, 3U, 30f);
        }
        if (gms_SPL_STG_WORK.counter > 90U && AppMain.IzFadeIsEnd())
        {
            AppMain.IzFadeExit();
            AppMain.IzFadeRestoreDrawSetting();
            AppMain.GmObjSetAllObjectNoDisp();
            AppMain.GmRingGetWork().flag |= 1U;
            AppMain.GmFixSetDisp(false);
            gms_SPL_STG_WORK.flag   |= 4U;
            gms_SPL_STG_WORK.counter = 1U;
            AppMain.mtTaskChangeTcbProcedure(tcb, AppMain.gmSplStageGotoEnd);
            obs_CAMERA.roll = 0;
            AppMain.g_gm_main_system.pseudofall_dir = 0;
        }
    }
示例#4
0
 private static void gmSplStageRolling(AppMain.MTS_TASK_TCB tcb)
 {
     AppMain.GMS_SPL_STG_WORK work      = (AppMain.GMS_SPL_STG_WORK)tcb.work;
     AppMain.OBS_CAMERA       obsCamera = AppMain.ObjCameraGet(0);
     if (AppMain.ObjObjectPauseCheck(0U) != 0U || obsCamera == null)
     {
         return;
     }
     work.roll_spd += 56;
     work.roll     += work.roll_spd;
     obsCamera.roll = work.roll;
     ++work.counter;
     if (work.counter == 90U)
     {
         AppMain.IzFadeInitEasy(0U, 3U, 30f);
     }
     if (work.counter <= 90U || !AppMain.IzFadeIsEnd())
     {
         return;
     }
     AppMain.IzFadeExit();
     AppMain.IzFadeRestoreDrawSetting();
     AppMain.GmObjSetAllObjectNoDisp();
     AppMain.GmRingGetWork().flag |= 1U;
     AppMain.GmFixSetDisp(false);
     work.flag   |= 4U;
     work.counter = 1U;
     AppMain.mtTaskChangeTcbProcedure(tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmSplStageGotoEnd));
     obsCamera.roll = 0;
     AppMain.g_gm_main_system.pseudofall_dir = (ushort)0;
 }
示例#5
0
    private static void gmSplStageRingGateChk(AppMain.GMS_SPL_STG_WORK tcb_work)
    {
        AppMain.GMS_PLAYER_WORK gmsPlayerWork = AppMain.g_gm_main_system.ply_work[0];
        ushort getRing = tcb_work.get_ring;

        for (ushort gate_id = 0; gate_id < (ushort)9; ++gate_id)
        {
            if (((int)tcb_work.get_ring & 1 << (int)gate_id) == 0)
            {
                ushort num = AppMain.GmSplStageRingGateNumGet(gate_id);
                if (num != (ushort)byte.MaxValue)
                {
                    if ((int)num <= (int)(ushort)gmsPlayerWork.ring_num)
                    {
                        tcb_work.get_ring |= (ushort)(1U << (int)gate_id);
                    }
                }
                else
                {
                    break;
                }
            }
        }
        if ((int)getRing == (int)tcb_work.get_ring)
        {
            return;
        }
        AppMain.GmSoundPlaySE("Special7");
    }
示例#6
0
 private static void gmSplStagePlayEndChk(AppMain.MTS_TASK_TCB tcb)
 {
     AppMain.GMS_SPL_STG_WORK work          = (AppMain.GMS_SPL_STG_WORK)tcb.work;
     AppMain.GMS_PLAYER_WORK  gmsPlayerWork = AppMain.g_gm_main_system.ply_work[0];
     AppMain.OBS_CAMERA       obsCamera     = AppMain.ObjCameraGet(0);
     if (AppMain.ObjObjectPauseCheck(0U) != 0U)
     {
         return;
     }
     AppMain.gmSplStageLightCtrl(work);
     work.flag &= 4294967294U;
     AppMain.gmSplStageNudgeCtrl();
     AppMain.gmSplStageRingGateChk(work);
     if (((int)AppMain.g_gm_main_system.game_flag & 458752) == 0)
     {
         return;
     }
     AppMain.g_gm_main_system.game_flag &= 4294966271U;
     gmsPlayerWork.obj_work.flag        |= 130U;
     gmsPlayerWork.obj_work.move_flag   |= 8448U;
     gmsPlayerWork.obj_work.disp_flag   &= 4294967294U;
     gmsPlayerWork.player_flag          |= 4194304U;
     if (((int)AppMain.g_gm_main_system.game_flag & 393216) != 0)
     {
         AppMain.GMM_PAD_VIB_MID_TIME(90f);
     }
     work.roll     = obsCamera.roll;
     work.roll_spd = 256;
     work.counter  = 0U;
     AppMain.mtTaskChangeTcbProcedure(tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmSplStageRolling));
 }
示例#7
0
 // Token: 0x06000D86 RID: 3462 RVA: 0x0007653C File Offset: 0x0007473C
 private static void gmSplStageGotoEnd(MTS_TASK_TCB tcb)
 {
     AppMain.GMS_SPL_STG_WORK gms_SPL_STG_WORK = (AppMain.GMS_SPL_STG_WORK)tcb.work;
     if (gms_SPL_STG_WORK.counter != 0U)
     {
         gms_SPL_STG_WORK.counter -= 1U;
         return;
     }
     AppMain.g_gm_main_system.game_flag |= 4U;
     AppMain.mtTaskChangeTcbProcedure(tcb, AppMain.gmSplStageEnd);
 }
示例#8
0
 // Token: 0x06000D82 RID: 3458 RVA: 0x00076224 File Offset: 0x00074424
 private static void gmSplStageFadeInWait(MTS_TASK_TCB tcb)
 {
     AppMain.GMS_SPL_STG_WORK gms_SPL_STG_WORK = (AppMain.GMS_SPL_STG_WORK)tcb.work;
     gms_SPL_STG_WORK.counter += 1U;
     if (gms_SPL_STG_WORK.counter > 30U)
     {
         gms_SPL_STG_WORK.counter = 0U;
         AppMain.mtTaskChangeTcbProcedure(tcb, AppMain.gmSplStageFadeInWait2);
         AppMain.IzFadeInitEasy(0U, 2U, 30f);
     }
 }
示例#9
0
 private static void gmSplStageFadeInWait(AppMain.MTS_TASK_TCB tcb)
 {
     AppMain.GMS_SPL_STG_WORK work = (AppMain.GMS_SPL_STG_WORK)tcb.work;
     ++work.counter;
     if (work.counter <= 30U)
     {
         return;
     }
     work.counter = 0U;
     AppMain.mtTaskChangeTcbProcedure(tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmSplStageFadeInWait2));
     AppMain.IzFadeInitEasy(0U, 2U, 30f);
 }
示例#10
0
 private static void gmSplStageLightCtrl(AppMain.GMS_SPL_STG_WORK tcb_work)
 {
     AppMain.NNS_RGBA col = new AppMain.NNS_RGBA(1f, 1f, 1f, 1f);
     new AppMain.NNS_VECTOR();
     AppMain.UNREFERENCED_PARAMETER((object)tcb_work);
     AppMain.NNS_VECTOR nnsVector1 = AppMain.gmSplStageLightRot(-1f, -1f, -1f);
     AppMain.nnNormalizeVector(nnsVector1, nnsVector1);
     AppMain.ObjDrawSetParallelLight(AppMain.NNE_LIGHT_0, ref col, 1f, nnsVector1);
     AppMain.NNS_VECTOR nnsVector2 = AppMain.gmSplStageLightRot(-0.4f, -0.4f, -1f);
     AppMain.nnNormalizeVector(nnsVector2, nnsVector2);
     AppMain.ObjDrawSetParallelLight(AppMain.NNE_LIGHT_1, ref col, 1f, nnsVector2);
 }
示例#11
0
    // Token: 0x06000D88 RID: 3464 RVA: 0x00076598 File Offset: 0x00074798
    private static void gmSplStageLightCtrl(AppMain.GMS_SPL_STG_WORK tcb_work)
    {
        NNS_RGBA   nns_RGBA   = new NNS_RGBA(1f, 1f, 1f, 1f);
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        AppMain.UNREFERENCED_PARAMETER(tcb_work);
        nns_VECTOR = AppMain.gmSplStageLightRot(-1f, -1f, -1f);
        AppMain.nnNormalizeVector(nns_VECTOR, nns_VECTOR);
        AppMain.ObjDrawSetParallelLight(AppMain.NNE_LIGHT_0, ref nns_RGBA, 1f, nns_VECTOR);
        nns_VECTOR = AppMain.gmSplStageLightRot(-0.4f, -0.4f, -1f);
        AppMain.nnNormalizeVector(nns_VECTOR, nns_VECTOR);
        AppMain.ObjDrawSetParallelLight(AppMain.NNE_LIGHT_1, ref nns_RGBA, 1f, nns_VECTOR);
    }
示例#12
0
 private static void gmSplStageGotoEnd(AppMain.MTS_TASK_TCB tcb)
 {
     AppMain.GMS_SPL_STG_WORK work = (AppMain.GMS_SPL_STG_WORK)tcb.work;
     if (work.counter != 0U)
     {
         --work.counter;
     }
     else
     {
         AppMain.g_gm_main_system.game_flag |= 4U;
         AppMain.mtTaskChangeTcbProcedure(tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmSplStageEnd));
     }
 }
示例#13
0
    // Token: 0x06000D7B RID: 3451 RVA: 0x00076010 File Offset: 0x00074210
    private static void GmSplStageStart()
    {
        ushort num = (ushort)(g_gs_main_sys_info.stage_id - 21);

        AppMain.gm_spl_tcb = AppMain.MTM_TASK_MAKE_TCB(AppMain.gmSplStageFadeInWait, null, 0U, 0, 4176U, 5, () => new AppMain.GMS_SPL_STG_WORK(), "SPL_STG_CTRL");
        AppMain.GMS_SPL_STG_WORK gms_SPL_STG_WORK = (AppMain.GMS_SPL_STG_WORK)AppMain.gm_spl_tcb.work;
        gms_SPL_STG_WORK.counter            = 0U;
        gms_SPL_STG_WORK.light_vec.x        = -1f;
        gms_SPL_STG_WORK.light_vec.y        = -1f;
        gms_SPL_STG_WORK.light_vec.z        = -1f;
        gms_SPL_STG_WORK.get_ring           = 0;
        AppMain.g_gm_main_system.game_flag &= 4294508543U;
        AppMain.IzFadeInitEasy(1U, 3U, 8f);
        AppMain.g_gm_main_system.game_time  = AppMain.gm_spl_stage_init_time[( int )num];
        AppMain.g_gm_main_system.game_flag |= 4096U;
        Array.Clear(AppMain.gm_gmk_ss_switch, 0, AppMain.gm_gmk_ss_switch.Length);
    }
示例#14
0
    private static void GmSplStageStart()
    {
        ushort num = (ushort)((uint)AppMain.g_gs_main_sys_info.stage_id - 21U);

        AppMain.gm_spl_tcb = AppMain.MTM_TASK_MAKE_TCB(new AppMain.GSF_TASK_PROCEDURE(AppMain.gmSplStageFadeInWait), (AppMain.GSF_TASK_PROCEDURE)null, 0U, (ushort)0, 4176U, 5, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_SPL_STG_WORK()), "SPL_STG_CTRL");
        AppMain.GMS_SPL_STG_WORK work = (AppMain.GMS_SPL_STG_WORK)AppMain.gm_spl_tcb.work;
        work.counter     = 0U;
        work.light_vec.x = -1f;
        work.light_vec.y = -1f;
        work.light_vec.z = -1f;
        work.get_ring    = (ushort)0;
        AppMain.g_gm_main_system.game_flag &= 4294508543U;
        AppMain.IzFadeInitEasy(1U, 3U, 8f);
        AppMain.g_gm_main_system.game_time  = AppMain.gm_spl_stage_init_time[(int)num];
        AppMain.g_gm_main_system.game_flag |= 4096U;
        Array.Clear((Array)AppMain.gm_gmk_ss_switch, 0, AppMain.gm_gmk_ss_switch.Length);
    }
示例#15
0
 private static void GmGmkSsSquareBounce(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.OBS_COLLISION_OBJ objCol   = obj_work.col_work.obj_col;
     AppMain.GMS_PLAYER_WORK   ply_work = AppMain.g_gm_main_system.ply_work[0];
     AppMain.GMS_SPL_STG_WORK  work     = AppMain.GmSplStageGetWork();
     if (objCol.toucher_obj == ply_work.obj_work)
     {
         if (ply_work.nudge_timer != (short)0 && ((int)work.flag & 2) == 0)
         {
             AppMain.GmPlySeqInitPinballAir(ply_work, 0, -17408, 5, false);
             work.flag |= 1U;
             work.flag |= 2U;
         }
         else if (((int)obj_work.user_flag & int.MinValue) == 0 && ((int)work.flag & 1) == 0 && (AppMain.MTM_MATH_ABS(ply_work.obj_work.spd.x) > 4096 || AppMain.MTM_MATH_ABS(ply_work.obj_work.spd.y) > 4096))
         {
             AppMain.OBS_OBJECT_WORK objWork = ply_work.obj_work;
             AppMain.VecFx32         vecFx32 = AppMain.gmGmkSsSquareNormalizeVectorXY(new AppMain.VecFx32()
             {
                 x = objWork.prev_pos.x - obj_work.pos.x,
                 y = objWork.prev_pos.y - obj_work.pos.y,
                 z = 0
             });
             objWork.dir.z = (ushort)0;
             int num1  = AppMain.MTM_MATH_ABS(objWork.spd.x);
             int num2  = AppMain.MTM_MATH_ABS(objWork.spd.y);
             int v2    = AppMain.FX_Sqrt(AppMain.FX_Mul(num1, num1) + AppMain.FX_Mul(num2, num2)) / 2;
             int spd_x = AppMain.FX_Mul(vecFx32.x, v2);
             int spd_y = AppMain.FX_Mul(vecFx32.y, v2);
             AppMain.GmPlySeqInitPinballAir(ply_work, spd_x, spd_y, 5, false);
             work.flag |= 1U;
         }
         obj_work.user_flag |= 2147483648U;
     }
     else
     {
         obj_work.user_flag &= (uint)int.MaxValue;
     }
 }
示例#16
0
    // Token: 0x06000DCC RID: 3532 RVA: 0x00079B4C File Offset: 0x00077D4C
    private static void GmGmkSsSquareBounce(OBS_OBJECT_WORK obj_work)
    {
        AppMain.OBS_COLLISION_OBJ obj_col         = obj_work.col_work.obj_col;
        GMS_PLAYER_WORK           gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)];

        AppMain.GMS_SPL_STG_WORK gms_SPL_STG_WORK = AppMain.GmSplStageGetWork();
        if (obj_col.toucher_obj == gms_PLAYER_WORK.obj_work)
        {
            if (gms_PLAYER_WORK.nudge_timer != 0 && (gms_SPL_STG_WORK.flag & 2U) == 0U)
            {
                AppMain.GmPlySeqInitPinballAir(gms_PLAYER_WORK, 0, -17408, 5, false);
                gms_SPL_STG_WORK.flag |= 1U;
                gms_SPL_STG_WORK.flag |= 2U;
            }
            else if ((obj_work.user_flag & 2147483648U) == 0U && (gms_SPL_STG_WORK.flag & 1U) == 0U && (AppMain.MTM_MATH_ABS(gms_PLAYER_WORK.obj_work.spd.x) > 4096 || AppMain.MTM_MATH_ABS(gms_PLAYER_WORK.obj_work.spd.y) > 4096))
            {
                OBS_OBJECT_WORK obj_work2 = gms_PLAYER_WORK.obj_work;
                AppMain.VecFx32 vecFx     = AppMain.gmGmkSsSquareNormalizeVectorXY(new AppMain.VecFx32
                {
                    x = obj_work2.prev_pos.x - obj_work.pos.x,
                    y = obj_work2.prev_pos.y - obj_work.pos.y,
                    z = 0
                });
                obj_work2.dir.z = 0;
                int num  = AppMain.MTM_MATH_ABS(obj_work2.spd.x);
                int num2 = AppMain.MTM_MATH_ABS(obj_work2.spd.y);
                int num3 = AppMain.FX_Sqrt(AppMain.FX_Mul(num, num) + AppMain.FX_Mul(num2, num2));
                num3 /= 2;
                num   = AppMain.FX_Mul(vecFx.x, num3);
                num2  = AppMain.FX_Mul(vecFx.y, num3);
                AppMain.GmPlySeqInitPinballAir(gms_PLAYER_WORK, num, num2, 5, false);
                gms_SPL_STG_WORK.flag |= 1U;
            }
            obj_work.user_flag |= 2147483648U;
            return;
        }
        obj_work.user_flag &= 2147483647U;
    }