Mercurial > projects > mde
view mde/mde.d @ 11:b940f267419e
Options class created & changes to mergetag exception messages.
Options class created (barebones). Loading/saving from Init.
Init no longer runs cleanup functions after initialisation failure.
Improved mergetag exception messages & error reporting.
committer: Diggory Hardy <diggory.hardy@gmail.com>
author | Diggory Hardy <diggory.hardy@gmail.com> |
---|---|
date | Thu, 21 Feb 2008 09:05:33 +0000 |
parents | 4c3575400769 |
children | bff0d802cb7d |
line wrap: on
line source
/** Modular D Engine * * This module contains main(). */ module mde.mde; // Package imports import mde.init; import global = mde.global; import mde.events; import mde.scheduler; import mde.options; // greeting message import mde.exception; import mde.input.input; // External library imports import tango.core.Thread : Thread; // for sleep //import tango.io.Stdout; import tango.time.Clock; import tango.util.log.Log : Log, Logger; import derelict.sdl.sdl; int main() { //BEGIN Initialisation Logger logger = Log.getLogger ("mde.mde"); scope Init init; try { init = new Init(); // initialisation } catch (initException e) { logger.fatal ("Initialisation failed; error was:"); logger.fatal (e.msg); return 1; } global.input.addButtonCallback (cast(Input.inputID) 0x0u, delegate void(Input.inputID i, bool b) { if (b) { logger.info ("Quiting..."); global.run = false; } } ); //END Initialisation logger.info (options.greeting); while (global.run) { Scheduler.run (Clock.now()); Thread.sleep (0.050); // sleep this many seconds } return 0; // cleanup handled by init's DTOR }