[Tux4kids-commits] r1224 - tuxmath/branches/lan/src

akash gangil gangil-guest at alioth.debian.org
Fri Jul 17 19:53:36 UTC 2009


Author: gangil-guest
Date: 2009-07-17 19:53:28 +0000 (Fri, 17 Jul 2009)
New Revision: 1224

Modified:
   tuxmath/branches/lan/src/highscore.c
   tuxmath/branches/lan/src/highscore.h
   tuxmath/branches/lan/src/titlescreen.c
Log:
Committing standby functions for the lan game

Modified: tuxmath/branches/lan/src/highscore.c
===================================================================
--- tuxmath/branches/lan/src/highscore.c	2009-07-17 18:44:57 UTC (rev 1223)
+++ tuxmath/branches/lan/src/highscore.c	2009-07-17 19:53:28 UTC (rev 1224)
@@ -606,9 +606,282 @@
   strncpy((char*)pl_name, (char*)UTF8_buf, HIGH_SCORE_NAME_LENGTH * 3);
 }
 
+void Ready(const char* heading)
+{
+  SDL_Rect loc;
+  SDL_Rect TuxRect,
+           stopRect,
+             okRect;
 
+  int finished = 0;
+  int tux_frame = 0;
+  Uint32 frame = 0;
+  Uint32 start = 0;
+  sprite* Tux = LoadSprite("tux/bigtux", IMG_ALPHA);
 
 
+  /* We need to get Unicode vals from SDL keysyms */
+  SDL_EnableUNICODE(SDL_ENABLE);
+
+
+
+  /* Draw background: */
+  if (current_bkg())
+    SDL_BlitSurface(current_bkg(), NULL, screen, NULL);
+ 
+  /* Red "Stop" circle in upper right corner to go back to main menu: */
+  if (images[IMG_STOP])
+  {
+    stopRect.w = images[IMG_STOP]->w;
+    stopRect.h = images[IMG_STOP]->h;
+    stopRect.x = screen->w - images[IMG_STOP]->w;
+    stopRect.y = 0;
+    SDL_BlitSurface(images[IMG_STOP], NULL, screen, &stopRect);
+  }
+
+ if (images[IMG_RIGHT])
+  {
+    okRect.w = (images[IMG_RIGHT]->w)*2;
+    okRect.h = (images[IMG_RIGHT]->h)*2;
+    okRect.x = (screen->w)/2;
+    okRect.y = 240;
+    SDL_BlitSurface(images[IMG_RIGHT], NULL, screen, &okRect);
+  }
+
+
+  if (Tux && Tux->frame[0]) /* make sure sprite has at least one frame */
+  {
+    TuxRect.w = Tux->frame[0]->w;
+    TuxRect.h = Tux->frame[0]->h;
+    TuxRect.x = 0;
+    TuxRect.y = screen->h - Tux->frame[0]->h;
+  }
+
+
+  /* Draw heading: */
+  {
+    SDL_Surface* s = BlackOutline(_(heading),
+                                  DEFAULT_MENU_FONT_SIZE, &white);
+    if (s)
+    {
+      loc.x = (screen->w/2) - (s->w/2);
+      loc.y = 110;
+      SDL_BlitSurface(s, NULL, screen, &loc);
+      SDL_FreeSurface(s);
+    }
+
+  }
+
+  /* and update: */
+  SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+
+
+  while (!finished)
+  {
+    start = SDL_GetTicks();
+
+    while (SDL_PollEvent(&event)) 
+    {
+      switch (event.type)
+      {
+        case SDL_QUIT:
+        {
+          cleanup();
+        }
+
+        case SDL_MOUSEBUTTONDOWN:
+        /* "Stop" button - go to main menu: */
+        { 
+          if (inRect(stopRect, event.button.x, event.button.y ))
+          {
+            finished = 1;
+            playsound(SND_TOCK);
+            break;
+          }
+
+          if (inRect(okRect, event.button.x, event.button.y ))
+          {
+            finished = 1;
+            playsound(SND_TOCK);
+            break;
+          }
+          
+        }
+      }
+    }
+ 
+    /* --- make tux blink --- */
+    switch (frame % TUX6)
+    {
+      case 0:    tux_frame = 1; break;
+      case TUX1: tux_frame = 2; break;
+      case TUX2: tux_frame = 3; break;
+      case TUX3: tux_frame = 4; break;                        
+      case TUX4: tux_frame = 3; break;
+      case TUX5: tux_frame = 2; break;
+      default: tux_frame = 0;
+    }
+
+    if (Tux && tux_frame)
+    {
+      SDL_BlitSurface(Tux->frame[tux_frame - 1], NULL, screen, &TuxRect);
+      SDL_UpdateRect(screen, TuxRect.x, TuxRect.y, TuxRect.w, TuxRect.h);
+    }
+
+    /* Wait so we keep frame rate constant: */
+    while ((SDL_GetTicks() - start) < 33)
+    {
+      SDL_Delay(20);
+    }
+    frame++;
+  }  // End of while (!finished) loop
+
+  FreeSprite(Tux);
+
+  /* Turn off SDL Unicode lookup (because has some overhead): */
+  SDL_EnableUNICODE(SDL_DISABLE);
+
+}
+
+
+void Standby(const char* heading, const char* sub)
+{
+  
+  SDL_Rect loc;
+  SDL_Rect TuxRect,
+           stopRect;
+
+  int finished = 0;
+  int tux_frame = 0;
+  Uint32 frame = 0;
+  Uint32 start = 0;
+  const int BG_Y = 100;
+  const int BG_WIDTH = 400;
+  const int BG_HEIGHT = 200;
+
+  sprite* Tux = LoadSprite("tux/bigtux", IMG_ALPHA);
+
+
+  /* We need to get Unicode vals from SDL keysyms */
+  SDL_EnableUNICODE(SDL_ENABLE);
+
+#ifdef TUXMATH_DEBUG
+  fprintf(stderr, "\nEnter HighScoreNameEntry()\n" );
+#endif
+
+
+  /* Draw background: */
+  if (current_bkg())
+    SDL_BlitSurface(current_bkg(), NULL, screen, NULL);
+
+  /* Red "Stop" circle in upper right corner to go back to main menu: */
+  if (images[IMG_STOP])
+  {
+    stopRect.w = images[IMG_STOP]->w;
+    stopRect.h = images[IMG_STOP]->h;
+    stopRect.x = screen->w - images[IMG_STOP]->w;
+    stopRect.y = 0;
+    SDL_BlitSurface(images[IMG_STOP], NULL, screen, &stopRect);
+  }
+
+  if (Tux && Tux->frame[0]) /* make sure sprite has at least one frame */
+  {
+    TuxRect.w = Tux->frame[0]->w;
+    TuxRect.h = Tux->frame[0]->h;
+    TuxRect.x = 0;
+    TuxRect.y = screen->h - Tux->frame[0]->h;
+  }
+
+  /* Draw heading: */
+  {
+    SDL_Surface* s = BlackOutline(_(heading),
+                                  DEFAULT_MENU_FONT_SIZE, &white);
+    if (s)
+    {
+      loc.x = (screen->w/2) - (s->w/2);
+      loc.y = 110;
+      SDL_BlitSurface(s, NULL, screen, &loc);
+      SDL_FreeSurface(s);
+    }
+
+    s = BlackOutline(_(sub),
+                     DEFAULT_MENU_FONT_SIZE, &white);
+    if (s)
+    {
+      loc.x = (screen->w/2) - (s->w/2);
+      loc.y = 140;
+      SDL_BlitSurface(s, NULL, screen, &loc);
+      SDL_FreeSurface(s);
+    }
+  }
+
+  /* and update: */
+  SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+
+
+  while (!finished)
+  {
+    start = SDL_GetTicks();
+
+    while (SDL_PollEvent(&event)) 
+    {
+      switch (event.type)
+      {
+        case SDL_QUIT:
+        {
+          cleanup();
+        }
+
+        case SDL_MOUSEBUTTONDOWN:
+        /* "Stop" button - go to main menu: */
+        { 
+          if (inRect(stopRect, event.button.x, event.button.y ))
+          {
+            finished = 1;
+            playsound(SND_TOCK);
+            break;
+          }
+        }
+      }
+    }
+ 
+    /* --- make tux blink --- */
+    switch (frame % TUX6)
+    {
+      case 0:    tux_frame = 1; break;
+      case TUX1: tux_frame = 2; break;
+      case TUX2: tux_frame = 3; break;
+      case TUX3: tux_frame = 4; break;                        
+      case TUX4: tux_frame = 3; break;
+      case TUX5: tux_frame = 2; break;
+      default: tux_frame = 0;
+    }
+
+    if (Tux && tux_frame)
+    {
+      SDL_BlitSurface(Tux->frame[tux_frame - 1], NULL, screen, &TuxRect);
+      SDL_UpdateRect(screen, TuxRect.x, TuxRect.y, TuxRect.w, TuxRect.h);
+    }
+
+    /* Wait so we keep frame rate constant: */
+    while ((SDL_GetTicks() - start) < 33)
+    {
+      SDL_Delay(20);
+    }
+    frame++;
+  }  // End of while (!finished) loop
+
+  FreeSprite(Tux);
+
+  /* Turn off SDL Unicode lookup (because has some overhead): */
+  SDL_EnableUNICODE(SDL_DISABLE);
+
+}
+
+
+
 /* Zero-out the array before use: */
 void initialize_scores(void)
 {

Modified: tuxmath/branches/lan/src/highscore.h
===================================================================
--- tuxmath/branches/lan/src/highscore.h	2009-07-17 18:44:57 UTC (rev 1223)
+++ tuxmath/branches/lan/src/highscore.h	2009-07-17 19:53:28 UTC (rev 1224)
@@ -20,6 +20,8 @@
 void DisplayHighScores(int level);
 void HighScoreNameEntry(char* pl_name);
 void NameEntry(char* pl_name, const char* heading, const char* sub);
+void Standby(const char* heading, const char* sub);
+void Ready(const char* heading);
 
 int check_score_place(int diff_level, int new_score);
 int insert_score(char* playername, int diff_level, int new_score);

Modified: tuxmath/branches/lan/src/titlescreen.c
===================================================================
--- tuxmath/branches/lan/src/titlescreen.c	2009-07-17 18:44:57 UTC (rev 1223)
+++ tuxmath/branches/lan/src/titlescreen.c	2009-07-17 19:53:28 UTC (rev 1224)
@@ -48,7 +48,7 @@
 SDL_Rect dstupdate[MAX_UPDATES];
 int numupdates = 0; // tracks how many blits to be done
 char host[1024]="NULL";
-char port[1024];
+char player_name[1024];
 
 // Colors we use:
 SDL_Color black;
@@ -884,13 +884,13 @@
     if (mode == 2 || mode == -1)
       break;
 
-    if(mode == 0)                     //chooses Host
-    run_server_menu();
+//    if(mode == 0)                     //chooses Host
+//    run_server_menu();
     
     if(mode == 1)
-    { NameEntry(host, _("Enter the name"),
+    { NameEntry(host, _("Enter the name or ip address"),
                        _("(of the Host)"));
-     NameEntry(port, _("Enter you name"),
+     NameEntry(player_name, _("Enter you name"),
                        _(""));
 
 
@@ -900,10 +900,9 @@
      LAN_Cleanup();
      return 0;
    }    
-
-   LAN_SetName(port);
-
-
+   LAN_SetName(player_name);
+   Ready(_("Click OK when Ready"));
+   Standby(_("Waiting For Other Players"),_("To Connect"));
    game();
    }   
 
@@ -913,51 +912,51 @@
 
 }
 
+/*Dont think we need this..*/
+//int run_server_menu(void)
+//{
 
-int run_server_menu(void)
-{
-
-  int difficulty = -1;
+//  int difficulty = -1;
  //  n=1;
-   int g;
+//   int g;
   //just leech settings from arcade modes
-  const char* diff_menu_text[NUM_MATH_COMMAND_LEVELS + 1] =
-    {N_("Space Cadet"),
-     N_("Scout"),
-     N_("Ranger"),
-     N_("Ace"),      
-     N_("Commando"),
-     N_("Main menu")};
+//  const char* diff_menu_text[NUM_MATH_COMMAND_LEVELS + 1] =
+//    {N_("Space Cadet"),
+//     N_("Scout"),
+//     N_("Ranger"),
+//     N_("Ace"),      
+//     N_("Commando"),
+//     N_("Main menu")};
  
   
 
-   sprite* diffsprites[6] = {NULL, NULL, NULL, NULL, NULL, NULL};
+//   sprite* diffsprites[6] = {NULL, NULL, NULL, NULL, NULL, NULL};
   
  
-  diffsprites[0] = sprite_list[SPRITE_CADET];
-  diffsprites[1] = sprite_list[SPRITE_SCOUT];
-  diffsprites[2] = sprite_list[SPRITE_RANGER];
-  diffsprites[3] = sprite_list[SPRITE_ACE];
-  diffsprites[4] = sprite_list[SPRITE_COMMANDO];
-  diffsprites[5] = sprite_list[SPRITE_MAIN];
+//  diffsprites[0] = sprite_list[SPRITE_CADET];
+//  diffsprites[1] = sprite_list[SPRITE_SCOUT];
+//  diffsprites[2] = sprite_list[SPRITE_RANGER];
+//  diffsprites[3] = sprite_list[SPRITE_ACE];
+//  diffsprites[4] = sprite_list[SPRITE_COMMANDO];
+//  diffsprites[5] = sprite_list[SPRITE_MAIN];
 
-     while (1)
-  {
+//     while (1)
+//  {
     //choose difficulty
-    difficulty = choose_menu_item(diff_menu_text,diffsprites,6,NULL,NULL);
-     if (difficulty == -1 || difficulty >= NUM_MATH_COMMAND_LEVELS)
-     { break;} //user chose main menu or hit escape
-     else
-     {NameEntry(port, _("Enter the PORT"),
-                       _(""));
+//    difficulty = choose_menu_item(diff_menu_text,diffsprites,6,NULL,NULL);
+//     if (difficulty == -1 || difficulty >= NUM_MATH_COMMAND_LEVELS)
+//     { break;} //user chose main menu or hit escape
+//     else
+//     {NameEntry(port, _("Enter the PORT"),
+//                       _(""));
     
-       game();}
-    break;
-   }
-   return 0;
+//       game();}
+//    break;
+//   }
+//   return 0;
 
 
-}
+//}
 
 
 




More information about the Tux4kids-commits mailing list