// Token: 0x06000D85 RID: 3461 RVA: 0x0007644C File Offset: 0x0007464C private static void gmSplStageRolling(MTS_TASK_TCB tcb) { AppMain.GMS_SPL_STG_WORK gms_SPL_STG_WORK = (AppMain.GMS_SPL_STG_WORK)tcb.work; OBS_CAMERA obs_CAMERA = ObjCamera.Get(0); if (AppMain.ObjObjectPauseCheck(0U) != 0U) { return; } if (obs_CAMERA == null) { return; } gms_SPL_STG_WORK.roll_spd += 56; gms_SPL_STG_WORK.roll += gms_SPL_STG_WORK.roll_spd; obs_CAMERA.roll = gms_SPL_STG_WORK.roll; gms_SPL_STG_WORK.counter += 1U; if (gms_SPL_STG_WORK.counter == 90U) { AppMain.IzFadeInitEasy(0U, 3U, 30f); } if (gms_SPL_STG_WORK.counter > 90U && AppMain.IzFadeIsEnd()) { AppMain.IzFadeExit(); AppMain.IzFadeRestoreDrawSetting(); AppMain.GmObjSetAllObjectNoDisp(); AppMain.GmRingGetWork().flag |= 1U; AppMain.GmFixSetDisp(false); gms_SPL_STG_WORK.flag |= 4U; gms_SPL_STG_WORK.counter = 1U; AppMain.mtTaskChangeTcbProcedure(tcb, AppMain.gmSplStageGotoEnd); obs_CAMERA.roll = 0; AppMain.g_gm_main_system.pseudofall_dir = 0; } }
// Token: 0x06000129 RID: 297 RVA: 0x0000D314 File Offset: 0x0000B514 public static void GetTargetRollCamera(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; }
// Token: 0x06001238 RID: 4664 RVA: 0x0009F600 File Offset: 0x0009D800 private static void gmGmkDrainTankOutMainSplash(OBS_OBJECT_WORK obj_work) { 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; OBS_OBJECT_WORK obj_work2 = gms_PLAYER_WORK.obj_work; AppMain.GmWaterSurfaceRequestAddWatarLevel(0.001f, 0, true); OBS_CAMERA obs_CAMERA = ObjCamera.Get(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; GmPlayer.CameraOffsetSet(gms_PLAYER_WORK, 0, 0); GmCamera.AllowReset(); AppMain.gmGmkDrainTankOutChangeModeEnd(obj_work); } }
// Token: 0x06000D8A RID: 3466 RVA: 0x000766AC File Offset: 0x000748AC private static void gmSplStageNudgeCtrl() { GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)]; OBS_CAMERA obs_CAMERA = ObjCamera.Get(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); 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; }
// Token: 0x0600012B RID: 299 RVA: 0x0000D58C File Offset: 0x0000B78C public static void GetTargetUpVecCamera(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); }
// Token: 0x06000D84 RID: 3460 RVA: 0x00076328 File Offset: 0x00074528 private static void gmSplStagePlayEndChk(MTS_TASK_TCB tcb) { AppMain.GMS_SPL_STG_WORK gms_SPL_STG_WORK = (AppMain.GMS_SPL_STG_WORK)tcb.work; GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)]; OBS_CAMERA obs_CAMERA = ObjCamera.Get(0); if (AppMain.ObjObjectPauseCheck(0U) != 0U) { return; } AppMain.gmSplStageLightCtrl(gms_SPL_STG_WORK); gms_SPL_STG_WORK.flag &= 4294967294U; AppMain.gmSplStageNudgeCtrl(); AppMain.gmSplStageRingGateChk(gms_SPL_STG_WORK); if ((AppMain.g_gm_main_system.game_flag & 458752U) != 0U) { AppMain.g_gm_main_system.game_flag &= 4294966271U; gms_PLAYER_WORK.obj_work.flag |= 130U; gms_PLAYER_WORK.obj_work.move_flag |= 8448U; gms_PLAYER_WORK.obj_work.disp_flag &= 4294967294U; gms_PLAYER_WORK.player_flag |= 4194304U; if ((AppMain.g_gm_main_system.game_flag & 393216U) != 0U) { AppMain.GMM_PAD_VIB_MID_TIME(90f); } gms_SPL_STG_WORK.roll = obs_CAMERA.roll; gms_SPL_STG_WORK.roll_spd = 256; gms_SPL_STG_WORK.counter = 0U; AppMain.mtTaskChangeTcbProcedure(tcb, AppMain.gmSplStageRolling); } }
// Token: 0x0600123B RID: 4667 RVA: 0x0009F75C File Offset: 0x0009D95C private static void gmGmkDrainTankOutUpdateDie(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); OBS_CAMERA obs_CAMERA = ObjCamera.Get(0); obs_CAMERA.roll = gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll; }
// Token: 0x06001563 RID: 5475 RVA: 0x000B9B34 File Offset: 0x000B7D34 private static void gmGmkLoopExecuteCamera(int loop_x, int loop_y) { OBS_CAMERA obs_CAMERA = ObjCamera.Get(0); GmCamera.PosSet(AppMain.FX_F32_TO_FX32(obs_CAMERA.pos.x) + loop_x, -AppMain.FX_F32_TO_FX32(obs_CAMERA.pos.y) + loop_y, AppMain.FX_F32_TO_FX32(obs_CAMERA.pos.z)); AppMain.ObjObjectCameraSet(AppMain.FXM_FLOAT_TO_FX32(obs_CAMERA.disp_pos.x - ( float )(AppMain.OBD_LCD_X / 2)), AppMain.FXM_FLOAT_TO_FX32(-obs_CAMERA.disp_pos.y - ( float )(AppMain.OBD_LCD_Y / 2)), AppMain.FXM_FLOAT_TO_FX32(obs_CAMERA.disp_pos.x - ( float )(AppMain.OBD_LCD_X / 2)), AppMain.FXM_FLOAT_TO_FX32(-obs_CAMERA.disp_pos.y - ( float )(AppMain.OBD_LCD_Y / 2))); GmCamera.SetClipCamera(obs_CAMERA); }
// Token: 0x060007C2 RID: 1986 RVA: 0x00044B14 File Offset: 0x00042D14 private void dmLogoSegaCamera(OBS_CAMERA camera) { camera.disp_pos.x = 0f; camera.disp_pos.y = 0f; camera.disp_pos.z = 200f; camera.target_pos.x = 0f; camera.target_pos.y = 0f; camera.target_pos.z = 0f; }
// Token: 0x06000085 RID: 133 RVA: 0x00007738 File Offset: 0x00005938 private static void gmEveMgrStateFuncSingleScr() { OBS_CAMERA obs_CAMERA = ObjCamera.Get(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); } }
// Token: 0x060018E1 RID: 6369 RVA: 0x000E2BEC File Offset: 0x000E0DEC private void dmTitleOpCamera(OBS_CAMERA camera) { camera.disp_pos.x = 0f; camera.disp_pos.y = 5f; camera.disp_pos.z = 160f; camera.target_pos.x = 0f; camera.target_pos.y = 0f; camera.target_pos.z = 10f; }
// Token: 0x060017A4 RID: 6052 RVA: 0x000D1450 File Offset: 0x000CF650 private static void gmGmkSsTimeEfctMain(OBS_OBJECT_WORK obj_work) { OBS_CAMERA obs_CAMERA = ObjCamera.Get(AppMain.g_obj.glb_camera_id); if (obs_CAMERA != null) { obj_work.dir.z = ( ushort )(-( ushort )obs_CAMERA.roll); } }
// Token: 0x0600012F RID: 303 RVA: 0x0000D780 File Offset: 0x0000B980 public static float DispScaleGet(int cam_id) { AppMain.mppAssertNotImpl(); OBS_CAMERA obs_CAMERA = 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); }
// Token: 0x06000082 RID: 130 RVA: 0x000074EC File Offset: 0x000056EC private static void gmEveMgrMain(MTS_TASK_TCB tcb) { AppMain.GMS_EVE_MGR_WORK gms_EVE_MGR_WORK = (AppMain.GMS_EVE_MGR_WORK)tcb.work; if (gms_EVE_MGR_WORK.sts_proc != null) { gms_EVE_MGR_WORK.sts_proc(); } OBS_CAMERA obs_CAMERA = ObjCamera.Get(AppMain.g_obj.glb_camera_id); if (obs_CAMERA != null) { gms_EVE_MGR_WORK.prev_pos[0] = obs_CAMERA.disp_pos.x; gms_EVE_MGR_WORK.prev_pos[1] = obs_CAMERA.disp_pos.y; } }
// Token: 0x06001237 RID: 4663 RVA: 0x0009F4EC File Offset: 0x0009D6EC private static void gmGmkDrainTankOutMainDamage(OBS_OBJECT_WORK obj_work) { 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.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; OBS_OBJECT_WORK obj_work2 = gms_PLAYER_WORK.obj_work; AppMain.gmGmkDrainTankOutUpdateCameraRollDamage(gms_GMK_DRAIN_TANK_OUT_WORK); int num = (AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX - AppMain.MTM_MATH_ABS(gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll)) * 4; int num2 = num >> 3; if (gms_GMK_DRAIN_TANK_OUT_WORK.flag_dir_left) { obj_work.spd.x = num2; } else { obj_work.spd.x = -num2; } float num3 = AppMain.FX_FX32_TO_F32(num >> 4); AppMain.GmWaterSurfaceRequestAddWatarLevel(-num3, 0, true); obj_work.user_timer++; if ((obj_work2.move_flag & 1U) != 0U) { obj_work.user_timer = 0; AppMain.gmGmkDrainTankOutChangeModeWait(obj_work); AppMain.GmPlySeqInitDrainTank(gms_PLAYER_WORK); return; } OBS_CAMERA obs_CAMERA = ObjCamera.Get(0); obs_CAMERA.roll = gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll; AppMain.gmGmkDrainTankOutUpdateCameraOffset(gms_PLAYER_WORK, gms_GMK_DRAIN_TANK_OUT_WORK); AppMain.gmGmkDrainTankOutSinkRing(); }
// Token: 0x06000DA2 RID: 3490 RVA: 0x000783E0 File Offset: 0x000765E0 public static void gmRingDrawFuncRing3D(AppMain.GMS_RING_WORK ring_work) { AppMain.VecU16 vecU = default(AppMain.VecU16); vecU.x = 0; vecU.y = AppMain.gm_ring_sys_work.dir; OBS_CAMERA obs_CAMERA = ObjCamera.Get(AppMain.g_obj.glb_camera_id); vecU.z = (ushort)(-(ushort)obs_CAMERA.roll); int draw_ring_count = (int)AppMain.gm_ring_sys_work.draw_ring_count; AppMain.gm_ring_sys_work.draw_ring_pos[draw_ring_count].x = ring_work.pos.x; AppMain.gm_ring_sys_work.draw_ring_pos[draw_ring_count].y = ring_work.pos.y; AppMain.gm_ring_sys_work.draw_ring_pos[draw_ring_count].z = ring_work.pos.z; AppMain.GMS_RING_SYS_WORK gms_RING_SYS_WORK = AppMain.gm_ring_sys_work; gms_RING_SYS_WORK.draw_ring_count += 1; }
// Token: 0x060007AB RID: 1963 RVA: 0x00043C0C File Offset: 0x00041E0C private void dmLogoSegaObjSysytemInit() { NNS_RGBA nns_RGBA = new NNS_RGBA(1f, 1f, 1f, 1f); NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc(); NNS_VECTOR pos = new NNS_VECTOR(0f, 0f, 50f); AppMain.ObjInit(4, 61435, 0, AppMain.GMD_OBJ_LCD_X, AppMain.GMD_OBJ_LCD_Y, ( float )AppMain.GSD_DISP_WIDTH, ( float )AppMain.GSD_DISP_HEIGHT); AppMain.ObjDataAlloc(10); AppMain.ObjDrawESEffectSystemInit(0, 20480U, 0U); AppMain.ObjDrawSetNNCommandStateTbl(0U, 0U, true); AppMain.AoActSysClearPeak(); AppMain.g_obj.flag = 4259848U; AppMain.g_obj.ppPre = null; AppMain.g_obj.ppPost = null; AppMain.g_obj.ppCollision = null; AppMain.g_obj.ppObjPre = null; AppMain.g_obj.ppObjPost = null; AppMain.g_obj.ppRegRecAuto = null; AppMain.g_obj.draw_scale.x = (AppMain.g_obj.draw_scale.y = (AppMain.g_obj.draw_scale.z = 29127)); AppMain.g_obj.inv_draw_scale.x = (AppMain.g_obj.inv_draw_scale.y = (AppMain.g_obj.inv_draw_scale.z = AppMain.FX_Div(4096, AppMain.g_obj.draw_scale.x))); AppMain.g_obj.depth = 128; AppMain.g_obj.ambient_color.r = 0.8f; AppMain.g_obj.ambient_color.g = 0.8f; AppMain.g_obj.ambient_color.b = 0.8f; nns_VECTOR.x = -1f; nns_VECTOR.y = -1f; nns_VECTOR.z = -1f; AppMain.nnNormalizeVector(nns_VECTOR, nns_VECTOR); AppMain.ObjDrawSetParallelLight(AppMain.NNE_LIGHT_0, ref nns_RGBA, 1f, nns_VECTOR); GlobalPool <NNS_VECTOR> .Release(nns_VECTOR); ObjCamera.Init(0, pos, 0, 0, 6144); ObjCamera.Init3d(0); AppMain.g_obj.glb_camera_id = 0; AppMain.g_obj.glb_camera_type = 1; OBS_CAMERA obs_CAMERA = ObjCamera.Get(0); obs_CAMERA.user_func = this.dmLogoSegaCamera; obs_CAMERA.command_state = 0U; obs_CAMERA.scale = 0.9f; obs_CAMERA.ofst.z = 1000f; this.amTrailEFInitialize(); }
// Token: 0x06000DC8 RID: 3528 RVA: 0x00079848 File Offset: 0x00077A48 private static OBS_OBJECT_WORK GmGmkStartInit(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { if ((AppMain.g_gs_main_sys_info.game_flag & 4U) == 0U) { AppMain.g_gm_main_system.resume_pos_x = pos_x; AppMain.g_gm_main_system.resume_pos_y = pos_y - 4096; } eve_rec.pos_x = byte.MaxValue; GmCamera.PosSet(AppMain.g_gm_main_system.resume_pos_x, AppMain.g_gm_main_system.resume_pos_y, 0); OBS_CAMERA obs_CAMERA = ObjCamera.Get(AppMain.g_obj.glb_camera_id); AppMain.ObjObjectCameraSet( AppMain.FXM_FLOAT_TO_FX32((obs_CAMERA.disp_pos.x - (float)(AppMain.OBD_LCD_X / 2))), AppMain.FXM_FLOAT_TO_FX32((-obs_CAMERA.disp_pos.y - (float)(AppMain.OBD_LCD_Y / 2))), AppMain.FXM_FLOAT_TO_FX32((obs_CAMERA.disp_pos.x - (float)(AppMain.OBD_LCD_X / 2))), AppMain.FXM_FLOAT_TO_FX32((-obs_CAMERA.disp_pos.y - (float)(AppMain.OBD_LCD_Y / 2)))); GmCamera.SetClipCamera(obs_CAMERA); return(null); }
// Token: 0x06000266 RID: 614 RVA: 0x000139A0 File Offset: 0x00011BA0 private static void gmGmkStopperStay_Slot_100(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; } OBS_CAMERA obs_CAMERA = ObjCamera.Get(0); GmCamera.PosSet(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)); if (AppMain.GmGmkSlotIsStatus(gms_GMK_STOPPER_WORK.call_slot_id) != 0) { obj_work.disp_flag &= 4294967291U; obj_work.ppFunc = AppMain.gmGmkStopperStay_Slot_110; AppMain.gmGmkStopperStay_Slot_110(obj_work); } }
// Token: 0x060018C0 RID: 6336 RVA: 0x000E1CDC File Offset: 0x000DFEDC private void DmTitleOpInit() { NNS_RGBA nns_RGBA = new NNS_RGBA(1f, 1f, 1f, 1f); NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc(); nns_VECTOR.Clear(); NNS_VECTOR pos = new NNS_VECTOR(0f, 0f, 50f); AppMain.g_obj.flag = 4259848U; AppMain.g_obj.ppPre = null; AppMain.g_obj.ppPost = null; AppMain.g_obj.ppCollision = null; AppMain.g_obj.ppObjPre = null; AppMain.g_obj.ppObjPost = null; AppMain.g_obj.ppRegRecAuto = null; AppMain.g_obj.draw_scale.x = (AppMain.g_obj.draw_scale.y = (AppMain.g_obj.draw_scale.z = 13107)); AppMain.g_obj.inv_draw_scale.x = (AppMain.g_obj.inv_draw_scale.y = (AppMain.g_obj.inv_draw_scale.z = AppMain.FX_Div(4096, AppMain.g_obj.draw_scale.x))); AppMain.g_obj.depth = 128; AppMain.g_obj.ambient_color.r = 0.8f; AppMain.g_obj.ambient_color.g = 0.8f; AppMain.g_obj.ambient_color.b = 0.8f; nns_VECTOR.x = -1f; nns_VECTOR.y = -1f; nns_VECTOR.z = -1f; AppMain.nnNormalizeVector(nns_VECTOR, nns_VECTOR); AppMain.ObjDrawSetParallelLight(AppMain.NNE_LIGHT_0, ref nns_RGBA, 1f, nns_VECTOR); ObjCamera.Init(0, pos, 0, 0, 12288); ObjCamera.Init3d(0); AppMain.g_obj.glb_camera_id = 0; AppMain.g_obj.glb_camera_type = 0; OBS_CAMERA obs_CAMERA = ObjCamera.Get(0); obs_CAMERA.user_func = this.dmTitleOpCamera; obs_CAMERA.command_state = 0U; obs_CAMERA.fovy = AppMain.NNM_DEGtoA32(40f); obs_CAMERA.znear = 0.1f; obs_CAMERA.zfar = 32768f; this.dmTitleOpMgrInit(); GlobalPool <NNS_VECTOR> .Release(nns_VECTOR); }
// Token: 0x0600012A RID: 298 RVA: 0x0000D458 File Offset: 0x0000B658 public static void GetTargetUpTargetCamera(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); return; } 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; }
// Token: 0x06000263 RID: 611 RVA: 0x0001377C File Offset: 0x0001197C private static void gmGmkStopperStay_Norm_100(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; } OBS_CAMERA obs_CAMERA = ObjCamera.Get(0); GmCamera.PosSet(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) { GmPlayer.AddScore(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); GsSound.StopSE(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; GmSound.PlaySE("Casino3", gms_GMK_STOPPER_WORK.se_handle); if (gms_GMK_STOPPER_WORK.player_pass_timer <= 16) { GmSound.PlaySE("Casino3_1"); } } }
// Token: 0x0600069E RID: 1694 RVA: 0x0003BC10 File Offset: 0x00039E10 private static void gmGmkCamScrLimitSetting(OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_CAM_SCR_LIMIT_WORK gms_GMK_CAM_SCR_LIMIT_WORK = (AppMain.GMS_GMK_CAM_SCR_LIMIT_WORK)obj_work; OBS_CAMERA obs_CAMERA = ObjCamera.Get(0); int num = AppMain.FXM_FLOAT_TO_FX32(obs_CAMERA.pos.x) >> 12; int num2 = -AppMain.FXM_FLOAT_TO_FX32(obs_CAMERA.pos.y) >> 12; int num3 = 1; int num4 = 1; int num5 = AppMain.FXM_FLOAT_TO_FX32(AppMain.AMD_SCREEN_2D_WIDTH / 2f * obs_CAMERA.scale) >> 12; int num6 = AppMain.FXM_FLOAT_TO_FX32(AppMain.AMD_SCREEN_2D_HEIGHT / 2f * obs_CAMERA.scale) >> 12; byte b = 1; if ((Convert.ToInt32(obj_work.user_flag) & 1) != 0 && AppMain.g_gm_main_system.map_fcol.left != gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[0]) { int num7 = num - num5; if (num7 > gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[0]) { AppMain.g_gm_main_system.map_fcol.left = gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[0]; } else { if (num7 > AppMain.g_gm_main_system.map_fcol.left) { AppMain.g_gm_main_system.map_fcol.left = num7 + num3; } else { AppMain.g_gm_main_system.map_fcol.left += num3; } if (AppMain.g_gm_main_system.map_fcol.left > gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[0]) { AppMain.g_gm_main_system.map_fcol.left = gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[0]; } } b = 0; } if ((Convert.ToInt32(obj_work.user_flag) & 4) != 0 && AppMain.g_gm_main_system.map_fcol.right != gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[2]) { int num8 = num + num5; if (num8 < gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[2]) { AppMain.g_gm_main_system.map_fcol.right = gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[2]; } else { if (num8 < AppMain.g_gm_main_system.map_fcol.right) { AppMain.g_gm_main_system.map_fcol.right = num8 - num3; } else { AppMain.g_gm_main_system.map_fcol.right -= num3; } if (AppMain.g_gm_main_system.map_fcol.right < gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[2]) { AppMain.g_gm_main_system.map_fcol.right = gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[2]; } } b = 0; } if ((Convert.ToInt32(obj_work.user_flag) & 2) != 0 && AppMain.g_gm_main_system.map_fcol.top != gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[1]) { int num9 = num2 - num6; if (num9 > gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[1]) { AppMain.g_gm_main_system.map_fcol.top = gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[1]; } else { if (num9 > AppMain.g_gm_main_system.map_fcol.top) { AppMain.g_gm_main_system.map_fcol.top = num9 + num4; } else { AppMain.g_gm_main_system.map_fcol.top += num4; } if (AppMain.g_gm_main_system.map_fcol.top > gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[1]) { AppMain.g_gm_main_system.map_fcol.top = gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[1]; } } b = 0; } if ((Convert.ToInt32(obj_work.user_flag) & 8) != 0 && AppMain.g_gm_main_system.map_fcol.bottom != gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[3]) { int num10 = num2 + num6; if (num10 < gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[3]) { AppMain.g_gm_main_system.map_fcol.bottom = gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[3]; } else { if (num10 < AppMain.g_gm_main_system.map_fcol.bottom) { AppMain.g_gm_main_system.map_fcol.bottom = num10 - num4; } else { AppMain.g_gm_main_system.map_fcol.bottom -= num4; } if (AppMain.g_gm_main_system.map_fcol.bottom < gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[3]) { AppMain.g_gm_main_system.map_fcol.bottom = gms_GMK_CAM_SCR_LIMIT_WORK.limit_setting.limit_rect[3]; } } b = 0; } if (b != 0) { obj_work.flag |= 8U; AppMain.g_gm_main_system.game_flag &= 4294934527U; } }
// Token: 0x0600069B RID: 1691 RVA: 0x0003B79C File Offset: 0x0003999C private static void gmGmkCamScrLimitRelease(OBS_OBJECT_WORK obj_work) { OBS_CAMERA obs_CAMERA = ObjCamera.Get(0); int num = AppMain.FXM_FLOAT_TO_FX32(obs_CAMERA.pos.x) >> 12; int num2 = -AppMain.FXM_FLOAT_TO_FX32(obs_CAMERA.pos.y) >> 12; int num3 = AppMain.FXM_FLOAT_TO_FX32(AppMain.AMD_SCREEN_2D_WIDTH / 2f * obs_CAMERA.scale) >> 12; int num4 = AppMain.FXM_FLOAT_TO_FX32(AppMain.AMD_SCREEN_2D_HEIGHT / 2f * obs_CAMERA.scale) >> 12; int user_work = (int)obj_work.user_work; int user_work2 = (int)obj_work.user_work; byte b = 1; if (((ushort)obj_work.user_flag & 1) != 0 && AppMain.g_gm_main_system.map_fcol.left != 0) { if (num - num3 > AppMain.g_gm_main_system.map_fcol.left) { AppMain.g_gm_main_system.map_fcol.left = 0; } else { AppMain.g_gm_main_system.map_fcol.left -= user_work; if (AppMain.g_gm_main_system.map_fcol.left < 0) { AppMain.g_gm_main_system.map_fcol.left = 0; } b = 0; } } if (((ushort)obj_work.user_flag & 4) != 0 && AppMain.g_gm_main_system.map_fcol.right < (int)(AppMain.g_gm_main_system.map_fcol.map_block_num_x * 64)) { if (num + num3 < AppMain.g_gm_main_system.map_fcol.right) { AppMain.g_gm_main_system.map_fcol.right = (int)(AppMain.g_gm_main_system.map_fcol.map_block_num_x * 64); } else { AppMain.g_gm_main_system.map_fcol.right += user_work; if (AppMain.g_gm_main_system.map_fcol.right > (int)(AppMain.g_gm_main_system.map_fcol.map_block_num_x * 64)) { AppMain.g_gm_main_system.map_fcol.right = (int)(AppMain.g_gm_main_system.map_fcol.map_block_num_x * 64); } b = 0; } } if (((ushort)obj_work.user_flag & 2) != 0 && AppMain.g_gm_main_system.map_fcol.top != 0) { if (num2 - num4 > AppMain.g_gm_main_system.map_fcol.top) { AppMain.g_gm_main_system.map_fcol.top = 0; } else { AppMain.g_gm_main_system.map_fcol.top -= user_work2; if (AppMain.g_gm_main_system.map_fcol.top < 0) { AppMain.g_gm_main_system.map_fcol.top = 0; } b = 0; } } if (((ushort)obj_work.user_flag & 8) != 0 && AppMain.g_gm_main_system.map_fcol.bottom < (int)(AppMain.g_gm_main_system.map_fcol.map_block_num_y * 64)) { if (num2 + num4 < AppMain.g_gm_main_system.map_fcol.bottom) { AppMain.g_gm_main_system.map_fcol.bottom = (int)(AppMain.g_gm_main_system.map_fcol.map_block_num_y * 64); } else { AppMain.g_gm_main_system.map_fcol.bottom += user_work2; if (AppMain.g_gm_main_system.map_fcol.bottom > (int)(AppMain.g_gm_main_system.map_fcol.map_block_num_y * 64)) { AppMain.g_gm_main_system.map_fcol.bottom = (int)(AppMain.g_gm_main_system.map_fcol.map_block_num_y * 64); } b = 0; } } if (b != 0 && obj_work.user_timer != 0) { obj_work.flag |= 8U; AppMain.g_gm_main_system.game_flag &= 4294934527U; } obj_work.user_timer++; }
// Token: 0x06000678 RID: 1656 RVA: 0x00039ECC File Offset: 0x000380CC public static void gmGmkTruckSetMoveSeParam(OBS_OBJECT_WORK obj_work, GSS_SND_SE_HANDLE h_snd, GMS_PLAYER_WORK ply_work, int b_goal) { float num = 0f; if (h_snd == null) { return; } OBS_OBJECT_WORK obs_OBJECT_WORK; if (ply_work != null) { obs_OBJECT_WORK = ply_work.obj_work; } else { obs_OBJECT_WORK = obj_work; } int num2 = AppMain.MTM_MATH_ABS(obs_OBJECT_WORK.spd_m); if ((obs_OBJECT_WORK.move_flag & 1U) != 0U && num2 >= AppMain.GMD_GMK_TRUCK_SE_MIN_SPD) { if (num2 >= AppMain.GMD_GMK_TRUCK_SE_MAX_SPD) { num = 1f; } else { num = AppMain.FXM_FX32_TO_FLOAT(AppMain.FX_Div(num2 - AppMain.GMD_GMK_TRUCK_SE_MIN_SPD, AppMain.GMD_GMK_TRUCK_SE_MAX_SPD - AppMain.GMD_GMK_TRUCK_SE_MIN_SPD)); if (num > 1f) { num = 1f; } } } h_snd.au_player.SetAisac("Speed", num); if (b_goal != 0) { OBS_CAMERA obs_CAMERA = ObjCamera.Get(AppMain.g_obj.glb_camera_id); float num3 = AppMain.FXM_FX32_TO_FLOAT(obs_OBJECT_WORK.pos.x) - obs_CAMERA.disp_pos.x; float num4 = AppMain.FXM_FX32_TO_FLOAT(obs_OBJECT_WORK.pos.y) - -obs_CAMERA.disp_pos.y; float num6; if (num3 < AppMain.GMD_GMK_TRUCK_SE_GOAL_MAX_DIST && num4 < AppMain.GMD_GMK_TRUCK_SE_GOAL_MAX_DIST) { float num5 = num3 * num3 + num4 * num4; if (num5 <= AppMain.GMD_GMK_TRUCK_SE_GOAL_MIN_DIST * AppMain.GMD_GMK_TRUCK_SE_GOAL_MIN_DIST) { num6 = 1f; } else if (num5 <= AppMain.GMD_GMK_TRUCK_SE_GOAL_MAX_DIST * AppMain.GMD_GMK_TRUCK_SE_GOAL_MAX_DIST) { num6 = (AppMain.GMD_GMK_TRUCK_SE_GOAL_MAX_DIST * AppMain.GMD_GMK_TRUCK_SE_GOAL_MAX_DIST - num5) / ((AppMain.GMD_GMK_TRUCK_SE_GOAL_MAX_DIST - AppMain.GMD_GMK_TRUCK_SE_GOAL_MIN_DIST) * (AppMain.GMD_GMK_TRUCK_SE_GOAL_MAX_DIST - AppMain.GMD_GMK_TRUCK_SE_GOAL_MIN_DIST)); if (num6 > 1f) { num6 = 1f; } else if (num6 < 0f) { num6 = 0f; } } else { num6 = 0f; } } else { num6 = 0f; } h_snd.snd_ctrl_param.volume = num6; } }
// Token: 0x06000127 RID: 295 RVA: 0x0000D158 File Offset: 0x0000B358 public static void Init3d(int cam_id) { if (obj_camera_sys == null) { return; } if (obj_camera_sys.obj_camera[cam_id] == null) { NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc(); int num = Init(cam_id, nns_VECTOR, 0, 0, 61438); if (num == -1) { return; } GlobalPool <NNS_VECTOR> .Release(nns_VECTOR); } NNS_MATRIX scaleMatrix = GlobalPool <NNS_MATRIX> .Alloc(); nnMakeScaleMatrix(scaleMatrix, AppMain.AMD_SCREEN_SCALE, AppMain.AMD_SCREEN_SCALE, AppMain.AMD_SCREEN_SCALE); OBS_CAMERA obs_CAMERA = obj_camera_sys.obj_camera[cam_id]; obs_CAMERA.flag |= 16U; obs_CAMERA.znear = 1f; obs_CAMERA.zfar = 60000f; obs_CAMERA.aspect = AppMain.AMD_SCREEN_ASPECT; obs_CAMERA.fovy = AppMain.NNM_DEGtoA32(45f); AppMain.nnMakePerspectiveMatrix(obs_CAMERA.prj_pers_mtx, obs_CAMERA.fovy, obs_CAMERA.aspect, obs_CAMERA.znear, obs_CAMERA.zfar); //nnMultiplyMatrix(obs_CAMERA.prj_pers_mtx, obs_CAMERA.prj_pers_mtx, scaleMatrix); obs_CAMERA.scale = 0.078125f; float num2 = AppMain.g_obj.disp_height * obs_CAMERA.scale * 0.5f * 1f; float num3 = num2 * obs_CAMERA.aspect; obs_CAMERA.left = -num3; obs_CAMERA.right = num3; obs_CAMERA.bottom = -num2; obs_CAMERA.top = num2; AppMain.nnMakeOrthoMatrix(obs_CAMERA.prj_ortho_mtx, obs_CAMERA.left, obs_CAMERA.right, obs_CAMERA.bottom, obs_CAMERA.top, obs_CAMERA.znear, obs_CAMERA.zfar); AppMain.nnMultiplyMatrix(obs_CAMERA.prj_ortho_mtx, obs_CAMERA.prj_ortho_mtx, scaleMatrix); switch (obs_CAMERA.camera_type) { case OBE_CAMERA_TYPE.OBE_CAMERA_TYPE_TARGET_ROLL: { AppMain.NNS_CAMERA_TARGET_ROLL nns_CAMERA_TARGET_ROLL = new AppMain.NNS_CAMERA_TARGET_ROLL(); GetTargetRollCamera(obs_CAMERA, nns_CAMERA_TARGET_ROLL); AppMain.nnMakeTargetRollCameraViewMatrix(obs_CAMERA.view_mtx, nns_CAMERA_TARGET_ROLL); return; } case OBE_CAMERA_TYPE.OBE_CAMERA_TYPE_TARGET_UP_TARGET: { AppMain.NNS_CAMERA_TARGET_UPTARGET nns_CAMERA_TARGET_UPTARGET = new AppMain.NNS_CAMERA_TARGET_UPTARGET(); GetTargetUpTargetCamera(obs_CAMERA, nns_CAMERA_TARGET_UPTARGET); AppMain.nnMakeTargetUpTargetCameraViewMatrix(obs_CAMERA.view_mtx, nns_CAMERA_TARGET_UPTARGET); return; } case OBE_CAMERA_TYPE.OBE_CAMERA_TYPE_TARGET_UP_VEC: { AppMain.NNS_CAMERA_TARGET_UPVECTOR nns_CAMERA_TARGET_UPVECTOR = new AppMain.NNS_CAMERA_TARGET_UPVECTOR(); GetTargetUpVecCamera(obs_CAMERA, nns_CAMERA_TARGET_UPVECTOR); AppMain.nnMakeTargetUpVectorCameraViewMatrix(obs_CAMERA.view_mtx, nns_CAMERA_TARGET_UPVECTOR); return; } default: return; } }
// Token: 0x06000136 RID: 310 RVA: 0x0000E334 File Offset: 0x0000C534 private static void objCameraPosLimitCheck(OBS_CAMERA obj_camera, NNS_VECTOR pPos) { int num = 0; if (pPos.z != 0f) { if ((float)obj_camera.limit[4] > pPos.z) { pPos.z = (float)obj_camera.limit[4]; } if ((float)obj_camera.limit[5] < pPos.z) { pPos.z = (float)obj_camera.limit[5]; } if (1f / DispScaleGet((int)obj_camera.index) * (float)AppMain.OBD_LCD_X > (float)(obj_camera.limit[2] - obj_camera.limit[0])) { float num2 = (float)(obj_camera.limit[2] - obj_camera.limit[0]) / (float)AppMain.OBD_LCD_X; num2 = 1f / num2; if (pPos.z >= 0f) { pPos.z = (num2 - 1f) * -2f; } else { pPos.z = (num2 - 1f) * -1f; } } if (1f / DispScaleGet((int)obj_camera.index) * (float)AppMain.OBD_LCD_Y > (float)(obj_camera.limit[3] - obj_camera.limit[1])) { float num2 = (float)(obj_camera.limit[3] - obj_camera.limit[1]) / (float)AppMain.OBD_LCD_X; num2 = 1f / num2; if (pPos.z >= 0f) { pPos.z = (num2 - 1f) * -2f; } else { pPos.z = (num2 - 1f) * -1f; } } } if (pPos.z > 0f) { num = AppMain.FXM_FLOAT_TO_FX32(1f / DispScaleGet((int)obj_camera.index) * (float)AppMain.OBD_LCD_X); num -= (int)AppMain.OBD_LCD_X << 12; num >>= 13; } if ((float)(obj_camera.limit[0] + num) > pPos.x) { pPos.x = (float)(obj_camera.limit[0] + num); } if ((float)(obj_camera.limit[2] - (int)AppMain.OBD_LCD_X - num) < pPos.x) { pPos.x = (float)(obj_camera.limit[2] - (int)AppMain.OBD_LCD_X - num); } if (pPos.z > 0f) { num = AppMain.FXM_FLOAT_TO_FX32(1f / DispScaleGet((int)obj_camera.index) * (float)AppMain.OBD_LCD_Y); num -= (int)AppMain.OBD_LCD_Y << 12; num >>= 13; } if ((float)(obj_camera.limit[1] + num) > pPos.y) { pPos.y = (float)(obj_camera.limit[1] + num); } if ((float)(obj_camera.limit[3] - (int)AppMain.OBD_LCD_Y - num) < pPos.y) { pPos.y = (float)(obj_camera.limit[3] - (int)AppMain.OBD_LCD_Y - num); } }
// Token: 0x06000135 RID: 309 RVA: 0x0000E326 File Offset: 0x0000C526 private static void objCameraLimitCheck(OBS_CAMERA obj_camera) { objCameraPosLimitCheck(obj_camera, obj_camera.disp_pos); }
// Token: 0x06000134 RID: 308 RVA: 0x0000DC00 File Offset: 0x0000BE00 private static void objCameraMove(OBS_CAMERA obj_camera) { NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc(); if (obj_camera.target_obj != null) { nns_VECTOR.x = AppMain.FXM_FX32_TO_FLOAT(obj_camera.target_obj.pos.x) + obj_camera.target_ofst.x; nns_VECTOR.y = AppMain.FXM_FX32_TO_FLOAT(obj_camera.target_obj.pos.y - (((int)AppMain.OBD_LCD_Y << 1) + 200 << 12)) + obj_camera.target_ofst.y; nns_VECTOR.z = AppMain.FXM_FX32_TO_FLOAT(obj_camera.target_obj.pos.z) + obj_camera.target_ofst.z; } else { nns_VECTOR.x = obj_camera.target_pos.x - AppMain.FXM_FX32_TO_FLOAT(AppMain.OBD_LCD_X >> 1 << 12) + obj_camera.target_ofst.x; nns_VECTOR.y = obj_camera.target_pos.y - AppMain.FXM_FX32_TO_FLOAT(AppMain.OBD_LCD_Y >> 1 << 12) + obj_camera.target_ofst.y; nns_VECTOR.z = obj_camera.target_pos.z + obj_camera.target_ofst.z; } obj_camera.work.x = nns_VECTOR.x; obj_camera.work.y = nns_VECTOR.y; obj_camera.work.z = nns_VECTOR.z; obj_camera.prev_pos.x = obj_camera.pos.x; obj_camera.prev_pos.y = obj_camera.pos.y; obj_camera.prev_pos.z = obj_camera.pos.z; if ((obj_camera.flag & 1U) != 0U) { if (obj_camera.target_obj != null) { obj_camera.pos.x = nns_VECTOR.x; obj_camera.pos.y = nns_VECTOR.y; obj_camera.pos.z = nns_VECTOR.z; } return; } if ((obj_camera.flag & 2U) != 0U) { obj_camera.pos.x = AppMain.ObjShiftSetF(obj_camera.pos.x, nns_VECTOR.x, (int)obj_camera.shift, obj_camera.spd_max.x, obj_camera.spd_add.x); obj_camera.pos.y = AppMain.ObjShiftSetF(obj_camera.pos.y, nns_VECTOR.x, (int)obj_camera.shift, obj_camera.spd_max.y, obj_camera.spd_add.y); obj_camera.pos.z = AppMain.ObjShiftSetF(obj_camera.pos.z, nns_VECTOR.x, (int)obj_camera.shift, obj_camera.spd_max.z, obj_camera.spd_add.z); } else { if (nns_VECTOR.x != obj_camera.pos.x) { obj_camera.spd.x = AppMain.ObjSpdUpSetF(obj_camera.spd.x, obj_camera.spd_add.x, obj_camera.spd_max.x); } else { obj_camera.spd.x = AppMain.ObjSpdDownSetF(obj_camera.spd.x, obj_camera.spd_add.x); } if (nns_VECTOR.y != obj_camera.pos.y) { obj_camera.spd.y = AppMain.ObjSpdUpSetF(obj_camera.spd.y, obj_camera.spd_add.y, obj_camera.spd_max.y); } else { obj_camera.spd.y = AppMain.ObjSpdDownSetF(obj_camera.spd.y, obj_camera.spd_add.y); } if (nns_VECTOR.z != obj_camera.pos.z) { obj_camera.spd.z = AppMain.ObjSpdUpSetF(obj_camera.spd.z, obj_camera.spd_add.z, obj_camera.spd_max.z); } else { obj_camera.spd.z = AppMain.ObjSpdDownSetF(obj_camera.spd.z, obj_camera.spd_add.z); } if (nns_VECTOR.x > obj_camera.pos.x) { obj_camera.pos.x += obj_camera.spd.x; if (obj_camera.pos.x > nns_VECTOR.x) { obj_camera.pos.x = nns_VECTOR.x; } } else { obj_camera.pos.x -= obj_camera.spd.x; if (obj_camera.pos.x < nns_VECTOR.x) { obj_camera.pos.x = nns_VECTOR.x; } } if (nns_VECTOR.y > obj_camera.pos.y) { obj_camera.pos.y += obj_camera.spd.y; if (obj_camera.pos.y > nns_VECTOR.y) { obj_camera.pos.y = nns_VECTOR.y; } } else { obj_camera.pos.y -= obj_camera.spd.y; if (obj_camera.pos.y < nns_VECTOR.y) { obj_camera.pos.y = nns_VECTOR.y; } } if (nns_VECTOR.z > obj_camera.pos.z) { obj_camera.pos.z += obj_camera.spd.z; if (obj_camera.pos.z > nns_VECTOR.z) { obj_camera.pos.z = nns_VECTOR.z; } } else { obj_camera.pos.z -= obj_camera.spd.z; if (obj_camera.pos.z < nns_VECTOR.z) { obj_camera.pos.z = nns_VECTOR.z; } } } if (Math.Abs(nns_VECTOR.x - obj_camera.pos.x) > obj_camera.play_ofst_max.x) { if (nns_VECTOR.x > obj_camera.pos.x) { obj_camera.pos.x = nns_VECTOR.x - obj_camera.play_ofst_max.x; } else { obj_camera.pos.x = nns_VECTOR.x + obj_camera.play_ofst_max.x; } } if (Math.Abs(nns_VECTOR.y - obj_camera.pos.y) > obj_camera.play_ofst_max.y) { if (nns_VECTOR.y > obj_camera.pos.y) { obj_camera.pos.y = nns_VECTOR.y - obj_camera.play_ofst_max.y; } else { obj_camera.pos.y = nns_VECTOR.y + obj_camera.play_ofst_max.y; } } if (Math.Abs(nns_VECTOR.z - obj_camera.pos.z) > obj_camera.play_ofst_max.z) { if (nns_VECTOR.z > obj_camera.pos.z) { obj_camera.pos.z = nns_VECTOR.z - obj_camera.play_ofst_max.z; } else { obj_camera.pos.z = nns_VECTOR.z + obj_camera.play_ofst_max.z; } } obj_camera.pos.z += obj_camera.ofst.z; GlobalPool <NNS_VECTOR> .Release(nns_VECTOR); }
// Token: 0x06000133 RID: 307 RVA: 0x0000D868 File Offset: 0x0000BA68 private static void objCameraMain(MTS_TASK_TCB tcb) { if (AppMain.ObjObjectPauseCheck(0U) != 0U) { return; } NNS_MATRIX scaleMatrix = GlobalPool <NNS_MATRIX> .Alloc(); AppMain.nnMakeScaleMatrix(scaleMatrix, AMD_SCREEN_SCALE, AMD_SCREEN_SCALE, AMD_SCREEN_SCALE); NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc(); for (int i = 0; i < 8; i++) { OBS_CAMERA obs_CAMERA = obj_camera_sys.obj_camera[i]; if (obs_CAMERA != null) { obs_CAMERA.prev_disp_pos.x = obs_CAMERA.disp_pos.x; obs_CAMERA.prev_disp_pos.y = obs_CAMERA.disp_pos.y; obs_CAMERA.prev_disp_pos.z = obs_CAMERA.disp_pos.z; if (obs_CAMERA.user_func != null) { obs_CAMERA.user_func(obs_CAMERA); } else { if ((obs_CAMERA.flag & 4U) != 0U) { objCameraMove(obs_CAMERA); } nns_VECTOR.x = obs_CAMERA.pos.x; nns_VECTOR.y = obs_CAMERA.pos.y; nns_VECTOR.z = obs_CAMERA.pos.z; if ((obs_CAMERA.flag & 8U) != 0U) { nns_VECTOR.x -= (nns_VECTOR.x - obs_CAMERA.work.x) * 2f; nns_VECTOR.y -= (nns_VECTOR.y - obs_CAMERA.work.y) * 2f; nns_VECTOR.z -= (nns_VECTOR.z - obs_CAMERA.work.z) * 2f; } obs_CAMERA.disp_pos.x = nns_VECTOR.x + obs_CAMERA.ofst.x; obs_CAMERA.disp_pos.y = nns_VECTOR.y + obs_CAMERA.ofst.y; obs_CAMERA.disp_pos.z = nns_VECTOR.z + obs_CAMERA.ofst.z; } if ((obs_CAMERA.flag & 32U) != 0U) { objCameraLimitCheck(obs_CAMERA); } obs_CAMERA.disp_pos.x += obs_CAMERA.disp_ofst.x; obs_CAMERA.disp_pos.y += obs_CAMERA.disp_ofst.y; obs_CAMERA.disp_pos.z += obs_CAMERA.disp_ofst.z; obs_CAMERA.disp_ofst.x = 0f; obs_CAMERA.disp_ofst.y = 0f; obs_CAMERA.disp_ofst.z = 0f; if ((obs_CAMERA.flag & 16U) != 0U) { AppMain.nnMakePerspectiveMatrix(obs_CAMERA.prj_pers_mtx, obs_CAMERA.fovy, obs_CAMERA.aspect, obs_CAMERA.znear, obs_CAMERA.zfar); // nnMultiplyMatrix(obs_CAMERA.prj_pers_mtx, obs_CAMERA.prj_pers_mtx, scaleMatrix); float num = AppMain.AMD_SCREEN_2D_WIDTH * obs_CAMERA.scale * 0.5f * 1f; float num2 = num * obs_CAMERA.aspect; obs_CAMERA.left = -num2; obs_CAMERA.right = num2; obs_CAMERA.bottom = -num; obs_CAMERA.top = num; nnMakeOrthoMatrix(obs_CAMERA.prj_ortho_mtx, obs_CAMERA.left, obs_CAMERA.right, obs_CAMERA.bottom, obs_CAMERA.top, obs_CAMERA.znear, obs_CAMERA.zfar); nnMultiplyMatrix(obs_CAMERA.prj_ortho_mtx, obs_CAMERA.prj_ortho_mtx, scaleMatrix); switch (obs_CAMERA.camera_type) { case OBE_CAMERA_TYPE.OBE_CAMERA_TYPE_TARGET_ROLL: { AppMain.NNS_CAMERA_TARGET_ROLL nns_CAMERA_TARGET_ROLL = GlobalPool <AppMain.NNS_CAMERA_TARGET_ROLL> .Alloc(); int roll = obs_CAMERA.roll; if ((obs_CAMERA.flag & 1073741824U) != 0U) { obs_CAMERA.roll = 0; } GetTargetRollCamera(obs_CAMERA, nns_CAMERA_TARGET_ROLL); AppMain.nnMakeTargetRollCameraViewMatrix(obs_CAMERA.view_mtx, nns_CAMERA_TARGET_ROLL); obs_CAMERA.roll = roll; GlobalPool <AppMain.NNS_CAMERA_TARGET_ROLL> .Release(nns_CAMERA_TARGET_ROLL); break; } case OBE_CAMERA_TYPE.OBE_CAMERA_TYPE_TARGET_UP_TARGET: { AppMain.NNS_CAMERA_TARGET_UPTARGET nns_CAMERA_TARGET_UPTARGET = new AppMain.NNS_CAMERA_TARGET_UPTARGET(); GetTargetUpTargetCamera(obs_CAMERA, nns_CAMERA_TARGET_UPTARGET); AppMain.nnMakeTargetUpTargetCameraViewMatrix(obs_CAMERA.view_mtx, nns_CAMERA_TARGET_UPTARGET); break; } case OBE_CAMERA_TYPE.OBE_CAMERA_TYPE_TARGET_UP_VEC: { AppMain.NNS_CAMERA_TARGET_UPVECTOR nns_CAMERA_TARGET_UPVECTOR = new AppMain.NNS_CAMERA_TARGET_UPVECTOR(); GetTargetUpVecCamera(obs_CAMERA, nns_CAMERA_TARGET_UPVECTOR); AppMain.nnMakeTargetUpVectorCameraViewMatrix(obs_CAMERA.view_mtx, nns_CAMERA_TARGET_UPVECTOR); break; } } } } } GlobalPool <NNS_VECTOR> .Release(nns_VECTOR); }