Codebase list gnurobbo / 9cf0627
Ensure variables are only declared once Closes: #957292 Stephen Kitt 4 years ago
3 changed file(s) with 1276 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 gnurobbo (0.68+dfsg-5) UNRELEASED; urgency=medium
1
2 * Ensure variables are only declared once. Closes: #957292.
3
4 -- Stephen Kitt <skitt@debian.org> Fri, 08 May 2020 23:10:11 +0200
5
06 gnurobbo (0.68+dfsg-4) unstable; urgency=medium
17
28 * Migrate to Salsa.
11 Makefile.diff
22 reproducible-build.patch
33 gcc-7.patch
4 single-variable-declarations.patch
0 Description: Ensure variables are only declared once
1 Author: Stephen Kitt <skitt@debian.org>
2
3 --- a/locales.h
4 +++ b/locales.h
5 @@ -36,206 +36,206 @@
6 #define TXT_MAX_COLS 100
7
8 /* Variables */
9 -char txt_intro_story[TXT_INTRO_STORY_ROWS * TXT_MAX_COLS];
10 -char txt_intro_keys[TXT_INTRO_KEYS_ROWS * TXT_MAX_COLS];
11 -char txt_intro_keys_description[TXT_INTRO_KEYS_DESCRIPTION_ROWS * TXT_MAX_COLS];
12 -char txt_intro_menu[TXT_INTRO_MENU_ROWS * TXT_MAX_COLS];
13 -char txt_of[TXT_MAX_COLS];
14 -char txt_intro_credits[TXT_INTRO_CREDITS_ROWS * TXT_MAX_COLS];
15 -
16 -char txt_help_page0[TXT_HELP_PAGE0_ROWS * TXT_MAX_COLS];
17 -char txt_help_page1[TXT_HELP_PAGE1_ROWS * TXT_MAX_COLS];
18 -char txt_help_page2[TXT_HELP_PAGE2_ROWS * TXT_MAX_COLS];
19 -char txt_help_page3[TXT_HELP_PAGE3_ROWS * TXT_MAX_COLS];
20 -char txt_Back[TXT_MAX_COLS];
21 -char txt_Next[TXT_MAX_COLS];
22 -char txt_Exit[TXT_MAX_COLS];
23 -
24 -char txt_options_page1[TXT_OPTIONS_PAGE1_ROWS * TXT_MAX_COLS];
25 -char txt_Save[TXT_MAX_COLS];
26 -char txt_Game_Speed[TXT_MAX_COLS];
27 -char txt_Fast[TXT_MAX_COLS];
28 -char txt_Normal[TXT_MAX_COLS];
29 -char txt_Slow[TXT_MAX_COLS];
30 -char txt_Key_Repeat[TXT_MAX_COLS];
31 -char txt_Delay[TXT_MAX_COLS];
32 -char txt_Interval[TXT_MAX_COLS];
33 -char txt_Default_Joystick[TXT_MAX_COLS];
34 -char txt_No_joystick_found[TXT_MAX_COLS];
35 -char txt_Joystick_Axes_Dead_Zone[TXT_MAX_COLS];
36 -char txt_Language[TXT_MAX_COLS];
37 -char txt_Translation_by[TXT_MAX_COLS];
38 -char txt_Save_Frequency[TXT_MAX_COLS];
39 -char txt_On_Exit[TXT_MAX_COLS];
40 -char txt_On_Change[TXT_MAX_COLS];
41 -char txt_Move_Up[TXT_MAX_COLS];
42 -char txt_Move_Up_Right[TXT_MAX_COLS];
43 -char txt_Move_Right[TXT_MAX_COLS];
44 -char txt_Move_Down_Right[TXT_MAX_COLS];
45 -char txt_Move_Down[TXT_MAX_COLS];
46 -char txt_Move_Down_Left[TXT_MAX_COLS];
47 -char txt_Move_Left[TXT_MAX_COLS];
48 -char txt_Move_Up_Left[TXT_MAX_COLS];
49 -char txt_Shoot_Up[TXT_MAX_COLS];
50 -char txt_Shoot_Down[TXT_MAX_COLS];
51 -char txt_Shoot_Left[TXT_MAX_COLS];
52 -char txt_Shoot_Right[TXT_MAX_COLS];
53 -char txt_Restart[TXT_MAX_COLS];
54 -char txt_Confirm[TXT_MAX_COLS];
55 -char txt_Help[TXT_MAX_COLS];
56 -char txt_Options[TXT_MAX_COLS];
57 -char txt_Previous_Level[TXT_MAX_COLS];
58 -char txt_Next_Level[TXT_MAX_COLS];
59 -char txt_Previous_Pack[TXT_MAX_COLS];
60 -char txt_Next_Pack[TXT_MAX_COLS];
61 -char txt_Toggle_Fullscreen[TXT_MAX_COLS];
62 -char txt_Home[TXT_MAX_COLS];
63 -char txt_End[TXT_MAX_COLS];
64 -char txt_Page_Up[TXT_MAX_COLS];
65 -char txt_Page_Down[TXT_MAX_COLS];
66 -char txt_Volume_Up[TXT_MAX_COLS];
67 -char txt_Volume_Down[TXT_MAX_COLS];
68 -char txt_Modifier[TXT_MAX_COLS];
69 -char txt_Restore_Default_Controls[TXT_MAX_COLS];
70 -char txt_Toggle_Designer[TXT_MAX_COLS];
71 -char txt_Scroll_Up[TXT_MAX_COLS];
72 -char txt_Scroll_Down[TXT_MAX_COLS];
73 -char txt_Primary_Click[TXT_MAX_COLS];
74 -char txt_System_Pointer[TXT_MAX_COLS];
75 -char txt_Disabled[TXT_MAX_COLS];
76 -char txt_Enabled[TXT_MAX_COLS];
77 -char txt_Pointer_Controls_Pad_Type[TXT_MAX_COLS];
78 -char txt_Viewport[TXT_MAX_COLS];
79 -char txt_Screen[TXT_MAX_COLS];
80 -char txt_Sound[TXT_MAX_COLS];
81 -char txt_Sfx_Volume[TXT_MAX_COLS];
82 -char txt_Simulated_Pointer[TXT_MAX_COLS];
83 -
84 -char txt_Key[TXT_MAX_COLS];
85 -char txt_Joy[TXT_MAX_COLS];
86 -char txt_Ptr[TXT_MAX_COLS];
87 -char txt_Mod[TXT_MAX_COLS];
88 -char txt_Skin[TXT_MAX_COLS];
89 -char txt_By[TXT_MAX_COLS];
90 -
91 -char txt_Level_Author[TXT_MAX_COLS];
92 -char txt_endscreen_congrats[TXT_ENDSCREEN_CONGRATS_ROWS * TXT_MAX_COLS];
93 -
94 -char txt_Volume[TXT_MAX_COLS];
95 -char txt_Changes_saved[TXT_MAX_COLS];
96 -char txt_Default_controls_restored[TXT_MAX_COLS];
97 -char txt_Press_something_and_release[TXT_MAX_COLS];
98 -char txt_No_input_was_detected[TXT_MAX_COLS];
99 -
100 -char txt_ptr_BtnLeft[TXT_MAX_COLS];
101 -char txt_ptr_BtnMiddle[TXT_MAX_COLS];
102 -char txt_ptr_BtnRight[TXT_MAX_COLS];
103 -char txt_ptr_WheelUp[TXT_MAX_COLS];
104 -char txt_ptr_WheelDown[TXT_MAX_COLS];
105 -
106 -char txt_key_Backspace[TXT_MAX_COLS];
107 -char txt_key_Tab[TXT_MAX_COLS];
108 -char txt_key_Clear[TXT_MAX_COLS];
109 -char txt_key_Return[TXT_MAX_COLS];
110 -char txt_key_Pause[TXT_MAX_COLS];
111 -char txt_key_Escape[TXT_MAX_COLS];
112 -char txt_key_Space[TXT_MAX_COLS];
113 -char txt_key_Delete[TXT_MAX_COLS];
114 -char txt_key_KP[TXT_MAX_COLS];
115 -char txt_key_Up[TXT_MAX_COLS];
116 -char txt_key_Down[TXT_MAX_COLS];
117 -char txt_key_Right[TXT_MAX_COLS];
118 -char txt_key_Left[TXT_MAX_COLS];
119 -char txt_key_Insert[TXT_MAX_COLS];
120 -char txt_key_Home[TXT_MAX_COLS];
121 -char txt_key_End[TXT_MAX_COLS];
122 -char txt_key_PgUp[TXT_MAX_COLS];
123 -char txt_key_PgDn[TXT_MAX_COLS];
124 -char txt_key_NumLk[TXT_MAX_COLS];
125 -char txt_key_CapsLk[TXT_MAX_COLS];
126 -char txt_key_ScrlLk[TXT_MAX_COLS];
127 -char txt_key_RShift[TXT_MAX_COLS];
128 -char txt_key_LShift[TXT_MAX_COLS];
129 -char txt_key_RCtrl[TXT_MAX_COLS];
130 -char txt_key_LCtrl[TXT_MAX_COLS];
131 -char txt_key_RAlt[TXT_MAX_COLS];
132 -char txt_key_LAlt[TXT_MAX_COLS];
133 -char txt_key_RMeta[TXT_MAX_COLS];
134 -char txt_key_LMeta[TXT_MAX_COLS];
135 -char txt_key_LSuper[TXT_MAX_COLS];
136 -char txt_key_RSuper[TXT_MAX_COLS];
137 -char txt_key_AltGr[TXT_MAX_COLS];
138 -char txt_key_Compose[TXT_MAX_COLS];
139 -char txt_key_Help[TXT_MAX_COLS];
140 -char txt_key_PrScr[TXT_MAX_COLS];
141 -char txt_key_SysRq[TXT_MAX_COLS];
142 -char txt_key_Break[TXT_MAX_COLS];
143 -char txt_key_Menu[TXT_MAX_COLS];
144 -char txt_key_Power[TXT_MAX_COLS];
145 -char txt_key_Euro[TXT_MAX_COLS];
146 -char txt_key_Undo[TXT_MAX_COLS];
147 -
148 -char txt_konstruktor_Ground[TXT_MAX_COLS];
149 -char txt_konstruktor_Stop[TXT_MAX_COLS];
150 -char txt_konstruktor_Radioactive_Field[TXT_MAX_COLS];
151 -char txt_konstruktor_Push_Box[TXT_MAX_COLS];
152 -char txt_konstruktor_Capsule[TXT_MAX_COLS];
153 -char txt_konstruktor_Bomb[TXT_MAX_COLS];
154 -char txt_konstruktor_Bomb2[TXT_MAX_COLS];
155 -char txt_konstruktor_Door[TXT_MAX_COLS];
156 -char txt_konstruktor_Box[TXT_MAX_COLS];
157 -char txt_konstruktor_Empty_Field[TXT_MAX_COLS];
158 -char txt_konstruktor_Butterfly[TXT_MAX_COLS];
159 -char txt_konstruktor_Gun_Fire[TXT_MAX_COLS];
160 -char txt_konstruktor_Force_Field[TXT_MAX_COLS];
161 -char txt_konstruktor_Screw[TXT_MAX_COLS];
162 -char txt_konstruktor_Wall[TXT_MAX_COLS];
163 -char txt_konstruktor_Black_Wall[TXT_MAX_COLS];
164 -char txt_konstruktor_Teleport[TXT_MAX_COLS];
165 -char txt_konstruktor_Gun[TXT_MAX_COLS];
166 -char txt_konstruktor_Magnet[TXT_MAX_COLS];
167 -char txt_konstruktor_Bear[TXT_MAX_COLS];
168 -char txt_konstruktor_Black_Bear[TXT_MAX_COLS];
169 -char txt_konstruktor_Bird[TXT_MAX_COLS];
170 -char txt_konstruktor_Key[TXT_MAX_COLS];
171 -char txt_konstruktor_Bullets[TXT_MAX_COLS];
172 -char txt_konstruktor_on_map[TXT_MAX_COLS];
173 -char txt_konstruktor_Laser_Gun[TXT_MAX_COLS];
174 -char txt_konstruktor_Blaster_Gun[TXT_MAX_COLS];
175 -char txt_konstruktor_Regular_Gun[TXT_MAX_COLS];
176 -char txt_konstruktor_Fixed[TXT_MAX_COLS];
177 -char txt_konstruktor_Moveable[TXT_MAX_COLS];
178 -char txt_konstruktor_Rotating[TXT_MAX_COLS];
179 -char txt_konstruktor_Moveable_Rotating[TXT_MAX_COLS];
180 -char txt_konstruktor_Direction_right[TXT_MAX_COLS];
181 -char txt_konstruktor_Direction_down[TXT_MAX_COLS];
182 -char txt_konstruktor_Direction_left[TXT_MAX_COLS];
183 -char txt_konstruktor_Direction_up[TXT_MAX_COLS];
184 -char txt_konstruktor_Welcome_to_GNU_Robbo_Designer[TXT_MAX_COLS];
185 -char txt_konstruktor_Exit_designer_select_again_to_exit[TXT_MAX_COLS];
186 -char txt_konstruktor_Reload_level_select_again_to_reload[TXT_MAX_COLS];
187 -char txt_konstruktor_Level_reloaded[TXT_MAX_COLS];
188 -char txt_konstruktor_New_level_select_again_to_create[TXT_MAX_COLS];
189 -char txt_konstruktor_Level_created[TXT_MAX_COLS];
190 -char txt_konstruktor_Save_select_again_to_save_new_level[TXT_MAX_COLS];
191 -char txt_konstruktor_New_level_appended_to_pack[TXT_MAX_COLS];
192 -char txt_konstruktor_Clear_level_select_again_to_clear[TXT_MAX_COLS];
193 -char txt_konstruktor_Level_cleared[TXT_MAX_COLS];
194 -char txt_konstruktor_Save_select_again_to_save_changes[TXT_MAX_COLS];
195 -char txt_konstruktor_Changes_saved[TXT_MAX_COLS];
196 -char txt_konstruktor_Level_resized_to[TXT_MAX_COLS];
197 -char txt_konstruktor_Screws[TXT_MAX_COLS];
198 +extern char txt_intro_story[TXT_INTRO_STORY_ROWS * TXT_MAX_COLS];
199 +extern char txt_intro_keys[TXT_INTRO_KEYS_ROWS * TXT_MAX_COLS];
200 +extern char txt_intro_keys_description[TXT_INTRO_KEYS_DESCRIPTION_ROWS * TXT_MAX_COLS];
201 +extern char txt_intro_menu[TXT_INTRO_MENU_ROWS * TXT_MAX_COLS];
202 +extern char txt_of[TXT_MAX_COLS];
203 +extern char txt_intro_credits[TXT_INTRO_CREDITS_ROWS * TXT_MAX_COLS];
204 +
205 +extern char txt_help_page0[TXT_HELP_PAGE0_ROWS * TXT_MAX_COLS];
206 +extern char txt_help_page1[TXT_HELP_PAGE1_ROWS * TXT_MAX_COLS];
207 +extern char txt_help_page2[TXT_HELP_PAGE2_ROWS * TXT_MAX_COLS];
208 +extern char txt_help_page3[TXT_HELP_PAGE3_ROWS * TXT_MAX_COLS];
209 +extern char txt_Back[TXT_MAX_COLS];
210 +extern char txt_Next[TXT_MAX_COLS];
211 +extern char txt_Exit[TXT_MAX_COLS];
212 +
213 +extern char txt_options_page1[TXT_OPTIONS_PAGE1_ROWS * TXT_MAX_COLS];
214 +extern char txt_Save[TXT_MAX_COLS];
215 +extern char txt_Game_Speed[TXT_MAX_COLS];
216 +extern char txt_Fast[TXT_MAX_COLS];
217 +extern char txt_Normal[TXT_MAX_COLS];
218 +extern char txt_Slow[TXT_MAX_COLS];
219 +extern char txt_Key_Repeat[TXT_MAX_COLS];
220 +extern char txt_Delay[TXT_MAX_COLS];
221 +extern char txt_Interval[TXT_MAX_COLS];
222 +extern char txt_Default_Joystick[TXT_MAX_COLS];
223 +extern char txt_No_joystick_found[TXT_MAX_COLS];
224 +extern char txt_Joystick_Axes_Dead_Zone[TXT_MAX_COLS];
225 +extern char txt_Language[TXT_MAX_COLS];
226 +extern char txt_Translation_by[TXT_MAX_COLS];
227 +extern char txt_Save_Frequency[TXT_MAX_COLS];
228 +extern char txt_On_Exit[TXT_MAX_COLS];
229 +extern char txt_On_Change[TXT_MAX_COLS];
230 +extern char txt_Move_Up[TXT_MAX_COLS];
231 +extern char txt_Move_Up_Right[TXT_MAX_COLS];
232 +extern char txt_Move_Right[TXT_MAX_COLS];
233 +extern char txt_Move_Down_Right[TXT_MAX_COLS];
234 +extern char txt_Move_Down[TXT_MAX_COLS];
235 +extern char txt_Move_Down_Left[TXT_MAX_COLS];
236 +extern char txt_Move_Left[TXT_MAX_COLS];
237 +extern char txt_Move_Up_Left[TXT_MAX_COLS];
238 +extern char txt_Shoot_Up[TXT_MAX_COLS];
239 +extern char txt_Shoot_Down[TXT_MAX_COLS];
240 +extern char txt_Shoot_Left[TXT_MAX_COLS];
241 +extern char txt_Shoot_Right[TXT_MAX_COLS];
242 +extern char txt_Restart[TXT_MAX_COLS];
243 +extern char txt_Confirm[TXT_MAX_COLS];
244 +extern char txt_Help[TXT_MAX_COLS];
245 +extern char txt_Options[TXT_MAX_COLS];
246 +extern char txt_Previous_Level[TXT_MAX_COLS];
247 +extern char txt_Next_Level[TXT_MAX_COLS];
248 +extern char txt_Previous_Pack[TXT_MAX_COLS];
249 +extern char txt_Next_Pack[TXT_MAX_COLS];
250 +extern char txt_Toggle_Fullscreen[TXT_MAX_COLS];
251 +extern char txt_Home[TXT_MAX_COLS];
252 +extern char txt_End[TXT_MAX_COLS];
253 +extern char txt_Page_Up[TXT_MAX_COLS];
254 +extern char txt_Page_Down[TXT_MAX_COLS];
255 +extern char txt_Volume_Up[TXT_MAX_COLS];
256 +extern char txt_Volume_Down[TXT_MAX_COLS];
257 +extern char txt_Modifier[TXT_MAX_COLS];
258 +extern char txt_Restore_Default_Controls[TXT_MAX_COLS];
259 +extern char txt_Toggle_Designer[TXT_MAX_COLS];
260 +extern char txt_Scroll_Up[TXT_MAX_COLS];
261 +extern char txt_Scroll_Down[TXT_MAX_COLS];
262 +extern char txt_Primary_Click[TXT_MAX_COLS];
263 +extern char txt_System_Pointer[TXT_MAX_COLS];
264 +extern char txt_Disabled[TXT_MAX_COLS];
265 +extern char txt_Enabled[TXT_MAX_COLS];
266 +extern char txt_Pointer_Controls_Pad_Type[TXT_MAX_COLS];
267 +extern char txt_Viewport[TXT_MAX_COLS];
268 +extern char txt_Screen[TXT_MAX_COLS];
269 +extern char txt_Sound[TXT_MAX_COLS];
270 +extern char txt_Sfx_Volume[TXT_MAX_COLS];
271 +extern char txt_Simulated_Pointer[TXT_MAX_COLS];
272 +
273 +extern char txt_Key[TXT_MAX_COLS];
274 +extern char txt_Joy[TXT_MAX_COLS];
275 +extern char txt_Ptr[TXT_MAX_COLS];
276 +extern char txt_Mod[TXT_MAX_COLS];
277 +extern char txt_Skin[TXT_MAX_COLS];
278 +extern char txt_By[TXT_MAX_COLS];
279 +
280 +extern char txt_Level_Author[TXT_MAX_COLS];
281 +extern char txt_endscreen_congrats[TXT_ENDSCREEN_CONGRATS_ROWS * TXT_MAX_COLS];
282 +
283 +extern char txt_Volume[TXT_MAX_COLS];
284 +extern char txt_Changes_saved[TXT_MAX_COLS];
285 +extern char txt_Default_controls_restored[TXT_MAX_COLS];
286 +extern char txt_Press_something_and_release[TXT_MAX_COLS];
287 +extern char txt_No_input_was_detected[TXT_MAX_COLS];
288 +
289 +extern char txt_ptr_BtnLeft[TXT_MAX_COLS];
290 +extern char txt_ptr_BtnMiddle[TXT_MAX_COLS];
291 +extern char txt_ptr_BtnRight[TXT_MAX_COLS];
292 +extern char txt_ptr_WheelUp[TXT_MAX_COLS];
293 +extern char txt_ptr_WheelDown[TXT_MAX_COLS];
294 +
295 +extern char txt_key_Backspace[TXT_MAX_COLS];
296 +extern char txt_key_Tab[TXT_MAX_COLS];
297 +extern char txt_key_Clear[TXT_MAX_COLS];
298 +extern char txt_key_Return[TXT_MAX_COLS];
299 +extern char txt_key_Pause[TXT_MAX_COLS];
300 +extern char txt_key_Escape[TXT_MAX_COLS];
301 +extern char txt_key_Space[TXT_MAX_COLS];
302 +extern char txt_key_Delete[TXT_MAX_COLS];
303 +extern char txt_key_KP[TXT_MAX_COLS];
304 +extern char txt_key_Up[TXT_MAX_COLS];
305 +extern char txt_key_Down[TXT_MAX_COLS];
306 +extern char txt_key_Right[TXT_MAX_COLS];
307 +extern char txt_key_Left[TXT_MAX_COLS];
308 +extern char txt_key_Insert[TXT_MAX_COLS];
309 +extern char txt_key_Home[TXT_MAX_COLS];
310 +extern char txt_key_End[TXT_MAX_COLS];
311 +extern char txt_key_PgUp[TXT_MAX_COLS];
312 +extern char txt_key_PgDn[TXT_MAX_COLS];
313 +extern char txt_key_NumLk[TXT_MAX_COLS];
314 +extern char txt_key_CapsLk[TXT_MAX_COLS];
315 +extern char txt_key_ScrlLk[TXT_MAX_COLS];
316 +extern char txt_key_RShift[TXT_MAX_COLS];
317 +extern char txt_key_LShift[TXT_MAX_COLS];
318 +extern char txt_key_RCtrl[TXT_MAX_COLS];
319 +extern char txt_key_LCtrl[TXT_MAX_COLS];
320 +extern char txt_key_RAlt[TXT_MAX_COLS];
321 +extern char txt_key_LAlt[TXT_MAX_COLS];
322 +extern char txt_key_RMeta[TXT_MAX_COLS];
323 +extern char txt_key_LMeta[TXT_MAX_COLS];
324 +extern char txt_key_LSuper[TXT_MAX_COLS];
325 +extern char txt_key_RSuper[TXT_MAX_COLS];
326 +extern char txt_key_AltGr[TXT_MAX_COLS];
327 +extern char txt_key_Compose[TXT_MAX_COLS];
328 +extern char txt_key_Help[TXT_MAX_COLS];
329 +extern char txt_key_PrScr[TXT_MAX_COLS];
330 +extern char txt_key_SysRq[TXT_MAX_COLS];
331 +extern char txt_key_Break[TXT_MAX_COLS];
332 +extern char txt_key_Menu[TXT_MAX_COLS];
333 +extern char txt_key_Power[TXT_MAX_COLS];
334 +extern char txt_key_Euro[TXT_MAX_COLS];
335 +extern char txt_key_Undo[TXT_MAX_COLS];
336 +
337 +extern char txt_konstruktor_Ground[TXT_MAX_COLS];
338 +extern char txt_konstruktor_Stop[TXT_MAX_COLS];
339 +extern char txt_konstruktor_Radioactive_Field[TXT_MAX_COLS];
340 +extern char txt_konstruktor_Push_Box[TXT_MAX_COLS];
341 +extern char txt_konstruktor_Capsule[TXT_MAX_COLS];
342 +extern char txt_konstruktor_Bomb[TXT_MAX_COLS];
343 +extern char txt_konstruktor_Bomb2[TXT_MAX_COLS];
344 +extern char txt_konstruktor_Door[TXT_MAX_COLS];
345 +extern char txt_konstruktor_Box[TXT_MAX_COLS];
346 +extern char txt_konstruktor_Empty_Field[TXT_MAX_COLS];
347 +extern char txt_konstruktor_Butterfly[TXT_MAX_COLS];
348 +extern char txt_konstruktor_Gun_Fire[TXT_MAX_COLS];
349 +extern char txt_konstruktor_Force_Field[TXT_MAX_COLS];
350 +extern char txt_konstruktor_Screw[TXT_MAX_COLS];
351 +extern char txt_konstruktor_Wall[TXT_MAX_COLS];
352 +extern char txt_konstruktor_Black_Wall[TXT_MAX_COLS];
353 +extern char txt_konstruktor_Teleport[TXT_MAX_COLS];
354 +extern char txt_konstruktor_Gun[TXT_MAX_COLS];
355 +extern char txt_konstruktor_Magnet[TXT_MAX_COLS];
356 +extern char txt_konstruktor_Bear[TXT_MAX_COLS];
357 +extern char txt_konstruktor_Black_Bear[TXT_MAX_COLS];
358 +extern char txt_konstruktor_Bird[TXT_MAX_COLS];
359 +extern char txt_konstruktor_Key[TXT_MAX_COLS];
360 +extern char txt_konstruktor_Bullets[TXT_MAX_COLS];
361 +extern char txt_konstruktor_on_map[TXT_MAX_COLS];
362 +extern char txt_konstruktor_Laser_Gun[TXT_MAX_COLS];
363 +extern char txt_konstruktor_Blaster_Gun[TXT_MAX_COLS];
364 +extern char txt_konstruktor_Regular_Gun[TXT_MAX_COLS];
365 +extern char txt_konstruktor_Fixed[TXT_MAX_COLS];
366 +extern char txt_konstruktor_Moveable[TXT_MAX_COLS];
367 +extern char txt_konstruktor_Rotating[TXT_MAX_COLS];
368 +extern char txt_konstruktor_Moveable_Rotating[TXT_MAX_COLS];
369 +extern char txt_konstruktor_Direction_right[TXT_MAX_COLS];
370 +extern char txt_konstruktor_Direction_down[TXT_MAX_COLS];
371 +extern char txt_konstruktor_Direction_left[TXT_MAX_COLS];
372 +extern char txt_konstruktor_Direction_up[TXT_MAX_COLS];
373 +extern char txt_konstruktor_Welcome_to_GNU_Robbo_Designer[TXT_MAX_COLS];
374 +extern char txt_konstruktor_Exit_designer_select_again_to_exit[TXT_MAX_COLS];
375 +extern char txt_konstruktor_Reload_level_select_again_to_reload[TXT_MAX_COLS];
376 +extern char txt_konstruktor_Level_reloaded[TXT_MAX_COLS];
377 +extern char txt_konstruktor_New_level_select_again_to_create[TXT_MAX_COLS];
378 +extern char txt_konstruktor_Level_created[TXT_MAX_COLS];
379 +extern char txt_konstruktor_Save_select_again_to_save_new_level[TXT_MAX_COLS];
380 +extern char txt_konstruktor_New_level_appended_to_pack[TXT_MAX_COLS];
381 +extern char txt_konstruktor_Clear_level_select_again_to_clear[TXT_MAX_COLS];
382 +extern char txt_konstruktor_Level_cleared[TXT_MAX_COLS];
383 +extern char txt_konstruktor_Save_select_again_to_save_changes[TXT_MAX_COLS];
384 +extern char txt_konstruktor_Changes_saved[TXT_MAX_COLS];
385 +extern char txt_konstruktor_Level_resized_to[TXT_MAX_COLS];
386 +extern char txt_konstruktor_Screws[TXT_MAX_COLS];
387
388 struct locale {
389 char foldername[100]; /* e.g. de_DE, en_GB, es_ES, pl_PL ... */
390 char name[60]; /* e.g. Deutsch, English, Español, Polski ... */
391 char author[60]; /* Enables translators to get recognition for their work */
392 };
393 -struct locale locales[MAX_LOCALES];
394 +extern struct locale locales[MAX_LOCALES];
395
396 -int locale_count;
397 -int selected_locale;
398 -int temp_selected_locale;
399 +extern int locale_count;
400 +extern int selected_locale;
401 +extern int temp_selected_locale;
402
403 /* Function prototypes */
404 int find_all_locales(void);
405 @@ -243,10 +243,3 @@
406 void sort_locales(void);
407 void load_selected_locale(void);
408 void set_locale_to_LANG(void);
409 -
410 -
411 -
412 -
413 -
414 -
415 -
416 --- a/locales.c
417 +++ b/locales.c
418 @@ -35,6 +35,203 @@
419 /* Variables */
420 extern char *data_state[];
421
422 +/* Variables */
423 +char txt_intro_story[TXT_INTRO_STORY_ROWS * TXT_MAX_COLS];
424 +char txt_intro_keys[TXT_INTRO_KEYS_ROWS * TXT_MAX_COLS];
425 +char txt_intro_keys_description[TXT_INTRO_KEYS_DESCRIPTION_ROWS * TXT_MAX_COLS];
426 +char txt_intro_menu[TXT_INTRO_MENU_ROWS * TXT_MAX_COLS];
427 +char txt_of[TXT_MAX_COLS];
428 +char txt_intro_credits[TXT_INTRO_CREDITS_ROWS * TXT_MAX_COLS];
429 +
430 +char txt_help_page0[TXT_HELP_PAGE0_ROWS * TXT_MAX_COLS];
431 +char txt_help_page1[TXT_HELP_PAGE1_ROWS * TXT_MAX_COLS];
432 +char txt_help_page2[TXT_HELP_PAGE2_ROWS * TXT_MAX_COLS];
433 +char txt_help_page3[TXT_HELP_PAGE3_ROWS * TXT_MAX_COLS];
434 +char txt_Back[TXT_MAX_COLS];
435 +char txt_Next[TXT_MAX_COLS];
436 +char txt_Exit[TXT_MAX_COLS];
437 +
438 +char txt_options_page1[TXT_OPTIONS_PAGE1_ROWS * TXT_MAX_COLS];
439 +char txt_Save[TXT_MAX_COLS];
440 +char txt_Game_Speed[TXT_MAX_COLS];
441 +char txt_Fast[TXT_MAX_COLS];
442 +char txt_Normal[TXT_MAX_COLS];
443 +char txt_Slow[TXT_MAX_COLS];
444 +char txt_Key_Repeat[TXT_MAX_COLS];
445 +char txt_Delay[TXT_MAX_COLS];
446 +char txt_Interval[TXT_MAX_COLS];
447 +char txt_Default_Joystick[TXT_MAX_COLS];
448 +char txt_No_joystick_found[TXT_MAX_COLS];
449 +char txt_Joystick_Axes_Dead_Zone[TXT_MAX_COLS];
450 +char txt_Language[TXT_MAX_COLS];
451 +char txt_Translation_by[TXT_MAX_COLS];
452 +char txt_Save_Frequency[TXT_MAX_COLS];
453 +char txt_On_Exit[TXT_MAX_COLS];
454 +char txt_On_Change[TXT_MAX_COLS];
455 +char txt_Move_Up[TXT_MAX_COLS];
456 +char txt_Move_Up_Right[TXT_MAX_COLS];
457 +char txt_Move_Right[TXT_MAX_COLS];
458 +char txt_Move_Down_Right[TXT_MAX_COLS];
459 +char txt_Move_Down[TXT_MAX_COLS];
460 +char txt_Move_Down_Left[TXT_MAX_COLS];
461 +char txt_Move_Left[TXT_MAX_COLS];
462 +char txt_Move_Up_Left[TXT_MAX_COLS];
463 +char txt_Shoot_Up[TXT_MAX_COLS];
464 +char txt_Shoot_Down[TXT_MAX_COLS];
465 +char txt_Shoot_Left[TXT_MAX_COLS];
466 +char txt_Shoot_Right[TXT_MAX_COLS];
467 +char txt_Restart[TXT_MAX_COLS];
468 +char txt_Confirm[TXT_MAX_COLS];
469 +char txt_Help[TXT_MAX_COLS];
470 +char txt_Options[TXT_MAX_COLS];
471 +char txt_Previous_Level[TXT_MAX_COLS];
472 +char txt_Next_Level[TXT_MAX_COLS];
473 +char txt_Previous_Pack[TXT_MAX_COLS];
474 +char txt_Next_Pack[TXT_MAX_COLS];
475 +char txt_Toggle_Fullscreen[TXT_MAX_COLS];
476 +char txt_Home[TXT_MAX_COLS];
477 +char txt_End[TXT_MAX_COLS];
478 +char txt_Page_Up[TXT_MAX_COLS];
479 +char txt_Page_Down[TXT_MAX_COLS];
480 +char txt_Volume_Up[TXT_MAX_COLS];
481 +char txt_Volume_Down[TXT_MAX_COLS];
482 +char txt_Modifier[TXT_MAX_COLS];
483 +char txt_Restore_Default_Controls[TXT_MAX_COLS];
484 +char txt_Toggle_Designer[TXT_MAX_COLS];
485 +char txt_Scroll_Up[TXT_MAX_COLS];
486 +char txt_Scroll_Down[TXT_MAX_COLS];
487 +char txt_Primary_Click[TXT_MAX_COLS];
488 +char txt_System_Pointer[TXT_MAX_COLS];
489 +char txt_Disabled[TXT_MAX_COLS];
490 +char txt_Enabled[TXT_MAX_COLS];
491 +char txt_Pointer_Controls_Pad_Type[TXT_MAX_COLS];
492 +char txt_Viewport[TXT_MAX_COLS];
493 +char txt_Screen[TXT_MAX_COLS];
494 +char txt_Sound[TXT_MAX_COLS];
495 +char txt_Sfx_Volume[TXT_MAX_COLS];
496 +char txt_Simulated_Pointer[TXT_MAX_COLS];
497 +
498 +char txt_Key[TXT_MAX_COLS];
499 +char txt_Joy[TXT_MAX_COLS];
500 +char txt_Ptr[TXT_MAX_COLS];
501 +char txt_Mod[TXT_MAX_COLS];
502 +char txt_Skin[TXT_MAX_COLS];
503 +char txt_By[TXT_MAX_COLS];
504 +
505 +char txt_Level_Author[TXT_MAX_COLS];
506 +char txt_endscreen_congrats[TXT_ENDSCREEN_CONGRATS_ROWS * TXT_MAX_COLS];
507 +
508 +char txt_Volume[TXT_MAX_COLS];
509 +char txt_Changes_saved[TXT_MAX_COLS];
510 +char txt_Default_controls_restored[TXT_MAX_COLS];
511 +char txt_Press_something_and_release[TXT_MAX_COLS];
512 +char txt_No_input_was_detected[TXT_MAX_COLS];
513 +
514 +char txt_ptr_BtnLeft[TXT_MAX_COLS];
515 +char txt_ptr_BtnMiddle[TXT_MAX_COLS];
516 +char txt_ptr_BtnRight[TXT_MAX_COLS];
517 +char txt_ptr_WheelUp[TXT_MAX_COLS];
518 +char txt_ptr_WheelDown[TXT_MAX_COLS];
519 +
520 +char txt_key_Backspace[TXT_MAX_COLS];
521 +char txt_key_Tab[TXT_MAX_COLS];
522 +char txt_key_Clear[TXT_MAX_COLS];
523 +char txt_key_Return[TXT_MAX_COLS];
524 +char txt_key_Pause[TXT_MAX_COLS];
525 +char txt_key_Escape[TXT_MAX_COLS];
526 +char txt_key_Space[TXT_MAX_COLS];
527 +char txt_key_Delete[TXT_MAX_COLS];
528 +char txt_key_KP[TXT_MAX_COLS];
529 +char txt_key_Up[TXT_MAX_COLS];
530 +char txt_key_Down[TXT_MAX_COLS];
531 +char txt_key_Right[TXT_MAX_COLS];
532 +char txt_key_Left[TXT_MAX_COLS];
533 +char txt_key_Insert[TXT_MAX_COLS];
534 +char txt_key_Home[TXT_MAX_COLS];
535 +char txt_key_End[TXT_MAX_COLS];
536 +char txt_key_PgUp[TXT_MAX_COLS];
537 +char txt_key_PgDn[TXT_MAX_COLS];
538 +char txt_key_NumLk[TXT_MAX_COLS];
539 +char txt_key_CapsLk[TXT_MAX_COLS];
540 +char txt_key_ScrlLk[TXT_MAX_COLS];
541 +char txt_key_RShift[TXT_MAX_COLS];
542 +char txt_key_LShift[TXT_MAX_COLS];
543 +char txt_key_RCtrl[TXT_MAX_COLS];
544 +char txt_key_LCtrl[TXT_MAX_COLS];
545 +char txt_key_RAlt[TXT_MAX_COLS];
546 +char txt_key_LAlt[TXT_MAX_COLS];
547 +char txt_key_RMeta[TXT_MAX_COLS];
548 +char txt_key_LMeta[TXT_MAX_COLS];
549 +char txt_key_LSuper[TXT_MAX_COLS];
550 +char txt_key_RSuper[TXT_MAX_COLS];
551 +char txt_key_AltGr[TXT_MAX_COLS];
552 +char txt_key_Compose[TXT_MAX_COLS];
553 +char txt_key_Help[TXT_MAX_COLS];
554 +char txt_key_PrScr[TXT_MAX_COLS];
555 +char txt_key_SysRq[TXT_MAX_COLS];
556 +char txt_key_Break[TXT_MAX_COLS];
557 +char txt_key_Menu[TXT_MAX_COLS];
558 +char txt_key_Power[TXT_MAX_COLS];
559 +char txt_key_Euro[TXT_MAX_COLS];
560 +char txt_key_Undo[TXT_MAX_COLS];
561 +
562 +char txt_konstruktor_Ground[TXT_MAX_COLS];
563 +char txt_konstruktor_Stop[TXT_MAX_COLS];
564 +char txt_konstruktor_Radioactive_Field[TXT_MAX_COLS];
565 +char txt_konstruktor_Push_Box[TXT_MAX_COLS];
566 +char txt_konstruktor_Capsule[TXT_MAX_COLS];
567 +char txt_konstruktor_Bomb[TXT_MAX_COLS];
568 +char txt_konstruktor_Bomb2[TXT_MAX_COLS];
569 +char txt_konstruktor_Door[TXT_MAX_COLS];
570 +char txt_konstruktor_Box[TXT_MAX_COLS];
571 +char txt_konstruktor_Empty_Field[TXT_MAX_COLS];
572 +char txt_konstruktor_Butterfly[TXT_MAX_COLS];
573 +char txt_konstruktor_Gun_Fire[TXT_MAX_COLS];
574 +char txt_konstruktor_Force_Field[TXT_MAX_COLS];
575 +char txt_konstruktor_Screw[TXT_MAX_COLS];
576 +char txt_konstruktor_Wall[TXT_MAX_COLS];
577 +char txt_konstruktor_Black_Wall[TXT_MAX_COLS];
578 +char txt_konstruktor_Teleport[TXT_MAX_COLS];
579 +char txt_konstruktor_Gun[TXT_MAX_COLS];
580 +char txt_konstruktor_Magnet[TXT_MAX_COLS];
581 +char txt_konstruktor_Bear[TXT_MAX_COLS];
582 +char txt_konstruktor_Black_Bear[TXT_MAX_COLS];
583 +char txt_konstruktor_Bird[TXT_MAX_COLS];
584 +char txt_konstruktor_Key[TXT_MAX_COLS];
585 +char txt_konstruktor_Bullets[TXT_MAX_COLS];
586 +char txt_konstruktor_on_map[TXT_MAX_COLS];
587 +char txt_konstruktor_Laser_Gun[TXT_MAX_COLS];
588 +char txt_konstruktor_Blaster_Gun[TXT_MAX_COLS];
589 +char txt_konstruktor_Regular_Gun[TXT_MAX_COLS];
590 +char txt_konstruktor_Fixed[TXT_MAX_COLS];
591 +char txt_konstruktor_Moveable[TXT_MAX_COLS];
592 +char txt_konstruktor_Rotating[TXT_MAX_COLS];
593 +char txt_konstruktor_Moveable_Rotating[TXT_MAX_COLS];
594 +char txt_konstruktor_Direction_right[TXT_MAX_COLS];
595 +char txt_konstruktor_Direction_down[TXT_MAX_COLS];
596 +char txt_konstruktor_Direction_left[TXT_MAX_COLS];
597 +char txt_konstruktor_Direction_up[TXT_MAX_COLS];
598 +char txt_konstruktor_Welcome_to_GNU_Robbo_Designer[TXT_MAX_COLS];
599 +char txt_konstruktor_Exit_designer_select_again_to_exit[TXT_MAX_COLS];
600 +char txt_konstruktor_Reload_level_select_again_to_reload[TXT_MAX_COLS];
601 +char txt_konstruktor_Level_reloaded[TXT_MAX_COLS];
602 +char txt_konstruktor_New_level_select_again_to_create[TXT_MAX_COLS];
603 +char txt_konstruktor_Level_created[TXT_MAX_COLS];
604 +char txt_konstruktor_Save_select_again_to_save_new_level[TXT_MAX_COLS];
605 +char txt_konstruktor_New_level_appended_to_pack[TXT_MAX_COLS];
606 +char txt_konstruktor_Clear_level_select_again_to_clear[TXT_MAX_COLS];
607 +char txt_konstruktor_Level_cleared[TXT_MAX_COLS];
608 +char txt_konstruktor_Save_select_again_to_save_changes[TXT_MAX_COLS];
609 +char txt_konstruktor_Changes_saved[TXT_MAX_COLS];
610 +char txt_konstruktor_Level_resized_to[TXT_MAX_COLS];
611 +char txt_konstruktor_Screws[TXT_MAX_COLS];
612 +
613 +struct locale locales[MAX_LOCALES];
614 +
615 +int locale_count;
616 +int selected_locale;
617 +int temp_selected_locale;
618 +
619 /* Function prototypes */
620
621
622 --- a/sound.h
623 +++ b/sound.h
624 @@ -78,15 +78,15 @@
625 /*
626 * Variables
627 */
628 -int sound;
629 -int temp_game_sound;
630 -int sfx_vol;
631 -int temp_sfx_vol;
632 +extern int sound;
633 +extern int temp_game_sound;
634 +extern int sfx_vol;
635 +extern int temp_sfx_vol;
636 /*
637 * if we do not support music, we assume, that volume is sfx_volume
638 */
639 #ifdef HAVE_MUSIC
640 -int volume;
641 +extern int volume;
642 #else
643 #define volume sfx_vol
644 #endif
645 --- a/sound.c
646 +++ b/sound.c
647 @@ -93,7 +93,16 @@
648 int next_song = 0;
649 int absent = 1;
650 int tempvol = 0;
651 - /*******************/
652 +
653 +int sound;
654 +int temp_game_sound;
655 +int sfx_vol;
656 +int temp_sfx_vol;
657 +#ifdef HAVE_MUSIC
658 +int volume;
659 +#endif
660 +
661 +/*******************/
662 /*
663 * table of sounds
664 */
665 --- a/rcfile.h
666 +++ b/rcfile.h
667 @@ -37,13 +37,14 @@
668 #define RCFILE_SAVE_ON_CHANGE 1
669
670 /* Variables */
671 -char path_resource_file[100];
672 +extern char path_resource_file[100];
673
674 -struct {
675 +struct rcfile {
676 int save_frequency;
677 -} rcfile;
678 +};
679 +extern struct rcfile rcfile;
680
681 -int temp_rcfile_save_frequency;
682 +extern int temp_rcfile_save_frequency;
683
684 /* Function prototypes */
685 int read_resource_file(char *filename);
686 --- a/rcfile.c
687 +++ b/rcfile.c
688 @@ -28,7 +28,11 @@
689 #define UNDEFINED2 -2
690
691 /* Variables */
692 +char path_resource_file[100];
693
694 +struct rcfile rcfile;
695 +
696 +int temp_rcfile_save_frequency;
697
698 /* Function prototypes */
699
700 --- a/skins.c
701 +++ b/skins.c
702 @@ -59,6 +59,28 @@
703 /* Variables */
704 char *data_state[] =
705 { "DATA_UNREAD", "DATA_READING", "DATA_READ", "DATA_INCOMPLETE" };
706 +SDL_Surface *wm_icon;
707 +SDL_Surface *icons;
708 +#ifdef LIGHTNINGENABLED
709 +SDL_Surface *efx;
710 +#endif
711 +SDL_Surface *ciphers;
712 +SDL_Surface *alpha;
713 +SDL_Surface *bgrnd;
714 +TTF_Font *font;
715 +
716 +SDL_Rect robbo_images_srcrect[8];
717 +SDL_Rect score_images_srcrect[10];
718 +SDL_Rect score_screw_srcrect;
719 +SDL_Rect score_key_srcrect;
720 +SDL_Rect score_bullet_srcrect;
721 +SDL_Rect score_level_srcrect;
722 +
723 +struct skin skins[MAX_SKINS];
724 +
725 +int skin_count; /* How many skins are in the list */
726 +int selected_skin; /* Which skin in the list is currently selected */
727 +int temp_selected_skin;
728
729 /* Function prototypes */
730 void read_skin_project_colours (void);
731 --- a/skins.h
732 +++ b/skins.h
733 @@ -44,22 +44,22 @@
734 #define DESIGNER_OBJV_TILE_COLOUR 0x202020
735
736 /* Variables */
737 -SDL_Surface *wm_icon;
738 -SDL_Surface *icons;
739 +extern SDL_Surface *wm_icon;
740 +extern SDL_Surface *icons;
741 #ifdef LIGHTNINGENABLED
742 -SDL_Surface *efx;
743 +extern SDL_Surface *efx;
744 #endif
745 -SDL_Surface *ciphers;
746 -SDL_Surface *alpha;
747 -SDL_Surface *bgrnd;
748 -TTF_Font *font;
749 +extern SDL_Surface *ciphers;
750 +extern SDL_Surface *alpha;
751 +extern SDL_Surface *bgrnd;
752 +extern TTF_Font *font;
753
754 -SDL_Rect robbo_images_srcrect[8];
755 -SDL_Rect score_images_srcrect[10];
756 -SDL_Rect score_screw_srcrect;
757 -SDL_Rect score_key_srcrect;
758 -SDL_Rect score_bullet_srcrect;
759 -SDL_Rect score_level_srcrect;
760 +extern SDL_Rect robbo_images_srcrect[8];
761 +extern SDL_Rect score_images_srcrect[10];
762 +extern SDL_Rect score_screw_srcrect;
763 +extern SDL_Rect score_key_srcrect;
764 +extern SDL_Rect score_bullet_srcrect;
765 +extern SDL_Rect score_level_srcrect;
766
767 struct skin
768 {
769 @@ -85,11 +85,11 @@
770 Uint32 designer_OBJS_tile_colour;
771 Uint32 designer_OBJV_tile_colour;
772 };
773 -struct skin skins[MAX_SKINS];
774 +extern struct skin skins[MAX_SKINS];
775
776 -int skin_count; /* How many skins are in the list */
777 -int selected_skin; /* Which skin in the list is currently selected */
778 -int temp_selected_skin;
779 +extern int skin_count; /* How many skins are in the list */
780 +extern int selected_skin; /* Which skin in the list is currently selected */
781 +extern int temp_selected_skin;
782
783 /* Function prototypes */
784 int find_all_skins (void);
785 --- a/ROB_engine.h
786 +++ b/ROB_engine.h
787 @@ -118,7 +118,7 @@
788 void *pob; /* Parent object pointer */
789 } ROB_Object;
790
791 -ROB_Object *rob_lyr_pointer;
792 +extern ROB_Object *rob_lyr_pointer;
793
794 typedef struct robevent {
795 ROB_Object *rob_object;
796 --- a/board.h
797 +++ b/board.h
798 @@ -125,7 +125,7 @@
799 #define EFFECT_NONE -1
800
801 /* Variables */
802 -int restart_timeout; /* Time to wait before restarting a level after Robbo dies */
803 +extern int restart_timeout; /* Time to wait before restarting a level after Robbo dies */
804
805 struct Coords
806 {
807 @@ -162,9 +162,9 @@
808 #endif
809 struct Coords icon[MAX_ICONS]; /* Coords of left-up point of icons drawed on bitmap */
810 };
811 -struct object board[MAX_W][MAX_H]; /* This is the game area. Each board location holds one and only one of the above objects */
812 +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 */
813
814 -struct
815 +struct robbo
816 {
817 int x; /* Board x position */
818 int y; /* Board y position */
819 @@ -180,10 +180,11 @@
820 int blocked; /* robbo cannot move - possible magnet moving */
821 int blocked_direction; /* where robbo should be moved after blocking */
822 int teleporting; /* Set to TRUE when Robbo is teleporting */
823 -} robbo;
824 +};
825 +extern struct robbo robbo;
826
827 /* What is shown of the board is seen through this viewport */
828 -struct
829 +struct viewport
830 {
831 int x; /* Board x position */
832 int y; /* Board y position */
833 @@ -199,15 +200,17 @@
834 int yoffset;
835 int cycles_to_dest;
836 int maximise;
837 -} viewport;
838 +};
839 +extern struct viewport viewport;
840
841 /* Some game mechanics that I have made available for modification via the rcfile */
842 -struct
843 +struct game_mechanics
844 {
845 int sensible_bears;
846 int sensible_questionmarks;
847 int sensible_solid_lasers;
848 -} game_mechanics;
849 +};
850 +extern struct game_mechanics game_mechanics;
851
852 /* Function prototypes */
853 void update_game (void);
854 --- a/controls.h
855 +++ b/controls.h
856 @@ -85,21 +85,21 @@
857
858
859 /* Variables */
860 -SDL_Joystick *joystick;
861 +extern SDL_Joystick *joystick;
862
863 -char default_joystick_name[MAX_JOYSTICK_NAME_LENGTH];
864 -int joystick_count;
865 -char joystick_list[MAX_JOYSTICKS][MAX_JOYSTICK_NAME_LENGTH];
866 +extern char default_joystick_name[MAX_JOYSTICK_NAME_LENGTH];
867 +extern int joystick_count;
868 +extern char joystick_list[MAX_JOYSTICKS][MAX_JOYSTICK_NAME_LENGTH];
869
870 /* Configurable options */
871 -int key_repeat_delay; /* 20 to 1000 ms */
872 -int temp_key_repeat_delay; /* 20 to 1000 ms */
873 -int key_repeat_interval; /* 20 to 1000 ms */
874 -int temp_key_repeat_interval; /* 20 to 1000 ms */
875 -int default_joystick;
876 -int temp_default_joystick;
877 -int joystick_dead_zone;
878 -int temp_joystick_dead_zone;
879 +extern int key_repeat_delay; /* 20 to 1000 ms */
880 +extern int temp_key_repeat_delay; /* 20 to 1000 ms */
881 +extern int key_repeat_interval; /* 20 to 1000 ms */
882 +extern int temp_key_repeat_interval; /* 20 to 1000 ms */
883 +extern int default_joystick;
884 +extern int temp_default_joystick;
885 +extern int joystick_dead_zone;
886 +extern int temp_joystick_dead_zone;
887
888 struct control {
889 int device; /* Keyboard, joystick or mouse */
890 @@ -110,11 +110,11 @@
891 int delay; /* The initial delay in cycles before repeating - 0 disables the delay */
892 int interval; /* The repeat interval in cycles - 0 disables the interval */
893 };
894 -struct control user_controls[USER_CONTROLS];
895 -struct control temp_user_controls[USER_CONTROLS];
896 +extern struct control user_controls[USER_CONTROLS];
897 +extern struct control temp_user_controls[USER_CONTROLS];
898
899 -ROB_OpEnv gnurobbo_op_env;
900 -ROB_OpEnv temp_gnurobbo_op_env;
901 +extern ROB_OpEnv gnurobbo_op_env;
902 +extern ROB_OpEnv temp_gnurobbo_op_env;
903
904 /* Function prototypes */
905 int get_user_action(int *actionid, int pollall, int *device, int *id, int *state);
906 --- a/game.h
907 +++ b/game.h
908 @@ -184,25 +184,24 @@
909
910 /* Variables */
911 #ifdef DEBUG_COLOUR_SELECT
912 -int debug_colour_select_r;
913 -int debug_colour_select_g;
914 -int debug_colour_select_b;
915 -int debug_colour_select_component;
916 +extern int debug_colour_select_r;
917 +extern int debug_colour_select_g;
918 +extern int debug_colour_select_b;
919 +extern int debug_colour_select_component;
920 #endif
921 -int sound;
922 -int game_mode;
923 -int game_cycle_delay; /* Defaults to 10ms */
924 -int game_cycle_limit; /* 20, 25, 33 Hz */
925 -int temp_game_cycle_limit; /* 20, 25, 33 Hz */
926 -int cycle_count; /* A running cycle count used for time stamping objects */
927 -int temp_game_sound;
928 -int temp_sfx_vol;
929 -int introscreenselecteditem;
930 -int helppage;
931 -int helppageselecteditem;
932 -int options[104];
933 -int optionspage;
934 -int optionspageselecteditem[OPTIONS_SCREEN_PAGES];
935 +extern int game_mode;
936 +extern int game_cycle_delay; /* Defaults to 10ms */
937 +extern int game_cycle_limit; /* 20, 25, 33 Hz */
938 +extern int temp_game_cycle_limit; /* 20, 25, 33 Hz */
939 +extern int cycle_count; /* A running cycle count used for time stamping objects */
940 +extern int temp_game_sound;
941 +extern int temp_sfx_vol;
942 +extern int introscreenselecteditem;
943 +extern int helppage;
944 +extern int helppageselecteditem;
945 +extern int options[104];
946 +extern int optionspage;
947 +extern int optionspageselecteditem[OPTIONS_SCREEN_PAGES];
948
949 /* Function prototypes */
950 int my_rand ();
951 --- a/konstruktor.h
952 +++ b/konstruktor.h
953 @@ -93,14 +93,15 @@
954
955 /* Thunor: This is now being defined and declared at the same
956 * time since we only require one of them */
957 -struct {
958 +struct k_view {
959 int x;
960 int y;
961 int w;
962 int h;
963 int offsetx;
964 int offsety;
965 -} k_view;
966 +};
967 +extern struct k_view k_view;
968
969
970
971 @@ -108,17 +109,17 @@
972
973
974
975 -SDL_Surface *k_icons;
976 +extern SDL_Surface *k_icons;
977
978 /*
979 * variables
980 */
981 -int K_exit;
982 -int lastclick;
983 -int K_direction;
984 -char infostring[255];
985 -int inforedraw;
986 -int kmx,
987 +extern int K_exit;
988 +extern int lastclick;
989 +extern int K_direction;
990 +extern char infostring[255];
991 +extern int inforedraw;
992 +extern int kmx,
993 kmy;
994 /*
995 * prototypes
996 --- a/levels.h
997 +++ b/levels.h
998 @@ -31,7 +31,7 @@
999 #define DEFAULT_LEVEL_COLOUR 0x608050
1000
1001 /* Variables */
1002 -struct {
1003 +struct level {
1004 int w;
1005 int h;
1006 char author[60]; /* The text displayed on the authorline above the viewport */
1007 @@ -39,7 +39,8 @@
1008 Uint32 colour; /* The colour if found or the default_level_colour if found in the level pack */
1009 Uint32 colour_override; /* The colour if found or the default_level_colour if found in the skinrc */
1010 char notes[1024]; /* This is displayed nowhere now, but contains information about notes */
1011 -} level;
1012 +};
1013 +extern struct level level;
1014
1015 struct pack {
1016 char filename[256]; /* e.g. /usr/local/share/gnurobbo/levels/original.dat or ~/.gnurobbo/levels/mylevels.dat */
1017 @@ -49,11 +50,11 @@
1018 int level_selected; /* e.g. 3 is currently selected by the user */
1019 int selected; /* e.g. This pack is currently selected by the user */
1020 };
1021 -struct pack level_packs[MAX_LEVEL_PACKS];
1022 +extern struct pack level_packs[MAX_LEVEL_PACKS];
1023
1024 -int found_pack_count; /* How many packs were physically found */
1025 -int level_pack_count; /* How many packs are in the list (historical entries from the rc are added to the end) */
1026 -int selected_pack; /* Which pack in the list is currently selected */
1027 +extern int found_pack_count; /* How many packs were physically found */
1028 +extern int level_pack_count; /* How many packs are in the list (historical entries from the rc are added to the end) */
1029 +extern int selected_pack; /* Which pack in the list is currently selected */
1030
1031 /* Function prototypes */
1032 int level_init(void);
1033 @@ -62,7 +63,3 @@
1034 void read_level_packs(void);
1035 void sort_level_packs(void);
1036 int load_level_data(int level_number);
1037 -
1038 -
1039 -
1040 -
1041 --- a/pointer_controls.h
1042 +++ b/pointer_controls.h
1043 @@ -53,8 +53,8 @@
1044 int shoot_state;
1045 int pad_type;
1046 };
1047 -struct pointercontrols pointer_controls;
1048 -struct pointercontrols temp_pointer_controls;
1049 +extern struct pointercontrols pointer_controls;
1050 +extern struct pointercontrols temp_pointer_controls;
1051
1052 /* Function prototypes */
1053 void pointer_controls_event_processor(ROB_Event *rob_event);
1054 --- a/screen.h
1055 +++ b/screen.h
1056 @@ -49,43 +49,38 @@
1057 #define EFX_SHOOT 8
1058
1059 /* Variables */
1060 -SDL_Surface *screen;
1061 +extern SDL_Surface *screen;
1062
1063 -struct {
1064 +struct screen {
1065 int redraw; /* An ORed combination of REDRAW_* bits */
1066 -} intro_screen;
1067 +};
1068 +extern struct screen intro_screen;
1069 +extern struct screen help_screen;
1070 +extern struct screen options_screen;
1071 +extern struct screen game_area;
1072
1073 -struct {
1074 - int redraw; /* An ORed combination of REDRAW_* bits */
1075 -} help_screen;
1076 -
1077 -struct {
1078 - int redraw; /* An ORed combination of REDRAW_* bits */
1079 -} options_screen;
1080 -
1081 -struct {
1082 - int redraw; /* An ORed combination of REDRAW_* bits */
1083 -} game_area;
1084 -
1085 -struct {
1086 +struct scoreline {
1087 int xoffset;
1088 int yoffset;
1089 int redraw; /* An ORed combination of SCORELINE_* bits */
1090 -} scoreline;
1091 +};
1092 +extern struct scoreline scoreline;
1093
1094 -struct {
1095 +struct authorline {
1096 int xoffset;
1097 int yoffset;
1098 -} authorline;
1099 +};
1100 +extern struct authorline authorline;
1101
1102 -struct {
1103 +struct video {
1104 int xres;
1105 int yres;
1106 int field_size;
1107 int fullscreen; /* 0 or SDL_FULLSCREEN */
1108 int xshift;
1109 int yshift;
1110 -} video;
1111 +};
1112 +extern struct video video;
1113
1114 typedef struct msgbox {
1115 char name[256]; /* A unique name */
1116 --- a/controls.c
1117 +++ b/controls.c
1118 @@ -84,6 +84,28 @@
1119 /* Variables */
1120 SDL_Event event;
1121
1122 +SDL_Joystick *joystick;
1123 +
1124 +char default_joystick_name[MAX_JOYSTICK_NAME_LENGTH];
1125 +int joystick_count;
1126 +char joystick_list[MAX_JOYSTICKS][MAX_JOYSTICK_NAME_LENGTH];
1127 +
1128 +/* Configurable options */
1129 +int key_repeat_delay; /* 20 to 1000 ms */
1130 +int temp_key_repeat_delay; /* 20 to 1000 ms */
1131 +int key_repeat_interval; /* 20 to 1000 ms */
1132 +int temp_key_repeat_interval; /* 20 to 1000 ms */
1133 +int default_joystick;
1134 +int temp_default_joystick;
1135 +int joystick_dead_zone;
1136 +int temp_joystick_dead_zone;
1137 +
1138 +struct control user_controls[USER_CONTROLS];
1139 +struct control temp_user_controls[USER_CONTROLS];
1140 +
1141 +ROB_OpEnv gnurobbo_op_env;
1142 +ROB_OpEnv temp_gnurobbo_op_env;
1143 +
1144 /* Function prototypes */
1145
1146
1147 --- a/screen.c
1148 +++ b/screen.c
1149 @@ -38,6 +38,15 @@
1150 /* Variables */
1151 SDL_Color bgcolor, fgcolor; /* General purpose colours */
1152 SDL_Surface *image; /* General purpose surface */
1153 +SDL_Surface *screen;
1154 +
1155 +struct screen intro_screen;
1156 +struct screen help_screen;
1157 +struct screen options_screen;
1158 +struct screen game_area;
1159 +struct scoreline scoreline;
1160 +struct authorline authorline;
1161 +struct video video;
1162
1163 /* Used for animating banners */
1164 int bannerstate = 0;
1165 --- a/game.c
1166 +++ b/game.c
1167 @@ -66,6 +66,24 @@
1168 int gua_id; /* Used when getting actions */
1169 int gua_state; /* Used when getting actions */
1170
1171 +#ifdef DEBUG_COLOUR_SELECT
1172 +int debug_colour_select_r;
1173 +int debug_colour_select_g;
1174 +int debug_colour_select_b;
1175 +int debug_colour_select_component;
1176 +#endif
1177 +int game_mode;
1178 +int game_cycle_delay; /* Defaults to 10ms */
1179 +int game_cycle_limit; /* 20, 25, 33 Hz */
1180 +int temp_game_cycle_limit; /* 20, 25, 33 Hz */
1181 +int cycle_count; /* A running cycle count used for time stamping objects */
1182 +int introscreenselecteditem;
1183 +int helppage;
1184 +int helppageselecteditem;
1185 +int options[104];
1186 +int optionspage;
1187 +int optionspageselecteditem[OPTIONS_SCREEN_PAGES];
1188 +
1189 /* Function prototypes */
1190 Uint32 game_timer (Uint32 interval, void *param);
1191 void clean_up_before_exit (void);
1192 --- a/levels.c
1193 +++ b/levels.c
1194 @@ -30,6 +30,14 @@
1195 /* Variables */
1196 extern char *data_state[];
1197
1198 +struct level level;
1199 +
1200 +struct pack level_packs[MAX_LEVEL_PACKS];
1201 +
1202 +int found_pack_count; /* How many packs were physically found */
1203 +int level_pack_count; /* How many packs are in the list (historical entries from the rc are added to the end) */
1204 +int selected_pack; /* Which pack in the list is currently selected */
1205 +
1206 /* Function prototypes */
1207 int transform_char (char c);
1208
1209 --- a/board.c
1210 +++ b/board.c
1211 @@ -32,6 +32,15 @@
1212 /*
1213 * Variables
1214 */
1215 +int restart_timeout; /* Time to wait before restarting a level after Robbo dies */
1216 +
1217 +struct object board[MAX_W][MAX_H]; /* This is the game area. Each board location holds one and only one of the above objects */
1218 +
1219 +struct robbo robbo;
1220 +
1221 +struct viewport viewport;
1222 +
1223 +struct game_mechanics game_mechanics;
1224
1225
1226 /*
1227 --- a/konstruktor.c
1228 +++ b/konstruktor.c
1229 @@ -80,6 +80,16 @@
1230
1231 struct k_icons K_icons[K_MAXICONS];
1232
1233 +struct k_view k_view;
1234 +SDL_Surface *k_icons;
1235 +int K_exit;
1236 +int lastclick;
1237 +int K_direction;
1238 +char infostring[255];
1239 +int inforedraw;
1240 +int kmx,
1241 + kmy;
1242 +
1243 /*
1244 * designer state variables
1245 */
1246 --- a/pointer_controls.c
1247 +++ b/pointer_controls.c
1248 @@ -39,6 +39,9 @@
1249 SDL_Rect toolbar_restart_image_srcrect;
1250 SDL_Rect toolbar_hide_image_srcrect;
1251
1252 +struct pointercontrols pointer_controls;
1253 +struct pointercontrols temp_pointer_controls;
1254 +
1255 /* Function prototypes */
1256
1257
1258 --- a/ROB_engine.c
1259 +++ b/ROB_engine.c
1260 @@ -80,6 +80,8 @@
1261 int rob_object_count = 0;
1262 char rob_last_error[ROB_ERROR_LENGTH];
1263
1264 +ROB_Object *rob_lyr_pointer;
1265 +
1266 /* Function prototypes */
1267 int ROB_SetObjectZOrder(ROB_Object *rob_object, int position, ROB_Object *target);
1268 void ROB_FreeAllObjects(void);