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