コード例 #1
0
    // Token: 0x06000783 RID: 1923 RVA: 0x000425D8 File Offset: 0x000407D8
    private static bool gmGmkBoss3RouteSetMoveParam(OBS_OBJECT_WORK target_obj_work, OBS_OBJECT_WORK gimmick_obj_work)
    {
        AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)gimmick_obj_work;
        GMS_PLAYER_WORK           gms_PLAYER_WORK   = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)];
        float num = (float)gms_ENEMY_3D_WORK.ene_com.eve_rec.width / 10f;

        if (gms_PLAYER_WORK.obj_work.pos.y >= target_obj_work.pos.y && (gms_ENEMY_3D_WORK.ene_com.eve_rec.flag & 1) != 0 && AppMain.ObjViewOutCheck(target_obj_work.pos.x, target_obj_work.pos.y, 96, 0, 0, 0, 0) != 0)
        {
            target_obj_work.spd.x = 0;
            target_obj_work.spd.y = 0;
            return(false);
        }
        int        x          = gimmick_obj_work.pos.x + (int)(gms_ENEMY_3D_WORK.ene_com.eve_rec.left * 64) * 4096;
        int        x2         = gimmick_obj_work.pos.y + (int)(gms_ENEMY_3D_WORK.ene_com.eve_rec.top * 64) * 4096;
        float      num2       = AppMain.FX_FX32_TO_F32(x);
        float      num3       = AppMain.FX_FX32_TO_F32(x2);
        float      num4       = AppMain.FX_FX32_TO_F32(target_obj_work.pos.x);
        float      num5       = AppMain.FX_FX32_TO_F32(target_obj_work.pos.y);
        float      num6       = num2 - num4;
        float      num7       = num3 - num5;
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        AppMain.amVectorSet(nns_VECTOR, num6, num7, 0f);
        float num8 = 1f / AppMain.nnLengthVector(nns_VECTOR);
        float x3   = num6 * num8 * num;
        float x4   = num7 * num8 * num;

        target_obj_work.spd.x = AppMain.FX_F32_TO_FX32(x3);
        target_obj_work.spd.y = AppMain.FX_F32_TO_FX32(x4);
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);

        return(true);
    }
コード例 #2
0
    // Token: 0x06000707 RID: 1799 RVA: 0x0003E9C4 File Offset: 0x0003CBC4
    private static void GmBoss4UtilRotateVecFx32(ref AppMain.VecFx32 f, int angle)
    {
        NNS_MATRIX nns_MATRIX = GlobalPool <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);
        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);
    }
コード例 #3
0
    // Token: 0x060008D1 RID: 2257 RVA: 0x000500A4 File Offset: 0x0004E2A4
    public static void GmGmkNeedleSetLight()
    {
        NNS_RGBA   nns_RGBA   = new NNS_RGBA(1f, 1f, 1f, 1f);
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        if (AppMain.g_gs_main_sys_info.stage_id == 14)
        {
            nns_VECTOR.x = -0.1f;
            nns_VECTOR.y = -0.09f;
            nns_VECTOR.z = -0.93f;
        }
        else
        {
            nns_VECTOR.x = -1f;
            nns_VECTOR.y = -1f;
            nns_VECTOR.z = -1f;
        }
        nns_RGBA.r = 1f;
        nns_RGBA.g = 1f;
        nns_RGBA.b = 1f;
        AppMain.nnNormalizeVector(nns_VECTOR, nns_VECTOR);
        float intensity;

        if (AppMain.g_gs_main_sys_info.stage_id == 14)
        {
            intensity = 0.8f;
        }
        else
        {
            intensity = 1f;
        }
        AppMain.ObjDrawSetParallelLight(AppMain.NNE_LIGHT_2, ref nns_RGBA, intensity, nns_VECTOR);
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);
    }
コード例 #4
0
 // Token: 0x06000A5B RID: 2651 RVA: 0x0005C7A9 File Offset: 0x0005A9A9
 private static void _amTaskDeleteReal(AppMain.AMS_TCB tcb)
 {
     AppMain.AMS_TASK taskp = tcb.taskp;
     tcb.prev.next = tcb.next;
     tcb.next.prev = tcb.prev;
     GlobalPool <AppMain.AMS_TCB> .Release(tcb);
 }
コード例 #5
0
    // Token: 0x06000F64 RID: 3940 RVA: 0x0008825C File Offset: 0x0008645C
    public static void amQuatMultiVector(NNS_VECTOR4D pDst, NNS_VECTOR4D pSrc, ref NNS_QUATERNION pQuat, NNS_VECTOR4D pVec)
    {
        NNS_QUATERNION nns_QUATERNION  = default(NNS_QUATERNION);
        NNS_QUATERNION nns_QUATERNION2 = default(NNS_QUATERNION);
        NNS_QUATERNION nns_QUATERNION3 = default(NNS_QUATERNION);
        NNS_QUATERNION nns_QUATERNION4 = default(NNS_QUATERNION);

        AppMain.VEC4_COPY(ref nns_QUATERNION4, pSrc);
        nns_QUATERNION2.x = -pQuat.x;
        nns_QUATERNION2.y = -pQuat.y;
        nns_QUATERNION2.z = -pQuat.z;
        nns_QUATERNION2.w = pQuat.w;
        AppMain.nnMultiplyQuaternion(ref nns_QUATERNION3, ref pQuat, ref nns_QUATERNION4);
        AppMain.nnMultiplyQuaternion(ref nns_QUATERNION, ref nns_QUATERNION3, ref nns_QUATERNION2);
        if (pVec == null)
        {
            AppMain.VEC4_COPY(pDst, ref nns_QUATERNION);
            return;
        }
        NNS_VECTOR4D nns_VECTOR4D = GlobalPool <NNS_VECTOR4D> .Alloc();

        NNS_VECTOR4D nns_VECTOR4D2 = GlobalPool <NNS_VECTOR4D> .Alloc();

        AppMain.VEC4_COPY(nns_VECTOR4D, ref nns_QUATERNION);
        AppMain.VEC4_COPY(nns_VECTOR4D2, pVec);
        AppMain.amVectorAdd(pDst, nns_VECTOR4D, nns_VECTOR4D2);
        GlobalPool <NNS_VECTOR4D> .Release(nns_VECTOR4D);

        GlobalPool <NNS_VECTOR4D> .Release(nns_VECTOR4D2);
    }
コード例 #6
0
    // Token: 0x06000F5D RID: 3933 RVA: 0x0008803C File Offset: 0x0008623C
    public void amQuatVectorToQuat(ref NNS_QUATERNION pQuat, NNS_VECTOR4D pV1, NNS_VECTOR4D pV2)
    {
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

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

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

        NNS_VECTOR nns_VECTOR4 = GlobalPool <NNS_VECTOR> .Alloc();

        AppMain.VEC3_COPY(nns_VECTOR, pV1);
        AppMain.VEC3_COPY(nns_VECTOR2, pV2);
        AppMain.nnAddVector(nns_VECTOR4, nns_VECTOR, nns_VECTOR2);
        float num = AppMain.nnDotProductVector(nns_VECTOR4, nns_VECTOR4);

        num = ( float )(1.0 / Math.Sqrt(( double )num));
        AppMain.nnScaleVector(nns_VECTOR2, nns_VECTOR4, num);
        AppMain.nnCrossProductVector(nns_VECTOR3, nns_VECTOR, nns_VECTOR2);
        AppMain.VEC3_COPY(pQuat, nns_VECTOR3);
        pQuat.w = AppMain.nnDotProductVector(nns_VECTOR, nns_VECTOR2);
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);

        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR2);

        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR3);

        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR4);
    }
