コード例 #1
0
 // Token: 0x06000955 RID: 2389 RVA: 0x00054294 File Offset: 0x00052494
 private static void gmEneKamaHandAttackInit(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.VecFx32           vecFx = AppMain.gmEneKamaGetPlayerVectorFx(obj_work);
     obj_work.spd.x          = ( int )(( float )vecFx.x * 1.75f);
     obj_work.spd.y          = ( int )(( float )vecFx.y * 1.75f);
     obj_work.ppFunc         = AppMain.gmEneKamaHandAttackMain;
     gms_ENE_KAMA_WORK.timer = 120;
     if ((gms_ENE_KAMA_WORK2.ene_3d_work.ene_com.obj_work.disp_flag & 2U) != 0U)
     {
         obj_work.disp_flag |= 2U;
     }
     if ((gms_ENE_KAMA_WORK2.ene_3d_work.ene_com.obj_work.disp_flag & 1U) != 0U)
     {
         gms_ENE_KAMA_WORK.rot_z_add = -AkMath.DEGtoA32(15);
     }
     else
     {
         gms_ENE_KAMA_WORK.rot_z_add = AkMath.DEGtoA32(15);
     }
     AppMain.OBS_RECT_WORK obs_RECT_WORK = gms_ENE_KAMA_WORK.ene_3d_work.ene_com.rect_work[1];
     AppMain.ObjRectWorkSet(obs_RECT_WORK, -8, -8, 8, 8);
     obs_RECT_WORK.flag |= 4U;
     obj_work.flag      |= 512U;
     obj_work.pos.z      = 655360;
     GmSound.PlaySE("Kama");
 }
コード例 #2
0
 // Token: 0x06000705 RID: 1797 RVA: 0x0003E8D0 File Offset: 0x0003CAD0
 private static bool GmBoss4UtilUpdateFlicker(OBS_OBJECT_WORK obj_work, AppMain.GMS_BOSS4_FLICKER_WORK flk_work)
 {
     AppMain.MTM_ASSERT(obj_work);
     AppMain.MTM_ASSERT(obj_work.obj_3d);
     AppMain.MTM_ASSERT(flk_work);
     if (!flk_work.is_active)
     {
         return(true);
     }
     if (flk_work.cycles != 0U)
     {
         if (flk_work.interval_timer != 0U)
         {
             flk_work.interval_timer -= 1U;
         }
         else
         {
             flk_work.cur_angle += flk_work.add_timer;
             if (flk_work.cur_angle >= AkMath.DEGtoA32(360f))
             {
                 flk_work.cur_angle      = 0;
                 flk_work.cycles        -= 1U;
                 flk_work.interval_timer = flk_work.interval_flk;
             }
         }
         AppMain.GmBsCmnSetObject3DNNFadedColor(obj_work, flk_work.color, (1f - AppMain.nnCos(flk_work.cur_angle)) / 2f);
         return(false);
     }
     if (flk_work.is_active)
     {
         AppMain.GmBoss4UtilEndFlicker(obj_work, flk_work);
     }
     return(true);
 }
コード例 #3
0
    // Token: 0x060005F3 RID: 1523 RVA: 0x00034ABC File Offset: 0x00032CBC
    private static AppMain.DMS_STFRL_SONIC_WORK DmStfrlMdlCtrlSetSonicObj()
    {
        OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.OBM_OBJECT_TASK_DETAIL_INIT(24576, 0, 0, 0, () => new AppMain.DMS_STFRL_SONIC_WORK(), "STAFFROLL_SONIC");

        AppMain.DMS_STFRL_SONIC_WORK dms_STFRL_SONIC_WORK = (AppMain.DMS_STFRL_SONIC_WORK)obs_OBJECT_WORK;
        AppMain.ObjObjectCopyAction3dNNModel(obs_OBJECT_WORK, AppMain.dm_stfrl_sonic_obj_3d_list[0], obs_OBJECT_WORK.obj_3d);
        obs_OBJECT_WORK.obj_3d.blend_spd = 0.0625f;
        AppMain.ObjDrawObjectSetToon(obs_OBJECT_WORK);
        AppMain.OBS_ACTION3D_NN_WORK obj_3d = dms_STFRL_SONIC_WORK.obj_work.obj_3d;
        AppMain.ObjObjectAction3dNNMotionLoad(obs_OBJECT_WORK, 0, true, GmPlayer.g_gm_player_data_work[( int )(( UIntPtr )0)][4], null, 0, null, 136, 16);
        obs_OBJECT_WORK.flag            |= 16U;
        obs_OBJECT_WORK.disp_flag       |= 4194309U;
        obs_OBJECT_WORK.disp_flag       &= 4294967263U;
        obs_OBJECT_WORK.disp_flag       |= 150995456U;
        obs_OBJECT_WORK.obj_3d.drawflag |= 8388608U;
        obs_OBJECT_WORK.pos.x            = 0;
        obs_OBJECT_WORK.pos.y            = 98304;
        obs_OBJECT_WORK.pos.z            = -12288;
        obs_OBJECT_WORK.dir.y            = ( ushort )AkMath.DEGtoA16(90);
        obs_OBJECT_WORK.obj_3d.draw_state.alpha.alpha = 1f;
        dms_STFRL_SONIC_WORK.alpha = 1f;
        AppMain.ObjDrawObjectActionSet(obs_OBJECT_WORK, 21);
        obs_OBJECT_WORK.ppOut  = AppMain.dmStfrlMdlCtrlSonicDrawFunc;
        obs_OBJECT_WORK.ppFunc = AppMain.dmStfrlMdlCtrlSonicProcWaitSetup;
        return(dms_STFRL_SONIC_WORK);
    }
