Fix for SkillInfo array size

Correct SaveMetric usage
This commit is contained in:
asayre 2010-12-18 21:56:42 +00:00
parent 0caf1846d5
commit a85aac256f
3 changed files with 25 additions and 31 deletions

View file

@ -39,7 +39,7 @@ namespace Server
{
public override string Name { get { return "Dynamic"; } }
private SaveMetrics metrics;
private SaveMetrics _metrics;
private SequentialFileWriter _itemData, _itemIndex;
private SequentialFileWriter _mobileData, _mobileIndex;
@ -61,15 +61,15 @@ namespace Server
public override void Save(SaveMetrics metrics)
{
this.metrics = metrics;
this._metrics = metrics;
OpenFiles();
Task[] saveTasks = new Task[3];
saveTasks[0] = SaveItems( metrics );
saveTasks[1] = SaveMobiles( metrics );
saveTasks[2] = SaveGuilds( metrics );
saveTasks[0] = SaveItems();
saveTasks[1] = SaveMobiles();
saveTasks[2] = SaveGuilds();
SaveTypeDatabases();
@ -100,19 +100,14 @@ namespace Server
break;
}
int bytesWritten = writer.CommitTo(data, index);
if (metrics != null)
{
metrics.OnFileWritten(bytesWritten);
}
writer.CommitTo(data, index);
}
});
return commitTask;
}
private Task SaveItems(SaveMetrics metrics)
private Task SaveItems()
{
//Start the blocking consumer; this runs in background.
Task commitTask = StartCommitTask(_itemThreadWriters, _itemData, _itemIndex);
@ -136,9 +131,9 @@ namespace Server
_decayBag.Add(item);
}
if (metrics != null)
if (_metrics != null)
{
metrics.OnItemSaved(size);
_metrics.OnItemSaved(size);
}
return writer;
@ -157,7 +152,7 @@ namespace Server
private Task SaveMobiles(SaveMetrics metrics)
private Task SaveMobiles()
{
//Start the blocking consumer; this runs in background.
Task commitTask = StartCommitTask( _mobileThreadWriters, _mobileData, _mobileIndex );
@ -176,9 +171,9 @@ namespace Server
writer.QueueForIndex(mobile, size);
if (metrics != null)
if (_metrics != null)
{
metrics.OnMobileSaved(size);
_metrics.OnMobileSaved(size);
}
return writer;
@ -195,7 +190,7 @@ namespace Server
return commitTask;
}
private Task SaveGuilds(SaveMetrics metrics)
private Task SaveGuilds()
{
//Start the blocking consumer; this runs in background.
Task commitTask = StartCommitTask(_guildThreadWriters, _guildData, _guildIndex);
@ -214,9 +209,9 @@ namespace Server
writer.QueueForIndex(guild, size);
if (metrics != null)
if (_metrics != null)
{
metrics.OnGuildSaved(size);
_metrics.OnGuildSaved(size);
}
return writer;
@ -245,14 +240,14 @@ namespace Server
private void OpenFiles()
{
_itemData = new SequentialFileWriter(World.ItemDataPath, metrics);
_itemIndex = new SequentialFileWriter(World.ItemIndexPath, metrics);
_itemData = new SequentialFileWriter(World.ItemDataPath, _metrics);
_itemIndex = new SequentialFileWriter(World.ItemIndexPath, _metrics);
_mobileData = new SequentialFileWriter(World.MobileDataPath, metrics);
_mobileIndex = new SequentialFileWriter(World.MobileIndexPath, metrics);
_mobileData = new SequentialFileWriter(World.MobileDataPath, _metrics);
_mobileIndex = new SequentialFileWriter(World.MobileIndexPath, _metrics);
_guildData = new SequentialFileWriter(World.GuildDataPath, metrics);
_guildIndex = new SequentialFileWriter(World.GuildIndexPath, metrics);
_guildData = new SequentialFileWriter(World.GuildDataPath, _metrics);
_guildIndex = new SequentialFileWriter(World.GuildIndexPath, _metrics);
WriteCount(_itemIndex, World.Items.Count);
WriteCount(_mobileIndex, World.Mobiles.Count);

View file

@ -61,7 +61,7 @@ namespace Server
_indexQueue.Enqueue(info);
}
public int CommitTo(SequentialFileWriter dataFile, SequentialFileWriter indexFile)
public void CommitTo(SequentialFileWriter dataFile, SequentialFileWriter indexFile)
{
this.Flush();
@ -76,7 +76,8 @@ namespace Server
byte[] indexBuffer = new byte[20];
int indexWritten = _indexQueue.Count * indexBuffer.Length;
//int indexWritten = _indexQueue.Count * indexBuffer.Length;
//int totalWritten = memLength + indexWritten
while (_indexQueue.Count > 0)
{
@ -117,8 +118,6 @@ namespace Server
}
this.Close(); //We're donezo with this writer.
return memLength + indexWritten;
}
}
}

View file

@ -613,7 +613,7 @@ namespace Server
}
}
private static SkillInfo[] m_Table = new SkillInfo[55]
private static SkillInfo[] m_Table = new SkillInfo[58]
{
new SkillInfo( 0, "Alchemy", 0.0, 5.0, 5.0, "Alchemist", null, 0.0, 0.5, 0.5, 1.0 ),
new SkillInfo( 1, "Anatomy", 0.0, 0.0, 0.0, "Healer", null, 0.15, 0.15, 0.7, 1.0 ),