2 CLASS(XonoticMapInfoDialog) EXTENDS(XonoticDialog)
3 METHOD(XonoticMapInfoDialog, fill, void(entity))
4 METHOD(XonoticMapInfoDialog, loadMapInfo, void(entity, float, entity))
5 ATTRIB(XonoticMapInfoDialog, title, string, _("Map Information"))
6 ATTRIB(XonoticMapInfoDialog, color, vector, SKINCOLOR_DIALOG_MAPINFO)
7 ATTRIB(XonoticMapInfoDialog, intendedWidth, float, 1.0)
8 ATTRIB(XonoticMapInfoDialog, rows, float, 12)
9 ATTRIB(XonoticMapInfoDialog, columns, float, 10)
11 ATTRIB(XonoticMapInfoDialog, previewImage, entity, NULL)
12 ATTRIB(XonoticMapInfoDialog, titleLabel, entity, NULL)
13 ATTRIB(XonoticMapInfoDialog, authorLabel, entity, NULL)
14 ATTRIB(XonoticMapInfoDialog, descriptionLabel, entity, NULL)
15 ATTRIB(XonoticMapInfoDialog, featuresLabel, entity, NULL)
17 ATTRIBARRAY(XonoticMapInfoDialog, typeLabels, entity, 24)
19 ATTRIB(XonoticMapInfoDialog, currentMapIndex, float, 0)
20 ATTRIB(XonoticMapInfoDialog, currentMapBSPName, string, string_null)
21 ATTRIB(XonoticMapInfoDialog, currentMapTitle, string, string_null)
22 ATTRIB(XonoticMapInfoDialog, currentMapAuthor, string, string_null)
23 ATTRIB(XonoticMapInfoDialog, currentMapDescription, string, string_null)
24 ATTRIB(XonoticMapInfoDialog, currentMapPreviewImage, string, string_null)
25 ATTRIB(XonoticMapInfoDialog, currentMapFeaturesText, string, string_null)
26 ENDCLASS(XonoticMapInfoDialog)
30 void XonoticMapInfoDialog_loadMapInfo(entity me, float i, entity mlb)
32 me.currentMapIndex = i;
33 me.startButton.onClickEntity = mlb;
36 if(me.currentMapBSPName)
38 strunzone(me.currentMapBSPName);
39 strunzone(me.currentMapTitle);
40 strunzone(me.currentMapAuthor);
41 strunzone(me.currentMapDescription);
42 strunzone(me.currentMapPreviewImage);
43 strunzone(me.currentMapFeaturesText);
45 me.currentMapBSPName = strzone(MapInfo_Map_bspname);
46 me.currentMapTitle = strzone(MapInfo_Map_title);
47 me.currentMapAuthor = strzone(MapInfo_Map_author);
48 me.currentMapDescription = strzone(MapInfo_Map_description);
49 me.currentMapFeaturesText = strzone((MapInfo_Map_supportedFeatures & MAPINFO_FEATURE_WEAPONS) ? _("Full item placement") : _("MinstaGib only"));
50 me.currentMapPreviewImage = strzone(strcat("/maps/", MapInfo_Map_bspname));
52 me.frame.setText(me.frame, me.currentMapBSPName);
53 me.titleLabel.setText(me.titleLabel, me.currentMapTitle);
54 me.authorLabel.setText(me.authorLabel, me.currentMapAuthor);
55 me.descriptionLabel.setText(me.descriptionLabel, me.currentMapDescription);
56 me.featuresLabel.setText(me.featuresLabel, me.currentMapFeaturesText);
57 me.previewImage.src = me.currentMapPreviewImage;
59 for(i = 0; i < GameType_GetCount(); ++i)
62 e = me.(typeLabels[i]);
63 e.disabled = !(MapInfo_Map_supportedGametypes & GameType_GetID(i));
68 void XonoticMapInfoDialog_fill(entity me)
74 me.TD(me, me.rows - 2, 3, e = makeXonoticImage(string_null, 4.0/3.0));
76 me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
77 w = me.columns - me.currentColumn;
78 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Title:")));
79 me.TD(me, 1, w-1, e = makeXonoticTextLabel(0, ""));
80 e.colorL = SKINCOLOR_MAPLIST_TITLE;
84 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Author:")));
85 me.TD(me, 1, w-1, e = makeXonoticTextLabel(0, ""));
86 e.colorL = SKINCOLOR_MAPLIST_AUTHOR;
90 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Features:")));
91 me.TD(me, 1, w-1, e = makeXonoticTextLabel(0, ""));
95 me.TD(me, 1, w, e = makeXonoticTextLabel(0, _("Game types:")));
98 n = ceil(GameType_GetCount() / (me.rows - 6));
100 for(i = 0; i < GameType_GetCount(); ++i)
107 me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, GameType_GetName(i)));
108 me.(typeLabels[i]) = e;
111 me.gotoRC(me, me.rows - 2, 0);
112 me.TD(me, 1, me.columns, e = makeXonoticTextLabel(0.5, ""));
114 me.descriptionLabel = e;
116 me.gotoRC(me, me.rows - 1, 0);
119 me.TD(me, 1, me.columns - 5.5, e = makeXonoticButton(_("Close"), '0 0 0'));
120 e.onClick = Dialog_Close;
121 e.onClickEntity = me;
122 me.TD(me, 1, me.columns - 5.5, me.startButton = e = makeXonoticButton(_("Play"), '0 0 0'));
123 me.startButton.onClick = MapList_LoadMap;
124 me.startButton.onClickEntity = NULL; // filled later