Use Constructor class in PointerArray

This commit is contained in:
2020-08-24 18:33:04 +02:00
parent f74f29daef
commit 2c5f35c640
9 changed files with 103 additions and 34 deletions

View File

@@ -10,7 +10,7 @@ namespace PkmnLibSharp.Library.Evolution
{
public sealed class EvolutionData : PointerWrapper
{
private EvolutionData(IntPtr ptr) : base(ptr)
internal EvolutionData(IntPtr ptr) : base(ptr)
{
}

View File

@@ -25,7 +25,8 @@ namespace PkmnLibSharp.Library
if (_distinctLevelMoves != null) return _distinctLevelMoves;
var count = LearnableAttacks.GetDistinctLevelAttacksCount(Ptr);
var ptr = LearnableAttacks.GetDistinctLevelAttacks(Ptr);
_distinctLevelMoves = new ReadOnlyNativePtrArray<MoveData>(ptr, (int) count);
_distinctLevelMoves =
new ReadOnlyNativePtrArray<MoveData>(ptr, (int) count, Constructor.GenericType.LearnableMoves);
return _distinctLevelMoves;
}
}
@@ -37,7 +38,7 @@ namespace PkmnLibSharp.Library
if (_eggMoves != null) return _eggMoves;
var count = Pkmnlib.Generated.LearnableMoves.GetEggMovesCount(Ptr);
var ptr = Pkmnlib.Generated.LearnableMoves.GetEggMoves(Ptr);
_eggMoves = new ReadOnlyNativePtrArray<MoveData>(ptr, (int) count);
_eggMoves = new ReadOnlyNativePtrArray<MoveData>(ptr, (int) count, Constructor.GenericType.MoveData);
return _eggMoves;
}
}
@@ -47,11 +48,11 @@ namespace PkmnLibSharp.Library
{
if (LearnableAttacks.HasAttacksForLevel(Ptr, level) != 1)
{
return new ReadOnlyNativePtrArray<MoveData>();
return new ReadOnlyNativePtrArray<MoveData>(Constructor.GenericType.MoveData);
}
var count = LearnableAttacks.GetAttacksForLevelCount(Ptr, level);
var ptr = LearnableAttacks.GetAttacksForLevel(Ptr, level);
return new ReadOnlyNativePtrArray<MoveData>(ptr, (int) count);
return new ReadOnlyNativePtrArray<MoveData>(ptr, (int) count, Constructor.GenericType.MoveData);
}
public void AddLevelMove(byte level, MoveData move)

View File

@@ -55,7 +55,7 @@ namespace PkmnLibSharp.Library
if (_formes != null) return _formes;
var startPtr = CreatureSpecies.GetVariants(Ptr);
var size = CreatureSpecies.GetVariantsCount(Ptr);
_formes = new ReadOnlyNativePtrArray<Forme>(startPtr, (int) size);
_formes = new ReadOnlyNativePtrArray<Forme>(startPtr, (int) size, Constructor.GenericType.Forme);
return _formes;
}
}
@@ -68,7 +68,7 @@ namespace PkmnLibSharp.Library
var ptr = IntPtr.Zero;
PokemonSpecies.GetEvolutions(Ptr, ref ptr);
var length = PokemonSpecies.GetEvolutionCount(Ptr);
_evolutions = new ReadOnlyNativePtrArray<EvolutionData>(ptr, (int) length);
_evolutions = new ReadOnlyNativePtrArray<EvolutionData>(ptr, (int) length, Constructor.GenericType.EvolutionData);
return _evolutions;
}
}