Description: Ensure variables are only declared once Author: Stephen Kitt --- a/locales.h +++ b/locales.h @@ -36,206 +36,206 @@ #define TXT_MAX_COLS 100 /* Variables */ -char txt_intro_story[TXT_INTRO_STORY_ROWS * TXT_MAX_COLS]; -char txt_intro_keys[TXT_INTRO_KEYS_ROWS * TXT_MAX_COLS]; -char txt_intro_keys_description[TXT_INTRO_KEYS_DESCRIPTION_ROWS * TXT_MAX_COLS]; -char txt_intro_menu[TXT_INTRO_MENU_ROWS * TXT_MAX_COLS]; -char txt_of[TXT_MAX_COLS]; -char txt_intro_credits[TXT_INTRO_CREDITS_ROWS * TXT_MAX_COLS]; - -char txt_help_page0[TXT_HELP_PAGE0_ROWS * TXT_MAX_COLS]; -char txt_help_page1[TXT_HELP_PAGE1_ROWS * TXT_MAX_COLS]; -char txt_help_page2[TXT_HELP_PAGE2_ROWS * TXT_MAX_COLS]; -char txt_help_page3[TXT_HELP_PAGE3_ROWS * TXT_MAX_COLS]; -char txt_Back[TXT_MAX_COLS]; -char txt_Next[TXT_MAX_COLS]; -char txt_Exit[TXT_MAX_COLS]; - -char txt_options_page1[TXT_OPTIONS_PAGE1_ROWS * TXT_MAX_COLS]; -char txt_Save[TXT_MAX_COLS]; -char txt_Game_Speed[TXT_MAX_COLS]; -char txt_Fast[TXT_MAX_COLS]; -char txt_Normal[TXT_MAX_COLS]; -char txt_Slow[TXT_MAX_COLS]; -char txt_Key_Repeat[TXT_MAX_COLS]; -char txt_Delay[TXT_MAX_COLS]; -char txt_Interval[TXT_MAX_COLS]; -char txt_Default_Joystick[TXT_MAX_COLS]; -char txt_No_joystick_found[TXT_MAX_COLS]; -char txt_Joystick_Axes_Dead_Zone[TXT_MAX_COLS]; -char txt_Language[TXT_MAX_COLS]; -char txt_Translation_by[TXT_MAX_COLS]; -char txt_Save_Frequency[TXT_MAX_COLS]; -char txt_On_Exit[TXT_MAX_COLS]; -char txt_On_Change[TXT_MAX_COLS]; -char txt_Move_Up[TXT_MAX_COLS]; -char txt_Move_Up_Right[TXT_MAX_COLS]; -char txt_Move_Right[TXT_MAX_COLS]; -char txt_Move_Down_Right[TXT_MAX_COLS]; -char txt_Move_Down[TXT_MAX_COLS]; -char txt_Move_Down_Left[TXT_MAX_COLS]; -char txt_Move_Left[TXT_MAX_COLS]; -char txt_Move_Up_Left[TXT_MAX_COLS]; -char txt_Shoot_Up[TXT_MAX_COLS]; -char txt_Shoot_Down[TXT_MAX_COLS]; -char txt_Shoot_Left[TXT_MAX_COLS]; -char txt_Shoot_Right[TXT_MAX_COLS]; -char txt_Restart[TXT_MAX_COLS]; -char txt_Confirm[TXT_MAX_COLS]; -char txt_Help[TXT_MAX_COLS]; -char txt_Options[TXT_MAX_COLS]; -char txt_Previous_Level[TXT_MAX_COLS]; -char txt_Next_Level[TXT_MAX_COLS]; -char txt_Previous_Pack[TXT_MAX_COLS]; -char txt_Next_Pack[TXT_MAX_COLS]; -char txt_Toggle_Fullscreen[TXT_MAX_COLS]; -char txt_Home[TXT_MAX_COLS]; -char txt_End[TXT_MAX_COLS]; -char txt_Page_Up[TXT_MAX_COLS]; -char txt_Page_Down[TXT_MAX_COLS]; -char txt_Volume_Up[TXT_MAX_COLS]; -char txt_Volume_Down[TXT_MAX_COLS]; -char txt_Modifier[TXT_MAX_COLS]; -char txt_Restore_Default_Controls[TXT_MAX_COLS]; -char txt_Toggle_Designer[TXT_MAX_COLS]; -char txt_Scroll_Up[TXT_MAX_COLS]; -char txt_Scroll_Down[TXT_MAX_COLS]; -char txt_Primary_Click[TXT_MAX_COLS]; -char txt_System_Pointer[TXT_MAX_COLS]; -char txt_Disabled[TXT_MAX_COLS]; -char txt_Enabled[TXT_MAX_COLS]; -char txt_Pointer_Controls_Pad_Type[TXT_MAX_COLS]; -char txt_Viewport[TXT_MAX_COLS]; -char txt_Screen[TXT_MAX_COLS]; -char txt_Sound[TXT_MAX_COLS]; -char txt_Sfx_Volume[TXT_MAX_COLS]; -char txt_Simulated_Pointer[TXT_MAX_COLS]; - -char txt_Key[TXT_MAX_COLS]; -char txt_Joy[TXT_MAX_COLS]; -char txt_Ptr[TXT_MAX_COLS]; -char txt_Mod[TXT_MAX_COLS]; -char txt_Skin[TXT_MAX_COLS]; -char txt_By[TXT_MAX_COLS]; - -char txt_Level_Author[TXT_MAX_COLS]; -char txt_endscreen_congrats[TXT_ENDSCREEN_CONGRATS_ROWS * TXT_MAX_COLS]; - -char txt_Volume[TXT_MAX_COLS]; -char txt_Changes_saved[TXT_MAX_COLS]; -char txt_Default_controls_restored[TXT_MAX_COLS]; -char txt_Press_something_and_release[TXT_MAX_COLS]; -char txt_No_input_was_detected[TXT_MAX_COLS]; - -char txt_ptr_BtnLeft[TXT_MAX_COLS]; -char txt_ptr_BtnMiddle[TXT_MAX_COLS]; -char txt_ptr_BtnRight[TXT_MAX_COLS]; -char txt_ptr_WheelUp[TXT_MAX_COLS]; -char txt_ptr_WheelDown[TXT_MAX_COLS]; - -char txt_key_Backspace[TXT_MAX_COLS]; -char txt_key_Tab[TXT_MAX_COLS]; -char txt_key_Clear[TXT_MAX_COLS]; -char txt_key_Return[TXT_MAX_COLS]; -char txt_key_Pause[TXT_MAX_COLS]; -char txt_key_Escape[TXT_MAX_COLS]; -char txt_key_Space[TXT_MAX_COLS]; -char txt_key_Delete[TXT_MAX_COLS]; -char txt_key_KP[TXT_MAX_COLS]; -char txt_key_Up[TXT_MAX_COLS]; -char txt_key_Down[TXT_MAX_COLS]; -char txt_key_Right[TXT_MAX_COLS]; -char txt_key_Left[TXT_MAX_COLS]; -char txt_key_Insert[TXT_MAX_COLS]; -char txt_key_Home[TXT_MAX_COLS]; -char txt_key_End[TXT_MAX_COLS]; -char txt_key_PgUp[TXT_MAX_COLS]; -char txt_key_PgDn[TXT_MAX_COLS]; -char txt_key_NumLk[TXT_MAX_COLS]; -char txt_key_CapsLk[TXT_MAX_COLS]; -char txt_key_ScrlLk[TXT_MAX_COLS]; -char txt_key_RShift[TXT_MAX_COLS]; -char txt_key_LShift[TXT_MAX_COLS]; -char txt_key_RCtrl[TXT_MAX_COLS]; -char txt_key_LCtrl[TXT_MAX_COLS]; -char txt_key_RAlt[TXT_MAX_COLS]; -char txt_key_LAlt[TXT_MAX_COLS]; -char txt_key_RMeta[TXT_MAX_COLS]; -char txt_key_LMeta[TXT_MAX_COLS]; -char txt_key_LSuper[TXT_MAX_COLS]; -char txt_key_RSuper[TXT_MAX_COLS]; -char txt_key_AltGr[TXT_MAX_COLS]; -char txt_key_Compose[TXT_MAX_COLS]; -char txt_key_Help[TXT_MAX_COLS]; -char txt_key_PrScr[TXT_MAX_COLS]; -char txt_key_SysRq[TXT_MAX_COLS]; -char txt_key_Break[TXT_MAX_COLS]; -char txt_key_Menu[TXT_MAX_COLS]; -char txt_key_Power[TXT_MAX_COLS]; -char txt_key_Euro[TXT_MAX_COLS]; -char txt_key_Undo[TXT_MAX_COLS]; - -char txt_konstruktor_Ground[TXT_MAX_COLS]; -char txt_konstruktor_Stop[TXT_MAX_COLS]; -char txt_konstruktor_Radioactive_Field[TXT_MAX_COLS]; -char txt_konstruktor_Push_Box[TXT_MAX_COLS]; -char txt_konstruktor_Capsule[TXT_MAX_COLS]; -char txt_konstruktor_Bomb[TXT_MAX_COLS]; -char txt_konstruktor_Bomb2[TXT_MAX_COLS]; -char txt_konstruktor_Door[TXT_MAX_COLS]; -char txt_konstruktor_Box[TXT_MAX_COLS]; -char txt_konstruktor_Empty_Field[TXT_MAX_COLS]; -char txt_konstruktor_Butterfly[TXT_MAX_COLS]; -char txt_konstruktor_Gun_Fire[TXT_MAX_COLS]; -char txt_konstruktor_Force_Field[TXT_MAX_COLS]; -char txt_konstruktor_Screw[TXT_MAX_COLS]; -char txt_konstruktor_Wall[TXT_MAX_COLS]; -char txt_konstruktor_Black_Wall[TXT_MAX_COLS]; -char txt_konstruktor_Teleport[TXT_MAX_COLS]; -char txt_konstruktor_Gun[TXT_MAX_COLS]; -char txt_konstruktor_Magnet[TXT_MAX_COLS]; -char txt_konstruktor_Bear[TXT_MAX_COLS]; -char txt_konstruktor_Black_Bear[TXT_MAX_COLS]; -char txt_konstruktor_Bird[TXT_MAX_COLS]; -char txt_konstruktor_Key[TXT_MAX_COLS]; -char txt_konstruktor_Bullets[TXT_MAX_COLS]; -char txt_konstruktor_on_map[TXT_MAX_COLS]; -char txt_konstruktor_Laser_Gun[TXT_MAX_COLS]; -char txt_konstruktor_Blaster_Gun[TXT_MAX_COLS]; -char txt_konstruktor_Regular_Gun[TXT_MAX_COLS]; -char txt_konstruktor_Fixed[TXT_MAX_COLS]; -char txt_konstruktor_Moveable[TXT_MAX_COLS]; -char txt_konstruktor_Rotating[TXT_MAX_COLS]; -char txt_konstruktor_Moveable_Rotating[TXT_MAX_COLS]; -char txt_konstruktor_Direction_right[TXT_MAX_COLS]; -char txt_konstruktor_Direction_down[TXT_MAX_COLS]; -char txt_konstruktor_Direction_left[TXT_MAX_COLS]; -char txt_konstruktor_Direction_up[TXT_MAX_COLS]; -char txt_konstruktor_Welcome_to_GNU_Robbo_Designer[TXT_MAX_COLS]; -char txt_konstruktor_Exit_designer_select_again_to_exit[TXT_MAX_COLS]; -char txt_konstruktor_Reload_level_select_again_to_reload[TXT_MAX_COLS]; -char txt_konstruktor_Level_reloaded[TXT_MAX_COLS]; -char txt_konstruktor_New_level_select_again_to_create[TXT_MAX_COLS]; -char txt_konstruktor_Level_created[TXT_MAX_COLS]; -char txt_konstruktor_Save_select_again_to_save_new_level[TXT_MAX_COLS]; -char txt_konstruktor_New_level_appended_to_pack[TXT_MAX_COLS]; -char txt_konstruktor_Clear_level_select_again_to_clear[TXT_MAX_COLS]; -char txt_konstruktor_Level_cleared[TXT_MAX_COLS]; -char txt_konstruktor_Save_select_again_to_save_changes[TXT_MAX_COLS]; -char txt_konstruktor_Changes_saved[TXT_MAX_COLS]; -char txt_konstruktor_Level_resized_to[TXT_MAX_COLS]; -char txt_konstruktor_Screws[TXT_MAX_COLS]; +extern char txt_intro_story[TXT_INTRO_STORY_ROWS * TXT_MAX_COLS]; +extern char txt_intro_keys[TXT_INTRO_KEYS_ROWS * TXT_MAX_COLS]; +extern char txt_intro_keys_description[TXT_INTRO_KEYS_DESCRIPTION_ROWS * TXT_MAX_COLS]; +extern char txt_intro_menu[TXT_INTRO_MENU_ROWS * TXT_MAX_COLS]; +extern char txt_of[TXT_MAX_COLS]; +extern char txt_intro_credits[TXT_INTRO_CREDITS_ROWS * TXT_MAX_COLS]; + +extern char txt_help_page0[TXT_HELP_PAGE0_ROWS * TXT_MAX_COLS]; +extern char txt_help_page1[TXT_HELP_PAGE1_ROWS * TXT_MAX_COLS]; +extern char txt_help_page2[TXT_HELP_PAGE2_ROWS * TXT_MAX_COLS]; +extern char txt_help_page3[TXT_HELP_PAGE3_ROWS * TXT_MAX_COLS]; +extern char txt_Back[TXT_MAX_COLS]; +extern char txt_Next[TXT_MAX_COLS]; +extern char txt_Exit[TXT_MAX_COLS]; + +extern char txt_options_page1[TXT_OPTIONS_PAGE1_ROWS * TXT_MAX_COLS]; +extern char txt_Save[TXT_MAX_COLS]; +extern char txt_Game_Speed[TXT_MAX_COLS]; +extern char txt_Fast[TXT_MAX_COLS]; +extern char txt_Normal[TXT_MAX_COLS]; +extern char txt_Slow[TXT_MAX_COLS]; +extern char txt_Key_Repeat[TXT_MAX_COLS]; +extern char txt_Delay[TXT_MAX_COLS]; +extern char txt_Interval[TXT_MAX_COLS]; +extern char txt_Default_Joystick[TXT_MAX_COLS]; +extern char txt_No_joystick_found[TXT_MAX_COLS]; +extern char txt_Joystick_Axes_Dead_Zone[TXT_MAX_COLS]; +extern char txt_Language[TXT_MAX_COLS]; +extern char txt_Translation_by[TXT_MAX_COLS]; +extern char txt_Save_Frequency[TXT_MAX_COLS]; +extern char txt_On_Exit[TXT_MAX_COLS]; +extern char txt_On_Change[TXT_MAX_COLS]; +extern char txt_Move_Up[TXT_MAX_COLS]; +extern char txt_Move_Up_Right[TXT_MAX_COLS]; +extern char txt_Move_Right[TXT_MAX_COLS]; +extern char txt_Move_Down_Right[TXT_MAX_COLS]; +extern char txt_Move_Down[TXT_MAX_COLS]; +extern char txt_Move_Down_Left[TXT_MAX_COLS]; +extern char txt_Move_Left[TXT_MAX_COLS]; +extern char txt_Move_Up_Left[TXT_MAX_COLS]; +extern char txt_Shoot_Up[TXT_MAX_COLS]; +extern char txt_Shoot_Down[TXT_MAX_COLS]; +extern char txt_Shoot_Left[TXT_MAX_COLS]; +extern char txt_Shoot_Right[TXT_MAX_COLS]; +extern char txt_Restart[TXT_MAX_COLS]; +extern char txt_Confirm[TXT_MAX_COLS]; +extern char txt_Help[TXT_MAX_COLS]; +extern char txt_Options[TXT_MAX_COLS]; +extern char txt_Previous_Level[TXT_MAX_COLS]; +extern char txt_Next_Level[TXT_MAX_COLS]; +extern char txt_Previous_Pack[TXT_MAX_COLS]; +extern char txt_Next_Pack[TXT_MAX_COLS]; +extern char txt_Toggle_Fullscreen[TXT_MAX_COLS]; +extern char txt_Home[TXT_MAX_COLS]; +extern char txt_End[TXT_MAX_COLS]; +extern char txt_Page_Up[TXT_MAX_COLS]; +extern char txt_Page_Down[TXT_MAX_COLS]; +extern char txt_Volume_Up[TXT_MAX_COLS]; +extern char txt_Volume_Down[TXT_MAX_COLS]; +extern char txt_Modifier[TXT_MAX_COLS]; +extern char txt_Restore_Default_Controls[TXT_MAX_COLS]; +extern char txt_Toggle_Designer[TXT_MAX_COLS]; +extern char txt_Scroll_Up[TXT_MAX_COLS]; +extern char txt_Scroll_Down[TXT_MAX_COLS]; +extern char txt_Primary_Click[TXT_MAX_COLS]; +extern char txt_System_Pointer[TXT_MAX_COLS]; +extern char txt_Disabled[TXT_MAX_COLS]; +extern char txt_Enabled[TXT_MAX_COLS]; +extern char txt_Pointer_Controls_Pad_Type[TXT_MAX_COLS]; +extern char txt_Viewport[TXT_MAX_COLS]; +extern char txt_Screen[TXT_MAX_COLS]; +extern char txt_Sound[TXT_MAX_COLS]; +extern char txt_Sfx_Volume[TXT_MAX_COLS]; +extern char txt_Simulated_Pointer[TXT_MAX_COLS]; + +extern char txt_Key[TXT_MAX_COLS]; +extern char txt_Joy[TXT_MAX_COLS]; +extern char txt_Ptr[TXT_MAX_COLS]; +extern char txt_Mod[TXT_MAX_COLS]; +extern char txt_Skin[TXT_MAX_COLS]; +extern char txt_By[TXT_MAX_COLS]; + +extern char txt_Level_Author[TXT_MAX_COLS]; +extern char txt_endscreen_congrats[TXT_ENDSCREEN_CONGRATS_ROWS * TXT_MAX_COLS]; + +extern char txt_Volume[TXT_MAX_COLS]; +extern char txt_Changes_saved[TXT_MAX_COLS]; +extern char txt_Default_controls_restored[TXT_MAX_COLS]; +extern char txt_Press_something_and_release[TXT_MAX_COLS]; +extern char txt_No_input_was_detected[TXT_MAX_COLS]; + +extern char txt_ptr_BtnLeft[TXT_MAX_COLS]; +extern char txt_ptr_BtnMiddle[TXT_MAX_COLS]; +extern char txt_ptr_BtnRight[TXT_MAX_COLS]; +extern char txt_ptr_WheelUp[TXT_MAX_COLS]; +extern char txt_ptr_WheelDown[TXT_MAX_COLS]; + +extern char txt_key_Backspace[TXT_MAX_COLS]; +extern char txt_key_Tab[TXT_MAX_COLS]; +extern char txt_key_Clear[TXT_MAX_COLS]; +extern char txt_key_Return[TXT_MAX_COLS]; +extern char txt_key_Pause[TXT_MAX_COLS]; +extern char txt_key_Escape[TXT_MAX_COLS]; +extern char txt_key_Space[TXT_MAX_COLS]; +extern char txt_key_Delete[TXT_MAX_COLS]; +extern char txt_key_KP[TXT_MAX_COLS]; +extern char txt_key_Up[TXT_MAX_COLS]; +extern char txt_key_Down[TXT_MAX_COLS]; +extern char txt_key_Right[TXT_MAX_COLS]; +extern char txt_key_Left[TXT_MAX_COLS]; +extern char txt_key_Insert[TXT_MAX_COLS]; +extern char txt_key_Home[TXT_MAX_COLS]; +extern char txt_key_End[TXT_MAX_COLS]; +extern char txt_key_PgUp[TXT_MAX_COLS]; +extern char txt_key_PgDn[TXT_MAX_COLS]; +extern char txt_key_NumLk[TXT_MAX_COLS]; +extern char txt_key_CapsLk[TXT_MAX_COLS]; +extern char txt_key_ScrlLk[TXT_MAX_COLS]; +extern char txt_key_RShift[TXT_MAX_COLS]; +extern char txt_key_LShift[TXT_MAX_COLS]; +extern char txt_key_RCtrl[TXT_MAX_COLS]; +extern char txt_key_LCtrl[TXT_MAX_COLS]; +extern char txt_key_RAlt[TXT_MAX_COLS]; +extern char txt_key_LAlt[TXT_MAX_COLS]; +extern char txt_key_RMeta[TXT_MAX_COLS]; +extern char txt_key_LMeta[TXT_MAX_COLS]; +extern char txt_key_LSuper[TXT_MAX_COLS]; +extern char txt_key_RSuper[TXT_MAX_COLS]; +extern char txt_key_AltGr[TXT_MAX_COLS]; +extern char txt_key_Compose[TXT_MAX_COLS]; +extern char txt_key_Help[TXT_MAX_COLS]; +extern char txt_key_PrScr[TXT_MAX_COLS]; +extern char txt_key_SysRq[TXT_MAX_COLS]; +extern char txt_key_Break[TXT_MAX_COLS]; +extern char txt_key_Menu[TXT_MAX_COLS]; +extern char txt_key_Power[TXT_MAX_COLS]; +extern char txt_key_Euro[TXT_MAX_COLS]; +extern char txt_key_Undo[TXT_MAX_COLS]; + +extern char txt_konstruktor_Ground[TXT_MAX_COLS]; +extern char txt_konstruktor_Stop[TXT_MAX_COLS]; +extern char txt_konstruktor_Radioactive_Field[TXT_MAX_COLS]; +extern char txt_konstruktor_Push_Box[TXT_MAX_COLS]; +extern char txt_konstruktor_Capsule[TXT_MAX_COLS]; +extern char txt_konstruktor_Bomb[TXT_MAX_COLS]; +extern char txt_konstruktor_Bomb2[TXT_MAX_COLS]; +extern char txt_konstruktor_Door[TXT_MAX_COLS]; +extern char txt_konstruktor_Box[TXT_MAX_COLS]; +extern char txt_konstruktor_Empty_Field[TXT_MAX_COLS]; +extern char txt_konstruktor_Butterfly[TXT_MAX_COLS]; +extern char txt_konstruktor_Gun_Fire[TXT_MAX_COLS]; +extern char txt_konstruktor_Force_Field[TXT_MAX_COLS]; +extern char txt_konstruktor_Screw[TXT_MAX_COLS]; +extern char txt_konstruktor_Wall[TXT_MAX_COLS]; +extern char txt_konstruktor_Black_Wall[TXT_MAX_COLS]; +extern char txt_konstruktor_Teleport[TXT_MAX_COLS]; +extern char txt_konstruktor_Gun[TXT_MAX_COLS]; +extern char txt_konstruktor_Magnet[TXT_MAX_COLS]; +extern char txt_konstruktor_Bear[TXT_MAX_COLS]; +extern char txt_konstruktor_Black_Bear[TXT_MAX_COLS]; +extern char txt_konstruktor_Bird[TXT_MAX_COLS]; +extern char txt_konstruktor_Key[TXT_MAX_COLS]; +extern char txt_konstruktor_Bullets[TXT_MAX_COLS]; +extern char txt_konstruktor_on_map[TXT_MAX_COLS]; +extern char txt_konstruktor_Laser_Gun[TXT_MAX_COLS]; +extern char txt_konstruktor_Blaster_Gun[TXT_MAX_COLS]; +extern char txt_konstruktor_Regular_Gun[TXT_MAX_COLS]; +extern char txt_konstruktor_Fixed[TXT_MAX_COLS]; +extern char txt_konstruktor_Moveable[TXT_MAX_COLS]; +extern char txt_konstruktor_Rotating[TXT_MAX_COLS]; +extern char txt_konstruktor_Moveable_Rotating[TXT_MAX_COLS]; +extern char txt_konstruktor_Direction_right[TXT_MAX_COLS]; +extern char txt_konstruktor_Direction_down[TXT_MAX_COLS]; +extern char txt_konstruktor_Direction_left[TXT_MAX_COLS]; +extern char txt_konstruktor_Direction_up[TXT_MAX_COLS]; +extern char txt_konstruktor_Welcome_to_GNU_Robbo_Designer[TXT_MAX_COLS]; +extern char txt_konstruktor_Exit_designer_select_again_to_exit[TXT_MAX_COLS]; +extern char txt_konstruktor_Reload_level_select_again_to_reload[TXT_MAX_COLS]; +extern char txt_konstruktor_Level_reloaded[TXT_MAX_COLS]; +extern char txt_konstruktor_New_level_select_again_to_create[TXT_MAX_COLS]; +extern char txt_konstruktor_Level_created[TXT_MAX_COLS]; +extern char txt_konstruktor_Save_select_again_to_save_new_level[TXT_MAX_COLS]; +extern char txt_konstruktor_New_level_appended_to_pack[TXT_MAX_COLS]; +extern char txt_konstruktor_Clear_level_select_again_to_clear[TXT_MAX_COLS]; +extern char txt_konstruktor_Level_cleared[TXT_MAX_COLS]; +extern char txt_konstruktor_Save_select_again_to_save_changes[TXT_MAX_COLS]; +extern char txt_konstruktor_Changes_saved[TXT_MAX_COLS]; +extern char txt_konstruktor_Level_resized_to[TXT_MAX_COLS]; +extern char txt_konstruktor_Screws[TXT_MAX_COLS]; struct locale { char foldername[100]; /* e.g. de_DE, en_GB, es_ES, pl_PL ... */ char name[60]; /* e.g. Deutsch, English, EspaƱol, Polski ... */ char author[60]; /* Enables translators to get recognition for their work */ }; -struct locale locales[MAX_LOCALES]; +extern struct locale locales[MAX_LOCALES]; -int locale_count; -int selected_locale; -int temp_selected_locale; +extern int locale_count; +extern int selected_locale; +extern int temp_selected_locale; /* Function prototypes */ int find_all_locales(void); @@ -243,10 +243,3 @@ void sort_locales(void); void load_selected_locale(void); void set_locale_to_LANG(void); - - - - - - - --- a/locales.c +++ b/locales.c @@ -35,6 +35,203 @@ /* Variables */ extern char *data_state[]; +/* Variables */ +char txt_intro_story[TXT_INTRO_STORY_ROWS * TXT_MAX_COLS]; +char txt_intro_keys[TXT_INTRO_KEYS_ROWS * TXT_MAX_COLS]; +char txt_intro_keys_description[TXT_INTRO_KEYS_DESCRIPTION_ROWS * TXT_MAX_COLS]; +char txt_intro_menu[TXT_INTRO_MENU_ROWS * TXT_MAX_COLS]; +char txt_of[TXT_MAX_COLS]; +char txt_intro_credits[TXT_INTRO_CREDITS_ROWS * TXT_MAX_COLS]; + +char txt_help_page0[TXT_HELP_PAGE0_ROWS * TXT_MAX_COLS]; +char txt_help_page1[TXT_HELP_PAGE1_ROWS * TXT_MAX_COLS]; +char txt_help_page2[TXT_HELP_PAGE2_ROWS * TXT_MAX_COLS]; +char txt_help_page3[TXT_HELP_PAGE3_ROWS * TXT_MAX_COLS]; +char txt_Back[TXT_MAX_COLS]; +char txt_Next[TXT_MAX_COLS]; +char txt_Exit[TXT_MAX_COLS]; + +char txt_options_page1[TXT_OPTIONS_PAGE1_ROWS * TXT_MAX_COLS]; +char txt_Save[TXT_MAX_COLS]; +char txt_Game_Speed[TXT_MAX_COLS]; +char txt_Fast[TXT_MAX_COLS]; +char txt_Normal[TXT_MAX_COLS]; +char txt_Slow[TXT_MAX_COLS]; +char txt_Key_Repeat[TXT_MAX_COLS]; +char txt_Delay[TXT_MAX_COLS]; +char txt_Interval[TXT_MAX_COLS]; +char txt_Default_Joystick[TXT_MAX_COLS]; +char txt_No_joystick_found[TXT_MAX_COLS]; +char txt_Joystick_Axes_Dead_Zone[TXT_MAX_COLS]; +char txt_Language[TXT_MAX_COLS]; +char txt_Translation_by[TXT_MAX_COLS]; +char txt_Save_Frequency[TXT_MAX_COLS]; +char txt_On_Exit[TXT_MAX_COLS]; +char txt_On_Change[TXT_MAX_COLS]; +char txt_Move_Up[TXT_MAX_COLS]; +char txt_Move_Up_Right[TXT_MAX_COLS]; +char txt_Move_Right[TXT_MAX_COLS]; +char txt_Move_Down_Right[TXT_MAX_COLS]; +char txt_Move_Down[TXT_MAX_COLS]; +char txt_Move_Down_Left[TXT_MAX_COLS]; +char txt_Move_Left[TXT_MAX_COLS]; +char txt_Move_Up_Left[TXT_MAX_COLS]; +char txt_Shoot_Up[TXT_MAX_COLS]; +char txt_Shoot_Down[TXT_MAX_COLS]; +char txt_Shoot_Left[TXT_MAX_COLS]; +char txt_Shoot_Right[TXT_MAX_COLS]; +char txt_Restart[TXT_MAX_COLS]; +char txt_Confirm[TXT_MAX_COLS]; +char txt_Help[TXT_MAX_COLS]; +char txt_Options[TXT_MAX_COLS]; +char txt_Previous_Level[TXT_MAX_COLS]; +char txt_Next_Level[TXT_MAX_COLS]; +char txt_Previous_Pack[TXT_MAX_COLS]; +char txt_Next_Pack[TXT_MAX_COLS]; +char txt_Toggle_Fullscreen[TXT_MAX_COLS]; +char txt_Home[TXT_MAX_COLS]; +char txt_End[TXT_MAX_COLS]; +char txt_Page_Up[TXT_MAX_COLS]; +char txt_Page_Down[TXT_MAX_COLS]; +char txt_Volume_Up[TXT_MAX_COLS]; +char txt_Volume_Down[TXT_MAX_COLS]; +char txt_Modifier[TXT_MAX_COLS]; +char txt_Restore_Default_Controls[TXT_MAX_COLS]; +char txt_Toggle_Designer[TXT_MAX_COLS]; +char txt_Scroll_Up[TXT_MAX_COLS]; +char txt_Scroll_Down[TXT_MAX_COLS]; +char txt_Primary_Click[TXT_MAX_COLS]; +char txt_System_Pointer[TXT_MAX_COLS]; +char txt_Disabled[TXT_MAX_COLS]; +char txt_Enabled[TXT_MAX_COLS]; +char txt_Pointer_Controls_Pad_Type[TXT_MAX_COLS]; +char txt_Viewport[TXT_MAX_COLS]; +char txt_Screen[TXT_MAX_COLS]; +char txt_Sound[TXT_MAX_COLS]; +char txt_Sfx_Volume[TXT_MAX_COLS]; +char txt_Simulated_Pointer[TXT_MAX_COLS]; + +char txt_Key[TXT_MAX_COLS]; +char txt_Joy[TXT_MAX_COLS]; +char txt_Ptr[TXT_MAX_COLS]; +char txt_Mod[TXT_MAX_COLS]; +char txt_Skin[TXT_MAX_COLS]; +char txt_By[TXT_MAX_COLS]; + +char txt_Level_Author[TXT_MAX_COLS]; +char txt_endscreen_congrats[TXT_ENDSCREEN_CONGRATS_ROWS * TXT_MAX_COLS]; + +char txt_Volume[TXT_MAX_COLS]; +char txt_Changes_saved[TXT_MAX_COLS]; +char txt_Default_controls_restored[TXT_MAX_COLS]; +char txt_Press_something_and_release[TXT_MAX_COLS]; +char txt_No_input_was_detected[TXT_MAX_COLS]; + +char txt_ptr_BtnLeft[TXT_MAX_COLS]; +char txt_ptr_BtnMiddle[TXT_MAX_COLS]; +char txt_ptr_BtnRight[TXT_MAX_COLS]; +char txt_ptr_WheelUp[TXT_MAX_COLS]; +char txt_ptr_WheelDown[TXT_MAX_COLS]; + +char txt_key_Backspace[TXT_MAX_COLS]; +char txt_key_Tab[TXT_MAX_COLS]; +char txt_key_Clear[TXT_MAX_COLS]; +char txt_key_Return[TXT_MAX_COLS]; +char txt_key_Pause[TXT_MAX_COLS]; +char txt_key_Escape[TXT_MAX_COLS]; +char txt_key_Space[TXT_MAX_COLS]; +char txt_key_Delete[TXT_MAX_COLS]; +char txt_key_KP[TXT_MAX_COLS]; +char txt_key_Up[TXT_MAX_COLS]; +char txt_key_Down[TXT_MAX_COLS]; +char txt_key_Right[TXT_MAX_COLS]; +char txt_key_Left[TXT_MAX_COLS]; +char txt_key_Insert[TXT_MAX_COLS]; +char txt_key_Home[TXT_MAX_COLS]; +char txt_key_End[TXT_MAX_COLS]; +char txt_key_PgUp[TXT_MAX_COLS]; +char txt_key_PgDn[TXT_MAX_COLS]; +char txt_key_NumLk[TXT_MAX_COLS]; +char txt_key_CapsLk[TXT_MAX_COLS]; +char txt_key_ScrlLk[TXT_MAX_COLS]; +char txt_key_RShift[TXT_MAX_COLS]; +char txt_key_LShift[TXT_MAX_COLS]; +char txt_key_RCtrl[TXT_MAX_COLS]; +char txt_key_LCtrl[TXT_MAX_COLS]; +char txt_key_RAlt[TXT_MAX_COLS]; +char txt_key_LAlt[TXT_MAX_COLS]; +char txt_key_RMeta[TXT_MAX_COLS]; +char txt_key_LMeta[TXT_MAX_COLS]; +char txt_key_LSuper[TXT_MAX_COLS]; +char txt_key_RSuper[TXT_MAX_COLS]; +char txt_key_AltGr[TXT_MAX_COLS]; +char txt_key_Compose[TXT_MAX_COLS]; +char txt_key_Help[TXT_MAX_COLS]; +char txt_key_PrScr[TXT_MAX_COLS]; +char txt_key_SysRq[TXT_MAX_COLS]; +char txt_key_Break[TXT_MAX_COLS]; +char txt_key_Menu[TXT_MAX_COLS]; +char txt_key_Power[TXT_MAX_COLS]; +char txt_key_Euro[TXT_MAX_COLS]; +char txt_key_Undo[TXT_MAX_COLS]; + +char txt_konstruktor_Ground[TXT_MAX_COLS]; +char txt_konstruktor_Stop[TXT_MAX_COLS]; +char txt_konstruktor_Radioactive_Field[TXT_MAX_COLS]; +char txt_konstruktor_Push_Box[TXT_MAX_COLS]; +char txt_konstruktor_Capsule[TXT_MAX_COLS]; +char txt_konstruktor_Bomb[TXT_MAX_COLS]; +char txt_konstruktor_Bomb2[TXT_MAX_COLS]; +char txt_konstruktor_Door[TXT_MAX_COLS]; +char txt_konstruktor_Box[TXT_MAX_COLS]; +char txt_konstruktor_Empty_Field[TXT_MAX_COLS]; +char txt_konstruktor_Butterfly[TXT_MAX_COLS]; +char txt_konstruktor_Gun_Fire[TXT_MAX_COLS]; +char txt_konstruktor_Force_Field[TXT_MAX_COLS]; +char txt_konstruktor_Screw[TXT_MAX_COLS]; +char txt_konstruktor_Wall[TXT_MAX_COLS]; +char txt_konstruktor_Black_Wall[TXT_MAX_COLS]; +char txt_konstruktor_Teleport[TXT_MAX_COLS]; +char txt_konstruktor_Gun[TXT_MAX_COLS]; +char txt_konstruktor_Magnet[TXT_MAX_COLS]; +char txt_konstruktor_Bear[TXT_MAX_COLS]; +char txt_konstruktor_Black_Bear[TXT_MAX_COLS]; +char txt_konstruktor_Bird[TXT_MAX_COLS]; +char txt_konstruktor_Key[TXT_MAX_COLS]; +char txt_konstruktor_Bullets[TXT_MAX_COLS]; +char txt_konstruktor_on_map[TXT_MAX_COLS]; +char txt_konstruktor_Laser_Gun[TXT_MAX_COLS]; +char txt_konstruktor_Blaster_Gun[TXT_MAX_COLS]; +char txt_konstruktor_Regular_Gun[TXT_MAX_COLS]; +char txt_konstruktor_Fixed[TXT_MAX_COLS]; +char txt_konstruktor_Moveable[TXT_MAX_COLS]; +char txt_konstruktor_Rotating[TXT_MAX_COLS]; +char txt_konstruktor_Moveable_Rotating[TXT_MAX_COLS]; +char txt_konstruktor_Direction_right[TXT_MAX_COLS]; +char txt_konstruktor_Direction_down[TXT_MAX_COLS]; +char txt_konstruktor_Direction_left[TXT_MAX_COLS]; +char txt_konstruktor_Direction_up[TXT_MAX_COLS]; +char txt_konstruktor_Welcome_to_GNU_Robbo_Designer[TXT_MAX_COLS]; +char txt_konstruktor_Exit_designer_select_again_to_exit[TXT_MAX_COLS]; +char txt_konstruktor_Reload_level_select_again_to_reload[TXT_MAX_COLS]; +char txt_konstruktor_Level_reloaded[TXT_MAX_COLS]; +char txt_konstruktor_New_level_select_again_to_create[TXT_MAX_COLS]; +char txt_konstruktor_Level_created[TXT_MAX_COLS]; +char txt_konstruktor_Save_select_again_to_save_new_level[TXT_MAX_COLS]; +char txt_konstruktor_New_level_appended_to_pack[TXT_MAX_COLS]; +char txt_konstruktor_Clear_level_select_again_to_clear[TXT_MAX_COLS]; +char txt_konstruktor_Level_cleared[TXT_MAX_COLS]; +char txt_konstruktor_Save_select_again_to_save_changes[TXT_MAX_COLS]; +char txt_konstruktor_Changes_saved[TXT_MAX_COLS]; +char txt_konstruktor_Level_resized_to[TXT_MAX_COLS]; +char txt_konstruktor_Screws[TXT_MAX_COLS]; + +struct locale locales[MAX_LOCALES]; + +int locale_count; +int selected_locale; +int temp_selected_locale; + /* Function prototypes */ --- a/sound.h +++ b/sound.h @@ -78,15 +78,15 @@ /* * Variables */ -int sound; -int temp_game_sound; -int sfx_vol; -int temp_sfx_vol; +extern int sound; +extern int temp_game_sound; +extern int sfx_vol; +extern int temp_sfx_vol; /* * if we do not support music, we assume, that volume is sfx_volume */ #ifdef HAVE_MUSIC -int volume; +extern int volume; #else #define volume sfx_vol #endif --- a/sound.c +++ b/sound.c @@ -93,7 +93,16 @@ int next_song = 0; int absent = 1; int tempvol = 0; - /*******************/ + +int sound; +int temp_game_sound; +int sfx_vol; +int temp_sfx_vol; +#ifdef HAVE_MUSIC +int volume; +#endif + +/*******************/ /* * table of sounds */ --- a/rcfile.h +++ b/rcfile.h @@ -37,13 +37,14 @@ #define RCFILE_SAVE_ON_CHANGE 1 /* Variables */ -char path_resource_file[100]; +extern char path_resource_file[100]; -struct { +struct rcfile { int save_frequency; -} rcfile; +}; +extern struct rcfile rcfile; -int temp_rcfile_save_frequency; +extern int temp_rcfile_save_frequency; /* Function prototypes */ int read_resource_file(char *filename); --- a/rcfile.c +++ b/rcfile.c @@ -28,7 +28,11 @@ #define UNDEFINED2 -2 /* Variables */ +char path_resource_file[100]; +struct rcfile rcfile; + +int temp_rcfile_save_frequency; /* Function prototypes */ --- a/skins.c +++ b/skins.c @@ -59,6 +59,28 @@ /* Variables */ char *data_state[] = { "DATA_UNREAD", "DATA_READING", "DATA_READ", "DATA_INCOMPLETE" }; +SDL_Surface *wm_icon; +SDL_Surface *icons; +#ifdef LIGHTNINGENABLED +SDL_Surface *efx; +#endif +SDL_Surface *ciphers; +SDL_Surface *alpha; +SDL_Surface *bgrnd; +TTF_Font *font; + +SDL_Rect robbo_images_srcrect[8]; +SDL_Rect score_images_srcrect[10]; +SDL_Rect score_screw_srcrect; +SDL_Rect score_key_srcrect; +SDL_Rect score_bullet_srcrect; +SDL_Rect score_level_srcrect; + +struct skin skins[MAX_SKINS]; + +int skin_count; /* How many skins are in the list */ +int selected_skin; /* Which skin in the list is currently selected */ +int temp_selected_skin; /* Function prototypes */ void read_skin_project_colours (void); --- a/skins.h +++ b/skins.h @@ -44,22 +44,22 @@ #define DESIGNER_OBJV_TILE_COLOUR 0x202020 /* Variables */ -SDL_Surface *wm_icon; -SDL_Surface *icons; +extern SDL_Surface *wm_icon; +extern SDL_Surface *icons; #ifdef LIGHTNINGENABLED -SDL_Surface *efx; +extern SDL_Surface *efx; #endif -SDL_Surface *ciphers; -SDL_Surface *alpha; -SDL_Surface *bgrnd; -TTF_Font *font; +extern SDL_Surface *ciphers; +extern SDL_Surface *alpha; +extern SDL_Surface *bgrnd; +extern TTF_Font *font; -SDL_Rect robbo_images_srcrect[8]; -SDL_Rect score_images_srcrect[10]; -SDL_Rect score_screw_srcrect; -SDL_Rect score_key_srcrect; -SDL_Rect score_bullet_srcrect; -SDL_Rect score_level_srcrect; +extern SDL_Rect robbo_images_srcrect[8]; +extern SDL_Rect score_images_srcrect[10]; +extern SDL_Rect score_screw_srcrect; +extern SDL_Rect score_key_srcrect; +extern SDL_Rect score_bullet_srcrect; +extern SDL_Rect score_level_srcrect; struct skin { @@ -85,11 +85,11 @@ Uint32 designer_OBJS_tile_colour; Uint32 designer_OBJV_tile_colour; }; -struct skin skins[MAX_SKINS]; +extern struct skin skins[MAX_SKINS]; -int skin_count; /* How many skins are in the list */ -int selected_skin; /* Which skin in the list is currently selected */ -int temp_selected_skin; +extern int skin_count; /* How many skins are in the list */ +extern int selected_skin; /* Which skin in the list is currently selected */ +extern int temp_selected_skin; /* Function prototypes */ int find_all_skins (void); --- a/ROB_engine.h +++ b/ROB_engine.h @@ -118,7 +118,7 @@ void *pob; /* Parent object pointer */ } ROB_Object; -ROB_Object *rob_lyr_pointer; +extern ROB_Object *rob_lyr_pointer; typedef struct robevent { ROB_Object *rob_object; --- a/board.h +++ b/board.h @@ -125,7 +125,7 @@ #define EFFECT_NONE -1 /* Variables */ -int restart_timeout; /* Time to wait before restarting a level after Robbo dies */ +extern int restart_timeout; /* Time to wait before restarting a level after Robbo dies */ struct Coords { @@ -162,9 +162,9 @@ #endif struct Coords icon[MAX_ICONS]; /* Coords of left-up point of icons drawed on bitmap */ }; -struct object board[MAX_W][MAX_H]; /* This is the game area. Each board location holds one and only one of the above objects */ +extern struct object board[MAX_W][MAX_H]; /* This is the game area. Each board location holds one and only one of the above objects */ -struct +struct robbo { int x; /* Board x position */ int y; /* Board y position */ @@ -180,10 +180,11 @@ int blocked; /* robbo cannot move - possible magnet moving */ int blocked_direction; /* where robbo should be moved after blocking */ int teleporting; /* Set to TRUE when Robbo is teleporting */ -} robbo; +}; +extern struct robbo robbo; /* What is shown of the board is seen through this viewport */ -struct +struct viewport { int x; /* Board x position */ int y; /* Board y position */ @@ -199,15 +200,17 @@ int yoffset; int cycles_to_dest; int maximise; -} viewport; +}; +extern struct viewport viewport; /* Some game mechanics that I have made available for modification via the rcfile */ -struct +struct game_mechanics { int sensible_bears; int sensible_questionmarks; int sensible_solid_lasers; -} game_mechanics; +}; +extern struct game_mechanics game_mechanics; /* Function prototypes */ void update_game (void); --- a/controls.h +++ b/controls.h @@ -85,21 +85,21 @@ /* Variables */ -SDL_Joystick *joystick; +extern SDL_Joystick *joystick; -char default_joystick_name[MAX_JOYSTICK_NAME_LENGTH]; -int joystick_count; -char joystick_list[MAX_JOYSTICKS][MAX_JOYSTICK_NAME_LENGTH]; +extern char default_joystick_name[MAX_JOYSTICK_NAME_LENGTH]; +extern int joystick_count; +extern char joystick_list[MAX_JOYSTICKS][MAX_JOYSTICK_NAME_LENGTH]; /* Configurable options */ -int key_repeat_delay; /* 20 to 1000 ms */ -int temp_key_repeat_delay; /* 20 to 1000 ms */ -int key_repeat_interval; /* 20 to 1000 ms */ -int temp_key_repeat_interval; /* 20 to 1000 ms */ -int default_joystick; -int temp_default_joystick; -int joystick_dead_zone; -int temp_joystick_dead_zone; +extern int key_repeat_delay; /* 20 to 1000 ms */ +extern int temp_key_repeat_delay; /* 20 to 1000 ms */ +extern int key_repeat_interval; /* 20 to 1000 ms */ +extern int temp_key_repeat_interval; /* 20 to 1000 ms */ +extern int default_joystick; +extern int temp_default_joystick; +extern int joystick_dead_zone; +extern int temp_joystick_dead_zone; struct control { int device; /* Keyboard, joystick or mouse */ @@ -110,11 +110,11 @@ int delay; /* The initial delay in cycles before repeating - 0 disables the delay */ int interval; /* The repeat interval in cycles - 0 disables the interval */ }; -struct control user_controls[USER_CONTROLS]; -struct control temp_user_controls[USER_CONTROLS]; +extern struct control user_controls[USER_CONTROLS]; +extern struct control temp_user_controls[USER_CONTROLS]; -ROB_OpEnv gnurobbo_op_env; -ROB_OpEnv temp_gnurobbo_op_env; +extern ROB_OpEnv gnurobbo_op_env; +extern ROB_OpEnv temp_gnurobbo_op_env; /* Function prototypes */ int get_user_action(int *actionid, int pollall, int *device, int *id, int *state); --- a/game.h +++ b/game.h @@ -184,25 +184,24 @@ /* Variables */ #ifdef DEBUG_COLOUR_SELECT -int debug_colour_select_r; -int debug_colour_select_g; -int debug_colour_select_b; -int debug_colour_select_component; +extern int debug_colour_select_r; +extern int debug_colour_select_g; +extern int debug_colour_select_b; +extern int debug_colour_select_component; #endif -int sound; -int game_mode; -int game_cycle_delay; /* Defaults to 10ms */ -int game_cycle_limit; /* 20, 25, 33 Hz */ -int temp_game_cycle_limit; /* 20, 25, 33 Hz */ -int cycle_count; /* A running cycle count used for time stamping objects */ -int temp_game_sound; -int temp_sfx_vol; -int introscreenselecteditem; -int helppage; -int helppageselecteditem; -int options[104]; -int optionspage; -int optionspageselecteditem[OPTIONS_SCREEN_PAGES]; +extern int game_mode; +extern int game_cycle_delay; /* Defaults to 10ms */ +extern int game_cycle_limit; /* 20, 25, 33 Hz */ +extern int temp_game_cycle_limit; /* 20, 25, 33 Hz */ +extern int cycle_count; /* A running cycle count used for time stamping objects */ +extern int temp_game_sound; +extern int temp_sfx_vol; +extern int introscreenselecteditem; +extern int helppage; +extern int helppageselecteditem; +extern int options[104]; +extern int optionspage; +extern int optionspageselecteditem[OPTIONS_SCREEN_PAGES]; /* Function prototypes */ int my_rand (); --- a/konstruktor.h +++ b/konstruktor.h @@ -93,14 +93,15 @@ /* Thunor: This is now being defined and declared at the same * time since we only require one of them */ -struct { +struct k_view { int x; int y; int w; int h; int offsetx; int offsety; -} k_view; +}; +extern struct k_view k_view; @@ -108,17 +109,17 @@ -SDL_Surface *k_icons; +extern SDL_Surface *k_icons; /* * variables */ -int K_exit; -int lastclick; -int K_direction; -char infostring[255]; -int inforedraw; -int kmx, +extern int K_exit; +extern int lastclick; +extern int K_direction; +extern char infostring[255]; +extern int inforedraw; +extern int kmx, kmy; /* * prototypes --- a/levels.h +++ b/levels.h @@ -31,7 +31,7 @@ #define DEFAULT_LEVEL_COLOUR 0x608050 /* Variables */ -struct { +struct level { int w; int h; char author[60]; /* The text displayed on the authorline above the viewport */ @@ -39,7 +39,8 @@ Uint32 colour; /* The colour if found or the default_level_colour if found in the level pack */ Uint32 colour_override; /* The colour if found or the default_level_colour if found in the skinrc */ char notes[1024]; /* This is displayed nowhere now, but contains information about notes */ -} level; +}; +extern struct level level; struct pack { char filename[256]; /* e.g. /usr/local/share/gnurobbo/levels/original.dat or ~/.gnurobbo/levels/mylevels.dat */ @@ -49,11 +50,11 @@ int level_selected; /* e.g. 3 is currently selected by the user */ int selected; /* e.g. This pack is currently selected by the user */ }; -struct pack level_packs[MAX_LEVEL_PACKS]; +extern struct pack level_packs[MAX_LEVEL_PACKS]; -int found_pack_count; /* How many packs were physically found */ -int level_pack_count; /* How many packs are in the list (historical entries from the rc are added to the end) */ -int selected_pack; /* Which pack in the list is currently selected */ +extern int found_pack_count; /* How many packs were physically found */ +extern int level_pack_count; /* How many packs are in the list (historical entries from the rc are added to the end) */ +extern int selected_pack; /* Which pack in the list is currently selected */ /* Function prototypes */ int level_init(void); @@ -62,7 +63,3 @@ void read_level_packs(void); void sort_level_packs(void); int load_level_data(int level_number); - - - - --- a/pointer_controls.h +++ b/pointer_controls.h @@ -53,8 +53,8 @@ int shoot_state; int pad_type; }; -struct pointercontrols pointer_controls; -struct pointercontrols temp_pointer_controls; +extern struct pointercontrols pointer_controls; +extern struct pointercontrols temp_pointer_controls; /* Function prototypes */ void pointer_controls_event_processor(ROB_Event *rob_event); --- a/screen.h +++ b/screen.h @@ -49,43 +49,38 @@ #define EFX_SHOOT 8 /* Variables */ -SDL_Surface *screen; +extern SDL_Surface *screen; -struct { +struct screen { int redraw; /* An ORed combination of REDRAW_* bits */ -} intro_screen; +}; +extern struct screen intro_screen; +extern struct screen help_screen; +extern struct screen options_screen; +extern struct screen game_area; -struct { - int redraw; /* An ORed combination of REDRAW_* bits */ -} help_screen; - -struct { - int redraw; /* An ORed combination of REDRAW_* bits */ -} options_screen; - -struct { - int redraw; /* An ORed combination of REDRAW_* bits */ -} game_area; - -struct { +struct scoreline { int xoffset; int yoffset; int redraw; /* An ORed combination of SCORELINE_* bits */ -} scoreline; +}; +extern struct scoreline scoreline; -struct { +struct authorline { int xoffset; int yoffset; -} authorline; +}; +extern struct authorline authorline; -struct { +struct video { int xres; int yres; int field_size; int fullscreen; /* 0 or SDL_FULLSCREEN */ int xshift; int yshift; -} video; +}; +extern struct video video; typedef struct msgbox { char name[256]; /* A unique name */ --- a/controls.c +++ b/controls.c @@ -84,6 +84,28 @@ /* Variables */ SDL_Event event; +SDL_Joystick *joystick; + +char default_joystick_name[MAX_JOYSTICK_NAME_LENGTH]; +int joystick_count; +char joystick_list[MAX_JOYSTICKS][MAX_JOYSTICK_NAME_LENGTH]; + +/* Configurable options */ +int key_repeat_delay; /* 20 to 1000 ms */ +int temp_key_repeat_delay; /* 20 to 1000 ms */ +int key_repeat_interval; /* 20 to 1000 ms */ +int temp_key_repeat_interval; /* 20 to 1000 ms */ +int default_joystick; +int temp_default_joystick; +int joystick_dead_zone; +int temp_joystick_dead_zone; + +struct control user_controls[USER_CONTROLS]; +struct control temp_user_controls[USER_CONTROLS]; + +ROB_OpEnv gnurobbo_op_env; +ROB_OpEnv temp_gnurobbo_op_env; + /* Function prototypes */ --- a/screen.c +++ b/screen.c @@ -38,6 +38,15 @@ /* Variables */ SDL_Color bgcolor, fgcolor; /* General purpose colours */ SDL_Surface *image; /* General purpose surface */ +SDL_Surface *screen; + +struct screen intro_screen; +struct screen help_screen; +struct screen options_screen; +struct screen game_area; +struct scoreline scoreline; +struct authorline authorline; +struct video video; /* Used for animating banners */ int bannerstate = 0; --- a/game.c +++ b/game.c @@ -66,6 +66,24 @@ int gua_id; /* Used when getting actions */ int gua_state; /* Used when getting actions */ +#ifdef DEBUG_COLOUR_SELECT +int debug_colour_select_r; +int debug_colour_select_g; +int debug_colour_select_b; +int debug_colour_select_component; +#endif +int game_mode; +int game_cycle_delay; /* Defaults to 10ms */ +int game_cycle_limit; /* 20, 25, 33 Hz */ +int temp_game_cycle_limit; /* 20, 25, 33 Hz */ +int cycle_count; /* A running cycle count used for time stamping objects */ +int introscreenselecteditem; +int helppage; +int helppageselecteditem; +int options[104]; +int optionspage; +int optionspageselecteditem[OPTIONS_SCREEN_PAGES]; + /* Function prototypes */ Uint32 game_timer (Uint32 interval, void *param); void clean_up_before_exit (void); --- a/levels.c +++ b/levels.c @@ -30,6 +30,14 @@ /* Variables */ extern char *data_state[]; +struct level level; + +struct pack level_packs[MAX_LEVEL_PACKS]; + +int found_pack_count; /* How many packs were physically found */ +int level_pack_count; /* How many packs are in the list (historical entries from the rc are added to the end) */ +int selected_pack; /* Which pack in the list is currently selected */ + /* Function prototypes */ int transform_char (char c); --- a/board.c +++ b/board.c @@ -32,6 +32,15 @@ /* * Variables */ +int restart_timeout; /* Time to wait before restarting a level after Robbo dies */ + +struct object board[MAX_W][MAX_H]; /* This is the game area. Each board location holds one and only one of the above objects */ + +struct robbo robbo; + +struct viewport viewport; + +struct game_mechanics game_mechanics; /* --- a/konstruktor.c +++ b/konstruktor.c @@ -80,6 +80,16 @@ struct k_icons K_icons[K_MAXICONS]; +struct k_view k_view; +SDL_Surface *k_icons; +int K_exit; +int lastclick; +int K_direction; +char infostring[255]; +int inforedraw; +int kmx, + kmy; + /* * designer state variables */ --- a/pointer_controls.c +++ b/pointer_controls.c @@ -39,6 +39,9 @@ SDL_Rect toolbar_restart_image_srcrect; SDL_Rect toolbar_hide_image_srcrect; +struct pointercontrols pointer_controls; +struct pointercontrols temp_pointer_controls; + /* Function prototypes */ --- a/ROB_engine.c +++ b/ROB_engine.c @@ -80,6 +80,8 @@ int rob_object_count = 0; char rob_last_error[ROB_ERROR_LENGTH]; +ROB_Object *rob_lyr_pointer; + /* Function prototypes */ int ROB_SetObjectZOrder(ROB_Object *rob_object, int position, ROB_Object *target); void ROB_FreeAllObjects(void);