コード例 #1
0
 private static void ObjCameraGetTargetUpVecCamera(
     AppMain.OBS_CAMERA obj_camera,
     AppMain.NNS_CAMERA_TARGET_UPVECTOR tupvec_camera)
 {
     tupvec_camera.User       = 0U;
     tupvec_camera.Fovy       = obj_camera.fovy;
     tupvec_camera.Aspect     = obj_camera.aspect;
     tupvec_camera.ZNear      = obj_camera.znear;
     tupvec_camera.ZFar       = obj_camera.zfar;
     tupvec_camera.Position.x = obj_camera.disp_pos.x;
     tupvec_camera.Position.y = obj_camera.disp_pos.y;
     tupvec_camera.Position.z = obj_camera.disp_pos.z;
     if (obj_camera.target_obj != null)
     {
         tupvec_camera.Target.x = AppMain.FXM_FX32_TO_FLOAT(obj_camera.target_obj.pos.x);
         tupvec_camera.Target.y = AppMain.FXM_FX32_TO_FLOAT(obj_camera.target_obj.pos.y);
         tupvec_camera.Target.z = AppMain.FXM_FX32_TO_FLOAT(obj_camera.target_obj.pos.z);
     }
     else
     {
         tupvec_camera.Target.x = obj_camera.target_pos.x;
         tupvec_camera.Target.y = obj_camera.target_pos.y;
         tupvec_camera.Target.z = obj_camera.target_pos.z;
     }
     tupvec_camera.UpVector.Assign(obj_camera.up_vec);
 }
コード例 #2
0
 // Token: 0x06000D8A RID: 3466 RVA: 0x000766AC File Offset: 0x000748AC
 private static void gmSplStageNudgeCtrl()
 {
     AppMain.GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)];
     AppMain.OBS_CAMERA      obs_CAMERA      = AppMain.ObjCameraGet(0);
     if (gms_PLAYER_WORK.nudge_timer != 0)
     {
         int num = ((int)(gms_PLAYER_WORK.nudge_timer * 8) << 12) / 30;
         if ((gms_PLAYER_WORK.nudge_timer & 2) != 0)
         {
             num = -num;
         }
         int num2 = 0;
         AppMain.GmObjGetRotPosXY(num, num2, ref gms_PLAYER_WORK.obj_work.ofst.x, ref gms_PLAYER_WORK.obj_work.ofst.y, AppMain.g_gm_main_system.pseudofall_dir);
         AppMain.GmObjGetRotPosXY(num, num2, ref num, ref num2, ( ushort )-AppMain.g_gm_main_system.pseudofall_dir);
         obs_CAMERA.ofst.x = AppMain.FXM_FX32_TO_FLOAT(num);
         obs_CAMERA.ofst.y = AppMain.FXM_FX32_TO_FLOAT(num2);
         AppMain.GMS_PLAYER_WORK gms_PLAYER_WORK2 = gms_PLAYER_WORK;
         gms_PLAYER_WORK2.nudge_timer -= 1;
         return;
     }
     obs_CAMERA.ofst.x = 0f;
     obs_CAMERA.ofst.y = 0f;
     gms_PLAYER_WORK.obj_work.ofst.x = 0;
     gms_PLAYER_WORK.obj_work.ofst.y = 0;
     gms_PLAYER_WORK.nudge_ofst_x    = 0;
 }
コード例 #3
0
ファイル: GmGmkLoop.cs プロジェクト: uwx/Sonic4Episode1
 private static void gmGmkLoopExecuteCamera(int loop_x, int loop_y)
 {
     AppMain.OBS_CAMERA obj_camera = AppMain.ObjCameraGet(0);
     AppMain.GmCameraPosSet(AppMain.FX_F32_TO_FX32(obj_camera.pos.x) + loop_x, -AppMain.FX_F32_TO_FX32(obj_camera.pos.y) + loop_y, AppMain.FX_F32_TO_FX32(obj_camera.pos.z));
     AppMain.ObjObjectCameraSet(AppMain.FXM_FLOAT_TO_FX32(obj_camera.disp_pos.x - (float)((int)AppMain.OBD_LCD_X / 2)), AppMain.FXM_FLOAT_TO_FX32(-obj_camera.disp_pos.y - (float)((int)AppMain.OBD_LCD_Y / 2)), AppMain.FXM_FLOAT_TO_FX32(obj_camera.disp_pos.x - (float)((int)AppMain.OBD_LCD_X / 2)), AppMain.FXM_FLOAT_TO_FX32(-obj_camera.disp_pos.y - (float)((int)AppMain.OBD_LCD_Y / 2)));
     AppMain.GmCameraSetClipCamera(obj_camera);
 }
コード例 #4
0
 // Token: 0x0600104E RID: 4174 RVA: 0x0008EB90 File Offset: 0x0008CD90
 private static void gmCameraFuncAddMap(AppMain.OBS_CAMERA obj_camera)
 {
     AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(0);
     obj_camera.prev_pos.Assign(obj_camera.pos);
     obj_camera.prev_disp_pos.Assign(obj_camera.disp_pos);
     obj_camera.disp_pos.Assign(obs_CAMERA.disp_pos);
     obj_camera.pos.Assign(obs_CAMERA.pos);
     obj_camera.ofst.Assign(obs_CAMERA.ofst);
     obj_camera.disp_ofst.Assign(obs_CAMERA.disp_ofst);
     obj_camera.target_ofst.Assign(obs_CAMERA.target_ofst);
     obj_camera.play_ofst_max.Assign(obs_CAMERA.play_ofst_max);
     obj_camera.camup_obj = obs_CAMERA.camup_obj;
     obj_camera.camup_pos.Assign(obs_CAMERA.camup_pos);
     obj_camera.roll = obs_CAMERA.roll;
     obj_camera.up_vec.Assign(obs_CAMERA.up_vec);
     obj_camera.scale  = obs_CAMERA.scale;
     obj_camera.left   = obs_CAMERA.left;
     obj_camera.right  = obs_CAMERA.right;
     obj_camera.bottom = obs_CAMERA.bottom;
     obj_camera.top    = obs_CAMERA.top;
     obj_camera.znear  = obs_CAMERA.znear;
     obj_camera.zfar   = obs_CAMERA.zfar;
     obj_camera.aspect = obs_CAMERA.aspect;
     AppMain.GmMapGetAddMapCameraPos(obs_CAMERA.disp_pos, obs_CAMERA.target_pos, obj_camera.disp_pos, obj_camera.target_pos, obj_camera.camera_id);
 }
