home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Games / Abalone 1.4.2 / src / Game.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-09-21  |  1.1 KB  |  89 lines  |  [TEXT/MPS ]

  1. #define GAME_C
  2. #include "Game.h"
  3. #undef GAME_C
  4.  
  5.  
  6. #if defined(__MWERKS__)
  7. #pragma segment __%Main
  8. #else
  9. #pragma segment Main
  10. #endif
  11.  
  12.  
  13. Game    gTheGame;    //     ... And there shall be only one game...
  14.  
  15.  
  16. void
  17. InitGame (void)
  18. {
  19.     gTheGame.Players = gSet.Players;
  20.     
  21.     InitBoard();
  22.     
  23.     gTheGame.Board = CurrentBoard();
  24.     gTheGame.CurrentPlayer = blak;
  25.     gTheGame.CurrentMove = 1;
  26.     gFileSaved = true;
  27. }
  28.  
  29.  
  30.  
  31. unsigned char    
  32. CurrentPlayer (void)
  33. {
  34.     return gTheGame.CurrentPlayer;
  35. }
  36.  
  37.  
  38.  
  39. void
  40. OpenGame (void)
  41. {    
  42.     InitGame();
  43.     
  44.     OpenGameFile (& gTheGame);
  45.  
  46.     if (gSet.Players != gTheGame.Players)
  47.     {
  48.         gSet.Players = gTheGame.Players;
  49.         Inval3D();        // The number of players has changed.
  50.     }
  51. }
  52.  
  53.  
  54.  
  55. OSErr
  56. OpenGameSpec (FSSpec * specification)
  57. {
  58.     OSErr error;
  59.     
  60.     InitGame();
  61.  
  62.     if ((error = ReadGameFile (specification, & gTheGame)) != noErr)
  63.         return error;
  64.  
  65.     if (gSet.Players != gTheGame.Players)
  66.     {
  67.         gSet.Players = gTheGame.Players;
  68.         Inval3D();        // The number of players has changed.
  69.     }
  70.  
  71.     return noErr;
  72. }
  73.  
  74.  
  75.  
  76. void
  77. SaveGame (void)
  78. {
  79.     gFileSaved = SaveGameFile (& gTheGame) == noErr;
  80. }
  81.  
  82.  
  83.  
  84. void
  85. SaveGameAs (void)
  86. {
  87.     gFileSaved = SaveAsGameFile (& gTheGame) == noErr;
  88. }
  89.