コード例 #1
0
    // Token: 0x06001A3A RID: 6714 RVA: 0x000EAE04 File Offset: 0x000E9004
    private void amMotionDraw(uint state, AppMain.AMS_MOTION motion, AppMain.NNS_TEXLIST texlist, uint drawflag, AppMain.NNS_MATERIALCALLBACK_FUNC func)
    {
        int node_num = motion.node_num;

        AppMain.AMS_PARAM_DRAW_MOTION_TRS ams_PARAM_DRAW_MOTION_TRS = AppMain.amDrawAlloc_AMS_PARAM_DRAW_MOTION_TRS();
        AppMain.NNS_MATRIX nns_MATRIX = ams_PARAM_DRAW_MOTION_TRS.mtx = AppMain.amDrawAlloc_NNS_MATRIX();
        AppMain.nnCopyMatrix(nns_MATRIX, AppMain.amMatrixGetCurrent());
        ams_PARAM_DRAW_MOTION_TRS._object       = motion._object;
        ams_PARAM_DRAW_MOTION_TRS.mtx           = nns_MATRIX;
        ams_PARAM_DRAW_MOTION_TRS.sub_obj_type  = 0U;
        ams_PARAM_DRAW_MOTION_TRS.flag          = drawflag;
        ams_PARAM_DRAW_MOTION_TRS.texlist       = texlist;
        ams_PARAM_DRAW_MOTION_TRS.trslist       = new AppMain.NNS_TRS[node_num];
        ams_PARAM_DRAW_MOTION_TRS.material_func = func;
        for (int i = 0; i < node_num; i++)
        {
            ams_PARAM_DRAW_MOTION_TRS.trslist[i] = AppMain.amDrawAlloc_NNS_TRS();
            ams_PARAM_DRAW_MOTION_TRS.trslist[i].Assign(motion.data[i]);
        }
        int motion_id = motion.mbuf[0].motion_id;

        ams_PARAM_DRAW_MOTION_TRS.motion = motion.mtnfile[motion_id >> 16].motion[motion_id & 65535];
        ams_PARAM_DRAW_MOTION_TRS.frame  = motion.mbuf[0].frame;
        AppMain.amDrawRegistCommand(state, -11, ams_PARAM_DRAW_MOTION_TRS);
    }
コード例 #2
0
 // Token: 0x06000954 RID: 2388 RVA: 0x000541B8 File Offset: 0x000523B8
 private static void gmEneKamaHandWaitMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_KAMA_WORK gms_ENE_KAMA_WORK  = (AppMain.GMS_ENE_KAMA_WORK)obj_work;
     AppMain.GMS_ENE_KAMA_WORK gms_ENE_KAMA_WORK2 = (AppMain.GMS_ENE_KAMA_WORK)obj_work.parent_obj;
     AppMain.NNS_MATRIX        nns_MATRIX         = AppMain.gmEneKamaHandWaitMain_msm;
     if (obj_work.parent_obj == null)
     {
         obj_work.spd.x      = 0;
         obj_work.spd_fall   = AppMain.FX_F32_TO_FX32(0.2f);
         obj_work.move_flag |= 128U;
         return;
     }
     AppMain.NNS_MATRIX nns_MATRIX2;
     if (gms_ENE_KAMA_WORK.hand == 1)
     {
         nns_MATRIX2 = AppMain.GmEneUtilGetNodeMatrix(gms_ENE_KAMA_WORK2.node_work, 9);
     }
     else
     {
         nns_MATRIX2 = AppMain.GmEneUtilGetNodeMatrix(gms_ENE_KAMA_WORK2.node_work, 6);
     }
     if (nns_MATRIX2.M03 == 0f && nns_MATRIX2.M13 == 0f)
     {
         return;
     }
     AppMain.nnMakeScaleMatrix(nns_MATRIX, 1f, 1f, 1f);
     AppMain.nnMultiplyMatrix(nns_MATRIX, nns_MATRIX2, nns_MATRIX);
     AppMain.GmEneUtilSetMatrixNN(obj_work, nns_MATRIX);
     if (gms_ENE_KAMA_WORK2.attack != 0)
     {
         obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneKamaHandAttackInit);
     }
 }