コード例 #5
0
 private static void ObjCameraGetTargetUpTargetCamera(
     AppMain.OBS_CAMERA obj_camera,
     AppMain.NNS_CAMERA_TARGET_UPTARGET tupt_camera)
 {
     tupt_camera.User       = 0U;
     tupt_camera.Fovy       = obj_camera.fovy;
     tupt_camera.Aspect     = obj_camera.aspect;
     tupt_camera.ZNear      = obj_camera.znear;
     tupt_camera.ZFar       = obj_camera.zfar;
     tupt_camera.Position.x = obj_camera.disp_pos.x;
     tupt_camera.Position.y = obj_camera.disp_pos.y;
     tupt_camera.Position.z = obj_camera.disp_pos.z;
     if (obj_camera.camup_obj != null)
     {
         tupt_camera.Target.x = AppMain.FXM_FX32_TO_FLOAT(obj_camera.camup_obj.pos.x);
         tupt_camera.Target.y = AppMain.FXM_FX32_TO_FLOAT(obj_camera.camup_obj.pos.y);
         tupt_camera.Target.z = AppMain.FXM_FX32_TO_FLOAT(obj_camera.camup_obj.pos.z);
     }
     else
     {
         tupt_camera.Target.x = obj_camera.camup_pos.x;
         tupt_camera.Target.y = obj_camera.camup_pos.y;
         tupt_camera.Target.z = obj_camera.camup_pos.z;
     }
 }
コード例 #6
0
 // Token: 0x06000263 RID: 611 RVA: 0x0001377C File Offset: 0x0001197C
 private static void gmGmkStopperStay_Norm_100(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_GMK_STOPPER_WORK gms_GMK_STOPPER_WORK = (AppMain.GMS_GMK_STOPPER_WORK)obj_work;
     if (gms_GMK_STOPPER_WORK.ply_work != AppMain.g_gm_main_system.ply_work[( int )(( UIntPtr )0)] || gms_GMK_STOPPER_WORK.ply_work.gmk_obj != obj_work || gms_GMK_STOPPER_WORK.ply_work.seq_state != 40)
     {
         AppMain.gmGmkStopperReset(obj_work);
         return;
     }
     AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(0);
     AppMain.GmCameraPosSet(AppMain.FXM_FLOAT_TO_FX32(obs_CAMERA.pos.x), AppMain.FXM_FLOAT_TO_FX32(-obs_CAMERA.pos.y) + 16384, AppMain.FXM_FLOAT_TO_FX32(obs_CAMERA.pos.z));
     AppMain.GMS_GMK_STOPPER_WORK gms_GMK_STOPPER_WORK2 = gms_GMK_STOPPER_WORK;
     gms_GMK_STOPPER_WORK2.player_pass_timer -= 1;
     if (gms_GMK_STOPPER_WORK.player_pass_timer <= 0)
     {
         obj_work.disp_flag &= 4294967291U;
         AppMain.gmGmkStopperStay_Norm_110(obj_work);
         return;
     }
     if (gms_GMK_STOPPER_WORK.player_pass_timer % 16 == 0)
     {
         AppMain.GmPlayerAddScore(gms_GMK_STOPPER_WORK.ply_work, 1000, gms_GMK_STOPPER_WORK.ply_work.obj_work.pos.x, gms_GMK_STOPPER_WORK.ply_work.obj_work.pos.y);
         AppMain.gsSoundStopSe(gms_GMK_STOPPER_WORK.se_handle);
         gms_GMK_STOPPER_WORK.se_handle.snd_ctrl_param.pitch = 0.8f - ( float )gms_GMK_STOPPER_WORK.player_pass_timer / 160f;
         AppMain.GmSoundPlaySE("Casino3", gms_GMK_STOPPER_WORK.se_handle);
         if (gms_GMK_STOPPER_WORK.player_pass_timer <= 16)
         {
             AppMain.GmSoundPlaySE("Casino3_1");
         }
     }
 }
コード例 #7
0
 // Token: 0x0600104F RID: 4175 RVA: 0x0008ECF4 File Offset: 0x0008CEF4
 private static void gmCameraFuncWater(AppMain.OBS_CAMERA obj_camera)
 {
     AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(0);
     AppMain.nnCopyVector(obj_camera.pos, obs_CAMERA.pos);
     AppMain.nnCopyVector(obj_camera.target_pos, obs_CAMERA.target_pos);
     AppMain.nnCopyVector(obj_camera.disp_pos, obs_CAMERA.disp_pos);
 }
