Rewrite notes - Anticheese/Cataclysm GitHub Wiki
These are pretty much smeding's personal rewrite notes -- do not expect them to be readable.
Major headings are modules -- they implement an 'area' in game functionality, sectioned off in its own namespace.
cataclysm
Cataclysm
The topmost class for the game.
Abstract classes
GameState
Does what it says on the tin -- something like Game or MainMenu that has a consistent way it works internally and can be transitioned to/from.
IO
IO
This class handles all communication with the user, through libtcod.
Abstract classes:
InputHandler
Anything that can register to handle input events.
Renderable
Anything that can register to be rendered to screen.
menu
MainMenu
The main menu, descendes from Menu
Abstract classes
Menu
Basic functionality for menus that can be reused.
Items
Abstract classes:
Item
Creatures
Player
A character that is controlled by the player.
Monster
A creature that has hitpoints.
NPC (for the long run)
A character that is controlled by AI. Inherits from Character.
Abstract classes:
Creature
A game object that moves in the world. Inherits from GameObject.
Character
Any creature that has locational damage, attributes, skills etc. Inherits from Creature