大きなマップのデータファイルを作って
プレイヤーが移動するたびに動的にマップデータを読み込んで
マップを表示するようにしたいんですけど
マップを実際に表示するためのデータはどう作るのが理想的なんでしょうか

最初はマップ1マス毎の構造体を作ってそれをリストにして
プレイヤーが動く度に見えなくなった列のマスを廃棄、新しい列のマスをマップデータから読み込み
とやっていたんですけど
いちいち開放、確保をやるのも馬鹿らしかったのと、見える範囲のマスの量は一定なのだから
配列で作ったほうが良いと思い作り直し始めたんです
でも考えてみると今の書き方だとリストにせよ配列にせよ
表示するマップデータを1列変えるだけで相当な条件分岐を使ってるんですよ

マップファイルから取り込んだ新しく追加する1列に含まれるマス数
                   ×
要らなくなり、取り替える必要のある1列に含まれるマス数
                   ×
要らなくなり、取り替える必要のあるマスを現在の表示マップデータから1マスずつ検索する為の分岐


毎Fごとにこれをやるのは結構な負担になると思うのでどうにか良い方法はないかと思ってるんですけど
自分の頭では思いつけませんでした
良い方法があったら教えてもらえませんか?よろしくお願いします