コード例 #8
0
 private static void ObjCameraGetTargetRollCamera(
     AppMain.OBS_CAMERA obj_camera,
     AppMain.NNS_CAMERA_TARGET_ROLL troll_camera)
 {
     troll_camera.User       = 0U;
     troll_camera.Fovy       = obj_camera.fovy;
     troll_camera.Aspect     = obj_camera.aspect;
     troll_camera.ZNear      = obj_camera.znear;
     troll_camera.ZFar       = obj_camera.zfar;
     troll_camera.Position.x = obj_camera.disp_pos.x;
     troll_camera.Position.y = obj_camera.disp_pos.y;
     troll_camera.Position.z = obj_camera.disp_pos.z;
     if (obj_camera.target_obj != null)
     {
         troll_camera.Target.x = AppMain.FXM_FX32_TO_FLOAT(obj_camera.target_obj.pos.x);
         troll_camera.Target.y = AppMain.FXM_FX32_TO_FLOAT(obj_camera.target_obj.pos.y);
         troll_camera.Target.z = AppMain.FXM_FX32_TO_FLOAT(obj_camera.target_obj.pos.z);
     }
     else
     {
         troll_camera.Target.x = obj_camera.target_pos.x;
         troll_camera.Target.y = obj_camera.target_pos.y;
         troll_camera.Target.z = obj_camera.target_pos.z;
     }
     troll_camera.Roll = obj_camera.roll + 16384;
 }
コード例 #9
0
 private static void gmSplStageNudgeCtrl()
 {
     AppMain.GMS_PLAYER_WORK gmsPlayerWork = AppMain.g_gm_main_system.ply_work[0];
     AppMain.OBS_CAMERA      obsCamera     = AppMain.ObjCameraGet(0);
     if (gmsPlayerWork.nudge_timer != (short)0)
     {
         int dest_x = ((int)gmsPlayerWork.nudge_timer * 8 << 12) / 30;
         if (((int)gmsPlayerWork.nudge_timer & 2) != 0)
         {
             dest_x = -dest_x;
         }
         int dest_y = 0;
         AppMain.GmObjGetRotPosXY(dest_x, dest_y, ref gmsPlayerWork.obj_work.ofst.x, ref gmsPlayerWork.obj_work.ofst.y, AppMain.g_gm_main_system.pseudofall_dir);
         AppMain.GmObjGetRotPosXY(dest_x, dest_y, ref dest_x, ref dest_y, (ushort)-AppMain.g_gm_main_system.pseudofall_dir);
         obsCamera.ofst.x = AppMain.FXM_FX32_TO_FLOAT(dest_x);
         obsCamera.ofst.y = AppMain.FXM_FX32_TO_FLOAT(dest_y);
         --gmsPlayerWork.nudge_timer;
     }
     else
     {
         obsCamera.ofst.x = 0.0f;
         obsCamera.ofst.y = 0.0f;
         gmsPlayerWork.obj_work.ofst.x = 0;
         gmsPlayerWork.obj_work.ofst.y = 0;
         gmsPlayerWork.nudge_ofst_x    = 0;
     }
 }
コード例 #10
0
ファイル: GmGmkStopper.cs プロジェクト: uwx/Sonic4Episode1
 private static void gmGmkStopperStay_Norm_100(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_GMK_STOPPER_WORK gmsGmkStopperWork = (AppMain.GMS_GMK_STOPPER_WORK)obj_work;
     if (gmsGmkStopperWork.ply_work != AppMain.g_gm_main_system.ply_work[0] || gmsGmkStopperWork.ply_work.gmk_obj != obj_work || gmsGmkStopperWork.ply_work.seq_state != 40)
     {
         AppMain.gmGmkStopperReset(obj_work);
     }
     else
     {
         AppMain.OBS_CAMERA obsCamera = AppMain.ObjCameraGet(0);
         AppMain.GmCameraPosSet(AppMain.FXM_FLOAT_TO_FX32(obsCamera.pos.x), AppMain.FXM_FLOAT_TO_FX32(-obsCamera.pos.y) + 16384, AppMain.FXM_FLOAT_TO_FX32(obsCamera.pos.z));
         --gmsGmkStopperWork.player_pass_timer;
         if (gmsGmkStopperWork.player_pass_timer <= (short)0)
         {
             obj_work.disp_flag &= 4294967291U;
             AppMain.gmGmkStopperStay_Norm_110(obj_work);
         }
         else
         {
             if ((int)gmsGmkStopperWork.player_pass_timer % 16 != 0)
             {
                 return;
             }
             AppMain.GmPlayerAddScore(gmsGmkStopperWork.ply_work, 1000, gmsGmkStopperWork.ply_work.obj_work.pos.x, gmsGmkStopperWork.ply_work.obj_work.pos.y);
             AppMain.gsSoundStopSe(gmsGmkStopperWork.se_handle);
             gmsGmkStopperWork.se_handle.snd_ctrl_param.pitch = (float)(0.800000011920929 - (double)gmsGmkStopperWork.player_pass_timer / 160.0);
             AppMain.GmSoundPlaySE("Casino3", gmsGmkStopperWork.se_handle);
             if (gmsGmkStopperWork.player_pass_timer > (short)16)
             {
                 return;
             }
             AppMain.GmSoundPlaySE("Casino3_1");
         }
     }
 }
