public MapSimulator(Board mapBoard) { if (Program.InfoManager.BGMs.ContainsKey(mapBoard.MapInfo.bgm)) audio = new WzMp3Streamer(Program.InfoManager.BGMs[mapBoard.MapInfo.bgm], true); mapCenter = mapBoard.CenterPoint; minimapPos = new Point((int)Math.Round((mapBoard.MinimapPosition.X + mapCenter.X) / (double)mapBoard.mag), (int)Math.Round((mapBoard.MinimapPosition.Y + mapCenter.Y) / (double)mapBoard.mag)); if (mapBoard.VRRectangle == null) vr = new Rectangle(0, 0, mapBoard.MapSize.X, mapBoard.MapSize.Y); else vr = new Rectangle(mapBoard.VRRectangle.X + mapCenter.X, mapBoard.VRRectangle.Y + mapCenter.Y, mapBoard.VRRectangle.Width, mapBoard.VRRectangle.Height); SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true); InitializeComponent(); width = UserSettings.XGAResolution ? 1024 : 800; height = UserSettings.XGAResolution ? 768 : 600; this.Width = width; this.Height = height; #if FULLSCREEN pParams.BackBufferWidth = Math.Max(Width, 1); pParams.BackBufferHeight = Math.Max(Height, 1); pParams.BackBufferFormat = SurfaceFormat.Color; pParams.IsFullScreen = false; pParams.DepthStencilFormat = DepthFormat.Depth24; #else pParams.BackBufferWidth = Math.Max(width, 1); pParams.BackBufferHeight = Math.Max(height, 1); pParams.BackBufferFormat = SurfaceFormat.Color; pParams.DepthStencilFormat = DepthFormat.Depth24; pParams.DeviceWindowHandle = Handle; pParams.IsFullScreen = false; #endif DxDevice = MultiBoard.CreateGraphicsDevice(pParams); this.minimap = BoardItem.TextureFromBitmap(DxDevice, mapBoard.MiniMap); System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(1, 1); bmp.SetPixel(0, 0, System.Drawing.Color.White); pixel = BoardItem.TextureFromBitmap(DxDevice, bmp); sprite = new SpriteBatch(DxDevice); }
public MapSimulator(Board mapBoard) { WzSoundProperty bgm = Program.InfoManager.BGMs[mapBoard.MapInfo.bgm]; if (bgm != null) { audio = new WzMp3Streamer(bgm, true); } MapSimulator.mapCenter = mapBoard.CenterPoint; if (mapBoard.MapInfo.VR == null) vr = new Rectangle(0, 0, mapBoard.MapSize.X, mapBoard.MapSize.Y); else vr = new Rectangle(mapBoard.MapInfo.VR.Value.X + mapCenter.X, mapBoard.MapInfo.VR.Value.Y + mapCenter.Y, mapBoard.MapInfo.VR.Value.Width, mapBoard.MapInfo.VR.Value.Height); SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true); InitializeComponent(); this.Width = width; this.Height = height; #if FULLSCREEN pParams.BackBufferWidth = Math.Max(width, 1); pParams.BackBufferHeight = Math.Max(height, 1); pParams.BackBufferFormat = SurfaceFormat.Color; pParams.IsFullScreen = false; pParams.DepthStencilFormat = DepthFormat.Depth24; #else pParams.BackBufferWidth = Math.Max(width, 1); pParams.BackBufferHeight = Math.Max(height, 1); pParams.BackBufferFormat = SurfaceFormat.Color; pParams.DepthStencilFormat = DepthFormat.Depth24; pParams.DeviceWindowHandle = Handle; pParams.IsFullScreen = false; #endif /* try { DxDevice = new GraphicsDevice(GraphicsAdapter.DefaultAdapter, DeviceType.Hardware, Handle, pParams); } catch { DxDevice = new GraphicsDevice(GraphicsAdapter.DefaultAdapter, DeviceType.NullReference, Handle, pParams); }*/ try { GraphicsProfile profile = GraphicsProfile.Reach; if (GraphicsAdapter.DefaultAdapter.IsProfileSupported(GraphicsProfile.HiDef)) profile = GraphicsProfile.HiDef; else if (!GraphicsAdapter.DefaultAdapter.IsProfileSupported(GraphicsProfile.Reach)) throw new NotSupportedException(); DxDevice = new GraphicsDevice(GraphicsAdapter.DefaultAdapter, profile, pParams); } catch { HaRepackerLib.Warning.Error("Graphics adapter is not supported"); Application.Exit(); } graphicsDeviceService = new GraphicsDeviceService(DxDevice); this.minimap = BoardItem.TextureFromBitmap(DxDevice, mapBoard.MiniMap); System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(1, 1); bmp.SetPixel(0, 0, System.Drawing.Color.White); pixel = BoardItem.TextureFromBitmap(DxDevice, bmp); //pixel = BoardItem.TextureFromBitmap(DxDevice, new System.Drawing.Bitmap(1, 1)); contentMan = new ContentManager(this); defaultFont = contentMan.Load<SpriteFont>("Arial"); sprite = new SpriteBatch(DxDevice); //character = new Character(400 + mapCenter.X, 300 + mapCenter.Y); //character.DoFly(); }