コード例 #3
0
    private void amMotionDraw(
        uint state,
        AppMain.AMS_MOTION motion,
        AppMain.NNS_TEXLIST texlist,
        uint drawflag,
        AppMain.NNS_MATERIALCALLBACK_FUNC func)
    {
        int nodeNum = motion.node_num;

        AppMain.AMS_PARAM_DRAW_MOTION_TRS paramDrawMotionTrs = AppMain.amDrawAlloc_AMS_PARAM_DRAW_MOTION_TRS();
        AppMain.NNS_MATRIX dst = paramDrawMotionTrs.mtx = AppMain.amDrawAlloc_NNS_MATRIX();
        AppMain.nnCopyMatrix(dst, AppMain.amMatrixGetCurrent());
        paramDrawMotionTrs._object       = motion._object;
        paramDrawMotionTrs.mtx           = dst;
        paramDrawMotionTrs.sub_obj_type  = 0U;
        paramDrawMotionTrs.flag          = drawflag;
        paramDrawMotionTrs.texlist       = texlist;
        paramDrawMotionTrs.trslist       = new AppMain.NNS_TRS[nodeNum];
        paramDrawMotionTrs.material_func = func;
        for (int index = 0; index < nodeNum; ++index)
        {
            paramDrawMotionTrs.trslist[index] = AppMain.amDrawAlloc_NNS_TRS();
            paramDrawMotionTrs.trslist[index].Assign(motion.data[index]);
        }
        int motionId = motion.mbuf[0].motion_id;

        paramDrawMotionTrs.motion = motion.mtnfile[motionId >> 16].motion[motionId & (int)ushort.MaxValue];
        paramDrawMotionTrs.frame  = motion.mbuf[0].frame;
        AppMain.amDrawRegistCommand(state, -11, (object)paramDrawMotionTrs);
    }
コード例 #4
0
ファイル: GmEneKama.cs プロジェクト: uwx/Sonic4Episode1
 private static void gmEneKamaHandWaitMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_KAMA_WORK gmsEneKamaWork      = (AppMain.GMS_ENE_KAMA_WORK)obj_work;
     AppMain.GMS_ENE_KAMA_WORK parentObj           = (AppMain.GMS_ENE_KAMA_WORK)obj_work.parent_obj;
     AppMain.NNS_MATRIX        kamaHandWaitMainMsm = AppMain.gmEneKamaHandWaitMain_msm;
     if (obj_work.parent_obj == null)
     {
         obj_work.spd.x      = 0;
         obj_work.spd_fall   = AppMain.FX_F32_TO_FX32(0.2f);
         obj_work.move_flag |= 128U;
     }
     else
     {
         AppMain.NNS_MATRIX mtx1 = gmsEneKamaWork.hand != 1 ? AppMain.GmEneUtilGetNodeMatrix(parentObj.node_work, 6) : AppMain.GmEneUtilGetNodeMatrix(parentObj.node_work, 9);
         if ((double)mtx1.M03 == 0.0 && (double)mtx1.M13 == 0.0)
         {
             return;
         }
         AppMain.nnMakeScaleMatrix(kamaHandWaitMainMsm, 1f, 1f, 1f);
         AppMain.nnMultiplyMatrix(kamaHandWaitMainMsm, mtx1, kamaHandWaitMainMsm);
         AppMain.GmEneUtilSetMatrixNN(obj_work, kamaHandWaitMainMsm);
         if (parentObj.attack == 0)
         {
             return;
         }
         obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneKamaHandAttackInit);
     }
 }
コード例 #5
0
ファイル: AkMath.cs プロジェクト: uwx/Sonic4Episode1
    public static void AkMathNormalizeMtx(AppMain.NNS_MATRIX dst_mtx, AppMain.NNS_MATRIX src_mtx)
    {
        AppMain.NNS_VECTOR nnsVector1 = new AppMain.NNS_VECTOR();
        AppMain.NNS_VECTOR nnsVector2 = new AppMain.NNS_VECTOR();
        AppMain.NNS_VECTOR nnsVector3 = new AppMain.NNS_VECTOR();
        AppMain.amVectorSet(nnsVector1, src_mtx.M00, src_mtx.M01, src_mtx.M02);
        AppMain.amVectorSet(nnsVector2, src_mtx.M10, src_mtx.M11, src_mtx.M12);
        AppMain.amVectorSet(nnsVector3, src_mtx.M20, src_mtx.M21, src_mtx.M22);
        AppMain.nnMakeUnitMatrix(dst_mtx);
        float num1 = 1f / AppMain.nnLengthVector(nnsVector1);

        dst_mtx.M00 = nnsVector1.x * num1;
        dst_mtx.M01 = nnsVector1.y * num1;
        dst_mtx.M02 = nnsVector1.z * num1;
        float num2 = 1f / AppMain.nnLengthVector(nnsVector2);

        dst_mtx.M10 = nnsVector2.x * num2;
        dst_mtx.M11 = nnsVector2.y * num2;
        dst_mtx.M12 = nnsVector2.z * num2;
        float num3 = 1f / AppMain.nnLengthVector(nnsVector3);

        dst_mtx.M20 = nnsVector3.x * num3;
        dst_mtx.M21 = nnsVector3.y * num3;
        dst_mtx.M22 = nnsVector3.z * num3;
        //AppMain.GlobalPool<AppMain.NNS_VECTOR>.Release(nnsVector1);
        //AppMain.GlobalPool<AppMain.NNS_VECTOR>.Release(nnsVector2);
        //AppMain.GlobalPool<AppMain.NNS_VECTOR>.Release(nnsVector3);
    }