コード例 #4
0
 // Token: 0x0600078F RID: 1935 RVA: 0x00043078 File Offset: 0x00041278
 public static void gmEneTStarWalkMain(OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_T_STAR_WORK gms_ENE_T_STAR_WORK = (AppMain.GMS_ENE_T_STAR_WORK)obj_work;
     obj_work.disp_flag |= 4U;
     if (gms_ENE_T_STAR_WORK.rotate > 0)
     {
         obj_work.dir.z = ( ushort )(obj_work.dir.z + ( ushort )AkMath.DEGtoA16(10));
         AppMain.GMS_ENE_T_STAR_WORK gms_ENE_T_STAR_WORK2 = gms_ENE_T_STAR_WORK;
         gms_ENE_T_STAR_WORK2.rotate -= 1;
         if (gms_ENE_T_STAR_WORK.rotate == 0)
         {
             obj_work.dir.z = 0;
         }
     }
     if (gms_ENE_T_STAR_WORK.timer > 0)
     {
         gms_ENE_T_STAR_WORK.timer--;
         if (gms_ENE_T_STAR_WORK.timer == 60)
         {
             gms_ENE_T_STAR_WORK.rotate = 36;
         }
         return;
     }
     obj_work.spd.x            = 0;
     obj_work.spd.y            = 0;
     gms_ENE_T_STAR_WORK.timer = 15;
     obj_work.ppFunc           = AppMain.gmEneTStarStopMain;
 }
コード例 #5
0
    // Token: 0x06001030 RID: 4144 RVA: 0x0008CD04 File Offset: 0x0008AF04
    private static void gmEneUniuniNeedleWaitMain(OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_ENE_UNIUNI_WORK gms_ENE_UNIUNI_WORK  = (AppMain.GMS_ENE_UNIUNI_WORK)obj_work;
        AppMain.GMS_ENE_UNIUNI_WORK gms_ENE_UNIUNI_WORK2 = (AppMain.GMS_ENE_UNIUNI_WORK)obj_work.parent_obj;
        int   num   = gms_ENE_UNIUNI_WORK2.rot_y;
        int   rot_x = gms_ENE_UNIUNI_WORK2.rot_x;
        int   rot_z = gms_ENE_UNIUNI_WORK2.rot_z;
        float len   = gms_ENE_UNIUNI_WORK2.len;

        num += AkMath.DEGtoA32(360) / 4 * gms_ENE_UNIUNI_WORK.num;
        num %= AkMath.DEGtoA32(360);
        SNNS_MATRIX snns_MATRIX;

        AppMain.nnMakeRotateXMatrix(out snns_MATRIX, rot_x);
        AppMain.nnRotateZMatrix(ref snns_MATRIX, ref snns_MATRIX, rot_z);
        AppMain.nnRotateYMatrix(ref snns_MATRIX, ref snns_MATRIX, num);
        SNNS_MATRIX snns_MATRIX2;

        AppMain.nnMakeTranslateMatrix(out snns_MATRIX2, len, 0f, 0f);
        SNNS_MATRIX snns_MATRIX3;

        AppMain.nnMultiplyMatrix(out snns_MATRIX3, ref snns_MATRIX, ref snns_MATRIX2);
        SNNS_VECTOR snns_VECTOR;

        AppMain.nnCopyMatrixTranslationVector(out snns_VECTOR, ref snns_MATRIX3);
        obj_work.pos.x = AppMain.FX_F32_TO_FX32(snns_VECTOR.x) + gms_ENE_UNIUNI_WORK2.ene_3d_work.ene_com.obj_work.pos.x;
        obj_work.pos.y = AppMain.FX_F32_TO_FX32(snns_VECTOR.y) + gms_ENE_UNIUNI_WORK2.ene_3d_work.ene_com.obj_work.pos.y;
        obj_work.pos.z = 655360;
        if (gms_ENE_UNIUNI_WORK2.attack != 0 && ( double )snns_VECTOR.y >= ( double )len * 0.98)
        {
            obj_work.ppFunc = AppMain.gmEneUniuniNeedleAttackInit;
        }
    }
コード例 #6
0
    // Token: 0x06000DEF RID: 3567 RVA: 0x0007AAF4 File Offset: 0x00078CF4
    private static OBS_OBJECT_WORK GmEneUnidesInit(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type)
    {
        AppMain.UNREFERENCED_PARAMETER(type);
        OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, () => new AppMain.GMS_ENE_UNIDES_WORK(), "ENE_UNIDES");

        AppMain.GMS_ENEMY_3D_WORK   gms_ENEMY_3D_WORK   = (AppMain.GMS_ENEMY_3D_WORK)obs_OBJECT_WORK;
        AppMain.GMS_ENE_UNIDES_WORK gms_ENE_UNIDES_WORK = (AppMain.GMS_ENE_UNIDES_WORK)obs_OBJECT_WORK;
        AppMain.ObjObjectCopyAction3dNNModel(obs_OBJECT_WORK, AppMain.gm_ene_unides_obj_3d_list[0], gms_ENEMY_3D_WORK.obj_3d);
        AppMain.ObjObjectAction3dNNMotionLoad(obs_OBJECT_WORK, 0, true, AppMain.ObjDataGet(692), null, 0, null);
        AppMain.ObjDrawObjectSetToon(obs_OBJECT_WORK);
        obs_OBJECT_WORK.pos.z = 655360;
        AppMain.OBS_RECT_WORK obs_RECT_WORK = gms_ENEMY_3D_WORK.ene_com.rect_work[1];
        AppMain.ObjRectWorkSet(obs_RECT_WORK, -8, 0, 8, 16);
        obs_RECT_WORK.flag |= 4U;
        obs_RECT_WORK       = gms_ENEMY_3D_WORK.ene_com.rect_work[0];
        AppMain.ObjRectWorkSet(obs_RECT_WORK, -16, -8, 16, 16);
        obs_RECT_WORK.flag |= 4U;
        gms_ENEMY_3D_WORK.ene_com.rect_work[2].flag &= 4294967291U;
        obs_RECT_WORK = gms_ENEMY_3D_WORK.ene_com.rect_work[2];
        AppMain.ObjRectWorkSet(obs_RECT_WORK, -19, -16, 19, 16);
        obs_RECT_WORK.flag        &= 4294967291U;
        obs_OBJECT_WORK.move_flag &= 4294967167U;
        obs_OBJECT_WORK.move_flag |= 256U;
        if ((eve_rec.flag & 1) == 0)
        {
            obs_OBJECT_WORK.disp_flag |= 1U;
            obs_OBJECT_WORK.dir.y      = ( ushort )AkMath.DEGtoA16(45);
        }
        else
        {
            obs_OBJECT_WORK.dir.y = ( ushort )AkMath.DEGtoA16(-45);
        }
        obs_OBJECT_WORK.user_work        = ( uint )(obs_OBJECT_WORK.pos.x + (( int )eve_rec.left << 12));
        obs_OBJECT_WORK.user_flag        = ( uint )(obs_OBJECT_WORK.pos.x + (( int )(eve_rec.left + ( sbyte )eve_rec.width) << 12));
        gms_ENE_UNIDES_WORK.spd_dec      = 76;
        gms_ENE_UNIDES_WORK.spd_dec_dist = 15360;
        gms_ENE_UNIDES_WORK.len          = 17.5f;
        gms_ENE_UNIDES_WORK.rot_x        = AkMath.DEGtoA32(90f);
        gms_ENE_UNIDES_WORK.rot_y        = AkMath.DEGtoA32(0f);
        gms_ENE_UNIDES_WORK.rot_z        = AkMath.DEGtoA32(0f);
        gms_ENE_UNIDES_WORK.num          = 0;
        AppMain.gmEneUnidesWaitInit(obs_OBJECT_WORK);
        for (int i = 0; i < 4; i++)
        {
            OBS_OBJECT_WORK obs_OBJECT_WORK2 = AppMain.GmEventMgrLocalEventBirth(309, pos_x, pos_y, 0, 0, 0, 0, 0, 0);
            obs_OBJECT_WORK2.parent_obj = obs_OBJECT_WORK;
            AppMain.GMS_ENE_UNIDES_WORK gms_ENE_UNIDES_WORK2 = (AppMain.GMS_ENE_UNIDES_WORK)obs_OBJECT_WORK2;
            gms_ENE_UNIDES_WORK2.num = i;
            gms_ENE_UNIDES_WORK.num++;
        }
        gms_ENE_UNIDES_WORK.attack             = 0;
        gms_ENE_UNIDES_WORK.attack_first       = 0;
        gms_ENE_UNIDES_WORK.zoom_now           = 0;
        gms_ENE_UNIDES_WORK.zoom               = 1f;
        obs_OBJECT_WORK.obj_3d.use_light_flag &= 4294967294U;
        obs_OBJECT_WORK.obj_3d.use_light_flag |= 64U;
        return(obs_OBJECT_WORK);
    }
