Ejemplo n.º 1
0
    // Token: 0x06001026 RID: 4134 RVA: 0x0008C564 File Offset: 0x0008A764
    private static OBS_OBJECT_WORK GmEneUniuniInit(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type)
    {
        OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, () => new AppMain.GMS_ENE_UNIUNI_WORK(), "ENE_UNIUNI");

        AppMain.GMS_ENEMY_3D_WORK   gms_ENEMY_3D_WORK   = (AppMain.GMS_ENEMY_3D_WORK)obs_OBJECT_WORK;
        AppMain.GMS_ENE_UNIUNI_WORK gms_ENE_UNIUNI_WORK = (AppMain.GMS_ENE_UNIUNI_WORK)obs_OBJECT_WORK;
        AppMain.ObjObjectCopyAction3dNNModel(obs_OBJECT_WORK, AppMain.gm_ene_uniuni_obj_3d_list[0], gms_ENEMY_3D_WORK.obj_3d);
        AppMain.ObjObjectAction3dNNMotionLoad(obs_OBJECT_WORK, 0, true, AppMain.ObjDataGet(695), 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_UNIUNI_WORK.spd_dec      = 76;
        gms_ENE_UNIUNI_WORK.spd_dec_dist = 15360;
        gms_ENE_UNIUNI_WORK.len          = 17.5f;
        gms_ENE_UNIUNI_WORK.len_target   = 35.5f;
        gms_ENE_UNIUNI_WORK.len_spd      = 1f;
        gms_ENE_UNIUNI_WORK.rot_x        = AkMath.DEGtoA32(90f);
        gms_ENE_UNIUNI_WORK.rot_y        = AkMath.DEGtoA32(0f);
        gms_ENE_UNIUNI_WORK.rot_z        = AkMath.DEGtoA32(0f);
        gms_ENE_UNIUNI_WORK.num          = 0;
        AppMain.gmEneUniuniWalkInit(obs_OBJECT_WORK);
        for (int i = 0; i < 4; i++)
        {
            OBS_OBJECT_WORK obs_OBJECT_WORK2 = AppMain.GmEventMgrLocalEventBirth(310, pos_x, pos_y, 0, 0, 0, 0, 0, 0);
            obs_OBJECT_WORK2.parent_obj = obs_OBJECT_WORK;
            AppMain.GMS_ENE_UNIUNI_WORK gms_ENE_UNIUNI_WORK2 = (AppMain.GMS_ENE_UNIUNI_WORK)obs_OBJECT_WORK2;
            gms_ENE_UNIUNI_WORK2.num = i;
            gms_ENE_UNIUNI_WORK.num++;
        }
        obs_OBJECT_WORK.obj_3d.use_light_flag &= 4294967294U;
        obs_OBJECT_WORK.obj_3d.use_light_flag |= 64U;
        return(obs_OBJECT_WORK);
    }
Ejemplo n.º 2
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);
    }
    // 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;
    }
Ejemplo n.º 4
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;
     }
 }
Ejemplo n.º 5
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;
        }
    }
Ejemplo n.º 6
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);
 }
Ejemplo n.º 7
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);
 }
Ejemplo n.º 8
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);
    }
Ejemplo n.º 9
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);
    }
Ejemplo n.º 10
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);
    }
Ejemplo n.º 11
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);
    }
Ejemplo n.º 12
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);
    }
Ejemplo n.º 13
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)));
    }
