// Token: 0x0600158F RID: 5519 RVA: 0x000BBB54 File Offset: 0x000B9D54
 private static void gmGmkBreakLandParts_Main(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_GMK_BWALL_PARTS gms_GMK_BWALL_PARTS = (AppMain.GMS_GMK_BWALL_PARTS)obj_work;
     if (gms_GMK_BWALL_PARTS.vect > 32768)
     {
         obj_work.dir.x = ( ushort )(obj_work.dir.x + 1024);
         obj_work.dir.y = ( ushort )(obj_work.dir.y + 768);
     }
     else
     {
         obj_work.dir.x = ( ushort )(obj_work.dir.x - 1024);
         obj_work.dir.y = ( ushort )(obj_work.dir.y - 768);
     }
     AppMain.GMS_GMK_BWALL_PARTS gms_GMK_BWALL_PARTS2 = gms_GMK_BWALL_PARTS;
     gms_GMK_BWALL_PARTS2.falltimer -= 1;
     if (gms_GMK_BWALL_PARTS.falltimer <= 0)
     {
         obj_work.flag |= 8U;
     }
 }
Esempio n. 2
0
 private static void gmGmkBreakLandParts_Main(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_GMK_BWALL_PARTS gmsGmkBwallParts = (AppMain.GMS_GMK_BWALL_PARTS)obj_work;
     if (gmsGmkBwallParts.vect > (ushort)32768)
     {
         obj_work.dir.x += (ushort)1024;
         obj_work.dir.y += (ushort)768;
     }
     else
     {
         obj_work.dir.x -= (ushort)1024;
         obj_work.dir.y -= (ushort)768;
     }
     --gmsGmkBwallParts.falltimer;
     if (gmsGmkBwallParts.falltimer > (short)0)
     {
         return;
     }
     obj_work.flag |= 8U;
 }
    // Token: 0x06001590 RID: 5520 RVA: 0x000BBC04 File Offset: 0x000B9E04
    private static void gmGmkBreakWall_CreateParts(AppMain.OBS_OBJECT_WORK parent_obj, int type, int obj_type, ushort vect)
    {
        AppMain.GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)];
        ushort num  = (ushort)AppMain.g_gm_gamedat_zone_type_tbl[(int)AppMain.g_gs_main_sys_info.stage_id];
        ushort num2 = ( ushort )(AppMain.mtMathRand() % 8192);

        for (int i = 0; i < ( int )AppMain.tbl_gmk_bwall_parts[( int )num][type].num; i++)
        {
            ushort[] array = AppMain.tbl_gmk_bwall_parts[(int)num][type]._params[i];
            AppMain.GMS_GMK_BWALL_PARTS gms_GMK_BWALL_PARTS = (AppMain.GMS_GMK_BWALL_PARTS)AppMain.GMM_EFFECT_CREATE_WORK(() => new AppMain.GMS_GMK_BWALL_PARTS(), null, 0, "BreakWall_Parts");
            AppMain.OBS_OBJECT_WORK     obs_OBJECT_WORK     = (AppMain.OBS_OBJECT_WORK)gms_GMK_BWALL_PARTS;
            AppMain.ObjObjectCopyAction3dNNModel(obs_OBJECT_WORK, AppMain.gm_gmk_breakwall_obj_3d_list[( int )array[0]], gms_GMK_BWALL_PARTS.eff_work.obj_3d);
            ushort num3  = array[5];
            ushort num4  = array[3];
            ushort angle = ( ushort )(array[4] + num2 / 2);
            if (AppMain.GMM_GMK_TYPE_IS_VECT(obj_type) != 0)
            {
                if (num4 >= 32768)
                {
                    num4 += num2;
                }
                else
                {
                    num4 -= num2;
                }
                if (vect == 0)
                {
                    obs_OBJECT_WORK.pos.x = parent_obj.pos.x + ( int )(( short )array[1] * 4096);
                    obs_OBJECT_WORK.dir.z = 0;
                }
                else
                {
                    obs_OBJECT_WORK.pos.x = parent_obj.pos.x - ( int )(( short )array[1] * 4096);
                    obs_OBJECT_WORK.dir.z = 32768;
                    num4 = ( ushort )(32768 - num4);
                }
                gms_GMK_BWALL_PARTS.vect = num4;
                obs_OBJECT_WORK.pos.y    = parent_obj.pos.y + ( int )(( short )array[2] * 4096);
                ushort angle2 = ( ushort )(array[4] + num2 / 2);
                int    num5   = AppMain.mtMathCos((int)num4) * (int)num3;
                obs_OBJECT_WORK.spd.y = AppMain.mtMathSin(( int )num4) * ( int )num3;
                obs_OBJECT_WORK.spd.x = AppMain.mtMathCos(( int )angle2) * num5 >> 12;
                obs_OBJECT_WORK.spd.z = -(AppMain.mtMathSin(( int )angle2) * AppMain.MTM_MATH_ABS(num5) >> 12);
                obs_OBJECT_WORK.pos.z = parent_obj.pos.z + AppMain.mtMathSin(( int )angle2) * 8;
                AppMain.OBS_OBJECT_WORK obs_OBJECT_WORK2 = obs_OBJECT_WORK;
                obs_OBJECT_WORK2.spd.x = obs_OBJECT_WORK2.spd.x + (gms_PLAYER_WORK.obj_work.move.x >> 1);
            }
            else
            {
                if (num4 >= 49152)
                {
                    num4 += num2;
                }
                else
                {
                    num4 -= num2;
                }
                obs_OBJECT_WORK.pos.x = parent_obj.pos.x + ( int )(( short )array[1] * 4096);
                if (vect == 0)
                {
                    obs_OBJECT_WORK.pos.y = parent_obj.pos.y + ( int )(( short )array[2] * 4096);
                    obs_OBJECT_WORK.dir.z = 0;
                }
                else
                {
                    obs_OBJECT_WORK.pos.y = parent_obj.pos.y - ( int )(( short )array[2] * 4096);
                    obs_OBJECT_WORK.dir.z = 32768;
                    num4 = ( ushort )(65536 - ( int )num4);
                }
                gms_GMK_BWALL_PARTS.vect = num4;
                int num6 = AppMain.mtMathCos((int)num4) * (int)num3;
                obs_OBJECT_WORK.spd.y = AppMain.mtMathSin(( int )num4) * ( int )num3;
                obs_OBJECT_WORK.spd.x = AppMain.mtMathCos(( int )angle) * num6 >> 12;
                obs_OBJECT_WORK.spd.z = -(AppMain.mtMathSin(( int )angle) * AppMain.MTM_MATH_ABS(num6) >> 12);
                obs_OBJECT_WORK.pos.z = parent_obj.pos.z + AppMain.mtMathSin(( int )angle) * 8;
            }
            obs_OBJECT_WORK.spd_add.y  = 384;
            obs_OBJECT_WORK.dir.x      = 0;
            obs_OBJECT_WORK.dir.z      = 0;
            obs_OBJECT_WORK.move_flag |= 256U;
            obs_OBJECT_WORK.disp_flag |= 4194304U;
            obs_OBJECT_WORK.disp_flag &= 4294967039U;
            obs_OBJECT_WORK.flag      |= 2U;
            if (obs_OBJECT_WORK.spd.y < 0)
            {
                gms_GMK_BWALL_PARTS.falltimer = 90;
            }
            else
            {
                gms_GMK_BWALL_PARTS.falltimer = 120;
            }
            obs_OBJECT_WORK.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkBreakLandParts_Main);
            obs_OBJECT_WORK.obj_3d.use_light_flag &= 4294967294U;
            obs_OBJECT_WORK.obj_3d.use_light_flag |= 2U;
            obs_OBJECT_WORK.obj_3d.use_light_flag |= 65536U;
        }
    }
