Sounds fine.  I'd rather keep a play_game_text() function which does everything play_game() does (e.g. init(), plays rounds, destroys), to make updating all the non-3d ports UIs less of a hassle, though.
Also, play_game()'s loop is not actually the inner loop of the game. dungeon() is where input/update is dealt with turn-on-turn,. I'll be working on refactoring this myself at some point, but any patches would be appreciated.
					Also, play_game()'s loop is not actually the inner loop of the game. dungeon() is where input/update is dealt with turn-on-turn,. I'll be working on refactoring this myself at some point, but any patches would be appreciated.
. Making the application a multithreading  one and synchronizing threads is a huge pain, and it's quite impossible to make because multithreading is quite platform specific. The problem here is that the main loop of the game is not done in the main function of each platform but rather in the play_game() within dungeon.c. That cuts access to anything after the "while(TRUE)" section is entered, basically reducing all communication to input and some events to update the output screen buffer. 
Comment