Example #1
0
    private static int GmBsCmnRegisterSNMNode(AppMain.GMS_BS_CMN_SNM_WORK snm_work, int node_index)
    {
        snm_work.node_info_list[(int)snm_work.reg_node_cnt].node_index = node_index;
        int regNodeCnt = (int)snm_work.reg_node_cnt;

        ++snm_work.reg_node_cnt;
        return(regNodeCnt);
    }
Example #2
0
 private static void GmBsCmnUpdateObject3DESStuckWithNode(
     AppMain.OBS_OBJECT_WORK obj_work,
     AppMain.GMS_BS_CMN_SNM_WORK snm_work,
     int snm_reg_id,
     int b_rotation)
 {
     AppMain.GmBsCmnUpdateObject3DESStuckWithNode(obj_work, snm_work, snm_reg_id, b_rotation, (AppMain.NNS_MATRIX)null);
 }
Example #3
0
 private static void GmBsCmnUpdateObjectGeneralStuckWithNodeRelative(
     AppMain.OBS_OBJECT_WORK obj_work,
     AppMain.GMS_BS_CMN_SNM_WORK snm_work,
     int snm_reg_id,
     AppMain.VecFx32 pivot_cur_pos,
     AppMain.VecFx32 pivot_prev_pos)
 {
     AppMain.GmBsCmnUpdateObjectGeneralStuckWithNodeRelative(obj_work, snm_work, snm_reg_id, pivot_cur_pos, pivot_prev_pos, (AppMain.NNS_MATRIX)null);
 }
Example #4
0
 private static void GmBsCmnUpdateObjectGeneralStuckWithNodeRelative(
     AppMain.OBS_OBJECT_WORK obj_work,
     AppMain.GMS_BS_CMN_SNM_WORK snm_work,
     int snm_reg_id,
     AppMain.VecFx32 pivot_cur_pos,
     AppMain.VecFx32 pivot_prev_pos,
     AppMain.NNS_MATRIX ofst_mtx)
 {
     AppMain.GmBsCmnUpdateObjectGeneralStuckWithNode(obj_work, snm_work, snm_reg_id, ofst_mtx);
     AppMain.VEC_Set(ref obj_work.pos, obj_work.pos.x - pivot_prev_pos.x + pivot_cur_pos.x, obj_work.pos.y - pivot_prev_pos.y + pivot_cur_pos.y, obj_work.pos.z - pivot_prev_pos.z + pivot_cur_pos.z);
 }
Example #5
0
 private static void GmBsCmnDeleteSNMWork(AppMain.GMS_BS_CMN_SNM_WORK snm_work)
 {
     AppMain.gmBsCmnClearBossMotionCBLink(snm_work.bmcb_link);
     snm_work.reg_node_cnt = (ushort)0;
     snm_work.reg_node_max = (ushort)0;
     if (snm_work.node_info_list == null)
     {
         return;
     }
     snm_work.node_info_list = (AppMain.GMS_BS_CMN_SNM_NODE_INFO[])null;
 }
Example #6
0
 private static void GmBsCmnCreateSNMWork(
     AppMain.GMS_BS_CMN_SNM_WORK snm_work,
     AppMain.NNS_OBJECT _object,
     ushort reg_max)
 {
     AppMain.UNREFERENCED_PARAMETER((object)_object);
     AppMain.gmBsCmnInitBossMotionCBLink(snm_work.bmcb_link, new AppMain.MPP_VOID_MOTION_NSSOBJECT_OBJECT(AppMain.gmBsCmnMotionCallbackStoreNodeMatrix), (object)snm_work);
     snm_work.reg_node_cnt   = (ushort)0;
     snm_work.reg_node_max   = reg_max;
     snm_work.node_info_list = AppMain.New <AppMain.GMS_BS_CMN_SNM_NODE_INFO>((int)reg_max);
 }
