Core Rules
WoTC AD&D 2nd Edition -- Drakein API Reference
Loading...
Searching...
No Matches
CoreRules Namespace Reference

Classes

struct  AllowedClassInfo
struct  Char_Charisma_Attr
 Derived Charisma stats. More...
struct  Char_Constitution_Attr
 Derived Constitution stats. More...
struct  Char_Dexterity_Attr
 Derived Dexterity stats. More...
struct  Char_Intelligence_Attr
 Derived Intelligence stats. More...
struct  Char_Strength_Attr
 Derived Strength stats for the character's current Strength (Core Rules) or Stamina + Muscle sub-abilities (Skills & Powers). More...
struct  Char_Wisdom_Attr
 Derived Wisdom stats. More...
class  IAttackRecord
class  ICalendarEntryOb
class  ICalendarOb
class  ICalendarRecord
class  ICharacter_Adventure
class  ICharacter_Extension
class  ICharacter_Party
class  ICharacterIndex
class  ICharacterMiniOb
 One roster entry (one row of Chars/index.chr). More...
class  ICharacterPartyRecord
class  ICharacterRecord
 Heavy per-character record (one row backing a Chars/*.dat file). More...
class  IClassFreeSpellsOb
class  IClassOb
class  IClassRecord
class  ICompanionOb
class  IConvertRecord
class  IConvertRecordOb
class  ICoreRulesTable
class  IDateOb
class  IDiaryEntryOb
class  IDiaryOb
class  IEncounterFreqTableOb
class  IEncounterFreqTableRecord
class  IEncounterMonHpOb
 One per-monster HP roll. More...
class  IEncounterMonsterPackageOb
 One monster group inside an encounter. More...
class  IEncounterNPCOb
 Named NPC reference (name + race + 5-slot multi-class). More...
class  IEncounterNPCPackageOb
 One NPC group inside an encounter. More...
class  IEncounterOb
 One encounter record. More...
class  IEncounterRecord
class  IEncTemplateItemPropertiesOb
 One Item Properties row inside an encounter template. More...
class  IEncTemplateMonsterPropertiesOb
 One Monster Properties row inside an encounter template. More...
class  IEncTemplateNPCPropertiesOb
 One NPC Properties row inside an encounter template. More...
class  IEncTemplateNumAppearOb
 One escort/per-item monster entry (dice + monster reference). More...
class  IEncTemplateOb
 One encounter-template record. More...
class  IEncTemplateRecord
class  IExportBuilder
class  IFamilyOb
class  IFamilyRecord
class  IImportReader
class  IInventory_Item
class  IInventoryBundle
class  IMonsterAttackOb
class  IMonsterOb
class  IMonsterRecord
class  IMonsterTypeOb
class  IMonsterTypeRecord
class  INumList
class  IPart
 One CPart record (a Weapon / Armor / NWP / Magic Item / Kit / etc.). More...
class  IPartIDOb
class  IPartKitBonusOb
class  IPartKitLevelOb
class  IPartKitOb
 Character-kit definition (embedded in CPart records of type Character Kit). More...
class  IPartsRecord
class  IParty_Inventory
class  IProgress
class  IPropertyOb
class  IPropertyRecord
class  IPsionicPowerOb
class  IPsionicRecord
class  IRaceOb
class  IRaceRecord
class  IReputationOb
class  ISpellPointsOb
class  ISpells
class  ISpellsOb
class  ISpellsRecord
class  ISpouseOb
class  ITableEntry
class  ITrapOb
class  ITrapRecord
class  ITreasureOb
class  ITreasureRecord
class  ITreasureSingleTableOb
class  ITreasureTableEntry
class  ITreasureTableRecord
struct  PartsProbeResult
struct  ProbeResult
struct  RoundTripResult
struct  SpellsProbeResult

Enumerations

enum class  ClassGroup : long {
  Warrior = 0 , Rogue = 1 , Priest = 2 , Wizard = 3 ,
  Psionicist = 4
}
enum class  ExportItemKind {
  Character , Class , PsionicPower , Trap ,
  Race , WizardSpell , PriestSpell , Monster ,
  Encounter , Template , TreasureBundle , MonsterType ,
  Weapon , Armor , NonWeaponProf , RacialAbility ,
  Language , Equipment , MagicItem , SchoolOfMagic ,
  Trait , Disadvantage , GemOrArt , ClassAbility ,
  CharacterKit , Currency , Count , Sphere ,
  ProfantasyMap , MapMakerIIMap , _Count
}
enum class  PartSection : int {
  None = 0 , Weapons = 1 , Armor = 2 , NonWeaponProf = 5 ,
  RacialAbilities = 6 , Languages = 7 , Equipment = 8 , MagicItems = 9 ,
  SchoolsOfMagic = 10 , Traits = 12 , Disadvantages = 13 , GemsAndArts = 14 ,
  ClassAbilities = 15 , CharacterKits = 16 , Currency = 17 , Counts = 18 ,
  Spheres = 19 , WeaponProficiencies = 23
}

Functions

ProbeResult ProbeDatFile (const char *path)
RoundTripResult RoundTripDatFile (const char *in_path, const char *out_path)
SpellsProbeResult ProbeSpellsDatFile (const char *path)
RoundTripResult RoundTripSpellsDatFile (const char *in_path, const char *out_path)
PartsProbeResult ProbePartsDatFile (const char *path)
RoundTripResult RoundTripPartsDatFile (const char *in_path, const char *out_path)
ProbeResult ProbeCharacterDatFile (const char *path)
RoundTripResult RoundTripCharacterDatFile (const char *in_path, const char *out_path)
void DumpExportFile (const char *path, int max_body_slots=40)
int DiagKindCount ()
int DiagKindName (int kind, char *buf, int buf_size)
bool DiagKindEnabled (int kind)
int DiagRecordCount (int kind)
int DiagRecordName (int kind, int index, char *buf, int buf_size)
long DiagRecordBytes (int kind, int index, unsigned char *buf, long buf_size)
long DiagRecordFields (int kind, int index, char *buf, long buf_size)
long DiagDescribeCharIndex (const unsigned char *data, long len, char *buf, long buf_size)
ICalendarEntryObCreateCalendarEntryOb ()
void DestroyCalendarEntryOb (ICalendarEntryOb *p)
ICalendarObCreateCalendarOb ()
void DestroyCalendarOb (ICalendarOb *p)
ICharacter_AdventureCreateCharacter_Adventure ()
void DestroyCharacter_Adventure (ICharacter_Adventure *p)
ICharacter_ExtensionCreateCharacter_Extension ()
void DestroyCharacter_Extension (ICharacter_Extension *p)
ICharacter_PartyCreateCharacter_Party ()
void DestroyCharacter_Party (ICharacter_Party *p)
ICharacterMiniObCreateCharacterMiniOb ()
 Factory for a standalone MiniOb (not in any roster).
void DestroyCharacterMiniOb (ICharacterMiniOb *p)
 Release a MiniOb created by CreateCharacterMiniOb.
IClassFreeSpellsObCreateClassFreeSpellsOb ()
void DestroyClassFreeSpellsOb (IClassFreeSpellsOb *p)
IClassObCreateClassOb ()
void DestroyClassOb (IClassOb *p)
ICompanionObCreateCompanionOb ()
void DestroyCompanionOb (ICompanionOb *p)
const char * GetConfigPath (const char *key)
 Read a configured path / value by key name.
int GetConfigKeyCount ()
 Number of keys available from the platform configuration.
const char * GetConfigKey (int index)
 Key name at the given enumeration index, or "" when out of range.
bool LoadConvertDatabase ()
bool LoadConvertDatabase (const char *base_path, const char *user_path)
bool SaveConvertDatabase ()
bool SaveConvertDatabase (const char *user_path)
IConvertRecordObCreateConvertRecordOb ()
void DestroyConvertRecordOb (IConvertRecordOb *p)
ICoreRulesTableCreateCoreRulesTable ()
void DestroyCoreRulesTable (ICoreRulesTable *p)
bool AnyDatabaseDirty ()
 Cross-table dirty query.
void ReleaseDatabases ()
 Free all in-memory CoreRules data.
IDateObCreateDateOb ()
void DestroyDateOb (IDateOb *p)
IDiaryEntryObCreateDiaryEntryOb ()
void DestroyDiaryEntryOb (IDiaryEntryOb *p)
IDiaryObCreateDiaryOb ()
void DestroyDiaryOb (IDiaryOb *p)
IEncounterFreqTableObCreateEncounterFreqTableOb ()
void DestroyEncounterFreqTableOb (IEncounterFreqTableOb *p)
bool LoadEncTabDatabase (const char *user_path)
bool SaveEncTabDatabase (const char *out_path)
void ReleaseEncTabDatabase ()
IEncounterMonHpObCreateEncounterMonHpOb ()
 Factory for a standalone HP-roll entry.
void DestroyEncounterMonHpOb (IEncounterMonHpOb *p)
 Release a standalone HP-roll entry.
IEncounterMonsterPackageObCreateEncounterMonsterPackageOb ()
 Factory for a standalone monster package.
void DestroyEncounterMonsterPackageOb (IEncounterMonsterPackageOb *p)
 Release a standalone monster package.
IEncounterNPCObCreateEncounterNPCOb ()
 Factory for a standalone NPC reference (not owned by any properties row).
void DestroyEncounterNPCOb (IEncounterNPCOb *p)
 Release a standalone NPC reference. Does NOT detach from a parent row.
IEncounterNPCPackageObCreateEncounterNPCPackageOb ()
 Factory for a standalone NPC package.
void DestroyEncounterNPCPackageOb (IEncounterNPCPackageOb *p)
 Release a standalone NPC package.
IEncounterObCreateEncounterOb ()
 Factory for a standalone encounter (not in any table).
void DestroyEncounterOb (IEncounterOb *p)
 Release a standalone encounter.
IEncTemplateItemPropertiesObCreateEncTemplateItemPropertiesOb ()
 Factory for a standalone Item Properties row.
void DestroyEncTemplateItemPropertiesOb (IEncTemplateItemPropertiesOb *p)
 Release a standalone Item Properties row.
IEncTemplateMonsterPropertiesObCreateEncTemplateMonsterPropertiesOb ()
 Factory for a standalone Monster Properties row.
void DestroyEncTemplateMonsterPropertiesOb (IEncTemplateMonsterPropertiesOb *p)
 Release a standalone Monster Properties row.
IEncTemplateNPCPropertiesObCreateEncTemplateNPCPropertiesOb ()
 Factory for a standalone NPC Properties row.
void DestroyEncTemplateNPCPropertiesOb (IEncTemplateNPCPropertiesOb *p)
 Release a standalone NPC Properties row.
IEncTemplateNumAppearObCreateEncTemplateNumAppearOb ()
 Factory for a standalone NumAppear entry.
void DestroyEncTemplateNumAppearOb (IEncTemplateNumAppearOb *p)
 Release a standalone NumAppear entry.
IEncTemplateObCreateEncTemplateOb ()
void DestroyEncTemplateOb (IEncTemplateOb *p)
IExportBuilderCreateExportBuilder ()
void DestroyExportBuilder (IExportBuilder *)
IImportReaderOpenImportReader (const char *path)
void DestroyImportReader (IImportReader *)
IFamilyObCreateFamilyOb ()
void DestroyFamilyOb (IFamilyOb *p)
IInventory_ItemCreateInventory_Item ()
void DestroyInventory_Item (IInventory_Item *p)
IInventoryBundleCreateInventoryBundle ()
void DestroyInventoryBundle (IInventoryBundle *p)
bool CanAddToCategory (const ICharacterRecord *owner, ICharacterRecord::InventorySlot category, const IInventory_Item *item, const char **reason=nullptr)
bool CanAddToContainer (const ICharacterRecord *owner, const IInventory_Item *container, const IInventory_Item *item, const char **reason=nullptr)
ICharacterRecord::InventorySlot HomeSlotFor (const IInventory_Item *item)
IMonsterAttackObCreateMonsterAttackOb ()
void DestroyMonsterAttackOb (IMonsterAttackOb *p)
IMonsterObCreateMonsterOb ()
void DestroyMonsterOb (IMonsterOb *p)
IMonsterTypeObCreateMonsterTypeOb ()
void DestroyMonsterTypeOb (IMonsterTypeOb *p)
INumListCreateNumList ()
void DestroyNumList (INumList *p)
IPartCreatePart ()
void DestroyPart (IPart *p)
IPartIDObCreatePartIDOb ()
void DestroyPartIDOb (IPartIDOb *p)
IPartKitBonusObCreatePartKitBonusOb ()
void DestroyPartKitBonusOb (IPartKitBonusOb *p)
IPartKitLevelObCreatePartKitLevelOb ()
void DestroyPartKitLevelOb (IPartKitLevelOb *p)
IPartKitObCreatePartKitOb ()
 Factory for a standalone kit (not embedded in any CPart).
void DestroyPartKitOb (IPartKitOb *p)
 Release a standalone kit.
IParty_InventoryCreateParty_Inventory ()
void DestroyParty_Inventory (IParty_Inventory *p)
IPropertyObCreatePropertyOb ()
void DestroyPropertyOb (IPropertyOb *p)
IPsionicPowerObCreatePsionicPowerOb ()
void DestroyPsionicPowerOb (IPsionicPowerOb *p)
IRaceObCreateRaceOb ()
void DestroyRaceOb (IRaceOb *p)
IReputationObCreateReputationOb ()
void DestroyReputationOb (IReputationOb *p)
ISpellPointsObCreateSpellPointsOb ()
void DestroySpellPointsOb (ISpellPointsOb *p)
ISpellsCreateSpells ()
void DestroySpells (ISpells *p)
ISpellsObCreateSpellsOb ()
void DestroySpellsOb (ISpellsOb *p)
ISpouseObCreateSpouseOb ()
void DestroySpouseOb (ISpouseOb *p)
ITrapObCreateTrapOb ()
void DestroyTrapOb (ITrapOb *p)
ITreasureObCreateTreasureOb ()
void DestroyTreasureOb (ITreasureOb *p)
ITreasureSingleTableObCreateTreasureSingleTableOb ()
void DestroyTreasureSingleTableOb (ITreasureSingleTableOb *p)
ITreasureTableEntryCreateTreasureTableEntry ()
void DestroyTreasureTableEntry (ITreasureTableEntry *p)
size_t DecodeDisplay (const char *raw, char *out, size_t out_capacity)
size_t EncodeDisplay (const char *raw, char *out, size_t out_capacity)
Load (headless / silent overloads)
bool LoadDatabases ()
 Load all CoreRules databases using auto-resolved paths.
bool LoadDatabases (const char *pINI)
 Load all databases using paths from an explicit INI file.
bool LoadDatabases (const char *pCD, const char *pBase)
 Load all databases from explicit CD-ROM root + writable base.
Save (headless / silent overloads)
bool SaveDatabases ()
 Save every dirty database back to auto-resolved paths.
bool SaveDatabases (const char *pINI)
 Save every dirty database using paths from an INI file.
bool SaveDatabases (const char *pCD, const char *pBase)
 Save every dirty database to the explicit pBase path tree.
Load / Save (progress-aware overloads)

Pass an IProgress* implementation to receive per-phase callbacks (suitable for driving a splash-screen gauge or status text) and to support cancellation.

Pass nullptr to behave identically to the headless overloads above.

bool LoadDatabases (IProgress *progress)
bool LoadDatabases (const char *pINI, IProgress *progress)
bool LoadDatabases (const char *pCD, const char *pBase, IProgress *progress)
bool SaveDatabases (IProgress *progress)
bool SaveDatabases (const char *pINI, IProgress *progress)
bool SaveDatabases (const char *pCD, const char *pBase, IProgress *progress)

Variables

IAttackRecordAttack_Record
ICalendarRecordCalendar_Record
ICharacterIndexCharacter_Index
ICharacterPartyRecordParty_Record
IClassRecordClass_Record
IConvertRecordConvert_Record
IEncounterFreqTableRecordEncTab_Record
IEncounterRecordEncounter_Record
IEncTemplateRecordEncTemplate_Record
IFamilyRecordFamily_Record
IMonsterRecordMonster_Record
IMonsterTypeRecordMonsterType_Record
IPartsRecordParts_Record
IPropertyRecordProperty_Record
IPsionicRecordPsionic_Record
IRaceRecordRace_Record
ISpellsRecordSpells_Record
ITrapRecordTrap_Record
ITreasureRecordTreasure_Record
ITreasureTableRecordTreasureTable_Record

Enumeration Type Documentation

◆ ClassGroup

enum class CoreRules::ClassGroup : long
strong
Enumerator
Warrior 
Rogue 
Priest 
Wizard 
Psionicist 

◆ ExportItemKind

enum class CoreRules::ExportItemKind
strong
Enumerator
Character 
Class 
PsionicPower 
Trap 
Race 
WizardSpell 
PriestSpell 
Monster 
Encounter 
Template 
TreasureBundle 
MonsterType 
Weapon 
Armor 
NonWeaponProf 
RacialAbility 
Language 
Equipment 
MagicItem 
SchoolOfMagic 
Trait 
Disadvantage 
GemOrArt 
ClassAbility 
CharacterKit 
Currency 
Count 
Sphere 
ProfantasyMap 
MapMakerIIMap 
_Count 

◆ PartSection

enum class CoreRules::PartSection : int
strong
Enumerator
None 
Weapons 
Armor 
NonWeaponProf 
RacialAbilities 
Languages 
Equipment 
MagicItems 
SchoolsOfMagic 
Traits 
Disadvantages 
GemsAndArts 
ClassAbilities 
CharacterKits 
Currency 
Counts 
Spheres 
WeaponProficiencies 

Function Documentation

◆ AnyDatabaseDirty()

bool CoreRules::AnyDatabaseDirty ( )

Cross-table dirty query.

Returns true if ANY loaded record table has unsaved changes (any record modified, or any add/remove/rename of slots since last save). Walks every populated *_Record global and the Character_Index. Suitable for "Save All" toolbar enablement and app-exit "save before exiting?" prompts.

Returns
false if LoadDatabases has not yet succeeded (no tables loaded means nothing to be dirty).

◆ CanAddToCategory()

bool CoreRules::CanAddToCategory ( const ICharacterRecord * owner,
ICharacterRecord::InventorySlot category,
const IInventory_Item * item,
const char ** reason = nullptr )

◆ CanAddToContainer()

bool CoreRules::CanAddToContainer ( const ICharacterRecord * owner,
const IInventory_Item * container,
const IInventory_Item * item,
const char ** reason = nullptr )

◆ CreateCalendarEntryOb()

ICalendarEntryOb * CoreRules::CreateCalendarEntryOb ( )

◆ CreateCalendarOb()

ICalendarOb * CoreRules::CreateCalendarOb ( )

◆ CreateCharacter_Adventure()

ICharacter_Adventure * CoreRules::CreateCharacter_Adventure ( )

◆ CreateCharacter_Extension()

ICharacter_Extension * CoreRules::CreateCharacter_Extension ( )

◆ CreateCharacter_Party()

ICharacter_Party * CoreRules::CreateCharacter_Party ( )

◆ CreateCharacterMiniOb()

ICharacterMiniOb * CoreRules::CreateCharacterMiniOb ( )

Factory for a standalone MiniOb (not in any roster).

◆ CreateClassFreeSpellsOb()

IClassFreeSpellsOb * CoreRules::CreateClassFreeSpellsOb ( )

◆ CreateClassOb()

IClassOb * CoreRules::CreateClassOb ( )

◆ CreateCompanionOb()

ICompanionOb * CoreRules::CreateCompanionOb ( )

◆ CreateConvertRecordOb()

IConvertRecordOb * CoreRules::CreateConvertRecordOb ( )

◆ CreateCoreRulesTable()

ICoreRulesTable * CoreRules::CreateCoreRulesTable ( )

◆ CreateDateOb()

IDateOb * CoreRules::CreateDateOb ( )

◆ CreateDiaryEntryOb()

IDiaryEntryOb * CoreRules::CreateDiaryEntryOb ( )

◆ CreateDiaryOb()

IDiaryOb * CoreRules::CreateDiaryOb ( )

◆ CreateEncounterFreqTableOb()

IEncounterFreqTableOb * CoreRules::CreateEncounterFreqTableOb ( )

◆ CreateEncounterMonHpOb()

IEncounterMonHpOb * CoreRules::CreateEncounterMonHpOb ( )

Factory for a standalone HP-roll entry.

◆ CreateEncounterMonsterPackageOb()

IEncounterMonsterPackageOb * CoreRules::CreateEncounterMonsterPackageOb ( )

Factory for a standalone monster package.

◆ CreateEncounterNPCOb()

IEncounterNPCOb * CoreRules::CreateEncounterNPCOb ( )

Factory for a standalone NPC reference (not owned by any properties row).

◆ CreateEncounterNPCPackageOb()

IEncounterNPCPackageOb * CoreRules::CreateEncounterNPCPackageOb ( )

Factory for a standalone NPC package.

◆ CreateEncounterOb()

IEncounterOb * CoreRules::CreateEncounterOb ( )

Factory for a standalone encounter (not in any table).

◆ CreateEncTemplateItemPropertiesOb()

IEncTemplateItemPropertiesOb * CoreRules::CreateEncTemplateItemPropertiesOb ( )

Factory for a standalone Item Properties row.

◆ CreateEncTemplateMonsterPropertiesOb()

IEncTemplateMonsterPropertiesOb * CoreRules::CreateEncTemplateMonsterPropertiesOb ( )

Factory for a standalone Monster Properties row.

◆ CreateEncTemplateNPCPropertiesOb()

IEncTemplateNPCPropertiesOb * CoreRules::CreateEncTemplateNPCPropertiesOb ( )

Factory for a standalone NPC Properties row.

◆ CreateEncTemplateNumAppearOb()

IEncTemplateNumAppearOb * CoreRules::CreateEncTemplateNumAppearOb ( )

Factory for a standalone NumAppear entry.

◆ CreateEncTemplateOb()

IEncTemplateOb * CoreRules::CreateEncTemplateOb ( )

◆ CreateExportBuilder()

IExportBuilder * CoreRules::CreateExportBuilder ( )

◆ CreateFamilyOb()

IFamilyOb * CoreRules::CreateFamilyOb ( )

◆ CreateInventory_Item()

IInventory_Item * CoreRules::CreateInventory_Item ( )

◆ CreateInventoryBundle()

IInventoryBundle * CoreRules::CreateInventoryBundle ( )

◆ CreateMonsterAttackOb()

IMonsterAttackOb * CoreRules::CreateMonsterAttackOb ( )

◆ CreateMonsterOb()

IMonsterOb * CoreRules::CreateMonsterOb ( )

◆ CreateMonsterTypeOb()

IMonsterTypeOb * CoreRules::CreateMonsterTypeOb ( )

◆ CreateNumList()

INumList * CoreRules::CreateNumList ( )

◆ CreatePart()

IPart * CoreRules::CreatePart ( )

◆ CreatePartIDOb()

IPartIDOb * CoreRules::CreatePartIDOb ( )

◆ CreatePartKitBonusOb()

IPartKitBonusOb * CoreRules::CreatePartKitBonusOb ( )

◆ CreatePartKitLevelOb()

IPartKitLevelOb * CoreRules::CreatePartKitLevelOb ( )

◆ CreatePartKitOb()

IPartKitOb * CoreRules::CreatePartKitOb ( )

Factory for a standalone kit (not embedded in any CPart).

◆ CreateParty_Inventory()

IParty_Inventory * CoreRules::CreateParty_Inventory ( )

◆ CreatePropertyOb()

IPropertyOb * CoreRules::CreatePropertyOb ( )

◆ CreatePsionicPowerOb()

IPsionicPowerOb * CoreRules::CreatePsionicPowerOb ( )

◆ CreateRaceOb()

IRaceOb * CoreRules::CreateRaceOb ( )

◆ CreateReputationOb()

IReputationOb * CoreRules::CreateReputationOb ( )

◆ CreateSpellPointsOb()

ISpellPointsOb * CoreRules::CreateSpellPointsOb ( )

◆ CreateSpells()

ISpells * CoreRules::CreateSpells ( )

◆ CreateSpellsOb()

ISpellsOb * CoreRules::CreateSpellsOb ( )

◆ CreateSpouseOb()

ISpouseOb * CoreRules::CreateSpouseOb ( )

◆ CreateTrapOb()

ITrapOb * CoreRules::CreateTrapOb ( )

◆ CreateTreasureOb()

ITreasureOb * CoreRules::CreateTreasureOb ( )

◆ CreateTreasureSingleTableOb()

ITreasureSingleTableOb * CoreRules::CreateTreasureSingleTableOb ( )

◆ CreateTreasureTableEntry()

ITreasureTableEntry * CoreRules::CreateTreasureTableEntry ( )

◆ DecodeDisplay()

size_t CoreRules::DecodeDisplay ( const char * raw,
char * out,
size_t out_capacity )

◆ DestroyCalendarEntryOb()

void CoreRules::DestroyCalendarEntryOb ( ICalendarEntryOb * p)

◆ DestroyCalendarOb()

void CoreRules::DestroyCalendarOb ( ICalendarOb * p)

◆ DestroyCharacter_Adventure()

void CoreRules::DestroyCharacter_Adventure ( ICharacter_Adventure * p)

◆ DestroyCharacter_Extension()

void CoreRules::DestroyCharacter_Extension ( ICharacter_Extension * p)

◆ DestroyCharacter_Party()

void CoreRules::DestroyCharacter_Party ( ICharacter_Party * p)

◆ DestroyCharacterMiniOb()

void CoreRules::DestroyCharacterMiniOb ( ICharacterMiniOb * p)

Release a MiniOb created by CreateCharacterMiniOb.

◆ DestroyClassFreeSpellsOb()

void CoreRules::DestroyClassFreeSpellsOb ( IClassFreeSpellsOb * p)

◆ DestroyClassOb()

void CoreRules::DestroyClassOb ( IClassOb * p)

◆ DestroyCompanionOb()

void CoreRules::DestroyCompanionOb ( ICompanionOb * p)

◆ DestroyConvertRecordOb()

void CoreRules::DestroyConvertRecordOb ( IConvertRecordOb * p)

◆ DestroyCoreRulesTable()

void CoreRules::DestroyCoreRulesTable ( ICoreRulesTable * p)

◆ DestroyDateOb()

void CoreRules::DestroyDateOb ( IDateOb * p)

◆ DestroyDiaryEntryOb()

void CoreRules::DestroyDiaryEntryOb ( IDiaryEntryOb * p)

◆ DestroyDiaryOb()

void CoreRules::DestroyDiaryOb ( IDiaryOb * p)

◆ DestroyEncounterFreqTableOb()

void CoreRules::DestroyEncounterFreqTableOb ( IEncounterFreqTableOb * p)

◆ DestroyEncounterMonHpOb()

void CoreRules::DestroyEncounterMonHpOb ( IEncounterMonHpOb * p)

Release a standalone HP-roll entry.

◆ DestroyEncounterMonsterPackageOb()

void CoreRules::DestroyEncounterMonsterPackageOb ( IEncounterMonsterPackageOb * p)

Release a standalone monster package.

◆ DestroyEncounterNPCOb()

void CoreRules::DestroyEncounterNPCOb ( IEncounterNPCOb * p)

Release a standalone NPC reference. Does NOT detach from a parent row.

◆ DestroyEncounterNPCPackageOb()

void CoreRules::DestroyEncounterNPCPackageOb ( IEncounterNPCPackageOb * p)

Release a standalone NPC package.

◆ DestroyEncounterOb()

void CoreRules::DestroyEncounterOb ( IEncounterOb * p)

Release a standalone encounter.

◆ DestroyEncTemplateItemPropertiesOb()

void CoreRules::DestroyEncTemplateItemPropertiesOb ( IEncTemplateItemPropertiesOb * p)

Release a standalone Item Properties row.

◆ DestroyEncTemplateMonsterPropertiesOb()

void CoreRules::DestroyEncTemplateMonsterPropertiesOb ( IEncTemplateMonsterPropertiesOb * p)

Release a standalone Monster Properties row.

◆ DestroyEncTemplateNPCPropertiesOb()

void CoreRules::DestroyEncTemplateNPCPropertiesOb ( IEncTemplateNPCPropertiesOb * p)

Release a standalone NPC Properties row.

◆ DestroyEncTemplateNumAppearOb()

void CoreRules::DestroyEncTemplateNumAppearOb ( IEncTemplateNumAppearOb * p)

Release a standalone NumAppear entry.

◆ DestroyEncTemplateOb()

void CoreRules::DestroyEncTemplateOb ( IEncTemplateOb * p)

◆ DestroyExportBuilder()

void CoreRules::DestroyExportBuilder ( IExportBuilder * )

◆ DestroyFamilyOb()

void CoreRules::DestroyFamilyOb ( IFamilyOb * p)

◆ DestroyImportReader()

void CoreRules::DestroyImportReader ( IImportReader * )

◆ DestroyInventory_Item()

void CoreRules::DestroyInventory_Item ( IInventory_Item * p)

◆ DestroyInventoryBundle()

void CoreRules::DestroyInventoryBundle ( IInventoryBundle * p)

◆ DestroyMonsterAttackOb()

void CoreRules::DestroyMonsterAttackOb ( IMonsterAttackOb * p)

◆ DestroyMonsterOb()

void CoreRules::DestroyMonsterOb ( IMonsterOb * p)

◆ DestroyMonsterTypeOb()

void CoreRules::DestroyMonsterTypeOb ( IMonsterTypeOb * p)

◆ DestroyNumList()

void CoreRules::DestroyNumList ( INumList * p)

◆ DestroyPart()

void CoreRules::DestroyPart ( IPart * p)

◆ DestroyPartIDOb()

void CoreRules::DestroyPartIDOb ( IPartIDOb * p)

◆ DestroyPartKitBonusOb()

void CoreRules::DestroyPartKitBonusOb ( IPartKitBonusOb * p)

◆ DestroyPartKitLevelOb()

void CoreRules::DestroyPartKitLevelOb ( IPartKitLevelOb * p)

◆ DestroyPartKitOb()

void CoreRules::DestroyPartKitOb ( IPartKitOb * p)

Release a standalone kit.

◆ DestroyParty_Inventory()

void CoreRules::DestroyParty_Inventory ( IParty_Inventory * p)

◆ DestroyPropertyOb()

void CoreRules::DestroyPropertyOb ( IPropertyOb * p)

◆ DestroyPsionicPowerOb()

void CoreRules::DestroyPsionicPowerOb ( IPsionicPowerOb * p)

◆ DestroyRaceOb()

void CoreRules::DestroyRaceOb ( IRaceOb * p)

◆ DestroyReputationOb()

void CoreRules::DestroyReputationOb ( IReputationOb * p)

◆ DestroySpellPointsOb()

void CoreRules::DestroySpellPointsOb ( ISpellPointsOb * p)

◆ DestroySpells()

void CoreRules::DestroySpells ( ISpells * p)

◆ DestroySpellsOb()

void CoreRules::DestroySpellsOb ( ISpellsOb * p)

◆ DestroySpouseOb()

void CoreRules::DestroySpouseOb ( ISpouseOb * p)

◆ DestroyTrapOb()

void CoreRules::DestroyTrapOb ( ITrapOb * p)

◆ DestroyTreasureOb()

void CoreRules::DestroyTreasureOb ( ITreasureOb * p)

◆ DestroyTreasureSingleTableOb()

void CoreRules::DestroyTreasureSingleTableOb ( ITreasureSingleTableOb * p)

◆ DestroyTreasureTableEntry()

void CoreRules::DestroyTreasureTableEntry ( ITreasureTableEntry * p)

◆ DiagDescribeCharIndex()

long CoreRules::DiagDescribeCharIndex ( const unsigned char * data,
long len,
char * buf,
long buf_size )

◆ DiagKindCount()

int CoreRules::DiagKindCount ( )

◆ DiagKindEnabled()

bool CoreRules::DiagKindEnabled ( int kind)

◆ DiagKindName()

int CoreRules::DiagKindName ( int kind,
char * buf,
int buf_size )

◆ DiagRecordBytes()

long CoreRules::DiagRecordBytes ( int kind,
int index,
unsigned char * buf,
long buf_size )

◆ DiagRecordCount()

int CoreRules::DiagRecordCount ( int kind)

◆ DiagRecordFields()

long CoreRules::DiagRecordFields ( int kind,
int index,
char * buf,
long buf_size )

◆ DiagRecordName()

int CoreRules::DiagRecordName ( int kind,
int index,
char * buf,
int buf_size )

◆ DumpExportFile()

void CoreRules::DumpExportFile ( const char * path,
int max_body_slots = 40 )

◆ EncodeDisplay()

size_t CoreRules::EncodeDisplay ( const char * raw,
char * out,
size_t out_capacity )

◆ GetConfigKey()

const char * CoreRules::GetConfigKey ( int index)

Key name at the given enumeration index, or "" when out of range.

Pointer ownership: same lifetime contract as GetConfigPath.

◆ GetConfigKeyCount()

int CoreRules::GetConfigKeyCount ( )

Number of keys available from the platform configuration.

◆ GetConfigPath()

const char * CoreRules::GetConfigPath ( const char * key)

Read a configured path / value by key name.

Looks up key in the platform configuration source (registry on Windows, ~/.config/corerules.cfg on Linux) and returns the value.

Parameters
keyName of the configuration key (e.g. "database", "bitmaps_portrait", "CDROM"). Case-sensitive.
Returns
Pointer to the value string, or "" when the key is not present in the config. The returned pointer is owned by the library and remains valid for the lifetime of the process; callers must NOT free or modify the string.

◆ HomeSlotFor()

ICharacterRecord::InventorySlot CoreRules::HomeSlotFor ( const IInventory_Item * item)

◆ LoadConvertDatabase() [1/2]

bool CoreRules::LoadConvertDatabase ( )

◆ LoadConvertDatabase() [2/2]

bool CoreRules::LoadConvertDatabase ( const char * base_path,
const char * user_path )

◆ LoadDatabases() [1/6]

bool CoreRules::LoadDatabases ( )

Load all CoreRules databases using auto-resolved paths.

Registry-based on Windows; falls back to ~/.config/corerules.cfg on Linux. After success, every *_Record global is populated.

Returns
true on success, false on path resolution / parse failure.

◆ LoadDatabases() [2/6]

bool CoreRules::LoadDatabases ( const char * pCD,
const char * pBase )

Load all databases from explicit CD-ROM root + writable base.

Parameters
pCDRead-only data root (e.g. the original CD's directory). Per-subdir fallback target when pBase/<dir> is missing.
pBaseWritable user data root. Probed first for each subdir.
Returns
true on success, false on missing required dirs.

◆ LoadDatabases() [3/6]

bool CoreRules::LoadDatabases ( const char * pCD,
const char * pBase,
IProgress * progress )

◆ LoadDatabases() [4/6]

bool CoreRules::LoadDatabases ( const char * pINI)

Load all databases using paths from an explicit INI file.

Parameters
pINIPath to a CoreRules INI file (same key layout as the Windows registry settings).
Returns
true on success, false on missing file / parse failure.

◆ LoadDatabases() [5/6]

bool CoreRules::LoadDatabases ( const char * pINI,
IProgress * progress )

◆ LoadDatabases() [6/6]

bool CoreRules::LoadDatabases ( IProgress * progress)

◆ LoadEncTabDatabase()

bool CoreRules::LoadEncTabDatabase ( const char * user_path)

◆ OpenImportReader()

IImportReader * CoreRules::OpenImportReader ( const char * path)

◆ ProbeCharacterDatFile()

ProbeResult CoreRules::ProbeCharacterDatFile ( const char * path)

◆ ProbeDatFile()

ProbeResult CoreRules::ProbeDatFile ( const char * path)

◆ ProbePartsDatFile()

PartsProbeResult CoreRules::ProbePartsDatFile ( const char * path)

◆ ProbeSpellsDatFile()

SpellsProbeResult CoreRules::ProbeSpellsDatFile ( const char * path)

◆ ReleaseDatabases()

void CoreRules::ReleaseDatabases ( )

Free all in-memory CoreRules data.

Tears down everything LoadDatabases populated:

  • Every record table (Class, Monster, Race, ..., EncTemplate, Spells, Parts).
  • Character_Index – cascades into every character MiniOb, which cascades into every lazy-loaded heavy record and its extension.
  • The public *_Record / Character_Index globals (all nulled).
  • Cached path state (chars dir, etc.) so a subsequent Load starts from a fresh slate.

Idempotent: safe to call when nothing has been loaded, and safe to call multiple times in a row. Does NOT save anything – any unsaved edits are dropped. Call SaveDatabases first if you want them persisted.

Note
Explicit teardown gives the consumer control over free timing. This matters on Windows where the MFC debug CRT dumps leaks BEFORE static destructors run, so process-exit cleanup would be too late. There is intentionally NO automatic cleanup hook on either platform – the consumer is responsible.

◆ ReleaseEncTabDatabase()

void CoreRules::ReleaseEncTabDatabase ( )

◆ RoundTripCharacterDatFile()

RoundTripResult CoreRules::RoundTripCharacterDatFile ( const char * in_path,
const char * out_path )

◆ RoundTripDatFile()

RoundTripResult CoreRules::RoundTripDatFile ( const char * in_path,
const char * out_path )

◆ RoundTripPartsDatFile()

RoundTripResult CoreRules::RoundTripPartsDatFile ( const char * in_path,
const char * out_path )

◆ RoundTripSpellsDatFile()

RoundTripResult CoreRules::RoundTripSpellsDatFile ( const char * in_path,
const char * out_path )

◆ SaveConvertDatabase() [1/2]

bool CoreRules::SaveConvertDatabase ( )

◆ SaveConvertDatabase() [2/2]

bool CoreRules::SaveConvertDatabase ( const char * user_path)

◆ SaveDatabases() [1/6]

bool CoreRules::SaveDatabases ( )

Save every dirty database back to auto-resolved paths.

Dirty-aware: clean catalogs are skipped (no file rewrite). Walks Character_Index and saves loaded+dirty per-character .chr / extension record files; rewrites index.chr if any character was saved or the index itself is dirty. Never touches base (read-only) files.

Returns
true on success, false if any write failed. Pre-condition: LoadDatabases must have succeeded.

◆ SaveDatabases() [2/6]

bool CoreRules::SaveDatabases ( const char * pCD,
const char * pBase )

Save every dirty database to the explicit pBase path tree.

Parameters
pCDCD-ROM root. Used only as a fallback locator (we never write to it).
pBaseWritable user data root.

◆ SaveDatabases() [3/6]

bool CoreRules::SaveDatabases ( const char * pCD,
const char * pBase,
IProgress * progress )

◆ SaveDatabases() [4/6]

bool CoreRules::SaveDatabases ( const char * pINI)

Save every dirty database using paths from an INI file.

Parameters
pINIPath to the same INI file that drove LoadDatabases.

◆ SaveDatabases() [5/6]

bool CoreRules::SaveDatabases ( const char * pINI,
IProgress * progress )

◆ SaveDatabases() [6/6]

bool CoreRules::SaveDatabases ( IProgress * progress)

◆ SaveEncTabDatabase()

bool CoreRules::SaveEncTabDatabase ( const char * out_path)

Variable Documentation

◆ Attack_Record

IAttackRecord* CoreRules::Attack_Record
extern

◆ Calendar_Record

ICalendarRecord* CoreRules::Calendar_Record
extern

◆ Character_Index

ICharacterIndex* CoreRules::Character_Index
extern

◆ Class_Record

IClassRecord* CoreRules::Class_Record
extern

◆ Convert_Record

IConvertRecord* CoreRules::Convert_Record
extern

◆ Encounter_Record

IEncounterRecord* CoreRules::Encounter_Record
extern

◆ EncTab_Record

IEncounterFreqTableRecord* CoreRules::EncTab_Record
extern

◆ EncTemplate_Record

IEncTemplateRecord* CoreRules::EncTemplate_Record
extern

◆ Family_Record

IFamilyRecord* CoreRules::Family_Record
extern

◆ Monster_Record

IMonsterRecord* CoreRules::Monster_Record
extern

◆ MonsterType_Record

IMonsterTypeRecord* CoreRules::MonsterType_Record
extern

◆ Parts_Record

IPartsRecord* CoreRules::Parts_Record
extern

◆ Party_Record

ICharacterPartyRecord* CoreRules::Party_Record
extern

◆ Property_Record

IPropertyRecord* CoreRules::Property_Record
extern

◆ Psionic_Record

IPsionicRecord* CoreRules::Psionic_Record
extern

◆ Race_Record

IRaceRecord* CoreRules::Race_Record
extern

◆ Spells_Record

ISpellsRecord* CoreRules::Spells_Record
extern

◆ Trap_Record

ITrapRecord* CoreRules::Trap_Record
extern

◆ Treasure_Record

ITreasureRecord* CoreRules::Treasure_Record
extern

◆ TreasureTable_Record

ITreasureTableRecord* CoreRules::TreasureTable_Record
extern