rnd-19981017-1
authorHolger Schemel <info@artsoft.org>
Sat, 17 Oct 1998 10:26:59 +0000 (12:26 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:31:12 +0000 (10:31 +0200)
25 files changed:
src/buttons.c
src/cartoons.c
src/editor.c
src/events.c
src/files.c
src/files.h
src/game.c
src/game.h
src/init.c
src/joystick.c
src/main.c
src/main.h
src/misc.c
src/misc.h
src/msdos.c
src/netserv.c
src/network.c
src/network.h
src/screens.c
src/sound.c
src/sound.h
src/tape.c
src/tape.h
src/tools.c
src/tools.h

index d80dd860590c531d021170b4398ff4f9711d95f1..de63c630fe8f7cc15bc48cf848763487a0dbc7af 100644 (file)
@@ -535,7 +535,7 @@ int CheckVideoButtons(int mx, int my, int button)
 {
   int return_code = 0;
   static int choice = -1;
-  static BOOL pressed = FALSE;
+  static boolean pressed = FALSE;
   static int video_button[5] =
   {
     VIDEO_PRESS_EJECT_ON,
@@ -595,12 +595,12 @@ int CheckSoundButtons(int mx, int my, int button)
 {
   int return_code = 0;
   static int choice = -1;
-  static BOOL pressed = FALSE;
+  static boolean pressed = FALSE;
   int sound_state[3];
 
-  sound_state[0] = BUTTON_SOUND_MUSIC  | (BUTTON_ON * sound_music_on);
-  sound_state[1] = BUTTON_SOUND_LOOPS  | (BUTTON_ON * sound_loops_on);
-  sound_state[2] = BUTTON_SOUND_SIMPLE | (BUTTON_ON * sound_simple_on);
+  sound_state[0] = BUTTON_SOUND_MUSIC  | (BUTTON_ON * setup.sound_music_on);
+  sound_state[1] = BUTTON_SOUND_LOOPS  | (BUTTON_ON * setup.sound_loops_on);
+  sound_state[2] = BUTTON_SOUND_SIMPLE | (BUTTON_ON * setup.sound_simple_on);
 
   if (button)
   {
@@ -652,7 +652,7 @@ int CheckGameButtons(int mx, int my, int button)
 {
   int return_code = 0;
   static int choice = -1;
-  static BOOL pressed = FALSE;
+  static boolean pressed = FALSE;
   int game_state[3] =
   {
     BUTTON_GAME_STOP,
@@ -710,7 +710,7 @@ int CheckYesNoButtons(int mx, int my, int button)
 {
   int return_code = 0;
   static int choice = -1;
-  static BOOL pressed = FALSE;
+  static boolean pressed = FALSE;
   static int yesno_button[5] =
   {
     BUTTON_OK,
@@ -767,7 +767,7 @@ int CheckConfirmButton(int mx, int my, int button)
 {
   int return_code = 0;
   static int choice = -1;
-  static BOOL pressed = FALSE;
+  static boolean pressed = FALSE;
 
   if (button)
   {
@@ -818,7 +818,7 @@ int CheckPlayerButtons(int mx, int my, int button)
 {
   int return_code = 0;
   static int choice = -1;
-  static BOOL pressed = FALSE;
+  static boolean pressed = FALSE;
   int player_state[4] =
   {
     BUTTON_PLAYER_1,
@@ -879,7 +879,7 @@ int CheckEditButtons(int mx, int my, int button)
 {
   int return_code = 0;
   static int choice = -1;
-  static BOOL pressed = FALSE;
+  static boolean pressed = FALSE;
   static int edit_button[6] =
   {
     ED_BUTTON_CTRL,
@@ -949,7 +949,7 @@ int CheckCtrlButtons(int mx, int my, int button)
 {
   int return_code = 0;
   static int choice = -1;
-  static BOOL pressed = FALSE;
+  static boolean pressed = FALSE;
   static int ctrl_button[4] =
   {
     ED_BUTTON_EDIT,
@@ -1008,7 +1008,7 @@ int CheckElemButtons(int mx, int my, int button)
 {
   int return_code = -1;
   static int choice = -1;
-  static BOOL pressed = FALSE;
+  static boolean pressed = FALSE;
 
   if (button)
   {
@@ -1069,7 +1069,7 @@ int CheckCountButtons(int mx, int my, int button)
 {
   int return_code = -1;
   static int choice = -1;
-  static BOOL pressed = FALSE;
+  static boolean pressed = FALSE;
 
   if (button)
   {
index 9eef8e1e075a148b4aae99c6889af6ba0a09c61b..6b145d6d253097237e234b38723eb9718234704a 100644 (file)
@@ -17,7 +17,7 @@
 #include "tools.h"
 
 static void HandleAnimation(int);
-static BOOL AnimateToon(int, BOOL);
+static boolean AnimateToon(int, boolean);
 static void DrawAnim(Pixmap, GC, int, int, int, int, int, int, int, int);
 
 struct AnimInfo
@@ -27,7 +27,7 @@ struct AnimInfo
   int frames;
   int frames_per_second;
   int stepsize;
-  BOOL pingpong;
+  boolean pingpong;
   int direction;
   int position;
 };
@@ -109,12 +109,12 @@ void HandleAnimation(int mode)
 {
   static long animstart_delay = -1;
   static long animstart_delay_value = 0;
-  static BOOL anim_restart = TRUE;
-  static BOOL reset_delay = TRUE;
+  static boolean anim_restart = TRUE;
+  static boolean reset_delay = TRUE;
   static int toon_nr = 0;
   int draw_mode;
 
-  if (!toons_on)
+  if (!setup.toons_on)
     return;
 
   switch(mode)
@@ -124,7 +124,7 @@ void HandleAnimation(int mode)
       reset_delay = TRUE;
 
       /* Fill empty backbuffer for animation functions */
-      if (direct_draw_on && game_status == PLAYING)
+      if (setup.direct_draw_on && game_status == PLAYING)
       {
        int xx,yy;
 
@@ -138,7 +138,7 @@ void HandleAnimation(int mode)
        SetDrawtoField(DRAW_DIRECT);
       }
 
-      if (soft_scrolling_on && game_status == PLAYING)
+      if (setup.soft_scrolling_on && game_status == PLAYING)
       {
        int fx = FX, fy = FY;
 
@@ -158,12 +158,12 @@ void HandleAnimation(int mode)
       redraw_mask |= (REDRAW_FIELD | REDRAW_FROM_BACKBUFFER);
 
       /* Redraw background even when in direct drawing mode */
-      draw_mode = direct_draw_on;
-      direct_draw_on = FALSE;
+      draw_mode = setup.direct_draw_on;
+      setup.direct_draw_on = FALSE;
 
       BackToFront();
 
-      direct_draw_on = draw_mode;
+      setup.direct_draw_on = draw_mode;
 
       return;
       break;
@@ -189,12 +189,12 @@ void HandleAnimation(int mode)
   anim_restart = reset_delay = AnimateToon(toon_nr,anim_restart);
 }
 
-BOOL AnimateToon(int toon_nr, BOOL restart)
+boolean AnimateToon(int toon_nr, boolean restart)
 {
   static pos_x = 0, pos_y = 0;
   static delta_x = 0, delta_y = 0;
   static int frame = 0, frame_step = 1;
-  static BOOL horiz_move, vert_move;
+  static boolean horiz_move, vert_move;
   static long anim_delay = 0;
   static int anim_delay_value = 0;
   static int width,height;
index 6ec17e91ef08e8cfd5ebbc684f8c601686cf8b1c..c17a4967ef27f6ecf69085bb0069b482169447ff 100644 (file)
@@ -21,8 +21,8 @@
 #define CHOICE_DELAY_VALUE     100
 
 static int level_xpos,level_ypos;
-static BOOL edit_mode;
-static BOOL name_typing;
+static boolean edit_mode;
+static boolean name_typing;
 static int new_element1 = EL_MAUERWERK;
 static int new_element2 = EL_LEERRAUM;
 static int new_element3 = EL_ERDREICH;
@@ -638,7 +638,7 @@ void LevelEd(int mx, int my, int button)
 {
   static int last_button = 0;
   static int in_field_pressed = FALSE;
-  static BOOL use_floodfill = FALSE;
+  static boolean use_floodfill = FALSE;
   int x = (mx-SX)/MINI_TILEX; 
   int y = (my-SY)/MINI_TILEY; 
 
index 088650b17f2242a38244c4ccd944c74ebd6f46d3..d4ec480279066e2a8759ed0b82c1fd23d8cf8de3 100644 (file)
@@ -136,7 +136,7 @@ void ClearEventQueue()
 
 void SleepWhileUnmapped()
 {
-  BOOL window_unmapped = TRUE;
+  boolean window_unmapped = TRUE;
 
   XAutoRepeatOn(display);
 
@@ -177,7 +177,7 @@ void HandleExposeEvent(XExposeEvent *event)
   int x = event->x, y = event->y;
   int width = event->width, height = event->height;
 
-  if (direct_draw_on && game_status==PLAYING)
+  if (setup.direct_draw_on && game_status==PLAYING)
   {
     int xx,yy;
     int x1 = (x-SX)/TILEX, y1 = (y-SY)/TILEY;
@@ -194,7 +194,7 @@ void HandleExposeEvent(XExposeEvent *event)
     SetDrawtoField(DRAW_DIRECT);
   }
 
-  if (soft_scrolling_on && game_status == PLAYING)
+  if (setup.soft_scrolling_on && game_status == PLAYING)
   {
     int fx = FX, fy = FY;
 
@@ -672,7 +672,7 @@ void HandleKey(KeySym key, int key_status)
          }
          */
 
-         printf("direct_draw_on == %d\n", direct_draw_on);
+         printf("direct_draw_on == %d\n", setup.direct_draw_on);
 
          break;
 
@@ -726,7 +726,7 @@ void HandleNoXEvent()
     return;
   }
 
-  if (network)
+  if (options.network)
     HandleNetworking();
 
   switch(game_status)
index 5a290699a648c1eef340b5448081d91da48d90ce..e1a4b80c42c4720fa256b2bffacbf186c29d4a9e 100644 (file)
@@ -17,7 +17,7 @@
 #include "tape.h"
 #include "joystick.h"
 
-BOOL CreateNewScoreFile()
+boolean CreateNewScoreFile()
 {
   int i,j,k;
   char filename[MAX_FILENAME_LEN];
@@ -51,7 +51,7 @@ BOOL CreateNewScoreFile()
   return(TRUE);
 }
 
-BOOL CreateNewNamesFile(int mode)
+boolean CreateNewNamesFile(int mode)
 {
   char filename[MAX_FILENAME_LEN];
   FILE *file;
@@ -72,7 +72,7 @@ BOOL CreateNewNamesFile(int mode)
   return(TRUE);
 }
 
-BOOL LoadLevelInfo()
+boolean LoadLevelInfo()
 {
   int i;
   char filename[MAX_FILENAME_LEN];
@@ -214,7 +214,7 @@ void LoadLevelTape(int level_nr)
   char filename[MAX_FILENAME_LEN];
   char cookie[MAX_FILENAME_LEN];
   FILE *file;
-  BOOL levelrec_10 = FALSE;
+  boolean levelrec_10 = FALSE;
 
 #ifndef MSDOS
   sprintf(filename,"%s/%s/%d.tape",
@@ -519,7 +519,7 @@ void SaveLevelTape(int level_nr)
   int i;
   char filename[MAX_FILENAME_LEN];
   FILE *file;
-  BOOL new_tape = TRUE;
+  boolean new_tape = TRUE;
 
 #ifndef MSDOS
   sprintf(filename,"%s/%s/%d.tape",
index c0050d3615d0e65eb340c3f31fc6504b8981de04..051072539f1586f201763cdcc539559d7b2fbce2 100644 (file)
@@ -51,9 +51,9 @@
 #define SETUP_SCROLL_DELAY_ON(x)       (((x) & SETUP_SCROLL_DELAY) != 0)
 #define SETUP_SOFT_SCROLL_ON(x)                (((x) & SETUP_SOFT_SCROLL) != 0)
 
-BOOL CreateNewScoreFile(void);
-BOOL CreateNewNamesFile(int);
-BOOL LoadLevelInfo(void);
+boolean CreateNewScoreFile(void);
+boolean CreateNewNamesFile(int);
+boolean LoadLevelInfo(void);
 void LoadLevel(int);
 void LoadLevelTape(int);
 void LoadScore(int);
index 7e678bfbd4f063ea04e37486abb4c7143f408f2d..4851f4aa7745267c5226d1012c325fba70dcac4f 100644 (file)
@@ -25,7 +25,7 @@
 
 void GetPlayerConfig()
 {
-  int old_joystick_nr = joystick_nr;
+  int old_joystick_nr = setup.joystick_nr;
 
   if (sound_status==SOUND_OFF)
     local_player->setup &= ~SETUP_SOUND;
@@ -35,20 +35,20 @@ void GetPlayerConfig()
     local_player->setup &= ~SETUP_SOUND_MUSIC;
   }
 
-  sound_on = sound_simple_on = SETUP_SOUND_ON(local_player->setup);
-  sound_loops_on = SETUP_SOUND_LOOPS_ON(local_player->setup);
-  sound_music_on = SETUP_SOUND_MUSIC_ON(local_player->setup);
-  toons_on = SETUP_TOONS_ON(local_player->setup);
-  direct_draw_on = SETUP_DIRECT_DRAW_ON(local_player->setup);
-  fading_on = SETUP_FADING_ON(local_player->setup);
-  autorecord_on = SETUP_AUTO_RECORD_ON(local_player->setup);
-  joystick_nr = SETUP_2ND_JOYSTICK_ON(local_player->setup);
-  quick_doors = SETUP_QUICK_DOORS_ON(local_player->setup);
-  scroll_delay_on = SETUP_SCROLL_DELAY_ON(local_player->setup);
-  soft_scrolling_on = SETUP_SOFT_SCROLL_ON(local_player->setup);
+  setup.sound_on = setup.sound_simple_on = SETUP_SOUND_ON(local_player->setup);
+  setup.sound_loops_on = SETUP_SOUND_LOOPS_ON(local_player->setup);
+  setup.sound_music_on = SETUP_SOUND_MUSIC_ON(local_player->setup);
+  setup.toons_on = SETUP_TOONS_ON(local_player->setup);
+  setup.direct_draw_on = SETUP_DIRECT_DRAW_ON(local_player->setup);
+  setup.fading_on = SETUP_FADING_ON(local_player->setup);
+  setup.autorecord_on = SETUP_AUTO_RECORD_ON(local_player->setup);
+  setup.joystick_nr = SETUP_2ND_JOYSTICK_ON(local_player->setup);
+  setup.quick_doors = SETUP_QUICK_DOORS_ON(local_player->setup);
+  setup.scroll_delay_on = SETUP_SCROLL_DELAY_ON(local_player->setup);
+  setup.soft_scrolling_on = SETUP_SOFT_SCROLL_ON(local_player->setup);
 
 #ifndef MSDOS
-  if (joystick_nr != old_joystick_nr)
+  if (setup.joystick_nr != old_joystick_nr)
   {
     if (joystick_device)
       close(joystick_device);
@@ -60,11 +60,11 @@ void GetPlayerConfig()
 void InitGame()
 {
   int i,j, x,y;
-  BOOL emulate_bd = TRUE;      /* unless non-BOULDERDASH elements found */
-  BOOL emulate_sb = TRUE;      /* unless non-SOKOBAN     elements found */
+  boolean emulate_bd = TRUE;   /* unless non-BOULDERDASH elements found */
+  boolean emulate_sb = TRUE;   /* unless non-SOKOBAN     elements found */
 
   /* don't play tapes over network */
-  network_playing = (network && !tape.playing);
+  network_playing = (options.network && !tape.playing);
 
   for(i=0; i<MAX_PLAYERS; i++)
   {
@@ -376,9 +376,9 @@ void InitGame()
   DrawGameButton(BUTTON_GAME_STOP);
   DrawGameButton(BUTTON_GAME_PAUSE);
   DrawGameButton(BUTTON_GAME_PLAY);
-  DrawSoundDisplay(BUTTON_SOUND_MUSIC  | (BUTTON_ON * sound_music_on));
-  DrawSoundDisplay(BUTTON_SOUND_LOOPS  | (BUTTON_ON * sound_loops_on));
-  DrawSoundDisplay(BUTTON_SOUND_SIMPLE | (BUTTON_ON * sound_simple_on));
+  DrawSoundDisplay(BUTTON_SOUND_MUSIC  | (BUTTON_ON * setup.sound_music_on));
+  DrawSoundDisplay(BUTTON_SOUND_LOOPS  | (BUTTON_ON * setup.sound_loops_on));
+  DrawSoundDisplay(BUTTON_SOUND_SIMPLE | (BUTTON_ON * setup.sound_simple_on));
   XCopyArea(display,drawto,pix[PIX_DB_DOOR],gc,
            DX+GAME_CONTROL_XPOS,DY+GAME_CONTROL_YPOS,
            GAME_CONTROL_XSIZE,2*GAME_CONTROL_YSIZE,
@@ -387,7 +387,7 @@ void InitGame()
 
   OpenDoor(DOOR_OPEN_1);
 
-  if (sound_music_on)
+  if (setup.sound_music_on)
     PlaySoundLoop(background_loop[level_nr % num_bg_loops]);
 
   XAutoRepeatOff(display);
@@ -516,12 +516,12 @@ void GameWon()
 
   if (TimeLeft)
   {
-    if (sound_loops_on)
+    if (setup.sound_loops_on)
       PlaySoundExt(SND_SIRR, PSND_MAX_VOLUME, PSND_MAX_RIGHT, PSND_LOOP);
 
     while(TimeLeft > 0)
     {
-      if (!sound_loops_on)
+      if (!setup.sound_loops_on)
        PlaySoundStereo(SND_SIRR, PSND_MAX_RIGHT);
       if (TimeLeft && !(TimeLeft % 10))
        RaiseScore(level.score[SC_ZEITBONUS]);
@@ -534,7 +534,7 @@ void GameWon()
       Delay(10);
     }
 
-    if (sound_loops_on)
+    if (setup.sound_loops_on)
       StopSound(SND_SIRR);
   }
 
@@ -581,7 +581,7 @@ void GameWon()
   BackToFront();
 }
 
-BOOL NewHiScore()
+boolean NewHiScore()
 {
   int k,l;
   int position = -1;
@@ -1065,8 +1065,8 @@ void Blurb(int x, int y)
 
 void Impact(int x, int y)
 {
-  BOOL lastline = (y==lev_fieldy-1);
-  BOOL object_hit = FALSE;
+  boolean lastline = (y==lev_fieldy-1);
+  boolean object_hit = FALSE;
   int element = Feld[x][y];
   int smashed = 0;
 
@@ -1296,7 +1296,7 @@ void TurnRound(int x, int y)
   }
   else if (element==EL_MAMPFER)
   {
-    BOOL can_turn_left = FALSE, can_turn_right = FALSE;
+    boolean can_turn_left = FALSE, can_turn_right = FALSE;
 
     if (IN_LEV_FIELD(left_x,left_y) &&
        (IS_FREE_OR_PLAYER(left_x,left_y) ||
@@ -1320,7 +1320,7 @@ void TurnRound(int x, int y)
   }
   else if (element==EL_MAMPFER2)
   {
-    BOOL can_turn_left = FALSE, can_turn_right = FALSE;
+    boolean can_turn_left = FALSE, can_turn_right = FALSE;
 
     if (IN_LEV_FIELD(left_x,left_y) &&
        (IS_FREE_OR_PLAYER(left_x,left_y) ||
@@ -1344,7 +1344,7 @@ void TurnRound(int x, int y)
   }
   else if (element==EL_PACMAN)
   {
-    BOOL can_turn_left = FALSE, can_turn_right = FALSE;
+    boolean can_turn_left = FALSE, can_turn_right = FALSE;
 
     if (IN_LEV_FIELD(left_x,left_y) &&
        (IS_FREE_OR_PLAYER(left_x,left_y) ||
@@ -1368,9 +1368,9 @@ void TurnRound(int x, int y)
   }
   else if (element==EL_SCHWEIN)
   {
-    BOOL can_turn_left = FALSE, can_turn_right = FALSE, can_move_on = FALSE;
-    BOOL should_turn_left = FALSE, should_turn_right = FALSE;
-    BOOL should_move_on = FALSE;
+    boolean can_turn_left = FALSE, can_turn_right = FALSE, can_move_on = FALSE;
+    boolean should_turn_left = FALSE, should_turn_right = FALSE;
+    boolean should_move_on = FALSE;
     int rnd_value = 24;
     int rnd = RND(rnd_value);
 
@@ -1440,7 +1440,7 @@ void TurnRound(int x, int y)
   }
   else if (element==EL_DRACHE)
   {
-    BOOL can_turn_left = FALSE, can_turn_right = FALSE, can_move_on = FALSE;
+    boolean can_turn_left = FALSE, can_turn_right = FALSE, can_move_on = FALSE;
     int rnd_value = 24;
     int rnd = RND(rnd_value);
 
@@ -1559,7 +1559,7 @@ void TurnRound(int x, int y)
 
       if ((MovDir[x][y]&(MV_LEFT|MV_RIGHT)) && (MovDir[x][y]&(MV_UP|MV_DOWN)))
       {
-       BOOL first_horiz = RND(2);
+       boolean first_horiz = RND(2);
        int new_move_dir = MovDir[x][y];
 
        MovDir[x][y] =
@@ -1593,7 +1593,7 @@ void TurnRound(int x, int y)
   }
 }
 
-static BOOL JustBeingPushed(int x, int y)
+static boolean JustBeingPushed(int x, int y)
 {
   int i;
 
@@ -1738,10 +1738,10 @@ void StartMoving(int x, int y)
     }
     else if (IS_SLIPPERY(Feld[x][y+1]) && !Store[x][y+1])
     {
-      BOOL left  = (x>0 && IS_FREE(x-1,y) &&
-                   (IS_FREE(x-1,y+1) || Feld[x-1][y+1]==EL_SALZSAEURE));
-      BOOL right = (x<lev_fieldx-1 && IS_FREE(x+1,y) &&
-                   (IS_FREE(x+1,y+1) || Feld[x+1][y+1]==EL_SALZSAEURE));
+      boolean left  = (x>0 && IS_FREE(x-1,y) &&
+                      (IS_FREE(x-1,y+1) || Feld[x-1][y+1]==EL_SALZSAEURE));
+      boolean right = (x<lev_fieldx-1 && IS_FREE(x+1,y) &&
+                      (IS_FREE(x+1,y+1) || Feld[x+1][y+1]==EL_SALZSAEURE));
 
       if (left || right)
       {
@@ -1934,7 +1934,7 @@ void StartMoving(int x, int y)
       }
       else
       {
-       BOOL wanna_flame = !RND(10);
+       boolean wanna_flame = !RND(10);
        int dx = newx - x, dy = newy - y;
        int newx1 = newx+1*dx, newy1 = newy+1*dy;
        int newx2 = newx+2*dx, newy2 = newy+2*dy;
@@ -2238,7 +2238,7 @@ void AmoebeUmwandeln2(int ax, int ay, int new_element)
 {
   int x,y;
   int group_nr = AmoebaNr[ax][ay];
-  BOOL done = FALSE;
+  boolean done = FALSE;
 
   for(y=0;y<lev_fieldy;y++) for(x=0;x<lev_fieldx;x++)
   {
@@ -2341,7 +2341,7 @@ void AmoebeAbleger(int ax, int ay)
   else                         /* normale oder "gefüllte" Amöbe */
   {
     int start = RND(4);
-    BOOL waiting_for_player = FALSE;
+    boolean waiting_for_player = FALSE;
 
     for(i=0;i<4;i++)
     {
@@ -2631,7 +2631,7 @@ void EdelsteinFunkeln(int x, int y)
     {
       MovDelay[x][y]--;
 
-      if (direct_draw_on && MovDelay[x][y])
+      if (setup.direct_draw_on && MovDelay[x][y])
        SetDrawtoField(DRAW_BUFFERED);
 
       DrawGraphic(SCREENX(x),SCREENY(y), el2gfx(Feld[x][y]));
@@ -2645,7 +2645,7 @@ void EdelsteinFunkeln(int x, int y)
 
        DrawGraphicThruMask(SCREENX(x),SCREENY(y), GFX_FUNKELN_WEISS + phase);
 
-       if (direct_draw_on)
+       if (setup.direct_draw_on)
        {
          int dest_x,dest_y;
 
@@ -2715,10 +2715,10 @@ void MauerWaechst(int x, int y)
 void MauerAbleger(int ax, int ay)
 {
   int element = Feld[ax][ay];
-  BOOL oben_frei = FALSE, unten_frei = FALSE;
-  BOOL links_frei = FALSE, rechts_frei = FALSE;
-  BOOL oben_massiv = FALSE, unten_massiv = FALSE;
-  BOOL links_massiv = FALSE, rechts_massiv = FALSE;
+  boolean oben_frei = FALSE, unten_frei = FALSE;
+  boolean links_frei = FALSE, rechts_frei = FALSE;
+  boolean oben_massiv = FALSE, unten_massiv = FALSE;
+  boolean links_massiv = FALSE, rechts_massiv = FALSE;
 
   if (!MovDelay[ax][ay])       /* neue Mauer / noch nicht gewartet */
     MovDelay[ax][ay] = 6;
@@ -2802,7 +2802,7 @@ void MauerAbleger(int ax, int ay)
 void CheckForDragon(int x, int y)
 {
   int i,j;
-  BOOL dragon_found = FALSE;
+  boolean dragon_found = FALSE;
   static int xy[4][2] =
   {
     { 0,-1 },
@@ -2852,7 +2852,7 @@ void PlayerActions(struct PlayerInfo *player, byte player_action)
 {
   static byte stored_player_action[MAX_PLAYERS];
   static int num_stored_actions = 0;
-  BOOL moved = FALSE, snapped = FALSE, bombed = FALSE;
+  boolean moved = FALSE, snapped = FALSE, bombed = FALSE;
   int jx = player->jx, jy = player->jy;
   int left     = player_action & JOY_LEFT;
   int right    = player_action & JOY_RIGHT;
@@ -2999,7 +2999,7 @@ void GameActions(byte player_action)
   {
     /*
     int actual_player_action =
-      (network ? network_player_action[i] : player_action);
+      (options.network ? network_player_action[i] : player_action);
       */
 
     int actual_player_action =
@@ -3020,7 +3020,7 @@ void GameActions(byte player_action)
       actual_player_action = 0;
     */
 
-    if (!network && i != TestPlayer)
+    if (!options.network && i != TestPlayer)
       actual_player_action = 0;
 
     /* TEST TEST TEST */
@@ -3129,7 +3129,7 @@ void GameActions(byte player_action)
 
     if (SiebAktiv)
     {
-      BOOL sieb = FALSE;
+      boolean sieb = FALSE;
       int jx = local_player->jx, jy = local_player->jy;
 
       if (element==EL_SIEB_LEER || element==EL_SIEB_VOLL ||
@@ -3199,7 +3199,7 @@ void GameActions(byte player_action)
   DrawAllPlayers();
 }
 
-static BOOL AllPlayersInSight(struct PlayerInfo *player, int x, int y)
+static boolean AllPlayersInSight(struct PlayerInfo *player, int x, int y)
 {
   int min_x = x, min_y = y, max_x = x, max_y = y;
   int i;
@@ -3221,7 +3221,7 @@ static BOOL AllPlayersInSight(struct PlayerInfo *player, int x, int y)
   return(max_x - min_x < SCR_FIELDX && max_y - min_y < SCR_FIELDY);
 }
 
-static BOOL AllPlayersInVisibleScreen()
+static boolean AllPlayersInVisibleScreen()
 {
   int i;
 
@@ -3241,7 +3241,7 @@ static BOOL AllPlayersInVisibleScreen()
 
 void ScrollLevel(int dx, int dy)
 {
-  int softscroll_offset = (soft_scrolling_on ? TILEX : 0);
+  int softscroll_offset = (setup.soft_scrolling_on ? TILEX : 0);
   int x,y;
 
   /*
@@ -3272,8 +3272,8 @@ void ScrollLevel(int dx, int dy)
   redraw_mask |= REDRAW_FIELD;
 }
 
-BOOL MoveFigureOneStep(struct PlayerInfo *player,
-                      int dx, int dy, int real_dx, int real_dy)
+boolean MoveFigureOneStep(struct PlayerInfo *player,
+                         int dx, int dy, int real_dx, int real_dy)
 {
   int jx = player->jx, jy = player->jy;
   int new_jx = jx+dx, new_jy = jy+dy;
@@ -3291,7 +3291,7 @@ BOOL MoveFigureOneStep(struct PlayerInfo *player,
   if (!IN_LEV_FIELD(new_jx,new_jy))
     return(MF_NO_ACTION);
 
-  if (!network && !AllPlayersInSight(player, new_jx,new_jy))
+  if (!options.network && !AllPlayersInSight(player, new_jx,new_jy))
     return(MF_NO_ACTION);
 
   element = MovingOrBlocked2Element(new_jx,new_jy);
@@ -3331,7 +3331,7 @@ BOOL MoveFigureOneStep(struct PlayerInfo *player,
   return(MF_MOVING);
 }
 
-BOOL MoveFigure(struct PlayerInfo *player, int dx, int dy)
+boolean MoveFigure(struct PlayerInfo *player, int dx, int dy)
 {
   int jx = player->jx, jy = player->jy;
   int old_jx = jx, old_jy = jy;
@@ -3364,10 +3364,10 @@ BOOL MoveFigure(struct PlayerInfo *player, int dx, int dy)
   */
 
   if (moved & MF_MOVING && !ScreenMovPos &&
-      (player == local_player || !network))
+      (player == local_player || !options.network))
   {
     int old_scroll_x = scroll_x, old_scroll_y = scroll_y;
-    int offset = (scroll_delay_on ? 3 : 0);
+    int offset = (setup.scroll_delay_on ? 3 : 0);
 
     /*
     if (player == local_player)
@@ -3434,7 +3434,7 @@ BOOL MoveFigure(struct PlayerInfo *player, int dx, int dy)
 
     if (scroll_x != old_scroll_x || scroll_y != old_scroll_y)
     {
-      if (!network && !AllPlayersInVisibleScreen())
+      if (!options.network && !AllPlayersInVisibleScreen())
       {
        scroll_x = old_scroll_x;
        scroll_y = old_scroll_y;
@@ -4045,7 +4045,7 @@ int DigField(struct PlayerInfo *player,
   return(MF_MOVING);
 }
 
-BOOL SnapField(struct PlayerInfo *player, int dx, int dy)
+boolean SnapField(struct PlayerInfo *player, int dx, int dy)
 {
   int jx = player->jx, jy = player->jy;
   int x = jx + dx, y = jy + dy;
@@ -4080,7 +4080,7 @@ BOOL SnapField(struct PlayerInfo *player, int dx, int dy)
   return(TRUE);
 }
 
-BOOL PlaceBomb(struct PlayerInfo *player)
+boolean PlaceBomb(struct PlayerInfo *player)
 {
   int jx = player->jx, jy = player->jy;
   int element;
@@ -4126,8 +4126,8 @@ void PlaySoundLevel(int x, int y, int sound_nr)
   int volume, stereo;
   int silence_distance = 8;
 
-  if ((!sound_simple_on && !IS_LOOP_SOUND(sound_nr)) ||
-      (!sound_loops_on && IS_LOOP_SOUND(sound_nr)))
+  if ((!setup.sound_simple_on && !IS_LOOP_SOUND(sound_nr)) ||
+      (!setup.sound_loops_on && IS_LOOP_SOUND(sound_nr)))
     return;
 
   if (!IN_LEV_FIELD(x,y) ||
index 901254c2e471cf60648952c9b7066a6d46e63db4..c8684fe77fa7137ebbc18efaf50a33b44ddfef44 100644 (file)
@@ -42,7 +42,7 @@ void InitGame(void);
 void InitMovDir(int, int);
 void InitAmoebaNr(int, int);
 void GameWon(void);
-BOOL NewHiScore(void);
+boolean NewHiScore(void);
 void InitMovingField(int, int, int);
 void Moving2Blocked(int, int, int *, int *);
 void Blocked2Moving(int, int, int *, int *);
@@ -77,8 +77,8 @@ void MauerAbleger(int, int);
 void GameActions(byte);
 void ScrollLevel(int, int);
 
-BOOL MoveFigureOneStep(struct PlayerInfo *, int, int, int, int);
-BOOL MoveFigure(struct PlayerInfo *, int, int);
+boolean MoveFigureOneStep(struct PlayerInfo *, int, int, int, int);
+boolean MoveFigure(struct PlayerInfo *, int, int);
 void ScrollFigure(struct PlayerInfo *, int);
 void ScrollScreen(struct PlayerInfo *, int);
 
@@ -93,8 +93,8 @@ void KillHero(struct PlayerInfo *);
 void BuryHero(struct PlayerInfo *);
 void RemoveHero(struct PlayerInfo *);
 int DigField(struct PlayerInfo *, int, int, int, int, int);
-BOOL SnapField(struct PlayerInfo *, int, int);
-BOOL PlaceBomb(struct PlayerInfo *);
+boolean SnapField(struct PlayerInfo *, int, int);
+boolean PlaceBomb(struct PlayerInfo *);
 void PlaySoundLevel(int, int, int);
 void RaiseScore(int);
 void RaiseScoreElement(int);
index cbfab54b20dae6f0bb8a34c653630f0e075dd0b1..ce82c209eb9c6dbeeaa5490c1d8976831303d17f 100644 (file)
@@ -34,7 +34,7 @@
 struct PictureFileInfo
 {
   char *picture_filename;
-  BOOL picture_with_mask;
+  boolean picture_with_mask;
 };
 
 struct IconFileInfo
@@ -57,9 +57,9 @@ static void InitElementProperties(void);
 
 void OpenAll(int argc, char *argv[])
 {
-  if (serveronly)
+  if (options.serveronly)
   {
-    NetworkServer(server_port, serveronly);
+    NetworkServer(options.server_port, options.serveronly);
 
     /* never reached */
     exit(0);
@@ -94,6 +94,21 @@ void InitLevelAndPlayerInfo()
 {
   int i;
 
+  /* initialize local player's setup */
+  setup.sound_on = TRUE;
+  setup.sound_loops_on = FALSE;
+  setup.sound_music_on = FALSE;
+  setup.sound_simple_on = FALSE;
+  setup.toons_on = TRUE;
+  setup.direct_draw_on = FALSE;
+  setup.scroll_delay_on = FALSE;
+  setup.soft_scrolling_on = TRUE;
+  setup.fading_on = FALSE;
+  setup.autorecord_on = FALSE;
+  setup.quick_doors = FALSE;
+  setup.joystick_nr = 0;
+
+  /* choose default local player */
   local_player = &stored_player[0];
 
   if (!LoadLevelInfo())                        /* global level info */
@@ -102,6 +117,7 @@ void InitLevelAndPlayerInfo()
   LoadPlayerInfo(PLAYER_SETUP);                /* global setup info */
   LoadPlayerInfo(PLAYER_LEVEL);                /* level specific info */
 
+  /* after LoadPlayerInfo(), because it overwrites 'local_player' */
   for (i=0; i<MAX_PLAYERS; i++)
   {
     stored_player[i].connected = FALSE;
@@ -115,12 +131,12 @@ void InitNetworkServer()
 {
   int nr_wanted;
 
-  if (!network)
+  if (!options.network)
     return;
 
   nr_wanted = Request("Choose player", REQ_PLAYER | REQ_STAY_CLOSED);
 
-  if (!ConnectToServer(server_host, server_port))
+  if (!ConnectToServer(options.server_host, options.server_port))
     Error(ERR_EXIT, "cannot connect to multiplayer server");
 
   SendToServer_Nickname(local_player->alias_name);
@@ -157,11 +173,11 @@ void InitSound()
 
 #ifdef VOXWARE
   sound_loops_allowed = TRUE;
-  sound_loops_on = TRUE;
+  setup.sound_loops_on = TRUE;
 #endif
 #else
   sound_loops_allowed = TRUE;
-  sound_loops_on = TRUE;
+  setup.sound_loops_on = TRUE;
 #endif
 
   for(i=0; i<NUM_SOUNDS; i++)
@@ -218,18 +234,19 @@ void InitJoystick()
     return;
 
 #ifndef MSDOS
-  if (access(joystick_device_name[joystick_nr],R_OK)<0)
+  if (access(joystick_device_name[setup.joystick_nr], R_OK) < 0)
   {
     Error(ERR_RETURN, "cannot access joystick device '%s'",
-         joystick_device_name[joystick_nr]);
+         joystick_device_name[setup.joystick_nr]);
     joystick_status = JOYSTICK_OFF;
     return;
   }
 
-  if ((joystick_device = open(joystick_device_name[joystick_nr],O_RDONLY))<0)
+  if ((joystick_device =
+       open(joystick_device_name[setup.joystick_nr], O_RDONLY)) < 0)
   {
     Error(ERR_RETURN, "cannot open joystick device '%s'",
-         joystick_device_name[joystick_nr]);
+         joystick_device_name[setup.joystick_nr]);
     joystick_status = JOYSTICK_OFF;
     return;
   }
@@ -248,8 +265,9 @@ void InitDisplay()
   unsigned int depth;
 
   /* connect to X server */
-  if (!(display = XOpenDisplay(display_name)))
-    Error(ERR_EXIT,"cannot connect to X server %s",XDisplayName(display_name));
+  if (!(display = XOpenDisplay(options.display_name)))
+    Error(ERR_EXIT, "cannot connect to X server %s",
+         XDisplayName(options.display_name));
 
   screen = DefaultScreen(display);
   visual = DefaultVisual(display, screen);
index 86fabec7fa4fb753351e4fe6b41335a45461d4b1..3e2b3abd698f5eb2ce50cc36926d9055cd12bb05 100644 (file)
@@ -99,14 +99,14 @@ int Joystick()
   js_b2 = joy_ctrl.buttons & 2;
 #endif
 
-  left = JoystickPosition(joystick[joystick_nr].xmiddle,
-                         joystick[joystick_nr].xleft,  js_x);
-  right = JoystickPosition(joystick[joystick_nr].xmiddle,
-                          joystick[joystick_nr].xright, js_x);
-  up =    JoystickPosition(joystick[joystick_nr].ymiddle,
-                          joystick[joystick_nr].yupper, js_y);
-  down =  JoystickPosition(joystick[joystick_nr].ymiddle,
-                          joystick[joystick_nr].ylower, js_y);
+  left = JoystickPosition(joystick[setup.joystick_nr].xmiddle,
+                         joystick[setup.joystick_nr].xleft,  js_x);
+  right = JoystickPosition(joystick[setup.joystick_nr].xmiddle,
+                          joystick[setup.joystick_nr].xright, js_x);
+  up =    JoystickPosition(joystick[setup.joystick_nr].ymiddle,
+                          joystick[setup.joystick_nr].yupper, js_y);
+  down =  JoystickPosition(joystick[setup.joystick_nr].ymiddle,
+                          joystick[setup.joystick_nr].ylower, js_y);
 
   if (left>JOYSTICK_PERCENT)
     result |= JOY_LEFT;
index 49478464d427b114e7ebb2fb75218f0814988167..48fcc7c71a96109c0b1dd8bd66d68fd021871aba 100644 (file)
@@ -47,52 +47,37 @@ char               *level_directory = LEVEL_PATH;
 int            width, height;
 
 char          *program_name = NULL;
-char          *display_name = NULL;
-char          *server_host = NULL;
-int            server_port = 0;
-int            serveronly = FALSE;
-int            network = FALSE;
-int            verbose = FALSE;
 
 int            game_status = MAINMENU;
 int            game_emulation = EMU_NONE;
-int            network_playing = FALSE;
-int            button_status = MB_NOT_PRESSED, motion_status = FALSE;
+boolean                network_playing = FALSE;
+int            button_status = MB_NOT_PRESSED;
+boolean                motion_status = FALSE;
 int            key_joystick_mapping = 0;
 int            global_joystick_status = JOYSTICK_STATUS;
 int            joystick_status = JOYSTICK_STATUS;
-int            sound_status = SOUND_STATUS, sound_on = TRUE;
-int            sound_loops_allowed = FALSE, sound_loops_on = FALSE;
-int            sound_music_on = FALSE;
-int            sound_simple_on = FALSE;
-int            toons_on = TRUE;
-int            direct_draw_on = FALSE;
-int            scroll_delay_on = FALSE;
-int            soft_scrolling_on = TRUE;
-int            fading_on = FALSE;
-int            autorecord_on = FALSE;
-int            joystick_nr = 0;
-int            quick_doors = FALSE;
-
-BOOL           redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
+int            sound_status = SOUND_STATUS;
+boolean                sound_loops_allowed = FALSE;
+
+boolean                redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
 int            redraw_x1 = 0, redraw_y1 = 0;
 int            redraw_mask;
 int            redraw_tiles;
 
-int            Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-int            Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-int            MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-int            MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-int            MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-int            Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-int            Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-int            StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-int            Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-int            Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-int            JustHit[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-int            AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-int            AmoebaCnt[MAX_NUM_AMOEBA], AmoebaCnt2[MAX_NUM_AMOEBA];
-long           Elementeigenschaften[MAX_ELEMENTS];
+short          Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short          Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short          MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short          MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short          MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short          Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short          Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short          StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short          Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+boolean                Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short          JustHit[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short          AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short          AmoebaCnt[MAX_NUM_AMOEBA], AmoebaCnt2[MAX_NUM_AMOEBA];
+unsigned long  Elementeigenschaften[MAX_ELEMENTS];
 
 int            level_nr, leveldir_nr, num_leveldirs;
 int            lev_fieldx,lev_fieldy, scroll_x,scroll_y;
@@ -108,7 +93,7 @@ int          FrameCounter, TimeFrames, TimeLeft;
 int            MampferNr, SiebAktiv;
 
 byte           network_player_action[MAX_PLAYERS];
-BOOL           network_player_action_received = FALSE;
+boolean                network_player_action_received = FALSE;
 int            TestPlayer = 0;
 
 struct LevelDirInfo    leveldir[MAX_LEVDIR_ENTRIES];
@@ -118,6 +103,8 @@ struct PlayerInfo      *local_player;
 struct HiScore         highscore[MAX_SCORE_ENTRIES];
 struct SoundInfo       Sound[NUM_SOUNDS];
 struct RecordingInfo   tape;
+struct OptionInfo      options;
+struct SetupInfo       setup;
 
 struct JoystickInfo joystick[2] =
 {
index 0e967f3d7ca1256bb3f072263e5466a6a12493bd..f1b8671c7b9b1a5e292fefdade0936b3dc72fba0 100644 (file)
@@ -39,7 +39,7 @@
 #include "msdos.h"
 #endif  /* #ifndef MSDOS */
 
-typedef int BOOL;
+typedef unsigned char boolean;
 typedef unsigned char byte;
 
 #ifndef FALSE
@@ -207,12 +207,38 @@ struct HiScore
   int Score;
 };
 
+struct OptionInfo
+{
+  char *display_name;
+  char *server_host;
+  int server_port;
+  boolean serveronly;
+  boolean network;
+  boolean verbose;
+};
+
+struct SetupInfo
+{
+  boolean sound_on;
+  boolean sound_loops_on;
+  boolean sound_music_on;
+  boolean sound_simple_on;
+  boolean toons_on;
+  boolean direct_draw_on;
+  boolean scroll_delay_on;
+  boolean soft_scrolling_on;
+  boolean fading_on;
+  boolean autorecord_on;
+  boolean quick_doors;
+  int joystick_nr;
+};
+
 struct PlayerInfo
 {
-  BOOL present;                        /* player present in level playfield */
-  BOOL connected;              /* player connected locally or via network */
-  BOOL local;                  /* player connected locally */
-  BOOL active;                 /* player (present && connected) */
+  boolean present;             /* player present in level playfield */
+  boolean connected;           /* player connected locally or via network */
+  boolean local;               /* player connected locally */
+  boolean active;              /* player (present && connected) */
 
   int index_nr, client_nr, element_nr;
 
@@ -227,9 +253,9 @@ struct PlayerInfo
   int MovDir, MovPos, GfxPos;
   int Frame;
 
-  BOOL Pushing;
-  BOOL gone, LevelSolved, GameOver;
-  BOOL snapped;
+  boolean Pushing;
+  boolean gone, LevelSolved, GameOver;
+  boolean snapped;
 
   long move_delay;
   int last_move_dir;
@@ -283,10 +309,10 @@ struct RecordingInfo
   unsigned long length;
   unsigned long length_seconds;
   unsigned int delay_played;
-  BOOL pause_before_death;
-  BOOL recording, playing, pausing;
-  BOOL fast_forward;
-  BOOL changed;
+  boolean pause_before_death;
+  boolean recording, playing, pausing;
+  boolean fast_forward;
+  boolean changed;
   struct
   {
     byte action[MAX_PLAYERS];
@@ -324,51 +350,36 @@ extern char              *level_directory;
 extern int                     width, height;
 
 extern char           *program_name;
-extern char           *display_name;
-extern char           *server_host;
-extern int             server_port;
-extern int             serveronly;
-extern int             network;
-extern int             verbose;
 
 extern int             game_status;
 extern int             game_emulation;
-extern int             network_playing;
-extern int             button_status, motion_status;
+extern boolean         network_playing;
+extern int             button_status;
+extern boolean         motion_status;
 extern int             key_joystick_mapping;
 extern int             global_joystick_status, joystick_status;
-extern int             sound_status, sound_on;
-extern int             sound_loops_allowed, sound_loops_on;
-extern int             sound_music_on;
-extern int             sound_simple_on;
-extern int             toons_on;
-extern int             direct_draw_on;
-extern int             scroll_delay_on;
-extern int             soft_scrolling_on;
-extern int             fading_on;
-extern int             autorecord_on;
-extern int             joystick_nr;
-extern int             quick_doors;
-
-extern BOOL            redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
+extern int             sound_status;
+extern boolean         sound_loops_allowed;
+
+extern boolean         redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
 extern int             redraw_x1, redraw_y1;
 extern int             redraw_mask;
 extern int             redraw_tiles;
 
-extern int             Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             JustHit[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             AmoebaCnt[MAX_NUM_AMOEBA], AmoebaCnt2[MAX_NUM_AMOEBA];
-extern long            Elementeigenschaften[MAX_ELEMENTS];
+extern short           Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern boolean         Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           JustHit[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           AmoebaCnt[MAX_NUM_AMOEBA], AmoebaCnt2[MAX_NUM_AMOEBA];
+extern unsigned long   Elementeigenschaften[MAX_ELEMENTS];
 
 extern int             level_nr, leveldir_nr, num_leveldirs;
 extern int             lev_fieldx,lev_fieldy, scroll_x,scroll_y;
@@ -383,7 +394,7 @@ extern int          FrameCounter, TimeFrames, TimeLeft;
 extern int             MampferNr, SiebAktiv;
 
 extern byte            network_player_action[];
-extern BOOL            network_player_action_received;
+extern boolean         network_player_action_received;
 extern int             TestPlayer;
 
 extern struct LevelDirInfo     leveldir[];
@@ -394,6 +405,8 @@ extern struct HiScore               highscore[];
 extern struct RecordingInfo    tape;
 extern struct SoundInfo                Sound[];
 extern struct JoystickInfo     joystick[];
+struct OptionInfo              options;
+struct SetupInfo               setup;
 
 extern char            *sound_name[];
 extern int             background_loop[];
index a482d7489ce9d42cf54aee575648088f2a63b675..6cbd9655e60cd32ed28a514fef251691a8736932 100644 (file)
@@ -84,7 +84,8 @@ void Delay(unsigned long delay)       /* Sleep specified number of milliseconds */
   sleep_milliseconds(delay);
 }
 
-BOOL FrameReached(unsigned long *frame_counter_var, unsigned long frame_delay)
+boolean FrameReached(unsigned long *frame_counter_var,
+                    unsigned long frame_delay)
 {
   unsigned long actual_frame_counter = FrameCounter;
 
@@ -96,7 +97,8 @@ BOOL FrameReached(unsigned long *frame_counter_var, unsigned long frame_delay)
   return(TRUE);
 }
 
-BOOL DelayReached(unsigned long *counter_var, unsigned long delay)
+boolean DelayReached(unsigned long *counter_var,
+                    unsigned long delay)
 {
   unsigned long actual_counter = Counter();
 
@@ -193,6 +195,14 @@ void GetOptions(char *argv[])
 {
   char **options_left = &argv[1];
 
+  /* initialize global program options */
+  options.display_name = NULL;
+  options.server_host = NULL;
+  options.server_port = 0;
+  options.serveronly = FALSE;
+  options.network = FALSE;
+  options.verbose = FALSE;
+
   while (*options_left)
   {
     char option_str[MAX_OPTION_LEN];
@@ -244,11 +254,11 @@ void GetOptions(char *argv[])
       if (option_arg == NULL)
        Error(ERR_EXIT_HELP, "option '%s' requires an argument", option_str);
 
-      display_name = option_arg;
+      options.display_name = option_arg;
       if (option_arg == next_option)
        options_left++;
 
-      printf("--display == '%s'\n", display_name);
+      printf("--display == '%s'\n", options.display_name);
     }
     else if (strncmp(option, "-levels", option_len) == 0)
     {
@@ -265,35 +275,35 @@ void GetOptions(char *argv[])
     {
       printf("--network\n");
 
-      network = TRUE;
+      options.network = TRUE;
     }
     else if (strncmp(option, "-serveronly", option_len) == 0)
     {
       printf("--serveronly\n");
 
-      serveronly = TRUE;
+      options.serveronly = TRUE;
     }
     else if (strncmp(option, "-verbose", option_len) == 0)
     {
       printf("--verbose\n");
 
-      verbose = TRUE;
+      options.verbose = TRUE;
     }
     else if (*option == '-')
       Error(ERR_EXIT_HELP, "unrecognized option '%s'", option_str);
-    else if (server_host == NULL)
+    else if (options.server_host == NULL)
     {
-      server_host = *options_left;
+      options.server_host = *options_left;
 
-      printf("server.name == '%s'\n", server_host);
+      printf("server.name == '%s'\n", options.server_host);
     }
-    else if (server_port == 0)
+    else if (options.server_port == 0)
     {
-      server_port = atoi(*options_left);
-      if (server_port < 1024)
-       Error(ERR_EXIT_HELP, "bad port number '%d'", server_port);
+      options.server_port = atoi(*options_left);
+      if (options.server_port < 1024)
+       Error(ERR_EXIT_HELP, "bad port number '%d'", options.server_port);
 
-      printf("port == %d\n", server_port);
+      printf("port == %d\n", options.server_port);
     }
     else
       Error(ERR_EXIT_HELP, "too many arguments");
index dff44fb7decbc864c27022ce3a5e5dcac7c112c4..0c5ef87feaa9121e0e35a0aa18c265b28cfee847 100644 (file)
@@ -29,8 +29,8 @@
 void InitCounter(void);
 unsigned long Counter(void);
 void Delay(unsigned long);
-BOOL FrameReached(unsigned long *, unsigned long);
-BOOL DelayReached(unsigned long *, unsigned long);
+boolean FrameReached(unsigned long *, unsigned long);
+boolean DelayReached(unsigned long *, unsigned long);
 void WaitUntilDelayReached(unsigned long *, unsigned long);
 char *int2str(int, int);
 unsigned int SimpleRND(unsigned int);
index 54502aeff53a43c6ae791c82d84f9a6d55368f96..4d2c4329b97f9ecec1f8638da4259f7d6081611e 100644 (file)
@@ -30,14 +30,14 @@ DECLARE_JOYSTICK_DRIVER_LIST(JOYSTICK_DRIVER_STANDARD)
 static int key_buffer[OSD_MAX_KEY];
 static XEvent event_buffer[MAX_EVENT_BUFFER];
 static int pending_events;
-static BOOL joystick_event;
-static BOOL mouse_installed = FALSE;
+static boolean joystick_event;
+static boolean mouse_installed = FALSE;
 static int last_mouse_pos;
 static int last_mouse_b;
 static int last_joystick_state;
 static BITMAP* video_bitmap;
 
-BOOL wait_for_vsync;
+boolean wait_for_vsync;
 
 extern int playing_sounds;
 extern struct SoundControl playlist[MAX_SOUNDS_PLAYING];
@@ -72,7 +72,8 @@ void allegro_drivers()
 
 }
 
-BOOL hide_mouse(Display *display, int x, int y, unsigned int width, unsigned int height)
+boolean hide_mouse(Display *display, int x, int y,
+                  unsigned int width, unsigned int height)
 {
   if(mouse_x + display->mouse_ptr->w < x || mouse_x > x+width) return FALSE;
   if(mouse_y + display->mouse_ptr->h < y || mouse_y > y+height) return FALSE;
@@ -203,7 +204,7 @@ void XMapWindow(Display* display, Window w)
 {
   int x, y;
   unsigned int width, height;
-  BOOL mouse_off;
+  boolean mouse_off;
 
   x = display->screens[display->default_screen].x;
   y = display->screens[display->default_screen].y;
@@ -350,7 +351,7 @@ void XFillRectangle(
        unsigned int width,
        unsigned int height)
 {
-  BOOL mouse_off;
+  boolean mouse_off;
 
   if((BITMAP *) d == video_bitmap)
   {
@@ -395,7 +396,7 @@ inline void XCopyArea(
        int dest_x,
        int dest_y)
 {
-  BOOL mouse_off;
+  boolean mouse_off;
 
   if((BITMAP *) src == video_bitmap )
   {
@@ -484,7 +485,7 @@ void XNextEvent(Display* display, XEvent* event_return)
 int XPending(Display* display)
 {
   int i, state;
-  static BOOL joy_button_2 = FALSE;
+  static boolean joy_button_2 = FALSE;
 
   XKeyEvent *xkey;
   XButtonEvent *xbutton;
index bafb1fe8c1599508e894ceb3b2db275bd2660031..5b32ba044322f5d825f080b5c0bacb53f18f95d3 100644 (file)
@@ -120,7 +120,7 @@ static void dropuser(struct user *u)
 {
   struct user *v, *w;
   
-  if (verbose)
+  if (options.verbose)
     printf("RND_SERVER: dropping client %d (%s)\n", u->number, u->nick);
 
   if (u == user0)
@@ -170,7 +170,7 @@ static void dropuser(struct user *u)
 
   if (onceonly && clients == bots)
   {
-    if (verbose)
+    if (options.verbose)
     {
       printf("RND_SERVER: no clients left\n");
       printf("RND_SERVER: aborting\n");
@@ -224,7 +224,7 @@ static void new_connect(int fd)
   }
 
   u->number = nxn;
-  if (verbose)
+  if (options.verbose)
     printf("RND_SERVER: client %d connecting from %s\n", nxn, inet_ntoa(saddr.sin_addr));
   clients++;
 
@@ -238,7 +238,7 @@ static void Handle_OP_PROTOCOL_VERSION(struct user *u, unsigned int len)
 {
   if (len != 5 || buf[2] != PROT_VERS_1 || buf[3] != PROT_VERS_2)
   {
-    if (verbose)
+    if (options.verbose)
       printf("RND_SERVER: client %d (%s) has wrong protocol version %d.%d.%d\n", u->number, u->nick, buf[2], buf[3], buf[4]);
 
     buf[0] = 0;
@@ -254,7 +254,7 @@ static void Handle_OP_PROTOCOL_VERSION(struct user *u, unsigned int len)
   }
   else
   {
-    if (verbose)
+    if (options.verbose)
       printf("RND_SERVER: client %d (%s) uses protocol version %d.%d.%d\n", u->number, u->nick, buf[2], buf[3], buf[4]);
   }
 }
@@ -266,7 +266,7 @@ static void Handle_OP_NUMBER_WANTED(struct user *u)
   int nr_wanted = buf[2];
   int nr_is_free = 1;
 
-  if (verbose)
+  if (options.verbose)
     printf("RND_SERVER: client %d (%s) wants to switch to # %d\n",
           u->number, u->nick, nr_wanted);
 
@@ -279,7 +279,7 @@ static void Handle_OP_NUMBER_WANTED(struct user *u)
     }
   }
 
-  if (verbose)
+  if (options.verbose)
   {
     if (nr_is_free)
       printf("RND_SERVER: client %d (%s) switches to # %d\n",
@@ -333,7 +333,7 @@ static void Handle_OP_NICKNAME(struct user *u, unsigned int len)
     broadcast(u, 2, 0);
   }
              
-  if (verbose)
+  if (options.verbose)
     printf("RND_SERVER: client %d calls itself \"%s\"\n", u->number, u->nick);
   buf[1] = OP_NICKNAME;
   broadcast(u, len, 0);
@@ -376,7 +376,7 @@ static void Handle_OP_START_PLAYING(struct user *u)
 {
   struct user *v, *w;
 
-  if (verbose)
+  if (options.verbose)
     printf("RND_SERVER: client %d (%s) starts game [level %d from levedir %d (%s)]\n",
           u->number, u->nick,
           (buf[2] << 8) + buf[3],
@@ -429,7 +429,7 @@ static void Handle_OP_START_PLAYING(struct user *u)
 
 static void Handle_OP_PAUSE_PLAYING(struct user *u)
 {
-  if (verbose)
+  if (options.verbose)
     printf("RND_SERVER: client %d (%s) pauses game\n", u->number, u->nick);
   broadcast(NULL, 2, 0);
   paused = 1;
@@ -437,7 +437,7 @@ static void Handle_OP_PAUSE_PLAYING(struct user *u)
 
 static void Handle_OP_CONTINUE_PLAYING(struct user *u)
 {
-  if (verbose)
+  if (options.verbose)
     printf("RND_SERVER: client %d (%s) continues game\n", u->number, u->nick);
   broadcast(NULL, 2, 0);
   paused = 0;
@@ -445,7 +445,7 @@ static void Handle_OP_CONTINUE_PLAYING(struct user *u)
 
 static void Handle_OP_STOP_PLAYING(struct user *u)
 {
-  if (verbose)
+  if (options.verbose)
     printf("RND_SERVER: client %d (%s) stops game\n", u->number, u->nick);
   broadcast(NULL, 2, 0);
 }
@@ -557,7 +557,7 @@ void NetworkServer(int port, int serveronly)
   if (is_daemon)
   {
     /* become a daemon, breaking all ties with the controlling terminal */
-    verbose = 0;
+    options.verbose = 0;
     for (i=0; i<255; i++)
     {
       if (i != lfd)
@@ -577,7 +577,7 @@ void NetworkServer(int port, int serveronly)
     open("/dev/null", O_WRONLY);
   }
 
-  if (verbose)
+  if (options.verbose)
   {
     printf("rocksndiamonds network server: started up, listening on port %d\n",
           port);
@@ -594,7 +594,7 @@ void NetworkServer(int port, int serveronly)
     {
       buf[0] = 0;
       do_play();
-      if (verbose)
+      if (options.verbose)
        printf("RND_SERVER: everyone lost... restarting game\n");
       timetoplay = 0;
     }
@@ -626,7 +626,7 @@ void NetworkServer(int port, int serveronly)
 
     if (clients > 0 && clients == bots)
     {
-      if (verbose)
+      if (options.verbose)
        printf("RND_SERVER: only bots left... dropping all bots\n");
       while (user0)
        dropuser(user0);
@@ -668,7 +668,7 @@ void NetworkServer(int port, int serveronly)
        r = read(u->fd, u->readbuf + u->nread, MAX_BUFFER_SIZE - u->nread);
        if (r <= 0)
        {
-         if (verbose)
+         if (options.verbose)
            printf("RND_SERVER: EOF from client %d (%s)\n", u->number, u->nick);
          dropuser(u);
          interrupt = 1;
@@ -680,7 +680,7 @@ void NetworkServer(int port, int serveronly)
          len = u->readbuf[3];
          if (u->readbuf[0] || u->readbuf[1] || u->readbuf[2])
          {
-           if (verbose)
+           if (options.verbose)
              printf("RND_SERVER: crap from client %d (%s)\n", u->number, u->nick);
            write(u->fd, "\033]50;kanji24\007\033#8\033(0", 19);
            dropuser(u);
@@ -694,7 +694,7 @@ void NetworkServer(int port, int serveronly)
          buf[0] = u->number;
          if (!u->introduced && buf[1] != OP_NICKNAME)
          {
-           if (verbose)
+           if (options.verbose)
              printf("RND_SERVER: !(client %d)->introduced && buf[1]==%d (expected OP_NICKNAME)\n", buf[0], buf[1]);
 
            dropuser(u);
@@ -746,7 +746,7 @@ void NetworkServer(int port, int serveronly)
              {
                if (v->isbot)
                {
-                 if (verbose)
+                 if (options.verbose)
                    printf("RND_SERVER: client %d (%s) kills bot %d (%s)\n", u->number, u->nick, v->number, v->nick);
 
                  dropuser(v);
@@ -755,7 +755,7 @@ void NetworkServer(int port, int serveronly)
                }
                else
                {
-                 if (verbose)
+                 if (options.verbose)
                    printf("RND_SERVER: client %d (%s) attempting to kill non-bot %d (%s)\n", u->number, u->nick, v->number, v->nick);
                }
              }
@@ -763,7 +763,7 @@ void NetworkServer(int port, int serveronly)
 
            case OP_MODE:
              mode = buf[2];
-             if (verbose)
+             if (options.verbose)
                printf("RND_SERVER: client %d (%s) sets mode %d (%s)\n", u->number, u->nick, buf[2], buf[2] == 0 ? "normal" : (buf[2] == 1 ? "fun" : "unknown"));
              broadcast(NULL, 3, 0);
              break;
@@ -772,13 +772,13 @@ void NetworkServer(int port, int serveronly)
              if (!u->isbot)
                bots++;
              u->isbot = 1;
-             if (verbose)
+             if (options.verbose)
                printf("RND_SERVER: client %d (%s) declares itself to be a bot\n", u->number, u->nick);
              break;
            
            case OP_LEVEL:
              levelnr = buf[2];
-             if (verbose)
+             if (options.verbose)
                printf("RND_SERVER: client %d (%s) sets level %d\n", u->number, u->nick, buf[2]);
              broadcast(NULL, 3, 0);
              break;
@@ -787,7 +787,7 @@ void NetworkServer(int port, int serveronly)
              {
                struct user *won = NULL;
 
-               if (verbose)
+               if (options.verbose)
                  printf("RND_SERVER: client %d (%s) has lost\n", u->number, u->nick);
                u->playing = 0;
                broadcast(u, 2, 1);
@@ -837,7 +837,7 @@ void NetworkServer(int port, int serveronly)
            
            case OP_ZERO:
              broadcast(NULL, 2, 0);
-             if (verbose)
+             if (options.verbose)
                printf("RND_SERVER: client %d (%s) resets the game counters\n", u->number, u->nick);
              for (v=user0; v; v=v->next)
                v->games = 0;
@@ -850,7 +850,7 @@ void NetworkServer(int port, int serveronly)
 
            case OP_MSG:
              buf[len] = '\0';
-             if (verbose)
+             if (options.verbose)
                printf("RND_SERVER: client %d (%s) sends message: %s\n", u->number, u->nick, &buf[2]);
              broadcast(u, len, 0);
              break;
@@ -858,7 +858,7 @@ void NetworkServer(int port, int serveronly)
            case OP_LINES:
              if (len != 3)
              {
-               if (verbose)
+               if (options.verbose)
                  printf("RND_SERVER: client %d (%s) sends crap for an OP_LINES\n", u->number, u->nick);
 
                dropuser(u);
@@ -867,7 +867,7 @@ void NetworkServer(int port, int serveronly)
              }
              if (u->nextvictim)
              {
-               if (verbose)
+               if (options.verbose)
                  printf("RND_SERVER: client %d (%s) sends %d %s to client %d (%s)\n", u->number, u->nick, (int)buf[2], buf[2] == 1 ? "line" : "lines", u->nextvictim->number, u->nextvictim->nick);
                sendtoone(u->nextvictim, 3);
                buf[3] = u->nextvictim->number;
@@ -882,12 +882,12 @@ void NetworkServer(int port, int serveronly)
                  }
                }
              }
-             else if (verbose)
+             else if (options.verbose)
                printf("RND_SERVER: client %d (%s) makes %d %s but has no victim\n", u->number, u->nick, (int)buf[2], buf[2] == 1 ? "line" : "lines");
              break;
            
            default:
-             if (verbose)
+             if (options.verbose)
                printf("RND_SERVER: opcode %d from client %d (%s) not understood\n", buf[0], u->number, u->nick);
          }
        }
index 28a7d892925fddf13bf43153a15c13856c3df75d..092de4d0a3d55819e61c87d3a3e0601b2be4f4d9 100644 (file)
@@ -62,7 +62,7 @@ int nread = 0, nwrite = 0;
 
 static void sysmsg(char *s)
 {
-  if (verbose)
+  if (options.verbose)
   {
     printf("** %s\n", s);
     fflush(stdout);
@@ -88,7 +88,7 @@ static void flushbuf()
 
 static void sendbuf(int len)
 {
-  if (network)
+  if (options.network)
   {
     realbuf[0] = realbuf[1] = realbuf[2] = 0;
     realbuf[3] = (unsigned char)len;
@@ -139,7 +139,7 @@ static void StartNetworkServer(int port)
   switch (fork())
   {
     case 0:
-      NetworkServer(port, serveronly);
+      NetworkServer(port, options.serveronly);
 
       /* never reached */
       exit(0);
@@ -147,7 +147,7 @@ static void StartNetworkServer(int port)
     case -1:
       Error(ERR_RETURN,
            "cannot create network server process - no network games");
-      network = FALSE;
+      options.network = FALSE;
       return;
 
     default:
@@ -156,7 +156,7 @@ static void StartNetworkServer(int port)
   }
 }
 
-BOOL ConnectToServer(char *host, int port)
+boolean ConnectToServer(char *host, int port)
 {
   struct hostent *hp;
   struct sockaddr_in s;
@@ -498,7 +498,7 @@ static void Handle_OP_START_PLAYING()
 
 
 
-  if (autorecord_on)
+  if (setup.autorecord_on)
     TapeStartRecording();
 
 
index 41bbef5b531f5bacfa162aee6e4aabc0d2be33b0..036b8975177fe49a467a74d368038a2a963b86ef 100644 (file)
@@ -16,7 +16,7 @@
 
 #include "main.h"
 
-BOOL ConnectToServer(char *, int);
+boolean ConnectToServer(char *, int);
 void SendToServer_Nickname(char *);
 void SendToServer_ProtocolVersion(void);
 void SendToServer_NrWanted(int);
index f689f1a00baa32f7bcdadc342a753751f2a72d05..d728c42a24a4ac7ec2eeabd1fb9415f9b01937ba 100644 (file)
@@ -215,10 +215,10 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button)
       }
       else if (y==8)
       {
-       if (autorecord_on)
+       if (setup.autorecord_on)
          TapeStartRecording();
 
-       if (network)
+       if (options.network)
          SendToServer_StartPlaying();
        else
        {
@@ -1245,12 +1245,12 @@ void CalibrateJoystick()
   new_joystick_xmiddle = joy_ctrl.x;
   new_joystick_ymiddle = joy_ctrl.y;
 
-  joystick[joystick_nr].xleft = new_joystick_xleft;
-  joystick[joystick_nr].yupper = new_joystick_yupper;
-  joystick[joystick_nr].xright = new_joystick_xright;
-  joystick[joystick_nr].ylower = new_joystick_ylower;
-  joystick[joystick_nr].xmiddle = new_joystick_xmiddle;
-  joystick[joystick_nr].ymiddle = new_joystick_ymiddle;
+  joystick[setup.joystick_nr].xleft = new_joystick_xleft;
+  joystick[setup.joystick_nr].yupper = new_joystick_yupper;
+  joystick[setup.joystick_nr].xright = new_joystick_xright;
+  joystick[setup.joystick_nr].ylower = new_joystick_ylower;
+  joystick[setup.joystick_nr].xmiddle = new_joystick_xmiddle;
+  joystick[setup.joystick_nr].ymiddle = new_joystick_ymiddle;
 
   CheckJoystickData();
 
@@ -1359,7 +1359,7 @@ void HandleVideoButtons(int mx, int my, int button)
       {
        TapeStartRecording();
 
-       if (network)
+       if (options.network)
          SendToServer_StartPlaying();
        else
        {
@@ -1432,16 +1432,16 @@ void HandleSoundButtons(int mx, int my, int button)
   switch(CheckSoundButtons(mx,my,button))
   {
     case BUTTON_SOUND_MUSIC:
-      if (sound_music_on)
+      if (setup.sound_music_on)
       { 
-       sound_music_on = FALSE;
+       setup.sound_music_on = FALSE;
        local_player->setup &= ~SETUP_SOUND_MUSIC;
        FadeSound(background_loop[level_nr % num_bg_loops]);
        DrawSoundDisplay(BUTTON_SOUND_MUSIC_OFF);
       }
       else if (sound_loops_allowed)
       { 
-       sound_on = sound_music_on = TRUE;
+       setup.sound_on = setup.sound_music_on = TRUE;
        local_player->setup |= (SETUP_SOUND | SETUP_SOUND_MUSIC);
        PlaySoundLoop(background_loop[level_nr % num_bg_loops]);
        DrawSoundDisplay(BUTTON_SOUND_MUSIC_ON);
@@ -1451,15 +1451,15 @@ void HandleSoundButtons(int mx, int my, int button)
       break;
 
     case BUTTON_SOUND_LOOPS:
-      if (sound_loops_on)
+      if (setup.sound_loops_on)
       { 
-       sound_loops_on = FALSE;
+       setup.sound_loops_on = FALSE;
        local_player->setup &= ~SETUP_SOUND_LOOPS;
        DrawSoundDisplay(BUTTON_SOUND_LOOPS_OFF);
       }
       else if (sound_loops_allowed)
       { 
-       sound_on = sound_loops_on = TRUE;
+       setup.sound_on = setup.sound_loops_on = TRUE;
        local_player->setup |= (SETUP_SOUND | SETUP_SOUND_LOOPS);
        DrawSoundDisplay(BUTTON_SOUND_LOOPS_ON);
       }
@@ -1468,15 +1468,15 @@ void HandleSoundButtons(int mx, int my, int button)
       break;
 
     case BUTTON_SOUND_SIMPLE:
-      if (sound_simple_on)
+      if (setup.sound_simple_on)
       { 
-       sound_simple_on = FALSE;
+       setup.sound_simple_on = FALSE;
        local_player->setup &= ~SETUP_SOUND;
        DrawSoundDisplay(BUTTON_SOUND_SIMPLE_OFF);
       }
       else if (sound_status==SOUND_AVAILABLE)
       { 
-       sound_on = sound_simple_on = TRUE;
+       setup.sound_on = setup.sound_simple_on = TRUE;
        local_player->setup |= SETUP_SOUND;
        DrawSoundDisplay(BUTTON_SOUND_SIMPLE_ON);
       }
@@ -1510,7 +1510,7 @@ void HandleGameButtons(int mx, int my, int button)
       if (Request("Do you really want to quit the game ?",
                  REQ_ASK | REQ_STAY_CLOSED))
       { 
-       if (network)
+       if (options.network)
          SendToServer_StopPlaying();
        else
        {
@@ -1523,7 +1523,7 @@ void HandleGameButtons(int mx, int my, int button)
       break;
 
     case BUTTON_GAME_PAUSE:
-      if (network)
+      if (options.network)
       {
        if (tape.pausing)
          SendToServer_ContinuePlaying();
@@ -1536,7 +1536,7 @@ void HandleGameButtons(int mx, int my, int button)
       /*
       if (tape.pausing)
       {
-       if (network)
+       if (options.network)
          SendToServer_ContinuePlaying();
        else
        {
@@ -1546,7 +1546,7 @@ void HandleGameButtons(int mx, int my, int button)
       }
       else
       {
-       if (network)
+       if (options.network)
          SendToServer_PausePlaying();
        else
        {
@@ -1561,7 +1561,7 @@ void HandleGameButtons(int mx, int my, int button)
     case BUTTON_GAME_PLAY:
       if (tape.pausing)
       {
-       if (network)
+       if (options.network)
          SendToServer_ContinuePlaying();
        else
        {
index 1858a8f331356abf3a6d0cd6ac92ba809398a216..be825edc9a510d0f8554a685d518e34490824122 100644 (file)
@@ -119,7 +119,7 @@ void SoundServer()
       char *sample_ptr;
       long sample_size, max_sample_size;
       long fragment_size;
-      BOOL stereo;
+      boolean stereo;
 
       if (playing_sounds || (sound_device=open(sound_device_name,O_WRONLY))>=0)
       {
@@ -615,7 +615,7 @@ static unsigned long be2long(unsigned long *be)     /* big-endian -> longword */
   return(ptr[0]<<24 | ptr[1]<<16 | ptr[2]<<8 | ptr[3]);
 }
 
-BOOL LoadSound(struct SoundInfo *snd_info)
+boolean LoadSound(struct SoundInfo *snd_info)
 {
   FILE *file;
   char filename[256];
@@ -734,11 +734,11 @@ void PlaySoundLoop(int nr)
   PlaySoundExt(nr, PSND_MAX_VOLUME, PSND_MIDDLE, PSND_LOOP);
 }
 
-void PlaySoundExt(int nr, int volume, int stereo, BOOL loop)
+void PlaySoundExt(int nr, int volume, int stereo, boolean loop)
 {
   struct SoundControl snd_ctrl = emptySoundControl;
 
-  if (sound_status==SOUND_OFF || !sound_on)
+  if (sound_status==SOUND_OFF || !setup.sound_on)
     return;
 
   if (volume<PSND_MIN_VOLUME)
index 1822b3aabc478d788dfd9a5166b7ff2ae026b056..4b17f3acd8b5c9bc3ebd73a07a152b3bad10c758 100644 (file)
@@ -138,11 +138,11 @@ struct SoundControl
   int nr;
   int volume;
   int stereo;
-  BOOL active;
-  BOOL loop;
-  BOOL fade_sound;
-  BOOL stop_sound;
-  BOOL stop_all_sounds;
+  boolean active;
+  boolean loop;
+  boolean fade_sound;
+  boolean stop_sound;
+  boolean stop_all_sounds;
   int playingtime;
   long playingpos;
   long data_len;
@@ -162,11 +162,11 @@ unsigned char linear_to_ulaw(int);
 int ulaw_to_linear(unsigned char);
 
 /* application functions */
-BOOL LoadSound(struct SoundInfo *);
+boolean LoadSound(struct SoundInfo *);
 void PlaySound(int);
 void PlaySoundStereo(int, int);
 void PlaySoundLoop(int);
-void PlaySoundExt(int, int, int, BOOL);
+void PlaySoundExt(int, int, int, boolean);
 void FadeSound(int);
 void FadeSounds(void);
 void StopSound(int);
index 61a5d7e8a950fb481cfb8db0e7cbe3d45bafb6b4..01eb1d41737a58d609c2c62bc68488cf5a64609c 100644 (file)
@@ -176,7 +176,7 @@ int *TapePlayAction()
   return(NULL);
 }
 
-BOOL TapePlayDelay()
+boolean TapePlayDelay()
 {
   if (!tape.playing || tape.pausing)
     return(FALSE);
index 9ae745814f8bd31b4d9b3751036693f9648dc68f..6601aaaa90b67383778796fc3b35f7d8f0c16df4 100644 (file)
@@ -26,7 +26,7 @@ void TapeTogglePause(void);
 void TapeStartPlaying(void);
 void TapeStopPlaying(void);
 int *TapePlayAction(void);
-BOOL TapePlayDelay(void);
+boolean TapePlayDelay(void);
 void TapeStop(void);
 void TapeErase(void);
 unsigned int GetTapeLength(void);
index 303dc46981781b72e2b3a3cf161aaec4ae471b24..84b651c9895e014d1900bbbecfb9be46a0197fe5 100644 (file)
 #include <math.h>
 
 #ifdef MSDOS
-extern BOOL wait_for_vsync;
+extern boolean wait_for_vsync;
 #endif
 
 void SetDrawtoField(int mode)
 {
-  if (mode == DRAW_BUFFERED && soft_scrolling_on)
+  if (mode == DRAW_BUFFERED && setup.soft_scrolling_on)
   {
     FX = TILEX;
     FY = TILEY;
@@ -66,7 +66,7 @@ void BackToFront()
   int x,y;
   Drawable buffer = (drawto_field != window ? drawto_field : backbuffer);
 
-  if (direct_draw_on && game_status == PLAYING)
+  if (setup.direct_draw_on && game_status == PLAYING)
     redraw_mask &= ~REDRAW_MAIN;
 
   if (redraw_mask & REDRAW_TILES && redraw_tiles > REDRAWTILES_THRESHOLD)
@@ -107,7 +107,7 @@ void BackToFront()
     {
       int fx = FX, fy = FY;
 
-      if (soft_scrolling_on)
+      if (setup.soft_scrolling_on)
       {
        fx += (ScreenMovDir & (MV_LEFT|MV_RIGHT) ? ScreenGfxPos : 0);
        fy += (ScreenMovDir & (MV_UP|MV_DOWN)    ? ScreenGfxPos : 0);
@@ -189,7 +189,7 @@ void FadeToFront()
 /*
   long fading_delay = 300;
 
-  if (fading_on && (redraw_mask & REDRAW_FIELD))
+  if (setup.fading_on && (redraw_mask & REDRAW_FIELD))
   {
 */
 
@@ -257,7 +257,7 @@ void ClearWindow()
   XFillRectangle(display,backbuffer,gc,
                 REAL_SX,REAL_SY, FULL_SXSIZE,FULL_SYSIZE);
 
-  if (soft_scrolling_on && game_status==PLAYING)
+  if (setup.soft_scrolling_on && game_status==PLAYING)
   {
     XFillRectangle(display,fieldbuffer,gc,
                   0,0, FXSIZE,FYSIZE);
@@ -266,7 +266,7 @@ void ClearWindow()
   else
     SetDrawtoField(DRAW_BACKBUFFER);
 
-  if (direct_draw_on && game_status==PLAYING)
+  if (setup.direct_draw_on && game_status==PLAYING)
   {
     XFillRectangle(display,window,gc,
                   REAL_SX,REAL_SY, FULL_SXSIZE,FULL_SYSIZE);
@@ -410,7 +410,7 @@ void DrawPlayer(struct PlayerInfo *player)
   if (!IN_SCR_FIELD(sx,sy))
     return;
 
-  if (direct_draw_on)
+  if (setup.direct_draw_on)
     SetDrawtoField(DRAW_BUFFERED);
 
   /* draw things behind the player, if needed */
@@ -442,7 +442,7 @@ void DrawPlayer(struct PlayerInfo *player)
       syy = player->GfxPos;
   }
 
-  if (!soft_scrolling_on && ScreenMovPos)
+  if (!setup.soft_scrolling_on && ScreenMovPos)
     sxx = syy = 0;
 
   DrawGraphicShiftedThruMask(sx,sy, sxx,syy, graphic, NO_CUTTING);
@@ -503,7 +503,7 @@ void DrawPlayer(struct PlayerInfo *player)
                          GFX_EXPLOSION + ((phase-1)/delay-1));
   }
 
-  if (direct_draw_on)
+  if (setup.direct_draw_on)
   {
     int dest_x = SX + SCREENX(MIN(jx,last_jx))*TILEX;
     int dest_y = SY + SCREENY(MIN(jy,last_jy))*TILEY;
@@ -913,7 +913,7 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element,
   }
   else if (element==EL_MAUER_LEBT)
   {
-    BOOL links_massiv = FALSE, rechts_massiv = FALSE;
+    boolean links_massiv = FALSE, rechts_massiv = FALSE;
 
     if (!IN_LEV_FIELD(ux-1,uy) || IS_MAUER(Feld[ux-1][uy]))
       links_massiv = TRUE;
@@ -1104,7 +1104,7 @@ void DrawScreenField(int x, int y)
   if (IS_MOVING(ux,uy))
   {
     int horiz_move = (MovDir[ux][uy]==MV_LEFT || MovDir[ux][uy]==MV_RIGHT);
-    BOOL cut_mode = NO_CUTTING;
+    boolean cut_mode = NO_CUTTING;
 
     if (Store[ux][uy]==EL_MORAST_LEER ||
        Store[ux][uy]==EL_SIEB_LEER ||
@@ -1134,7 +1134,7 @@ void DrawScreenField(int x, int y)
     int oldx,oldy;
     int sx, sy;
     int horiz_move;
-    BOOL cut_mode = NO_CUTTING;
+    boolean cut_mode = NO_CUTTING;
 
     Blocked2Moving(ux,uy,&oldx,&oldy);
     sx = SCREENX(oldx);
@@ -1234,7 +1234,7 @@ void DrawLevel()
     for(y=BY1; y<=BY2; y++)
       DrawScreenField(x,y);
 
-  if (soft_scrolling_on)
+  if (setup.soft_scrolling_on)
     XCopyArea(display,fieldbuffer,backbuffer,gc,
              FX,FY, SXSIZE,SYSIZE,
              SX,SY);
@@ -1303,13 +1303,15 @@ int REQ_in_range(int x, int y)
   return(0);
 }
 
-BOOL Request(char *text, unsigned int req_state)
+boolean Request(char *text, unsigned int req_state)
 {
   int mx,my, ty, result = -1;
   unsigned int old_door_state;
 
   /* pause network game while waiting for request to answer */
-  if (network && game_status == PLAYING && req_state & REQUEST_WAIT_FOR)
+  if (options.network &&
+      game_status == PLAYING &&
+      req_state & REQUEST_WAIT_FOR)
     SendToServer_PausePlaying();
 
   old_door_state = GetDoorState();
@@ -1511,7 +1513,9 @@ BOOL Request(char *text, unsigned int req_state)
   }
 
   /* continue network game after request */
-  if (network && game_status == PLAYING && req_state & REQUEST_WAIT_FOR)
+  if (options.network &&
+      game_status == PLAYING &&
+      req_state & REQUEST_WAIT_FOR)
     SendToServer_ContinuePlaying();
 
   return(result);
@@ -1573,7 +1577,7 @@ unsigned int MoveDoor(unsigned int door_state)
   else if (door2==DOOR_CLOSE_2 && door_state & DOOR_CLOSE_2)
     door_state &= ~DOOR_CLOSE_2;
 
-  if (quick_doors)
+  if (setup.quick_doors)
   {
     stepsize = 20;
     door_delay_value = 0;
index 40430781d1b53311dc5358b24cb7003fda59ee11..ab49adedad979831569b229873c27e1268cc6b1f 100644 (file)
@@ -96,7 +96,7 @@ void DrawMicroElement(int, int, int);
 void DrawLevel(void);
 void DrawMiniLevel(int, int);
 void DrawMicroLevel(int, int);
-BOOL Request(char *, unsigned int);
+boolean Request(char *, unsigned int);
 unsigned int OpenDoor(unsigned int);
 unsigned int CloseDoor(unsigned int);
 unsigned int GetDoorState(void);