// Token: 0x06001599 RID: 5529 RVA: 0x000BC440 File Offset: 0x000BA640 private static AppMain.OBS_OBJECT_WORK GmGmkBreakFloorInit(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { AppMain.GMS_GMK_BWALL_WORK gms_GMK_BWALL_WORK = (AppMain.GMS_GMK_BWALL_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, () => new AppMain.GMS_GMK_BWALL_WORK(), "GMK_BREAK_LAND_MAIN"); AppMain.OBS_OBJECT_WORK obs_OBJECT_WORK = (AppMain.OBS_OBJECT_WORK)gms_GMK_BWALL_WORK; AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)gms_GMK_BWALL_WORK; ushort num = AppMain.tbl_breakwall_mdl[AppMain.g_gm_gamedat_zone_type_tbl[(int)AppMain.g_gs_main_sys_info.stage_id]][6]; AppMain.ObjObjectCopyAction3dNNModel(obs_OBJECT_WORK, AppMain.gm_gmk_breakwall_obj_3d_list[( int )num], gms_ENEMY_3D_WORK.obj_3d); obs_OBJECT_WORK.pos.z = -131072; if ((eve_rec.flag & 2) != 0) { AppMain.OBS_OBJECT_WORK obs_OBJECT_WORK2 = obs_OBJECT_WORK; obs_OBJECT_WORK2.pos.z = obs_OBJECT_WORK2.pos.z - 4096; } obs_OBJECT_WORK.move_flag |= 8448U; obs_OBJECT_WORK.disp_flag |= 4194304U; gms_GMK_BWALL_WORK.broketype = ( ushort )(eve_rec.flag & 1); if (AppMain.g_gs_main_sys_info.stage_id == 2 || AppMain.g_gs_main_sys_info.stage_id == 3) { gms_ENEMY_3D_WORK.obj_3d.use_light_flag &= 4294967294U; gms_ENEMY_3D_WORK.obj_3d.use_light_flag |= 2U; } gms_GMK_BWALL_WORK.obj_type = 2; gms_GMK_BWALL_WORK.wall_type = 6; AppMain.gmGmkBreakWallStart(obs_OBJECT_WORK); return(obs_OBJECT_WORK); }
private static AppMain.OBS_OBJECT_WORK GmGmkBreakFloorInit( AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { AppMain.GMS_GMK_BWALL_WORK work = (AppMain.GMS_GMK_BWALL_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_GMK_BWALL_WORK()), "GMK_BREAK_LAND_MAIN"); AppMain.OBS_OBJECT_WORK obj_work = (AppMain.OBS_OBJECT_WORK)work; AppMain.GMS_ENEMY_3D_WORK gmsEnemy3DWork = (AppMain.GMS_ENEMY_3D_WORK)work; ushort num = AppMain.tbl_breakwall_mdl[AppMain.g_gm_gamedat_zone_type_tbl[(int)AppMain.g_gs_main_sys_info.stage_id]][6]; AppMain.ObjObjectCopyAction3dNNModel(obj_work, AppMain.gm_gmk_breakwall_obj_3d_list[(int)num], gmsEnemy3DWork.obj_3d); obj_work.pos.z = -131072; if (((int)eve_rec.flag & 2) != 0) { obj_work.pos.z -= 4096; } obj_work.move_flag |= 8448U; obj_work.disp_flag |= 4194304U; work.broketype = (ushort)((uint)eve_rec.flag & 1U); if (AppMain.g_gs_main_sys_info.stage_id == (ushort)2 || AppMain.g_gs_main_sys_info.stage_id == (ushort)3) { gmsEnemy3DWork.obj_3d.use_light_flag &= 4294967294U; gmsEnemy3DWork.obj_3d.use_light_flag |= 2U; } work.obj_type = 2; work.wall_type = 6; AppMain.gmGmkBreakWallStart(obj_work); return(obj_work); }
// Token: 0x06001596 RID: 5526 RVA: 0x000BC2C0 File Offset: 0x000BA4C0 private static AppMain.OBS_OBJECT_WORK GmGmkBreakWall_C1Init(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { AppMain.GMS_GMK_BWALL_WORK gms_GMK_BWALL_WORK = (AppMain.GMS_GMK_BWALL_WORK)AppMain.gmGmkBreakWallInit(eve_rec, pos_x, pos_y, type, 4); AppMain.gmGmkBreakWallStart((AppMain.OBS_OBJECT_WORK)gms_GMK_BWALL_WORK); gms_GMK_BWALL_WORK.gmk_work.ene_com.obj_work.disp_flag |= 4194304U; return((AppMain.OBS_OBJECT_WORK)gms_GMK_BWALL_WORK); }
private static AppMain.OBS_OBJECT_WORK gmGmkBreakWallInit( AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type, int wall) { AppMain.GMS_GMK_BWALL_WORK work = (AppMain.GMS_GMK_BWALL_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_GMK_BWALL_WORK()), "GMK_BREAK_LAND_MAIN"); AppMain.OBS_OBJECT_WORK obj_work = (AppMain.OBS_OBJECT_WORK)work; AppMain.GMS_ENEMY_3D_WORK gmsEnemy3DWork = (AppMain.GMS_ENEMY_3D_WORK)work; ushort num = AppMain.tbl_breakwall_mdl[AppMain.g_gm_gamedat_zone_type_tbl[(int)AppMain.g_gs_main_sys_info.stage_id]][wall]; AppMain.ObjObjectCopyAction3dNNModel(obj_work, AppMain.gm_gmk_breakwall_obj_3d_list[(int)num], gmsEnemy3DWork.obj_3d); obj_work.pos.z = -131072; obj_work.move_flag |= 8448U; obj_work.disp_flag |= 4194304U; gmsEnemy3DWork.ene_com.enemy_flag |= 16384U; work.broketype = (ushort)((uint)eve_rec.flag & 7U); work.obj_type = eve_rec.id != (ushort)272 ? 0 : 1; work.wall_type = wall; if (AppMain.g_gs_main_sys_info.stage_id == (ushort)2 || AppMain.g_gs_main_sys_info.stage_id == (ushort)3) { gmsEnemy3DWork.obj_3d.use_light_flag &= 4294967294U; gmsEnemy3DWork.obj_3d.use_light_flag |= 2U; gmsEnemy3DWork.obj_3d.use_light_flag |= 98304U; } else { gmsEnemy3DWork.obj_3d.use_light_flag &= 4294967294U; gmsEnemy3DWork.obj_3d.use_light_flag |= 2U; gmsEnemy3DWork.obj_3d.use_light_flag |= 65536U; } return(obj_work); }
// Token: 0x0600158D RID: 5517 RVA: 0x000BB390 File Offset: 0x000B9590 private static void gmGmkBreakWallStay(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_BWALL_WORK gms_GMK_BWALL_WORK = (AppMain.GMS_GMK_BWALL_WORK)obj_work; if (gms_GMK_BWALL_WORK.hitcheck < 0) { ushort num = ( ushort )(((gms_GMK_BWALL_WORK.hitcheck & 1) != 0) ? 0 : 32768); AppMain.OBS_OBJECT_WORK obs_OBJECT_WORK = null; obj_work.flag |= 10U; AppMain.GmSoundPlaySE("BreakWall"); AppMain.GMM_PAD_VIB_SMALL(); AppMain.gmGmkBreakWall_CreateParts(obj_work, gms_GMK_BWALL_WORK.wall_type, gms_GMK_BWALL_WORK.obj_type, num); if (AppMain.gmk_bwall_effect_y > 196608) { while (AppMain.gmk_bwall_effect_y > 65536) { AppMain.gmk_bwall_effect_y -= 53248; } } int z = obj_work.pos.z; switch (AppMain.g_gm_gamedat_zone_type_tbl[( int )AppMain.g_gs_main_sys_info.stage_id]) { case 0: obs_OBJECT_WORK = (AppMain.OBS_OBJECT_WORK)AppMain.GmEfctZoneEsCreate(null, 0, 8); break; case 1: obs_OBJECT_WORK = (AppMain.OBS_OBJECT_WORK)AppMain.GmEfctZoneEsCreate(null, 1, 1); break; case 2: obs_OBJECT_WORK = (AppMain.OBS_OBJECT_WORK)AppMain.GmEfctZoneEsCreate(null, 2, 33); if (AppMain.g_gs_main_sys_info.stage_id == 9) { z = 655360; obs_OBJECT_WORK.obj_3des.command_state = 15U; } break; case 3: obs_OBJECT_WORK = (AppMain.OBS_OBJECT_WORK)AppMain.GmEfctZoneEsCreate(null, 3, 3); break; } if (obs_OBJECT_WORK != null) { obs_OBJECT_WORK.pos.x = obj_work.pos.x; obs_OBJECT_WORK.pos.y = obj_work.pos.y - AppMain.gmk_bwall_effect_y; obs_OBJECT_WORK.pos.z = z; AppMain.gmk_bwall_effect_y += 126976; obs_OBJECT_WORK.dir.z = num; obs_OBJECT_WORK.disp_flag &= 4294967039U; } return; } if (gms_GMK_BWALL_WORK.hitpass == 0 && gms_GMK_BWALL_WORK.hitcheck != 0) { AppMain.gmGmkBreakWallStart(obj_work); } gms_GMK_BWALL_WORK.hitpass = 0; }
// Token: 0x06001598 RID: 5528 RVA: 0x000BC384 File Offset: 0x000BA584 private static AppMain.OBS_OBJECT_WORK GmGmkBreakWall_C1_H_Init(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { AppMain.GMS_GMK_BWALL_WORK gms_GMK_BWALL_WORK = (AppMain.GMS_GMK_BWALL_WORK)AppMain.gmGmkBreakWallInit(eve_rec, pos_x, pos_y, type, 7); AppMain.gmGmkBreakWallStart((AppMain.OBS_OBJECT_WORK)gms_GMK_BWALL_WORK); gms_GMK_BWALL_WORK.gmk_work.ene_com.obj_work.disp_flag |= 4194304U; gms_GMK_BWALL_WORK.gmk_work.ene_com.obj_work.disp_flag &= 4294967039U; gms_GMK_BWALL_WORK.gmk_work.ene_com.obj_work.dir.z = 49152; gms_GMK_BWALL_WORK.gmk_work.ene_com.col_work.obj_col.flag |= 32U; return((AppMain.OBS_OBJECT_WORK)gms_GMK_BWALL_WORK); }
private static AppMain.OBS_OBJECT_WORK GmGmkBreakWall_R2Init( AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { AppMain.GMS_GMK_BWALL_WORK gmsGmkBwallWork = (AppMain.GMS_GMK_BWALL_WORK)AppMain.gmGmkBreakWallInit(eve_rec, pos_x, pos_y, type, 3); AppMain.gmGmkBreakWallStart((AppMain.OBS_OBJECT_WORK)gmsGmkBwallWork); return((AppMain.OBS_OBJECT_WORK)gmsGmkBwallWork); }
// Token: 0x0600158C RID: 5516 RVA: 0x000BB1C4 File Offset: 0x000B93C4 private static void gmGmkBreakWallStart(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_BWALL_WORK gms_GMK_BWALL_WORK = (AppMain.GMS_GMK_BWALL_WORK)obj_work; gms_GMK_BWALL_WORK.gmk_work.ene_com.col_work.obj_col.obj = obj_work; gms_GMK_BWALL_WORK.gmk_work.ene_com.col_work.obj_col.width = ( ushort )AppMain.tbl_gm_gmk_bwall_col_rect[gms_GMK_BWALL_WORK.obj_type][0]; gms_GMK_BWALL_WORK.gmk_work.ene_com.col_work.obj_col.height = ( ushort )AppMain.tbl_gm_gmk_bwall_col_rect[gms_GMK_BWALL_WORK.obj_type][1]; gms_GMK_BWALL_WORK.gmk_work.ene_com.col_work.obj_col.ofst_x = AppMain.tbl_gm_gmk_bwall_col_rect[gms_GMK_BWALL_WORK.obj_type][2]; gms_GMK_BWALL_WORK.gmk_work.ene_com.col_work.obj_col.ofst_y = AppMain.tbl_gm_gmk_bwall_col_rect[gms_GMK_BWALL_WORK.obj_type][3]; gms_GMK_BWALL_WORK.gmk_work.ene_com.col_work.obj_col.dir = 0; gms_GMK_BWALL_WORK.gmk_work.ene_com.rect_work[0].flag &= 4294967291U; gms_GMK_BWALL_WORK.gmk_work.ene_com.rect_work[1].flag &= 4294967291U; AppMain.OBS_RECT_WORK obs_RECT_WORK = gms_GMK_BWALL_WORK.gmk_work.ene_com.rect_work[2]; obs_RECT_WORK.ppDef = new AppMain.OBS_RECT_WORK_Delegate1(AppMain.gmGmkBreakWallHit); obs_RECT_WORK.ppHit = null; AppMain.ObjRectAtkSet(obs_RECT_WORK, 0, 0); AppMain.ObjRectDefSet(obs_RECT_WORK, 65534, 0); AppMain.ObjRectWorkSet(obs_RECT_WORK, AppMain.tbl_gm_gmk_bwall_col_rect[gms_GMK_BWALL_WORK.obj_type][4], AppMain.tbl_gm_gmk_bwall_col_rect[gms_GMK_BWALL_WORK.obj_type][5], AppMain.tbl_gm_gmk_bwall_col_rect[gms_GMK_BWALL_WORK.obj_type][6], AppMain.tbl_gm_gmk_bwall_col_rect[gms_GMK_BWALL_WORK.obj_type][7]); gms_GMK_BWALL_WORK.hitpass = 0; gms_GMK_BWALL_WORK.hitcheck = 0; obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkBreakWallStay); }
// Token: 0x06001591 RID: 5521 RVA: 0x000BC070 File Offset: 0x000BA270 private static OBS_OBJECT_WORK gmGmkBreakWallInit(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type, int wall) { AppMain.GMS_GMK_BWALL_WORK gms_GMK_BWALL_WORK = (AppMain.GMS_GMK_BWALL_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, () => new AppMain.GMS_GMK_BWALL_WORK(), "GMK_BREAK_LAND_MAIN"); OBS_OBJECT_WORK obs_OBJECT_WORK = (OBS_OBJECT_WORK)gms_GMK_BWALL_WORK; AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)gms_GMK_BWALL_WORK; ushort num = AppMain.tbl_breakwall_mdl[AppMain.g_gm_gamedat_zone_type_tbl[(int)AppMain.g_gs_main_sys_info.stage_id]][wall]; AppMain.ObjObjectCopyAction3dNNModel(obs_OBJECT_WORK, AppMain.gm_gmk_breakwall_obj_3d_list[( int )num], gms_ENEMY_3D_WORK.obj_3d); obs_OBJECT_WORK.pos.z = -131072; obs_OBJECT_WORK.move_flag |= 8448U; obs_OBJECT_WORK.disp_flag |= 4194304U; gms_ENEMY_3D_WORK.ene_com.enemy_flag |= 16384U; gms_GMK_BWALL_WORK.broketype = ( ushort )(eve_rec.flag & 7); if (eve_rec.id == 272) { gms_GMK_BWALL_WORK.obj_type = 1; } else { gms_GMK_BWALL_WORK.obj_type = 0; } gms_GMK_BWALL_WORK.wall_type = wall; if (AppMain.g_gs_main_sys_info.stage_id == 2 || AppMain.g_gs_main_sys_info.stage_id == 3) { gms_ENEMY_3D_WORK.obj_3d.use_light_flag &= 4294967294U; gms_ENEMY_3D_WORK.obj_3d.use_light_flag |= 2U; gms_ENEMY_3D_WORK.obj_3d.use_light_flag |= 98304U; } else { gms_ENEMY_3D_WORK.obj_3d.use_light_flag &= 4294967294U; gms_ENEMY_3D_WORK.obj_3d.use_light_flag |= 2U; gms_ENEMY_3D_WORK.obj_3d.use_light_flag |= 65536U; } return(obs_OBJECT_WORK); }
// Token: 0x0600158E RID: 5518 RVA: 0x000BB54C File Offset: 0x000B974C private static void gmGmkBreakWallHit(AppMain.OBS_RECT_WORK mine_rect, AppMain.OBS_RECT_WORK match_rect) { AppMain.OBS_OBJECT_WORK parent_obj = mine_rect.parent_obj; AppMain.GMS_PLAYER_WORK gms_PLAYER_WORK = (AppMain.GMS_PLAYER_WORK)match_rect.parent_obj; if (gms_PLAYER_WORK == AppMain.g_gm_main_system.ply_work[( int )(( UIntPtr )0)]) { AppMain.GMS_GMK_BWALL_WORK gms_GMK_BWALL_WORK = (AppMain.GMS_GMK_BWALL_WORK)parent_obj; AppMain.OBS_RECT_WORK obs_RECT_WORK = gms_GMK_BWALL_WORK.gmk_work.ene_com.rect_work[2]; switch (AppMain.GMM_GMK_TYPE_CHECK(gms_GMK_BWALL_WORK.obj_type)) { case 0: if ((gms_PLAYER_WORK.player_flag & 262144U) != 0U) { if (AppMain.MTM_MATH_ABS(gms_PLAYER_WORK.obj_work.spd_m) < gms_PLAYER_WORK.spd3 && AppMain.MTM_MATH_ABS(gms_PLAYER_WORK.obj_work.spd.x) < gms_PLAYER_WORK.spd3) { return; } } else if (gms_PLAYER_WORK.act_state == 30 || gms_PLAYER_WORK.act_state == 29 || gms_PLAYER_WORK.act_state == 26 || gms_PLAYER_WORK.act_state == 27) { if ((( uint )gms_GMK_BWALL_WORK.broketype & AppMain.GMD_GMK_BWALL_HARD_SPIN_D) != 0U) { return; } if (gms_PLAYER_WORK.act_state != 26 && gms_PLAYER_WORK.act_state != 27) { gms_GMK_BWALL_WORK.gmk_work.ene_com.col_work.obj_col.obj = null; gms_GMK_BWALL_WORK.hitcheck = 1; gms_GMK_BWALL_WORK.hitpass = 1; } else if (AppMain.MTM_MATH_ABS(gms_PLAYER_WORK.obj_work.spd_m) < AppMain.g_gm_player_parameter[( int )(( UIntPtr )0)].spd_max_spin / 4) { return; } } else if (gms_PLAYER_WORK.act_state == 39) { if ((( uint )gms_GMK_BWALL_WORK.broketype & AppMain.GMD_GMK_BWALL_HARD_SPIN_J) != 0U) { return; } } else { if (gms_PLAYER_WORK.act_state != 22 && gms_PLAYER_WORK.act_state != 22 && gms_PLAYER_WORK.act_state != 21) { break; } if ((( uint )gms_GMK_BWALL_WORK.broketype & AppMain.GMD_GMK_BWALL_HARD_DASH) != 0U) { return; } } if (AppMain.GMM_GMK_TYPE_IS_VECT(gms_GMK_BWALL_WORK.obj_type) != 0) { if (parent_obj.pos.x >= gms_PLAYER_WORK.obj_work.pos.x) { short num = (short)((parent_obj.pos.x >> 12) + (int)obs_RECT_WORK.rect.left - (int)match_rect.rect.right); num = ( short )((gms_PLAYER_WORK.obj_work.pos.x >> 12) - ( int )num); AppMain.OBS_RECT rect = obs_RECT_WORK.rect; rect.left += num; gms_GMK_BWALL_WORK.hitcheck = AppMain.GMD_GMK_BWALL_HIT_LEFT; } else { short num2 = (short)((parent_obj.pos.x >> 12) + (int)obs_RECT_WORK.rect.right - (int)match_rect.rect.left - (gms_PLAYER_WORK.obj_work.pos.x >> 12)); AppMain.OBS_RECT rect2 = obs_RECT_WORK.rect; rect2.right -= num2; gms_GMK_BWALL_WORK.hitcheck = AppMain.GMD_GMK_BWALL_HIT_RIGHT; } gms_GMK_BWALL_WORK.gmk_work.ene_com.col_work.obj_col.obj = null; gms_GMK_BWALL_WORK.hitpass = 1; if (obs_RECT_WORK.rect.left >= -16 || obs_RECT_WORK.rect.right <= 16) { gms_GMK_BWALL_WORK.hitcheck = ( short )-gms_GMK_BWALL_WORK.hitcheck; return; } } else { if (parent_obj.pos.y >= gms_PLAYER_WORK.obj_work.pos.y) { short num3 = (short)((parent_obj.pos.y >> 12) + (int)obs_RECT_WORK.rect.top - (int)match_rect.rect.bottom); num3 = ( short )((gms_PLAYER_WORK.obj_work.pos.y >> 12) - ( int )num3); AppMain.OBS_RECT rect3 = obs_RECT_WORK.rect; rect3.top += num3; gms_GMK_BWALL_WORK.hitcheck = AppMain.GMD_GMK_BFLOOR_HIT_TOP; } else { short num4 = (short)((parent_obj.pos.y >> 12) + (int)obs_RECT_WORK.rect.bottom - (int)match_rect.rect.top); num4 -= ( short )(gms_PLAYER_WORK.obj_work.pos.y >> 12); AppMain.OBS_RECT rect4 = obs_RECT_WORK.rect; rect4.bottom -= num4; gms_GMK_BWALL_WORK.hitcheck = AppMain.GMD_GMK_BFLOOR_HIT_BOTTOM; } gms_GMK_BWALL_WORK.gmk_work.ene_com.col_work.obj_col.obj = null; gms_GMK_BWALL_WORK.hitpass = 1; if (obs_RECT_WORK.rect.top >= -16 || obs_RECT_WORK.rect.bottom <= 16) { gms_GMK_BWALL_WORK.hitcheck = ( short )-gms_GMK_BWALL_WORK.hitcheck; return; } } break; case 1: if ((( uint )gms_GMK_BWALL_WORK.broketype & AppMain.GMD_GMK_BFLOOR_HARD_CANNON) == 0U || gms_PLAYER_WORK.act_state == 67) { if ((( uint )gms_GMK_BWALL_WORK.broketype & AppMain.GMD_GMK_BFLOOR_HARD_CANNON) != 0U && gms_PLAYER_WORK.act_state == 67 && gms_PLAYER_WORK.obj_work.spd.y > 0) { return; } if ((gms_PLAYER_WORK.act_state == 39 || (( uint )gms_GMK_BWALL_WORK.broketype & AppMain.GMD_GMK_BFLOOR_HARD_CANNON) != 0U) && (gms_PLAYER_WORK.obj_work.pos.y > parent_obj.pos.y || gms_PLAYER_WORK.obj_work.spd.y > 0)) { if (gms_PLAYER_WORK.obj_work.pos.y >= parent_obj.pos.y && gms_PLAYER_WORK.obj_work.spd.y >= 0) { return; } if (parent_obj.pos.y >= gms_PLAYER_WORK.obj_work.pos.y) { short num5 = (short)((parent_obj.pos.y >> 12) + (int)obs_RECT_WORK.rect.top - (int)match_rect.rect.bottom); num5 = ( short )((gms_PLAYER_WORK.obj_work.pos.y >> 12) - ( int )num5); AppMain.OBS_RECT rect5 = obs_RECT_WORK.rect; rect5.top += num5; gms_GMK_BWALL_WORK.hitcheck = AppMain.GMD_GMK_BFLOOR_HIT_TOP; } else { short num6 = (short)((parent_obj.pos.y >> 12) + (int)obs_RECT_WORK.rect.bottom - (int)match_rect.rect.top); num6 -= ( short )(gms_PLAYER_WORK.obj_work.pos.y >> 12); AppMain.OBS_RECT rect6 = obs_RECT_WORK.rect; rect6.bottom -= num6; gms_GMK_BWALL_WORK.hitcheck = AppMain.GMD_GMK_BFLOOR_HIT_BOTTOM; } gms_GMK_BWALL_WORK.gmk_work.ene_com.col_work.obj_col.obj = null; gms_GMK_BWALL_WORK.hitpass = 1; if (obs_RECT_WORK.rect.top >= -16 || obs_RECT_WORK.rect.bottom <= 16) { gms_GMK_BWALL_WORK.hitcheck = ( short )-gms_GMK_BWALL_WORK.hitcheck; } } } break; default: return; } } }
// Token: 0x06001594 RID: 5524 RVA: 0x000BC260 File Offset: 0x000BA460 private static OBS_OBJECT_WORK GmGmkBreakWall_R1Init(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { AppMain.GMS_GMK_BWALL_WORK work = (AppMain.GMS_GMK_BWALL_WORK)AppMain.gmGmkBreakWallInit(eve_rec, pos_x, pos_y, type, 2); AppMain.gmGmkBreakWallStart(( OBS_OBJECT_WORK )work); return(( OBS_OBJECT_WORK )work); }
private static void gmGmkBreakWallStay(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_BWALL_WORK gmsGmkBwallWork = (AppMain.GMS_GMK_BWALL_WORK)obj_work; if (gmsGmkBwallWork.hitcheck < (short)0) { ushort vect = ((int)gmsGmkBwallWork.hitcheck & 1) != 0 ? (ushort)0 : (ushort)32768; AppMain.OBS_OBJECT_WORK obsObjectWork = (AppMain.OBS_OBJECT_WORK)null; obj_work.flag |= 10U; AppMain.GmSoundPlaySE("BreakWall"); AppMain.GMM_PAD_VIB_SMALL(); AppMain.gmGmkBreakWall_CreateParts(obj_work, gmsGmkBwallWork.wall_type, gmsGmkBwallWork.obj_type, vect); if (AppMain.gmk_bwall_effect_y > 196608) { while (AppMain.gmk_bwall_effect_y > 65536) { AppMain.gmk_bwall_effect_y -= 53248; } } int num = obj_work.pos.z; switch (AppMain.g_gm_gamedat_zone_type_tbl[(int)AppMain.g_gs_main_sys_info.stage_id]) { case 0: obsObjectWork = (AppMain.OBS_OBJECT_WORK)AppMain.GmEfctZoneEsCreate((AppMain.OBS_OBJECT_WORK)null, 0, 8); break; case 1: obsObjectWork = (AppMain.OBS_OBJECT_WORK)AppMain.GmEfctZoneEsCreate((AppMain.OBS_OBJECT_WORK)null, 1, 1); break; case 2: obsObjectWork = (AppMain.OBS_OBJECT_WORK)AppMain.GmEfctZoneEsCreate((AppMain.OBS_OBJECT_WORK)null, 2, 33); if (AppMain.g_gs_main_sys_info.stage_id == (ushort)9) { num = 655360; obsObjectWork.obj_3des.command_state = 15U; break; } break; case 3: obsObjectWork = (AppMain.OBS_OBJECT_WORK)AppMain.GmEfctZoneEsCreate((AppMain.OBS_OBJECT_WORK)null, 3, 3); break; } if (obsObjectWork == null) { return; } obsObjectWork.pos.x = obj_work.pos.x; obsObjectWork.pos.y = obj_work.pos.y - AppMain.gmk_bwall_effect_y; obsObjectWork.pos.z = num; AppMain.gmk_bwall_effect_y += 126976; obsObjectWork.dir.z = vect; obsObjectWork.disp_flag &= 4294967039U; } else { if (gmsGmkBwallWork.hitpass == 0 && gmsGmkBwallWork.hitcheck != (short)0) { AppMain.gmGmkBreakWallStart(obj_work); } gmsGmkBwallWork.hitpass = 0; } }
private static void gmGmkBreakWallHit( AppMain.OBS_RECT_WORK mine_rect, AppMain.OBS_RECT_WORK match_rect) { AppMain.OBS_OBJECT_WORK parentObj1 = mine_rect.parent_obj; AppMain.GMS_PLAYER_WORK parentObj2 = (AppMain.GMS_PLAYER_WORK)match_rect.parent_obj; if (parentObj2 != AppMain.g_gm_main_system.ply_work[0]) { return; } AppMain.GMS_GMK_BWALL_WORK gmsGmkBwallWork = (AppMain.GMS_GMK_BWALL_WORK)parentObj1; AppMain.OBS_RECT_WORK obsRectWork = gmsGmkBwallWork.gmk_work.ene_com.rect_work[2]; switch (AppMain.GMM_GMK_TYPE_CHECK(gmsGmkBwallWork.obj_type)) { case 0: if (((int)parentObj2.player_flag & 262144) != 0) { if (AppMain.MTM_MATH_ABS(parentObj2.obj_work.spd_m) < parentObj2.spd3 && AppMain.MTM_MATH_ABS(parentObj2.obj_work.spd.x) < parentObj2.spd3) { break; } } else if (parentObj2.act_state == 30 || parentObj2.act_state == 29 || (parentObj2.act_state == 26 || parentObj2.act_state == 27)) { if (((int)gmsGmkBwallWork.broketype & (int)AppMain.GMD_GMK_BWALL_HARD_SPIN_D) != 0) { break; } if (parentObj2.act_state != 26 && parentObj2.act_state != 27) { gmsGmkBwallWork.gmk_work.ene_com.col_work.obj_col.obj = (AppMain.OBS_OBJECT_WORK)null; gmsGmkBwallWork.hitcheck = (short)1; gmsGmkBwallWork.hitpass = 1; } else if (AppMain.MTM_MATH_ABS(parentObj2.obj_work.spd_m) < AppMain.g_gm_player_parameter[0].spd_max_spin / 4) { break; } } else if (parentObj2.act_state == 39) { if (((int)gmsGmkBwallWork.broketype & (int)AppMain.GMD_GMK_BWALL_HARD_SPIN_J) != 0) { break; } } else if (parentObj2.act_state != 22 && parentObj2.act_state != 22 && parentObj2.act_state != 21 || ((int)gmsGmkBwallWork.broketype & (int)AppMain.GMD_GMK_BWALL_HARD_DASH) != 0) { break; } if (AppMain.GMM_GMK_TYPE_IS_VECT(gmsGmkBwallWork.obj_type) != 0) { if (parentObj1.pos.x >= parentObj2.obj_work.pos.x) { short num1 = (short)((parentObj1.pos.x >> 12) + (int)obsRectWork.rect.left - (int)match_rect.rect.right); short num2 = (short)((parentObj2.obj_work.pos.x >> 12) - (int)num1); obsRectWork.rect.left += num2; gmsGmkBwallWork.hitcheck = AppMain.GMD_GMK_BWALL_HIT_LEFT; } else { short num = (short)((parentObj1.pos.x >> 12) + (int)obsRectWork.rect.right - (int)match_rect.rect.left - (parentObj2.obj_work.pos.x >> 12)); obsRectWork.rect.right -= num; gmsGmkBwallWork.hitcheck = AppMain.GMD_GMK_BWALL_HIT_RIGHT; } gmsGmkBwallWork.gmk_work.ene_com.col_work.obj_col.obj = (AppMain.OBS_OBJECT_WORK)null; gmsGmkBwallWork.hitpass = 1; if (obsRectWork.rect.left < (short)-16 && obsRectWork.rect.right > (short)16) { break; } gmsGmkBwallWork.hitcheck = (short)-gmsGmkBwallWork.hitcheck; break; } if (parentObj1.pos.y >= parentObj2.obj_work.pos.y) { short num1 = (short)((parentObj1.pos.y >> 12) + (int)obsRectWork.rect.top - (int)match_rect.rect.bottom); short num2 = (short)((parentObj2.obj_work.pos.y >> 12) - (int)num1); obsRectWork.rect.top += num2; gmsGmkBwallWork.hitcheck = AppMain.GMD_GMK_BFLOOR_HIT_TOP; } else { short num = (short)((int)(short)((parentObj1.pos.y >> 12) + (int)obsRectWork.rect.bottom - (int)match_rect.rect.top) - (int)(short)(parentObj2.obj_work.pos.y >> 12)); obsRectWork.rect.bottom -= num; gmsGmkBwallWork.hitcheck = AppMain.GMD_GMK_BFLOOR_HIT_BOTTOM; } gmsGmkBwallWork.gmk_work.ene_com.col_work.obj_col.obj = (AppMain.OBS_OBJECT_WORK)null; gmsGmkBwallWork.hitpass = 1; if (obsRectWork.rect.top < (short)-16 && obsRectWork.rect.bottom > (short)16) { break; } gmsGmkBwallWork.hitcheck = (short)-gmsGmkBwallWork.hitcheck; break; case 1: if (((int)gmsGmkBwallWork.broketype & (int)AppMain.GMD_GMK_BFLOOR_HARD_CANNON) != 0 && parentObj2.act_state != 67 || ((int)gmsGmkBwallWork.broketype & (int)AppMain.GMD_GMK_BFLOOR_HARD_CANNON) != 0 && parentObj2.act_state == 67 && parentObj2.obj_work.spd.y > 0 || (parentObj2.act_state != 39 && ((int)gmsGmkBwallWork.broketype & (int)AppMain.GMD_GMK_BFLOOR_HARD_CANNON) == 0 || parentObj2.obj_work.pos.y <= parentObj1.pos.y && parentObj2.obj_work.spd.y <= 0 || parentObj2.obj_work.pos.y >= parentObj1.pos.y && parentObj2.obj_work.spd.y >= 0)) { break; } if (parentObj1.pos.y >= parentObj2.obj_work.pos.y) { short num1 = (short)((parentObj1.pos.y >> 12) + (int)obsRectWork.rect.top - (int)match_rect.rect.bottom); short num2 = (short)((parentObj2.obj_work.pos.y >> 12) - (int)num1); obsRectWork.rect.top += num2; gmsGmkBwallWork.hitcheck = AppMain.GMD_GMK_BFLOOR_HIT_TOP; } else { short num = (short)((int)(short)((parentObj1.pos.y >> 12) + (int)obsRectWork.rect.bottom - (int)match_rect.rect.top) - (int)(short)(parentObj2.obj_work.pos.y >> 12)); obsRectWork.rect.bottom -= num; gmsGmkBwallWork.hitcheck = AppMain.GMD_GMK_BFLOOR_HIT_BOTTOM; } gmsGmkBwallWork.gmk_work.ene_com.col_work.obj_col.obj = (AppMain.OBS_OBJECT_WORK)null; gmsGmkBwallWork.hitpass = 1; if (obsRectWork.rect.top < (short)-16 && obsRectWork.rect.bottom > (short)16) { break; } gmsGmkBwallWork.hitcheck = (short)-gmsGmkBwallWork.hitcheck; break; } }