コード例 #11
0
 private static void gmSplStagePlayEndChk(AppMain.MTS_TASK_TCB tcb)
 {
     AppMain.GMS_SPL_STG_WORK work          = (AppMain.GMS_SPL_STG_WORK)tcb.work;
     AppMain.GMS_PLAYER_WORK  gmsPlayerWork = AppMain.g_gm_main_system.ply_work[0];
     AppMain.OBS_CAMERA       obsCamera     = AppMain.ObjCameraGet(0);
     if (AppMain.ObjObjectPauseCheck(0U) != 0U)
     {
         return;
     }
     AppMain.gmSplStageLightCtrl(work);
     work.flag &= 4294967294U;
     AppMain.gmSplStageNudgeCtrl();
     AppMain.gmSplStageRingGateChk(work);
     if (((int)AppMain.g_gm_main_system.game_flag & 458752) == 0)
     {
         return;
     }
     AppMain.g_gm_main_system.game_flag &= 4294966271U;
     gmsPlayerWork.obj_work.flag        |= 130U;
     gmsPlayerWork.obj_work.move_flag   |= 8448U;
     gmsPlayerWork.obj_work.disp_flag   &= 4294967294U;
     gmsPlayerWork.player_flag          |= 4194304U;
     if (((int)AppMain.g_gm_main_system.game_flag & 393216) != 0)
     {
         AppMain.GMM_PAD_VIB_MID_TIME(90f);
     }
     work.roll     = obsCamera.roll;
     work.roll_spd = 256;
     work.counter  = 0U;
     AppMain.mtTaskChangeTcbProcedure(tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmSplStageRolling));
 }
コード例 #12
0
 private static void gmSplStageRolling(AppMain.MTS_TASK_TCB tcb)
 {
     AppMain.GMS_SPL_STG_WORK work      = (AppMain.GMS_SPL_STG_WORK)tcb.work;
     AppMain.OBS_CAMERA       obsCamera = AppMain.ObjCameraGet(0);
     if (AppMain.ObjObjectPauseCheck(0U) != 0U || obsCamera == null)
     {
         return;
     }
     work.roll_spd += 56;
     work.roll     += work.roll_spd;
     obsCamera.roll = work.roll;
     ++work.counter;
     if (work.counter == 90U)
     {
         AppMain.IzFadeInitEasy(0U, 3U, 30f);
     }
     if (work.counter <= 90U || !AppMain.IzFadeIsEnd())
     {
         return;
     }
     AppMain.IzFadeExit();
     AppMain.IzFadeRestoreDrawSetting();
     AppMain.GmObjSetAllObjectNoDisp();
     AppMain.GmRingGetWork().flag |= 1U;
     AppMain.GmFixSetDisp(false);
     work.flag   |= 4U;
     work.counter = 1U;
     AppMain.mtTaskChangeTcbProcedure(tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmSplStageGotoEnd));
     obsCamera.roll = 0;
     AppMain.g_gm_main_system.pseudofall_dir = (ushort)0;
 }
コード例 #13
0
    // Token: 0x06001236 RID: 4662 RVA: 0x0009F37C File Offset: 0x0009D57C
    private static void gmGmkDrainTankOutMainWait(AppMain.OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)];
        if ((gms_PLAYER_WORK.player_flag & 1024U) != 0U)
        {
            AppMain.gmGmkDrainTankOutUpdateDie(obj_work);
            obj_work.spd.x = 0;
            obj_work.spd.y = 0;
            return;
        }
        if (AppMain.gmGmkDrainTankOutCheckDeleteTask(obj_work, 1843200, 1228800))
        {
            AppMain.gmGmkDrainTankOutRequestDeleteTask(obj_work);
            return;
        }
        AppMain.OBS_OBJECT_WORK obj_work2 = gms_PLAYER_WORK.obj_work;
        if (gms_PLAYER_WORK.seq_state == 22)
        {
            AppMain.gmGmkDrainTankOutChangeModeDamage(obj_work);
            return;
        }
        if ((obj_work.move_flag & 1U) == 0U)
        {
            AppMain.gmGmkDrainTankOutChangeModeSplash(obj_work);
            return;
        }
        AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work;
        int num = AppMain.GmPlayerKeyGetGimmickRotZ(gms_PLAYER_WORK);

        if (AppMain.MTM_MATH_ABS(num) > 8192)
        {
            gms_GMK_DRAIN_TANK_OUT_WORK.counter_roll_key++;
        }
        else
        {
            gms_GMK_DRAIN_TANK_OUT_WORK.counter_roll_key = 0;
        }
        if (gms_GMK_DRAIN_TANK_OUT_WORK.counter_roll_key >= 0)
        {
            AppMain.gmGmkDrainTankOutUpdateCameraRoll(gms_GMK_DRAIN_TANK_OUT_WORK, num);
            if (19 == gms_GMK_DRAIN_TANK_OUT_WORK.counter_roll_key % 20 && AppMain.MTM_MATH_ABS(gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll) < AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX)
            {
                AppMain.GmSoundPlaySE("Fluid1");
            }
        }
        if (AppMain.gmGmkDrainTankOutCheckKeyDir(obj_work, gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll))
        {
            int x = gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll >> 3;
            obj_work.spd.x = x;
            float a = AppMain.FX_FX32_TO_F32(gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll >> 4);
            a = AppMain.MTM_MATH_ABS(a);
            AppMain.GmWaterSurfaceRequestAddWatarLevel(AppMain.MTM_MATH_ABS(a), 0, true);
        }
        AppMain.gmGmkDrainTankOutAdjustPlayerOffsetBuoyancy(gms_GMK_DRAIN_TANK_OUT_WORK);
        AppMain.gmGmkDrainTankOutAdjustPlayerOffsetWave(gms_GMK_DRAIN_TANK_OUT_WORK, obj_work2);
        AppMain.gmGmkDrainTankOutApplyPlayerOffset(obj_work2, gms_GMK_DRAIN_TANK_OUT_WORK);
        AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(0);
        obs_CAMERA.roll = gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll;
        AppMain.gmGmkDrainTankOutUpdateCameraOffset(gms_PLAYER_WORK, gms_GMK_DRAIN_TANK_OUT_WORK);
    }
