C++ roguelike rewrite