U0 DrawIt(CTask *task, CDC *dc) { } U0 AnimateTask(I64) { while (TRUE) { Sleep(10); } } U0 Init() { } U0 CleanUp() { } U0 SongTask(I64) { Fs->task_end_cb = &SoundTaskEndCB; MusicSettingsReset; while (TRUE) { Play("4AB5C"); } } U0 MyGame() { I64 sc; SettingsPush; //See SettingsPush Fs->text_attr = YELLOW << 4 + BLUE; Fs->song_task = Spawn(&SongTask, NULL, "Song",, Fs); AutoComplete; WinBorder; WinMax; DocCursor; DocClear; MenuPush( "File {" " Abort(,CH_SHIFT_ESC);" " Exit(,CH_ESC);" "}" "Play {" " Restart(,'\n');" " Up(,,SC_CURSOR_UP);" " Down(,,SC_CURSOR_DOWN);" " Left(,,SC_CURSOR_LEFT);" " Right(,,SC_CURSOR_RIGHT);" "}" ); Init; Fs->animate_task = Spawn(&AnimateTask, NULL, "Animate",, Fs); Fs->draw_it = &DrawIt; try { while (TRUE) switch (KeyGet(&sc)) { case 0: switch (sc.u8[0]) { case SC_CURSOR_LEFT: break; case SC_CURSOR_RIGHT: break; case SC_CURSOR_UP: break; case SC_CURSOR_DOWN: break; } break; case '\n': CleanUp; Init; break; case CH_SHIFT_ESC: case CH_ESC: goto mg_done; } mg_done: //Don't goto out of try } catch PutExcept; SettingsPop; CleanUp; MenuPop; } MyGame;