This commit is contained in:
codeimp 2007-10-05 10:00:15 +00:00
parent 0bc19b0e93
commit d59f65d5dc
8 changed files with 48 additions and 23 deletions

View file

@ -48,3 +48,5 @@ Filename: {app}\Builder.exe; Description: {cm:LaunchProgram,Doom Builder}; Flags
[UninstallDelete]
Name: {app}\Builder.log; Type: files
[InstallDelete]
Name: {app}\Builder.pdb; Type: files

View file

@ -137,7 +137,7 @@ namespace CodeImp.DoomBuilder.Editing
{
// Scroll now
renderer.PositionView(renderer.OffsetX + deltax, renderer.OffsetY + deltay);
RedrawDisplay();
General.MainWindow.RedrawDisplay();
// Determine new unprojected mouse coordinates
mousemappos = renderer.GetMapCoordinates(mousepos);
@ -176,7 +176,7 @@ namespace CodeImp.DoomBuilder.Editing
renderer.PositionView(renderer.OffsetX - diff.x, renderer.OffsetY + diff.y);
renderer.ScaleView(newscale);
General.Map.Data.Update();
RedrawDisplay();
General.MainWindow.RedrawDisplay();
// Determine new unprojected mouse coordinates
mousemappos = renderer.GetMapCoordinates(mousepos);
@ -189,7 +189,7 @@ namespace CodeImp.DoomBuilder.Editing
// Zoom now
renderer.ScaleView(newscale);
General.Map.Data.Update();
RedrawDisplay();
General.MainWindow.RedrawDisplay();
// Determine new unprojected mouse coordinates
mousemappos = renderer.GetMapCoordinates(mousepos);
@ -229,7 +229,7 @@ namespace CodeImp.DoomBuilder.Editing
renderer.ScaleView(scale);
renderer.PositionView(left + (right - left) * 0.5f, top + (bottom - top) * 0.5f);
General.Map.Data.Update();
RedrawDisplay();
General.MainWindow.RedrawDisplay();
// Determine new unprojected mouse coordinates
mousemappos = renderer.GetMapCoordinates(mousepos);

View file

@ -229,6 +229,7 @@ namespace CodeImp.DoomBuilder
fullfilename = Path.GetFileName(filepath);
// Add to lists
General.WriteLogLine("Registered game configuration '" + name + "' from '" + fullfilename + "'");
configs.Add(new ConfigurationInfo(name, fullfilename));
}
}
@ -525,7 +526,8 @@ namespace CodeImp.DoomBuilder
{
// Display status
mainwindow.DisplayStatus("Closing map...");
General.WriteLogLine("Unloading map...");
// Trash the current map
if(map != null) map.Dispose();
map = null;
@ -536,6 +538,7 @@ namespace CodeImp.DoomBuilder
// Done
mainwindow.UpdateMenus();
mainwindow.DisplayReady();
General.WriteLogLine("Map unload done");
}
}

View file