コード例 #7
0
    // Token: 0x060018E8 RID: 6376 RVA: 0x000E2E04 File Offset: 0x000E1004
    private static void aoWinSysMakeCommandA(uint state, AppMain.NNS_TEXLIST texlist, uint tex_id, float x, float y, float w, float h, float z)
    {
        AppMain.AMS_PARAM_DRAW_PRIMITIVE ams_PARAM_DRAW_PRIMITIVE = GlobalPool <AppMain.AMS_PARAM_DRAW_PRIMITIVE> .Alloc();

        ams_PARAM_DRAW_PRIMITIVE.mtx      = null;
        ams_PARAM_DRAW_PRIMITIVE.vtxPCT3D = null;
        ams_PARAM_DRAW_PRIMITIVE.format3D = 4;
        ams_PARAM_DRAW_PRIMITIVE.type     = 1;
        ams_PARAM_DRAW_PRIMITIVE.count    = 8;
        ams_PARAM_DRAW_PRIMITIVE.texlist  = texlist;
        ams_PARAM_DRAW_PRIMITIVE.texId    = ( int )tex_id;
        ams_PARAM_DRAW_PRIMITIVE.ablend   = 1;
        ams_PARAM_DRAW_PRIMITIVE.sortZ    = z;
        ams_PARAM_DRAW_PRIMITIVE.aTest    = 0;
        ams_PARAM_DRAW_PRIMITIVE.zMask    = 1;
        ams_PARAM_DRAW_PRIMITIVE.zTest    = 0;
        ams_PARAM_DRAW_PRIMITIVE.noSort   = 1;
        ams_PARAM_DRAW_PRIMITIVE.uwrap    = 1;
        ams_PARAM_DRAW_PRIMITIVE.vwrap    = 1;
        AppMain.NNS_PRIM3D_PCT_ARRAY nns_PRIM3D_PCT_ARRAY = AppMain.amDrawAlloc_NNS_PRIM3D_PCT(8);
        AppMain.aoWinSysMakeVertex00A(nns_PRIM3D_PCT_ARRAY, x, y, w, h);
        ams_PARAM_DRAW_PRIMITIVE.vtxPCT3D = nns_PRIM3D_PCT_ARRAY;
        AppMain.amDrawPrimitive3D(state, ams_PARAM_DRAW_PRIMITIVE);
        nns_PRIM3D_PCT_ARRAY = AppMain.amDrawAlloc_NNS_PRIM3D_PCT(8);
        AppMain.aoWinSysMakeVertex01A(nns_PRIM3D_PCT_ARRAY, x, y, w, h);
        ams_PARAM_DRAW_PRIMITIVE.vtxPCT3D = nns_PRIM3D_PCT_ARRAY;
        AppMain.amDrawPrimitive3D(state, ams_PARAM_DRAW_PRIMITIVE);
        nns_PRIM3D_PCT_ARRAY = AppMain.amDrawAlloc_NNS_PRIM3D_PCT(8);
        AppMain.aoWinSysMakeVertex02A(nns_PRIM3D_PCT_ARRAY, x, y, w, h);
        ams_PARAM_DRAW_PRIMITIVE.vtxPCT3D = nns_PRIM3D_PCT_ARRAY;
        AppMain.amDrawPrimitive3D(state, ams_PARAM_DRAW_PRIMITIVE);
        GlobalPool <AppMain.AMS_PARAM_DRAW_PRIMITIVE> .Release(ams_PARAM_DRAW_PRIMITIVE);
    }
コード例 #8
0
    // Token: 0x0600050C RID: 1292 RVA: 0x0002B478 File Offset: 0x00029678
    private static void GmBoss5LandSetLight()
    {
        NNS_RGBA   nns_RGBA   = new NNS_RGBA(1f, 1f, 1f, 1f);
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        nns_VECTOR.x = 0f;
        nns_VECTOR.y = -0.2f;
        nns_VECTOR.z = -1f;
        AppMain.nnNormalizeVector(nns_VECTOR, nns_VECTOR);
        AppMain.ObjDrawSetParallelLight(AppMain.NNE_LIGHT_1, ref nns_RGBA, 1f, nns_VECTOR);
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);
    }
コード例 #9
0
    // Token: 0x060005E3 RID: 1507 RVA: 0x00034600 File Offset: 0x00032800
    private static void gmBoss4EggMain(OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_BOSS4_BODY_WORK gms_BOSS4_BODY_WORK = (AppMain.GMS_BOSS4_BODY_WORK)obj_work.parent_obj;
        AppMain.GMS_BOSS4_EGG_WORK  gms_BOSS4_EGG_WORK  = (AppMain.GMS_BOSS4_EGG_WORK)obj_work;
        OBS_OBJECT_WORK             obs_OBJECT_WORK     = (OBS_OBJECT_WORK)gms_BOSS4_BODY_WORK;
        NNS_MATRIX nns_MATRIX  = AppMain.GmBoss4UtilGetNodeMatrix(gms_BOSS4_BODY_WORK.node_work, 2);
        NNS_MATRIX nns_MATRIX2 = AppMain.GmBoss4UtilGetNodeMatrix(gms_BOSS4_BODY_WORK.node_work, 2);
        NNS_MATRIX nns_MATRIX3 = GlobalPool <NNS_MATRIX> .Alloc();

        AppMain.nnCopyMatrix(nns_MATRIX3, nns_MATRIX);
        nns_MATRIX3.M03 = nns_MATRIX.M03 - nns_MATRIX2.M03 + ( float )obs_OBJECT_WORK.pos.x / 4096f;
        AppMain.GmBoss4UtilSetMatrixNN(obj_work, nns_MATRIX3);
        AppMain.GmBoss4UtilUpdateTurnGently(gms_BOSS4_EGG_WORK.dir_work);
        AppMain.GmBoss4UtilUpdateDirection(gms_BOSS4_EGG_WORK.dir_work, obj_work);
        if (gms_BOSS4_EGG_WORK.proc_update != null)
        {
            gms_BOSS4_EGG_WORK.proc_update(gms_BOSS4_EGG_WORK);
        }
        if ((gms_BOSS4_BODY_WORK.flag[0] & 8388608U) != 0U)
        {
            gms_BOSS4_BODY_WORK.flag[0] &= 4286578687U;
            AppMain.gmBoss4EggProcEscapeInit(gms_BOSS4_EGG_WORK);
        }
        if ((gms_BOSS4_BODY_WORK.flag[0] & 2097152U) != 0U)
        {
            gms_BOSS4_BODY_WORK.flag[0] &= 4292870143U;
            AppMain.gmBoss4EggProcThrowInit(gms_BOSS4_EGG_WORK);
        }
        if ((gms_BOSS4_BODY_WORK.flag[0] & 4194304U) != 0U)
        {
            gms_BOSS4_BODY_WORK.flag[0] &= 4290772991U;
            AppMain.gmBoss4EggProcThrowLeftInit(gms_BOSS4_EGG_WORK);
        }
        if ((gms_BOSS4_BODY_WORK.flag[0] & 536870912U) != 0U)
        {
            gms_BOSS4_BODY_WORK.flag[0] &= 3758096383U;
            AppMain.gmBoss4EggProcDamageInit(gms_BOSS4_EGG_WORK);
        }
        if ((gms_BOSS4_BODY_WORK.flag[0] & 16777216U) != 0U)
        {
            gms_BOSS4_BODY_WORK.flag[0] &= 4278190079U;
            AppMain.gmBoss4SetPartTextureBurnt(obj_work);
        }
        if ((AppMain.GMM_BS_OBJ(gms_BOSS4_BODY_WORK).disp_flag & 16U) != 0U)
        {
            obj_work.disp_flag |= 16U;
        }
        else
        {
            obj_work.disp_flag &= 4294967279U;
        }
        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX3);
    }
コード例 #10
0
    // Token: 0x06000791 RID: 1937 RVA: 0x00043198 File Offset: 0x00041398
    public static void gmEneTStarAttackInit(OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_ENE_T_STAR_WORK gms_ENE_T_STAR_WORK = (AppMain.GMS_ENE_T_STAR_WORK)obj_work;
        NNS_MATRIX nns_MATRIX = GlobalPool <NNS_MATRIX> .Alloc();

        NNS_MATRIX nns_MATRIX2 = GlobalPool <NNS_MATRIX> .Alloc();

        AppMain.nnMakeUnitMatrix(nns_MATRIX);
        AppMain.nnMakeUnitMatrix(nns_MATRIX2);
        AppMain.nnMakeRotateZMatrix(nns_MATRIX2, AkMath.DEGtoA32(72));
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        for (int i = 0; i < 5; i++)
        {
            OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GmEventMgrLocalEventBirth(308, obj_work.pos.x, obj_work.pos.y, 0, 0, 0, 0, 0, 0);
            obs_OBJECT_WORK.parent_obj = obj_work;
            obs_OBJECT_WORK.dir.y      = 49152;
            obs_OBJECT_WORK.dir.z      = ( ushort )AkMath.DEGtoA16(-72 * i);
            nns_VECTOR.x          = nns_MATRIX.M01;
            nns_VECTOR.y          = nns_MATRIX.M11;
            nns_VECTOR.z          = 0f;
            obs_OBJECT_WORK.spd.x = AppMain.FX_F32_TO_FX32(nns_VECTOR.x * 4f);
            obs_OBJECT_WORK.spd.y = -AppMain.FX_F32_TO_FX32(nns_VECTOR.y * 4f);
            OBS_OBJECT_WORK obs_OBJECT_WORK2 = obs_OBJECT_WORK;
            obs_OBJECT_WORK2.pos.x = obs_OBJECT_WORK2.pos.x + AppMain.FX_F32_TO_FX32(nns_VECTOR.x * 10f);
            OBS_OBJECT_WORK obs_OBJECT_WORK3 = obs_OBJECT_WORK;
            obs_OBJECT_WORK3.pos.y = obs_OBJECT_WORK3.pos.y + -AppMain.FX_F32_TO_FX32(nns_VECTOR.y * 10f);
            AppMain.nnMultiplyMatrix(nns_MATRIX, nns_MATRIX, nns_MATRIX2);
            AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)obs_OBJECT_WORK;
            gms_ENEMY_3D_WORK.ene_com.enemy_flag |= 32768U;
            AppMain.GMS_EFFECT_3DES_WORK gms_EFFECT_3DES_WORK = AppMain.GmEfctEneEsCreate(obs_OBJECT_WORK, 10);
            gms_EFFECT_3DES_WORK.efct_com.obj_work.dir.z = ( ushort )AkMath.DEGtoA16(-72 * i);
        }
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);

        obj_work.disp_flag       |= 32U;
        obj_work.disp_flag       |= 4U;
        obj_work.ppFunc           = AppMain.gmEneTStarAttackMain;
        obj_work.move_flag       &= 4294967291U;
        obj_work.spd.x            = 0;
        obj_work.spd.y            = 0;
        gms_ENE_T_STAR_WORK.timer = 300;
        AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK2 = (AppMain.GMS_ENEMY_3D_WORK)obj_work;
        gms_ENEMY_3D_WORK2.ene_com.rect_work[1].flag &= 4294967291U;
        gms_ENEMY_3D_WORK2.ene_com.rect_work[0].flag &= 4294967291U;
        gms_ENEMY_3D_WORK2.ene_com.rect_work[2].flag &= 4294967291U;
        GmSound.PlaySE("Boss2_03");
        gms_ENEMY_3D_WORK2.ene_com.enemy_flag |= 65536U;
        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);

        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX2);
    }