Esempio n. 4
0
    private static void gmGmkBreakWall_CreateParts(
        AppMain.OBS_OBJECT_WORK parent_obj,
        int type,
        int obj_type,
        ushort vect)
    {
        AppMain.GMS_PLAYER_WORK gmsPlayerWork = AppMain.g_gm_main_system.ply_work[0];
        ushort num1 = (ushort)AppMain.g_gm_gamedat_zone_type_tbl[(int)AppMain.g_gs_main_sys_info.stage_id];
        ushort num2 = (ushort)((uint)AppMain.mtMathRand() % 8192U);

        for (int index = 0; index < (int)AppMain.tbl_gmk_bwall_parts[(int)num1][type].num; ++index)
        {
            ushort[] numArray = AppMain.tbl_gmk_bwall_parts[(int)num1][type]._params[index];
            AppMain.GMS_GMK_BWALL_PARTS work     = (AppMain.GMS_GMK_BWALL_PARTS)AppMain.GMM_EFFECT_CREATE_WORK((AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_GMK_BWALL_PARTS()), (AppMain.OBS_OBJECT_WORK)null, (ushort)0, "BreakWall_Parts");
            AppMain.OBS_OBJECT_WORK     obj_work = (AppMain.OBS_OBJECT_WORK)work;
            AppMain.ObjObjectCopyAction3dNNModel(obj_work, AppMain.gm_gmk_breakwall_obj_3d_list[(int)numArray[0]], work.eff_work.obj_3d);
            ushort num3 = numArray[5];
            ushort num4 = numArray[3];
            ushort num5 = (ushort)((uint)numArray[4] + (uint)num2 / 2U);
            if (AppMain.GMM_GMK_TYPE_IS_VECT(obj_type) != 0)
            {
                ushort num6 = num4 < (ushort)32768 ? (ushort)((uint)num4 - (uint)num2) : (ushort)((uint)num4 + (uint)num2);
                if (vect == (ushort)0)
                {
                    obj_work.pos.x = parent_obj.pos.x + (int)(short)numArray[1] * 4096;
                    obj_work.dir.z = (ushort)0;
                }
                else
                {
                    obj_work.pos.x = parent_obj.pos.x - (int)(short)numArray[1] * 4096;
                    obj_work.dir.z = (ushort)32768;
                    num6           = (ushort)(32768U - (uint)num6);
                }
                work.vect      = num6;
                obj_work.pos.y = parent_obj.pos.y + (int)(short)numArray[2] * 4096;
                ushort num7 = (ushort)((uint)numArray[4] + (uint)num2 / 2U);
                int    a    = AppMain.mtMathCos((int)num6) * (int)num3;
                obj_work.spd.y  = AppMain.mtMathSin((int)num6) * (int)num3;
                obj_work.spd.x  = AppMain.mtMathCos((int)num7) * a >> 12;
                obj_work.spd.z  = -(AppMain.mtMathSin((int)num7) * AppMain.MTM_MATH_ABS(a) >> 12);
                obj_work.pos.z  = parent_obj.pos.z + AppMain.mtMathSin((int)num7) * 8;
                obj_work.spd.x += gmsPlayerWork.obj_work.move.x >> 1;
            }
            else
            {
                ushort num6 = num4 < (ushort)49152 ? (ushort)((uint)num4 - (uint)num2) : (ushort)((uint)num4 + (uint)num2);
                obj_work.pos.x = parent_obj.pos.x + (int)(short)numArray[1] * 4096;
                if (vect == (ushort)0)
                {
                    obj_work.pos.y = parent_obj.pos.y + (int)(short)numArray[2] * 4096;
                    obj_work.dir.z = (ushort)0;
                }
                else
                {
                    obj_work.pos.y = parent_obj.pos.y - (int)(short)numArray[2] * 4096;
                    obj_work.dir.z = (ushort)32768;
                    num6           = (ushort)(65536U - (uint)num6);
                }
                work.vect = num6;
                int a = AppMain.mtMathCos((int)num6) * (int)num3;
                obj_work.spd.y = AppMain.mtMathSin((int)num6) * (int)num3;
                obj_work.spd.x = AppMain.mtMathCos((int)num5) * a >> 12;
                obj_work.spd.z = -(AppMain.mtMathSin((int)num5) * AppMain.MTM_MATH_ABS(a) >> 12);
                obj_work.pos.z = parent_obj.pos.z + AppMain.mtMathSin((int)num5) * 8;
            }
            obj_work.spd_add.y              = 384;
            obj_work.dir.x                  = (ushort)0;
            obj_work.dir.z                  = (ushort)0;
            obj_work.move_flag             |= 256U;
            obj_work.disp_flag             |= 4194304U;
            obj_work.disp_flag             &= 4294967039U;
            obj_work.flag                  |= 2U;
            work.falltimer                  = obj_work.spd.y >= 0 ? (short)120 : (short)90;
            obj_work.ppFunc                 = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkBreakLandParts_Main);
            obj_work.obj_3d.use_light_flag &= 4294967294U;
            obj_work.obj_3d.use_light_flag |= 2U;
            obj_work.obj_3d.use_light_flag |= 65536U;
        }
    }