@ -116,17 +116,23 @@ namespace CodeImp.DoomBuilder
// Initializes for a new map
public bool InitializeNewMap(MapOptions options)
{
string tempfile;
// Apply settings
this.filetitle = "unnamed.wad";
this.filepathname = "";
this.changed = false;
this.options = options;
General.WriteLogLine("Creating new map '" + options.CurrentName + "' with configuration '" + options.ConfigFile + "'");
// Initiate graphics
General.WriteLogLine("Initializing graphics device...");
graphics = new D3DGraphics(General.MainWindow.Display);
if(!graphics.Initialize()) return false;
// Load game configuration
General.WriteLogLine("Loading game configuration...");
configinfo = General.GetConfigurationInfo(options.ConfigFile);
config = General.LoadGameConfiguration(options.ConfigFile);
@ -134,12 +140,15 @@ namespace CodeImp.DoomBuilder
data = new MapSet();
// Create temp wadfile
tempwad = new WAD(General.MakeTempFilename());
tempfile = General.MakeTempFilename();
General.WriteLogLine("Creating temporary file: " + tempfile);
tempwad = new WAD(tempfile);
// Set default mode
ChangeMode(typeof(FrozenOverviewMode));
// Success
General.WriteLogLine("Map creation done");
return true;
}
@ -148,6 +157,8 @@ namespace CodeImp.DoomBuilder
{
WAD mapwad;
MapSetIO mapio;
string tempfile;
string iointerface;
// Apply settings
this.filetitle = Path.GetFileName(filepathname);
@ -155,23 +166,32 @@ namespace CodeImp.DoomBuilder
this.changed = false;
this.options = options;
General.WriteLogLine("Opening map '" + options.CurrentName + "' with configuration '" + options.ConfigFile + "'");
// Initiate graphics
General.WriteLogLine("Initializing graphics device...");
graphics = new D3DGraphics(General.MainWindow.Display);
if(!graphics.Initialize()) return false;
// Load game configuration
General.WriteLogLine("Loading game configuration...");
configinfo = General.GetConfigurationInfo(options.ConfigFile);
config = General.LoadGameConfiguration(options.ConfigFile);
// Create map data
data = new MapSet();
// Create temp wadfile
tempwad = new WAD(General.MakeTempFilename());
tempfile = General.MakeTempFilename();
General.WriteLogLine("Creating temporary file: " + tempfile);
tempwad = new WAD(tempfile);
// Now open the map file
General.WriteLogLine("Opening source file: " + filepathname);
mapwad = new WAD(filepathname, true);
// Copy the map lumps to the temp file
General.WriteLogLine("Copying map lumps to temporary file...");
CopyLumpsByType(mapwad, options.CurrentName, tempwad, TEMP_MAP_HEADER,
true, true, true, true);
@ -179,7 +199,10 @@ namespace CodeImp.DoomBuilder
mapwad.Dispose();
// Read the map from temp file
mapio = MapSetIO.Create(config.ReadSetting("formatinterface", ""), tempwad);
iointerface = config.ReadSetting("formatinterface", "");
General.WriteLogLine("Initializing map format interface " + iointerface + "...");
mapio = MapSetIO.Create(iointerface, tempwad);
General.WriteLogLine("Reading map data...");
data = mapio.Read(data, TEMP_MAP_HEADER);
// Update structures
@ -189,6 +212,7 @@ namespace CodeImp.DoomBuilder
ChangeMode(typeof(FrozenOverviewMode));
// Success
General.WriteLogLine("Map loading done");
return true;
}
@ -310,10 +334,11 @@ namespace CodeImp.DoomBuilder
if(mode != null) mode.Dispose();
// Create a new mode
General.WriteLogLine("Switching edit mode to " + modetype.Name + "...");
mode = EditMode.Create(modetype, args);
// Redraw the display
mode.RedrawDisplay();
General.MainWindow.RedrawDisplay();
}
#endregion

View file

@ -64,7 +64,9 @@ namespace CodeImp.DoomBuilder
// Initialize
this.filename = Path.GetFileName(filename);
this.name = cfg.ReadSetting("title", "");
General.WriteLogLine("Registered nodebuilder configuration '" + this.name + "' from '" + this.filename + "'");
// Setup save map process
SetupProcess(out savemapprocess,
cfg.ReadSetting("savemap.compiler", ""),

View file

@ -415,7 +415,6 @@ namespace CodeImp.DoomBuilder.Interface
this.display.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.display_MouseDoubleClick);
this.display.Resize += new System.EventHandler(this.display_Resize);
this.display.MouseEnter += new System.EventHandler(this.display_MouseEnter);
this.display.Paint += new System.Windows.Forms.PaintEventHandler(this.display_Paint);
this.display.MouseUp += new System.Windows.Forms.MouseEventHandler(this.display_MouseUp);
//
// menutools

View file

@ -285,11 +285,11 @@ namespace CodeImp.DoomBuilder.Interface
this.Update();
}
// Display needs repainting
private unsafe void display_Paint(object sender, PaintEventArgs e)
// This redraws the display on the next paint event
public void RedrawDisplay()
{
// Request redraw
if(!redrawtimer.Enabled) redrawtimer.Enabled = true;
if((General.Map != null) && (General.Map.Mode != null)) General.Map.Mode.RedrawDisplay();
display.Invalidate();
}
// Redraw requested
@ -309,13 +309,10 @@ namespace CodeImp.DoomBuilder.Interface
{
// Reset graphics to match changes
General.Map.Graphics.Reset();
// Make sure control is repainted
//display.Update();
}
// Redraw now
General.Map.Mode.RedrawDisplay();
RedrawDisplay();
}
// Display resize is done

View file

@ -152,9 +152,6 @@ namespace CodeImp.DoomBuilder.Rendering
{
// Unlock memory
image.UnlockBits(pixeldata);
// Refresh
graphics.RenderTarget.Invalidate();
}
// This changes view position