Stechec/TBT Class List

Here are the classes, structs, unions and interfaces with brief descriptions:
sdlvisu::ActionDlg
sdlvisu::ActionPopupAction Popup, used for both declaration and action
AIAppTest for a TBT Artificial Intelligence Client
ApiUser interface for graphical interface, AI, etc.

This class is really the "bridge" between the "coach" (whether it would be a human or a computer) and the rules engine

Ball< T >Base class describing the ball
BaseApi< T >
BasePacketHandlerBase packet handler
BaseRulesBase rules class for all kind of game
BCloseButton Close Class

This class create a button with a "Close" image

BNoButton No Class

This class create a button with a "No" image

BYesButton Yes Class

This class create a button with a "Yes" image

CBallBall for the client
CFieldField for the client
ChampionLoaderHelper class that load/run an UI
server::ClientKeep additional data about a client (statistics, status, ...)
ClientAppA generic client entry point (immediately after main).

Regroup commonly used code

ClientCxHandle connection with the server.

Takes care of network connection with the server, provides methods to connect, disconnect, ..

ClientStatisticClients statistics that can be retrieved from Client.

Originated from a kludge: Generic server and arbiter have several different informations on each client. They are all grouped here (with the CoachErrorCustom rules class), then resend to rules at the end so it can write stats, calculate scores, ..

ClientUidGive an uid for the client. Server -> Client
CmdLineInterfaceA stupid command line based client
CPlayer
CPlayerMsgHandle messages for CPlayer objects.

There is a single instance of this class, that dispatch message to the good CPlayer object

CRulesRules implementation for the client
CTeamTeam implementation on client side
CTeamMsgHandle messages for CTeam objects.

There is a single instance of this class, that dispatch message to the good CTeam object

CxBase class for network/file data transfert.

This class contain only methods related to data transfert (send, receive). Use a derived class to be able to open a connection, like FileCx or TcpCx. You can send/receive arbitrary data or file, or you can use the Packet class that already contains useful attributes

DialogBoxMaster DialogBox Class

This class is a virtual class. You need to use a class which inherit from it to do a dialogbox

sdlvisu::DialogBoxVictor reimplementation of dialog box.

Sorry poltuiu I can't reuse your... my system is too different :)

sdlvisu::DialogBoxCbBase class for DialogBox button handler
DiceX-faced dice
DInfoDinfo Class : a simple Info DialogBox

This class create a dialogbox with :

DualStringDual-purpose (and two-faced) string: wraps a string (XMLCh* or char*) and lets you access it in either form
EventBase UI events class.

Derive from this class and virtual methods will be called... when time will come

Field< T >Game playing ground.

Parameter T: Player type (CPlayer or SPlayer)

FreeXercesStringStatic functions to release C-style char* strings and XMLCh* strings allocated by Xerces routines
sdlvisu::GameMain class to create a new game.

To destroy when a game is finished. Control all the game

server::GameHostingRepresents a game, with up to two coachs and as many viewers as they could be.

Each game is identified by a uid, passed to the ctor

GUIErrorClass thrown on error
ImageButtonImage Button Class

This class create a button with an image

InputHold keyboard and mouse state.

* For mouse absolute position and delta motion, this should be obvious. * For mouse button, use constants SDL_BUTTON_LEFT, ..., see SDL_MouseButtonEvent(5). * For keyboard, two informations are available. Keys currently pressed, and keys being pressed since the last updat.e occured. Access key using ascii character, eg: if (key_['b']) {...} * For keyboard modifier, use class convenience function

InputTextSurfaceImplements a TextBox, to let user type text.

This is implemented on top of TextSurface, and isn't really nice to render custom text, ie a cursor. Moreover, some problems may exists when user mix special keys and text, especially when the framerate is low (because special keys are not treated in the order they were typed)

LibraryDynamic library loader
LibraryErrorException class for dynamic library loader errors
LogApplication logger
MenuGeneric menu

A menu is a collection of Widget with a simple box color in background

MenuLightImplementation of a 'very light' menu.

Inherit of 'ClientApp', a crappy class that does all dirty things a stechec client need: handle command line options, configuration file, opens dynamic library, connect to the server, ..

MsgBallPosBall Position.

Client -> Server, only during a kick-off. Server -> Client, at any time of the game

MsgBlockPlayer blocks an opponent.

Client <-> Server

MsgBlockDiceCoach chooses a block dice roll result.

Client -> Server

MsgBlockPushA Player pushes another Player, due to a block.

Client <-> Server

MsgBlockResultBlock dices roll result.

Server -> Client

MsgChatCoaches have better to play rather than use this...

Client <-> Server. FIXME: Handle different charsets

MsgCheatDiceLoad the next Dice roll result.

Client -> Server, used for rules tests

MsgDeclareDeclare a Player action.

Client <-> Server

MsgDrawKickerDrawn coach chooses to either kick or receive the ball.

Server <-> Client

MsgEndGameGame ends, according to the rules.

Server -> Client

MsgEndTurnThe turn ends.

Client <-> Server

MsgFollowAttacker follows the defender after having pushed him.

Client <-> Server

MsgGiveBallChanges Ball owner.

Client -> Server, after a touchback. Server -> Client, at any time of the game

MsgIllegalA client sent an illegal request.

Server -> Client

MsgIllegalProcCoach asks for an illegal procedure.

Client <-> Server

MsgInitGameBoth coaches and arbiter are ready.

Server -> Client

MsgInitHalfA new half-time begins.

Server -> Client

MsgInitKickoffTeams and ball placement during a kick-off.

Server <-> Client

MsgMoveA Player moves of one or several squares.

Client <-> Server

MsgMoveTurnMarkerCoach moves his turn marker.

Client <-> Server

MsgMultiBlockFIXME: NOT IMPLEMENTED. For extra rules.

Client <-> Server

MsgNewTurnA new turn begins.

Server -> Client

MsgPassA Player throws the ball.

Client <-> Server

MsgPlayerCreateCreate a Player at the very beginning of the game.

Client <-> Server

MsgPlayerKnockedA Player is knocked down to the ground.

Client <-> Server

MsgPlayerKOA KO'd Player tries to wakes up, during a break time.

Server -> Client

MsgPlayerPosPlayer Position changed.

Client <-> Server

MsgPlayerStatusPlayer status changed.

Client <-> Server

MsgRerollTeam reroll use, or result acceptation.

Client <-> Server

MsgResultDice roll result associated to a Player, often agility roll.

Server -> Client

MsgSkillA player use one of his skill.

Client <-> Server

MsgStandUpA Player stands up.

Client <-> Server

MsgSyncSynchronization packet. Sent (if rules wish) when an incoming packet is done (processing finished). Server -> Client
MsgTeamInfoCreate a Team, at the very beginning of the game.

Client <-> Server. FIXME: 'race' info is missing. (note: many others too...)

MsgTimerTimer Synchronization.

Client <-> Server

MsgTouchdooownTouchdooown!

Server -> Client

MsgTurnOverA turnover happens.

Client <-> Server

MsgWeatherCurrent Weather.

Server -> Client

NetErrorException class for network errors
NetSysErrorException class for network errors
NutsBarrierExtra memory/time limitation, mainly for AIs
PacketContainer for data passed through network
PacketHandler< N, T >Packet Handler
PacketSenderMust be derived by somebody already owning BaseRules, in order to really send packet
sdlvisu::PanelGame panel (on the right)
PlayerBase class describing a BB player
PositionHandy class to describe a position.

It is just a point, with a set of methods that makes it useful

RectA rectangle class.

Warning: w and h should _never_ be negative

ResourceCenterProvide loader (with cache) for SDL resources.

This class is a singleton. You can access it from anywhere. It provides image and font loader, with a transparent caching system. It is usually loaded within the SDLWindow class

RuleDescriptionRule module description
RulesLoaderHelper class that load/initialize/unload rules
SActionHandlerElementary action handler for the server.

It memorizes the sequence of pending elementary actions

SBallBall for the server.

It symbolizes the ball, checks all ball manipulations

SDLErrorException thrown by SDL functions
SDLWindowManage SDL Window.

Manage creation of a SDL Window and collect its events into Input class

server::ServerControl multiple game, receive new clients, handle spectators..
SPlayerPlayer implementation for the server.

It symbolizes player and valids and applies action requests

SPlayerMsgMessage handler for SPlayer.

Forwards messages to requested player, send messages as requested. Checks player existence and game state before forwarding to player

SpriteEnhancement of Surface, give life to object.

Have the same behavior of Surface, but have some more features: * can be animated * can be moved from one position to another * can show a part of a larger picture (useful when a picture consists of several 'state')

SRulesRules implementation for the server.

It symbolizes the main referee, who manages game state, teams, turns, turnover and score

STeamTeam management for the server.

It symbolizes team and checks the validity of coach's decisions (reroll and block dices)

STeamMsgMessage handler for STeam.

Forwards messages to requested team, send messages as requested. Checks team existence and game state before forwarding to team

StechecStechec generic binary client.

This is by far the most simple client available: it presents no menu, loads a gui/champion/whatever, and runs it once

StringManagerConverts between XMLCh* and char* strings, and takes ownership of the newly-created string
SurfaceBasic encapsulation of SDL_Surface structure.

This is the base class to display something (in rectangular shape) on the screen

SWeatherWeather management for the server
TcpCxImplements TCP networking.

This class implements TCP/IP data connections. Nagle algorithm is turned off, to speed up little but frequent transfers

Team< T >Base class describing a BB team
TextButtonText Button Class

This class create a button with a text

TextSurfaceClass that can draw text, similiar to a TextLabel.

Support multi-line and autowrap

TimerImplement a passive timer, with time accuracy in seconds.

You have to start, stop, restart, and check the remaining time yourself. The timer can be paused, then re-started

TPoint< T >Handy class to describe a point in x-y coordinate, for GUIs.

Conversion from/to Position are made implicit, to avoid mistake

TTFErrorException thrown by TTF functions
xml::ValidationHandlerReally throw something on error
VirtualScrollableSurfaceScrollable kind of VirtualSurface
VirtualSurfaceContainer for Surface.

Other surface (any class derived from Surface) may be attached to VirtualSurface, in a father-child relationship. Rendering is done automatically, using this VirtualSurface as an intermediate SDL_Surface, in a efficient way

sdlvisu::VisuFieldGame field (on the left)
sdlvisu::VisuPlayerPlayer class for visu.

Player caracteristics are not stored in this class, they are fetched from Api

WeatherBase class for storing current match weather
WidgetMaster Widget Class

This class is a virtual class. You need to use a class which inherit from it to do a widget

xml::XMLApplication interface for XML document reading/writing.

This class can manage a very small subset of XML domain. Indeed, this is all TBT requires, to keep the code using it as simple as possible

xml::XMLConfigXML parser/writer tailored for the configuration file.

Here the xml structure used:

xml::XMLErrorClass thrown on error
xml::XMLFormationXML parser/writer tailored for team formation document files
xml::XMLInternalOur internal utilisation of Xerces-C++
xml::XMLTeamXML parser/writer tailored for team document files

Generated on Sat Jun 23 16:09:02 2007 for Stechec/TBT by  doxygen 1.4.7