MCPcopy Create free account
hub / github.com/ZDoom/Raze / ParseOptionMenuBody

Function ParseOptionMenuBody

source/common/menu/menudef.cpp:971–1204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

969//=============================================================================
970
971static void ParseOptionMenuBody(FScanner &sc, DOptionMenuDescriptor *desc, int insertIndex)
972{
973 sc.MustGetStringName("{");
974 while (!sc.CheckString("}"))
975 {
976 sc.MustGetString();
977 if (sc.Compare("else"))
978 {
979 SkipSubBlock(sc);
980 }
981 else if (sc.Compare("ifgame"))
982 {
983 if (!CheckSkipGameBlock(sc))
984 {
985 // recursively parse sub-block
986 ParseOptionMenuBody(sc, desc, insertIndex);
987 }
988 }
989 else if (sc.Compare("ifnotgame"))
990 {
991 if (!CheckSkipGameBlock(sc, false))
992 {
993 // recursively parse sub-block
994 ParseOptionMenuBody(sc, desc, insertIndex);
995 }
996 }
997 else if (sc.Compare("ifoption"))
998 {
999 if (!CheckSkipOptionBlock(sc))
1000 {
1001 // recursively parse sub-block
1002 ParseOptionMenuBody(sc, desc, insertIndex);
1003 }
1004 }
1005 else if (sc.Compare("Class"))
1006 {
1007 sc.MustGetString();
1008 PClass *cls = PClass::FindClass(sc.String);
1009 if (cls == nullptr || !cls->IsDescendantOf("OptionMenu"))
1010 {
1011 sc.ScriptError("Unknown menu class '%s'", sc.String);
1012 }
1013 desc->mClass = cls;
1014 }
1015 else if (sc.Compare({ "Title", "Caption" }))
1016 {
1017 sc.MustGetString();
1018 desc->mTitle = sc.String;
1019 }
1020 else if (sc.Compare("Position"))
1021 {
1022 sc.MustGetNumber();
1023 desc->mPosition = sc.Number;
1024 }
1025 else if (sc.Compare("DefaultSelection"))
1026 {
1027 sc.MustGetNumber();
1028 desc->mSelectedItem = sc.Number;

Callers 3

ParseOptionMenuFunction · 0.85
ParseAddOptionMenuFunction · 0.85
M_ParseMenuDefsFunction · 0.85

Calls 15

SkipSubBlockFunction · 0.85
CheckSkipGameBlockFunction · 0.85
CheckSkipOptionBlockFunction · 0.85
NewPointerFunction · 0.85
NewStructFunction · 0.85
FNameClass · 0.85
V_GetColorFunction · 0.85
V_GetFontFunction · 0.85
strtollFunction · 0.85
V_FindFontColorFunction · 0.85
FindCVarFunction · 0.85
VMCallWithDefaultsFunction · 0.85

Tested by

no test coverage detected