1// Create Installation: Select Type
2component cmp_installation_type extends panel {
3	{
4		size		"410 20"
5		border		0
6		bordercolor	"1 1 1 1"
7		padding		4
8
9		onClick {
10			if ( *node:this.id@string eq "base" ) {
11				cmd "ui_pop; mn_base_select -1;"
12			} else {
13				cmd "ui_pop; ui_build_installationtype <node:this.id@string>;"
14			}
15		}
16		onMouseEnter {
17			*node:this@border = 2
18		}
19		onMouseLeave {
20			*node:this@border = 0
21		}
22	}
23
24	data id {
25		integer		0
26		string		""
27	}
28
29	string name {
30		pos			"0 0"
31		size		"210 20"
32		font		"f_small"
33		contentalign	ALIGN_CL
34		ghost		true
35	}
36	string buildtime {
37		pos			"210 2"
38		size		"100 15"
39		font		"f_small"
40		contentalign	ALIGN_CR
41		ghost		true
42	}
43	string cost {
44		pos			"310 2"
45		size		"100 15"
46		font		"f_small"
47		contentalign	ALIGN_CR
48		ghost		true
49	}
50}
51
52window popup_newinstallation_type
53{
54	{
55		pos			"264 262"
56		size		"485 247"
57		dragbutton	true
58		closebutton	true
59		background		"ui/popup_alpha_tile"
60		string		"_New installation"
61	}
62
63	string type_label
64	{
65		string		"_Type"
66		pos			"30 55"
67		size		"210 20"
68		font		"f_small_bold"
69	}
70	string buildtime_label
71	{
72		string		"_Build Time"
73		pos			"245 55"
74		size		"100 20"
75		contentalign	ALIGN_CC
76		font		"f_small_bold"
77	}
78	string cost_label
79	{
80		string		"_Cost"
81		pos			"347 55"
82		size		"100 20"
83		contentalign	ALIGN_CC
84		font		"f_small_bold"
85	}
86
87	panel list {
88		pos			"30 75"
89		size		"410 100"
90		layout		LAYOUT_TOP_DOWN_FLOW
91		wheelscrollable	true
92
93		onViewChange {
94			*node:parent.list_scroll@fullsize = <fullsize>
95			*node:parent.list_scroll@current = <viewpos>
96			*node:parent.list_scroll@viewsize = <viewsize>
97		}
98	}
99	vscrollbar list_scroll {
100		image		"ui/scrollbar_v_green"
101		pos			"445 75"
102		height		"100"
103		current		0
104		viewsize	5
105		fullsize	5
106		hidewhenunused	true
107
108		onChange {
109			*node:parent.list@viewpos = <current>
110		}
111	}
112
113	confunc installationtype_clear {
114		call *node:parent.list@removeAllChild
115	}
116	confunc installationtype_add {
117		call *node:parent.list@createChild("inst_<1>", "cmp_installation_type")
118		*node:parent.list.inst_<1>.id@string = "<1>"
119		*node:parent.list.inst_<1>.name@string = "<2>"
120		*node:parent.list.inst_<1>.buildtime@string = "<3>"
121		*node:parent.list.inst_<1>.cost@string = "<4>"
122
123		if ( *node:parent.list.inst_<1>.buildtime@string eq "-" ) {
124			*node:parent.list.inst_<1>.buildtime@invis = true
125		}
126
127	}
128
129	cmpPopupButton bt_close {
130		string		"_Close"
131		pos			"287 188"
132		onClick		{
133			cmd "ui_pop;"
134		}
135	}
136
137	func onWindowOpened {
138		cmd "ui_fill_installationtypes;"
139	}
140}
141
142
143// Popup new base
144window popup_newbase {
145	{
146		pos			"264 262"
147		size		"400 210"
148		dragbutton	true
149		modal		true
150		background	"ui/popup_alpha_tile"
151		string		"_New base"
152	}
153
154	string name_label {
155		string		"_Name:"
156		pos			"25 50"
157		size		"75 20"
158		font		"f_small_bold"
159	}
160	textentry name {
161		string		*cvar:mn_base_title
162		pos			"25 75"
163		size		"330 25"
164		font		"f_big"
165		background	"ui/button_green_verysmall"
166		contentalign	ALIGN_CL
167		color		"0 .78 0 1"
168		selectcolor	"1 1 1 1"
169	}
170
171	button bt_nameedit {
172		tooltip		"_Rename your base"
173		icon		"icons/pen"
174		pos			"360 75"
175		size		"25 25"
176		padding		0
177		onClick {
178			call *node:root.name@edit
179		}
180	}
181
182	string cost_label {
183		string		"_Cost:"
184		pos			"25 110"
185		size		"75 20"
186		font		"f_small_bold"
187	}
188	string cost {
189		string		*cvar:mn_base_cost
190		pos			"100 110"
191		size		"100 25"
192	}
193
194	cmpPopupButton bt_build {
195		string		"_Build"
196		tooltip		"_Build the base"
197		pos			"21 150"
198		onClick	{
199			cmd "ui_pop;mn_base_build;"
200		}
201	}
202	cmpCancelButton bt_cancel {
203		pos			"205 150"
204		onClick	{
205			cmd "ui_pop;mn_mapaction_reset;"
206		}
207	}
208}
209
210// Installation popup windows
211
212component cmp_ufoyard_entry extends panel {
213	{
214		size		"250 40"
215		border		0
216		bordercolor	"0 0.5 0 1"
217
218		onClick {
219			cmd "ufolist_select <node:this.id@integer> <node:this.id@string>;"
220		}
221	}
222
223	data id {
224		integer		0
225		string		""
226	}
227	model ufomodel {
228		pos			"2 4"
229		size		"32 32"
230		autoscale	true
231		angles		"0 0 150"
232		ghost		true
233	}
234	string title {
235		pos			"37 2"
236		size		"200 20"
237		font		"f_small_bold"
238		ghost		true
239	}
240	string detail {
241		pos			"37 22"
242		size		"200 15"
243		font		"f_verysmall"
244		ghost		true
245	}
246}
247
248component cmp_ufotransfer_entry extends panel {
249	{
250		size		"420 40"
251		border		0
252		bordercolor	"0 0.5 0 1"
253
254		onClick {
255			cmd "ufotransferlist_selectyard <node:this.id@integer>;"
256		}
257		onRClick {
258			cmd "mn_installation_select <node:this.id@integer>;"
259		}
260	}
261
262	data id {
263		integer		0
264		string		""
265	}
266	model yardmodel {
267		src			"geoscape/ufoyard"
268		pos			"2 4"
269		size		"32 32"
270		autoscale	true
271		angles		"0 0 150"
272		ghost		true
273	}
274	string title {
275		pos			"37 4"
276		size		"290 20"
277		font		"f_small_bold"
278		ghost		true
279	}
280	string space {
281		pos			"330 4"
282		size		"20 15"
283		font		"f_verysmall"
284		ghost		true
285	}
286	string space_label {
287		string		"_free"
288		pos			"350 4"
289		size		"60 15"
290		font		"f_verysmall"
291		ghost		true
292	}
293	string location {
294		pos			"37 22"
295		size		"370 15"
296		font		"f_verysmall"
297		ghost		true
298	}
299	panel ufos {
300		layout		LAYOUT_LEFT_RIGHT_FLOW
301		top			40
302		size		"240 40"
303		ghost		true
304	}
305	button transfer {
306		string		"_Transfer"
307		pos			"280 47"
308		size		"110 26"
309		contentalign	ALIGN_CC
310		bordercolor	"0 .5 0 1"
311		border		1
312
313		onMouseEnter {
314			if ( *node:this@disabled != true ) {
315				*node:this@bordercolor = "1 1 1 1"
316			}
317		}
318		onMouseLeave {
319			if ( *node:this@disabled != true ) {
320				*node:this@bordercolor = "0 .5 0 1"
321			}
322		}
323		onClick {
324			cmd "ui_transferufo <node:root.selected@integer> <node:parent.id@integer>; ui_fillufoyards;"
325		}
326	}
327}
328
329component cmp_ufotransfer_ufoentry extends panel {
330	{
331		size		"40 40"
332		border		0
333		bordercolor	"0 0.5 0 1"
334	}
335
336	model ufomodel {
337		pos			"2 4"
338		size		"40 40"
339		autoscale	true
340		angles		"0 0 150"
341		ghost		true
342	}
343}
344
345window popup_ufoyards {
346	{
347		string		"_UFO Yards"
348		background		"ui/popup_alpha_tile"
349		pos			"64 250"
350		size		"768 370"
351		dragbutton	true
352		closebutton	true
353	}
354
355	data selected {
356		integer		0
357		string		""
358	}
359
360	panel list {
361		{
362			pos		"20 50"
363			size	"250 295"
364			layout 	LAYOUT_TOP_DOWN_FLOW
365			wheelscrollable	true
366			border	1
367			padding	6
368
369			onViewChange {
370				*node:parent.list_scroll@fullsize = <fullsize>
371				*node:parent.list_scroll@current = <viewpos>
372				*node:parent.list_scroll@viewsize = <viewsize>
373			}
374		}
375	}
376	vscrollbar list_scroll {
377		image		"ui/scrollbar_v_green"
378		pos			"270 50"
379		height		"295"
380		current		0
381		viewsize	4
382		fullsize	4
383		hidewhenunused	true
384
385		onChange {
386			*node:parent.list@viewpos = <current>
387		}
388	}
389
390	// this should only be a vertical line...
391	bar separator {
392		pos			"293 92"
393		size		"4 255"
394		readonly	true
395		nohover		true
396		color		"0 0.4 0 1"
397		max			1
398		current		1
399	}
400
401	tab ufoyardtabs {
402		{
403			pos		"300 50"
404			size	"450 35"
405			cvar	*cvar:ufoyard_tab
406
407			onChange {
408				if ( *node:root.selected@string eq "ufo" ) {
409					*node:this.transfer@disabled = false
410					*node:this.sell@disabled = false
411					*node:parent.yardinfo@invis = true
412
413					if ( *cvar:ufoyard_tab eq "info" ) {
414						*node:parent.ufoinfo@invis = false
415						*node:parent.ufotransfer@invis = true
416						*node:parent.ufotransfer_scroll@invis = true
417						*node:parent.ufosell@invis = true
418					} elif ( *cvar:ufoyard_tab eq "transfer" ) {
419						*node:parent.ufoinfo@invis = true
420						*node:parent.ufotransfer@invis = false
421						*node:parent.ufotransfer_scroll@invis = false
422						*node:parent.ufosell@invis = true
423
424						cmd "ui_fill_ufotransfer <node:root.selected@integer>;"
425					} elif ( *cvar:ufoyard_tab eq "sell" ) {
426						*node:parent.ufoinfo@invis = true
427						*node:parent.ufotransfer@invis = false
428						*node:parent.ufotransfer_scroll@invis = false
429						*node:parent.ufosell@invis = true
430
431						cmd "ui_fill_ufosell <node:root.selected@integer>;"
432					} else {
433						*node:parent.ufoinfo@invis = true
434						*node:parent.ufotransfer@invis = true
435						*node:parent.ufotransfer_scroll@invis = true
436						*node:parent.ufosell@invis = true
437					}
438				} else {
439					*node:this.transfer@disabled = true
440					*node:this.sell@disabled = true
441					*node:parent.ufoinfo@invis = true
442					*node:parent.ufotransfer@invis = true
443					*node:parent.ufotransfer_scroll@invis = true
444					*node:parent.ufosell@invis = true
445
446					*cvar:ufoyard_tab = "info"
447					*node:parent.yardinfo@invis = false
448				}
449			}
450		}
451		option information {
452			label	"_Information"
453			value	"info"
454		}
455		option transfer {
456			label	"_Transfer"
457			value	"transfer"
458			disabled true
459		}
460		option sell {
461			label	"_Sell"
462			value	"sell"
463			invis	true
464		}
465	}
466
467	panel yardinfo {
468		{
469			pos		"300 85"
470			size	"450 270"
471		}
472
473		model ufomodel {
474			src			"geoscape/ufoyard"
475			pos			"10 10"
476			size		"128 128"
477			autoscale	true
478			angles		"0 0 150"
479		}
480
481		string name_label {
482			string		"_Name:"
483			pos			"150 5"
484			size		"290 20"
485			font		"f_small_bold"
486		}
487		textentry name {
488			string		*cvar:mn_installation_title
489			pos			"150 35"
490			size		"265 25"
491			border		3
492			bordercolor	"0 0.5 0 1"
493
494			onChange {
495				cmd "mn_installation_changename;"
496				cmd "ui_fillufoyards;"
497			}
498		}
499		button name_edit
500		{
501			tooltip		"_Rename Installation"
502			icon		"icons/pen"
503			pos			"420 33"
504			size		"35 35"
505			padding		0
506			onClick {
507				call *node:parent.name@edit
508			}
509		}
510
511		string location_label {
512			string		"_Location:"
513			pos			"150 75"
514			size		"290 20"
515			font		"f_small_bold"
516		}
517		string location {
518			pos			"150 100"
519			size		"280 20"
520			contentalign	ALIGN_UR
521		}
522
523		string buildtime_label {
524			string		"_Time to build:"
525			pos			"150 130"
526			size		"200 20"
527			invis		true
528			font		"f_small_bold"
529		}
530		string buildtime {
531			pos			"350 130"
532			size		"80 20"
533			contentalign	ALIGN_UR
534			invis		true
535		}
536
537		string maxcap_label {
538			string		"_Capacity:"
539			pos			"150 150"
540			size		"200 20"
541			font		"f_small_bold"
542		}
543		string maxcap {
544			pos			"350 150"
545			size		"80 20"
546			contentalign	ALIGN_UR
547		}
548
549		string freecap_label 	{
550			string		"_Free Space:"
551			pos			"150 175"
552			size		"200 20"
553			font		"f_small_bold"
554		}
555		string freecap {
556			pos			"350 175"
557			size		"80 20"
558			contentalign	ALIGN_UR
559		}
560
561		checkbox_green confirm {
562			tooltip		"_Confirm destroying"
563			pos			"120 221"
564			size		"20 20"
565			current		0
566		}
567		cmpPopupButton destroy {
568			string		"_Destroy"
569			tooltip		"_Destroy installation"
570			pos			"170 215"
571			size		"200 32"
572			font		"f_menu"
573
574			onClick {
575				cmd "ui_pop; mn_installation_destroy -1 <node:parent.confirm@current>;"
576			}
577		}
578	}
579
580	panel ufoinfo {
581		{
582			pos		"300 85"
583			size	"450 270"
584			invis	true
585		}
586
587		model ufomodel {
588			pos			"10 10"
589			size		"128 128"
590			autoscale	true
591			angles		"0 0 150"
592		}
593
594		string name {
595			pos			"150 10"
596			size		"280 35"
597			font		"f_normal_bold"
598			contentalign	ALIGN_CL
599		}
600
601		string condition_label {
602			string		"_Condition:"
603			pos			"150 50"
604			size		"200 20"
605			font		"f_small_bold"
606		}
607		string condition {
608			pos			"350 50"
609			size		"80 20"
610			contentalign	ALIGN_UR
611		}
612
613		string status_label {
614			string		"_Status:"
615			pos			"150 70"
616			size		"150 20"
617			font		"f_small_bold"
618		}
619		string status {
620			pos			"300 70"
621			size		"130 20"
622			contentalign	ALIGN_UR
623		}
624
625		string location_label {
626			string		"_Location:"
627			pos			"150 90"
628			size		"150 20"
629			font		"f_small_bold"
630		}
631		string location {
632			pos			"300 90"
633			size		"130 20"
634			contentalign	ALIGN_UR
635		}
636
637		string eta_label {
638			string		"_ETA:"
639			pos			"150 110"
640			size		"150 20"
641			font		"f_small_bold"
642		}
643		string eta {
644			pos			"300 110"
645			size		"130 20"
646			contentalign	ALIGN_UR
647		}
648
649		cmpPopupButton transfer {
650			string		"_Transfer"
651			tooltip		"_Transfer UFO"
652			pos			"170 180"
653			size		"200 32"
654			font		"f_menu"
655
656			onClick {
657				*cvar:ufoyard_tab = "transfer"
658				call *node:root.ufoyardtabs@onChange
659			}
660		}
661		checkbox_green confirm {
662			tooltip		"_Confirm destroying"
663			pos			"120 221"
664			size		"20 20"
665			current		0
666		}
667		cmpPopupButton destroy {
668			string		"_Destroy"
669			tooltip		"_Destroy UFO"
670			pos			"170 215"
671			size		"200 32"
672			font		"f_menu"
673
674			onClick {
675				cmd "ui_destroystoredufo <node:root.selected@integer> <node:parent.confirm@current>;"
676			}
677		}
678	}
679	panel ufotransfer {
680		{
681			pos		"300 85"
682			size	"430 270"
683			layout	LAYOUT_TOP_DOWN_FLOW
684			padding	6
685			invis	true
686			wheelscrollable	true
687			onViewChange {
688				*node:parent.ufotransfer_scroll@fullsize = <fullsize>
689				*node:parent.ufotransfer_scroll@current = <viewpos>
690				*node:parent.ufotransfer_scroll@viewsize = <viewsize>
691			}
692		}
693
694		data selected {
695			integer		0
696			string		""
697		}
698	}
699	vscrollbar ufotransfer_scroll {
700		image		"ui/scrollbar_v_green"
701		pos			"730 85"
702		height		270
703		current		0
704		viewsize	4
705		fullsize	4
706		hidewhenunused	true
707
708		onChange {
709			*node:parent.ufotransfer@viewpos = <current>
710		}
711	}
712
713	panel ufosell {
714		{
715			pos		"300 85"
716			size	"430 270"
717			layout	LAYOUT_TOP_DOWN_FLOW
718			padding	6
719			invis	true
720			wheelscrollable	true
721			onViewChange {
722				*node:parent.ufosell_scroll@fullsize = <fullsize>
723				*node:parent.ufosell_scroll@current = <viewpos>
724				*node:parent.ufosell_scroll@viewsize = <viewsize>
725			}
726		}
727
728		data selected {
729			integer		0
730			string		""
731		}
732	}
733	vscrollbar ufosell_scroll {
734		image		"ui/scrollbar_v_green"
735		pos			"730 85"
736		height		270
737		current		0
738		viewsize	4
739		fullsize	4
740		hidewhenunused	true
741		invis		true
742
743		onChange {
744			*node:parent.ufosell@viewpos = <current>
745		}
746	}
747
748	confunc ufolist_clear {
749		*node:root.selected@integer = 0
750		*node:root.selected@string = ""
751		call *node:parent.list@removeAllChild
752	}
753	confunc ufolist_addufoyard {
754		call *node:parent.list@createChild("ufoyard<1>", "cmp_ufoyard_entry")
755		*node:parent.list.ufoyard<1>.id@string = "ufoyard"
756		*node:parent.list.ufoyard<1>.id@integer = <1>
757		*node:parent.list.ufoyard<1>.ufomodel@src = "geoscape/ufoyard"
758		*node:parent.list.ufoyard<1>.title@string = "<2>"
759		*cvar:mn_installation_title = "<2>"
760		*node:parent.list.ufoyard<1>.detail@string = "<3>"
761
762		*node:parent.yardinfo.location@string = "<3>"
763		if ( "<node:parent.yardinfo.location@string>" eq "" ) {
764			*node:parent.yardinfo.location_label@invis = true
765		} else {
766			*node:parent.yardinfo.location_label@invis = false
767		}
768
769		*node:parent.yardinfo.maxcap@string = "<4>"
770		*node:parent.yardinfo.freecap@string = "<5>"
771
772		*node:parent.yardinfo.buildtime@string = "<6>"
773		if ( *node:parent.yardinfo.buildtime@string eq "-" ) {
774			*node:parent.yardinfo.buildtime_label@invis = true
775			*node:parent.yardinfo.buildtime@invis = true
776		} else {
777			*node:parent.yardinfo.buildtime_label@invis = false
778			*node:parent.yardinfo.buildtime@invis = false
779		}
780
781		cmd "ufolist_select <1> ufoyard;"
782	}
783	confunc ufolist_addufo {
784		call *node:parent.list@createChild("ufo<1>", "cmp_ufoyard_entry")
785		// tmpvar
786		*node:parent.list.ufo<1>.id@string = "<5>"
787		if ( *node:parent.list.ufo<1>.id@string eq "transfering" ) {
788			*node:parent.list.ufo<1>@bgcolor = ".3 .3 .3 .3"
789		} elif ( *node:parent.list.ufo<1>.id@string eq "disassembling" ) {
790			*node:parent.list.ufo<1>@bgcolor = "0 .3 0 .3"
791		}
792
793		*node:parent.list.ufo<1>.id@integer = <1>
794		*node:parent.list.ufo<1>.id@string = "ufo"
795		*node:parent.list.ufo<1>.ufomodel@src = "<4>"
796		*node:parent.list.ufo<1>.title@string = "<2>"
797		*node:parent.list.ufo<1>.detail@string = "<3>"
798	}
799	confunc ufolist_select {
800		if ( *node:root.selected@string ne "" ) {
801			*node:root.list.<node:root.selected@string><node:root.selected@integer>@border = 0
802		}
803		*node:root.selected@integer = <1>
804		*node:root.selected@string = <2>
805		*node:root.list.<node:root.selected@string><node:root.selected@integer>@border = 1
806		*node:parent.yardinfo.confirm@current = 0
807		*node:parent.ufoinfo.confirm@current = 0
808
809		if ( "<node:root.selected@string>" eq "ufoyard" ) {
810//			cmd "ui_selectufoyard <node:root.selected@integer>;"
811		} elif ( "<node:root.selected@string>" eq "ufo" ) {
812			cmd "ui_selectstoredufo <node:root.selected@integer>;"
813		}
814
815		*cvar:ufoyard_tab = "info"
816		call *node:parent.ufoyardtabs@onChange
817	}
818
819	confunc show_ufoyard {
820	}
821	confunc show_storedufo {
822		if ( "<1>" eq "-" ) {
823			cmd "echo noufo;"
824		} else {
825			*node:parent.ufoinfo.name@string = "<2>"
826			*node:parent.ufoinfo.condition@string = "<3>%"
827			*node:parent.ufoinfo.ufomodel@src = "<4>"
828			*node:parent.ufoinfo.status@string = "<5>"
829			*node:parent.ufoinfo.eta@string = "<6>"
830			*node:parent.ufoinfo.location@string = "<7>"
831
832			if ( *node:parent.ufoinfo.status@string eq "disassembling" ) {
833				*node:parent.ufoinfo.status@string = "_disassembling"
834				*node:parent.ufoyardtabs.transfer@disabled = true
835				*node:parent.ufoinfo.transfer@disabled = true
836				*node:parent.ufoinfo.confirm@disabled = false
837				*node:parent.ufoinfo.destroy@disabled = false
838			} elif ( *node:parent.ufoinfo.status@string eq "transfering" ) {
839				*node:parent.ufoinfo.status@string = "_transfering"
840				*node:parent.ufoyardtabs.transfer@disabled = true
841				*node:parent.ufoinfo.transfer@disabled = true
842				*node:parent.ufoinfo.confirm@disabled = true
843				*node:parent.ufoinfo.destroy@disabled = true
844			} elif ( *node:parent.ufoinfo.status@string eq "stored" ) {
845				*node:parent.ufoinfo.status@string = "_stored"
846				*node:parent.ufoyardtabs.transfer@disabled = false
847				*node:parent.ufoinfo.transfer@disabled = false
848				*node:parent.ufoinfo.confirm@disabled = false
849				*node:parent.ufoinfo.destroy@disabled = false
850			} else {
851				*node:parent.ufoinfo.status@string = "_unknown"
852				*node:parent.ufoyardtabs.transfer@disabled = true;
853				*node:parent.ufoinfo.transfer@disabled = true
854				*node:parent.ufoinfo.confirm@disabled = true
855				*node:parent.ufoinfo.destroy@disabled = true
856			}
857
858			if ( *node:parent.ufoinfo.eta@string eq "-" ) {
859				*node:parent.ufoinfo.eta_label@invis = true
860				*node:parent.ufoinfo.eta@invis = true
861			} else {
862				*node:parent.ufoinfo.eta_label@invis = false
863				*node:parent.ufoinfo.eta@invis = false
864			}
865		}
866	}
867
868	confunc ufotransferlist_clear {
869		*node:root.ufotransfer.selected@integer = -1
870		*node:root.ufotransfer.selected@string = ""
871		call *node:parent.ufotransfer@removeAllChild
872	}
873	confunc ufotransferlist_addyard {
874		call *node:parent.ufotransfer@createChild("destyard<1>", "cmp_ufotransfer_entry")
875
876		*node:parent.ufotransfer.destyard<1>.id@integer = <5>
877		if ( *node:parent.ufotransfer.destyard<1>.id@integer < 1 ) {
878			*node:parent.ufotransfer.destyard<1>@bgcolor = ".3 .3 .3 .3"
879		}
880		*node:parent.ufotransfer.destyard<1>.id@integer = <4>
881		if ( *node:parent.ufotransfer.destyard<1>.id@integer < 1 ) {
882			*node:parent.ufotransfer.destyard<1>.transfer@disabled = true
883			*node:parent.ufotransfer.destyard<1>.transfer@bordercolor = ".5 .5 .5 1"
884		}
885		*node:parent.ufotransfer.destyard<1>.id@integer = <1>
886		*node:parent.ufotransfer.destyard<1>.title@string = "<2>"
887		*node:parent.ufotransfer.destyard<1>.location@string = "<3>"
888		*node:parent.ufotransfer.destyard<1>.space@string = "_free"
889		*node:parent.ufotransfer.destyard<1>.space@string = "<4>"
890	}
891	confunc ufotransferlist_selectyard {
892		if ( *node:root.ufotransfer.selected@integer != -1 ) {
893			*node:root.ufotransfer.destyard<node:root.ufotransfer.selected@integer>@border = 0
894			*node:root.ufotransfer.destyard<node:root.ufotransfer.selected@integer>@height = 40
895		}
896		*node:root.ufotransfer.selected@integer = <1>
897		*node:root.ufotransfer.destyard<1>@border = 1
898		if ( *node:parent.ufotransfer.destyard<1>@bgcolor ne ".3 .3 .3 .3" ) {
899			*node:root.ufotransfer.destyard<1>@height = 80
900			cmd "ui_selecttransferyard <1>;"
901		}
902	}
903
904	confunc ufotransferlist_clearufos {
905		call *node:parent.ufotransfer.destyard<1>.ufos@removeAllChild
906	}
907	confunc ufotransferlist_addufos {
908		call *node:parent.ufotransfer.destyard<1>.ufos@createChild("ufo<2>", "cmp_ufotransfer_ufoentry")
909		*node:parent.ufotransfer.destyard<1>.ufos.ufo<2>.ufomodel@src = "<3>"
910	}
911
912	func onWindowOpened {
913		cmd "ui_fillufoyards;"
914	}
915	func onWindowClosed {
916	}
917}
918