Ejemplo n.º 14
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));
    }
 // Token: 0x06000720 RID: 1824 RVA: 0x0003F0C0 File Offset: 0x0003D2C0
 private static void GmBoss4CapsuleUpdateRol(float spd)
 {
     AppMain._cap_rot_y += AkMath.DEGtoA32(spd);
     AppMain._cap_rot_y %= AkMath.DEGtoA32(360);
     if (AppMain._cap_rot_z_flag != 0)
     {
         AppMain._cap_rot_z += AkMath.DEGtoA32(1f);
         if (AppMain._cap_rot_z >= AkMath.DEGtoA32(45f))
         {
             AppMain._cap_rot_z_flag = 0;
         }
     }
     else
     {
         AppMain._cap_rot_z -= AkMath.DEGtoA32(1f);
         if (AppMain._cap_rot_z <= AkMath.DEGtoA32(-45f))
         {
             AppMain._cap_rot_z_flag = 1;
         }
     }
     if (AppMain._cap_rot_x_flag != 0)
     {
         AppMain._cap_rot_x += AkMath.DEGtoA32(0.5f);
         if (AppMain._cap_rot_x >= AkMath.DEGtoA32(60f))
         {
             AppMain._cap_rot_x_flag = 0;
         }
     }
     else
     {
         AppMain._cap_rot_x -= AkMath.DEGtoA32(0.5f);
         if (AppMain._cap_rot_x <= AkMath.DEGtoA32(-60f))
         {
             AppMain._cap_rot_x_flag = 1;
         }
     }
     if (AppMain._cap_len_time > 0f)
     {
         AppMain._cap_len_time -= 1f;
     }
     else if (0f != AppMain._cap_len_flag)
     {
         AppMain._cap_len += 2f;
         if (AppMain._cap_len >= 100f)
         {
             AppMain._cap_len_flag = 0f;
         }
     }
     else
     {
         AppMain._cap_len -= 2f;
         if (AppMain._cap_len <= 65f)
         {
             AppMain._cap_len_flag = 1f;
             AppMain._cap_len_time = ( float )AppMain.GMD_BOSS4_CAP_ZOOM_TIME + ( float )AppMain.GMD_BOSS4_CAP_ZOOM_TIME_RAND * (( float )(AppMain.random.Next() % 256) / 256f);
         }
     }
     if (AppMain._cap_inv_flag > 900)
     {
         AppMain._cap_inv_flag = 0;
     }
     if (AppMain._cap_inv_flag > 0)
     {
         AppMain._cap_inv_flag--;
         return;
     }
     AppMain._cap_inv_flag = 0;
 }
    // Token: 0x06000723 RID: 1827 RVA: 0x0003F3C4 File Offset: 0x0003D5C4
    private static void gmBoss4CapsuleMain(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_CAP_WORK  gms_BOSS4_CAP_WORK  = (AppMain.GMS_BOSS4_CAP_WORK)obj_work;
        NNS_MATRIX nns_MATRIX = GlobalPool <NNS_MATRIX> .Alloc();

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

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

        if (gms_BOSS4_CAP_WORK.wait > 0)
        {
            obj_work.pos.z = 131072;
            AppMain.GmBoss4UtilUpdateFlicker(obj_work, gms_BOSS4_CAP_WORK.flk_work);
            if (AppMain.GmBoss4UtilUpdate1ShotTimer(gms_BOSS4_CAP_WORK.timer))
            {
                AppMain.VecFx32 pos = obj_work.pos;
                pos.z = 135168;
                AppMain.GmBoss4EffCommonInit(735, new AppMain.VecFx32?(pos));
                AppMain.T_FUNC(AppMain.gmBoss4CapsuleBomb, obj_work);
            }
        }
        else
        {
            AppMain.GmBsCmnUpdateObject3DNNStuckWithNode(obj_work, gms_BOSS4_BODY_WORK.node_work.snm_work, gms_BOSS4_BODY_WORK.node_work.work[2], 0);
            obj_work.pos.y = obj_work.pos.y + AppMain.FX_F32_TO_FX32(20f);
            int num = AppMain._cap_rot_y;
            num += AkMath.DEGtoA32(360) / 6 * gms_BOSS4_CAP_WORK.cap_no;
            num %= AkMath.DEGtoA32(360);
            AppMain.nnMakeRotateXMatrix(nns_MATRIX, AppMain._cap_rot_x);
            AppMain.nnRotateZMatrix(nns_MATRIX, nns_MATRIX, AppMain._cap_rot_z);
            AppMain.nnRotateYMatrix(nns_MATRIX, nns_MATRIX, num);
            AppMain.nnMakeTranslateMatrix(nns_MATRIX2, AppMain._cap_len, 0f, 0f);
            AppMain.nnMultiplyMatrix(nns_MATRIX3, nns_MATRIX, nns_MATRIX2);
            NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

            AppMain.nnCopyMatrixTranslationVector(nns_VECTOR, nns_MATRIX3);
            obj_work.pos.x = obj_work.pos.x + AppMain.FX_F32_TO_FX32(nns_VECTOR.x);
            obj_work.pos.y = obj_work.pos.y + AppMain.FX_F32_TO_FX32(nns_VECTOR.y);
            obj_work.pos.z = obj_work.pos.z + AppMain.FX_F32_TO_FX32(nns_VECTOR.z);
            GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);
        }
        if (AppMain._cap_kill_flag != 0)
        {
            AppMain.VecFx32 pos2 = obj_work.pos;
            pos2.z = 135168;
            AppMain.GmBoss4EffCommonInit(735, new AppMain.VecFx32?(pos2));
            gms_BOSS4_CAP_WORK.wait = 30;
            AppMain.T_FUNC(AppMain.gmBoss4CapsuleBomb, obj_work);
            GlobalPool <NNS_MATRIX> .Release(nns_MATRIX3);

            GlobalPool <NNS_MATRIX> .Release(nns_MATRIX2);

            GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);

            return;
        }
        AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)obj_work;
        if (AppMain._cap_inv_flag != 0)
        {
            if (!AppMain._cap_inv_hit)
            {
                gms_ENEMY_3D_WORK.ene_com.rect_work[0].flag |= 2048U;
                gms_ENEMY_3D_WORK.ene_com.rect_work[0].flag &= 4294967291U;
            }
            gms_ENEMY_3D_WORK.ene_com.rect_work[1].flag |= 2048U;
        }
        else
        {
            gms_ENEMY_3D_WORK.ene_com.rect_work[0].flag &= 4294965247U;
            gms_ENEMY_3D_WORK.ene_com.rect_work[0].flag |= 4U;
            gms_ENEMY_3D_WORK.ene_com.rect_work[1].flag &= 4294965247U;
        }
        if (AppMain.IS_FLAG(1073741824U, gms_BOSS4_CAP_WORK))
        {
            AppMain._cap_count--;
            gms_ENEMY_3D_WORK.ene_com.rect_work[0].flag &= 4294967291U;
            gms_ENEMY_3D_WORK.ene_com.rect_work[1].flag &= 4294967291U;
            gms_ENEMY_3D_WORK.ene_com.rect_work[2].flag &= 4294967291U;
            AppMain.RESET_FLAG(1073741824U, gms_BOSS4_CAP_WORK);
            AppMain.GmBoss4UtilInitFlicker(obj_work, gms_BOSS4_CAP_WORK.flk_work);
            AppMain.GmBoss4UtilInit1ShotTimer(gms_BOSS4_CAP_WORK.timer, 20U);
            gms_BOSS4_CAP_WORK.wait = 60;
        }
        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX3);

        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX2);

        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);
    }
