devinsmith / opendw

A game engine for Interplay's 1989/1990 DragonWars game
ISC License
16 stars 1 forks source link

Refactor/Improve event handing #2

Open devinsmith opened 2 years ago

devinsmith commented 2 years ago

All event handling (outside of the initial title screen) is handled today in engine.c (within sub_28B0) but this is not ideal because this code is only invoked via script execution and we would prefer to decouple script execution and event handling.

It is preferable for the main game loop to invoke event handling outside of script execution such that events and scripts are handled separately like traditional game loops.

while (keep_going) {
   process_events();
   process_timers();
   // ....
   execute_scripts();
   update_display();
   sleep(...);
}