PkmnLibSharp/PkmnLibSharp/Utilities/ResultChecker.cs

39 lines
1.5 KiB
C#
Raw Normal View History

using Arbutils.Generated;
2020-05-02 20:58:08 +00:00
namespace PkmnLibSharp.Utilities
{
internal static class ResultChecker
{
internal static void Assert(this byte result)
{
2020-07-19 10:33:22 +00:00
switch (result)
2020-05-02 20:58:08 +00:00
{
2020-07-19 10:33:22 +00:00
case 0: return;
case 1:
2020-08-17 16:51:07 +00:00
throw new NativeException("Arbutils", C.GetLastException().PtrString()!, null);
2020-07-19 10:33:22 +00:00
case 2:
{
2020-08-17 16:51:07 +00:00
var message = Creaturelib.Generated.C.GetLastException().PtrString()!;
var stack = Creaturelib.Generated.C.GetLastExceptionStacktrace().PtrString();
throw new NativeException("CreatureLibLibrary", message, stack);
}
case 4:
{
var message = Pkmnlib.Generated.C.GetLastException().PtrString()!;
var stack = Pkmnlib.Generated.C.GetLastExceptionStacktrace().PtrString();
throw new NativeException("PkmnLib", message, stack);
}
case 5:
{
var message = PkmnLibAI.Generated.C.GetLastException().PtrString()!;
var stack = PkmnLibAI.Generated.C.GetLastExceptionStacktrace().PtrString();
throw new NativeException("PkmnLibAI", message, stack);
}
default:
{
throw new NativeException("Undefined", "", "");
}
2020-05-02 20:58:08 +00:00
}
}
}
}