Ejemplo n.º 17
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);
    }
Ejemplo n.º 18
0
    // Token: 0x060006F5 RID: 1781 RVA: 0x0003E378 File Offset: 0x0003C578
    private static bool GmBoss4UtilIsDirectionPositiveFromCurrent(AppMain.GMS_BOSS4_DIRECTION _work, short target_angle)
    {
        int num = (int)(65535L & (long)(_work.cur_angle - target_angle));

        return(num >= AkMath.DEGtoA32(180));
    }
Ejemplo n.º 19
0
    // Token: 0x06000296 RID: 662 RVA: 0x00015B58 File Offset: 0x00013D58
    public static void gmEneHaroWalkMain(OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_ENE_HARO_WORK gms_ENE_HARO_WORK = (AppMain.GMS_ENE_HARO_WORK)obj_work;
        if (AppMain.gmEneHaroIsPlayerCenter(gms_ENE_HARO_WORK) == 0)
        {
            if (AppMain.gmEneHaroIsPlayerLeft(gms_ENE_HARO_WORK) != 0)
            {
                gms_ENE_HARO_WORK.angle_add -= AkMath.DEGtoA32(0.03f);
                if (gms_ENE_HARO_WORK.angle_add < -AkMath.DEGtoA32(0.35f))
                {
                    gms_ENE_HARO_WORK.angle_add = -AkMath.DEGtoA32(0.35f);
                }
                gms_ENE_HARO_WORK.angle += gms_ENE_HARO_WORK.angle_add;
            }
            else
            {
                gms_ENE_HARO_WORK.angle_add += AkMath.DEGtoA32(0.03f);
                if (gms_ENE_HARO_WORK.angle_add > AkMath.DEGtoA32(0.35f))
                {
                    gms_ENE_HARO_WORK.angle_add = AkMath.DEGtoA32(0.35f);
                }
                gms_ENE_HARO_WORK.angle += gms_ENE_HARO_WORK.angle_add;
            }
            if (gms_ENE_HARO_WORK.angle < -AkMath.DEGtoA32(1.3f))
            {
                gms_ENE_HARO_WORK.angle = -AkMath.DEGtoA32(1.3f);
            }
            if (gms_ENE_HARO_WORK.angle > AkMath.DEGtoA32(1.3f))
            {
                gms_ENE_HARO_WORK.angle = AkMath.DEGtoA32(1.3f);
            }
        }
        int v   = AppMain.FX_Cos(gms_ENE_HARO_WORK.angle);
        int num = AppMain.FX_Sin(gms_ENE_HARO_WORK.angle);

        gms_ENE_HARO_WORK.vec.x = AppMain.FX_Mul(gms_ENE_HARO_WORK.vec.x, v) + AppMain.FX_Mul(gms_ENE_HARO_WORK.vec.y, num);
        gms_ENE_HARO_WORK.vec.y = AppMain.FX_Mul(gms_ENE_HARO_WORK.vec.x, -num) + AppMain.FX_Mul(gms_ENE_HARO_WORK.vec.y, v);
        gms_ENE_HARO_WORK.vvv.x = ( int )(( float )gms_ENE_HARO_WORK.vvv.x * 0.96f);
        gms_ENE_HARO_WORK.vvv.y = ( int )(( float )gms_ENE_HARO_WORK.vvv.x * 0.96f);
        AppMain.GMS_ENE_HARO_WORK gms_ENE_HARO_WORK2 = gms_ENE_HARO_WORK;
        gms_ENE_HARO_WORK2.vvv.x = gms_ENE_HARO_WORK2.vvv.x + gms_ENE_HARO_WORK.vec.x;
        AppMain.GMS_ENE_HARO_WORK gms_ENE_HARO_WORK3 = gms_ENE_HARO_WORK;
        gms_ENE_HARO_WORK3.vvv.y = gms_ENE_HARO_WORK3.vvv.y + gms_ENE_HARO_WORK.vec.y;
        gms_ENE_HARO_WORK.spd    = AppMain.FX_F32_TO_FX32(1.5f);
        obj_work.spd.x           = AppMain.FX_Mul(gms_ENE_HARO_WORK.vec.x, gms_ENE_HARO_WORK.spd);
        obj_work.spd.y           = AppMain.FX_Mul(gms_ENE_HARO_WORK.vec.y, gms_ENE_HARO_WORK.spd);
        obj_work.spd.x           = obj_work.spd.x + AppMain.FX_Mul(gms_ENE_HARO_WORK.vvv.x, AppMain.FX_F32_TO_FX32(0.025));
        obj_work.spd.y           = obj_work.spd.y + AppMain.FX_Mul(gms_ENE_HARO_WORK.vvv.y, AppMain.FX_F32_TO_FX32(0.025));
        if (gms_ENE_HARO_WORK.timer > 0)
        {
            gms_ENE_HARO_WORK.timer--;
        }
        else
        {
            obj_work.ppFunc = AppMain.gmEneHaroWalkInit;
        }
        if (gms_ENE_HARO_WORK.vec.x < 0)
        {
            obj_work.disp_flag           &= 4294967294U;
            gms_ENE_HARO_WORK.targetAngle = AkMath.DEGtoA32(250);
        }
        else
        {
            obj_work.disp_flag           &= 4294967294U;
            gms_ENE_HARO_WORK.targetAngle = AkMath.DEGtoA32(330);
        }
        if (( int )obj_work.dir.y > gms_ENE_HARO_WORK.targetAngle)
        {
            obj_work.dir.y = ( ushort )(obj_work.dir.y - ( ushort )AkMath.DEGtoA32(5));
        }
        if (( int )obj_work.dir.y < gms_ENE_HARO_WORK.targetAngle)
        {
            obj_work.dir.y = ( ushort )(obj_work.dir.y + ( ushort )AkMath.DEGtoA32(5));
        }
    }