コード例 #11
0
    // Token: 0x060006EE RID: 1774 RVA: 0x0003DE2C File Offset: 0x0003C02C
    private static void GmBoss4UtilSetMatrixES(OBS_OBJECT_WORK obj_work, NNS_MATRIX w_mtx)
    {
        NNS_MATRIX nns_MATRIX = GlobalPool <NNS_MATRIX> .Alloc();

        AppMain.MTM_ASSERT(obj_work);
        AppMain.MTM_ASSERT(obj_work.obj_3des);
        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.obj_3des.flag |= 32U;
        AkMath.NormalizeMtx(nns_MATRIX, w_mtx);
        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);
    }
コード例 #12
0
    // Token: 0x06000E6A RID: 3690 RVA: 0x00080FB4 File Offset: 0x0007F1B4
    public static void gmBoss5TurretGetDispRotatedOfstPos(AppMain.GMS_BOSS5_TURRET_WORK trt_work, ref AppMain.VecFx32 src_ofst_pos, out AppMain.VecFx32 dest_ofst_pos)
    {
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

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

        AppMain.amVectorSet(nns_VECTOR, AppMain.FX_FX32_TO_F32(src_ofst_pos.x), AppMain.FX_FX32_TO_F32(-src_ofst_pos.y), AppMain.FX_FX32_TO_F32(src_ofst_pos.z));
        AppMain.nnMakeQuaternionMatrix(nns_MATRIX, ref trt_work.disp_quat);
        AppMain.nnTransformVector(nns_VECTOR, nns_MATRIX, nns_VECTOR);
        dest_ofst_pos = new AppMain.VecFx32(AppMain.FX_F32_TO_FX32(nns_VECTOR.x), AppMain.FX_F32_TO_FX32(-nns_VECTOR.y), AppMain.FX_F32_TO_FX32(nns_VECTOR.z));
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);

        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);
    }
コード例 #13
0
    // Token: 0x06000012 RID: 18 RVA: 0x000020E8 File Offset: 0x000002E8
    private static int ObjBlockCollisionDet(int lPosX, int lPosY, ushort usFlag, ushort usVec, ushort[] pDir, uint[] pAttr)
    {
        AppMain.OBS_COL_CHK_DATA obs_COL_CHK_DATA = GlobalPool <AppMain.OBS_COL_CHK_DATA> .Alloc();

        obs_COL_CHK_DATA.pos_x = lPosX;
        obs_COL_CHK_DATA.pos_y = lPosY;
        obs_COL_CHK_DATA.dir   = pDir;
        obs_COL_CHK_DATA.attr  = pAttr;
        obs_COL_CHK_DATA.flag  = usFlag;
        obs_COL_CHK_DATA.vec   = usVec;
        int result = AppMain.ObjBlockCollision(obs_COL_CHK_DATA);

        GlobalPool <AppMain.OBS_COL_CHK_DATA> .Release(obs_COL_CHK_DATA);

        return(result);
    }
コード例 #14
0
    // Token: 0x06000DFD RID: 3581 RVA: 0x0007B3B8 File Offset: 0x000795B8
    private static void gmEneUnidesNeedleWaitMain(OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_ENE_UNIDES_WORK gms_ENE_UNIDES_WORK  = (AppMain.GMS_ENE_UNIDES_WORK)obj_work;
        AppMain.GMS_ENE_UNIDES_WORK gms_ENE_UNIDES_WORK2 = (AppMain.GMS_ENE_UNIDES_WORK)obj_work.parent_obj;
        NNS_MATRIX nns_MATRIX = GlobalPool <NNS_MATRIX> .Alloc();

        NNS_MATRIX nns_MATRIX2 = GlobalPool <NNS_MATRIX> .Alloc();

        NNS_MATRIX nns_MATRIX3 = GlobalPool <NNS_MATRIX> .Alloc();

        int   num   = gms_ENE_UNIDES_WORK2.rot_y;
        int   rot_x = gms_ENE_UNIDES_WORK2.rot_x;
        int   rot_z = gms_ENE_UNIDES_WORK2.rot_z;
        float len   = gms_ENE_UNIDES_WORK2.len;

        num += AkMath.DEGtoA32(360) / 4 * gms_ENE_UNIDES_WORK.num;
        num %= AkMath.DEGtoA32(360);
        AppMain.nnMakeRotateXMatrix(nns_MATRIX, rot_x);
        AppMain.nnRotateZMatrix(nns_MATRIX, nns_MATRIX, rot_z);
        AppMain.nnRotateYMatrix(nns_MATRIX, nns_MATRIX, num);
        AppMain.nnMakeTranslateMatrix(nns_MATRIX2, len, 0f, 0f);
        AppMain.nnMultiplyMatrix(nns_MATRIX3, nns_MATRIX, nns_MATRIX2);
        SNNS_VECTOR snns_VECTOR;

        AppMain.nnCopyMatrixTranslationVector(out snns_VECTOR, nns_MATRIX3);
        obj_work.pos.x = AppMain.FX_F32_TO_FX32(snns_VECTOR.x) + gms_ENE_UNIDES_WORK2.ene_3d_work.ene_com.obj_work.pos.x;
        obj_work.pos.y = AppMain.FX_F32_TO_FX32(snns_VECTOR.y) + gms_ENE_UNIDES_WORK2.ene_3d_work.ene_com.obj_work.pos.y;
        obj_work.pos.z = 655360;
        if (gms_ENE_UNIDES_WORK2.attack != 0 && ( double )snns_VECTOR.y >= ( double )len * 0.98 && gms_ENE_UNIDES_WORK2.stop == 0)
        {
            if (gms_ENE_UNIDES_WORK2.attack_first != 0)
            {
                obj_work.ppFunc = AppMain.gmEneUnidesNeedleAttackInit;
            }
            else
            {
                gms_ENE_UNIDES_WORK2.zoom_now     = 1;
                gms_ENE_UNIDES_WORK2.attack_first = 1;
                gms_ENE_UNIDES_WORK2.stop         = 1;
            }
        }
        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);

        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX2);

        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX3);
    }
コード例 #15
0
    // Token: 0x06000681 RID: 1665 RVA: 0x0003A978 File Offset: 0x00038B78
    public static void gmGmkTruckSparkEfctDispFunc(OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_GMK_TRUCK_WORK gms_GMK_TRUCK_WORK = (AppMain.GMS_GMK_TRUCK_WORK)obj_work.parent_obj;
        NNS_MATRIX nns_MATRIX = (NNS_MATRIX)obj_work.user_work_OBJECT;
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        if (obj_work.parent_obj == null)
        {
            GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);

            return;
        }
        OBS_OBJECT_WORK obs_OBJECT_WORK = (OBS_OBJECT_WORK)gms_GMK_TRUCK_WORK.target_player;

        if (obs_OBJECT_WORK == null)
        {
            obs_OBJECT_WORK = ( OBS_OBJECT_WORK )gms_GMK_TRUCK_WORK;
        }
        AppMain.VecFx32 pos;
        pos.x = AppMain.FXM_FLOAT_TO_FX32(nns_MATRIX.M03);
        pos.y = AppMain.FXM_FLOAT_TO_FX32(-nns_MATRIX.M13);
        pos.z = AppMain.FXM_FLOAT_TO_FX32(nns_MATRIX.M23);
        ushort dir_z;
        ushort ang;

        if (obs_OBJECT_WORK.spd_m >= 0)
        {
            obj_work.disp_flag &= 4294967294U;
            dir_z = ( ushort )(8192 - obj_work.parent_obj.dir.z);
            ang   = ( ushort )(-obj_work.parent_obj.dir.z - 2048);
        }
        else
        {
            obj_work.disp_flag |= 1U;
            dir_z = ( ushort )(8192 + obj_work.parent_obj.dir.z);
            ang   = ( ushort )(obj_work.parent_obj.dir.z + 2048);
        }
        obj_work.pos = pos;
        nns_VECTOR.x = AppMain.nnSin(( int )ang) * AppMain.GMD_GMK_TRUCK_EFCT_SPRAK_OFST_DIST;
        nns_VECTOR.y = AppMain.nnCos(( int )ang) * AppMain.GMD_GMK_TRUCK_EFCT_SPRAK_OFST_DIST;
        nns_VECTOR.z = 0f;
        AppMain.GmComEfctSetDispOffsetF((AppMain.GMS_EFFECT_3DES_WORK)obj_work, nns_VECTOR.x, nns_VECTOR.y, nns_VECTOR.z);
        AppMain.GmComEfctSetDispRotation((AppMain.GMS_EFFECT_3DES_WORK)obj_work, 0, 0, dir_z);
        AppMain.ObjDrawActionSummary(obj_work);
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);
    }