コード例 #6
0
 // Token: 0x06000F62 RID: 3938 RVA: 0x000881EC File Offset: 0x000863EC
 public static void amQuatMultiMatrix(ref AppMain.NNS_QUATERNION pQuat, ref AppMain.SNNS_VECTOR pVec)
 {
     AppMain.NNS_MATRIX nns_MATRIX = AppMain.amMatrixGetCurrent();
     AppMain.nnMakeQuaternionMatrix(out AppMain.tempSNNS_MATRIX0, ref pQuat);
     AppMain.nnCopyVectorMatrixTranslation(ref AppMain.tempSNNS_MATRIX0, ref pVec);
     AppMain.nnMultiplyMatrix(nns_MATRIX, nns_MATRIX, ref AppMain.tempSNNS_MATRIX0);
 }
コード例 #7
0
    // Token: 0x06000707 RID: 1799 RVA: 0x0003E9C4 File Offset: 0x0003CBC4
    private static void GmBoss4UtilRotateVecFx32(ref AppMain.VecFx32 f, int angle)
    {
        AppMain.NNS_MATRIX nns_MATRIX = AppMain.GlobalPool <AppMain.NNS_MATRIX> .Alloc();

        nns_MATRIX.M00 = 1f;
        nns_MATRIX.M10 = 0f;
        nns_MATRIX.M20 = 0f;
        nns_MATRIX.M30 = 0f;
        nns_MATRIX.M01 = 0f;
        nns_MATRIX.M11 = 1f;
        nns_MATRIX.M21 = 0f;
        nns_MATRIX.M31 = 0f;
        nns_MATRIX.M02 = 0f;
        nns_MATRIX.M12 = 0f;
        nns_MATRIX.M22 = 1f;
        nns_MATRIX.M32 = 0f;
        nns_MATRIX.M03 = 0f;
        nns_MATRIX.M13 = 0f;
        nns_MATRIX.M23 = 0f;
        nns_MATRIX.M33 = 1f;
        AppMain.nnMakeRotateZMatrix(nns_MATRIX, angle);
        AppMain.nnTranslateMatrix(nns_MATRIX, nns_MATRIX, AppMain.FX_FX32_TO_F32(f.x), AppMain.FX_FX32_TO_F32(f.y), AppMain.FX_FX32_TO_F32(f.z));
        f.x = AppMain.FX_F32_TO_FX32(nns_MATRIX.M03);
        f.y = AppMain.FX_F32_TO_FX32(nns_MATRIX.M13);
        f.z = AppMain.FX_F32_TO_FX32(nns_MATRIX.M23);
        AppMain.GlobalPool <AppMain.NNS_MATRIX> .Release(nns_MATRIX);
    }
コード例 #8
0
ファイル: AmIPhone.cs プロジェクト: uwx/Sonic4Episode1
    public void amIPhoneInitNN(PresentationParameters presParams)
    {
        OpenGL.init(AppMain.m_game, AppMain.m_graphicsDevice);
        OpenGL.glViewport(0, 0, presParams.BackBufferWidth, presParams.BackBufferHeight);
        int num1 = 480;
        int num2 = 320;

        AppMain.amRenderInit();
        AppMain.NNS_MATRIX mtx = AppMain.GlobalPool <AppMain.NNS_MATRIX> .Alloc();

        AppMain.NNS_VECTOR    nnsVector = new AppMain.NNS_VECTOR(0.0f, 0.0f, -1f);
        AppMain.NNS_RGBA      nnsRgba   = new AppMain.NNS_RGBA(1f, 1f, 1f, 1f);
        AppMain.NNS_CONFIG_GL config;
        config.WindowWidth  = num1;
        config.WindowHeight = num2;
        this.nnConfigureSystemGL(config);
        AppMain.nnMakePerspectiveMatrix(mtx, AppMain.NNM_DEGtoA32(45f), (float)num2 / (float)num1, 1f, 10000f);
        AppMain._am_draw_video.draw_aspect = (float)num2 / (float)num1;
        AppMain.nnSetProjection(mtx, 0);
        AppMain._am_draw_video.draw_width   = (float)num1;
        AppMain._am_draw_video.draw_height  = (float)num2;
        AppMain._am_draw_video.disp_width   = (float)num1;
        AppMain._am_draw_video.disp_height  = (float)num2;
        AppMain._am_draw_video.width_2d     = (float)num1;
        AppMain._am_draw_video.height_2d    = (float)num2;
        AppMain._am_draw_video.scale_x_2d   = 1f;
        AppMain._am_draw_video.scale_y_2d   = 1f;
        AppMain._am_draw_video.base_x_2d    = 0.0f;
        AppMain._am_draw_video.base_y_2d    = 0.0f;
        AppMain._am_draw_video.wide_screen  = true;
        AppMain._am_draw_video.refresh_rate = 60f;
        AppMain.amRenderInit();
        AppMain.GlobalPool <AppMain.NNS_MATRIX> .Release(mtx);
    }
