NetExalted/XNEPCoreClass
From Exalted - Unofficial Wiki
- /XeriarProposal - Back to Proposal
Contents
Core Class
The Core Class is the heart of the program. It holds and manages the top-level data structures, particularly the Character library and the Trait library. It also stores the current 'rules set', which covers the basic, core definitions of the rules as well as the type of Character being made. These two are stored and read separately for modularity purposes.
The Core Class handles data I/O (but not user-friendly output such as to screen, .pdf saving or printing). It also returns basic data, such as base traits.
- Specification of a configuration file is probably desirable
- This is the class that would be called 'NetExalted'
Data Members
- Character Array (an array of class Character) - possibly a doubly linked list. There is likely little overhead for capping the number of Characters, however, and just making it an array.
- Trait Array (an array of class Trait)
- Base Array (an array of class Value)
- Basefile (a string containing the filename for the Base rules)
- Trait files (an array of strings containing the filenames of the traits in use.
- Front End class - a hook for the GUI and other such things.
Private Function Members
- boolean WriteXMLFile (Array of Value, FileName)
- (Array of Value) ReadXMLFile (FileName)
- (pointer to Character) FindCharacter (CharacterName) - returns a pointer to the Character requested by CharacterName, for SetValue
Public Function Members
- (pointer to Trait) GetTrait (TraitName)
- (Array of Value) GetTraitTypes () - A 'get base rules' function.
- (Array of Value) GetTraitList (TraitType) - Not typically called by the Character class but rather the FrontEnd class. When the user attempts to set a value for a trait that her character does not currently have, the Character will attempt to request the Trait (via GetTrait) and handle it accordingly.
- (Array of Value) GetRequiredTraits () - Some Traits will have a required flag (every creature has some sort of Stamina score, for example). This works like GetTraitList, except it is mainly called by the Character class
- int SetValue (CharacterName, TraitName, Value) - A function called by the Front End to set a Trait value for a specific character. All inputs are strings. This returns an int, instead of a boolean, because a signal will be needed to tell if GetCharacter must be called. Also used to tell why a certain action has been rejected - not enough BPs, XP, Set too low, set too high - whatever.
- (Array of Value) GetCharacter (CharacterName) - Retrieves a character. Used for New Characters, debugging and sanity checks.