]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - data/qcsrc/menu/voret/dialog_multiplayer_create_mapinfo.c
Added settings for anaglyph stereo in the Video menu, so people with 3D glasses can...
[voretournament/voretournament.git] / data / qcsrc / menu / voret / dialog_multiplayer_create_mapinfo.c
1 #ifdef INTERFACE\r
2 CLASS(VoretMapInfoDialog) EXTENDS(VoretDialog)\r
3         METHOD(VoretMapInfoDialog, fill, void(entity))\r
4         METHOD(VoretMapInfoDialog, loadMapInfo, void(entity, float, entity))\r
5         ATTRIB(VoretMapInfoDialog, title, string, "Map Information")\r
6         ATTRIB(VoretMapInfoDialog, color, vector, SKINCOLOR_DIALOG_MAPINFO)\r
7         ATTRIB(VoretMapInfoDialog, intendedWidth, float, 0.85)\r
8         ATTRIB(VoretMapInfoDialog, rows, float, 9)\r
9         ATTRIB(VoretMapInfoDialog, columns, float, 10)\r
10 \r
11         ATTRIB(VoretMapInfoDialog, previewImage, entity, NULL)\r
12         ATTRIB(VoretMapInfoDialog, titleLabel, entity, NULL)\r
13         ATTRIB(VoretMapInfoDialog, authorLabel, entity, NULL)\r
14         ATTRIB(VoretMapInfoDialog, descriptionLabel, entity, NULL)\r
15         ATTRIB(VoretMapInfoDialog, featuresLabel, entity, NULL)\r
16 \r
17         ATTRIB(VoretMapInfoDialog, typeDeathmatchLabel, entity, NULL)\r
18         ATTRIB(VoretMapInfoDialog, typeTDMLabel, entity, NULL)\r
19         ATTRIB(VoretMapInfoDialog, typeLMSLabel, entity, NULL)\r
20         ATTRIB(VoretMapInfoDialog, typeArenaLabel, entity, NULL)\r
21         ATTRIB(VoretMapInfoDialog, typeDominationLabel, entity, NULL)\r
22         ATTRIB(VoretMapInfoDialog, typeKeyHuntLabel, entity, NULL)\r
23         ATTRIB(VoretMapInfoDialog, typeCTFLabel, entity, NULL)\r
24         ATTRIB(VoretMapInfoDialog, typeCALabel, entity, NULL)\r
25         ATTRIB(VoretMapInfoDialog, typeAssaultLabel, entity, NULL)\r
26         ATTRIB(VoretMapInfoDialog, typeOnslaughtLabel, entity, NULL)\r
27         ATTRIB(VoretMapInfoDialog, typeRaceLabel, entity, NULL)\r
28         ATTRIB(VoretMapInfoDialog, typeCTSLabel, entity, NULL)\r
29         ATTRIB(VoretMapInfoDialog, typeRPGLabel, entity, NULL)\r
30 \r
31         ATTRIB(VoretMapInfoDialog, currentMapIndex, float, 0)\r
32         ATTRIB(VoretMapInfoDialog, currentMapBSPName, string, string_null)\r
33         ATTRIB(VoretMapInfoDialog, currentMapTitle, string, string_null)\r
34         ATTRIB(VoretMapInfoDialog, currentMapAuthor, string, string_null)\r
35         ATTRIB(VoretMapInfoDialog, currentMapDescription, string, string_null)\r
36         ATTRIB(VoretMapInfoDialog, currentMapPreviewImage, string, string_null)\r
37         ATTRIB(VoretMapInfoDialog, currentMapFeaturesText, string, string_null)\r
38 ENDCLASS(VoretMapInfoDialog)\r
39 #endif\r
40 \r
41 #ifdef IMPLEMENTATION\r
42 void loadMapInfoVoretMapInfoDialog(entity me, float i, entity mlb)\r
43 {\r
44         me.currentMapIndex = i;\r
45         me.startButton.onClickEntity = mlb;\r
46         MapInfo_Get_ByID(i);\r
47 \r
48         if(me.currentMapBSPName)\r
49         {\r
50                 strunzone(me.currentMapBSPName);\r
51                 strunzone(me.currentMapTitle);\r
52                 strunzone(me.currentMapAuthor);\r
53                 strunzone(me.currentMapDescription);\r
54                 strunzone(me.currentMapPreviewImage);\r
55                 strunzone(me.currentMapFeaturesText);\r
56         }\r
57         me.currentMapBSPName = strzone(MapInfo_Map_bspname);\r
58         me.currentMapTitle = strzone(MapInfo_Map_title);\r
59         me.currentMapAuthor = strzone(MapInfo_Map_author);\r
60         me.currentMapDescription = strzone(MapInfo_Map_description);\r
61         me.currentMapFeaturesText = strzone((MapInfo_Map_supportedFeatures & MAPINFO_FEATURE_WEAPONS) ? "Full item placement" : "MinstaGib only");\r
62         me.currentMapPreviewImage = strzone(strcat("/maps/", MapInfo_Map_bspname));\r
63 \r
64         me.frame.setText(me.frame, me.currentMapBSPName);\r
65         me.titleLabel.setText(me.titleLabel, me.currentMapTitle);\r
66         me.authorLabel.setText(me.authorLabel, me.currentMapAuthor);\r
67         me.descriptionLabel.setText(me.descriptionLabel, me.currentMapDescription);\r
68         me.featuresLabel.setText(me.featuresLabel, me.currentMapFeaturesText);\r
69         if(draw_PictureSize(me.currentMapPreviewImage) == '0 0 0')\r
70                 me.previewImage.src = "nopreview_map";\r
71         else\r
72                 me.previewImage.src = me.currentMapPreviewImage;\r
73 \r
74         me.typeDeathmatchLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_DEATHMATCH);\r
75         me.typeTDMLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_TEAM_DEATHMATCH);\r
76         me.typeLMSLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_LMS);\r
77         me.typeArenaLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_ARENA);\r
78         me.typeDominationLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_DOMINATION);\r
79         me.typeKeyHuntLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_KEYHUNT);\r
80         me.typeCTFLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_CTF);\r
81         me.typeCALabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_CA);\r
82         me.typeAssaultLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_ASSAULT);\r
83         me.typeOnslaughtLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_ONSLAUGHT);\r
84         me.typeRaceLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_RACE);\r
85         me.typeCTSLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_CTS);\r
86         me.typeRPGLabel.disabled = !(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_RPG);\r
87 \r
88         MapInfo_ClearTemps();\r
89 }\r
90 void fillVoretMapInfoDialog(entity me)\r
91 {\r
92         entity e;\r
93         float w, wgt;\r
94         me.TR(me);\r
95                 me.TDempty(me, 0.2);\r
96                 me.TD(me, me.rows - 2, 3, e = makeVoretImage(string_null, 4.0/3.0));\r
97                 me.previewImage = e;\r
98         me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);\r
99         w = me.columns - me.currentColumn;\r
100                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Title:"));\r
101                 me.TD(me, 1, w-1, e = makeVoretTextLabel(0, ""));\r
102                         e.colorL = SKINCOLOR_MAPLIST_TITLE;\r
103                         e.allowCut = 1;\r
104                         me.titleLabel = e;\r
105         me.TR(me);\r
106                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Author:"));\r
107                 me.TD(me, 1, w-1, e = makeVoretTextLabel(0, ""));\r
108                         e.colorL = SKINCOLOR_MAPLIST_AUTHOR;\r
109                         e.allowCut = 1;\r
110                         me.authorLabel = e;\r
111         me.TR(me);\r
112                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Features:"));\r
113                 me.TD(me, 1, w-1, e = makeVoretTextLabel(0, ""));\r
114                         e.allowCut = 1;\r
115                         me.featuresLabel = e;\r
116         me.TR(me);\r
117                 me.TD(me, 1, w, e = makeVoretTextLabel(0, "Game types:"));\r
118         me.TR(me); wgt = (w-0.2)/5;\r
119                 me.TDempty(me, 0.2);\r
120                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "DM"));\r
121                         me.typeDeathmatchLabel = e;\r
122                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "TDM"));\r
123                         me.typeTDMLabel = e;\r
124                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "LMS"));\r
125                         me.typeLMSLabel = e;\r
126                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "Arena"));\r
127                         me.typeArenaLabel = e;\r
128                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "Domination"));\r
129                         me.typeDominationLabel = e;\r
130         me.TR(me);\r
131                 me.TDempty(me, 0.2);\r
132                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "Key Hunt"));\r
133                         me.typeKeyHuntLabel = e;\r
134                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "CTF"));\r
135                         me.typeCTFLabel = e;\r
136                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "CA"));\r
137                         me.typeCALabel = e;\r
138                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "Assault"));\r
139                         me.typeAssaultLabel = e;\r
140                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "Onslaught"));\r
141                         me.typeOnslaughtLabel = e;\r
142         me.TR(me);\r
143                 me.TDempty(me, 0.2);\r
144                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "Race"));\r
145                         me.typeRaceLabel = e;\r
146                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "CTS"));\r
147                         me.typeCTSLabel = e;\r
148                 me.TD(me, 1, wgt, e = makeVoretTextLabel(0, "RPG"));\r
149                         me.typeRPGLabel = e;\r
150 \r
151         me.gotoRC(me, me.rows - 2, 0);\r
152                 me.TD(me, 1, me.columns, e = makeVoretTextLabel(0.5, ""));\r
153                         e.allowCut = 1;\r
154                         me.descriptionLabel = e;\r
155 \r
156         me.gotoRC(me, me.rows - 1, 0);\r
157                 me.TDempty(me, 0.5);\r
158 \r
159                 me.TD(me, 1, me.columns - 5.5, e = makeVoretButton("Close", '0 0 0'));\r
160                         e.onClick = Dialog_Close;\r
161                         e.onClickEntity = me;\r
162                 me.TD(me, 1, me.columns - 5.5, me.startButton = e = makeVoretButton("Play", '0 0 0'));\r
163                         me.startButton.onClick = MapList_LoadMap;\r
164                         me.startButton.onClickEntity = NULL; // filled later\r
165                 me.TDempty(me, 0.5);\r
166 }\r
167 #endif\r