Great game, I think the observation center over looking the dungeon is a really cool story idea and I liked the different camera angles you incorporated. In terms of the window resizing, rather than needing to press p after resizing you could save the window size of the previous frame and check it against the new window size each frame and update the frame buffer if they're different.
I took a quick look at your code, I think cleaning up the commented out code would help make things cleaner but overall I thought it was pretty well formatted and readable. I think one thing you could do is move a bunch of the logic out of the main() function but I do really like the section comments you have in that function, it makes it easier to follow and read through.
Overall really cool project!