Fix some ToDos, parallelization problems.

This commit is contained in:
Ottermandias 2023-07-03 16:39:34 +02:00
parent 0ed94676ed
commit 8ea6893fc3
15 changed files with 50 additions and 41 deletions

View file

@ -171,7 +171,7 @@ public static class ActorManagerExtensions
{
ObjectKind.MountType => manager.Data.Mounts,
ObjectKind.Companion => manager.Data.Companions,
(ObjectKind)15 => manager.Data.Ornaments, // TODO: CS Update
ObjectKind.Ornament => manager.Data.Ornaments,
ObjectKind.BattleNpc => manager.Data.BNpcs,
ObjectKind.EventNpc => manager.Data.ENpcs,
_ => new Dictionary<uint, string>(),
@ -190,7 +190,7 @@ public static class ActorManagerExtensions
ObjectKind.EventNpc => "Event NPC",
ObjectKind.MountType => "Mount",
ObjectKind.Companion => "Companion",
(ObjectKind)15 => "Accessory", // TODO: CS update
ObjectKind.Ornament => "Accessory",
_ => kind.ToString(),
};

View file

@ -98,7 +98,7 @@ public sealed partial class ActorManager : IDisposable
{
ObjectKind.MountType => Mounts.TryGetValue(dataId, out name),
ObjectKind.Companion => Companions.TryGetValue(dataId, out name),
(ObjectKind)15 => Ornaments.TryGetValue(dataId, out name), // TODO: CS Update
ObjectKind.Ornament => Ornaments.TryGetValue(dataId, out name),
ObjectKind.BattleNpc => BNpcs.TryGetValue(dataId, out name),
ObjectKind.EventNpc => ENpcs.TryGetValue(dataId, out name),
_ => false,

View file

@ -179,9 +179,8 @@ public partial class ActorManager
case "o":
case "accessory":
case "ornament":
// TODO: Objectkind ornament.
return FindDataId(split[1], Data.Ornaments, out id)
? ((ObjectKind)15, id)
? (ObjectKind.Ornament, id)
: throw new IdentifierParseError($"Could not identify an Accessory named {split[1]}.");
case "e":
case "enpc":
@ -334,7 +333,7 @@ public partial class ActorManager
}
case ObjectKind.MountType:
case ObjectKind.Companion:
case (ObjectKind)15: // TODO: CS Update
case ObjectKind.Ornament:
{
owner = HandleCutscene(
(FFXIVClientStructs.FFXIV.Client.Game.Object.GameObject*)_objects.GetObjectAddress(actor->ObjectIndex - 1));
@ -369,12 +368,12 @@ public partial class ActorManager
/// Obtain the current companion ID for an object by its actor and owner.
/// </summary>
private unsafe uint GetCompanionId(FFXIVClientStructs.FFXIV.Client.Game.Object.GameObject* actor,
Character* owner) // TODO: CS Update
Character* owner)
{
return (ObjectKind)actor->ObjectKind switch
{
ObjectKind.MountType => owner->Mount.MountId,
(ObjectKind)15 => owner->Ornament.OrnamentId,
ObjectKind.Ornament => owner->Ornament.OrnamentId,
ObjectKind.Companion => actor->DataID,
_ => actor->DataID,
};
@ -571,7 +570,7 @@ public partial class ActorManager
{
ObjectKind.MountType => Data.Mounts.ContainsKey(dataId),
ObjectKind.Companion => Data.Companions.ContainsKey(dataId),
(ObjectKind)15 => Data.Ornaments.ContainsKey(dataId), // TODO: CS Update
ObjectKind.Ornament => Data.Ornaments.ContainsKey(dataId),
ObjectKind.BattleNpc => Data.BNpcs.ContainsKey(dataId),
_ => false,
};
@ -582,7 +581,7 @@ public partial class ActorManager
{
ObjectKind.MountType => Data.Mounts.ContainsKey(dataId),
ObjectKind.Companion => Data.Companions.ContainsKey(dataId),
(ObjectKind)15 => Data.Ornaments.ContainsKey(dataId), // TODO: CS Update
ObjectKind.Ornament => Data.Ornaments.ContainsKey(dataId),
ObjectKind.BattleNpc => Data.BNpcs.ContainsKey(dataId),
ObjectKind.EventNpc => Data.ENpcs.ContainsKey(dataId),
_ => false,