coppro
Level: Smitemaster
Rank Points: 1309
Registered: 11-24-2005
IP: Logged
|
"Simple" guide to the DROD Source Code (+3)
I've decided that to increase the people poking around in the DROD source code (which I personally believe may lead only to good things), I have decided to create a guide to all the source files in the DROD source code. This is merely a guide that tells perspective programmers where to find code X. It does not at all substitute for the ability to code, and I will assume you understand basic project layout and programming design. (such as what .cpp and .h files are)
Okay, so first you'll notice that there are 4 source folders: FrontEndLib, DROD, DRODLib, and BackEndLib.
BackEndLib contains parts of DROD that interface with lower-level components of the operating system, or else very basic, fundamental code.
* Assert.* contains the declarations for the never-disable debugging assertions common through DROD. AssertErr in particular is a spectacular point to put a breakpoint.
* AttachableObject.* provides the basis for a generic object when you need to attach any type of object (think Boost.Any). There is also a CRTP wrapper. You see this a lot in the cue events system.
* Base64.* is base 64 encoding/decoding.
* Browser.* contains the code to open an external browser application (not the Deadly Browser of Death)
* CharTraits.h is a GCC-only header which provides some useful character operations.
* Clipboard.* contains clipboard operations (copying and pasting)
* Coord.h is the mandatory coordinate class.
* CoordIndex.h has a quick lookup system for coordinates (to check whether a coordinate is in a specific set)
* CoordSet.h has a more generic coordinate set based on std::set.
* CoordStack.h has a coordinate stack/queue, for iteration.
* Date.* has code for date and time
* Dyn.* is very complex, obtuse Unix code for dynamic library loading and interfacing with graphics functions.
* Exception.h is the base exception class (yes, it does use std::exception)
* Files.* is the filesystem interface.
* GameStream.* is a Metakit stream for Unicode filenames.
* Heap.h contains heap checks for debugging on Windows.
* IDList.* provides a method of keeping track of primary IDs for database use.
* IDSet.h is a set for IDs.
* IniFile.* is the configuration interface.
* Internet.* is the internet code. This is present even in the source distribution; the code regarding what information to send/receive to CaravelNet is not present, however (and reverse-engineering it violates your EULA, just so you know).
* MessageIDs.* contains all the languages DROD can theoretically support - that's far too many.
* PortsBase.h contains some important platform-specific stuff.
* Ports.* contains platform-specific functions
* StretchyBuffer.* contains a resizable data buffer class.
* SysTimer.* provides a method of accessing the system's clock to determine how time is passing.
* Types.h is a lot of useful typedefs.
* UtilFuncs.h is.... utility functions!
* Wchar.* is the wide character file, containing functions and declarations that give DROD portable Unicode.
Ooof... that's a lot. I'll go over the other folders later.
[Last edited by coppro at 07-01-2008 07:28 PM]
|