view mde/mde.d @ 8:f63f4f41a2dc

Big changes to init; got some way towards input event support; changed mergetag ID to char[] from uint. committer: Diggory Hardy <diggory.hardy@gmail.com>
author Diggory Hardy <diggory.hardy@gmail.com>
date Fri, 25 Jan 2008 18:17:38 +0000
parents 9a990644948c
children 1885a9080f2a
line wrap: on
line source

/** Modular D Engine
 *
 * This module contains main().
 */
module mde.mde;

// Package imports
import mde.init;
import mde.events;
import mde.scheduler;
//import test = mde.test;

import mde.input.input;

// External library imports
import tango.core.Thread;
import tango.io.Stdout;
import tango.time.Clock;
import tango.util.log.Log : Log, Logger;

import derelict.sdl.sdl;

int main()
{
    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);
        Stdout (e.msg);
        return 1;
    }
    
    input.addButtonCallback (cast(Input.inputID) 3u, delegate void(Input.inputID i, bool b) {
        Stdout ("Event: ")(i)(" changed to: ")(b).newline;
    } );
    bool oldb = false;
    
    while (run)
    /+for (ulong t = 0; t < 100; ++t)+/ {
        Scheduler.run (Clock.now());
        
        bool b = input.getButton (cast(Input.inputID) 3u);
        if (b != oldb) {
            oldb = b;
            Stdout ("Button 3 changed to: ")(b).newline;
        }
        
        Thread.sleep (0.010);	// 10 ms
    }
    
    return 0;		// cleanup handled by init's DTOR
}