// Token: 0x060008E3 RID: 2275 RVA: 0x0005104C File Offset: 0x0004F24C public static void gmGmkBreakObjStart(OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_BOBJ_WORK gms_GMK_BOBJ_WORK = (AppMain.GMS_GMK_BOBJ_WORK)obj_work; gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.obj = obj_work; gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.width = ( ushort )AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][0]; gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.height = ( ushort )AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][1]; gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.ofst_x = AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][2]; gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.ofst_y = AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][3]; gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.dir = 0; gms_GMK_BOBJ_WORK.breakrect_left = ( short )(gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.ofst_x - 4); gms_GMK_BOBJ_WORK.breakrect_right = ( short )(gms_GMK_BOBJ_WORK.breakrect_left + ( short )gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.width + 4); gms_GMK_BOBJ_WORK.breakrect_top = ( short )(gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.ofst_y - 4); gms_GMK_BOBJ_WORK.gmk_work.ene_com.rect_work[1].flag &= 4294967291U; AppMain.OBS_RECT_WORK obs_RECT_WORK = gms_GMK_BOBJ_WORK.gmk_work.ene_com.rect_work[0]; obs_RECT_WORK.ppDef = AppMain.gmGmkBreakObjHit; 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_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][4], AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][5], AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][6], AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][7]); obs_RECT_WORK = gms_GMK_BOBJ_WORK.gmk_work.ene_com.rect_work[2]; obs_RECT_WORK.ppDef = null; obs_RECT_WORK.ppHit = null; AppMain.ObjRectAtkSet(obs_RECT_WORK, 0, 0); AppMain.ObjRectDefSet(obs_RECT_WORK, 65534, 0); AppMain.ObjRectWorkSet(obs_RECT_WORK, gms_GMK_BOBJ_WORK.breakrect_left, gms_GMK_BOBJ_WORK.breakrect_top, gms_GMK_BOBJ_WORK.breakrect_right, 0); gms_GMK_BOBJ_WORK.hitpass = false; gms_GMK_BOBJ_WORK.hitcheck = 0; obj_work.ppFunc = AppMain.gmGmkBreakObjStay; }
public static void gmGmkBreakObjStart(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_BOBJ_WORK gmsGmkBobjWork = (AppMain.GMS_GMK_BOBJ_WORK)obj_work; gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.obj = obj_work; gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.width = (ushort)AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][0]; gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.height = (ushort)AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][1]; gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.ofst_x = AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][2]; gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.ofst_y = AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][3]; gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.dir = (ushort)0; gmsGmkBobjWork.breakrect_left = (short)((int)gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.ofst_x - 4); gmsGmkBobjWork.breakrect_right = (short)((int)gmsGmkBobjWork.breakrect_left + (int)gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.width + 4); gmsGmkBobjWork.breakrect_top = (short)((int)gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.ofst_y - 4); gmsGmkBobjWork.gmk_work.ene_com.rect_work[1].flag &= 4294967291U; AppMain.OBS_RECT_WORK pRec1 = gmsGmkBobjWork.gmk_work.ene_com.rect_work[0]; pRec1.ppDef = new AppMain.OBS_RECT_WORK_Delegate1(AppMain.gmGmkBreakObjHit); pRec1.ppHit = (AppMain.OBS_RECT_WORK_Delegate1)null; AppMain.ObjRectAtkSet(pRec1, (ushort)0, (short)0); AppMain.ObjRectDefSet(pRec1, (ushort)65534, (short)0); AppMain.ObjRectWorkSet(pRec1, AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][4], AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][5], AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][6], AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][7]); AppMain.OBS_RECT_WORK pRec2 = gmsGmkBobjWork.gmk_work.ene_com.rect_work[2]; pRec2.ppDef = (AppMain.OBS_RECT_WORK_Delegate1)null; pRec2.ppHit = (AppMain.OBS_RECT_WORK_Delegate1)null; AppMain.ObjRectAtkSet(pRec2, (ushort)0, (short)0); AppMain.ObjRectDefSet(pRec2, (ushort)65534, (short)0); AppMain.ObjRectWorkSet(pRec2, gmsGmkBobjWork.breakrect_left, gmsGmkBobjWork.breakrect_top, gmsGmkBobjWork.breakrect_right, (short)0); gmsGmkBobjWork.hitpass = false; gmsGmkBobjWork.hitcheck = (short)0; obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkBreakObjStay); }
// Token: 0x060008E4 RID: 2276 RVA: 0x000512B8 File Offset: 0x0004F4B8 public static void gmGmkBreakObjStay(OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_BOBJ_WORK gms_GMK_BOBJ_WORK = (AppMain.GMS_GMK_BOBJ_WORK)obj_work; if (!gms_GMK_BOBJ_WORK.hitpass && gms_GMK_BOBJ_WORK.hitcheck != 0) { AppMain.gmGmkBreakObjStart(obj_work); } gms_GMK_BOBJ_WORK.hitpass = false; }
public static void gmGmkBreakObjStay(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_BOBJ_WORK gmsGmkBobjWork = (AppMain.GMS_GMK_BOBJ_WORK)obj_work; if (!gmsGmkBobjWork.hitpass && gmsGmkBobjWork.hitcheck != (short)0) { AppMain.gmGmkBreakObjStart(obj_work); } gmsGmkBobjWork.hitpass = false; }
// Token: 0x060008E0 RID: 2272 RVA: 0x00050F40 File Offset: 0x0004F140 private static AppMain.OBS_OBJECT_WORK GmGmkBreakObjInit(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { AppMain.GMS_GMK_BOBJ_WORK gms_GMK_BOBJ_WORK = (AppMain.GMS_GMK_BOBJ_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, () => new AppMain.GMS_GMK_BOBJ_WORK(), "GMK_BREAK_LAND_MAIN"); AppMain.OBS_OBJECT_WORK obs_OBJECT_WORK = (AppMain.OBS_OBJECT_WORK)gms_GMK_BOBJ_WORK; AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)gms_GMK_BOBJ_WORK; AppMain.ObjObjectCopyAction3dNNModel(obs_OBJECT_WORK, AppMain.gm_gmk_breakobj_obj_3d_list[0], gms_ENEMY_3D_WORK.obj_3d); obs_OBJECT_WORK.pos.z = -4096; obs_OBJECT_WORK.move_flag |= 8448U; obs_OBJECT_WORK.disp_flag |= 4194304U; gms_GMK_BOBJ_WORK.zone_type = AppMain.g_gm_gamedat_zone_type_tbl[( int )AppMain.g_gs_main_sys_info.stage_id]; AppMain.gmGmkBreakObjStart(obs_OBJECT_WORK); return(obs_OBJECT_WORK); }
private static AppMain.OBS_OBJECT_WORK GmGmkBreakObjInit( AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { AppMain.GMS_GMK_BOBJ_WORK work = (AppMain.GMS_GMK_BOBJ_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_GMK_BOBJ_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; AppMain.ObjObjectCopyAction3dNNModel(obj_work, AppMain.gm_gmk_breakobj_obj_3d_list[0], gmsEnemy3DWork.obj_3d); obj_work.pos.z = -4096; obj_work.move_flag |= 8448U; obj_work.disp_flag |= 4194304U; work.zone_type = AppMain.g_gm_gamedat_zone_type_tbl[(int)AppMain.g_gs_main_sys_info.stage_id]; AppMain.gmGmkBreakObjStart(obj_work); return(obj_work); }
// Token: 0x060008E5 RID: 2277 RVA: 0x000512EC File Offset: 0x0004F4EC private static void gmGmkBreakObjHit(AppMain.OBS_RECT_WORK mine_rect, AppMain.OBS_RECT_WORK match_rect) { OBS_OBJECT_WORK parent_obj = mine_rect.parent_obj; GMS_PLAYER_WORK gms_PLAYER_WORK = (GMS_PLAYER_WORK)match_rect.parent_obj; if (gms_PLAYER_WORK == AppMain.g_gm_main_system.ply_work[( int )(( UIntPtr )0)]) { AppMain.GMS_GMK_BOBJ_WORK gms_GMK_BOBJ_WORK = (AppMain.GMS_GMK_BOBJ_WORK)parent_obj; AppMain.OBS_RECT_WORK obs_RECT_WORK = gms_GMK_BOBJ_WORK.gmk_work.ene_com.obj_work.rect_work[0]; if (gms_PLAYER_WORK.act_state == 39 || gms_PLAYER_WORK.act_state == 31 || (gms_PLAYER_WORK.player_flag & 262144U) != 0U) { short num3; short num2; short num = num2 = (num3 = 0); ushort vect = 0; if (parent_obj.pos.x >= gms_PLAYER_WORK.obj_work.pos.x) { num2 = ( short )((parent_obj.pos.x >> 12) + ( int )obs_RECT_WORK.rect.left - ( int )match_rect.rect.right); num2 = ( short )((gms_PLAYER_WORK.obj_work.pos.x >> 12) - ( int )num2); gms_GMK_BOBJ_WORK.hitcheck = 1; } else { num = ( 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)); gms_GMK_BOBJ_WORK.hitcheck = 1; vect = 32768; } if (parent_obj.pos.y >= gms_PLAYER_WORK.obj_work.pos.y) { 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); gms_GMK_BOBJ_WORK.hitcheck = 1; } if (obs_RECT_WORK.rect.right > gms_GMK_BOBJ_WORK.breakrect_right) { AppMain.OBS_RECT rect = obs_RECT_WORK.rect; rect.right -= num; if (obs_RECT_WORK.rect.right < gms_GMK_BOBJ_WORK.breakrect_right) { obs_RECT_WORK.rect.right = gms_GMK_BOBJ_WORK.breakrect_right; } } if (obs_RECT_WORK.rect.left < gms_GMK_BOBJ_WORK.breakrect_left) { AppMain.OBS_RECT rect2 = obs_RECT_WORK.rect; rect2.left += num2; if (obs_RECT_WORK.rect.left > gms_GMK_BOBJ_WORK.breakrect_left) { obs_RECT_WORK.rect.left = gms_GMK_BOBJ_WORK.breakrect_left; } } if (obs_RECT_WORK.rect.top < gms_GMK_BOBJ_WORK.breakrect_top) { AppMain.OBS_RECT rect3 = obs_RECT_WORK.rect; rect3.top += num3; if (obs_RECT_WORK.rect.top > gms_GMK_BOBJ_WORK.breakrect_top) { obs_RECT_WORK.rect.top = gms_GMK_BOBJ_WORK.breakrect_top; } } gms_GMK_BOBJ_WORK.hitpass = true; short num4 = (short)(gms_PLAYER_WORK.obj_work.spd.x >> 12); short num5 = (short)(gms_PLAYER_WORK.obj_work.spd.y >> 12); if ((obs_RECT_WORK.rect.right + num4 <= gms_GMK_BOBJ_WORK.breakrect_right || obs_RECT_WORK.rect.left + num4 >= gms_GMK_BOBJ_WORK.breakrect_left) && obs_RECT_WORK.rect.top + num5 >= gms_GMK_BOBJ_WORK.breakrect_top) { ushort efct_zone_idx = AppMain.tbl_gmk_breakobj_effect[gms_GMK_BOBJ_WORK.zone_type]; switch (gms_GMK_BOBJ_WORK.zone_type) { case 0: if (AppMain.g_gs_main_sys_info.stage_id == 2) { efct_zone_idx = 3; } break; case 2: if (AppMain.g_gm_main_system.water_level != 65535 && ( int )AppMain.g_gm_main_system.water_level < (parent_obj.pos.y >> 12) + ( int )gms_GMK_BOBJ_WORK.breakrect_top) { efct_zone_idx = 11; } break; } OBS_OBJECT_WORK obs_OBJECT_WORK = (OBS_OBJECT_WORK)AppMain.GmEfctZoneEsCreate(null, gms_GMK_BOBJ_WORK.zone_type, (int)efct_zone_idx); obs_OBJECT_WORK.pos.x = parent_obj.pos.x; obs_OBJECT_WORK.pos.y = parent_obj.pos.y; obs_OBJECT_WORK.pos.z = parent_obj.pos.z; AppMain.gmGmkBreakObj_CreateParts(parent_obj, gms_GMK_BOBJ_WORK.zone_type, vect); gms_GMK_BOBJ_WORK.gmk_work.ene_com.obj_work.col_work.obj_col.obj = null; AppMain.GmEnemyDefaultDefFunc(mine_rect, match_rect); GmSound.PlaySE("BreakOBJ"); GmPlayer.AddScore(gms_PLAYER_WORK, 100, parent_obj.pos.x, parent_obj.pos.y); } } } }
private static void gmGmkBreakObjHit( 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_BOBJ_WORK gmsGmkBobjWork = (AppMain.GMS_GMK_BOBJ_WORK)parentObj1; AppMain.OBS_RECT_WORK obsRectWork = gmsGmkBobjWork.gmk_work.ene_com.obj_work.rect_work[0]; if (parentObj2.act_state != 39 && parentObj2.act_state != 31 && ((int)parentObj2.player_flag & 262144) == 0) { return; } int num1; short num2 = (short)(num1 = 0); short num3 = (short)num1; short num4 = (short)num1; ushort vect = 0; if (parentObj1.pos.x >= parentObj2.obj_work.pos.x) { short num5 = (short)((parentObj1.pos.x >> 12) + (int)obsRectWork.rect.left - (int)match_rect.rect.right); num4 = (short)((parentObj2.obj_work.pos.x >> 12) - (int)num5); gmsGmkBobjWork.hitcheck = (short)1; } else { num3 = (short)((parentObj1.pos.x >> 12) + (int)obsRectWork.rect.right - (int)match_rect.rect.left - (parentObj2.obj_work.pos.x >> 12)); gmsGmkBobjWork.hitcheck = (short)1; vect = (ushort)32768; } if (parentObj1.pos.y >= parentObj2.obj_work.pos.y) { short num5 = (short)((parentObj1.pos.y >> 12) + (int)obsRectWork.rect.top - (int)match_rect.rect.bottom); num2 = (short)((parentObj2.obj_work.pos.y >> 12) - (int)num5); gmsGmkBobjWork.hitcheck = (short)1; } if ((int)obsRectWork.rect.right > (int)gmsGmkBobjWork.breakrect_right) { obsRectWork.rect.right -= num3; if ((int)obsRectWork.rect.right < (int)gmsGmkBobjWork.breakrect_right) { obsRectWork.rect.right = gmsGmkBobjWork.breakrect_right; } } if ((int)obsRectWork.rect.left < (int)gmsGmkBobjWork.breakrect_left) { obsRectWork.rect.left += num4; if ((int)obsRectWork.rect.left > (int)gmsGmkBobjWork.breakrect_left) { obsRectWork.rect.left = gmsGmkBobjWork.breakrect_left; } } if ((int)obsRectWork.rect.top < (int)gmsGmkBobjWork.breakrect_top) { obsRectWork.rect.top += num2; if ((int)obsRectWork.rect.top > (int)gmsGmkBobjWork.breakrect_top) { obsRectWork.rect.top = gmsGmkBobjWork.breakrect_top; } } gmsGmkBobjWork.hitpass = true; short num6 = (short)(parentObj2.obj_work.spd.x >> 12); short num7 = (short)(parentObj2.obj_work.spd.y >> 12); if ((int)obsRectWork.rect.right + (int)num6 > (int)gmsGmkBobjWork.breakrect_right && (int)obsRectWork.rect.left + (int)num6 < (int)gmsGmkBobjWork.breakrect_left || (int)obsRectWork.rect.top + (int)num7 < (int)gmsGmkBobjWork.breakrect_top) { return; } ushort num8 = AppMain.tbl_gmk_breakobj_effect[gmsGmkBobjWork.zone_type]; switch (gmsGmkBobjWork.zone_type) { case 0: if (AppMain.g_gs_main_sys_info.stage_id == (ushort)2) { num8 = (ushort)3; break; } break; case 2: if (AppMain.g_gm_main_system.water_level != ushort.MaxValue && (int)AppMain.g_gm_main_system.water_level < (parentObj1.pos.y >> 12) + (int)gmsGmkBobjWork.breakrect_top) { num8 = (ushort)11; break; } break; } AppMain.OBS_OBJECT_WORK obsObjectWork = (AppMain.OBS_OBJECT_WORK)AppMain.GmEfctZoneEsCreate((AppMain.OBS_OBJECT_WORK)null, gmsGmkBobjWork.zone_type, (int)num8); obsObjectWork.pos.x = parentObj1.pos.x; obsObjectWork.pos.y = parentObj1.pos.y; obsObjectWork.pos.z = parentObj1.pos.z; AppMain.gmGmkBreakObj_CreateParts(parentObj1, gmsGmkBobjWork.zone_type, vect); gmsGmkBobjWork.gmk_work.ene_com.obj_work.col_work.obj_col.obj = (AppMain.OBS_OBJECT_WORK)null; AppMain.GmEnemyDefaultDefFunc(mine_rect, match_rect); AppMain.GmSoundPlaySE("BreakOBJ"); AppMain.GmPlayerAddScore(parentObj2, 100, parentObj1.pos.x, parentObj1.pos.y); }