コード例 #14
0
 // Token: 0x06001238 RID: 4664 RVA: 0x0009F600 File Offset: 0x0009D800
 private static void gmGmkDrainTankOutMainSplash(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)];
     if ((gms_PLAYER_WORK.player_flag & 1024U) != 0U)
     {
         AppMain.gmGmkDrainTankOutUpdateDie(obj_work);
         return;
     }
     if (AppMain.gmGmkDrainTankOutCheckDeleteTask(obj_work, 1638400, 1228800))
     {
         AppMain.gmGmkDrainTankOutRequestDeleteTask(obj_work);
         return;
     }
     AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work;
     AppMain.OBS_OBJECT_WORK             obj_work2 = gms_PLAYER_WORK.obj_work;
     AppMain.GmWaterSurfaceRequestAddWatarLevel(0.001f, 0, true);
     AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(0);
     obs_CAMERA.roll = gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll;
     if (gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_x < obj_work2.pos.x)
     {
         obj_work2.move_flag |= 128U;
         obj_work2.move_flag &= 4294967039U;
         obj_work2.spd.x      = 65536;
         obj_work2.spd_add.x  = -896;
         AppMain.GmPlayerCameraOffsetSet(gms_PLAYER_WORK, 0, 0);
         AppMain.GmCameraAllowReset();
         AppMain.gmGmkDrainTankOutChangeModeEnd(obj_work);
     }
 }
コード例 #15
0
 // Token: 0x0600123B RID: 4667 RVA: 0x0009F75C File Offset: 0x0009D95C
 private static void gmGmkDrainTankOutUpdateDie(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work;
     AppMain.gmGmkDrainTankOutUpdateCameraRollDie(gms_GMK_DRAIN_TANK_OUT_WORK);
     AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(0);
     obs_CAMERA.roll = gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll;
 }
コード例 #16
0
    // Token: 0x06001044 RID: 4164 RVA: 0x0008DD08 File Offset: 0x0008BF08
    public static void GmCameraPosSet(int pos_x, int pos_y, int pos_z)
    {
        AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(0);
        float num  = (float)(AppMain.GSD_DISP_WIDTH / 2) * obs_CAMERA.scale;
        float num2 = (float)(AppMain.GSD_DISP_HEIGHT / 2) * obs_CAMERA.scale;
        float num3 = (float)AppMain.g_gm_main_system.map_fcol.bottom - (float)(AppMain.GSD_DISP_HEIGHT / 2) * obs_CAMERA.scale;

        obs_CAMERA.pos.x = AppMain.FXM_FX32_TO_FLOAT(pos_x);
        if (obs_CAMERA.pos.x < num)
        {
            obs_CAMERA.pos.x = num;
        }
        obs_CAMERA.pos.y = -AppMain.FXM_FX32_TO_FLOAT(pos_y);
        if (obs_CAMERA.pos.y > -num2)
        {
            obs_CAMERA.pos.y = -num2;
        }
        if (obs_CAMERA.pos.y > num3)
        {
            obs_CAMERA.pos.y = num3;
        }
        obs_CAMERA.pos.z      = AppMain.FXM_FX32_TO_FLOAT(pos_z) + 50f;
        obs_CAMERA.disp_pos.x = obs_CAMERA.pos.x;
        obs_CAMERA.disp_pos.y = obs_CAMERA.pos.y;
        obs_CAMERA.disp_pos.z = obs_CAMERA.pos.z;
    }
コード例 #17
0
 private static void gmGmkBobbinDefFunc(
     AppMain.OBS_RECT_WORK gimmick_rect,
     AppMain.OBS_RECT_WORK player_rect)
 {
     AppMain.OBS_OBJECT_WORK   parentObj1   = gimmick_rect.parent_obj;
     AppMain.GMS_ENEMY_3D_WORK gimmick_work = (AppMain.GMS_ENEMY_3D_WORK)parentObj1;
     AppMain.OBS_OBJECT_WORK   parentObj2   = player_rect.parent_obj;
     AppMain.VecFx32           vec          = new AppMain.VecFx32();
     vec.x = parentObj2.prev_pos.x - parentObj1.pos.x;
     vec.y = (int)((long)parentObj2.prev_pos.y + -12288L - (long)parentObj1.pos.y);
     vec.z = 0;
     if (AppMain.FX_Mul(114688, 114688) < AppMain.FX_Mul(vec.x, vec.x) + AppMain.FX_Mul(vec.y, vec.y))
     {
         gimmick_rect.flag &= 4294966271U;
     }
     else
     {
         gimmick_rect.flag |= 1024U;
         AppMain.VecFx32 vecFx32 = AppMain.gmGmkBobbinNormalizeVectorXY(vec);
         parentObj2.dir.z = (ushort)0;
         int v1_1 = AppMain.FX_Mul(vecFx32.x, 24576);
         int v1_2 = AppMain.FX_Mul(vecFx32.y, 24576);
         int v2_1 = AppMain.FX_F32_TO_FX32((float)((100.0 + (double)gimmick_work.ene_com.eve_rec.left) * 0.00999999977648258));
         if (v2_1 < 0)
         {
             v2_1 = 0;
         }
         int v2_2 = AppMain.FX_F32_TO_FX32((float)((100.0 + (double)gimmick_work.ene_com.eve_rec.top) * 0.00999999977648258));
         if (v2_2 < 0)
         {
             v2_2 = 0;
         }
         int num1 = AppMain.FX_Mul(v1_1, v2_1);
         int num2 = AppMain.FX_Mul(v1_2, v2_2);
         if (parentObj2.obj_type == (ushort)1)
         {
             AppMain.gmGmkBobbinDefPlayer(gimmick_work, (AppMain.GMS_PLAYER_WORK)parentObj2, num1, num2);
         }
         else if (parentObj2.obj_type == (ushort)2)
         {
             AppMain.gmGmkBobbinDefEnemy(parentObj2, num1, num2);
         }
         AppMain.gmGmkBobbinChangeModeHit(parentObj1);
         AppMain.GmSoundPlaySE("Casino1");
         AppMain.GMS_EFFECT_3DES_WORK gmsEffect3DesWork = AppMain.GmEfctCmnEsCreate(parentObj1, 16);
         gmsEffect3DesWork.efct_com.obj_work.pos.x = parentObj2.pos.x;
         gmsEffect3DesWork.efct_com.obj_work.pos.y = parentObj2.pos.y;
         gmsEffect3DesWork.efct_com.obj_work.pos.z = 131072;
         gmsEffect3DesWork.efct_com.obj_work.dir.z = (ushort)(AppMain.nnArcTan2((double)AppMain.FX_FX32_TO_F32(num2), (double)AppMain.FX_FX32_TO_F32(num1)) - 16384);
         if (AppMain.GSM_MAIN_STAGE_IS_SPSTAGE_NOT_RETRY())
         {
             AppMain.OBS_CAMERA obsCamera = AppMain.ObjCameraGet(AppMain.g_obj.glb_camera_id);
             if (obsCamera != null)
             {
                 gmsEffect3DesWork.efct_com.obj_work.dir.z -= (ushort)obsCamera.roll;
             }
         }
         AppMain.GMM_PAD_VIB_SMALL();
     }
 }