Ejemplo n.º 20
0
 // Token: 0x0600102A RID: 4138 RVA: 0x0008CA44 File Offset: 0x0008AC44
 private static void gmEneUniuniWalkMain(OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_UNIUNI_WORK gms_ENE_UNIUNI_WORK = (AppMain.GMS_ENE_UNIUNI_WORK)obj_work;
     if ((obj_work.disp_flag & 1U) != 0U)
     {
         obj_work.spd.x = -1536;
     }
     else
     {
         obj_work.spd.x = 1536;
     }
     if (gms_ENE_UNIUNI_WORK.len_target == 17.5f)
     {
         if ((obj_work.disp_flag & 1U) != 0U)
         {
             gms_ENE_UNIUNI_WORK.rot_y += AkMath.DEGtoA32(1);
         }
         else
         {
             gms_ENE_UNIUNI_WORK.rot_y += AkMath.DEGtoA32(-1);
         }
     }
     else
     {
         if ((obj_work.disp_flag & 1U) != 0U)
         {
             gms_ENE_UNIUNI_WORK.rot_y += AkMath.DEGtoA32(0.5f);
         }
         else
         {
             gms_ENE_UNIUNI_WORK.rot_y += AkMath.DEGtoA32(-0.5f);
         }
         obj_work.spd.x = 0;
     }
     if (gms_ENE_UNIUNI_WORK.len_target > gms_ENE_UNIUNI_WORK.len)
     {
         gms_ENE_UNIUNI_WORK.len += gms_ENE_UNIUNI_WORK.len_spd;
         if (gms_ENE_UNIUNI_WORK.len_target <= gms_ENE_UNIUNI_WORK.len)
         {
             gms_ENE_UNIUNI_WORK.len = gms_ENE_UNIUNI_WORK.len_target;
         }
         gms_ENE_UNIUNI_WORK.len_spd += 0.03f;
     }
     if (gms_ENE_UNIUNI_WORK.len_target < gms_ENE_UNIUNI_WORK.len)
     {
         gms_ENE_UNIUNI_WORK.len -= gms_ENE_UNIUNI_WORK.len_spd;
         if (gms_ENE_UNIUNI_WORK.len_target >= gms_ENE_UNIUNI_WORK.len)
         {
             gms_ENE_UNIUNI_WORK.len = gms_ENE_UNIUNI_WORK.len_target;
         }
         gms_ENE_UNIUNI_WORK.len_spd -= 0.05f;
         if (gms_ENE_UNIUNI_WORK.len_spd < 0.1f)
         {
             gms_ENE_UNIUNI_WORK.len_spd = 0.1f;
         }
     }
     if (gms_ENE_UNIUNI_WORK.timer > 0)
     {
         gms_ENE_UNIUNI_WORK.timer--;
         return;
     }
     if (gms_ENE_UNIUNI_WORK.len_target == 17.5f)
     {
         gms_ENE_UNIUNI_WORK.timer      = 120;
         gms_ENE_UNIUNI_WORK.len_spd    = 0f;
         gms_ENE_UNIUNI_WORK.len_target = 35.5f;
         return;
     }
     if (gms_ENE_UNIUNI_WORK.len_target == 35.5f)
     {
         gms_ENE_UNIUNI_WORK.timer      = 120;
         gms_ENE_UNIUNI_WORK.len_spd    = 1f;
         gms_ENE_UNIUNI_WORK.len_target = 17.5f;
     }
 }