// 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; } }
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; } }
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; } }