-
Notifications
You must be signed in to change notification settings - Fork 241
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Added ActionMap Dat reading 0x26000000 * Removed debug code from startup
- Loading branch information
Showing
6 changed files
with
121 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
using System.IO; | ||
|
||
namespace ACE.DatLoader.Entity | ||
{ | ||
public class ActionMapValue : IUnpackable | ||
{ | ||
public byte UnknownByte { get; private set; } | ||
public uint UnknownInt { get; private set; } | ||
public uint UnknownInt2 { get; private set; } | ||
public uint ToggleType { get; private set; } | ||
public UserBindingValue UserBindingData { get; private set; } | ||
|
||
public void Unpack(BinaryReader reader) | ||
{ | ||
UnknownByte = reader.ReadByte(); | ||
UnknownInt = reader.ReadUInt32(); | ||
UnknownInt2 = reader.ReadUInt32(); | ||
ToggleType = reader.ReadUInt32(); | ||
UserBindingData = new UserBindingValue(); | ||
UserBindingData.Unpack(reader); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
using System.Collections.Generic; | ||
using System.IO; | ||
|
||
namespace ACE.DatLoader.Entity | ||
{ | ||
public class InputMapConflictsValue : IUnpackable | ||
{ | ||
public uint InputMap { get; private set; } | ||
public List<uint> ConflictingInputMaps { get; private set; } = new List<uint>(); | ||
|
||
public void Unpack(BinaryReader reader) | ||
{ | ||
InputMap = reader.ReadUInt32(); | ||
ConflictingInputMaps.Unpack(reader); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
using System.Collections.Generic; | ||
using System.IO; | ||
|
||
using ACE.DatLoader.Entity; | ||
using ACE.Entity.Enum; | ||
using static System.Net.Mime.MediaTypeNames; | ||
|
||
namespace ACE.DatLoader.FileTypes | ||
{ | ||
/// <summary> | ||
/// This is the client_portal.dat file 0x26000000; It's related to keyboard configuration. | ||
/// </summary> | ||
[DatFileType(DatFileType.ActionMap)] | ||
public class ActionMap : FileType | ||
{ | ||
public Dictionary<uint, Dictionary<uint, ActionMapValue>> InputMaps { get; } = new Dictionary<uint, Dictionary<uint, ActionMapValue>>(); | ||
public uint StringTable { get; set; } // DID Value to lookup all the hashes in -- will be 0x23000005 | ||
public Dictionary<uint, InputMapConflictsValue> ConflictingMaps { get; } = new Dictionary<uint, InputMapConflictsValue>(); | ||
|
||
public override void Unpack(BinaryReader reader) | ||
{ | ||
Id = reader.ReadUInt32(); | ||
|
||
reader.ReadByte(); // bucket/size | ||
byte count = reader.ReadByte(); | ||
for (var i = 0; i < count; i++) | ||
{ | ||
var key = reader.ReadUInt32(); | ||
reader.ReadByte(); // bucket/size | ||
byte valuesCount = reader.ReadByte(); | ||
Dictionary<uint, ActionMapValue> values = new Dictionary<uint, ActionMapValue>(); | ||
for (var j = 0; j < valuesCount; j++) | ||
{ | ||
uint valuesKey = reader.ReadUInt32(); | ||
ActionMapValue value = new ActionMapValue(); | ||
value.Unpack(reader); | ||
values.Add(valuesKey, value); | ||
} | ||
InputMaps.Add(key, values); | ||
} | ||
|
||
StringTable = reader.ReadUInt32(); // Will be 0x23000005 | ||
|
||
reader.ReadByte(); // bucket/size | ||
byte conflictCount = reader.ReadByte(); | ||
for (var i = 0; i < conflictCount; i++) { | ||
var key = reader.ReadUInt32(); | ||
InputMapConflictsValue conflictValue = new InputMapConflictsValue(); | ||
conflictValue.Unpack(reader); | ||
ConflictingMaps.Add(key, conflictValue); | ||
} | ||
} | ||
|
||
|
||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
using System.IO; | ||
|
||
namespace ACE.DatLoader.Entity | ||
{ | ||
public class UserBindingValue : IUnpackable | ||
{ | ||
public uint ActionClass { get; private set; } | ||
|
||
// String hash from the StringTable | ||
public uint ActionName { get; private set; } | ||
|
||
// String hash from the StringTable | ||
public uint Description { get; private set; } | ||
|
||
public void Unpack(BinaryReader reader) | ||
{ | ||
ActionClass = reader.ReadUInt32(); | ||
ActionName = reader.ReadUInt32(); | ||
Description = reader.ReadUInt32(); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters