Initial commit: Complete open-source Decal rebuild
All 5 phases of the open-source Decal rebuild: Phase 1: 14 decompiled .NET projects (Interop.*, Adapter, FileService, DecalUtil) Phase 2: 10 native DLLs rewritten as C# COM servers with matching GUIDs - DecalDat, DHS, SpellFilter, DecalInput, DecalNet, DecalFilters - Decal.Core, DecalControls, DecalRender, D3DService Phase 3: C++ shims for Inject.DLL (D3D9 hooking) and LauncherHook.DLL Phase 4: DenAgent WinForms tray application Phase 5: WiX installer and build script 25 C# projects building with 0 errors. Native C++ projects require VS 2022 + Windows SDK (x86). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
d1442e3747
1382 changed files with 170725 additions and 0 deletions
|
|
@ -0,0 +1,5 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<AssemblyName>Decal.Interop.SpellFilter</AssemblyName>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComImport]
|
||||
[CoClass(typeof(ComponentClass))]
|
||||
[Guid("4818142F-B10C-4EC5-A794-8A87E1ABAF09")]
|
||||
public interface Component : IComponent
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,125 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComImport]
|
||||
[ClassInterface(ClassInterfaceType.None)]
|
||||
[Guid("20425F2F-54FF-4EAE-9538-36699E3DFB56")]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[TypeLibType(2)]
|
||||
public class ComponentClass : IComponent, Component
|
||||
{
|
||||
[DispId(1)]
|
||||
public virtual extern int ComponentID
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(2)]
|
||||
public virtual extern string Name
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
[param: In]
|
||||
[param: MarshalAs(UnmanagedType.BStr)]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(3)]
|
||||
public virtual extern int Icon
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(4)]
|
||||
public virtual extern int Type
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(5)]
|
||||
public virtual extern int Animation
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(6)]
|
||||
public virtual extern float Charge
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(7)]
|
||||
public virtual extern string PowerWord
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
[param: In]
|
||||
[param: MarshalAs(UnmanagedType.BStr)]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(8)]
|
||||
public virtual extern int BurnRate
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(9)]
|
||||
public virtual extern int Dummy1
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,124 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComImport]
|
||||
[TypeLibType(4160)]
|
||||
[Guid("4818142F-B10C-4EC5-A794-8A87E1ABAF09")]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
public interface IComponent
|
||||
{
|
||||
[DispId(1)]
|
||||
int ComponentID
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(2)]
|
||||
string Name
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
[param: In]
|
||||
[param: MarshalAs(UnmanagedType.BStr)]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(3)]
|
||||
int Icon
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(4)]
|
||||
int Type
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(5)]
|
||||
int Animation
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(6)]
|
||||
float Charge
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(7)]
|
||||
string PowerWord
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
[param: In]
|
||||
[param: MarshalAs(UnmanagedType.BStr)]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(8)]
|
||||
int BurnRate
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(9)]
|
||||
int Dummy1
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,463 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComImport]
|
||||
[TypeLibType(4160)]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[Guid("B445A795-77B4-4069-9129-BB2A97651CFA")]
|
||||
public interface ISpell
|
||||
{
|
||||
[DispId(1)]
|
||||
int SpellID
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(2)]
|
||||
string Name
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
[param: In]
|
||||
[param: MarshalAs(UnmanagedType.BStr)]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(3)]
|
||||
string Description
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
[param: In]
|
||||
[param: MarshalAs(UnmanagedType.BStr)]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(4)]
|
||||
int SpellSchool
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(5)]
|
||||
int Icon
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(6)]
|
||||
int Effect
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(7)]
|
||||
int Flags
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(8)]
|
||||
int ManaCost
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(9)]
|
||||
int Difficulty
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(10)]
|
||||
float Economy
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(10)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(10)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(11)]
|
||||
int SpellVersion
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(11)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(11)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(12)]
|
||||
int SpellType
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(12)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(12)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(13)]
|
||||
double Duration
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(13)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(13)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(14)]
|
||||
bool Researchable
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(14)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(14)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(15)]
|
||||
int Component
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(15)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(15)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(16)]
|
||||
int Misc
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(64)]
|
||||
[DispId(16)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(16)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(17)]
|
||||
float FUnknown1
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(17)]
|
||||
[TypeLibFunc(64)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(17)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(18)]
|
||||
float FUnknown2
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(64)]
|
||||
[DispId(18)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(18)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(19)]
|
||||
float FUnknown3
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(64)]
|
||||
[DispId(19)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(19)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(20)]
|
||||
int LUnknown1
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(20)]
|
||||
[TypeLibFunc(64)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(20)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(21)]
|
||||
int LUnknown2
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(21)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(21)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(22)]
|
||||
int LUnknown3
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(22)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(22)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(23)]
|
||||
int ComponentCount
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(23)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(23)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(24)]
|
||||
int LUnknown4
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(64)]
|
||||
[DispId(24)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(24)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(25)]
|
||||
int LUnknown5
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(64)]
|
||||
[DispId(25)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(25)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(26)]
|
||||
int LUnknown6
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(26)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(26)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(27)]
|
||||
int TargetMask
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(27)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(27)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(28)]
|
||||
float RangeBase
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(28)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(28)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(29)]
|
||||
float RangeModifier
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(29)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(29)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(30)]
|
||||
float Speed
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(30)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(30)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(31)]
|
||||
int ID2
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(31)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(31)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(32)]
|
||||
int SortOrder
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(32)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(32)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(33)]
|
||||
int Misc2
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(33)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(33)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(34)]
|
||||
int EffectOnCaster
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(34)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(34)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(35)]
|
||||
int EffectOnTarget
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(35)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(35)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(36)]
|
||||
double DurationUnk
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(36)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(36)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComImport]
|
||||
[TypeLibType(4160)]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[Guid("BCB57D92-7FCD-477C-B078-C45D205435AC")]
|
||||
public interface ISpells
|
||||
{
|
||||
[DispId(1)]
|
||||
Spell SpellByID
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(2)]
|
||||
Spell SpellByName
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(3)]
|
||||
bool SpellKnown
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(4)]
|
||||
int LastSpellID
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(5)]
|
||||
string Server
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(6)]
|
||||
Component ComponentByID
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(7)]
|
||||
Component ComponentByName
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComImport]
|
||||
[Guid("B445A795-77B4-4069-9129-BB2A97651CFA")]
|
||||
[CoClass(typeof(SpellClass))]
|
||||
public interface Spell : ISpell
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,464 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComImport]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[ClassInterface(ClassInterfaceType.None)]
|
||||
[Guid("3040368A-B77A-4FE1-B8CC-D77FA3F36A6D")]
|
||||
[TypeLibType(2)]
|
||||
public class SpellClass : ISpell, Spell
|
||||
{
|
||||
[DispId(1)]
|
||||
public virtual extern int SpellID
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(2)]
|
||||
public virtual extern string Name
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
[param: In]
|
||||
[param: MarshalAs(UnmanagedType.BStr)]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(3)]
|
||||
public virtual extern string Description
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
[param: In]
|
||||
[param: MarshalAs(UnmanagedType.BStr)]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(4)]
|
||||
public virtual extern int SpellSchool
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(5)]
|
||||
public virtual extern int Icon
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(6)]
|
||||
public virtual extern int Effect
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(7)]
|
||||
public virtual extern int Flags
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(8)]
|
||||
public virtual extern int ManaCost
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(9)]
|
||||
public virtual extern int Difficulty
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(10)]
|
||||
public virtual extern float Economy
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(10)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(10)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(11)]
|
||||
public virtual extern int SpellVersion
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(11)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(11)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(12)]
|
||||
public virtual extern int SpellType
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(12)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(12)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(13)]
|
||||
public virtual extern double Duration
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(13)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(13)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(14)]
|
||||
public virtual extern bool Researchable
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(14)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(14)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(15)]
|
||||
public virtual extern int Component
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(15)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(15)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(16)]
|
||||
public virtual extern int Misc
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(16)]
|
||||
[TypeLibFunc(64)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(64)]
|
||||
[DispId(16)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(17)]
|
||||
public virtual extern float FUnknown1
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(64)]
|
||||
[DispId(17)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(17)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(18)]
|
||||
public virtual extern float FUnknown2
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(64)]
|
||||
[DispId(18)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(18)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(19)]
|
||||
public virtual extern float FUnknown3
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(64)]
|
||||
[DispId(19)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(19)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(20)]
|
||||
public virtual extern int LUnknown1
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(64)]
|
||||
[DispId(20)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(64)]
|
||||
[DispId(20)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(21)]
|
||||
public virtual extern int LUnknown2
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(21)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(21)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(22)]
|
||||
public virtual extern int LUnknown3
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(22)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(22)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(23)]
|
||||
public virtual extern int ComponentCount
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(23)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(23)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(24)]
|
||||
public virtual extern int LUnknown4
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(24)]
|
||||
[TypeLibFunc(64)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(24)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(25)]
|
||||
public virtual extern int LUnknown5
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(64)]
|
||||
[DispId(25)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(25)]
|
||||
[TypeLibFunc(64)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(26)]
|
||||
public virtual extern int LUnknown6
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(26)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(26)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(27)]
|
||||
public virtual extern int TargetMask
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(27)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(27)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(28)]
|
||||
public virtual extern float RangeBase
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(28)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(28)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(29)]
|
||||
public virtual extern float RangeModifier
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(29)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(29)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(30)]
|
||||
public virtual extern float Speed
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(30)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(30)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(31)]
|
||||
public virtual extern int ID2
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(31)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(31)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(32)]
|
||||
public virtual extern int SortOrder
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(32)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(32)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(33)]
|
||||
public virtual extern int Misc2
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(33)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(33)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(34)]
|
||||
public virtual extern int EffectOnCaster
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(34)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(34)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(35)]
|
||||
public virtual extern int EffectOnTarget
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(35)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(35)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(36)]
|
||||
public virtual extern double DurationUnk
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(36)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(36)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComImport]
|
||||
[Guid("BCB57D92-7FCD-477C-B078-C45D205435AC")]
|
||||
[CoClass(typeof(SpellsClass))]
|
||||
public interface Spells : ISpells, _ISpellsEvents_Event
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComImport]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[ClassInterface(ClassInterfaceType.None)]
|
||||
[TypeLibType(2)]
|
||||
[ComSourceInterfaces("Decal.Interop.SpellFilter._ISpellsEvents\0\0")]
|
||||
[Guid("C2D43735-BE7E-4829-AF73-F2E7E820EB16")]
|
||||
public class SpellsClass : ISpells, Spells, _ISpellsEvents_Event
|
||||
{
|
||||
[DispId(1)]
|
||||
public virtual extern Spell SpellByID
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(2)]
|
||||
public virtual extern Spell SpellByName
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(3)]
|
||||
public virtual extern bool SpellKnown
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(4)]
|
||||
public virtual extern int LastSpellID
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(5)]
|
||||
public virtual extern string Server
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(6)]
|
||||
public virtual extern Component ComponentByID
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(7)]
|
||||
public virtual extern Component ComponentByName
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
public virtual extern event _ISpellsEvents_LoginEventHandler Login;
|
||||
|
||||
public virtual extern event _ISpellsEvents_Spellbook_AddEventHandler Spellbook_Add;
|
||||
|
||||
public virtual extern event _ISpellsEvents_Spellbook_DeleteEventHandler Spellbook_Delete;
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComImport]
|
||||
[TypeLibType(4096)]
|
||||
[Guid("76A6E2FA-30DA-4442-A75F-D3013B044E63")]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[InterfaceType(2)]
|
||||
public interface _ISpellsEvents
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
void Login([In] int CharacterID);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
void Spellbook_Add(int SpellAdded);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
void Spellbook_Delete(int SpellDeleted);
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[TypeLibType(16)]
|
||||
[ComVisible(false)]
|
||||
public interface _ISpellsEvents_Event
|
||||
{
|
||||
event _ISpellsEvents_LoginEventHandler Login;
|
||||
|
||||
event _ISpellsEvents_Spellbook_AddEventHandler Spellbook_Add;
|
||||
|
||||
event _ISpellsEvents_Spellbook_DeleteEventHandler Spellbook_Delete;
|
||||
}
|
||||
|
|
@ -0,0 +1,306 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.InteropServices.ComTypes;
|
||||
using System.Threading;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
internal sealed class _ISpellsEvents_EventProvider : _ISpellsEvents_Event, IDisposable
|
||||
{
|
||||
private IConnectionPointContainer m_ConnectionPointContainer;
|
||||
|
||||
private ArrayList m_aEventSinkHelpers;
|
||||
|
||||
private IConnectionPoint m_ConnectionPoint;
|
||||
|
||||
private void Init()
|
||||
{
|
||||
IConnectionPoint ppCP = null;
|
||||
Guid riid = new Guid(new byte[16]
|
||||
{
|
||||
250, 226, 166, 118, 218, 48, 66, 68, 167, 95,
|
||||
211, 1, 59, 4, 78, 99
|
||||
});
|
||||
m_ConnectionPointContainer.FindConnectionPoint(ref riid, out ppCP);
|
||||
m_ConnectionPoint = ppCP;
|
||||
m_aEventSinkHelpers = new ArrayList();
|
||||
}
|
||||
|
||||
event _ISpellsEvents_LoginEventHandler _ISpellsEvents_Event.Login
|
||||
{
|
||||
add
|
||||
{
|
||||
|
||||
bool lockTaken = default(bool);
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this, ref lockTaken);
|
||||
if (m_ConnectionPoint == null)
|
||||
{
|
||||
Init();
|
||||
}
|
||||
_ISpellsEvents_SinkHelper iSpellsEvents_SinkHelper = new _ISpellsEvents_SinkHelper();
|
||||
int pdwCookie = 0;
|
||||
m_ConnectionPoint.Advise(iSpellsEvents_SinkHelper, out pdwCookie);
|
||||
iSpellsEvents_SinkHelper.m_dwCookie = pdwCookie;
|
||||
iSpellsEvents_SinkHelper.m_LoginDelegate = value;
|
||||
m_aEventSinkHelpers.Add(iSpellsEvents_SinkHelper);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
remove
|
||||
{
|
||||
|
||||
bool lockTaken = default(bool);
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this, ref lockTaken);
|
||||
if (m_aEventSinkHelpers == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int count = m_aEventSinkHelpers.Count;
|
||||
int num = 0;
|
||||
if (0 >= count)
|
||||
{
|
||||
return;
|
||||
}
|
||||
do
|
||||
{
|
||||
_ISpellsEvents_SinkHelper iSpellsEvents_SinkHelper = (_ISpellsEvents_SinkHelper)m_aEventSinkHelpers[num];
|
||||
if (iSpellsEvents_SinkHelper.m_LoginDelegate != null && ((iSpellsEvents_SinkHelper.m_LoginDelegate.Equals(value) ? 1u : 0u) & 0xFFu) != 0)
|
||||
{
|
||||
m_aEventSinkHelpers.RemoveAt(num);
|
||||
m_ConnectionPoint.Unadvise(iSpellsEvents_SinkHelper.m_dwCookie);
|
||||
if (count <= 1)
|
||||
{
|
||||
Marshal.ReleaseComObject(m_ConnectionPoint);
|
||||
m_ConnectionPoint = null;
|
||||
m_aEventSinkHelpers = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
num++;
|
||||
}
|
||||
while (num < count);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
event _ISpellsEvents_Spellbook_AddEventHandler _ISpellsEvents_Event.Spellbook_Add
|
||||
{
|
||||
add
|
||||
{
|
||||
|
||||
bool lockTaken = default(bool);
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this, ref lockTaken);
|
||||
if (m_ConnectionPoint == null)
|
||||
{
|
||||
Init();
|
||||
}
|
||||
_ISpellsEvents_SinkHelper iSpellsEvents_SinkHelper = new _ISpellsEvents_SinkHelper();
|
||||
int pdwCookie = 0;
|
||||
m_ConnectionPoint.Advise(iSpellsEvents_SinkHelper, out pdwCookie);
|
||||
iSpellsEvents_SinkHelper.m_dwCookie = pdwCookie;
|
||||
iSpellsEvents_SinkHelper.m_Spellbook_AddDelegate = value;
|
||||
m_aEventSinkHelpers.Add(iSpellsEvents_SinkHelper);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
remove
|
||||
{
|
||||
|
||||
bool lockTaken = default(bool);
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this, ref lockTaken);
|
||||
if (m_aEventSinkHelpers == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int count = m_aEventSinkHelpers.Count;
|
||||
int num = 0;
|
||||
if (0 >= count)
|
||||
{
|
||||
return;
|
||||
}
|
||||
do
|
||||
{
|
||||
_ISpellsEvents_SinkHelper iSpellsEvents_SinkHelper = (_ISpellsEvents_SinkHelper)m_aEventSinkHelpers[num];
|
||||
if (iSpellsEvents_SinkHelper.m_Spellbook_AddDelegate != null && ((iSpellsEvents_SinkHelper.m_Spellbook_AddDelegate.Equals(value) ? 1u : 0u) & 0xFFu) != 0)
|
||||
{
|
||||
m_aEventSinkHelpers.RemoveAt(num);
|
||||
m_ConnectionPoint.Unadvise(iSpellsEvents_SinkHelper.m_dwCookie);
|
||||
if (count <= 1)
|
||||
{
|
||||
Marshal.ReleaseComObject(m_ConnectionPoint);
|
||||
m_ConnectionPoint = null;
|
||||
m_aEventSinkHelpers = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
num++;
|
||||
}
|
||||
while (num < count);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
event _ISpellsEvents_Spellbook_DeleteEventHandler _ISpellsEvents_Event.Spellbook_Delete
|
||||
{
|
||||
add
|
||||
{
|
||||
|
||||
bool lockTaken = default(bool);
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this, ref lockTaken);
|
||||
if (m_ConnectionPoint == null)
|
||||
{
|
||||
Init();
|
||||
}
|
||||
_ISpellsEvents_SinkHelper iSpellsEvents_SinkHelper = new _ISpellsEvents_SinkHelper();
|
||||
int pdwCookie = 0;
|
||||
m_ConnectionPoint.Advise(iSpellsEvents_SinkHelper, out pdwCookie);
|
||||
iSpellsEvents_SinkHelper.m_dwCookie = pdwCookie;
|
||||
iSpellsEvents_SinkHelper.m_Spellbook_DeleteDelegate = value;
|
||||
m_aEventSinkHelpers.Add(iSpellsEvents_SinkHelper);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
remove
|
||||
{
|
||||
|
||||
bool lockTaken = default(bool);
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this, ref lockTaken);
|
||||
if (m_aEventSinkHelpers == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int count = m_aEventSinkHelpers.Count;
|
||||
int num = 0;
|
||||
if (0 >= count)
|
||||
{
|
||||
return;
|
||||
}
|
||||
do
|
||||
{
|
||||
_ISpellsEvents_SinkHelper iSpellsEvents_SinkHelper = (_ISpellsEvents_SinkHelper)m_aEventSinkHelpers[num];
|
||||
if (iSpellsEvents_SinkHelper.m_Spellbook_DeleteDelegate != null && ((iSpellsEvents_SinkHelper.m_Spellbook_DeleteDelegate.Equals(value) ? 1u : 0u) & 0xFFu) != 0)
|
||||
{
|
||||
m_aEventSinkHelpers.RemoveAt(num);
|
||||
m_ConnectionPoint.Unadvise(iSpellsEvents_SinkHelper.m_dwCookie);
|
||||
if (count <= 1)
|
||||
{
|
||||
Marshal.ReleaseComObject(m_ConnectionPoint);
|
||||
m_ConnectionPoint = null;
|
||||
m_aEventSinkHelpers = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
num++;
|
||||
}
|
||||
while (num < count);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public _ISpellsEvents_EventProvider(object P_0)
|
||||
{
|
||||
//Error decoding local variables: Signature type sequence must have at least one element.
|
||||
m_ConnectionPointContainer = (IConnectionPointContainer)P_0;
|
||||
}
|
||||
|
||||
public void Finalize()
|
||||
{
|
||||
bool lockTaken = default(bool);
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this, ref lockTaken);
|
||||
if (m_ConnectionPoint == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int count = m_aEventSinkHelpers.Count;
|
||||
int num = 0;
|
||||
if (0 < count)
|
||||
{
|
||||
do
|
||||
{
|
||||
_ISpellsEvents_SinkHelper iSpellsEvents_SinkHelper = (_ISpellsEvents_SinkHelper)m_aEventSinkHelpers[num];
|
||||
m_ConnectionPoint.Unadvise(iSpellsEvents_SinkHelper.m_dwCookie);
|
||||
num++;
|
||||
}
|
||||
while (num < count);
|
||||
}
|
||||
Marshal.ReleaseComObject(m_ConnectionPoint);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
//Error decoding local variables: Signature type sequence must have at least one element.
|
||||
Finalize();
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComVisible(false)]
|
||||
public delegate void _ISpellsEvents_LoginEventHandler([In] int CharacterID);
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[TypeLibType(TypeLibTypeFlags.FHidden)]
|
||||
[ClassInterface(ClassInterfaceType.None)]
|
||||
public sealed class _ISpellsEvents_SinkHelper : _ISpellsEvents
|
||||
{
|
||||
public _ISpellsEvents_LoginEventHandler m_LoginDelegate;
|
||||
|
||||
public _ISpellsEvents_Spellbook_AddEventHandler m_Spellbook_AddDelegate;
|
||||
|
||||
public _ISpellsEvents_Spellbook_DeleteEventHandler m_Spellbook_DeleteDelegate;
|
||||
|
||||
public int m_dwCookie;
|
||||
|
||||
public void Login(int P_0)
|
||||
{
|
||||
//Error decoding local variables: Signature type sequence must have at least one element.
|
||||
if (m_LoginDelegate != null)
|
||||
{
|
||||
m_LoginDelegate(P_0);
|
||||
}
|
||||
}
|
||||
|
||||
public void Spellbook_Add(int P_0)
|
||||
{
|
||||
//Error decoding local variables: Signature type sequence must have at least one element.
|
||||
if (m_Spellbook_AddDelegate != null)
|
||||
{
|
||||
m_Spellbook_AddDelegate(P_0);
|
||||
}
|
||||
}
|
||||
|
||||
public void Spellbook_Delete(int P_0)
|
||||
{
|
||||
//Error decoding local variables: Signature type sequence must have at least one element.
|
||||
if (m_Spellbook_DeleteDelegate != null)
|
||||
{
|
||||
m_Spellbook_DeleteDelegate(P_0);
|
||||
}
|
||||
}
|
||||
|
||||
internal _ISpellsEvents_SinkHelper()
|
||||
{
|
||||
//Error decoding local variables: Signature type sequence must have at least one element.
|
||||
m_dwCookie = 0;
|
||||
m_LoginDelegate = null;
|
||||
m_Spellbook_AddDelegate = null;
|
||||
m_Spellbook_DeleteDelegate = null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComVisible(false)]
|
||||
public delegate void _ISpellsEvents_Spellbook_AddEventHandler(int SpellAdded);
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
[ComVisible(false)]
|
||||
public delegate void _ISpellsEvents_Spellbook_DeleteEventHandler(int SpellDeleted);
|
||||
|
|
@ -0,0 +1,158 @@
|
|||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
public enum eComponent
|
||||
{
|
||||
eLeadScarab = 1,
|
||||
eIronScarab = 2,
|
||||
eCopperScarab = 3,
|
||||
eSilverScarab = 4,
|
||||
eGoldScarab = 5,
|
||||
ePyrealScarab = 6,
|
||||
eHyssop = 7,
|
||||
eMandrake = 8,
|
||||
eSaffron = 9,
|
||||
eDamiana = 10,
|
||||
eMugwort = 11,
|
||||
eBistort = 12,
|
||||
eWormwood = 13,
|
||||
eGinseng = 14,
|
||||
eHawthorn = 15,
|
||||
eAmaranth = 16,
|
||||
eVervain = 17,
|
||||
eMyrrh = 18,
|
||||
eEyebright = 19,
|
||||
eFrankincense = 20,
|
||||
eDragonsblood = 21,
|
||||
eHenbane = 22,
|
||||
eComfrey = 23,
|
||||
eYarrow = 24,
|
||||
ePowderedAgate = 25,
|
||||
ePowderedAmber = 26,
|
||||
ePowderedAzurite = 27,
|
||||
ePowderedBloodstone = 28,
|
||||
ePowderedCarnelian = 29,
|
||||
ePowderedHematite = 30,
|
||||
ePowderedLapisLazuli = 31,
|
||||
ePowderedMalachite = 32,
|
||||
ePowderedMoonstone = 33,
|
||||
ePowderedOnyx = 34,
|
||||
ePowderedQuartz = 35,
|
||||
ePowderedTurquoise = 36,
|
||||
eBrimstone = 37,
|
||||
eCadmia = 38,
|
||||
eCinnabar = 39,
|
||||
eCobalt = 40,
|
||||
eColcothar = 41,
|
||||
eGypsum = 42,
|
||||
eQuicksilver = 43,
|
||||
eRealgar = 44,
|
||||
eStibnite = 45,
|
||||
eTurpeth = 46,
|
||||
eVerdigris = 47,
|
||||
eVitriol = 48,
|
||||
ePoplarTalisman = 49,
|
||||
eBlackthornTalisman = 50,
|
||||
eYewTalisman = 51,
|
||||
eHemlockTalisman = 52,
|
||||
eAlderTalisman = 53,
|
||||
eEbonyTalisman = 54,
|
||||
eBirchTalisman = 55,
|
||||
eOakTalisman = 56,
|
||||
eAshwoodTalisman = 57,
|
||||
eElderTalisman = 58,
|
||||
eHazelTalisman = 59,
|
||||
eRowanTalisman = 60,
|
||||
eWillowTalisman = 61,
|
||||
eCedarTalisman = 62,
|
||||
eRedTaper = 63,
|
||||
ePinkTaper = 64,
|
||||
eOrangeTaper = 65,
|
||||
eYellowTaper = 66,
|
||||
eGreenTaper = 67,
|
||||
eTurquoiseTaper = 68,
|
||||
eBlueTaper = 69,
|
||||
eIndigoTaper = 70,
|
||||
eVioletTaper = 71,
|
||||
eWhiteTaper = 72,
|
||||
eBrownTaper = 73,
|
||||
eGreyTaper = 74,
|
||||
eDiamondScarab = 110,
|
||||
eChorizite = 111,
|
||||
ePlatinumScarab = 112,
|
||||
eLeadScarabPea = 113,
|
||||
eIronScarabPea = 114,
|
||||
eCopperScarabPea = 115,
|
||||
eSilverScarabPea = 116,
|
||||
eGoldScarabPea = 117,
|
||||
ePyrealScarabPea = 118,
|
||||
eHyssopPea = 119,
|
||||
eMandrakePea = 120,
|
||||
eSaffronPea = 121,
|
||||
eDamianaPea = 122,
|
||||
eMugwortPea = 123,
|
||||
eBistortPea = 124,
|
||||
eWormwoodPea = 125,
|
||||
eGinsengPea = 126,
|
||||
eHawthornPea = 127,
|
||||
eAmaranthPea = 128,
|
||||
eVervainPea = 129,
|
||||
eMyrrhPea = 130,
|
||||
eEyebrightPea = 131,
|
||||
eFrankincensePea = 132,
|
||||
eDragonsbloodPea = 133,
|
||||
eHenbanePea = 134,
|
||||
eComfreyPea = 135,
|
||||
eYarrowPea = 136,
|
||||
ePowderedAgatePea = 137,
|
||||
ePowderedAmberPea = 138,
|
||||
ePowderedAzuritePea = 139,
|
||||
ePowderedBloodstonePea = 140,
|
||||
ePowderedCarnelianPea = 141,
|
||||
ePowderedHematitePea = 142,
|
||||
ePowderedLapisLazuliPea = 143,
|
||||
ePowderedMalachitePea = 144,
|
||||
ePowderedMoonstonePea = 145,
|
||||
ePowderedOnyxPea = 146,
|
||||
ePowderedQuartzPea = 147,
|
||||
ePowderedTurquoisePea = 148,
|
||||
eBrimstonePea = 149,
|
||||
eCadmiaPea = 150,
|
||||
eCinnabarPea = 151,
|
||||
eCobaltPea = 152,
|
||||
eColcotharPea = 153,
|
||||
eGypsumPea = 154,
|
||||
eQuicksilverPea = 155,
|
||||
eRealgarPea = 156,
|
||||
eStibnitePea = 157,
|
||||
eTurpethPea = 158,
|
||||
eVerdigrisPea = 159,
|
||||
eVitriolPea = 160,
|
||||
ePoplarTalismanPea = 161,
|
||||
eBlackthornTalismanPea = 162,
|
||||
eYewTalismanPea = 163,
|
||||
eHemlockTalismanPea = 164,
|
||||
eAlderTalismanPea = 165,
|
||||
eEbonyTalismanPea = 166,
|
||||
eBirchTalismanPea = 167,
|
||||
eOakTalismanPea = 168,
|
||||
eAshwoodTalismanPea = 169,
|
||||
eElderTalismanPea = 170,
|
||||
eHazelTalismanPea = 171,
|
||||
eRowanTalismanPea = 172,
|
||||
eWillowTalismanPea = 173,
|
||||
eCedarTalismanPea = 174,
|
||||
eRedTaperPea = 175,
|
||||
ePinkTaperPea = 176,
|
||||
eOrangeTaperPea = 177,
|
||||
eYellowTaperPea = 178,
|
||||
eGreenTaperPea = 179,
|
||||
eTurquoiseTaperPea = 180,
|
||||
eBlueTaperPea = 181,
|
||||
eIndigoTaperPea = 182,
|
||||
eVioletTaperPea = 183,
|
||||
eWhiteTaperPea = 184,
|
||||
eBrownTaperPea = 185,
|
||||
eGreyTaperPea = 186,
|
||||
eMooJuice = 187,
|
||||
ePrismaticTaper = 188
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
public enum eComponentType
|
||||
{
|
||||
eScarab,
|
||||
eHerb,
|
||||
ePowder,
|
||||
ePotion,
|
||||
eTalisman,
|
||||
eTaper,
|
||||
ePea
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
namespace Decal.Interop.SpellFilter;
|
||||
|
||||
public enum eSpellType
|
||||
{
|
||||
eModifyAttribute = 1,
|
||||
eWar,
|
||||
eModifyVital,
|
||||
eTransferVital,
|
||||
eTie,
|
||||
eRecall,
|
||||
eSummon,
|
||||
eSpecialRecall,
|
||||
eDispel,
|
||||
eLifebolt,
|
||||
eFellowModifyVital,
|
||||
eFellowModifyAttribute,
|
||||
eFellowRecall,
|
||||
eFellowDispell
|
||||
}
|
||||
10
Managed/Decal.Interop.SpellFilter/Properties/AssemblyInfo.cs
Normal file
10
Managed/Decal.Interop.SpellFilter/Properties/AssemblyInfo.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
[assembly: ImportedFromTypeLib("SpellFilter")]
|
||||
[assembly: PrimaryInteropAssembly(2, 0)]
|
||||
[assembly: SecurityRules(SecurityRuleSet.Level2)]
|
||||
[assembly: Guid("8c94b9f9-e992-46e7-96d7-4564a08a21bb")]
|
||||
[assembly: TypeLibVersion(2, 0)]
|
||||
[assembly: AssemblyVersion("2.9.8.3")]
|
||||
Loading…
Add table
Add a link
Reference in a new issue