Example #7
0
 private static void GmBsCmnUpdateObjectGeneralStuckWithNode(
     AppMain.OBS_OBJECT_WORK obj_work,
     AppMain.GMS_BS_CMN_SNM_WORK snm_work,
     int snm_reg_id,
     AppMain.NNS_MATRIX ofst_mtx)
 {
     AppMain.NNS_MATRIX snmMtx = AppMain.GmBsCmnGetSNMMtx(snm_work, snm_reg_id);
     obj_work.pos.x = AppMain.FX_F32_TO_FX32(snmMtx.M03);
     obj_work.pos.y = -AppMain.FX_F32_TO_FX32(snmMtx.M13);
     obj_work.pos.z = AppMain.FX_F32_TO_FX32(snmMtx.M23);
     if (ofst_mtx == null)
     {
         return;
     }
     AppMain.VEC_Set(ref obj_work.pos, obj_work.pos.x + AppMain.FX_F32_TO_FX32(ofst_mtx.M03), obj_work.pos.y - AppMain.FX_F32_TO_FX32(ofst_mtx.M13), obj_work.pos.z + AppMain.FX_F32_TO_FX32(ofst_mtx.M23));
 }
Example #8
0
 private static void gmBsCmnMotionCallbackStoreNodeMatrix(
     AppMain.AMS_MOTION motion,
     AppMain.NNS_OBJECT _object,
     object mtn_cb_param)
 {
     AppMain.GMS_BS_CMN_SNM_WORK gmsBsCmnSnmWork   = (AppMain.GMS_BS_CMN_SNM_WORK)mtn_cb_param;
     AppMain.NNS_MATRIX          nodeMatrixBaseMtx = AppMain.gmBsCmnMotionCallbackStoreNodeMatrix_base_mtx;
     AppMain.nnMakeUnitMatrix(nodeMatrixBaseMtx);
     AppMain.nnMultiplyMatrix(nodeMatrixBaseMtx, nodeMatrixBaseMtx, AppMain.amMatrixGetCurrent());
     for (int index = 0; index < (int)gmsBsCmnSnmWork.reg_node_cnt; ++index)
     {
         int nodeIndex = gmsBsCmnSnmWork.node_info_list[index].node_index;
         AppMain.NNS_MATRIX nodeMatrixNodeMtx = AppMain.gmBsCmnMotionCallbackStoreNodeMatrix_node_mtx;
         AppMain.nnCalcNodeMatrixTRSList(nodeMatrixNodeMtx, _object, nodeIndex, (AppMain.ArrayPointer <AppMain.NNS_TRS>)motion.data, nodeMatrixBaseMtx);
         gmsBsCmnSnmWork.node_info_list[index].node_w_mtx.Assign(nodeMatrixNodeMtx);
     }
 }
Example #9
0
 private static void GmBsCmnUpdateObject3DESStuckWithNode(
     AppMain.OBS_OBJECT_WORK obj_work,
     AppMain.GMS_BS_CMN_SNM_WORK snm_work,
     int snm_reg_id,
     int b_rotation,
     AppMain.NNS_MATRIX ofst_mtx)
 {
     AppMain.NNS_MATRIX     stuckWithNodeNmlWMtx = AppMain.GmBsCmnUpdateObject3DESStuckWithNode_nml_w_mtx;
     AppMain.NNS_QUATERNION dst1   = obj_work.obj_3des.user_dir_quat;
     AppMain.NNS_MATRIX     snmMtx = AppMain.GmBsCmnGetSNMMtx(snm_work, snm_reg_id);
     obj_work.pos.x = AppMain.FX_F32_TO_FX32(snmMtx.M03);
     obj_work.pos.y = -AppMain.FX_F32_TO_FX32(snmMtx.M13);
     obj_work.pos.z = AppMain.FX_F32_TO_FX32(snmMtx.M23);
     if (b_rotation != 0)
     {
         obj_work.obj_3des.flag |= 32U;
         AppMain.AkMathNormalizeMtx(stuckWithNodeNmlWMtx, snmMtx);
         AppMain.nnMakeRotateMatrixQuaternion(out dst1, stuckWithNodeNmlWMtx);
     }
     else
     {
         obj_work.obj_3des.flag &= 4294967263U;
         AppMain.nnMakeUnitQuaternion(ref dst1);
         AppMain.nnMakeUnitMatrix(stuckWithNodeNmlWMtx);
     }
     if (ofst_mtx != null)
     {
         AppMain.NNS_MATRIX     stuckWithNodeRotMtx = AppMain.GmBsCmnUpdateObject3DESStuckWithNode_rot_mtx;
         AppMain.NNS_QUATERNION dst2             = new AppMain.NNS_QUATERNION();
         AppMain.NNS_VECTOR     dst3             = new AppMain.NNS_VECTOR();
         AppMain.NNS_MATRIX     withNodeNodeWRot = AppMain.GmBsCmnUpdateObject3DESStuckWithNode_node_w_rot;
         AppMain.nnCopyMatrix(withNodeNodeWRot, snmMtx);
         withNodeNodeWRot.M03 = withNodeNodeWRot.M13 = withNodeNodeWRot.M23 = 0.0f;
         AppMain.nnMultiplyMatrix(withNodeNodeWRot, withNodeNodeWRot, ofst_mtx);
         AppMain.nnCopyMatrixTranslationVector(dst3, withNodeNodeWRot);
         AppMain.VEC_Set(ref obj_work.pos, obj_work.pos.x + AppMain.FX_F32_TO_FX32(dst3.x), obj_work.pos.y - AppMain.FX_F32_TO_FX32(dst3.y), obj_work.pos.z + AppMain.FX_F32_TO_FX32(dst3.z));
         AppMain.AkMathNormalizeMtx(stuckWithNodeRotMtx, ofst_mtx);
         AppMain.nnMakeRotateMatrixQuaternion(out dst2, stuckWithNodeRotMtx);
         obj_work.obj_3des.flag |= 32U;
         AppMain.nnMultiplyQuaternion(ref dst1, ref dst1, ref dst2);
     }
     obj_work.obj_3des.user_dir_quat.Assign(dst1);
 }
