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

Function LoadCustomInfoFromScript

source/games/sw/src/scrip2.cpp:391–802  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

389//---------------------------------------------------------------------------
390
391void LoadCustomInfoFromScript(const char *filename)
392{
393 FScanner sc;
394
395 int lump = fileSystem.FindFile(filename);
396 if (lump < 0) return;
397
398 sc.OpenLumpNum(lump);
399 sc.SetNoOctals(true);
400 sc.SetCMode(true);
401 sc.SetNoFatalErrors(true);
402
403 // predefine constants for some stuff to give convenience and eliminate the need for a 'define' directive
404 sc.AddSymbol("INV_ARMOR", 1+InvDecl_Armor);
405 sc.AddSymbol("INV_KEVLAR", 1+InvDecl_Kevlar);
406 sc.AddSymbol("INV_SM_MEDKIT", 1+InvDecl_SmMedkit);
407 sc.AddSymbol("INV_FORTUNE", 1+InvDecl_Booster);
408 sc.AddSymbol("INV_MEDKIT", 1+InvDecl_Medkit);
409 sc.AddSymbol("INV_GAS_BOMB", 1+InvDecl_ChemBomb);
410 sc.AddSymbol("INV_FLASH_BOMB", 1+InvDecl_FlashBomb);
411 sc.AddSymbol("INV_CALTROPS", 1+InvDecl_Caltrops);
412 sc.AddSymbol("INV_NIGHT_VIS", 1+InvDecl_NightVision);
413 sc.AddSymbol("INV_REPAIR_KIT", 1+InvDecl_RepairKit);
414 sc.AddSymbol("INV_SMOKE_BOMB", 1+InvDecl_Cloak);
415
416 {
417 unsigned i;
418 for (i=0; i<SIZ(weaponmap); i++)
419 sc.AddSymbol(weaponmap[i].sym, 1+i);
420 }
421
422 MapRecord* curMap = nullptr;
423 while (sc.GetString())
424 {
425 switch (cm_transtok(sc.String, cm_tokens, cm_numtokens))
426 {
427 case CM_MAP:
428 {
429 sc.MustGetNumber(true);
430 int mapno = sc.ParseError? -1 : sc.Number;
431 curMap = FindMapByLevelNum(mapno);
432 if (!curMap)
433 {
434 curMap = AllocateMap();
435 curMap->levelNumber = mapno;
436 curMap->cluster = mapno < 5 ? 1 : 2;
437 }
438 if (sc.CheckString("{"))
439
440 while (!sc.CheckString("}"))
441 {
442 sc.MustGetString();
443 switch (cm_transtok(sc.String, cm_map_tokens, cm_map_numtokens))
444 {
445 case CM_FILENAME:
446 {
447 sc.MustGetString();
448 curMap->SetFileName(sc.String);

Callers 1

app_initMethod · 0.85

Calls 15

cm_transtokFunction · 0.85
FindMapByLevelNumFunction · 0.85
AllocateMapFunction · 0.85
MustFindVolumeFunction · 0.85
MustFindClusterFunction · 0.85
FindFileMethod · 0.80
SetNoOctalsMethod · 0.80
SetCModeMethod · 0.80
SetNoFatalErrorsMethod · 0.80
MustGetNumberMethod · 0.80
MustGetStringMethod · 0.80
SetFileNameMethod · 0.80

Tested by

no test coverage detected