Reboot of my c++ text adventure game, this time with a proper entity system and less general bad coding