数年前のとある同人STGのメイン関数。趣味だから何も考えてないね。仕方ないね
int _tmain(int argc, _TCHAR* argv[]){
  boost::shared_ptr<GAMEENV> gameenv(new GAMEENV);   //D3D,SOUND,INPUT,USERDATA,etc
  boost::scoped_ptr<SCENE> logo(new LOGO(gameenv));    //ロゴ画面
  boost::scoped_ptr<SCENE> demo(new DEMO(gameenv));   //デモ画面
  boost::scoped_ptr<SCENE> title(new TITLE(gameenv));    //タイトル画面
  boost::scoped_ptr<SCENE> config(new CONFIG(gameenv));  //コンフィグ画面
  boost::scoped_ptr<SCENE> stage1(new STAGE1(gameenv)); //ステージ1
  (…中略…)
  boost::scoped_ptr<SCENE> stage8(new STAGE8(gameenv)); //ステージ8
  boost::scoped_ptr<SCENE> ending(new ENDING(gameenv));  //エンディング
  logo->Run();                              //ロゴ画面再生
  try{
    while(1){
      demo->Run();                         //デモ画面再生
      switch(title->Run()){                     //タイトル画面再生
      case TITLEOPTIONTYPE_GAMESTART:         //ゲームスタート
        try{ //STAGEEXCEPTIONTYPE_GAMEOVERという例外を投げるまでゲーム続行
          stage1->Run();stage2->Run();stage3->Run();stage4->Run();
          stage5->Run();stage6->Run();stage7->Run();stage8->Run();
          ending->Run();                     //エンディング画面再生
        }catch(STAGEEXCEPTIONTYPE){;}break;       //GAMEOVER例外投げてきた
      case TITLEOPTIONTYPE_CONFIG:            //オプション画面再生
        config->Run();break;
      }
    }
  }
  catch(GAMEEXCEPTIONTYPE){;}catch(...){return EXIT_FAILURE;}//糞ゲーだからやめるらしい
  return EXIT_SUCCESS;
}