コード例 #7
0
    // Token: 0x06000E12 RID: 3602 RVA: 0x0007BFD4 File Offset: 0x0007A1D4
    public static void GmEneUtilSetMatrixNN(OBS_OBJECT_WORK obj_work, NNS_MATRIX w_mtx)
    {
        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;
        AkMath.NormalizeMtx(user_obj_mtx_r, w_mtx);
    }
コード例 #8
0
    // Token: 0x06000E70 RID: 3696 RVA: 0x0008125C File Offset: 0x0007F45C
    public static void gmBoss5TurretSetRoundFaceRot(AppMain.GMS_BOSS5_TURRET_WORK trt_work, int dir_z_angle, int tilt_near_angle)
    {
        int rz = (int)(65535L & (long)(-(long)dir_z_angle));

        AppMain.nnMakeRotateXZYQuaternion(out trt_work.disp_quat, AkMath.DEGtoA32(90), -tilt_near_angle, AkMath.DEGtoA32(90));
        NNS_QUATERNION nns_QUATERNION;

        AppMain.nnMakeRotateXYZQuaternion(out nns_QUATERNION, 0, 0, rz);
        AppMain.nnMultiplyQuaternion(ref trt_work.disp_quat, ref nns_QUATERNION, ref trt_work.disp_quat);
    }
コード例 #9
0
    // Token: 0x060006EC RID: 1772 RVA: 0x0003DD8C File Offset: 0x0003BF8C
    private static void GmBoss4UtilSetMatrixNN(OBS_OBJECT_WORK obj_work, NNS_MATRIX w_mtx)
    {
        AppMain.MTM_ASSERT(obj_work);
        AppMain.MTM_ASSERT(obj_work.obj_3d);
        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;
        AkMath.NormalizeMtx(user_obj_mtx_r, w_mtx);
    }
コード例 #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: 0x06000503 RID: 1283 RVA: 0x0002B160 File Offset: 0x00029360
    private static void gmBoss5LdPartInitFall(AppMain.GMS_BOSS5_LDPART_WORK ldpart_work)
    {
        OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GMM_BS_OBJ(ldpart_work);
        int             num             = (int)AppMain.mtMathRand() % AppMain.GMD_BOSS5_LAND_LDPART_FALL_XY_DIR_RANGE_DEG;
        int             ang             = AkMath.DEGtoA32(num + (270 - AppMain.GMD_BOSS5_LAND_LDPART_FALL_XY_DIR_RANGE_DEG / 2));
        int             z = AppMain.FX_Mul(AkMath.RandFx(), AppMain.GMD_BOSS5_LAND_LDPART_FALL_Z_SPD_MAX * 2) - AppMain.GMD_BOSS5_LAND_LDPART_FALL_Z_SPD_MAX;

        obs_OBJECT_WORK.spd.y      = ( int )(4096f * AppMain.GMD_BOSS5_LAND_LDPART_FALL_XY_SPD_FL * AppMain.nnSin(ang));
        obs_OBJECT_WORK.spd.x      = ( int )(4096f * AppMain.GMD_BOSS5_LAND_LDPART_FALL_XY_SPD_FL * AppMain.nnCos(ang));
        obs_OBJECT_WORK.spd.z      = z;
        obs_OBJECT_WORK.flag      &= 4294966271U;
        obs_OBJECT_WORK.move_flag |= 128U;
    }
コード例 #12
0
 // Token: 0x06000604 RID: 1540 RVA: 0x000354A4 File Offset: 0x000336A4
 private static void dmStfrlMdlCtrlBodyProcBodyCompInitStart(OBS_OBJECT_WORK obj_work)
 {
     AppMain.DMS_STFRL_BOSS_BODY_WORK dms_STFRL_BOSS_BODY_WORK = (AppMain.DMS_STFRL_BOSS_BODY_WORK)obj_work;
     obj_work.pos.x = 0;
     obj_work.pos.y = -737280;
     obj_work.pos.z = -81920;
     obj_work.dir.y = ( ushort )AkMath.DEGtoA16(300);
     if ((dms_STFRL_BOSS_BODY_WORK.flag & 2U) != 0U)
     {
         obj_work.ppFunc = AppMain.dmStfrlMdlCtrlBodyProcBodyCompStartWait;
         dms_STFRL_BOSS_BODY_WORK.flag &= 4294967293U;
     }
 }
