MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / setup

Method setup

Descent3/config.cpp:1193–1249  ·  view source on GitHub ↗

sets the menu up.

Source from the content-addressed store, hash-verified

1191
1192 // sets the menu up.
1193 newuiSheet *setup(newuiMenu *menu) {
1194 int iTemp;
1195 sheet = menu->AddOption(IDV_DCONFIG, TXT_OPTDETAIL, NEWUIMENU_MEDIUM);
1196 parent_menu = menu;
1197
1198 // detail level radio
1199 Database->read_int("PredefDetailSetting", &Default_detail_level);
1200 iTemp = Default_detail_level;
1201 sheet->NewGroup(TXT_CFG_PRESETDETAILS, 0, 0);
1202 detail_level = sheet->AddFirstRadioButton(TXT_LOW);
1203 sheet->AddRadioButton(TXT_CFG_MEDIUM);
1204 sheet->AddRadioButton(TXT_CFG_HIGH);
1205 sheet->AddRadioButton(TXT_CFG_VERYHIGH);
1206 sheet->AddRadioButton(TXT_CFG_CUSTOM);
1207 *detail_level = iTemp;
1208
1209 // toggles
1210 sheet->NewGroup(TXT_TOGGLES, 0, 87);
1211 specmap = sheet->AddLongCheckBox(TXT_SPECMAPPING, Detail_settings.Specular_lighting);
1212 headlight = sheet->AddLongCheckBox(TXT_FASTHEADLIGHT, Detail_settings.Fast_headlight_on);
1213 mirror = sheet->AddLongCheckBox(TXT_MIRRORSURF, Detail_settings.Mirrored_surfaces);
1214 dynamic = sheet->AddLongCheckBox(TXT_DYNLIGHTING, Detail_settings.Dynamic_lighting);
1215 fog = sheet->AddLongCheckBox(TXT_CFG_ENABLEFOG, Detail_settings.Fog_enabled);
1216 coronas = sheet->AddLongCheckBox(TXT_CFG_ENABLELIGHTCORONA, Detail_settings.Coronas_enabled);
1217 procedurals = sheet->AddLongCheckBox(TXT_CFG_PROCEDURALS, Detail_settings.Procedurals_enabled);
1218 powerup_halo = sheet->AddLongCheckBox(TXT_CFG_POWERUPHALOS, Detail_settings.Powerup_halos);
1219 scorches = sheet->AddLongCheckBox(TXT_CFG_SCORCHMARKS, Detail_settings.Scorches_enabled);
1220 weapon_coronas = sheet->AddLongCheckBox(TXT_CFG_WEAPONEFFECTS, Detail_settings.Weapon_coronas_enabled);
1221
1222 // sliders
1223 tSliderSettings slider_set;
1224 sheet->NewGroup(TXT_GEOMETRY, 90, 0);
1225 iTemp = MAXIMUM_TERRAIN_DETAIL - Detail_settings.Pixel_error - MINIMUM_TERRAIN_DETAIL;
1226 if (iTemp < 0)
1227 iTemp = 0;
1228 slider_set.min_val.i = MINIMUM_TERRAIN_DETAIL;
1229 slider_set.max_val.i = MAXIMUM_TERRAIN_DETAIL;
1230 slider_set.type = SLIDER_UNITS_INT;
1231 pixel_err = sheet->AddSlider(TXT_TERRDETAIL, MAXIMUM_TERRAIN_DETAIL - MINIMUM_TERRAIN_DETAIL, iTemp, &slider_set);
1232
1233 slider_set.min_val.i = MINIMUM_RENDER_DIST / 2;
1234 slider_set.max_val.i = MAXIMUM_RENDER_DIST / 2;
1235 slider_set.type = SLIDER_UNITS_INT;
1236 iTemp = (int)(Detail_settings.Terrain_render_distance / ((float)TERRAIN_SIZE)) - MINIMUM_RENDER_DIST;
1237 if (iTemp < 0)
1238 iTemp = 0;
1239 rend_dist = sheet->AddSlider(TXT_RENDDIST, (MAXIMUM_RENDER_DIST - MINIMUM_RENDER_DIST) / 2, iTemp / 2, &slider_set);
1240
1241 // object complexity radio
1242 sheet->NewGroup(TXT_CFG_OBJECTCOMPLEXITY, 174, 87);
1243 objcomp = sheet->AddFirstRadioButton(TXT_LOW);
1244 sheet->AddRadioButton(TXT_CFG_MEDIUM);
1245 sheet->AddRadioButton(TXT_CFG_HIGH);
1246 *objcomp = Detail_settings.Object_complexity;
1247
1248 return sheet;
1249 };
1250

Callers

nothing calls this directly

Calls 6

AddOptionMethod · 0.80
NewGroupMethod · 0.80
AddFirstRadioButtonMethod · 0.80
AddRadioButtonMethod · 0.80
AddLongCheckBoxMethod · 0.80
AddSliderMethod · 0.80

Tested by

no test coverage detected