コード例 #9
0
ファイル: GmBoss4Effect.cs プロジェクト: uwx/Sonic4Episode1
    private static void gmBoss4EffAfterburnerExProcMainR(AppMain.OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_BOSS4_BODY_WORK parentObj = (AppMain.GMS_BOSS4_BODY_WORK)obj_work.parent_obj;
        AppMain.MTM_ASSERT((int)parentObj.node_work.snm_work.reg_node_max);
        if (((int)obj_work.disp_flag & 8) != 0)
        {
            obj_work.flag |= 4U;
        }
        if (((int)parentObj.flag[0] & 256) == 0)
        {
            AppMain.ObjDrawKillAction3DES(obj_work);
        }
        AppMain.NNS_MATRIX nodeMatrix1 = AppMain.GmBoss4UtilGetNodeMatrix(parentObj.node_work, 8);
        AppMain.NNS_MATRIX nodeMatrix2 = AppMain.GmBoss4UtilGetNodeMatrix(parentObj.node_work, 2);
        AppMain.NNS_MATRIX nnsMatrix   = AppMain.GlobalPool <AppMain.NNS_MATRIX> .Alloc();

        AppMain.nnCopyMatrix(nnsMatrix, nodeMatrix1);
        nnsMatrix.M03 = (float)((double)nodeMatrix1.M03 - (double)nodeMatrix2.M03 + (double)parentObj.ene_3d.ene_com.obj_work.pos.x / 4096.0);
        AppMain.GmBoss4UtilSetMatrixES(obj_work, nnsMatrix);
        obj_work.disp_flag &= 4294963199U;
        if (((int)AppMain.g_obj.flag & 1) != 0)
        {
            obj_work.disp_flag |= 4096U;
        }
        AppMain.GlobalPool <AppMain.NNS_MATRIX> .Release(nnsMatrix);
    }
コード例 #10
0
    // Token: 0x060013B0 RID: 5040 RVA: 0x000AE978 File Offset: 0x000ACB78
    public static void AkMathNormalizeMtx(AppMain.NNS_MATRIX dst_mtx, AppMain.NNS_MATRIX src_mtx)
    {
        AppMain.NNS_VECTOR nns_VECTOR = AppMain.GlobalPool <AppMain.NNS_VECTOR> .Alloc();

        AppMain.NNS_VECTOR nns_VECTOR2 = AppMain.GlobalPool <AppMain.NNS_VECTOR> .Alloc();

        AppMain.NNS_VECTOR nns_VECTOR3 = AppMain.GlobalPool <AppMain.NNS_VECTOR> .Alloc();

        AppMain.amVectorSet(nns_VECTOR, src_mtx.M00, src_mtx.M01, src_mtx.M02);
        AppMain.amVectorSet(nns_VECTOR2, src_mtx.M10, src_mtx.M11, src_mtx.M12);
        AppMain.amVectorSet(nns_VECTOR3, src_mtx.M20, src_mtx.M21, src_mtx.M22);
        AppMain.nnMakeUnitMatrix(dst_mtx);
        float num = 1f / AppMain.nnLengthVector(nns_VECTOR);

        dst_mtx.M00 = nns_VECTOR.x * num;
        dst_mtx.M01 = nns_VECTOR.y * num;
        dst_mtx.M02 = nns_VECTOR.z * num;
        num         = 1f / AppMain.nnLengthVector(nns_VECTOR2);
        dst_mtx.M10 = nns_VECTOR2.x * num;
        dst_mtx.M11 = nns_VECTOR2.y * num;
        dst_mtx.M12 = nns_VECTOR2.z * num;
        num         = 1f / AppMain.nnLengthVector(nns_VECTOR3);
        dst_mtx.M20 = nns_VECTOR3.x * num;
        dst_mtx.M21 = nns_VECTOR3.y * num;
        dst_mtx.M22 = nns_VECTOR3.z * num;
        AppMain.GlobalPool <AppMain.NNS_VECTOR> .Release(nns_VECTOR);

        AppMain.GlobalPool <AppMain.NNS_VECTOR> .Release(nns_VECTOR2);

        AppMain.GlobalPool <AppMain.NNS_VECTOR> .Release(nns_VECTOR3);
    }