コード例 #13
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);
    }
コード例 #14
0
    // Token: 0x0600103D RID: 4157 RVA: 0x0008D5A0 File Offset: 0x0008B7A0
    public static void gmEneMoguWalkMain(OBS_OBJECT_WORK obj_work)
    {
        GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)];

        AppMain.GMS_ENE_MOGU_WORK gms_ENE_MOGU_WORK = (AppMain.GMS_ENE_MOGU_WORK)obj_work;
        AppMain.gmEneMoguCheckWater(gms_ENE_MOGU_WORK, 0);
        int num  = gms_PLAYER_WORK.obj_work.pos.x - obj_work.pos.x;
        int num2 = gms_PLAYER_WORK.obj_work.pos.y - obj_work.pos.y;
        int num3 = AppMain.FX_Mul(num, num) + AppMain.FX_Mul(num2, num2);

        AppMain.GMS_ENEMY_COM_WORK gms_ENEMY_COM_WORK = (AppMain.GMS_ENEMY_COM_WORK)obj_work;
        if ((gms_ENEMY_COM_WORK.eve_rec.flag & 2) != 0)
        {
            num3 = AppMain.FX_F32_TO_FX32(6400f) + 1;
            gms_ENE_MOGU_WORK.wait_time = 216000;
        }
        if (num3 <= AppMain.FX_F32_TO_FX32(6400f))
        {
            gms_ENE_MOGU_WORK.wait_time = 0;
            if ((obj_work.disp_flag & 1U) != 0U)
            {
                if (AppMain.GmEneComTargetIsLeft(obj_work, gms_PLAYER_WORK.obj_work) == 0)
                {
                    AppMain.gmEneMoguFlipInit(obj_work);
                }
            }
            else if (AppMain.GmEneComTargetIsLeft(obj_work, gms_PLAYER_WORK.obj_work) != 0)
            {
                AppMain.gmEneMoguFlipInit(obj_work);
            }
            if ((obj_work.move_flag & 4U) != 0U)
            {
                AppMain.gmEneMoguJumpInit(obj_work);
            }
            return;
        }
        if (gms_ENE_MOGU_WORK.wait_time > 0)
        {
            gms_ENE_MOGU_WORK.wait_time--;
            if ((obj_work.move_flag & 4U) != 0U)
            {
                AppMain.gmEneMoguJumpInit(obj_work);
            }
            return;
        }
        if (AkMath.RandFx() > AppMain.FX_F32_TO_FX32(0.5f))
        {
            AppMain.gmEneMoguFlipInit(obj_work);
        }
        gms_ENE_MOGU_WORK.wait_time = 216000;
    }
コード例 #15
0
    // Token: 0x06000956 RID: 2390 RVA: 0x000543C0 File Offset: 0x000525C0
    private static void gmEneKamaHandAttackMain(OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_ENE_KAMA_WORK gms_ENE_KAMA_WORK = (AppMain.GMS_ENE_KAMA_WORK)obj_work;
        gms_ENE_KAMA_WORK.rot_z += gms_ENE_KAMA_WORK.rot_z_add;
        NNS_MATRIX nns_MATRIX  = AppMain.gmEneKamaHandAttackMain_rmat;
        NNS_MATRIX nns_MATRIX2 = AppMain.gmEneKamaHandAttackMain_tmat;
        NNS_MATRIX nns_MATRIX3 = AppMain.gmEneKamaHandAttackMain_mat;

        AppMain.nnMakeRotateZMatrix(nns_MATRIX, gms_ENE_KAMA_WORK.rot_z);
        if ((obj_work.disp_flag & 2U) != 0U)
        {
            AppMain.nnMakeTranslateMatrix(nns_MATRIX2, 10f, 10f, 0f);
        }
        else
        {
            AppMain.nnMakeTranslateMatrix(nns_MATRIX2, 10f, -10f, 0f);
        }
        AppMain.nnMultiplyMatrix(nns_MATRIX3, nns_MATRIX, nns_MATRIX2);
        obj_work.ofst.x = AppMain.FX_F32_TO_FX32(nns_MATRIX3.M03);
        obj_work.ofst.y = AppMain.FX_F32_TO_FX32(nns_MATRIX3.M13);
        obj_work.dir.z  = ( ushort )gms_ENE_KAMA_WORK.rot_z;
        if (gms_ENE_KAMA_WORK.timer > 0)
        {
            AppMain.VecFx32 vecFx = AppMain.gmEneKamaGetPlayerVectorFx(obj_work);
            int             num   = (int)((float)obj_work.spd.x / 1.75f);
            int             num2  = (int)((float)obj_work.spd.y / 1.75f);
            int             num3  = AppMain.FX_Mul(vecFx.x, num2) - AppMain.FX_Mul(vecFx.y, num);
            if (num3 < 0)
            {
                num  = AppMain.FX_Mul(AppMain.FX_Cos(( int )(( short )AkMath.DEGtoA32(1f))), num) - AppMain.FX_Mul(AppMain.FX_Sin(( int )(( short )AkMath.DEGtoA32(1f))), num2);
                num2 = AppMain.FX_Mul(AppMain.FX_Sin(( int )(( short )AkMath.DEGtoA32(1f))), num) + AppMain.FX_Mul(AppMain.FX_Cos(( int )(( short )AkMath.DEGtoA32(1f))), num2);
            }
            else
            {
                num  = AppMain.FX_Mul(AppMain.FX_Cos(( int )(( short )AkMath.DEGtoA32(-1f))), num) - AppMain.FX_Mul(AppMain.FX_Sin(( int )(( short )AkMath.DEGtoA32(-1f))), num2);
                num2 = AppMain.FX_Mul(AppMain.FX_Sin(( int )(( short )AkMath.DEGtoA32(-1f))), num) + AppMain.FX_Mul(AppMain.FX_Cos(( int )(( short )AkMath.DEGtoA32(-1f))), num2);
            }
            obj_work.spd.x = ( int )(( float )num * 1.75f);
            obj_work.spd.y = ( int )(( float )num2 * 1.75f);
            gms_ENE_KAMA_WORK.timer--;
            return;
        }
        obj_work.spd.x      = 0;
        obj_work.spd_fall   = AppMain.FX_F32_TO_FX32(0.2f);
        obj_work.move_flag |= 128U;
        AppMain.GMS_ENE_KAMA_WORK gms_ENE_KAMA_WORK2 = (AppMain.GMS_ENE_KAMA_WORK)obj_work.parent_obj;
        if (gms_ENE_KAMA_WORK2 != null)
        {
            gms_ENE_KAMA_WORK2.ata_futa = 1;
        }
    }
