# SpellFilter.DLL ## Origin **Entirely new** — no corresponding code in the old source tree. A dedicated module for filtering and managing spell-related game data. ## Binary Facts - Size: **185 KB** - Type: COM in-process server (DLL) - Standard 4 COM exports: `DllCanUnloadNow`, `DllGetClassObject`, `DllRegisterServer`, `DllUnregisterServer` ## What It Does Provides spell filtering functionality for Asheron's Call — likely parsing spell tables from the DAT files, categorizing spells, and letting plugins query/filter spells by school, level, name, or other criteria. ## Reconstruction Notes - **LOOK AT:** `Managed/Decal.Interop.SpellFilter/` for the COM interface definitions this DLL must implement. That directory contains **20 decompiled C# files** — the most of any interop assembly, suggesting a rich API surface. - There is **no old source** to reference. This must be reimplemented from: 1. The COM interfaces defined in the interop assembly 2. Understanding of AC's spell data structures (from the DAT file format) 3. Possibly referencing `Native/DecalDat/` for how spell data was already being parsed from DAT files 4. Possibly referencing `Native/DecalFilters/` for the general filtering pattern used by Decal - The 20 interop files suggest this module exposes multiple interfaces for spell tables, individual spells, spell schools, filtering criteria, etc.