コード例 #16
0
    // Token: 0x060007AB RID: 1963 RVA: 0x00043C0C File Offset: 0x00041E0C
    private void dmLogoSegaObjSysytemInit()
    {
        NNS_RGBA   nns_RGBA   = new NNS_RGBA(1f, 1f, 1f, 1f);
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        NNS_VECTOR pos = new NNS_VECTOR(0f, 0f, 50f);

        AppMain.ObjInit(4, 61435, 0, AppMain.GMD_OBJ_LCD_X, AppMain.GMD_OBJ_LCD_Y, ( float )AppMain.GSD_DISP_WIDTH, ( float )AppMain.GSD_DISP_HEIGHT);
        AppMain.ObjDataAlloc(10);
        AppMain.ObjDrawESEffectSystemInit(0, 20480U, 0U);
        AppMain.ObjDrawSetNNCommandStateTbl(0U, 0U, true);
        AppMain.AoActSysClearPeak();
        AppMain.g_obj.flag             = 4259848U;
        AppMain.g_obj.ppPre            = null;
        AppMain.g_obj.ppPost           = null;
        AppMain.g_obj.ppCollision      = null;
        AppMain.g_obj.ppObjPre         = null;
        AppMain.g_obj.ppObjPost        = null;
        AppMain.g_obj.ppRegRecAuto     = null;
        AppMain.g_obj.draw_scale.x     = (AppMain.g_obj.draw_scale.y = (AppMain.g_obj.draw_scale.z = 29127));
        AppMain.g_obj.inv_draw_scale.x = (AppMain.g_obj.inv_draw_scale.y = (AppMain.g_obj.inv_draw_scale.z = AppMain.FX_Div(4096, AppMain.g_obj.draw_scale.x)));
        AppMain.g_obj.depth            = 128;
        AppMain.g_obj.ambient_color.r  = 0.8f;
        AppMain.g_obj.ambient_color.g  = 0.8f;
        AppMain.g_obj.ambient_color.b  = 0.8f;
        nns_VECTOR.x = -1f;
        nns_VECTOR.y = -1f;
        nns_VECTOR.z = -1f;
        AppMain.nnNormalizeVector(nns_VECTOR, nns_VECTOR);
        AppMain.ObjDrawSetParallelLight(AppMain.NNE_LIGHT_0, ref nns_RGBA, 1f, nns_VECTOR);
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);

        ObjCamera.Init(0, pos, 0, 0, 6144);
        ObjCamera.Init3d(0);
        AppMain.g_obj.glb_camera_id   = 0;
        AppMain.g_obj.glb_camera_type = 1;
        OBS_CAMERA obs_CAMERA = ObjCamera.Get(0);

        obs_CAMERA.user_func     = this.dmLogoSegaCamera;
        obs_CAMERA.command_state = 0U;
        obs_CAMERA.scale         = 0.9f;
        obs_CAMERA.ofst.z        = 1000f;
        this.amTrailEFInitialize();
    }
コード例 #17
0
    // Token: 0x060015A9 RID: 5545 RVA: 0x000BD0A8 File Offset: 0x000BB2A8
    public static void gmEneStingMotionCallback(AppMain.AMS_MOTION motion, AppMain.NNS_OBJECT _object, object param)
    {
        NNS_MATRIX nns_MATRIX = GlobalPool <NNS_MATRIX> .Alloc();

        NNS_MATRIX nns_MATRIX2 = GlobalPool <NNS_MATRIX> .Alloc();

        AppMain.GMS_ENE_STING_WORK gms_ENE_STING_WORK = (AppMain.GMS_ENE_STING_WORK)param;
        AppMain.nnMakeUnitMatrix(nns_MATRIX2);
        AppMain.nnMultiplyMatrix(nns_MATRIX2, nns_MATRIX2, AppMain.amMatrixGetCurrent());
        AppMain.nnCalcNodeMatrixTRSList(nns_MATRIX, _object, AppMain.GMD_ENE_STING_NODE_ID_R_JET, motion.data, nns_MATRIX2);
        gms_ENE_STING_WORK.jet_r_mtx.Assign(nns_MATRIX);
        AppMain.nnCalcNodeMatrixTRSList(nns_MATRIX, _object, AppMain.GMD_ENE_STING_NODE_ID_L_JET, motion.data, nns_MATRIX2);
        gms_ENE_STING_WORK.jet_l_mtx.Assign(nns_MATRIX);
        AppMain.nnCalcNodeMatrixTRSList(nns_MATRIX, _object, AppMain.GMD_ENE_STING_NODE_ID_GUN, motion.data, nns_MATRIX2);
        gms_ENE_STING_WORK.gun_mtx.Assign(nns_MATRIX);
        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);

        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX2);
    }
コード例 #18
0
    // Token: 0x06000038 RID: 56 RVA: 0x00003C0C File Offset: 0x00001E0C
    private static void _amTrailDrawPartsNormalTex(AppMain.AMS_TRAIL_PARTS pNow, AppMain.AMS_TRAIL_PARAM work, AppMain.NNS_PRIM3D_PCT[] _pv, int pv)
    {
        int   num   = pv - 6;
        float scale = work.startSize;
        float num2  = (float)(work.trailPartsNum - work.list_no) / (float)work.trailPartsNum;

        num2 *= work.vanish_rate;
        scale = work.startSize * num2 + work.endSize * (1f - num2);
        NNS_RGBA nns_RGBA;

        nns_RGBA.r = work.startColor.r * num2 + work.endColor.r * (1f - num2);
        nns_RGBA.g = work.startColor.g * num2 + work.endColor.g * (1f - num2);
        nns_RGBA.b = work.startColor.b * num2 + work.endColor.b * (1f - num2);
        nns_RGBA.a = work.startColor.a * num2 + work.endColor.a * (1f - num2);
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

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

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

        AppMain.nnDistanceVector(pNow.pos, AppMain._am_ef_camPos);
        AppMain.amVectorSet(nns_VECTOR3, 0f, 0f, 1f);
        AppMain.nnCrossProductVector(nns_VECTOR, nns_VECTOR3, pNow.dir);
        AppMain.nnNormalizeVector(nns_VECTOR, nns_VECTOR);
        AppMain.nnScaleVector(nns_VECTOR2, nns_VECTOR, scale);
        AppMain.nnAddVector(ref _pv[pv + 1].Pos, pNow.pPrev.pos, nns_VECTOR2);
        AppMain.nnSubtractVector(ref _pv[pv + 5].Pos, pNow.pPrev.pos, nns_VECTOR2);
        _pv[pv]           = _pv[num + 1];
        _pv[pv + 2]       = _pv[num + 5];
        _pv[pv + 4]       = _pv[pv + 2];
        _pv[pv + 5].Col   = AppMain.AMD_FCOLTORGBA8888(nns_RGBA.r, nns_RGBA.g, nns_RGBA.b, nns_RGBA.a);
        _pv[pv + 1].Col   = _pv[pv + 5].Col;
        _pv[pv + 1].Tex.u = num2;
        _pv[pv + 1].Tex.v = 0f;
        _pv[pv + 5].Tex.u = num2;
        _pv[pv + 5].Tex.v = 1f;
        _pv[pv + 3]       = _pv[pv + 1];
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);

        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR2);

        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR3);
    }