コード例 #16
0
 // Token: 0x06000DFA RID: 3578 RVA: 0x0007B1A4 File Offset: 0x000793A4
 private static void gmEneUnidesAttackMain(OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_UNIDES_WORK gms_ENE_UNIDES_WORK = (AppMain.GMS_ENE_UNIDES_WORK)obj_work;
     if (gms_ENE_UNIDES_WORK.stop == 0)
     {
         if ((obj_work.disp_flag & 1U) != 0U)
         {
             gms_ENE_UNIDES_WORK.rot_y += AkMath.DEGtoA32(1);
         }
         else
         {
             gms_ENE_UNIDES_WORK.rot_y += AkMath.DEGtoA32(-1);
         }
     }
     gms_ENE_UNIDES_WORK.attack = 1;
     if (gms_ENE_UNIDES_WORK.zoom_now == 1)
     {
         gms_ENE_UNIDES_WORK.zoom += 0.07f;
         if (gms_ENE_UNIDES_WORK.zoom > 1.4f)
         {
             gms_ENE_UNIDES_WORK.zoom_now = 2;
         }
     }
     else if (gms_ENE_UNIDES_WORK.zoom_now >= 2 && gms_ENE_UNIDES_WORK.zoom_now <= 12)
     {
         gms_ENE_UNIDES_WORK.zoom_now++;
         gms_ENE_UNIDES_WORK.zoom -= 0.07f;
     }
     else if (gms_ENE_UNIDES_WORK.zoom_now >= 13 && gms_ENE_UNIDES_WORK.zoom_now <= 23)
     {
         gms_ENE_UNIDES_WORK.zoom_now++;
         gms_ENE_UNIDES_WORK.zoom += 0.07f;
     }
     else if (gms_ENE_UNIDES_WORK.zoom > 1f)
     {
         gms_ENE_UNIDES_WORK.zoom -= 0.07f;
         if (gms_ENE_UNIDES_WORK.zoom <= 1f)
         {
             gms_ENE_UNIDES_WORK.zoom     = 1f;
             gms_ENE_UNIDES_WORK.stop     = 0;
             gms_ENE_UNIDES_WORK.zoom_now = 0;
         }
     }
     obj_work.scale.x = AppMain.FX_F32_TO_FX32(gms_ENE_UNIDES_WORK.zoom);
     obj_work.scale.y = AppMain.FX_F32_TO_FX32(gms_ENE_UNIDES_WORK.zoom);
     obj_work.scale.z = AppMain.FX_F32_TO_FX32(gms_ENE_UNIDES_WORK.zoom);
     if (gms_ENE_UNIDES_WORK.num == 0 && gms_ENE_UNIDES_WORK.zoom == 1f)
     {
         obj_work.ppFunc = AppMain.gmEneUnidesWalkInit;
     }
 }
コード例 #17
0
 // Token: 0x06000DF3 RID: 3571 RVA: 0x0007AFF4 File Offset: 0x000791F4
 private static void gmEneUnidesWaitMain(OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_UNIDES_WORK gms_ENE_UNIDES_WORK = (AppMain.GMS_ENE_UNIDES_WORK)obj_work;
     if (AppMain.gmEneUnidesGetLength2N(obj_work) < 9216)
     {
         obj_work.ppFunc = AppMain.gmEneUnidesAttackInit;
     }
     if ((obj_work.disp_flag & 1U) != 0U)
     {
         gms_ENE_UNIDES_WORK.rot_y += AkMath.DEGtoA32(1);
         return;
     }
     gms_ENE_UNIDES_WORK.rot_y += AkMath.DEGtoA32(-1);
 }
コード例 #18
0
    // Token: 0x060002B1 RID: 689 RVA: 0x000169AC File Offset: 0x00014BAC
    private static void GmBoss4EffBombUpdateCreate(AppMain.GMS_BOSS4_EFF_BOMB_WORK bomb_work)
    {
        AppMain.MTM_ASSERT(bomb_work.parent_obj);
        bomb_work.pos[0] += AppMain.GmBoss4GetScrollOffset();
        if (bomb_work.interval_timer != 0U)
        {
            bomb_work.interval_timer -= 1U;
            return;
        }
        int num       = bomb_work.area[0];
        int num2      = bomb_work.area[1];
        int num3      = AppMain.FX_Mul(AkMath.RandFx(), num);
        int num4      = AppMain.FX_Mul(AkMath.RandFx(), num2);
        int bomb_type = bomb_work.bomb_type;

        AppMain.GMS_EFFECT_3DES_WORK gms_EFFECT_3DES_WORK;
        if (bomb_type != 0)
        {
            if (bomb_type != 5)
            {
                AppMain.MTM_ASSERT(false);
                return;
            }
            gms_EFFECT_3DES_WORK = AppMain.GmBoss4EffCommonInit(743, default(AppMain.VecFx32? ));
            gms_EFFECT_3DES_WORK.efct_com.obj_work.ppFunc = null;
            AppMain.GmEffect3DESSetupBase(gms_EFFECT_3DES_WORK, 2U, 64U);
            gms_EFFECT_3DES_WORK.efct_com.obj_work.ppFunc = AppMain.gmBoss4EffMainFuncDeleteAtEnd;
        }
        else
        {
            gms_EFFECT_3DES_WORK = AppMain.GmEfctCmnEsCreate(null, 7);
            gms_EFFECT_3DES_WORK.efct_com.obj_work.ppFunc = null;
            AppMain.GmEffect3DESSetupBase(gms_EFFECT_3DES_WORK, 2U, 1U);
            gms_EFFECT_3DES_WORK.efct_com.obj_work.ppFunc = AppMain.gmBoss4EffMainFuncDeleteAtEnd;
            if (--bomb_work.interval_timer_sound <= 0)
            {
                bomb_work.interval_timer_sound = 3;
                GmSound.PlaySE("Boss0_02");
            }
        }
        OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GMM_BS_OBJ(gms_EFFECT_3DES_WORK);

        AppMain.MTM_ASSERT(obs_OBJECT_WORK);
        obs_OBJECT_WORK.pos.x = bomb_work.pos[0] - (num >> 1) + num3;
        obs_OBJECT_WORK.pos.y = bomb_work.pos[1] - (num2 >> 1) + num4;
        obs_OBJECT_WORK.pos.z = AppMain.GMM_BS_OBJ(bomb_work.parent_obj).pos.z + 131072;
        uint num5 = (uint)((long)AkMath.RandFx() * (long)((ulong)(bomb_work.interval_max - bomb_work.interval_max)) >> 12);

        bomb_work.interval_timer = bomb_work.interval_min + num5;
    }
