| 1514 | //============================================================================= |
| 1515 | |
| 1516 | void M_ParseMenuDefs() |
| 1517 | { |
| 1518 | int lump, lastlump = 0; |
| 1519 | |
| 1520 | // these are supposed to get GC'd after parsing is complete. |
| 1521 | DefaultListMenuSettings = Create<DListMenuDescriptor>(); |
| 1522 | DefaultOptionMenuSettings = Create<DOptionMenuDescriptor>(); |
| 1523 | DefaultListMenuSettings->Reset(); |
| 1524 | DefaultOptionMenuSettings->Reset(); |
| 1525 | OptionSettings.mLinespacing = 17; |
| 1526 | |
| 1527 | int IWADMenu = fileSystem.CheckNumForName("MENUDEF", FileSys::ns_global, fileSystem.GetIwadNum()); |
| 1528 | |
| 1529 | while ((lump = fileSystem.FindLump ("MENUDEF", &lastlump)) != -1) |
| 1530 | { |
| 1531 | FScanner sc(lump); |
| 1532 | |
| 1533 | mustPrintErrors = lump >= IWADMenu; |
| 1534 | sc.SetCMode(true); |
| 1535 | while (sc.GetString()) |
| 1536 | { |
| 1537 | if (sc.Compare("LISTMENU")) |
| 1538 | { |
| 1539 | ParseListMenu(sc); |
| 1540 | } |
| 1541 | else if (sc.Compare("DEFAULTLISTMENU")) |
| 1542 | { |
| 1543 | bool s = false; |
| 1544 | DoParseListMenuBody(sc, DefaultListMenuSettings, s, -1); |
| 1545 | if (DefaultListMenuSettings->mItems.Size() > 0) |
| 1546 | { |
| 1547 | I_FatalError("You cannot add menu items to the menu default settings."); |
| 1548 | } |
| 1549 | } |
| 1550 | else if (sc.Compare("ADDLISTMENU")) |
| 1551 | { |
| 1552 | ParseAddListMenu(sc); |
| 1553 | } |
| 1554 | else if (sc.Compare("OPTIONVALUE")) |
| 1555 | { |
| 1556 | ParseOptionValue(sc); |
| 1557 | } |
| 1558 | else if (sc.Compare("OPTIONSTRING")) |
| 1559 | { |
| 1560 | ParseOptionString(sc); |
| 1561 | } |
| 1562 | else if (sc.Compare("OPTIONMENUSETTINGS")) |
| 1563 | { |
| 1564 | ParseOptionSettings(sc); |
| 1565 | } |
| 1566 | else if (sc.Compare("OPTIONMENU")) |
| 1567 | { |
| 1568 | ParseOptionMenu(sc); |
| 1569 | } |
| 1570 | else if (sc.Compare("ADDOPTIONMENU")) |
| 1571 | { |
| 1572 | ParseAddOptionMenu(sc); |
| 1573 | } |
no test coverage detected