home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2004 August / GSSH0804.iso / Rollenspiele / SwordOfFargoal / fargoal20030731b.exe / fargoal / src / credits.c < prev    next >
C/C++ Source or Header  |  2003-07-31  |  2KB  |  109 lines

  1. #include "main.h"
  2. #include "gfx.h"
  3. #include "credits.h"
  4.  
  5. static int credits_scrolling;
  6. static int credits_pos, credits_prev;
  7. static int credits_ticker;
  8. static const char *credits[] =
  9. {
  10.     "",
  11.     "Check out the 'Game Settings' menu to experience either Classic...",
  12.     "...or Enhanced play options for Sword of Fargoal!",
  13.     "Sword of Fargoal was created by Jeff McCord",
  14.     "released by Epyx in 1983",
  15.     "remade in cooperation of",
  16.     "SAKFU-Soft and Allefant-Games",
  17.     "remake created by",
  18.     "Paul Pridham and Elias Pschernig",
  19.     "additional artwork by",
  20.     "Dan MacDonald",
  21.     "Zooey Ball",
  22.     "thanks for playtesting",
  23.     "Angelo Mottola",
  24.     "Brigham Toskin",
  25.     "Johan Peitz",
  26.     "Lennart Steinke",
  27.     "SpawnPPC",
  28.     "from allegro.cc forums:",
  29.     "23yrold3yrold",
  30.     "Matthew Leverton",
  31.     "Peter Hull",
  32.     "Sirocco",
  33.     "from YakYak forums:",
  34.     "Andy H",
  35.     "Black",
  36.     "fflip",
  37.     "moobaa",
  38.     "mutopian",
  39.     "special thanks to",
  40.     "remakes.org",
  41.     "Jeff McCord (made a great game!)",
  42.     "Allegro developers (for providing a great lib!)",
  43.     "Allegro mailing lists contributors",
  44.     "Shawn Hargreaves (mandatory in all my credits lists)",
  45.     "",
  46.     NULL
  47. };
  48.  
  49. void
  50. credits_init (void)
  51. {
  52.     credits_prev = 0;
  53.     credits_pos = 0;
  54.     credits_scrolling = 0;
  55.     credits_ticker = FPS * 2;
  56. }
  57.  
  58. int
  59. credits_scroll (void)
  60. {
  61.     int update = credits_scrolling;
  62.     if (credits_scrolling)
  63.     {
  64.         credits_scrolling--;
  65.     }
  66.     else if (credits_ticker)
  67.     {
  68.         credits_ticker--;
  69.     }
  70.     else
  71.     {
  72.         credits_scrolling = FPS;
  73.         credits_ticker = FPS * 3;
  74.         credits_prev = credits_pos;
  75.         credits_pos++;
  76.         if (!credits[credits_pos])
  77.             credits_pos = 0;
  78.     }
  79.     return update;
  80. }
  81.  
  82. void
  83. credits_render (void)
  84. {
  85.     int x, y;
  86.     text_mode (-1);
  87.  
  88.     textprintf_centre (page, font,
  89.         SCREEN_W / 2, 40,
  90.         layout_color (LC_TITLE),
  91.         "The Sword of Fargoal!!");
  92.     
  93.     if (credits_scrolling)
  94.     {
  95.         double v = (1.0 - (double)credits_scrolling / (double)FPS);
  96.         y = text_height (font) * (sin (-v * AL_PI * 2) + v);
  97.         v -= sqrt ((0.5 - 0.25) / 4.0);
  98.         x = SCREEN_W * (0.25 + v * v * 4);
  99.         textprintf_centre (page, font, x, 60 + y, layout_color (LC_TITLE),
  100.             credits[credits_prev]);
  101.     }
  102.     
  103.     x = SCREEN_W / 2 + credits_scrolling * SCREEN_W / FPS;
  104.     textprintf_centre (page, font,
  105.         x, 60,
  106.         layout_color (LC_TITLE),
  107.         credits[credits_pos]);
  108. }
  109.