コード例 #19
0
    // Token: 0x060018C0 RID: 6336 RVA: 0x000E1CDC File Offset: 0x000DFEDC
    private void DmTitleOpInit()
    {
        NNS_RGBA   nns_RGBA   = new NNS_RGBA(1f, 1f, 1f, 1f);
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        nns_VECTOR.Clear();
        NNS_VECTOR pos = new NNS_VECTOR(0f, 0f, 50f);

        AppMain.g_obj.flag             = 4259848U;
        AppMain.g_obj.ppPre            = null;
        AppMain.g_obj.ppPost           = null;
        AppMain.g_obj.ppCollision      = null;
        AppMain.g_obj.ppObjPre         = null;
        AppMain.g_obj.ppObjPost        = null;
        AppMain.g_obj.ppRegRecAuto     = null;
        AppMain.g_obj.draw_scale.x     = (AppMain.g_obj.draw_scale.y = (AppMain.g_obj.draw_scale.z = 13107));
        AppMain.g_obj.inv_draw_scale.x = (AppMain.g_obj.inv_draw_scale.y = (AppMain.g_obj.inv_draw_scale.z = AppMain.FX_Div(4096, AppMain.g_obj.draw_scale.x)));
        AppMain.g_obj.depth            = 128;
        AppMain.g_obj.ambient_color.r  = 0.8f;
        AppMain.g_obj.ambient_color.g  = 0.8f;
        AppMain.g_obj.ambient_color.b  = 0.8f;
        nns_VECTOR.x = -1f;
        nns_VECTOR.y = -1f;
        nns_VECTOR.z = -1f;
        AppMain.nnNormalizeVector(nns_VECTOR, nns_VECTOR);
        AppMain.ObjDrawSetParallelLight(AppMain.NNE_LIGHT_0, ref nns_RGBA, 1f, nns_VECTOR);
        ObjCamera.Init(0, pos, 0, 0, 12288);
        ObjCamera.Init3d(0);
        AppMain.g_obj.glb_camera_id   = 0;
        AppMain.g_obj.glb_camera_type = 0;
        OBS_CAMERA obs_CAMERA = ObjCamera.Get(0);

        obs_CAMERA.user_func     = this.dmTitleOpCamera;
        obs_CAMERA.command_state = 0U;
        obs_CAMERA.fovy          = AppMain.NNM_DEGtoA32(40f);
        obs_CAMERA.znear         = 0.1f;
        obs_CAMERA.zfar          = 32768f;
        this.dmTitleOpMgrInit();
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);
    }
コード例 #20
0
    // Token: 0x06000E7A RID: 3706 RVA: 0x000815F0 File Offset: 0x0007F7F0
    public static int gmBoss5TurretUpdateSlideCover(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
    {
        AppMain.GMS_BOSS5_BODY_WORK gms_BOSS5_BODY_WORK = (AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ(trt_work).parent_obj;
        int result;

        if (trt_work.cvr_slide_type == 0)
        {
            if (trt_work.cvr_slide_ratio < 1f)
            {
                trt_work.cvr_slide_ratio += AppMain.GMD_BOSS5_TURRET_COVER_SLIDE_OPEN_RATIO_SPD_F;
                result = 0;
            }
            else
            {
                trt_work.cvr_slide_ratio = 1f;
                result = 1;
            }
        }
        else if (trt_work.cvr_slide_ratio > 0f)
        {
            trt_work.cvr_slide_ratio -= AppMain.GMD_BOSS5_TURRET_COVER_SLIDE_CLOSE_RATIO_SPD_F;
            result = 0;
        }
        else
        {
            trt_work.cvr_slide_ratio = 0f;
            result = 1;
        }
        NNS_MATRIX nns_MATRIX = GlobalPool <NNS_MATRIX> .Alloc();

        float num = 1f + trt_work.cvr_slide_ratio * (AppMain.GMD_BOSS5_TURRET_COVER_SLIDE_SCALE_MAX - 1f);

        AppMain.nnMakeRotateXMatrix(nns_MATRIX, AkMath.DEGtoA32(trt_work.cvr_slide_ratio * AppMain.GMD_BOSS5_TURRET_COVER_SLIDE_DEG_MAX));
        AppMain.nnScaleMatrix(nns_MATRIX, nns_MATRIX, num, num, num);
        AppMain.GmBsCmnSetCNMMtx(gms_BOSS5_BODY_WORK.cnm_mgr_work, nns_MATRIX, gms_BOSS5_BODY_WORK.cover_cnm_reg_id);
        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);

        return(result);
    }
コード例 #21
0
    // Token: 0x06000E75 RID: 3701 RVA: 0x000813E4 File Offset: 0x0007F5E4
    public static void gmBoss5TurretInitPartsPose(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
    {
        NNS_MATRIX nns_MATRIX = GlobalPool <NNS_MATRIX> .Alloc();

        AppMain.GMS_BOSS5_BODY_WORK gms_BOSS5_BODY_WORK = (AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ(trt_work).parent_obj;
        int[] array = new int[]
        {
            gms_BOSS5_BODY_WORK.pole_cnm_reg_id,
            gms_BOSS5_BODY_WORK.cover_cnm_reg_id
        };
        int num = 2;

        AppMain.nnMakeUnitMatrix(nns_MATRIX);
        for (int i = 0; i < num; i++)
        {
            AppMain.GmBsCmnChangeCNMModeNode(gms_BOSS5_BODY_WORK.cnm_mgr_work, array[i], 1U);
            AppMain.GmBsCmnEnableCNMLocalCoordinate(gms_BOSS5_BODY_WORK.cnm_mgr_work, array[i], 1);
            AppMain.GmBsCmnEnableCNMMtxNode(gms_BOSS5_BODY_WORK.cnm_mgr_work, array[i], 1);
            AppMain.GmBsCmnSetCNMMtx(gms_BOSS5_BODY_WORK.cnm_mgr_work, nns_MATRIX, array[i]);
        }
        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);
    }
コード例 #22
0
    // Token: 0x06000E09 RID: 3593 RVA: 0x0007BC8C File Offset: 0x00079E8C
    public static void gmEneKaniAttackEnd(OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)obj_work;
        AppMain.OBS_RECT_WORK     obs_RECT_WORK     = gms_ENEMY_3D_WORK.ene_com.rect_work[1];
        AppMain.GMS_ENE_KANI_WORK gms_ENE_KANI_WORK = (AppMain.GMS_ENE_KANI_WORK)obj_work;
        NNS_MATRIX nns_MATRIX = AppMain.GmEneUtilGetNodeMatrix(gms_ENE_KANI_WORK.node_work, 16);
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        nns_VECTOR.x = nns_MATRIX.M03 - AppMain.FX_FX32_TO_F32(obj_work.pos.x);
        nns_VECTOR.y = nns_MATRIX.M13 - AppMain.FX_FX32_TO_F32(-obj_work.pos.y);
        nns_VECTOR.z = nns_MATRIX.M23 - AppMain.FX_FX32_TO_F32(obj_work.pos.z);
        if ((obj_work.disp_flag & 1U) != 0U)
        {
            nns_VECTOR.x = -nns_VECTOR.x;
        }
        AppMain.ObjRectWorkSet(obs_RECT_WORK, ( short )(-11 + ( short )nns_VECTOR.x), ( short )(-24 - ( short )nns_VECTOR.y), ( short )(11 + ( short )nns_VECTOR.x), ( short )-( short )nns_VECTOR.y);
        obs_RECT_WORK.flag |= 4U;
        if (AppMain.GmBsCmnIsActionEnd(obj_work) != 0)
        {
            obj_work.ppFunc = AppMain.gmEneKaniWalkInit;
        }
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);
    }
コード例 #23
0
    // Token: 0x060003FB RID: 1019 RVA: 0x000206E8 File Offset: 0x0001E8E8
    private static void gmEneHariJetEfctMain(OBS_OBJECT_WORK obj_work)
    {
        NNS_MATRIX nns_MATRIX = (NNS_MATRIX)obj_work.user_work_OBJECT;
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        if (obj_work.parent_obj == null)
        {
            obj_work.flag |= 4U;
            return;
        }
        nns_VECTOR.x = nns_MATRIX.M03 - AppMain.FXM_FX32_TO_FLOAT(obj_work.parent_obj.pos.x);
        nns_VECTOR.y = -nns_MATRIX.M13 - AppMain.FXM_FX32_TO_FLOAT(obj_work.parent_obj.pos.y);
        nns_VECTOR.z = nns_MATRIX.M23 - AppMain.FXM_FX32_TO_FLOAT(obj_work.parent_obj.pos.z);
        if ((obj_work.parent_obj.disp_flag & 1U) != 0U)
        {
            nns_VECTOR.x = -nns_VECTOR.x;
            nns_VECTOR.z = -nns_VECTOR.z;
        }
        nns_VECTOR.y += 5f;
        AppMain.GmComEfctSetDispOffsetF((AppMain.GMS_EFFECT_3DES_WORK)obj_work, nns_VECTOR.x, nns_VECTOR.y, nns_VECTOR.z);
        AppMain.GmEffectDefaultMainFuncDeleteAtEnd(obj_work);
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);
    }
コード例 #24
0
    // Token: 0x060018AE RID: 6318 RVA: 0x000E130C File Offset: 0x000DF50C
    private static void GmGmkBreakLandSetLight()
    {
        NNS_RGBA   nns_RGBA   = default(NNS_RGBA);
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        nns_VECTOR.x = -0.5f;
        nns_VECTOR.y = -0.05f;
        nns_VECTOR.z = -1f;
        nns_RGBA.r   = 0.65f;
        nns_RGBA.g   = 0.65f;
        nns_RGBA.b   = 0.65f;
        AppMain.nnNormalizeVector(nns_VECTOR, nns_VECTOR);
        AppMain.ObjDrawSetParallelLight(AppMain.NNE_LIGHT_1, ref nns_RGBA, 1f, nns_VECTOR);
        nns_VECTOR.x = 0.4f;
        nns_VECTOR.y = -0.05f;
        nns_VECTOR.z = -1f;
        nns_RGBA.r   = 0.65f;
        nns_RGBA.g   = 0.65f;
        nns_RGBA.b   = 0.65f;
        AppMain.nnNormalizeVector(nns_VECTOR, nns_VECTOR);
        AppMain.ObjDrawSetParallelLight(AppMain.NNE_LIGHT_2, ref nns_RGBA, 1f, nns_VECTOR);
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);
    }