Example #10
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);
 }
Example #11
0
 private static void GmBsCmnUpdateObject3DNNStuckWithNode(
     AppMain.OBS_OBJECT_WORK obj_work,
     AppMain.GMS_BS_CMN_SNM_WORK snm_work,
     int snm_reg_id,
     int b_rotation,
     AppMain.NNS_MATRIX ofst_mtx)
 {
     AppMain.NNS_MATRIX userObjMtxR = obj_work.obj_3d.user_obj_mtx_r;
     AppMain.NNS_MATRIX snmMtx      = AppMain.GmBsCmnGetSNMMtx(snm_work, snm_reg_id);
     obj_work.pos.x = AppMain.FX_F32_TO_FX32(snmMtx.M03);
     obj_work.pos.y = -AppMain.FX_F32_TO_FX32(snmMtx.M13);
     obj_work.pos.z = AppMain.FX_F32_TO_FX32(snmMtx.M23);
     if (b_rotation != 0)
     {
         obj_work.disp_flag |= 16777216U;
         AppMain.AkMathNormalizeMtx(userObjMtxR, snmMtx);
     }
     else
     {
         obj_work.disp_flag &= 4278190079U;
         AppMain.nnMakeUnitMatrix(userObjMtxR);
     }
     if (ofst_mtx == null)
     {
         return;
     }
     AppMain.NNS_MATRIX stuckWithNodeRotMtx = AppMain.GmBsCmnUpdateObject3DNNStuckWithNode_rot_mtx;
     AppMain.NNS_VECTOR dst = new AppMain.NNS_VECTOR();
     AppMain.NNS_MATRIX withNodeNodeWRot = AppMain.GmBsCmnUpdateObject3DNNStuckWithNode_node_w_rot;
     AppMain.nnCopyMatrix(withNodeNodeWRot, snmMtx);
     withNodeNodeWRot.M03 = withNodeNodeWRot.M13 = withNodeNodeWRot.M23 = 0.0f;
     AppMain.nnMultiplyMatrix(withNodeNodeWRot, withNodeNodeWRot, ofst_mtx);
     AppMain.nnCopyMatrixTranslationVector(dst, withNodeNodeWRot);
     AppMain.VEC_Set(ref obj_work.pos, obj_work.pos.x + AppMain.FX_F32_TO_FX32(dst.x), obj_work.pos.y - AppMain.FX_F32_TO_FX32(dst.y), obj_work.pos.z + AppMain.FX_F32_TO_FX32(dst.z));
     AppMain.nnCopyMatrix(stuckWithNodeRotMtx, ofst_mtx);
     stuckWithNodeRotMtx.M03 = stuckWithNodeRotMtx.M13 = stuckWithNodeRotMtx.M23 = 0.0f;
     obj_work.disp_flag     |= 16777216U;
     AppMain.nnMultiplyMatrix(userObjMtxR, userObjMtxR, stuckWithNodeRotMtx);
 }
Example #12
0
 private static AppMain.NNS_MATRIX GmBsCmnGetSNMMtx(
     AppMain.GMS_BS_CMN_SNM_WORK snm_work,
     int snm_reg_id)
 {
     return(snm_work.node_info_list[snm_reg_id].node_w_mtx);
 }