コード例 #18
0
 // Token: 0x06000085 RID: 133 RVA: 0x00007738 File Offset: 0x00005938
 private static void gmEveMgrStateFuncSingleScr()
 {
     AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(AppMain.g_obj.glb_camera_id);
     if (obs_CAMERA != null && (obs_CAMERA.disp_pos.x != AppMain.g_gm_eve_mgr_work.prev_pos[0] || obs_CAMERA.disp_pos.y != AppMain.g_gm_eve_mgr_work.prev_pos[1]))
     {
         AppMain.GmEveMgrCreateEventLcd(3U);
     }
 }
コード例 #19
0
 // Token: 0x060017A4 RID: 6052 RVA: 0x000D1450 File Offset: 0x000CF650
 private static void gmGmkSsTimeEfctMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(AppMain.g_obj.glb_camera_id);
     if (obs_CAMERA != null)
     {
         obj_work.dir.z = ( ushort )(-( ushort )obs_CAMERA.roll);
     }
 }
コード例 #20
0
 private static void gmGmkSsTimeEfctMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.OBS_CAMERA obsCamera = AppMain.ObjCameraGet(AppMain.g_obj.glb_camera_id);
     if (obsCamera == null)
     {
         return;
     }
     obj_work.dir.z = (ushort)-obsCamera.roll;
 }
コード例 #21
0
ファイル: DmLogoSega.cs プロジェクト: uwx/Sonic4Episode1
 private void dmLogoSegaCamera(AppMain.OBS_CAMERA camera)
 {
     camera.disp_pos.x   = 0.0f;
     camera.disp_pos.y   = 0.0f;
     camera.disp_pos.z   = 200f;
     camera.target_pos.x = 0.0f;
     camera.target_pos.y = 0.0f;
     camera.target_pos.z = 0.0f;
 }
コード例 #22
0
ファイル: DmTitleOp.cs プロジェクト: uwx/Sonic4Episode1
 private void dmTitleOpCamera(AppMain.OBS_CAMERA camera)
 {
     camera.disp_pos.x   = 0.0f;
     camera.disp_pos.y   = 5f;
     camera.disp_pos.z   = 160f;
     camera.target_pos.x = 0.0f;
     camera.target_pos.y = 0.0f;
     camera.target_pos.z = 10f;
 }
コード例 #23
0
ファイル: GmEventManager.cs プロジェクト: uwx/Sonic4Episode1
 private static void gmEveMgrStateFuncSingleScr()
 {
     AppMain.OBS_CAMERA obsCamera = AppMain.ObjCameraGet(AppMain.g_obj.glb_camera_id);
     if (obsCamera == null || (double)obsCamera.disp_pos.x == (double)AppMain.g_gm_eve_mgr_work.prev_pos[0] && (double)obsCamera.disp_pos.y == (double)AppMain.g_gm_eve_mgr_work.prev_pos[1])
     {
         return;
     }
     AppMain.GmEveMgrCreateEventLcd(3U);
 }
コード例 #24
0
 // Token: 0x0600012F RID: 303 RVA: 0x0000D780 File Offset: 0x0000B980
 private static float ObjCameraDispScaleGet(int cam_id)
 {
     AppMain.mppAssertNotImpl();
     AppMain.OBS_CAMERA obs_CAMERA = AppMain.obj_camera_sys.obj_camera[cam_id];
     if (obs_CAMERA.disp_pos.z >= 0f)
     {
         return(1f - obs_CAMERA.disp_pos.z / 2f);
     }
     return(1f - obs_CAMERA.disp_pos.z);
 }
コード例 #25
0
ファイル: GmMain.cs プロジェクト: uwx/Sonic4Episode1
    private static ushort GmMainGetObjectRotation()
    {
        ushort num = 0;

        AppMain.OBS_CAMERA obsCamera = AppMain.ObjCameraGet(AppMain.g_obj.glb_camera_id);
        if (obsCamera != null)
        {
            num = (ushort)-obsCamera.roll;
        }
        return(num);
    }