コード例 #25
0
    // Token: 0x06001175 RID: 4469 RVA: 0x0009915C File Offset: 0x0009735C
    private static void GmWaterSurfaceDrawNoWaterField(float left, float top, float right, float bottom)
    {
        AppMain.AMS_PARAM_DRAW_PRIMITIVE ams_PARAM_DRAW_PRIMITIVE = GlobalPool <AppMain.AMS_PARAM_DRAW_PRIMITIVE> .Alloc();

        ams_PARAM_DRAW_PRIMITIVE.aTest  = 0;
        ams_PARAM_DRAW_PRIMITIVE.zMask  = 0;
        ams_PARAM_DRAW_PRIMITIVE.zTest  = 1;
        ams_PARAM_DRAW_PRIMITIVE.ablend = 1;
        ams_PARAM_DRAW_PRIMITIVE.noSort = 1;
        AppMain.NNS_PRIM3D_PC[] array = AppMain.amDrawAlloc_NNS_PRIM3D_PC(6);
        float z = AppMain.FX_FX32_TO_F32(1310720);

        array[0].Pos.Assign(left, top, z);
        array[1].Pos.Assign(right, top, z);
        array[2].Pos.Assign(left, bottom, z);
        array[5].Pos.Assign(right, bottom, z);
        uint col = AppMain.AMD_RGBA8888(byte.MaxValue, byte.MaxValue, byte.MaxValue, 0);

        array[0].Col = col;
        array[1].Col = col;
        array[2].Col = col;
        array[5].Col = col;
        array[3]     = array[1];
        array[4]     = array[2];
        ams_PARAM_DRAW_PRIMITIVE.format3D = 2;
        ams_PARAM_DRAW_PRIMITIVE.type     = 0;
        ams_PARAM_DRAW_PRIMITIVE.vtxPC3D  = array;
        ams_PARAM_DRAW_PRIMITIVE.texlist  = null;
        ams_PARAM_DRAW_PRIMITIVE.texId    = 0;
        ams_PARAM_DRAW_PRIMITIVE.count    = 6;
        ams_PARAM_DRAW_PRIMITIVE.sortZ    = -1f;
        AppMain.gmWaterSurfaceMatrixPush(9U);
        AppMain.amDrawPrimitive3D(9U, ams_PARAM_DRAW_PRIMITIVE);
        AppMain.gmWaterSurfaceMatrixPop(9U);
        GlobalPool <AppMain.AMS_PARAM_DRAW_PRIMITIVE> .Release(ams_PARAM_DRAW_PRIMITIVE);
    }
コード例 #26
0
    // Token: 0x06000E78 RID: 3704 RVA: 0x00081508 File Offset: 0x0007F708
    public static int gmBoss5TurretUpdateSlideTurret(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
    {
        AppMain.GMS_BOSS5_BODY_WORK gms_BOSS5_BODY_WORK = (AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ(trt_work).parent_obj;
        int result;

        if (trt_work.trt_slide_type == 0)
        {
            if (trt_work.trt_slide_length < AppMain.GMD_BOSS5_TURRET_SLIDE_LENGTH_MAX)
            {
                trt_work.trt_slide_length += AppMain.GMD_BOSS5_TURRET_SLIDE_RAISE_SPD_F;
                result = 0;
            }
            else
            {
                trt_work.trt_slide_length = AppMain.GMD_BOSS5_TURRET_SLIDE_LENGTH_MAX;
                result = 1;
            }
        }
        else if (trt_work.trt_slide_length > 0f)
        {
            trt_work.trt_slide_length -= AppMain.GMD_BOSS5_TURRET_SLIDE_LOWER_SPD_F;
            result = 0;
        }
        else
        {
            trt_work.trt_slide_length = 0f;
            result = 1;
        }
        NNS_MATRIX nns_MATRIX = GlobalPool <NNS_MATRIX> .Alloc();

        AppMain.nnMakeTranslateMatrix(nns_MATRIX, 0f, trt_work.trt_slide_length + AppMain.GMD_BOSS5_TURRET_SLIDE_POLE_DISP_OFST_Y, 0f);
        AppMain.GmBsCmnSetCNMMtx(gms_BOSS5_BODY_WORK.cnm_mgr_work, nns_MATRIX, gms_BOSS5_BODY_WORK.pole_cnm_reg_id);
        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);

        return(result);
    }
コード例 #27
0
    // Token: 0x06001543 RID: 5443 RVA: 0x000B90C8 File Offset: 0x000B72C8
    public void amIPhoneInitNN(Rectangle port)
    {
        OpenGL.init(m_game, m_graphicsDevice);

        var scalar       = 1f;
        var scaledWidth  = 480f;
        var scaledHeight = 320f;

        ScaleProportions(ref scaledWidth, ref scaledHeight, port.Width, port.Height, out scalar);

        OpenGL.glViewport(0, 0, (int)port.Width, (int)port.Height);

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

        NNS_MATRIX nns_MATRIX_Viewport = GlobalPool <NNS_MATRIX> .Alloc();

        NNS_MATRIX nns_MATRIX_Scale = GlobalPool <NNS_MATRIX> .Alloc();

        new NNS_VECTOR(0f, 0f, -1f);
        new NNS_RGBA(1f, 1f, 1f, 1f);
        AppMain.NNS_CONFIG_GL config;
        config.WindowWidth  = (int)port.Width;
        config.WindowHeight = (int)port.Height;
        this.nnConfigureSystemGL(config);

        nnMakePerspectiveMatrix(nns_MATRIX_Viewport, NNM_DEGtoA32(45f), (float)port.Height / (float)port.Width, 1f, 10000f);
        nnMakeScaleMatrix(nns_MATRIX_Scale, scalar, scalar, scalar);
        nnMultiplyMatrix(nns_MATRIX, nns_MATRIX_Viewport, nns_MATRIX_Scale);
        nnSetProjection(nns_MATRIX, 0);

        _am_draw_video.draw_aspect = (float)port.Height / (float)port.Width;
        _am_draw_video.draw_width  = (float)port.Width;
        _am_draw_video.draw_height = (float)port.Height;
        _am_draw_video.disp_width  = (float)port.Width;
        _am_draw_video.disp_height = (float)port.Height;
        _am_draw_video.width_2d    = (float)scaledWidth;
        _am_draw_video.height_2d   = (float)scaledHeight;

        _am_draw_video.scale_x_2d = scaledWidth / port.Width;
        _am_draw_video.scale_y_2d = scaledHeight / port.Height;
        _am_draw_video.base_x_2d  = (port.Width - scaledWidth) / 2;
        _am_draw_video.base_y_2d  = (port.Height - scaledHeight) / 2;

        _am_draw_video.wide_screen  = true;
        _am_draw_video.refresh_rate = 60f;
        _am_draw_video.scalar       = scalar * 0.66f;

        g_gs_main_sys_info.sys_disp_width  = scaledWidth;
        g_gs_main_sys_info.sys_disp_height = scaledHeight;

        if (AppMain.g_gs_main_sys_info.stage_id == 9)
        {
            ObjInitDispParams((short)((double)AppMain.GMD_OBJ_LCD_X * 1.42), (short)((double)AppMain.GMD_OBJ_LCD_X * 1.42), (float)AppMain.GSD_DISP_WIDTH, (float)AppMain.GSD_DISP_HEIGHT);
        }
        else
        {
            ObjInitDispParams((short)AppMain.GSD_DISP_WIDTH, (short)AppMain.GSD_DISP_HEIGHT, (float)AppMain.GSD_DISP_WIDTH, (float)AppMain.GSD_DISP_HEIGHT);
        }

        amRenderInit();
        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);
    }
