private static void gmBoss2EffScatterInit(AppMain.GMS_BOSS2_BODY_WORK body_work) { AppMain.OBS_OBJECT_WORK parent_obj = AppMain.GMM_BS_OBJ((object)body_work); AppMain.GMS_BOSS2_EFFECT_SCATTER_WORK effectScatterWork = (AppMain.GMS_BOSS2_EFFECT_SCATTER_WORK)null; for (int index = 3; 13 > index; ++index) { AppMain.GMS_BOSS2_EFFECT_SCATTER_WORK controlObjectBySize = (AppMain.GMS_BOSS2_EFFECT_SCATTER_WORK)AppMain.GmBsCmnCreateNodeControlObjectBySize(parent_obj, body_work.cnm_mgr_work, body_work.cnm_reg_id[index], body_work.snm_work, body_work.snm_reg_id[2 + index], (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_BOSS2_EFFECT_SCATTER_WORK())); AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT ndc_obj = (AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT)controlObjectBySize; AppMain.GmBsCmnChangeCNMModeNode(body_work.cnm_mgr_work, body_work.cnm_reg_id[index], 0U); AppMain.GmBsCmnEnableCNMLocalCoordinate(body_work.cnm_mgr_work, body_work.cnm_reg_id[index], 0); AppMain.GmBsCmnAttachNCObjectToSNMNode(ndc_obj); ndc_obj.is_enable = 1; ndc_obj.proc_update = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss2EffScatterMainFunc); AppMain.OBS_OBJECT_WORK objWork1 = ndc_obj.efct_com.obj_work; objWork1.move_flag |= 128U; if (index == 4 || index == 5 || (index == 7 || index == 8)) { AppMain.OBS_OBJECT_WORK objWork2 = effectScatterWork.control_node_work.efct_com.obj_work; objWork1.spd.x = objWork2.spd.x; objWork1.spd.y = objWork2.spd.y; } else { int right_flag = 0; if (index % 2 != 0) { right_flag = 1; } AppMain.gmBoss2EffScatterSetParamMove(objWork1, right_flag); } effectScatterWork = controlObjectBySize; } }
private static void GmBsCmnSetWorldMtxFromNCObjectPosture( AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT ndc_obj) { AppMain.OBS_OBJECT_WORK obsObjectWork = (AppMain.OBS_OBJECT_WORK)ndc_obj; AppMain.nnMakeTranslateMatrix(ndc_obj.w_mtx, AppMain.FX_FX32_TO_F32(obsObjectWork.pos.x), AppMain.FX_FX32_TO_F32(-obsObjectWork.pos.y), AppMain.FX_FX32_TO_F32(obsObjectWork.pos.z)); AppMain.nnQuaternionMatrix(ndc_obj.w_mtx, ndc_obj.w_mtx, ref ndc_obj.user_quat); AppMain.nnTranslateMatrix(ndc_obj.w_mtx, ndc_obj.w_mtx, ndc_obj.user_ofst.x, ndc_obj.user_ofst.y, ndc_obj.user_ofst.z); }
private static void gmBoss1EffScatterInit(AppMain.GMS_BOSS1_CHAIN_WORK chain_work) { for (int index = 0; index < 9; ++index) { AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT controlObjectBySize = AppMain.GmBsCmnCreateNodeControlObjectBySize(AppMain.GMM_BS_OBJ((object)chain_work), chain_work.cnm_mgr_work, chain_work.sct_cnm_reg_ids[index], chain_work.snm_work, chain_work.sct_snm_reg_ids[index], (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_BOSS1_EFF_SCT_PART_NDC_WORK())); AppMain.GMS_BOSS1_EFF_SCT_PART_NDC_WORK sct_part_ndc = (AppMain.GMS_BOSS1_EFF_SCT_PART_NDC_WORK)controlObjectBySize; controlObjectBySize.user_timer = (uint)AppMain.mtMathRand() % 20U; controlObjectBySize.is_enable = 0; AppMain.gmBoss1EffScatterSetPartParam(sct_part_ndc, index == 8); AppMain.GMM_BS_OBJ((object)controlObjectBySize).move_flag |= 4608U; AppMain.nnMakeUnitQuaternion(ref controlObjectBySize.user_quat); controlObjectBySize.proc_update = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss1EffScatterProcWait); } }
private static void gmBsCmnNodeControlObjectMainFunc(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT cmnNodeCtrlObject = (AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT)obj_work; if (cmnNodeCtrlObject.proc_update != null) { cmnNodeCtrlObject.proc_update(obj_work); } else { AppMain.nnMakeUnitMatrix(cmnNodeCtrlObject.w_mtx); } AppMain.GmBsCmnSetCNMMtx(cmnNodeCtrlObject.cnm_mgr_work, cmnNodeCtrlObject.w_mtx, cmnNodeCtrlObject.cnm_reg_id); AppMain.GmBsCmnEnableCNMMtxNode(cmnNodeCtrlObject.cnm_mgr_work, cmnNodeCtrlObject.cnm_reg_id, cmnNodeCtrlObject.is_enable); }
private static void gmBoss1EffScatterProcFly(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT ndc_obj = (AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT)obj_work; AppMain.GMS_BOSS1_EFF_SCT_PART_NDC_WORK effSctPartNdcWork = (AppMain.GMS_BOSS1_EFF_SCT_PART_NDC_WORK)ndc_obj; AppMain.nnMultiplyQuaternion(ref ndc_obj.user_quat, ref effSctPartNdcWork.spin_quat, ref ndc_obj.user_quat); AppMain.GmBsCmnSetWorldMtxFromNCObjectPosture(ndc_obj); if (ndc_obj.user_timer != 0U) { --ndc_obj.user_timer; } else { obj_work.flag |= 4U; } }
private static void gmBoss1EffScatterProcWait(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT ndc_obj = (AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT)obj_work; AppMain.GMS_BOSS1_EFF_SCT_PART_NDC_WORK sct_part_ndc = (AppMain.GMS_BOSS1_EFF_SCT_PART_NDC_WORK)ndc_obj; if (ndc_obj.user_timer != 0U) { --ndc_obj.user_timer; } else { AppMain.GmBsCmnAttachNCObjectToSNMNode(ndc_obj); AppMain.gmBoss1EffScatterSetFlyParam(sct_part_ndc); ndc_obj.is_enable = 1; ndc_obj.user_timer = 180U; ndc_obj.proc_update = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss1EffScatterProcFly); } }
private static void GmBsCmnAttachNCObjectToSNMNode(AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT ndc_obj) { AppMain.OBS_OBJECT_WORK obsObjectWork = (AppMain.OBS_OBJECT_WORK)ndc_obj; AppMain.NNS_VECTOR dst = new AppMain.NNS_VECTOR(); AppMain.NNS_MATRIX nnsMatrix1 = new AppMain.NNS_MATRIX(); AppMain.NNS_MATRIX nnsMatrix2 = new AppMain.NNS_MATRIX(); AppMain.NNS_MATRIX nnsMatrix3 = new AppMain.NNS_MATRIX(); AppMain.nnCopyMatrix(nnsMatrix1, AppMain.GmBsCmnGetSNMMtx(ndc_obj.snm_work, ndc_obj.snm_reg_id)); AppMain.AkMathNormalizeMtx(nnsMatrix2, nnsMatrix1); AppMain.nnMakeRotateMatrixQuaternion(out ndc_obj.user_quat, nnsMatrix2); AppMain.nnTransformVector(dst, nnsMatrix2, ndc_obj.user_ofst); AppMain.nnMakeTranslateMatrix(nnsMatrix3, -dst.x, -dst.y, -dst.z); AppMain.nnMultiplyMatrix(nnsMatrix1, nnsMatrix3, nnsMatrix1); AppMain.GmBsCmnEnableCNMInheritNodeScale(ndc_obj.cnm_mgr_work, ndc_obj.cnm_reg_id, 1); obsObjectWork.pos.x = AppMain.FX_F32_TO_FX32(nnsMatrix1.M03); obsObjectWork.pos.y = AppMain.FX_F32_TO_FX32(-nnsMatrix1.M13); obsObjectWork.pos.z = AppMain.FX_F32_TO_FX32(nnsMatrix1.M23); }
private static AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT GmBsCmnCreateNodeControlObjectBySize( AppMain.OBS_OBJECT_WORK parent_obj, AppMain.GMS_BS_CMN_CNM_MGR_WORK cnm_mgr_work, int cnm_reg_id, AppMain.GMS_BS_CMN_SNM_WORK snm_work, int snm_reg_id, AppMain.TaskWorkFactoryDelegate work_size) { AppMain.OBS_OBJECT_WORK work = AppMain.GMM_EFFECT_CREATE_WORK(work_size, parent_obj, (ushort)0, "bs_cmn_node_ctl_obj"); AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT cmnNodeCtrlObject = (AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT)work; cmnNodeCtrlObject.cnm_mgr_work = cnm_mgr_work; cmnNodeCtrlObject.cnm_reg_id = cnm_reg_id; cmnNodeCtrlObject.snm_work = snm_work; cmnNodeCtrlObject.snm_reg_id = snm_reg_id; cmnNodeCtrlObject.is_enable = 0; AppMain.nnMakeUnitMatrix(cmnNodeCtrlObject.w_mtx); work.disp_flag |= 32U; work.ppOut = (AppMain.MPP_VOID_OBS_OBJECT_WORK)null; work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBsCmnNodeControlObjectMainFunc); return(cmnNodeCtrlObject); }
private static void gmBoss1EffScatterSetPartParam( AppMain.GMS_BOSS1_EFF_SCT_PART_NDC_WORK sct_part_ndc, bool is_ironball) { AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT cmnNodeCtrlObject = (AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT)sct_part_ndc; int ang; if (is_ironball) { sct_part_ndc.is_ironball = true; cmnNodeCtrlObject.user_ofst.y = 32f; ang = AppMain.GMD_BOSS1_EFF_SCT_PART_IBALL_SPIN_SPD_DEG; } else { sct_part_ndc.is_ironball = false; cmnNodeCtrlObject.user_ofst.y = 8f; ang = AppMain.GMD_BOSS1_EFF_SCT_PART_RING_SPIN_SPD_DEG; } AppMain.nnMakeUnitQuaternion(ref sct_part_ndc.spin_quat); for (int index = 0; index < 2; ++index) { AppMain.NNS_VECTOR dst_vec = new AppMain.NNS_VECTOR(); AppMain.NNS_QUATERNION dst = new AppMain.NNS_QUATERNION(); float rand_z = AppMain.MTM_MATH_CLIP((float)((double)AppMain.FX_FX32_TO_F32(AppMain.AkMathRandFx()) * 2.0 - 1.0), -1f, 1f); short rand_angle = AppMain.AKM_DEGtoA16(360f * AppMain.FX_FX32_TO_F32(AppMain.AkMathRandFx())); AppMain.AkMathGetRandomUnitVector(dst_vec, rand_z, rand_angle); AppMain.nnMakeRotateAxisQuaternion(out dst, dst_vec.x, dst_vec.y, dst_vec.z, ang); AppMain.nnMultiplyQuaternion(ref sct_part_ndc.spin_quat, ref dst, ref sct_part_ndc.spin_quat); //AppMain.GlobalPool<AppMain.NNS_VECTOR>.Release(dst_vec); } if (is_ironball) { AppMain.ObjObjectFieldRectSet(AppMain.GMM_BS_OBJ((object)cmnNodeCtrlObject), (short)-24, (short)-24, (short)24, (short)24); } else { AppMain.ObjObjectFieldRectSet(AppMain.GMM_BS_OBJ((object)cmnNodeCtrlObject), (short)-8, (short)-8, (short)8, (short)8); } }
public GMS_BOSS5_SCT_PART_NDC_WORK() { this.ndc_obj = new AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT((object)this); }
public GMS_BOSS2_EFFECT_SCATTER_WORK() { this.control_node_work = new AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT((object)this); }