コード例 #11
0
 private static void GmBsCmnSetCNMMtx(
     AppMain.GMS_BS_CMN_CNM_MGR_WORK cnm_mgr_work,
     AppMain.NNS_MATRIX w_mtx,
     int cnm_reg_id)
 {
     AppMain.GmBsCmnSetCNMMtx(cnm_mgr_work, w_mtx, cnm_reg_id, 0);
 }
コード例 #12
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);
    }
コード例 #13
0
    // Token: 0x06001543 RID: 5443 RVA: 0x000B90C8 File Offset: 0x000B72C8
    public void amIPhoneInitNN()
    {
        OpenGL.init(AppMain.m_game, AppMain.m_graphicsDevice);
        OpenGL.glViewport(0, 0, 480, 288);
        int num  = 480;
        int num2 = 320;

        AppMain.amRenderInit();
        AppMain.NNS_MATRIX nns_MATRIX = AppMain.GlobalPool <AppMain.NNS_MATRIX> .Alloc();

        new AppMain.NNS_VECTOR(0f, 0f, -1f);
        new AppMain.NNS_RGBA(1f, 1f, 1f, 1f);
        AppMain.NNS_CONFIG_GL config;
        config.WindowWidth  = num;
        config.WindowHeight = num2;
        this.nnConfigureSystemGL(config);
        AppMain.nnMakePerspectiveMatrix(nns_MATRIX, AppMain.NNM_DEGtoA32(45f), ( float )num2 / ( float )num, 1f, 10000f);
        AppMain._am_draw_video.draw_aspect = ( float )num2 / ( float )num;
        AppMain.nnSetProjection(nns_MATRIX, 0);
        AppMain._am_draw_video.draw_width   = ( float )num;
        AppMain._am_draw_video.draw_height  = ( float )num2;
        AppMain._am_draw_video.disp_width   = ( float )num;
        AppMain._am_draw_video.disp_height  = ( float )num2;
        AppMain._am_draw_video.width_2d     = ( float )num;
        AppMain._am_draw_video.height_2d    = ( float )num2;
        AppMain._am_draw_video.scale_x_2d   = 1f;
        AppMain._am_draw_video.scale_y_2d   = 1f;
        AppMain._am_draw_video.base_x_2d    = 0f;
        AppMain._am_draw_video.base_y_2d    = 0f;
        AppMain._am_draw_video.wide_screen  = true;
        AppMain._am_draw_video.refresh_rate = 60f;
        AppMain.amRenderInit();
        AppMain.GlobalPool <AppMain.NNS_MATRIX> .Release(nns_MATRIX);
    }
コード例 #14
0
ファイル: GmEneHaro.cs プロジェクト: uwx/Sonic4Episode1
 public static void gmEneEffectMainFuncHarogen(AppMain.OBS_OBJECT_WORK obj_work)
 {
     if (obj_work.parent_obj != null)
     {
         AppMain.GMS_ENE_HARO_WORK parentObj  = (AppMain.GMS_ENE_HARO_WORK)obj_work.parent_obj;
         AppMain.NNS_MATRIX        nodeMatrix = AppMain.GmEneUtilGetNodeMatrix(parentObj.node_work, 2);
         if (nodeMatrix != null)
         {
             float num1 = nodeMatrix.M03 - AppMain.FX_FX32_TO_F32(parentObj.ene_3d_work.ene_com.obj_work.pos.x);
             float num2 = nodeMatrix.M13 + AppMain.FX_FX32_TO_F32(parentObj.ene_3d_work.ene_com.obj_work.pos.y);
             float num3 = nodeMatrix.M23 - AppMain.FX_FX32_TO_F32(parentObj.ene_3d_work.ene_com.obj_work.pos.z);
             float x1   = num1 + AppMain.FX_FX32_TO_F32(parentObj.ene_3d_work.ene_com.obj_work.spd.x);
             float num4 = num2 - AppMain.FX_FX32_TO_F32(parentObj.ene_3d_work.ene_com.obj_work.spd.y);
             float x2   = num3 + AppMain.FX_FX32_TO_F32(parentObj.ene_3d_work.ene_com.obj_work.spd.z);
             obj_work.parent_ofst.x = AppMain.FX_F32_TO_FX32(x1);
             obj_work.parent_ofst.y = -AppMain.FX_F32_TO_FX32(num4 - 10f);
             obj_work.parent_ofst.z = AppMain.FX_F32_TO_FX32(x2);
         }
     }
     else
     {
         obj_work.flag |= 4U;
     }
     if (((int)obj_work.disp_flag & 8) == 0)
     {
         return;
     }
     obj_work.flag |= 4U;
 }