コード例 #19
0
 // Token: 0x06000603 RID: 1539 RVA: 0x00035424 File Offset: 0x00033624
 private static void dmStfrlMdlCtrlBodyProcBodyMain(OBS_OBJECT_WORK obj_work)
 {
     AppMain.DMS_STFRL_BOSS_BODY_WORK dms_STFRL_BOSS_BODY_WORK = (AppMain.DMS_STFRL_BOSS_BODY_WORK)obj_work;
     obj_work.pos.x = 0;
     obj_work.pos.y = -65536;
     obj_work.pos.z = -81920;
     obj_work.dir.y = ( ushort )AkMath.DEGtoA16(300);
     if (dms_STFRL_BOSS_BODY_WORK.timer != 0)
     {
         dms_STFRL_BOSS_BODY_WORK.timer--;
         return;
     }
     dms_STFRL_BOSS_BODY_WORK.flag |= 2097152U;
 }
コード例 #20
0
 // Token: 0x060006F3 RID: 1779 RVA: 0x0003DFC8 File Offset: 0x0003C1C8
 private static bool GmBoss4UtilUpdateMove(AppMain.GMS_BOSS4_MOVE _work, out AppMain.VecFx32 pos)
 {
     AppMain.VecFx32 vecFx = default(AppMain.VecFx32);
     vecFx.x = _work.end.x - _work.start.x;
     vecFx.y = _work.end.y - _work.start.y;
     vecFx.z = _work.end.z - _work.start.z;
     if (_work.now_count < _work.max_count)
     {
         _work.now_count++;
     }
     if (_work.now_count >= _work.max_count)
     {
         _work.now_count = _work.max_count;
         _work.pos.x     = _work.end.x;
         _work.pos.y     = _work.end.y;
         _work.pos.z     = _work.end.z;
         pos.x           = _work.end.x;
         pos.y           = _work.end.y;
         pos.z           = _work.end.z;
         return(true);
     }
     if (_work.type == 0)
     {
         _work.pos.x = ( int )(( float )_work.start.x + ( float )vecFx.x * (( float )_work.now_count / ( float )_work.max_count));
         _work.pos.y = ( int )(( float )_work.start.y + ( float )vecFx.y * (( float )_work.now_count / ( float )_work.max_count));
         _work.pos.z = ( int )(( float )_work.start.z + ( float )vecFx.z * (( float )_work.now_count / ( float )_work.max_count));
     }
     else if (( double )(( float )_work.now_count / ( float )_work.max_count) <= 0.5)
     {
         int   num  = AppMain.FX_Cos(AkMath.DEGtoA32(180f * ((float)_work.now_count / (float)_work.max_count)));
         float num2 = 0.5f - (float)num * 0.00024414062f * 0.5f;
         _work.pos.x = _work.start.x + ( int )(( float )vecFx.x * num2);
         _work.pos.y = _work.start.y + ( int )(( float )vecFx.y * num2);
         _work.pos.z = _work.start.z + ( int )(( float )vecFx.z * num2);
     }
     else
     {
         int   num3 = AppMain.FX_Cos(AkMath.DEGtoA32(180f * ((float)_work.now_count / (float)_work.max_count)));
         float num4 = (float)num3 * 0.00024414062f * 0.5f;
         _work.pos.x = _work.start.x + ( int )(( float )vecFx.x * (0.5f - num4));
         _work.pos.y = _work.start.y + ( int )(( float )vecFx.y * (0.5f - num4));
         _work.pos.z = _work.start.z + ( int )(( float )vecFx.z * (0.5f - num4));
     }
     pos.x = _work.pos.x;
     pos.y = _work.pos.y;
     pos.z = _work.pos.z;
     return(false);
 }
コード例 #21
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);
    }
コード例 #22
0
    // Token: 0x06000704 RID: 1796 RVA: 0x0003E834 File Offset: 0x0003CA34
    private static void GmBoss4UtilInitFlicker(OBS_OBJECT_WORK obj_work, AppMain.GMS_BOSS4_FLICKER_WORK flk_work, int times, int start, int spd, int interval, NNS_RGB rgb)
    {
        int add_timer = AkMath.DEGtoA32(360f / (float)(spd + 1));

        AppMain.MTM_ASSERT(obj_work);
        AppMain.MTM_ASSERT(obj_work.obj_3d);
        AppMain.MTM_ASSERT(flk_work);
        flk_work.is_active      = true;
        flk_work.cycles         = ( uint )times;
        flk_work.interval_timer = ( uint )start;
        flk_work.cur_angle      = 0;
        flk_work.add_timer      = add_timer;
        flk_work.interval_flk   = ( uint )interval;
        flk_work.color.r        = rgb.r;
        flk_work.color.g        = rgb.g;
        flk_work.color.b        = rgb.b;
        AppMain.GmBsCmnClearObject3DNNFadedColor(obj_work);
    }
コード例 #23
0
    // Token: 0x060006FB RID: 1787 RVA: 0x0003E480 File Offset: 0x0003C680
    private static void GmBoss4UtilInitTurn(AppMain.GMS_BOSS4_DIRECTION _work, short dest_angle, int frame, bool is_positive)
    {
        AppMain.MTM_ASSERT(frame > 0);
        int num2;

        if (is_positive)
        {
            ushort num = (ushort)(dest_angle - _work.cur_angle);
            num2 = ( int )num;
        }
        else
        {
            ushort num = (ushort)((int)dest_angle - AkMath.DEGtoA32(360) - ((int)_work.cur_angle - AkMath.DEGtoA32(360)));
            num2 = ( int )num - AkMath.DEGtoA32(360);
        }
        int turn_spd = num2 / frame;

        AppMain.GmBoss4UtilInitTurn(_work, num2, turn_spd);
    }