コード例 #26
0
 // Token: 0x0600104D RID: 4173 RVA: 0x0008EB28 File Offset: 0x0008CD28
 private static void gmCameraFuncMapFar(AppMain.OBS_CAMERA obj_camera)
 {
     AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(0);
     obj_camera.pos.Assign(AppMain.GmMapFarGetCameraPos(obs_CAMERA.disp_pos));
     obj_camera.target_pos.Assign(AppMain.GmMapFarGetCameraTarget(obj_camera.pos));
     obj_camera.disp_pos.Assign(obj_camera.pos);
     if (!AppMain.GSM_MAIN_STAGE_IS_SPSTAGE())
     {
         obj_camera.roll = obs_CAMERA.roll;
     }
 }
コード例 #27
0
ファイル: GmMain.cs プロジェクト: uwx/Sonic4Episode1
    private static void gmMainPre(AppMain.MTS_TASK_TCB tcb)
    {
        AppMain.gmMainUpdateSuspendedPause();
        AppMain.GMS_MAIN_SYSTEM gGmMainSystem = AppMain.g_gm_main_system;
        if (((int)gGmMainSystem.game_flag & 134217728) != 0)
        {
            AppMain.g_gm_main_system.game_flag &= 4160749567U;
            if (AppMain.g_gs_main_sys_info.stage_id != (ushort)28 && ((int)AppMain.g_gm_main_system.game_flag & 524288) == 0)
            {
                AppMain.GmSoundPlayStageBGM(0);
            }
        }
        CPadVirtualPad.CreateInstance().Update();
        AppMain.CPadPolarHandle instance = AppMain.CPadPolarHandle.CreateInstance();
        instance.Update();
        int polarNow = gGmMainSystem.polar_now;

        gGmMainSystem.polar_now  = instance.GetAngle32Value();
        gGmMainSystem.polar_diff = gGmMainSystem.polar_now - polarNow;
        if (!AppMain.gmMainIsUseWaitUpCamera())
        {
            return;
        }
        if (AppMain.GmPlayerIsStateWait(gGmMainSystem.ply_work[0]))
        {
            if (gGmMainSystem.camscale_state == AppMain.GME_MAIN_CAMSCALE_STATE.GMD_MAIN_CAMSCALE_STATE_NON)
            {
                gGmMainSystem.camscale_state = AppMain.GME_MAIN_CAMSCALE_STATE.GMD_MAIN_CAMSCALE_STATE_ZOOM;
            }
        }
        else
        {
            gGmMainSystem.camscale_state = AppMain.GME_MAIN_CAMSCALE_STATE.GMD_MAIN_CAMSCALE_STATE_NON;
            gGmMainSystem.camera_scale   = 0.6743833f;
        }
        if (gGmMainSystem.camscale_state == AppMain.GME_MAIN_CAMSCALE_STATE.GMD_MAIN_CAMSCALE_STATE_ZOOM)
        {
            gGmMainSystem.camera_scale -= 0.01f;
            if ((double)gGmMainSystem.camera_scale < 0.337191671133041)
            {
                gGmMainSystem.camera_scale   = 0.3371917f;
                gGmMainSystem.camscale_state = AppMain.GME_MAIN_CAMSCALE_STATE.GMD_MAIN_CAMSCALE_STATE_UP;
            }
        }
        for (int cam_id = 0; cam_id < 7; ++cam_id)
        {
            AppMain.OBS_CAMERA obsCamera = AppMain.ObjCameraGet(cam_id);
            if (obsCamera != null)
            {
                obsCamera.scale = gGmMainSystem.camera_scale;
            }
        }
    }
コード例 #28
0
    private static void ObjCamera3dInit(int cam_id)
    {
        if (AppMain.obj_camera_sys == null)
        {
            return;
        }
        if (AppMain.obj_camera_sys.obj_camera[cam_id] == null)
        {
            AppMain.NNS_VECTOR pos = new AppMain.NNS_VECTOR();
            if (AppMain.ObjCameraInit(cam_id, pos, 0, (ushort)0, 61438) == -1)
            {
                return;
            }
            //AppMain.GlobalPool<AppMain.NNS_VECTOR>.Release(pos);
        }
        AppMain.OBS_CAMERA obj_camera = AppMain.obj_camera_sys.obj_camera[cam_id];
        obj_camera.flag  |= 16U;
        obj_camera.znear  = 1f;
        obj_camera.zfar   = 60000f;
        obj_camera.aspect = AppMain.AMD_SCREEN_ASPECT;
        obj_camera.fovy   = AppMain.NNM_DEGtoA32(45f);
        AppMain.nnMakePerspectiveMatrix(obj_camera.prj_pers_mtx, obj_camera.fovy, obj_camera.aspect, obj_camera.znear, obj_camera.zfar);
        obj_camera.scale = 5f / 64f;
        float num1 = (float)((double)AppMain.g_obj.disp_height * (double)obj_camera.scale * 0.5 * 1.0);
        float num2 = num1 * obj_camera.aspect;

        obj_camera.left   = -num2;
        obj_camera.right  = num2;
        obj_camera.bottom = -num1;
        obj_camera.top    = num1;
        AppMain.nnMakeOrthoMatrix(obj_camera.prj_ortho_mtx, obj_camera.left, obj_camera.right, obj_camera.bottom, obj_camera.top, obj_camera.znear, obj_camera.zfar);
        switch (obj_camera.camera_type)
        {
        case AppMain.OBE_CAMERA_TYPE.OBE_CAMERA_TYPE_TARGET_ROLL:
            AppMain.NNS_CAMERA_TARGET_ROLL cameraTargetRoll = new AppMain.NNS_CAMERA_TARGET_ROLL();
            AppMain.ObjCameraGetTargetRollCamera(obj_camera, cameraTargetRoll);
            AppMain.nnMakeTargetRollCameraViewMatrix(obj_camera.view_mtx, cameraTargetRoll);
            break;

        case AppMain.OBE_CAMERA_TYPE.OBE_CAMERA_TYPE_TARGET_UP_TARGET:
            AppMain.NNS_CAMERA_TARGET_UPTARGET cameraTargetUptarget = new AppMain.NNS_CAMERA_TARGET_UPTARGET();
            AppMain.ObjCameraGetTargetUpTargetCamera(obj_camera, cameraTargetUptarget);
            AppMain.nnMakeTargetUpTargetCameraViewMatrix(obj_camera.view_mtx, cameraTargetUptarget);
            break;

        case AppMain.OBE_CAMERA_TYPE.OBE_CAMERA_TYPE_TARGET_UP_VEC:
            AppMain.NNS_CAMERA_TARGET_UPVECTOR cameraTargetUpvector = new AppMain.NNS_CAMERA_TARGET_UPVECTOR();
            AppMain.ObjCameraGetTargetUpVecCamera(obj_camera, cameraTargetUpvector);
            AppMain.nnMakeTargetUpVectorCameraViewMatrix(obj_camera.view_mtx, cameraTargetUpvector);
            break;
        }
    }