コード例 #15
0
 // Token: 0x06000975 RID: 2421 RVA: 0x0005555C File Offset: 0x0005375C
 public static void gmBoss5EggGetBodyNodePos(AppMain.GMS_BOSS5_EGG_WORK egg_work, out AppMain.VecFx32 pos_out)
 {
     AppMain.OBS_OBJECT_WORK     obs_OBJECT_WORK     = AppMain.GMM_BS_OBJ(egg_work);
     AppMain.GMS_BOSS5_BODY_WORK gms_BOSS5_BODY_WORK = (AppMain.GMS_BOSS5_BODY_WORK)obs_OBJECT_WORK.parent_obj;
     AppMain.NNS_MATRIX          nns_MATRIX          = AppMain.GmBsCmnGetSNMMtx(gms_BOSS5_BODY_WORK.snm_work, gms_BOSS5_BODY_WORK.body_snm_reg_id);
     pos_out = new AppMain.VecFx32(AppMain.FX_F32_TO_FX32(nns_MATRIX.M03), -AppMain.FX_F32_TO_FX32(nns_MATRIX.M13), AppMain.FX_F32_TO_FX32(nns_MATRIX.M23));
 }
コード例 #16
0
ファイル: AmMath.cs プロジェクト: uwx/Sonic4Episode1
 public static void amQuatToMatrix(
     AppMain.NNS_MATRIX pMtx,
     ref AppMain.NNS_QUATERNION pQuat,
     AppMain.NNS_VECTOR4D?pVec)
 {
     if (pMtx == null)
     {
         AppMain.NNS_MATRIX current = AppMain.amMatrixGetCurrent();
         AppMain.nnMakeQuaternionMatrix(out AppMain.tempSNNS_MATRIX0, ref pQuat);
         if (pVec != null)
         {
             AppMain.nnCopyVectorMatrixTranslation(ref AppMain.tempSNNS_MATRIX0, (AppMain.NNS_VECTOR)pVec);
         }
         AppMain.nnCopyMatrix(current, ref AppMain.tempSNNS_MATRIX0);
     }
     else
     {
         AppMain.nnMakeQuaternionMatrix(pMtx, ref pQuat);
         if (pVec == null)
         {
             return;
         }
         AppMain.nnCopyVectorMatrixTranslation(ref AppMain.tempSNNS_MATRIX0, (AppMain.NNS_VECTOR)pVec);
     }
 }
コード例 #17
0
ファイル: GmGmkTarzanRope.cs プロジェクト: uwx/Sonic4Episode1
    private static void gmGmkTarzanRopeUpdatePlayerPos(AppMain.OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_ENEMY_3D_WORK gmsEnemy3DWork = (AppMain.GMS_ENEMY_3D_WORK)obj_work;
        AppMain.OBS_OBJECT_WORK   targetObj      = gmsEnemy3DWork.ene_com.target_obj;
        AppMain.GMS_PLAYER_WORK   gmsPlayerWork  = (AppMain.GMS_PLAYER_WORK)targetObj;
        AppMain.NNS_MATRIX        nnsMatrix      = new AppMain.NNS_MATRIX();
        AppMain.nnMakeUnitMatrix(nnsMatrix);
        nnsMatrix.M11 = AppMain.g_gm_gmk_tarzan_rope_active_matrix.M11;
        nnsMatrix.M22 = AppMain.g_gm_gmk_tarzan_rope_active_matrix.M00;
        nnsMatrix.M21 = AppMain.g_gm_gmk_tarzan_rope_active_matrix.M01;
        nnsMatrix.M12 = AppMain.g_gm_gmk_tarzan_rope_active_matrix.M10;
        nnsMatrix.M03 = -5f;
        AppMain.AkMathNormalizeMtx(gmsPlayerWork.ex_obj_mtx_r, nnsMatrix);
        if (((int)targetObj.disp_flag & 1) != 0)
        {
            gmsPlayerWork.ex_obj_mtx_r.M21 = -gmsPlayerWork.ex_obj_mtx_r.M21;
            gmsPlayerWork.ex_obj_mtx_r.M12 = -gmsPlayerWork.ex_obj_mtx_r.M12;
            nnsMatrix.M03 = -nnsMatrix.M03;
        }
        int num = (((int)gmsEnemy3DWork.ene_com.enemy_flag & (int)ushort.MaxValue) << 12) + 24576;

        if (num > 393216)
        {
            num = 393216;
        }
        gmsEnemy3DWork.ene_com.enemy_flag &= 4294901760U;
        gmsEnemy3DWork.ene_com.enemy_flag |= (uint)(num >> 12);
        AppMain.NNS_VECTOR nnsVector = new AppMain.NNS_VECTOR(0.0f, (float)(-(double)((float)num / 393216f) * 20.0) + 15f, 0.0f);
        AppMain.nnTransformVector(nnsVector, nnsMatrix, nnsVector);
        targetObj.pos.x         = AppMain.FX_F32_TO_FX32(AppMain.g_gm_gmk_tarzan_rope_active_matrix.M03 + nnsVector.z);
        targetObj.pos.y         = -AppMain.FX_F32_TO_FX32(AppMain.g_gm_gmk_tarzan_rope_active_matrix.M13 + nnsVector.y);
        targetObj.pos.z         = AppMain.FX_F32_TO_FX32(AppMain.g_gm_gmk_tarzan_rope_active_matrix.M23 + nnsVector.x);
        gmsPlayerWork.gmk_flag |= 32768U;
    }
