Example #1
0
 private static AppMain.GMS_EFFECT_3DES_WORK gmBoss1EffShockwaveSubpartInit(
     AppMain.GMS_BOSS1_EFF_SHOCKWAVE_WORK sw_work,
     int ofst_h,
     bool is_left)
 {
     AppMain.MTM_ASSERT(ofst_h >= 0);
     AppMain.OBS_OBJECT_WORK                  work             = AppMain.GMM_EFFECT_CREATE_WORK((AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_BOSS1_EFF_SHOCKWAVE_SUB_WORK()), AppMain.GMM_BS_OBJ((object)sw_work).parent_obj, (ushort)0, "B01_SW_Subpart");
     AppMain.GMS_EFFECT_3DES_WORK             efct_3des        = (AppMain.GMS_EFFECT_3DES_WORK)work;
     AppMain.GMS_BOSS1_EFF_SHOCKWAVE_SUB_WORK shockwaveSubWork = (AppMain.GMS_BOSS1_EFF_SHOCKWAVE_SUB_WORK)efct_3des;
     shockwaveSubWork.mgr_work = sw_work.mgr_work;
     AppMain.gmBoss1MgrIncObjCreateCount(shockwaveSubWork.mgr_work);
     AppMain.ObjObjectAction3dESEffectLoad(AppMain.GMM_BS_OBJ((object)efct_3des), efct_3des.obj_3des, AppMain.ObjDataGet(707), (string)null, 0, (AppMain.AMS_AMB_HEADER)null);
     AppMain.ObjObjectAction3dESTextureLoad(AppMain.GMM_BS_OBJ((object)efct_3des), efct_3des.obj_3des, AppMain.ObjDataGet(709), (string)null, 0, (AppMain.AMS_AMB_HEADER)null, false);
     AppMain.ObjObjectAction3dESTextureSetByDwork(work, AppMain.ObjDataGet(710));
     AppMain.GmEffect3DESSetupBase(efct_3des, 1U, 0U);
     AppMain.GmEffect3DESSetDispRotation(efct_3des, (short)AppMain.GMD_BOSS1_EFF_SHOCKWAVE_SUB_ROT_X, (short)0, (short)0);
     AppMain.GmEffect3DESSetDispOffset(efct_3des, 0.0f, -AppMain.FX_FX32_TO_F32(-16384), AppMain.FX_FX32_TO_F32(-ofst_h));
     work.pos.x = AppMain.GMM_BS_OBJ((object)sw_work).pos.x;
     work.pos.y = AppMain.GMM_BS_OBJ((object)sw_work).pos.y;
     work.pos.z = AppMain.GMM_BS_OBJ((object)sw_work).pos.z;
     if (is_left)
     {
         work.disp_flag &= 4294967294U;
     }
     else
     {
         work.disp_flag |= 1U;
     }
     AppMain.mtTaskChangeTcbDestructor(work.tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmBoss1EffShockwaveSubExit));
     return(efct_3des);
 }
Example #2
0
    private static AppMain.GMS_EFFECT_3DES_WORK gmBoss1EffShockwaveInit(
        AppMain.GMS_BOSS1_CHAIN_WORK chain_work)
    {
        AppMain.OBS_OBJECT_WORK              work      = AppMain.GMM_EFFECT_CREATE_WORK((AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_BOSS1_EFF_SHOCKWAVE_WORK()), AppMain.GMM_BS_OBJ((object)chain_work), (ushort)0, "B01_ShockWave");
        AppMain.GMS_EFFECT_3DES_WORK         efct_3des = (AppMain.GMS_EFFECT_3DES_WORK)work;
        AppMain.GMS_BOSS1_EFF_SHOCKWAVE_WORK sw_work   = (AppMain.GMS_BOSS1_EFF_SHOCKWAVE_WORK)efct_3des;
        sw_work.mgr_work = chain_work.mgr_work;
        AppMain.gmBoss1MgrIncObjCreateCount(sw_work.mgr_work);
        int index = AppMain.GmBsCmnIsFinalZoneType(AppMain.GMM_BS_OBJ((object)chain_work.mgr_work)) == 0 ? 706 : 708;

        AppMain.ObjObjectAction3dESEffectLoad(AppMain.GMM_BS_OBJ((object)efct_3des), efct_3des.obj_3des, AppMain.ObjDataGet(index), (string)null, 0, (AppMain.AMS_AMB_HEADER)null);
        AppMain.ObjObjectAction3dESTextureLoad(AppMain.GMM_BS_OBJ((object)efct_3des), efct_3des.obj_3des, AppMain.ObjDataGet(709), (string)null, 0, (AppMain.AMS_AMB_HEADER)null, false);
        AppMain.ObjObjectAction3dESTextureSetByDwork(work, AppMain.ObjDataGet(710));
        AppMain.GmEffect3DESSetupBase(efct_3des, 1U, 1U);
        AppMain.NNS_MATRIX snmMtx = AppMain.GmBsCmnGetSNMMtx(chain_work.snm_work, chain_work.ball_snm_reg_id);
        AppMain.VEC_Set(ref work.pos, AppMain.FX_F32_TO_FX32(snmMtx.M03), AppMain.GMD_BOSS1_GROUND_POS_Y, 0);
        work.flag &= 4294967293U;
        AppMain.GmEffectRectInit(efct_3des.efct_com, AppMain.gm_boss1_eff_sw_atk_flag_tbl, AppMain.gm_boss1_eff_sw_def_flag_tbl, (byte)1, (byte)1);
        AppMain.ObjRectWorkSet(efct_3des.efct_com.rect_work[1], (short)-64, (short)-32, (short)64, (short)32);
        sw_work.atk_rect_timer = 10U;
        work.ppFunc            = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss1EffShockwaveProcMain);
        AppMain.gmBoss1EffShockwaveSubpartInit(sw_work, 163840, true);
        AppMain.gmBoss1EffShockwaveSubpartInit(sw_work, 163840, false);
        AppMain.mtTaskChangeTcbDestructor(work.tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmBoss1EffShockwaveExit));
        return(efct_3des);
    }
Example #3
0
 private static void gmBoss1EffShockwaveProcMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_BOSS1_EFF_SHOCKWAVE_WORK effShockwaveWork = (AppMain.GMS_BOSS1_EFF_SHOCKWAVE_WORK)obj_work;
     if (effShockwaveWork.atk_rect_timer != 0U)
     {
         --effShockwaveWork.atk_rect_timer;
     }
     else
     {
         obj_work.flag |= 2U;
     }
     if (((int)obj_work.disp_flag & 8) == 0)
     {
         return;
     }
     obj_work.flag |= 4U;
 }