Beispiel #1
0
 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;
     }
 }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 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);
     }
 }
Beispiel #4
0
 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);
 }
Beispiel #5
0
 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;
     }
 }
Beispiel #6
0
 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);
     }
 }
Beispiel #7
0
 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);
 }
Beispiel #8
0
 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);
 }
Beispiel #9
0
    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);
        }
    }
Beispiel #10
0
 public GMS_BOSS5_SCT_PART_NDC_WORK()
 {
     this.ndc_obj = new AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT((object)this);
 }
Beispiel #11
0
 public GMS_BOSS2_EFFECT_SCATTER_WORK()
 {
     this.control_node_work = new AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT((object)this);
 }