コード例 #18
0
 // Token: 0x0600029B RID: 667 RVA: 0x00015F4C File Offset: 0x0001414C
 public static void gmEneEffectMainFuncHarogen(AppMain.OBS_OBJECT_WORK obj_work)
 {
     if (obj_work.parent_obj != null)
     {
         AppMain.GMS_ENE_HARO_WORK gms_ENE_HARO_WORK = (AppMain.GMS_ENE_HARO_WORK)obj_work.parent_obj;
         AppMain.NNS_MATRIX        nns_MATRIX        = AppMain.GmEneUtilGetNodeMatrix(gms_ENE_HARO_WORK.node_work, 2);
         if (nns_MATRIX != null)
         {
             float num  = nns_MATRIX.M03 - AppMain.FX_FX32_TO_F32(gms_ENE_HARO_WORK.ene_3d_work.ene_com.obj_work.pos.x);
             float num2 = nns_MATRIX.M13 + AppMain.FX_FX32_TO_F32(gms_ENE_HARO_WORK.ene_3d_work.ene_com.obj_work.pos.y);
             float num3 = nns_MATRIX.M23 - AppMain.FX_FX32_TO_F32(gms_ENE_HARO_WORK.ene_3d_work.ene_com.obj_work.pos.z);
             num  += AppMain.FX_FX32_TO_F32(gms_ENE_HARO_WORK.ene_3d_work.ene_com.obj_work.spd.x);
             num2 -= AppMain.FX_FX32_TO_F32(gms_ENE_HARO_WORK.ene_3d_work.ene_com.obj_work.spd.y);
             num3 += AppMain.FX_FX32_TO_F32(gms_ENE_HARO_WORK.ene_3d_work.ene_com.obj_work.spd.z);
             obj_work.parent_ofst.x = AppMain.FX_F32_TO_FX32(num);
             obj_work.parent_ofst.y = -AppMain.FX_F32_TO_FX32(num2 - 10f);
             obj_work.parent_ofst.z = AppMain.FX_F32_TO_FX32(num3);
         }
     }
     else
     {
         obj_work.flag |= 4U;
     }
     if ((obj_work.disp_flag & 8U) != 0U)
     {
         obj_work.flag |= 4U;
     }
 }
コード例 #19
0
    // Token: 0x0600198D RID: 6541 RVA: 0x000E7910 File Offset: 0x000E5B10
    private static uint nnCalcClipBoxNode(AppMain.NNS_NODE node, AppMain.NNS_MATRIX mtx)
    {
        float boundingBoxX = node.BoundingBoxX;
        float boundingBoxY = node.BoundingBoxY;
        float boundingBoxZ = node.BoundingBoxZ;

        return(AppMain.nnCalcClipBox(node.Center, boundingBoxX, boundingBoxY, boundingBoxZ, mtx));
    }
