This sub-tree shows the current

project layout as defined

Blacknote DDP defines

and system definitions

Container package for various

rendering related interfaces

Interface for a simple renderer

Scripting functions for

in-game related operations

Main state machine

of the game

Tile related interfaces

Definition driven programming

interface

Renderer container package

provides rendering

functions for the terminal

Container package

for holding tile definitions

Container package for holding

equipment definitions

Interface for mods

Logging facilities

Package handling input

from the player

Possibly usefull macro

definitions for faster programming

Package for the Map class

Package for map generation

FFI interface to SDL_mixer

to provide sound

Package providing in-game

message logging systems

NOTE:

Not all of these are

implemented this way

TODO denotes things still needing

to be done

TODO

The global world state

object defining the generated

world state

Current map being played

World related flags

Global object

handling logging

of debugging and error

messages

TODO

Valid states should

be of class State, so

that we can handle various states

properly, without having checks

all over the code

Bootstrap state

nothing really happens here

Shows the banner

Shows the main menu

The State.pm package

exports all subroutines starting

with the 'bnsm_' prefix in a C-style fashion.

These subroutines are accessible globally

The purpose of this

class is to encapsulate state

related transitions

A list of systems used for the game

TODO

This state machine

should be used inside

classes to handle various kinds

of states the given object can

be in

For various kinds of

inventory types.

Such as equipment/weapon/consumables

TODO

Player is globally accessible

for easy querying.

$PLAYER variable holds the player

object in the state machine and

bnsm_get_player() function returns

this object

Interface defining

all functions needing

to be implemented

by any KeyInput class

Same as for the above

except for in-game menus

List of interfaces.

Interfaces are simply dummy

classes that check if their

subclasses implement the functions

defined within them

Modding interface.

Classes inheriting from this will

be loaded into the game as mods.

TODO

State interface for state machines

Roles are classes

that get mixed into

other classes to provide

common functionality usually

needed by a larger chunk of classes

that do no necessarily relate to these

in a strict hierarchical fashion

.