コード例 #29
0
    private static void objCameraPosLimitCheck(AppMain.OBS_CAMERA obj_camera, AppMain.NNS_VECTOR pPos)
    {
        int num1 = 0;

        if ((double)pPos.z != 0.0)
        {
            if ((double)obj_camera.limit[4] > (double)pPos.z)
            {
                pPos.z = (float)obj_camera.limit[4];
            }
            if ((double)obj_camera.limit[5] < (double)pPos.z)
            {
                pPos.z = (float)obj_camera.limit[5];
            }
            if (1.0 / (double)AppMain.ObjCameraDispScaleGet((int)obj_camera.index) * (double)AppMain.OBD_LCD_X > (double)(obj_camera.limit[2] - obj_camera.limit[0]))
            {
                float num2 = 1f / ((float)(obj_camera.limit[2] - obj_camera.limit[0]) / (float)AppMain.OBD_LCD_X);
                pPos.z = (double)pPos.z < 0.0 ? (float)(((double)num2 - 1.0) * -1.0) : (float)(((double)num2 - 1.0) * -2.0);
            }
            if (1.0 / (double)AppMain.ObjCameraDispScaleGet((int)obj_camera.index) * (double)AppMain.OBD_LCD_Y > (double)(obj_camera.limit[3] - obj_camera.limit[1]))
            {
                float num2 = 1f / ((float)(obj_camera.limit[3] - obj_camera.limit[1]) / (float)AppMain.OBD_LCD_X);
                pPos.z = (double)pPos.z < 0.0 ? (float)(((double)num2 - 1.0) * -1.0) : (float)(((double)num2 - 1.0) * -2.0);
            }
        }
        if ((double)pPos.z > 0.0)
        {
            num1 = AppMain.FXM_FLOAT_TO_FX32(1f / AppMain.ObjCameraDispScaleGet((int)obj_camera.index) * (float)AppMain.OBD_LCD_X) - ((int)AppMain.OBD_LCD_X << 12) >> 13;
        }
        if ((double)(obj_camera.limit[0] + num1) > (double)pPos.x)
        {
            pPos.x = (float)(obj_camera.limit[0] + num1);
        }
        if ((double)(obj_camera.limit[2] - (int)AppMain.OBD_LCD_X - num1) < (double)pPos.x)
        {
            pPos.x = (float)(obj_camera.limit[2] - (int)AppMain.OBD_LCD_X - num1);
        }
        if ((double)pPos.z > 0.0)
        {
            num1 = AppMain.FXM_FLOAT_TO_FX32(1f / AppMain.ObjCameraDispScaleGet((int)obj_camera.index) * (float)AppMain.OBD_LCD_Y) - ((int)AppMain.OBD_LCD_Y << 12) >> 13;
        }
        if ((double)(obj_camera.limit[1] + num1) > (double)pPos.y)
        {
            pPos.y = (float)(obj_camera.limit[1] + num1);
        }
        if ((double)(obj_camera.limit[3] - (int)AppMain.OBD_LCD_Y - num1) >= (double)pPos.y)
        {
            return;
        }
        pPos.y = (float)(obj_camera.limit[3] - (int)AppMain.OBD_LCD_Y - num1);
    }
コード例 #30
0
ファイル: GmRing.cs プロジェクト: uwx/Sonic4Episode1
    private static void gmRingDrawFuncRing3D(AppMain.GMS_RING_WORK ring_work)
    {
        AppMain.VecU16 vecU16 = new AppMain.VecU16();
        vecU16.x = (ushort)0;
        vecU16.y = AppMain.gm_ring_sys_work.dir;
        AppMain.OBS_CAMERA obsCamera = AppMain.ObjCameraGet(AppMain.g_obj.glb_camera_id);
        vecU16.z = (ushort)-obsCamera.roll;
        int drawRingCount = (int)AppMain.gm_ring_sys_work.draw_ring_count;

        AppMain.gm_ring_sys_work.draw_ring_pos[drawRingCount].x = ring_work.pos.x;
        AppMain.gm_ring_sys_work.draw_ring_pos[drawRingCount].y = ring_work.pos.y;
        AppMain.gm_ring_sys_work.draw_ring_pos[drawRingCount].z = ring_work.pos.z;
        ++AppMain.gm_ring_sys_work.draw_ring_count;
    }