ドヒャヒャヒャ!脳みそ!ズル出してやるッ!

>if (!(scrollDirection % 2)) { //DIR_UP or DIR_DOWN

こんな、定数の値に依存した判定してたんじゃ、マジックナンバー使うのと変わらんから
定数といっしょにマクロ(or関数)定義しとけよ…
 #define IS_HORZ(dir) ((dir)%2==1)
 #define IS_VERT(dir) ((dir)%2==0)
みたいな。

あと、CGame::GetKeyの名前は変えたほうがいいと思う…

あと、WM_PAINT以外のところで BeginPaint 使っちゃダメだよ…

あと、CMapの変数を外部から直接いじってんじゃねーー!クラスの意味ねーだろ禿げ!ボケ!美乳!m9(^Д^)プギャー
構造体として使うスタンスならいいけどさ…理解しにくいよ…