コード例 #20
0
 public static void gmBoss5EggGetBodyNodePos(
     AppMain.GMS_BOSS5_EGG_WORK egg_work,
     out AppMain.VecFx32 pos_out)
 {
     AppMain.GMS_BOSS5_BODY_WORK parentObj = (AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ((object)egg_work).parent_obj;
     AppMain.NNS_MATRIX          snmMtx    = AppMain.GmBsCmnGetSNMMtx(parentObj.snm_work, parentObj.body_snm_reg_id);
     pos_out = new AppMain.VecFx32(AppMain.FX_F32_TO_FX32(snmMtx.M03), -AppMain.FX_F32_TO_FX32(snmMtx.M13), AppMain.FX_F32_TO_FX32(snmMtx.M23));
 }
コード例 #21
0
 // Token: 0x06001990 RID: 6544 RVA: 0x000E81A3 File Offset: 0x000E63A3
 private static uint nnCalcClip(AppMain.NNS_VECTOR center, float radius, AppMain.NNS_MATRIX mtx)
 {
     if (radius == 0f)
     {
         return(0U);
     }
     radius *= AppMain.nnEstimateMatrixScaling(mtx);
     return(AppMain.nnCalcClipCore(center, radius, mtx));
 }
コード例 #22
0
        public AppMain.NNS_MATRIX pop()
        {
            this.invert = (AppMain.NNS_MATRIX)null;
            int index = this.stack.Count - 1;

            AppMain.NNS_MATRIX nnsMatrix = this.stack[index];
            this.stack.RemoveAt(index);
            return(nnsMatrix);
        }
コード例 #23
0
 // Token: 0x06000E12 RID: 3602 RVA: 0x0007BFD4 File Offset: 0x0007A1D4
 public static void GmEneUtilSetMatrixNN(AppMain.OBS_OBJECT_WORK obj_work, AppMain.NNS_MATRIX w_mtx)
 {
     AppMain.NNS_MATRIX user_obj_mtx_r = obj_work.obj_3d.user_obj_mtx_r;
     obj_work.pos.x      = AppMain.FX_F32_TO_FX32(w_mtx.M03);
     obj_work.pos.y      = -AppMain.FX_F32_TO_FX32(w_mtx.M13);
     obj_work.pos.z      = AppMain.FX_F32_TO_FX32(w_mtx.M23);
     obj_work.disp_flag |= 16777216U;
     AppMain.AkMathNormalizeMtx(user_obj_mtx_r, w_mtx);
 }
コード例 #24
0
    private static void gmWaterSurfaceUserFuncMatrixPush(object param)
    {
        AppMain.amMatrixPush();
        AppMain.NNS_MATRIX current   = AppMain.amMatrixGetCurrent();
        AppMain.NNS_MATRIX nnsMatrix = AppMain.GlobalPool <AppMain.NNS_MATRIX> .Alloc();

        AppMain.nnMultiplyMatrix(nnsMatrix, AppMain.amDrawGetWorldViewMatrix(), current);
        AppMain.nnSetPrimitive3DMatrix(nnsMatrix);
    }
コード例 #25
0
ファイル: AmMath.cs プロジェクト: uwx/Sonic4Episode1
 public static void amQuatMultiMatrix(ref AppMain.NNS_QUATERNION pQuat, AppMain.NNS_VECTOR?pVec)
 {
     AppMain.NNS_MATRIX current = AppMain.amMatrixGetCurrent();
     AppMain.nnMakeQuaternionMatrix(out AppMain.tempSNNS_MATRIX0, ref pQuat);
     if (pVec != null)
     {
         AppMain.nnCopyVectorMatrixTranslation(ref AppMain.tempSNNS_MATRIX0, pVec.Value);
     }
     AppMain.nnMultiplyMatrix(current, current, ref AppMain.tempSNNS_MATRIX0);
 }
コード例 #26
0
 // Token: 0x060003F9 RID: 1017 RVA: 0x00020608 File Offset: 0x0001E808
 private static void gmEneHariMotionCallback(AppMain.AMS_MOTION motion, AppMain.NNS_OBJECT _object, object param)
 {
     AppMain.NNS_MATRIX        nns_MATRIX        = AppMain.gmEneHariMotionCallback_node_mtx;
     AppMain.NNS_MATRIX        nns_MATRIX2       = AppMain.gmEneHariMotionCallback_base_mtx;
     AppMain.GMS_ENE_HARI_WORK gms_ENE_HARI_WORK = (AppMain.GMS_ENE_HARI_WORK)((AppMain.OBS_OBJECT_WORK)param);
     AppMain.nnMakeUnitMatrix(nns_MATRIX2);
     AppMain.nnMultiplyMatrix(nns_MATRIX2, nns_MATRIX2, AppMain.amMatrixGetCurrent());
     AppMain.nnCalcNodeMatrixTRSList(nns_MATRIX, _object, 7, motion.data, nns_MATRIX2);
     gms_ENE_HARI_WORK.jet_mtx.Assign(nns_MATRIX);
 }
コード例 #27
0
 private static void gmBsCmnGetNodeInvWorldMtx(
     AppMain.NNS_MATRIX dest_mtx,
     AppMain.NNS_NODE node,
     AppMain.NNS_MATRIX inv_view_mtx,
     AppMain.NNS_MATRIX[] mtx_plt)
 {
     AppMain.nnMultiplyMatrix(dest_mtx, inv_view_mtx, mtx_plt[(int)node.iMatrix]);
     AppMain.nnInvertMatrix(dest_mtx, dest_mtx);
     AppMain.nnMultiplyMatrix(dest_mtx, node.InvInitMtx, dest_mtx);
 }
コード例 #28
0
 public void set(AppMain.NNS_MATRIX mtx)
 {
     if (this.stack.Count > 0)
     {
         this.stack[this.stack.Count - 1] = mtx;
     }
     else
     {
         this.push(mtx);
     }
 }
コード例 #29
0
        public AppMain.NNS_MATRIX getInvert()
        {
            if (this.invert == null)
            {
                AppMain.NNS_MATRIX src = this.get();
                this.invert = AppMain.GlobalPool <AppMain.NNS_MATRIX> .Alloc();

                AppMain.nnInvertMatrix(this.invert, src);
            }
            return(this.invert);
        }
コード例 #30
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);
 }