1つの関数ポインタ書き換えって
HRESULT (*p) (int game_status)
p = game_init
// で、game_init内の最後で
p = game_frame
ってコトだよね?

俺もテーブルの方が見易い派だなぁ