// 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);
 }
Exemple #4
0
    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);
 }
Exemple #7
0
 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);
 }
Exemple #9
0
    // 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;
            }
        }
    }
Exemple #11
0
 // 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);
 }
Exemple #12
0
    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;
        }
    }
Exemple #13
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;
        }
    }