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
{