コード例 #24
0
    // Token: 0x06000501 RID: 1281 RVA: 0x0002B054 File Offset: 0x00029254
    private static void gmBoss5LdPartInitSpin(AppMain.GMS_BOSS5_LDPART_WORK ldpart_work)
    {
        AppMain.nnMakeUnitQuaternion(ref ldpart_work.cur_rot_quat);
        AppMain.nnMakeUnitQuaternion(ref ldpart_work.rot_diff_quat);
        int num = 0;

        while (( long )num < ( long )(( ulong )AppMain.GMD_BOSS5_LAND_LDPART_SPIN_ROT_AXIS_NUM))
        {
            NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

            float num2 = AppMain.FX_FX32_TO_F32(AkMath.RandFx()) * 2f - 1f;
            num2 = AppMain.MTM_MATH_CLIP(num2, -1f, 1f);
            short rand_angle = AkMath.DEGtoA16(360f * AppMain.FX_FX32_TO_F32(AkMath.RandFx()));
            AkMath.GetRandomUnitVector(nns_VECTOR, num2, rand_angle);
            NNS_QUATERNION nns_QUATERNION;
            AppMain.nnMakeRotateAxisQuaternion(out nns_QUATERNION, nns_VECTOR.x, nns_VECTOR.y, nns_VECTOR.z, AppMain.GMD_BOSS5_LAND_LDPART_SPIN_ROT_SPD_DEG);
            AppMain.nnMultiplyQuaternion(ref ldpart_work.rot_diff_quat, ref nns_QUATERNION, ref ldpart_work.rot_diff_quat);
            num++;
        }
    }
コード例 #25
0
    // Token: 0x06000544 RID: 1348 RVA: 0x0002CB04 File Offset: 0x0002AD04
    private static void gmGmkTarzanRopeUpdatePlayerPos(OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)obj_work;
        OBS_OBJECT_WORK           target_obj        = gms_ENEMY_3D_WORK.ene_com.target_obj;
        GMS_PLAYER_WORK           gms_PLAYER_WORK   = (GMS_PLAYER_WORK)target_obj;
        NNS_MATRIX nns_MATRIX = new NNS_MATRIX();

        AppMain.nnMakeUnitMatrix(nns_MATRIX);
        nns_MATRIX.M11 = AppMain.g_gm_gmk_tarzan_rope_active_matrix.M11;
        nns_MATRIX.M22 = AppMain.g_gm_gmk_tarzan_rope_active_matrix.M00;
        nns_MATRIX.M21 = AppMain.g_gm_gmk_tarzan_rope_active_matrix.M01;
        nns_MATRIX.M12 = AppMain.g_gm_gmk_tarzan_rope_active_matrix.M10;
        nns_MATRIX.M03 = -5f;
        AkMath.NormalizeMtx(gms_PLAYER_WORK.ex_obj_mtx_r, nns_MATRIX);
        if ((target_obj.disp_flag & 1U) != 0U)
        {
            gms_PLAYER_WORK.ex_obj_mtx_r.M21 = -gms_PLAYER_WORK.ex_obj_mtx_r.M21;
            gms_PLAYER_WORK.ex_obj_mtx_r.M12 = -gms_PLAYER_WORK.ex_obj_mtx_r.M12;
            nns_MATRIX.M03 = -nns_MATRIX.M03;
        }
        int num = (int)((int)(gms_ENEMY_3D_WORK.ene_com.enemy_flag & 65535U) << 12);

        num += 24576;
        if (num > 393216)
        {
            num = 393216;
        }
        gms_ENEMY_3D_WORK.ene_com.enemy_flag &= 4294901760U;
        gms_ENEMY_3D_WORK.ene_com.enemy_flag |= ( uint )(num >> 12);
        float num2 = (float)num / 393216f;

        num2  = -num2 * 20f;
        num2 += 15f;
        NNS_VECTOR nns_VECTOR = new NNS_VECTOR(0f, num2, 0f);

        AppMain.nnTransformVector(nns_VECTOR, nns_MATRIX, nns_VECTOR);
        target_obj.pos.x          = AppMain.FX_F32_TO_FX32(AppMain.g_gm_gmk_tarzan_rope_active_matrix.M03 + nns_VECTOR.z);
        target_obj.pos.y          = -AppMain.FX_F32_TO_FX32(AppMain.g_gm_gmk_tarzan_rope_active_matrix.M13 + nns_VECTOR.y);
        target_obj.pos.z          = AppMain.FX_F32_TO_FX32(AppMain.g_gm_gmk_tarzan_rope_active_matrix.M23 + nns_VECTOR.x);
        gms_PLAYER_WORK.gmk_flag |= 32768U;
    }
コード例 #26
0
    // Token: 0x060006FE RID: 1790 RVA: 0x0003E648 File Offset: 0x0003C848
    private static bool GmBoss4UtilUpdateTurnGently(AppMain.GMS_BOSS4_DIRECTION _work)
    {
        bool flag = false;

        AppMain.MTM_ASSERT(_work.turn_gen_factor > 0);
        _work.turn_gen_var += _work.turn_gen_factor;
        if (_work.turn_gen_var >= AkMath.DEGtoA32(180))
        {
            _work.turn_gen_var = AkMath.DEGtoA32(180);
            flag = true;
        }
        float num = (float)_work.turn_amount * 0.5f * (1f - AppMain.nnCos(_work.turn_gen_var));

        AppMain.MTM_ASSERT(AppMain.MTM_MATH_ABS(num) <= 2.1474836E+09f);
        _work.turn_angle = ( int )num;
        if (flag)
        {
            _work.turn_angle = _work.turn_amount;
        }
        AppMain.GmBoss4UtilSetDirection(_work, ( short )(( int )_work.orig_angle + _work.turn_angle));
        return(flag);
    }
