예제 #1
0
파일: scores.c 프로젝트: phao/tetris
int
init_scores(SDL_Renderer *g_rend_, const PixelDim2D *screen_dim_) {
  g_rend = g_rend_;
  screen_dim = *screen_dim_;

  TTF_Font *small_font = get_small_font();
  TTF_Font *large_font = get_large_font();

  COND_PGOTO_LT0(
    init_text_image(&exit_hint, small_font, "Hit ESC to go back.", g_rend,
      &DEFAULT_FG_COLOR),
    e_cleanup);
  exit_hint.pos.x = screen_dim.w - exit_hint.dim.w;
  exit_hint.pos.y = screen_dim.h - exit_hint.dim.h;

  COND_PGOTO_LT0(
    init_text_image(&title, large_font, "High Scores", g_rend,
      &DEFAULT_FG_COLOR),
    e_cleanup);
  title.pos.x = screen_dim.w/2 - title.dim.w/2;
  title.pos.y = LARGE_FONT_SIZE;

  const struct ScreenObject self = {
    .focus = focus,
    .render = render,
    .update = update,
    .handle_event = handle_event,
    .destroy = destroy
  };
  register_screen(SCORES_SCREEN, &self);

  return 0;

e_cleanup:
  destroy();
  return -1;
}
예제 #2
0
파일: menu.c 프로젝트: maxammann/rgb-lm
void register_menu_screens() {
    menu_screen_init();
    register_screen("menu", (screen_t) &menu_screen);
}