File fix-gcc15.patch of Package cube-escape

diff --git a/src/main.c b/src/main.c
index efb4d75..6ab188d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -30,6 +30,124 @@
 
 const float hf_pi = M_PI / 2.0f;
 
+//// globals start
+SDL_Surface *Screen,
+            *icon_sfc,
+            *maze_sfc,
+            *fade_sfc,
+            *prev_sfc,
+            *player_sfc,
+            *descend_txt_sfc,
+            *ascend_txt_sfc,
+            *exit_txt_sfc,
+            *exit_up_sfc,
+            *exit_dn_sfc,
+            *exit_final_sfc,
+            *button_sfcs[NUM_BUTTONS],
+            **quid_sfcs,
+            **quad_sfcs[NUM_QUADS],
+            **hide_sfcs[NUM_QUADS];
+
+SDL_Rect button_rects[NUM_BUTTONS],
+         descend_rect,
+         ascend_rect,
+         exit_rect;
+
+Uint32 white,
+       grey,
+       dk_grey,
+       black,
+       red,
+       green,
+       blue,
+       med_red,
+       med_green,
+       med_blue,
+       dk_red,
+       dk_green,
+       dk_blue,
+       faded_blue,
+       ckey,
+       alpha_mask;
+
+SDL_Color exit_up_pal[SPRITE_SIZE],
+          exit_dn_pal[SPRITE_SIZE],
+          exit_final_pal[SPRITE_SIZE],
+          exit_up_pal_cpy[SPRITE_SIZE],
+          exit_dn_pal_cpy[SPRITE_SIZE],
+          exit_final_pal_cpy[SPRITE_SIZE],
+          white_c,
+          grey_c,
+          dk_grey_c,
+          black_c,
+          green_c,
+          mouse_c;
+
+Player_t player;
+
+SfcMazeRoom_t *exit_up_rooms,
+              *exit_dn_rooms,
+              exit_final_room;
+
+Point_t restore_points[NUM_POINTS],
+        points[NUM_POINTS],
+        copy_points[NUM_POINTS],
+        center;
+
+SfcMazeConnect_t **connects[NUM_QUADS];
+
+int maze_size,
+    start_ticks,
+    n_frames,
+    tick_count,
+    current_quad,
+    exit_choice,
+    total_num_levels,
+    start_level,
+    prev_num_levels,
+    rotating,
+    show_full_map,
+    follow_player,
+    playing,
+    fast_graphics,
+    fast_move,
+    redraw_maze,
+    pl_move_time,
+    show_ctrl_buttons;
+
+Sint16 quads[6][4];
+
+int k_return,
+    k_up,
+    k_down,
+    k_left,
+    k_right,
+    k_shift,
+    k_ctrl,
+    k_spc;
+
+float player_zoom_speed,
+      player_zoom,
+      full_zoom,
+      exit_mult;
+
+Uint32 **unhide_starts[NUM_QUADS],
+       rotation_start,
+       fade_start,
+       total_ticks;
+
+int (*FunctionState)(),
+    (*NextState)(),
+    (*PreviousState)(),
+    (*AffirmState)();
+
+void *state_arg;
+enum RotateDirEnum RotateDir;
+enum GeneralDirectionEnum GeneralDirection;
+enum TraversalEnum Traversal;
+enum ButtonActionsEnum ButtonActions;
+enum FastMovementEnum FastMovement;
+//// globals end
 
 void InitGame( time_t seed )
 {
diff --git a/src/main.h b/src/main.h
index 4348a68..ee497a4 100644
--- a/src/main.h
+++ b/src/main.h
@@ -85,7 +85,7 @@
 
 /* Globals section */
 
-SDL_Surface *Screen,
+extern SDL_Surface *Screen,
             *icon_sfc,
             *maze_sfc,
             *fade_sfc,
@@ -102,12 +102,12 @@ SDL_Surface *Screen,
             **quad_sfcs[NUM_QUADS],
             **hide_sfcs[NUM_QUADS];
 
-SDL_Rect button_rects[NUM_BUTTONS],
+extern SDL_Rect button_rects[NUM_BUTTONS],
          descend_rect,
          ascend_rect,
          exit_rect;
 
-Uint32 white,
+extern Uint32 white,
        grey,
        dk_grey,
        black,
@@ -124,7 +124,7 @@ Uint32 white,
        ckey,
        alpha_mask;
 
-SDL_Color exit_up_pal[SPRITE_SIZE],
+extern SDL_Color exit_up_pal[SPRITE_SIZE],
           exit_dn_pal[SPRITE_SIZE],
           exit_final_pal[SPRITE_SIZE],
           exit_up_pal_cpy[SPRITE_SIZE],
@@ -137,20 +137,20 @@ SDL_Color exit_up_pal[SPRITE_SIZE],
           green_c,
           mouse_c;
 
-Player_t player;
+extern Player_t player;
 
-SfcMazeRoom_t *exit_up_rooms,
+extern SfcMazeRoom_t *exit_up_rooms,
               *exit_dn_rooms,
               exit_final_room;
 
-Point_t restore_points[NUM_POINTS],
+extern Point_t restore_points[NUM_POINTS],
         points[NUM_POINTS],
         copy_points[NUM_POINTS],
         center;
 
-SfcMazeConnect_t **connects[NUM_QUADS];
+extern SfcMazeConnect_t **connects[NUM_QUADS];
 
-int maze_size,
+extern int maze_size,
     start_ticks,
     n_frames,
     tick_count,
@@ -169,9 +169,9 @@ int maze_size,
     pl_move_time,
     show_ctrl_buttons;
 
-Sint16 quads[6][4];
+extern Sint16 quads[6][4];
 
-int k_return,
+extern int k_return,
     k_up,
     k_down,
     k_left,
@@ -180,22 +180,22 @@ int k_return,
     k_ctrl,
     k_spc;
 
-float player_zoom_speed,
+extern float player_zoom_speed,
       player_zoom,
       full_zoom,
       exit_mult;
 
-Uint32 **unhide_starts[NUM_QUADS],
+extern Uint32 **unhide_starts[NUM_QUADS],
        rotation_start,
        fade_start,
        total_ticks;
 
-int (*FunctionState)(),
+extern int (*FunctionState)(),
     (*NextState)(),
     (*PreviousState)(),
     (*AffirmState)();
 
-void *state_arg;
+extern void *state_arg;
 
 /* Function prototypes */
 
diff --git a/src/types.h b/src/types.h
index 4e20e17..fa1ce4e 100644
--- a/src/types.h
+++ b/src/types.h
@@ -19,7 +19,7 @@
 #define TYPES_HDR
 
 
-enum
+enum RotateDirEnum
 {
     ROTATE_NONE,
     ROTATE_UP,
@@ -28,9 +28,10 @@ enum
     ROTATE_RIGHT,
     ROTATE_CWISE,
     ROTATE_CCWISE
-} RotateDir;
+};
+extern enum RotateDirEnum RotateDir;
 
-enum
+enum GeneralDirectionEnum
 {
     NONE,
     UP,
@@ -41,16 +42,18 @@ enum
     TURN_DOWN,
     TURN_RIGHT,
     TURN_LEFT
-} GeneralDirection;
+};
+extern enum GeneralDirectionEnum GeneralDirection;
 
-enum
+enum TraversalEnum
 {
     NOT_TRAVERSING,
     TRAVERSE_CENTER,
     TRAVERSE_FOLLOW
-} Traversal;
+};
+extern enum TraversalEnum Traversal;
 
-enum
+enum ButtonActionsEnum
 {
     BUTTON_UP = 0,
     BUTTON_DOWN,
@@ -60,15 +63,17 @@ enum
     BUTTON_CCWISE,
     BUTTON_ZOOM_IN,
     BUTTON_ZOOM_OUT
-} ButtonActions;
+};
+extern enum ButtonActionsEnum ButtonActions;
 
-enum
+enum FastMovementEnum
 {
     FAST_READY,
     FAST_PLAYER_MOVE,
     FAST_ROTATE_MAZE,
     FAST_FINISH_ROTATE
-} FastMovement;
+};
+extern enum FastMovementEnum FastMovement;
 
 typedef struct
 {
openSUSE Build Service is sponsored by