コード例 #27
0
    // Token: 0x06000E6F RID: 3695 RVA: 0x000811A4 File Offset: 0x0007F3A4
    public static void gmBoss5TurretUpdateDirFollowingPos(AppMain.GMS_BOSS5_TURRET_WORK trt_work, ref AppMain.VecFx32 targ_pos, float deg)
    {
        OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GMM_BS_OBJ(trt_work);
        int             num             = (int)(65535L & (long)AppMain.nnArcTan2((double)AppMain.FX_FX32_TO_F32(targ_pos.y - obs_OBJECT_WORK.pos.y), (double)AppMain.FX_FX32_TO_F32(targ_pos.x - obs_OBJECT_WORK.pos.x)));
        int             num2            = (int)(65535L & (long)(num - trt_work.fire_dir_z));
        int             num3;

        if (num2 >= AkMath.DEGtoA32(180))
        {
            num2 = -(AkMath.DEGtoA32(360) - num2);
            num3 = AkMath.DEGtoA32(-deg);
        }
        else
        {
            num3 = AkMath.DEGtoA32(deg);
        }
        if (AppMain.MTM_MATH_ABS(num2) <= AppMain.MTM_MATH_ABS(num3))
        {
            num3 = num2;
        }
        trt_work.fire_dir_z = ( int )(( short )(65535L & ( long )(trt_work.fire_dir_z + num3)));
    }
コード例 #28
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);
    }
コード例 #29
0
    // Token: 0x060002AF RID: 687 RVA: 0x00016764 File Offset: 0x00014964
    private static AppMain.GMS_EFFECT_3DES_WORK GmBoss4EffCommonInit(int id, AppMain.VecFx32?pos, OBS_OBJECT_WORK parent_obj, uint type, uint flag, AppMain.GMS_BOSS4_NODE_MATRIX mtx, int link, AppMain.VecFx32?rot, uint[] ctrl_flag, uint mask)
    {
        OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GMM_EFFECT_CREATE_WORK(() => new AppMain.GMS_BOSS4_EFF_COMMON_WORK(), parent_obj, 0, "B04_CapOver");

        AppMain.GMS_EFFECT_3DES_WORK      gms_EFFECT_3DES_WORK      = (AppMain.GMS_EFFECT_3DES_WORK)obs_OBJECT_WORK;
        AppMain.GMS_BOSS4_EFF_COMMON_WORK gms_BOSS4_EFF_COMMON_WORK = (AppMain.GMS_BOSS4_EFF_COMMON_WORK)obs_OBJECT_WORK;
        AppMain.ObjObjectAction3dESEffectLoad(AppMain.GMM_BS_OBJ(gms_EFFECT_3DES_WORK), gms_EFFECT_3DES_WORK.obj_3des, AppMain.ObjDataGet(id), null, 0, null);
        AppMain.ObjObjectAction3dESTextureLoad(AppMain.GMM_BS_OBJ(gms_EFFECT_3DES_WORK), gms_EFFECT_3DES_WORK.obj_3des, AppMain.ObjDataGet(733), null, 0, null, false);
        AppMain.ObjObjectAction3dESTextureSetByDwork(obs_OBJECT_WORK, AppMain.ObjDataGet(734));
        AppMain.GmEffect3DESSetupBase(gms_EFFECT_3DES_WORK, type, flag);
        if (pos != null)
        {
            AppMain.VEC_Set(ref obs_OBJECT_WORK.pos, pos.Value.x, pos.Value.y, pos.Value.z);
        }
        obs_OBJECT_WORK.ppFunc             = AppMain.gmBoss4EffMainFuncFlagLink;
        obs_OBJECT_WORK.flag              |= 32U;
        gms_BOSS4_EFF_COMMON_WORK.lookflag = ctrl_flag;
        gms_BOSS4_EFF_COMMON_WORK.lookmask = mask;
        if (gms_BOSS4_EFF_COMMON_WORK.lookflag != null)
        {
            gms_BOSS4_EFF_COMMON_WORK.lookflag[0] |= gms_BOSS4_EFF_COMMON_WORK.lookmask;
        }
        gms_BOSS4_EFF_COMMON_WORK.link = -1;
        if (link >= 0)
        {
            gms_BOSS4_EFF_COMMON_WORK.link      = link;
            gms_BOSS4_EFF_COMMON_WORK.node_work = mtx;
            if (rot != null)
            {
                AppMain.GmEffect3DESSetDispRotation(gms_EFFECT_3DES_WORK, AkMath.DEGtoA16(AppMain.FX_FX32_TO_F32(rot.Value.x)), AkMath.DEGtoA16(AppMain.FX_FX32_TO_F32(rot.Value.y)), AkMath.DEGtoA16(AppMain.FX_FX32_TO_F32(rot.Value.z)));
            }
            if (pos != null)
            {
                AppMain.GmEffect3DESAddDispOffset(gms_EFFECT_3DES_WORK, AppMain.FX_FX32_TO_F32(pos.Value.x), AppMain.FX_FX32_TO_F32(pos.Value.y), AppMain.FX_FX32_TO_F32(pos.Value.z));
            }
        }
        return(gms_EFFECT_3DES_WORK);
    }
コード例 #30
0
    // Token: 0x060006FD RID: 1789 RVA: 0x0003E588 File Offset: 0x0003C788
    private static void GmBoss4UtilInitTurnGently(AppMain.GMS_BOSS4_DIRECTION _work, short dest_angle, int frame, bool is_positive)
    {
        AppMain.MTM_ASSERT(frame > 0);
        _work.orig_angle = _work.cur_angle;
        _work.turn_angle = 0;
        _work.turn_spd   = 0;
        if (is_positive)
        {
            ushort num = (ushort)(dest_angle - _work.cur_angle);
            _work.turn_amount = ( int )num;
        }
        else
        {
            ushort num = (ushort)((int)dest_angle - AkMath.DEGtoA32(360) - ((int)_work.cur_angle - AkMath.DEGtoA32(360)));
            _work.turn_amount = ( int )num - AkMath.DEGtoA32(360);
        }
        _work.turn_gen_var = 0;
        float num2 = 180f / (float)frame;

        AppMain.MTM_ASSERT(AppMain.MTM_MATH_ABS(num2) <= 2.1474836E+09f);
        _work.turn_gen_factor = AkMath.DEGtoA32(num2);
        AppMain.GmBoss4UtilSetDirection(_work, ( short )(( int )_work.orig_angle + _work.turn_angle));
    }