rnd-19981120-2
[rocksndiamonds.git] / src / screens.c
index 139c6d9ca3f8d89569df3d3d612d19ae6d71bebc..bd0f13a361649033b6166bffbbd64aa30a0fa230 100644 (file)
@@ -53,7 +53,7 @@ void DrawMainMenu()
   ClearWindow();
   DrawHeadline();
   DrawText(SX + 32,    SY + 2*32, name_text, FS_BIG, FC_GREEN);
-  DrawText(SX + 6*32,  SY + 2*32, setup.alias_name, FS_BIG, FC_RED);
+  DrawText(SX + 6*32,  SY + 2*32, setup.player_name, FS_BIG, FC_RED);
   DrawText(SX + 32,    SY + 3*32, "Level:", FS_BIG, FC_GREEN);
   DrawText(SX + 11*32, SY + 3*32, int2str(level_nr,3), FS_BIG,
           (level_nr<leveldir[leveldir_nr].levels ? FC_RED : FC_YELLOW));
@@ -192,7 +192,7 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button)
       if (y==3)
       {
        game_status = TYPENAME;
-       HandleTypeName(strlen(setup.alias_name),0);
+       HandleTypeName(strlen(setup.player_name), 0);
       }
       else if (y==4)
       {
@@ -577,6 +577,45 @@ void DrawHelpScreenCreditsText()
   ClearWindow();
   DrawHeadline();
 
+  sprintf(text,"Credits:");
+  DrawText(SX+(SXSIZE-strlen(text)*FONT2_XSIZE)/2,SY+100,
+          text,FS_SMALL,FC_GREEN);
+
+  sprintf(text,"DOS/Windows port of the game:");
+  DrawText(SX+(SXSIZE-strlen(text)*FONT2_XSIZE)/2,SY+ystart+0*ystep,
+          text,FS_SMALL,FC_YELLOW);
+  sprintf(text,"Guido Schulz");
+  DrawText(SX+(SXSIZE-strlen(text)*FONT2_XSIZE)/2,SY+ystart+1*ystep,
+          text,FS_SMALL,FC_RED);
+
+  sprintf(text,"Additional toons:");
+  DrawText(SX+(SXSIZE-strlen(text)*FONT2_XSIZE)/2,SY+ystart+2*ystep,
+          text,FS_SMALL,FC_YELLOW);
+  sprintf(text,"Karl Hörnell");
+  DrawText(SX+(SXSIZE-strlen(text)*FONT2_XSIZE)/2,SY+ystart+3*ystep,
+          text,FS_SMALL,FC_RED);
+
+  sprintf(text,"...and many thanks to all contributors");
+  DrawText(SX+(SXSIZE-strlen(text)*FONT2_XSIZE)/2,SY+ystart+5*ystep,
+          text,FS_SMALL,FC_YELLOW);
+  sprintf(text,"of new levels!");
+  DrawText(SX+(SXSIZE-strlen(text)*FONT2_XSIZE)/2,SY+ystart+6*ystep,
+          text,FS_SMALL,FC_YELLOW);
+
+  sprintf(text,"Press any key or button for next page");
+  DrawText(SX+(SXSIZE-strlen(text)*FONT2_XSIZE)/2,SY+SYSIZE-20,
+          text,FS_SMALL,FC_BLUE);
+}
+
+void DrawHelpScreenContactText()
+{
+  int ystart = 150, ystep = 30;
+  char text[FULL_SXSIZE/FONT2_XSIZE+10];
+
+  FadeSounds();
+  ClearWindow();
+  DrawHeadline();
+
   sprintf(text,"Program information:");
   DrawText(SX+(SXSIZE-strlen(text)*FONT2_XSIZE)/2,SY+100,
           text,FS_SMALL,FC_GREEN);
@@ -649,7 +688,7 @@ void HandleHelpScreen(int button)
 
   if (button_released)
   {
-    if (helpscreen_state<num_helpscreen_els_pages-1)
+    if (helpscreen_state < num_helpscreen_els_pages - 1)
     {
       for(i=0;i<MAX_HELPSCREEN_ELS;i++)
        helpscreen_step[i] = helpscreen_frame[i] = helpscreen_delay[i] = 0;
@@ -657,16 +696,21 @@ void HandleHelpScreen(int button)
       DrawHelpScreenElText(helpscreen_state*MAX_HELPSCREEN_ELS);
       DrawHelpScreenElAction(helpscreen_state*MAX_HELPSCREEN_ELS);
     }
-    else if (helpscreen_state<num_helpscreen_els_pages+num_bg_loops-1)
+    else if (helpscreen_state < num_helpscreen_els_pages + num_bg_loops - 1)
     {
       helpscreen_state++;
-      DrawHelpScreenMusicText(helpscreen_state-num_helpscreen_els_pages);
+      DrawHelpScreenMusicText(helpscreen_state - num_helpscreen_els_pages);
     }
-    else if (helpscreen_state==num_helpscreen_els_pages+num_bg_loops-1)
+    else if (helpscreen_state == num_helpscreen_els_pages + num_bg_loops - 1)
     {
       helpscreen_state++;
       DrawHelpScreenCreditsText();
     }
+    else if (helpscreen_state == num_helpscreen_els_pages + num_bg_loops)
+    {
+      helpscreen_state++;
+      DrawHelpScreenContactText();
+    }
     else
     {
       FadeSounds();
@@ -695,7 +739,7 @@ void HandleTypeName(int newxpos, KeySym key)
   if (newxpos)
   {
     xpos = newxpos;
-    DrawText(SX+6*32, SY+ypos*32, setup.alias_name, FS_BIG, FC_YELLOW);
+    DrawText(SX+6*32, SY+ypos*32, setup.player_name, FS_BIG, FC_YELLOW);
     DrawGraphic(xpos+6,ypos,GFX_KUGEL_ROT);
     return;
   }
@@ -712,25 +756,25 @@ void HandleTypeName(int newxpos, KeySym key)
   if((ascii = get_ascii(key)) && xpos<MAX_NAMELEN-1)
   {
 #endif
-    setup.alias_name[xpos] = ascii;
-    setup.alias_name[xpos+1] = 0;
+    setup.player_name[xpos] = ascii;
+    setup.player_name[xpos+1] = 0;
     xpos++;
     DrawTextExt(drawto,gc,SX+6*32,SY+ypos*32,
-               setup.alias_name,FS_BIG,FC_YELLOW);
+               setup.player_name,FS_BIG,FC_YELLOW);
     DrawTextExt(window,gc,SX+6*32,SY+ypos*32,
-               setup.alias_name,FS_BIG,FC_YELLOW);
+               setup.player_name,FS_BIG,FC_YELLOW);
     DrawGraphic(xpos+6,ypos,GFX_KUGEL_ROT);
   }
   else if ((key==XK_Delete || key==XK_BackSpace) && xpos>0)
   {
     xpos--;
-    setup.alias_name[xpos] = 0;
+    setup.player_name[xpos] = 0;
     DrawGraphic(xpos+6,ypos,GFX_KUGEL_ROT);
     DrawGraphic(xpos+7,ypos,GFX_LEERRAUM);
   }
   else if (key==XK_Return && xpos>0)
   {
-    DrawText(SX+6*32,SY+ypos*32,setup.alias_name,FS_BIG,FC_RED);
+    DrawText(SX+6*32,SY+ypos*32,setup.player_name,FS_BIG,FC_RED);
     DrawGraphic(xpos+6,ypos,GFX_LEERRAUM);
 
     SaveSetup();
@@ -1187,7 +1231,7 @@ static void setJoystickDeviceToNr(char *device_name, int device_nr)
       device_name[strlen(device_name) - 1] = '0' + (char)(device_nr % 10);
   }
   else
-    strcpy(device_name, joystick_device_name[device_nr]);
+    strncpy(device_name, joystick_device_name[device_nr], strlen(device_name));
 }
 
 static void drawPlayerSetupInputInfo(int player_nr)