コード例 #28
0
    // Token: 0x06001B08 RID: 6920 RVA: 0x000F5E48 File Offset: 0x000F4048
    public static void GmGmkPulleyDrawServerMain()
    {
        if (!AppMain.GmMainIsDrawEnable())
        {
            return;
        }
        AppMain.GMS_GMK_PULLEY_MANAGER gms_GMK_PULLEY_MANAGER = AppMain.gm_gmk_pulley_manager;
        if (gms_GMK_PULLEY_MANAGER.num <= 0U)
        {
            return;
        }
        AppMain.AMS_PARAM_DRAW_PRIMITIVE ams_PARAM_DRAW_PRIMITIVE = GlobalPool <AppMain.AMS_PARAM_DRAW_PRIMITIVE> .Alloc();

        ams_PARAM_DRAW_PRIMITIVE.type    = 1;
        ams_PARAM_DRAW_PRIMITIVE.ablend  = 0;
        ams_PARAM_DRAW_PRIMITIVE.bldSrc  = 768;
        ams_PARAM_DRAW_PRIMITIVE.bldDst  = 774;
        ams_PARAM_DRAW_PRIMITIVE.bldMode = 32774;
        ams_PARAM_DRAW_PRIMITIVE.aTest   = 1;
        ams_PARAM_DRAW_PRIMITIVE.zMask   = 0;
        ams_PARAM_DRAW_PRIMITIVE.zTest   = 1;
        ams_PARAM_DRAW_PRIMITIVE.noSort  = 1;
        ams_PARAM_DRAW_PRIMITIVE.texlist = gms_GMK_PULLEY_MANAGER.texlist;
        ams_PARAM_DRAW_PRIMITIVE.texId   = ( int )gms_GMK_PULLEY_MANAGER.tex_id;
        uint col = AppMain.GmMainGetLightColor();

        ams_PARAM_DRAW_PRIMITIVE.uwrap    = 1;
        ams_PARAM_DRAW_PRIMITIVE.vwrap    = 1;
        ams_PARAM_DRAW_PRIMITIVE.count    = ( int )(gms_GMK_PULLEY_MANAGER.num * 6U - 2U);
        ams_PARAM_DRAW_PRIMITIVE.vtxPCT3D = AppMain.amDrawAlloc_NNS_PRIM3D_PCT(ams_PARAM_DRAW_PRIMITIVE.count);
        AppMain.NNS_PRIM3D_PCT[] buffer = ams_PARAM_DRAW_PRIMITIVE.vtxPCT3D.buffer;
        int offset = ams_PARAM_DRAW_PRIMITIVE.vtxPCT3D.offset;

        ams_PARAM_DRAW_PRIMITIVE.format3D = 4;
        NNS_MATRIX nns_MATRIX = GlobalPool <NNS_MATRIX> .Alloc();

        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        int num = 0;

        while (( long )num < ( long )(( ulong )gms_GMK_PULLEY_MANAGER.num))
        {
            int num2 = offset + num * 6;
            int num3 = offset + num * 6 - 1;
            int num4 = offset + num * 6 + 4;
            AppMain.GMS_GMK_PULLEY_REGISTER gms_GMK_PULLEY_REGISTER = gms_GMK_PULLEY_MANAGER.reg[num];
            Vector3 vector;
            vector.X = AppMain.FX_FX32_TO_F32(gms_GMK_PULLEY_REGISTER.vec.x);
            vector.Y = AppMain.FX_FX32_TO_F32(gms_GMK_PULLEY_REGISTER.vec.y);
            vector.Z = AppMain.FX_FX32_TO_F32(gms_GMK_PULLEY_REGISTER.vec.z);
            NNS_VECTOR[]   array  = AppMain.gm_gmk_pulley_pos[(int)gms_GMK_PULLEY_REGISTER.type];
            NNS_TEXCOORD[] array2 = AppMain.gm_gmk_pulley_tex[(int)gms_GMK_PULLEY_REGISTER.type];
            if (gms_GMK_PULLEY_REGISTER.flip != 0)
            {
                AppMain.nnMakeRotateYMatrix(nns_MATRIX, ( int )gms_GMK_PULLEY_REGISTER.flip);
            }
            float num5 = 0f;
            if (gms_GMK_PULLEY_REGISTER.type == 2)
            {
                num5 = 2f;
            }
            for (int i = 0; i < 4; i++)
            {
                if (gms_GMK_PULLEY_REGISTER.flip != 0)
                {
                    AppMain.nnTransformVector(nns_VECTOR, nns_MATRIX, array[i]);
                }
                else
                {
                    AppMain.nnCopyVector(nns_VECTOR, array[i]);
                }
                int num6 = num2 + i;
                buffer[num6].Pos.x = nns_VECTOR.x + vector.X;
                buffer[num6].Pos.y = nns_VECTOR.y - vector.Y + num5;
                buffer[num6].Pos.z = nns_VECTOR.z + vector.Z;
                buffer[num6].Tex.u = array2[i].u;
                buffer[num6].Tex.v = array2[i].v;
                buffer[num6].Col   = col;
            }
            if (num != 0)
            {
                buffer[num3] = buffer[num2];
            }
            if (( long )num != ( long )(( ulong )(gms_GMK_PULLEY_MANAGER.num - 1U)))
            {
                buffer[num4] = buffer[num2 + 3];
            }
            num++;
        }
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);

        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);

        NNS_MATRIX nns_MATRIX2 = GlobalPool <NNS_MATRIX> .Alloc();

        AppMain.nnMakeUnitMatrix(nns_MATRIX2);
        AppMain.amMatrixPush(nns_MATRIX2);
        AppMain.ObjDraw3DNNDrawPrimitive(ams_PARAM_DRAW_PRIMITIVE, 0U, 0, 0);
        AppMain.amMatrixPop();
        GlobalPool <AppMain.AMS_PARAM_DRAW_PRIMITIVE> .Release(ams_PARAM_DRAW_PRIMITIVE);

        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX2);

        gms_GMK_PULLEY_MANAGER.num = 0U;
    }
コード例 #29
0
    // Token: 0x06000127 RID: 295 RVA: 0x0000D158 File Offset: 0x0000B358
    public static void Init3d(int cam_id)
    {
        if (obj_camera_sys == null)
        {
            return;
        }

        if (obj_camera_sys.obj_camera[cam_id] == null)
        {
            NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

            int num = Init(cam_id, nns_VECTOR, 0, 0, 61438);
            if (num == -1)
            {
                return;
            }

            GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);
        }

        NNS_MATRIX scaleMatrix = GlobalPool <NNS_MATRIX> .Alloc();

        nnMakeScaleMatrix(scaleMatrix, AppMain.AMD_SCREEN_SCALE, AppMain.AMD_SCREEN_SCALE, AppMain.AMD_SCREEN_SCALE);

        OBS_CAMERA obs_CAMERA = obj_camera_sys.obj_camera[cam_id];

        obs_CAMERA.flag  |= 16U;
        obs_CAMERA.znear  = 1f;
        obs_CAMERA.zfar   = 60000f;
        obs_CAMERA.aspect = AppMain.AMD_SCREEN_ASPECT;
        obs_CAMERA.fovy   = AppMain.NNM_DEGtoA32(45f);
        AppMain.nnMakePerspectiveMatrix(obs_CAMERA.prj_pers_mtx, obs_CAMERA.fovy, obs_CAMERA.aspect, obs_CAMERA.znear,
                                        obs_CAMERA.zfar);
        //nnMultiplyMatrix(obs_CAMERA.prj_pers_mtx, obs_CAMERA.prj_pers_mtx, scaleMatrix);
        obs_CAMERA.scale = 0.078125f;
        float num2 = AppMain.g_obj.disp_height * obs_CAMERA.scale * 0.5f * 1f;
        float num3 = num2 * obs_CAMERA.aspect;

        obs_CAMERA.left   = -num3;
        obs_CAMERA.right  = num3;
        obs_CAMERA.bottom = -num2;
        obs_CAMERA.top    = num2;
        AppMain.nnMakeOrthoMatrix(obs_CAMERA.prj_ortho_mtx, obs_CAMERA.left, obs_CAMERA.right, obs_CAMERA.bottom,
                                  obs_CAMERA.top, obs_CAMERA.znear, obs_CAMERA.zfar);
        AppMain.nnMultiplyMatrix(obs_CAMERA.prj_ortho_mtx, obs_CAMERA.prj_ortho_mtx, scaleMatrix);
        switch (obs_CAMERA.camera_type)
        {
        case OBE_CAMERA_TYPE.OBE_CAMERA_TYPE_TARGET_ROLL:
        {
            AppMain.NNS_CAMERA_TARGET_ROLL nns_CAMERA_TARGET_ROLL = new AppMain.NNS_CAMERA_TARGET_ROLL();
            GetTargetRollCamera(obs_CAMERA, nns_CAMERA_TARGET_ROLL);
            AppMain.nnMakeTargetRollCameraViewMatrix(obs_CAMERA.view_mtx, nns_CAMERA_TARGET_ROLL);
            return;
        }

        case OBE_CAMERA_TYPE.OBE_CAMERA_TYPE_TARGET_UP_TARGET:
        {
            AppMain.NNS_CAMERA_TARGET_UPTARGET
                nns_CAMERA_TARGET_UPTARGET = new AppMain.NNS_CAMERA_TARGET_UPTARGET();
            GetTargetUpTargetCamera(obs_CAMERA, nns_CAMERA_TARGET_UPTARGET);
            AppMain.nnMakeTargetUpTargetCameraViewMatrix(obs_CAMERA.view_mtx, nns_CAMERA_TARGET_UPTARGET);
            return;
        }

        case OBE_CAMERA_TYPE.OBE_CAMERA_TYPE_TARGET_UP_VEC:
        {
            AppMain.NNS_CAMERA_TARGET_UPVECTOR
                nns_CAMERA_TARGET_UPVECTOR = new AppMain.NNS_CAMERA_TARGET_UPVECTOR();
            GetTargetUpVecCamera(obs_CAMERA, nns_CAMERA_TARGET_UPVECTOR);
            AppMain.nnMakeTargetUpVectorCameraViewMatrix(obs_CAMERA.view_mtx, nns_CAMERA_TARGET_UPVECTOR);
            return;
        }

        default:
            return;
        }
    }
