Files
InfectedRose/InfectedRose.Database/Fdb/DatabaseFile.cs
T
wincent c0c3d88477 Level files:
* Full Read/Write support for newer level file formats.
* Added pointer/length tokens.

Database:
* Made it more reliable.
* Speed up some operations.
* Emit more sql.
* Import/Export from SQLite, not viable, takes a very long time.

Database concepts:
* Npc creation.
* Mission creation, W.I.P.
2020-03-05 22:33:14 +01:00

44 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using InfectedRose.Core;
using RakDotNet.IO;
namespace InfectedRose.Database.Fdb
{
public class DatabaseFile : HashMap, IDeserializable
{
internal FdbTableHeader TableHeader { get; set; }
public void Deserialize(BitReader reader)
{
var tableCount = reader.Read<uint>();
using (new DatabaseScope(reader))
{
TableHeader = new FdbTableHeader(tableCount);
TableHeader.Deserialize(reader);
}
}
/// <summary>
/// Compile the database to a hash-map
/// </summary>
/// <remarks>
/// This is a really long process and should be run in a Task.
/// </remarks>
/// <returns>Compiled database</returns>
public override byte[] Compile(Action<int> onData = default)
{
Structure = new List<object>
{
(uint) TableHeader.Tables.Length,
TableHeader
};
TableHeader.Compile(this);
return base.Compile(onData);
}
}
}