1#textdomain wesnoth-lib
2###
3### Definition of the window to create an MP game. This where the map and it's
4### parameters are selected.
5###
6
7#define _GUI_MP_CREATE_ALIGN_SPACER
8	[spacer]
9		width = 25
10		height = 20
11	[/spacer]
12#enddef
13
14#define _GUI_MP_CREATE_OPTION_SLIDER _LABEL _SLIDER_ID _SLIDER_MIN _SLIDER_MAX _TOOLTIP _EXTRA_WML
15	[row]
16
17		[column]
18			grow_factor = 0
19
20			{_GUI_MP_CREATE_ALIGN_SPACER}
21		[/column]
22
23		[column]
24			grow_factor = 1
25			horizontal_grow = true
26
27			[grid]
28
29				[row]
30
31					[column]
32						grow_factor = 0
33						horizontal_alignment = "left"
34						border = "left,top"
35						border_size = 5
36
37						[label]
38							definition = "default_small"
39
40							label = {_LABEL} + ":"
41						[/label]
42
43					[/column]
44
45					[column]
46						grow_factor = 1
47						horizontal_grow = true
48						border = "left,top,right"
49						border_size = 5
50
51						[label]
52							id = {_SLIDER_ID} + "_label"
53							definition = "default_small"
54						[/label]
55
56					[/column]
57
58				[/row]
59
60			[/grid]
61
62		[/column]
63
64	[/row]
65
66	[row]
67
68		[column]
69			grow_factor = 0
70
71			{_GUI_MP_CREATE_ALIGN_SPACER}
72		[/column]
73
74		[column]
75			grow_factor = 1
76			horizontal_grow = true
77			border = "all"
78			border_size = 5
79
80			[slider]
81				id = {_SLIDER_ID}
82				definition = "minimal"
83
84				minimum_value = {_SLIDER_MIN}
85				maximum_value = {_SLIDER_MAX}
86				step_size = 1
87				tooltip = {_TOOLTIP}
88
89				{_EXTRA_WML}
90			[/slider]
91
92		[/column]
93
94	[/row]
95#enddef
96
97#define _GUI_MP_CREATE_GENERAL_PANEL
98	[row]
99		grow_factor = 1
100
101		[column]
102			grow_factor = 1
103			horizontal_grow = true
104			vertical_alignment = "top"
105
106			[grid]
107
108				[row]
109
110					[column]
111						grow_factor = 0
112
113						border = "all"
114						border_size = 5
115						horizontal_alignment = "left"
116						[label]
117							definition = "default"
118
119							label = _ "Eras:"
120						[/label]
121
122					[/column]
123
124				[/row]
125
126				[row]
127
128					[column]
129						grow_factor = 1
130
131						border = "all"
132						border_size = 5
133						horizontal_grow = true
134
135						[menu_button]
136							id = "eras"
137							definition = "default"
138						[/menu_button]
139
140					[/column]
141
142				[/row]
143
144				[row]
145
146					[column]
147						grow_factor = 0
148
149						border = "all"
150						border_size = 5
151						horizontal_alignment = "left"
152						[label]
153							definition = "default"
154
155							label = _ "Random Faction Matchups:"
156							tooltip = _ "Allow for mirror matchups when random factions are chosen."
157						[/label]
158					[/column]
159
160				[/row]
161
162				[row]
163
164					[column]
165						grow_factor = 1
166
167						border = "all"
168						border_size = 5
169						horizontal_grow = true
170
171						[menu_button]
172							id = "random_faction_mode"
173							definition = "default"
174						[/menu_button]
175
176					[/column]
177
178				[/row]
179
180			[/grid]
181
182		[/column]
183
184		[column]
185			grow_factor = 1
186			horizontal_grow = true
187			vertical_alignment = "top"
188
189			[grid]
190
191				[row]
192					grow_factor = 0
193
194					[column]
195						border = "all"
196						border_size = 5
197						horizontal_alignment = "left"
198						vertical_alignment = "top"
199
200						[label]
201							id = "mods_header"
202							definition = "default"
203							label = _ "Modifications:"
204						[/label]
205					[/column]
206
207				[/row]
208
209				[row]
210					grow_factor = 1
211
212					[column]
213						border = "all"
214						border_size = 5
215						horizontal_grow = true
216						vertical_alignment = "top"
217
218						[listbox]
219							id = "mod_list"
220							definition = "default"
221							horizontal_scrollbar_mode = "never"
222
223							[list_definition]
224
225								[row]
226
227									 [column]
228										grow_factor = 1
229										horizontal_grow = true
230
231										[toggle_panel]
232											id = "panel"
233											definition = "default"
234
235											[grid]
236
237												[row]
238
239													[column]
240														grow_factor = 0
241														horizontal_alignment = "left"
242														border = "all"
243														border_size = 5
244
245														[toggle_button]
246															id = "mod_active_state"
247															definition = "default"
248														[/toggle_button]
249
250													[/column]
251
252													[column]
253														grow_factor = 1
254														horizontal_alignment = "left"
255														border = "top,bottom,right"
256														border_size = 5
257
258														[label]
259															id = "mod_name"
260															definition = "default_small"
261														[/label]
262
263													[/column]
264
265													[column]
266														grow_factor = 0
267
268														[spacer]
269															width = 10
270														[/spacer]
271													[/column]
272
273												[/row]
274
275											[/grid]
276
277										[/toggle_panel]
278
279									[/column]
280
281								[/row]
282
283							[/list_definition]
284
285						[/listbox]
286
287					[/column]
288
289				[/row]
290
291			[/grid]
292
293		[/column]
294
295	[/row]
296
297#enddef
298
299#define _GUI_MP_CREATE_MAP_SETTINGS
300	[row]
301		grow_factor = 0
302
303		[column]
304			grow_factor = 0
305
306			border = "all"
307			border_size = 5
308			horizontal_alignment = "left"
309			[toggle_button]
310				id = "use_map_settings"
311				definition = "default"
312
313				label = _ "Use Map Settings"
314				tooltip = _ "Use scenario specific settings"
315			[/toggle_button]
316
317		[/column]
318
319	[/row]
320
321	[row]
322		grow_factor = 0
323
324		[column]
325			grow_factor = 1
326			horizontal_grow = true
327
328			[grid]
329
330				{_GUI_MP_CREATE_OPTION_SLIDER ( _ "Number of Turns")     "turn_count"          1  100 ( _ "The maximum number of turns the game can last") (
331					maximum_value_label = _ "unlimited"
332				)}
333
334				{_GUI_MP_CREATE_OPTION_SLIDER ( _ "Village Gold")        "village_gold"        1  5   ( _ "The amount of income each village yields per turn") ()}
335
336				{_GUI_MP_CREATE_OPTION_SLIDER ( _ "Village Support")     "village_support"     0  4   ( _ "The number of unit levels each village can support") ()}
337
338				{_GUI_MP_CREATE_OPTION_SLIDER ( _ "Experience Modifier") "experience_modifier" 30 200 ( _ "The amount of experience a unit needs to advance") (step_size=10)}
339
340			[/grid]
341
342		[/column]
343
344	[/row]
345
346	[row]
347		grow_factor = 0
348
349		[column]
350			horizontal_grow = true
351
352			[grid]
353
354				[row]
355
356					[column]
357						grow_factor = 0
358
359						{_GUI_MP_CREATE_ALIGN_SPACER}
360					[/column]
361
362					[column]
363						grow_factor = 1
364
365						border = "all"
366						border_size = 5
367						horizontal_alignment = "left"
368						[toggle_button]
369							id = "fog"
370							definition = "default"
371
372							label = _ "Fog of War"
373							tooltip = _ "Enemy units cannot be seen unless they are in range of your units"
374						[/toggle_button]
375
376					[/column]
377
378					[column]
379						grow_factor = 1
380
381						border = "all"
382						border_size = 5
383						horizontal_alignment = "left"
384						[toggle_button]
385							id = "shroud"
386							definition = "default"
387
388							label = _ "Shroud"
389							tooltip = _ "The map is unknown until your units explore it"
390						[/toggle_button]
391
392					[/column]
393
394					[column]
395						grow_factor = 1
396						vertical_alignment = "top"
397
398						border = "all"
399						border_size = 5
400						horizontal_alignment = "left"
401						[toggle_button]
402							id = "random_start_time"
403							definition = "default"
404
405							label = _ "Random Start Time"
406							tooltip = _ "Randomize the starting time of day"
407						[/toggle_button]
408
409					[/column]
410
411				[/row]
412
413			[/grid]
414
415		[/column]
416
417	[/row]
418#enddef
419
420#define _GUI_MP_CREATE_TIME_LIMIT
421	[row]
422		grow_factor = 0
423
424		[column]
425			grow_factor = 0
426
427			border = "all"
428			border_size = 5
429			horizontal_alignment = "left"
430			[toggle_button]
431				id = "time_limit"
432				definition = "default"
433
434				label = _ "Time Limit"
435				tooltip = _ "Enable custom time limits"
436			[/toggle_button]
437
438		[/column]
439
440	[/row]
441
442	[row]
443		grow_factor = 0
444
445		[column]
446			grow_factor = 1
447			horizontal_grow = true
448
449			[grid]
450
451				{_GUI_MP_CREATE_OPTION_SLIDER ( _ "Initial Limit")  "init_turn_limit" 30 1500 ( _ "Longest time allowed for first turn (seconds)") (step_size=15)}
452
453				{_GUI_MP_CREATE_OPTION_SLIDER ( _ "Turn Bonus")     "turn_bonus"      10 300  ( _ "Time for general tasks each turn (seconds)") (step_size=3)}
454
455				{_GUI_MP_CREATE_OPTION_SLIDER ( _ "Reservoir")      "reservoir"       30 1500 ( _ "Longest time possible for any turn (seconds)") (step_size=15)}
456
457				{_GUI_MP_CREATE_OPTION_SLIDER ( _ "Action Bonus")   "action_bonus"    0  30   ( _ "Time for each attack, recruit, and capture") ()}
458
459			[/grid]
460
461		[/column]
462
463	[/row]
464
465	# Keeping this commented out in case it's needed again
466	#[row]
467	#	grow_factor = 0
468	#
469	#	[column]
470	#		grow_factor = 1
471	#		horizontal_grow = true
472	#
473	#		[spacer]
474	#			width = "(if(screen_width > 1280, (screen_width / 2.4), 0))"
475	#		[/spacer]
476	#
477	#	[/column]
478	#
479	#[/row]
480#enddef
481
482#define _GUI_MP_CREATE_TAB_BAR
483	[horizontal_listbox]
484		id = "tab_bar"
485		horizontal_scrollbar_mode = "never"
486		vertical_scrollbar_mode = "never"
487
488		[list_definition]
489			[row]
490				[column]
491					horizontal_grow = true
492
493					[toggle_panel]
494						linked_group = "tabs"
495
496						[grid]
497
498							[row]
499
500								{_GUI_MP_CREATE_TAB_PADDING}
501
502								[column]
503									grow_factor = 1
504									border = all
505									border_size = 5
506
507									[label]
508										id = "tab_label"
509										wrap = true
510									[/label]
511
512								[/column]
513
514								{_GUI_MP_CREATE_TAB_PADDING}
515
516							[/row]
517
518						[/grid]
519
520					[/toggle_panel]
521				[/column]
522			[/row]
523		[/list_definition]
524
525		[list_data]
526
527			[row]
528
529				[column]
530
531					[widget]
532						id = "tab_label"
533						label = _ "General"
534					[/widget]
535
536				[/column]
537
538			[/row]
539
540				[row]
541
542				[column]
543
544					[widget]
545						id = "tab_label"
546						label = _ "Custom Options"
547					[/widget]
548
549				[/column]
550
551			[/row]
552
553			[row]
554
555				[column]
556
557					[widget]
558						id = "tab_label"
559						label = _ "Game Settings"
560					[/widget]
561
562				[/column]
563
564			[/row]
565
566		[/list_data]
567	[/horizontal_listbox]
568#enddef
569
570#define _GUI_MP_CREATE_TAB_PADDING
571	[column]
572		grow_factor = 0
573		border = all
574		border_size = 5
575
576		[spacer]
577			width = 10
578		[/spacer]
579
580	[/column]
581#enddef
582
583#define _GUI_MP_CREATE_MINIMAP_STACK
584	[column]
585		grow_factor = 0
586		horizontal_grow = true
587
588		{GUI_FORCE_WIDGET_MINIMUM_SIZE "(if(screen_width <= 1280, 200, 275))" "(if(screen_width <= 1280, 200, 275))" (
589			[stacked_widget]
590				id = "minimap_stack"
591				definition = "default"
592
593				[layer]
594
595					[row]
596
597						[column]
598							horizontal_grow = true
599							vertical_grow = true
600							border = "all"
601							border_size = 5
602
603							[minimap]
604								id = "minimap"
605								definition = "no_size"
606							[/minimap]
607						[/column]
608
609					[/row]
610
611				[/layer]
612
613				[layer]
614
615					[row]
616
617						[column]
618							horizontal_grow = true
619							vertical_grow = true
620							border = "all"
621							border_size = 5
622
623							[image]
624								id = "campaign_image"
625								definition = "default"
626							[/image]
627						[/column]
628
629					[/row]
630
631				[/layer]
632
633			[/stacked_widget]
634
635		)}
636
637	[/column]
638#enddef
639
640#define _GUI_MP_CREATE_GAME_LIST
641[grid]
642
643	[row]
644		grow_factor = 0
645
646		[column]
647			grow_factor = 1
648
649			border = "all"
650			border_size = 5
651			horizontal_grow = true
652			[text_box]
653				id = "game_filter"
654				definition = "default"
655				{FILTER_TEXT_BOX_HINT}
656			[/text_box]
657
658		[/column]
659
660	[/row]
661
662	[row]
663		grow_factor = 0
664
665		[column]
666			grow_factor = 1
667			horizontal_grow = true
668
669			[grid]
670
671				[row]
672					grow_factor = 0
673
674					[column]
675						grow_factor = 0
676
677						border = "all"
678						border_size = 5
679						horizontal_alignment = "left"
680						[label]
681							definition = "default_small"
682
683							label = _ "Players:"
684						[/label]
685
686					[/column]
687
688					[column]
689						grow_factor = 1
690
691						border = "all"
692						border_size = 5
693						horizontal_grow = true
694						[slider]
695							id = "num_players"
696							definition = "default"
697
698							minimum_value = 1
699							maximum_value = 9
700							step_size = 1
701
702							minimum_value_label =  _ "Any"
703						[/slider]
704
705					[/column]
706
707				[/row]
708
709			[/grid]
710
711		[/column]
712
713	[/row]
714
715	[row]
716
717		[column]
718			grow_factor = 0
719
720			border = "all"
721			border_size = 5
722			horizontal_grow = true
723			vertical_alignment = "top"
724
725			[menu_button]
726				id = "game_types"
727				definition = "default"
728			[/menu_button]
729
730		[/column]
731
732	[/row]
733
734	[row]
735		grow_factor = 1
736
737		[column]
738			grow_factor = 1
739
740			border = "all"
741			border_size = 5
742			horizontal_grow = true
743			vertical_grow = true
744
745			[listbox]
746				id = "games_list"
747				definition = "default"
748				horizontal_scrollbar_mode = "never"
749
750				[list_definition]
751
752					[row]
753
754						 [column]
755							grow_factor = 1
756							horizontal_grow = true
757
758							[toggle_panel]
759								id = "game_list_panel"
760								definition = "default"
761								return_value_id = "ok"
762
763								[grid]
764
765									[row]
766										[column]
767											grow_factor = 0
768											horizontal_grow = true
769											border = "all"
770											border_size = 5
771
772											[image]
773												id = "game_icon"
774												definition = "default"
775												linked_group = "game_icons"
776											[/image]
777
778										[/column]
779
780										[column]
781											grow_factor = 1
782											horizontal_grow = true
783											border = "all"
784											border_size = 5
785
786											[label]
787												id = "game_name"
788												definition = "default_small"
789											[/label]
790
791										[/column]
792
793									[/row]
794
795								[/grid]
796
797							[/toggle_panel]
798
799						[/column]
800
801					[/row]
802
803				[/list_definition]
804
805			[/listbox]
806
807		[/column]
808
809	[/row]
810
811[/grid]
812#enddef
813
814#define _GUI_MP_CREATE_MAP_OPTIONS
815[column]
816	grow_factor = 1
817	vertical_grow = true
818	horizontal_grow = true
819
820	[grid]
821
822		[row]
823			grow_factor = 0
824
825			[column]
826				grow_factor = 0
827
828				border = "all"
829				border_size = 5
830				horizontal_alignment = "left"
831				vertical_alignment = "top"
832				[label]
833					definition = "default_small"
834
835					label = _ "Random map options: "
836				[/label]
837
838			[/column]
839
840		[/row]
841
842		[row]
843			grow_factor = 0
844
845			[column]
846				grow_factor = 0
847
848				border = "all"
849				border_size = 5
850				horizontal_alignment = "left"
851				vertical_alignment = "top"
852				[button]
853					id = "random_map_regenerate"
854					definition = "default"
855
856					label = _ "Regenerate"
857				[/button]
858
859			[/column]
860
861		[/row]
862
863		[row]
864			grow_factor = 0
865
866			[column]
867				grow_factor = 0
868
869				border = "all"
870				border_size = 5
871				horizontal_alignment = "left"
872				vertical_alignment = "top"
873				[button]
874					id = "random_map_settings"
875					definition = "default"
876
877					label = _ "Settings"
878				[/button]
879
880			[/column]
881
882		[/row]
883
884		[row]
885			grow_factor = 1
886
887			[column]
888				grow_factor = 0
889
890				border = "all"
891				border_size = 5
892				horizontal_alignment = "left"
893				vertical_alignment = "bottom"
894				[button]
895					id = "load_game"
896					definition = "default"
897
898					label = _ "Load Game"
899				[/button]
900
901			[/column]
902
903		[/row]
904
905	[/grid]
906
907[/column]
908#enddef
909
910#define _GUI_MP_CREATE_MAIN_TOGGLE ID NAME TOOLTIP
911[column]
912	grow_factor = 1
913
914	border = "all"
915	border_size = 5
916	horizontal_alignment = "left"
917	[toggle_button]
918		id = {ID}
919		definition = "default"
920
921		label = {NAME}
922		tooltip = {TOOLTIP}
923	[/toggle_button]
924
925[/column]
926#enddef
927
928#define _GUI_MP_CREATE_SHUFFLE_TOGGLE
929{_GUI_MP_CREATE_MAIN_TOGGLE "shuffle_sides" _"Shuffle Sides" _"Assign sides to players at random"}
930#enddef
931
932#define _GUI_MP_CREATE_OBSERVER_TOGGLE
933{_GUI_MP_CREATE_MAIN_TOGGLE "observers" _"Observers" _"Allow users who are not playing to watch the game"}
934#enddef
935
936#define _GUI_MP_CREATE_REGISTERED_TOGGLE
937{_GUI_MP_CREATE_MAIN_TOGGLE "registered_users" _"Registered Users Only" _"Allow only registered users to join the game"}
938#enddef
939
940#define _GUI_MP_CREATE_SYNC_TOGGLE
941{_GUI_MP_CREATE_MAIN_TOGGLE "strict_sync" _"Strict Synchronization" _"Stricter checks for out-of-sync errors"}
942#enddef
943
944#define _GUI_MP_CREATE_PRIVATE_TOGGLE
945{_GUI_MP_CREATE_MAIN_TOGGLE "private_replay" _"Private Replay" _"Whether the replay will be publicly available"}
946#enddef
947
948#define _GUI_MP_CREATE_MAIN_OPTIONS
949[row]
950	grow_factor = 0
951
952	[column]
953		grow_factor = 0
954
955		border = "all"
956		border_size = 5
957		horizontal_alignment = "left"
958		[label]
959			definition = "default"
960
961			label = _ "Name of game:"
962		[/label]
963
964	[/column]
965
966	[column]
967		grow_factor = 1
968
969		border = "all"
970		border_size = 5
971		horizontal_alignment = "left"
972		[text_box]
973			id = "game_name"
974			definition = "default"
975			max_input_length = 50
976		[/text_box]
977
978	[/column]
979
980[/row]
981
982[row]
983	grow_factor = 0
984
985	[column]
986		grow_factor = 0
987
988		border = "all"
989		border_size = 5
990		horizontal_alignment = "left"
991		[label]
992			definition = "default"
993
994			label = _ "Password:"
995		[/label]
996
997	[/column]
998
999	[column]
1000		grow_factor = 1
1001
1002		border = "all"
1003		border_size = 5
1004		horizontal_alignment = "left"
1005		[text_box]
1006			id = "game_password"
1007			definition = "default"
1008			tooltip = _ "Set the password that people wanting to join your game as players must enter."
1009		[/text_box]
1010
1011	[/column]
1012
1013[/row]
1014#enddef
1015
1016[window_definition]
1017	id = "mp_create"
1018	description = "A simple window without border decorations and the ability to set a custom background."
1019
1020	{_GUI_RESOLUTION_BORDERLESS_BASE () 10 13 (
1021		[image]
1022			x = "(width - image_width)"
1023			y = 0
1024			w = "(image_original_width * (height / image_original_height))"
1025			h = "(height)"
1026
1027			# TODO: this should be generated with IPFs once we get a gradient function
1028			name = "dialogs/multi_create/background.png"
1029		[/image]
1030
1031		#
1032		# Corners
1033		#
1034
1035		[image]
1036			x = 0
1037			y = 0
1038			w = "(image_width)"
1039			h = "(image_height)"
1040			name = "dialogs/multi_create/corner.png~ROTATE(90)"
1041		[/image]
1042
1043		[image]
1044			x = "(width - image_width)"
1045			y = "(height - image_height)"
1046			w = "(image_width)"
1047			h = "(image_height)"
1048			name = "dialogs/multi_create/corner.png~ROTATE(-90)"
1049		[/image]
1050
1051		#
1052		# Decor
1053		#
1054
1055		[image]
1056			x = "((width / 2) - (image_width / 2))"
1057			y = "(height - image_height)"
1058			w = "(image_width)"
1059			h = "(image_height)"
1060			name = "dialogs/multi_create/decor.png"
1061		[/image]
1062	)}
1063[/window_definition]
1064
1065[window]
1066	id = "mp_create_game"
1067	description = "MP create game dialog."
1068
1069	{./mp_create_game/tiny_resolution.cfg}
1070	# {./mp_create_game/small_resolution.cfg}
1071	{./mp_create_game/default_resolution.cfg}
1072[/window]
1073
1074#undef _GUI_MP_CREATE_OPTION_SLIDER
1075#undef _GUI_MP_CREATE_GENERAL_PANEL
1076#undef _GUI_MP_CREATE_MAP_SETTINGS
1077#undef _GUI_MP_CREATE_TIME_LIMIT
1078#undef _GUI_MP_CREATE_TAB_BAR
1079#undef _GUI_MP_CREATE_TAB_PADDING
1080#undef _GUI_MP_CREATE_ALIGN_SPACER
1081#undef _GUI_MP_CREATE_MINIMAP_STACK
1082#undef _GUI_MP_CREATE_GAME_LIST
1083#undef _GUI_MP_CREATE_MAP_OPTIONS
1084#undef _GUI_MP_CREATE_MAIN_OPTIONS
1085#undef _GUI_MP_CREATE_MAIN_TOGGLE
1086#undef _GUI_MP_CREATE_SHUFFLE_TOGGLE
1087#undef _GUI_MP_CREATE_OBSERVER_TOGGLE
1088#undef _GUI_MP_CREATE_REGISTERED_TOGGLE
1089#undef _GUI_MP_CREATE_SYNC_TOGGLE
1090#undef _GUI_MP_CREATE_PRIVATE_TOGGLE
1091