コード例 #30
0
    // Token: 0x06000670 RID: 1648 RVA: 0x00039260 File Offset: 0x00037460
    public static void gmGmkTruckMain(OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_GMK_TRUCK_WORK gms_GMK_TRUCK_WORK = (AppMain.GMS_GMK_TRUCK_WORK)obj_work;
        if (gms_GMK_TRUCK_WORK.target_player == null)
        {
            AppMain.gmGmkTruckInitDeathFall(obj_work, null);
            obj_work.ppFunc(obj_work);
            return;
        }
        if ((gms_GMK_TRUCK_WORK.target_player.player_flag & 262144U) == 0U)
        {
            AppMain.gmGmkTruckInitFree(obj_work, gms_GMK_TRUCK_WORK.target_player);
            obj_work.ppFunc(obj_work);
            return;
        }
        if ((gms_GMK_TRUCK_WORK.target_player.gmk_flag2 & 64U) != 0U)
        {
            AppMain.gmGmkTruckInitDeathFall(obj_work, gms_GMK_TRUCK_WORK.target_player);
            obj_work.ppFunc(obj_work);
            return;
        }
        if ((gms_GMK_TRUCK_WORK.target_player.player_flag & 1024U) != 0U)
        {
            obj_work.pos.z = 983040;
        }
        GMS_PLAYER_WORK target_player = gms_GMK_TRUCK_WORK.target_player;

        obj_work.prev_pos   = obj_work.pos;
        obj_work.pos.x      = target_player.obj_work.pos.x;
        obj_work.pos.y      = target_player.obj_work.pos.y;
        obj_work.move.x     = obj_work.pos.x - obj_work.prev_pos.x;
        obj_work.move.y     = obj_work.pos.y - obj_work.prev_pos.y;
        obj_work.move.z     = obj_work.pos.z - obj_work.prev_pos.z;
        obj_work.dir        = target_player.obj_work.dir;
        obj_work.dir.z      = ( ushort )(obj_work.dir.z + target_player.obj_work.dir_fall);
        obj_work.vib_timer  = target_player.obj_work.vib_timer;
        obj_work.disp_flag &= 4294967279U;
        if ((target_player.obj_work.move_flag & 1U) != 0U)
        {
            gms_GMK_TRUCK_WORK.tire_dir_spd = target_player.obj_work.spd_m;
        }
        else
        {
            gms_GMK_TRUCK_WORK.tire_dir_spd = AppMain.ObjSpdDownSet(gms_GMK_TRUCK_WORK.tire_dir_spd, 128);
        }
        AppMain.GMS_GMK_TRUCK_WORK gms_GMK_TRUCK_WORK2 = gms_GMK_TRUCK_WORK;
        gms_GMK_TRUCK_WORK2.tire_dir += ( ushort )AppMain.FX_Div(gms_GMK_TRUCK_WORK.tire_dir_spd, 65536);
        int  num  = -1;
        uint num2 = 0U;

        if ((0 <= target_player.act_state && target_player.act_state <= 7) || target_player.act_state == 69 || target_player.act_state == 70 || target_player.act_state == 74 || target_player.act_state == 76 || target_player.act_state == 75)
        {
            num  = 3;
            num2 = 4U;
        }
        else if (71 <= target_player.act_state && target_player.act_state <= 72)
        {
            num  = 0;
            num2 = 4U;
        }
        else if ((target_player.obj_work.move_flag & 1U) == 0U)
        {
            num  = 1;
            num2 = 4U;
        }
        else if ((target_player.obj_work.move_flag & 1U) != 0U && (target_player.obj_work.move_flag & 4194304U) == 0U)
        {
            num = 2;
        }
        else if (obj_work.obj_3d.act_id[0] == 2 && (obj_work.disp_flag & 8U) != 0U)
        {
            if (target_player.obj_work.spd_m != 0)
            {
                num = 0;
            }
            else
            {
                num = 3;
            }
            num2 = 4U;
        }
        else if (11 <= target_player.act_state && target_player.act_state <= 16 && (obj_work.obj_3d.act_id[0] != 2 || (obj_work.disp_flag & 8U) != 0U))
        {
            num  = 3;
            num2 = 4U;
        }
        if (num != -1 && obj_work.obj_3d.act_id[0] != num)
        {
            AppMain.ObjDrawObjectActionSet3DNNBlend(obj_work, num);
            obj_work.disp_flag |= num2;
        }
        if (obj_work.obj_3d.act_id[0] != 3 && (11 > target_player.act_state || target_player.act_state > 16 || obj_work.obj_3d.act_id[0] != 2))
        {
            obj_work.obj_3d.frame[0] = target_player.obj_work.obj_3d.frame[0];
        }
        gms_GMK_TRUCK_WORK.slope_f_y_dir = 0;
        gms_GMK_TRUCK_WORK.slope_f_z_dir = 0;
        gms_GMK_TRUCK_WORK.slope_z_dir   = 0;
        float num3;
        float num4;
        float num5;

        if ((target_player.player_flag & 4U) == 0U)
        {
            num3 = 0f;
            num4 = 8f;
            num5 = -5f;
        }
        else
        {
            num3 = 0f;
            num4 = 8f;
            num5 = 5f;
        }
        AppMain.nnMakeUnitMatrix(obj_work.obj_3d.user_obj_mtx_r);
        AppMain.nnTranslateMatrix(obj_work.obj_3d.user_obj_mtx_r, obj_work.obj_3d.user_obj_mtx_r, gms_GMK_TRUCK_WORK.trans_r.x, gms_GMK_TRUCK_WORK.trans_r.y, gms_GMK_TRUCK_WORK.trans_r.z);
        if ((target_player.gmk_flag & 262144U) != 0U && target_player.gmk_work3 != 0)
        {
            NNS_MATRIX nns_MATRIX = GlobalPool <NNS_MATRIX> .Alloc();

            gms_GMK_TRUCK_WORK.slope_z_dir   = ( ushort )target_player.gmk_work3;
            gms_GMK_TRUCK_WORK.slope_f_z_dir = ( ushort )(AppMain.MTM_MATH_ABS(target_player.gmk_work3) >> 2);
            gms_GMK_TRUCK_WORK.slope_f_y_dir = ( ushort )(target_player.gmk_work3 >> 2);
            AppMain.nnMakeUnitMatrix(nns_MATRIX);
            AppMain.nnTranslateMatrix(nns_MATRIX, nns_MATRIX, -num3, -num4, -num5);
            AppMain.nnRotateXMatrix(nns_MATRIX, nns_MATRIX, ( int )gms_GMK_TRUCK_WORK.slope_z_dir);
            AppMain.nnRotateYMatrix(nns_MATRIX, nns_MATRIX, ( int )gms_GMK_TRUCK_WORK.slope_f_y_dir);
            AppMain.nnRotateZMatrix(nns_MATRIX, nns_MATRIX, ( int )gms_GMK_TRUCK_WORK.slope_f_z_dir);
            AppMain.nnTranslateMatrix(nns_MATRIX, nns_MATRIX, num3, num4, num5);
            AppMain.nnMultiplyMatrix(obj_work.obj_3d.user_obj_mtx_r, obj_work.obj_3d.user_obj_mtx_r, nns_MATRIX);
            GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);
        }
        if ((target_player.obj_work.move_flag & 1U) != 0U && AppMain.MTM_MATH_ABS(target_player.obj_work.spd_m) >= AppMain.GMD_GMK_TRUCK_SPARK_EFCT_SMALL_MIN_SPD && (gms_GMK_TRUCK_WORK.efct_f_spark == null || gms_GMK_TRUCK_WORK.efct_b_spark == null))
        {
            AppMain.gmGmkTruckCreateSparkEfct(gms_GMK_TRUCK_WORK, 27);
        }
        if (gms_GMK_TRUCK_WORK.h_snd_lorry.au_player.sound == null || gms_GMK_TRUCK_WORK.h_snd_lorry.au_player.sound[0] == null)
        {
            gms_GMK_TRUCK_WORK.h_snd_lorry = GsSound.AllocSeHandle();
            gms_GMK_TRUCK_WORK.h_snd_lorry.au_player.SetAisac("Speed", 0f);
            GmSound.PlaySEForce("Lorry", gms_GMK_TRUCK_WORK.h_snd_lorry, true);
        }
        AppMain.gmGmkTruckSetMoveSeParam(obj_work, gms_GMK_TRUCK_WORK.h_snd_lorry, target_player, ((target_player.player_flag & 16777216U) != 0U) ? 1 : 0);
    }