MCPcopy Create free account
hub / github.com/diasurgical/DevilutionX / LoadLevelSOLData

Function LoadLevelSOLData

Source/levels/gendung.cpp:420–485  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

418}
419
420void LoadLevelSOLData()
421{
422 switch (leveltype) {
423 case DTYPE_TOWN:
424 if (gbIsHellfire)
425 LoadFileInMem("nlevels\\towndata\\town.sol", SOLData);
426 else
427 LoadFileInMem("levels\\towndata\\town.sol", SOLData);
428 break;
429 case DTYPE_CATHEDRAL:
430 LoadFileInMem("levels\\l1data\\l1.sol", SOLData);
431 // Fix incorrectly marked arched tiles
432 SOLData[9] |= TileProperties::BlockLight | TileProperties::BlockMissile;
433 SOLData[15] |= TileProperties::BlockLight | TileProperties::BlockMissile;
434 SOLData[16] |= TileProperties::BlockLight | TileProperties::BlockMissile;
435 SOLData[20] |= TileProperties::BlockLight | TileProperties::BlockMissile;
436 SOLData[21] |= TileProperties::BlockLight | TileProperties::BlockMissile;
437 SOLData[27] |= TileProperties::BlockMissile;
438 SOLData[28] |= TileProperties::BlockMissile;
439 SOLData[51] |= TileProperties::BlockLight | TileProperties::BlockMissile;
440 SOLData[56] |= TileProperties::BlockLight | TileProperties::BlockMissile;
441 SOLData[58] |= TileProperties::BlockLight | TileProperties::BlockMissile;
442 SOLData[61] |= TileProperties::BlockLight | TileProperties::BlockMissile;
443 SOLData[63] |= TileProperties::BlockLight | TileProperties::BlockMissile;
444 SOLData[65] |= TileProperties::BlockLight | TileProperties::BlockMissile;
445 SOLData[72] |= TileProperties::BlockLight | TileProperties::BlockMissile;
446 SOLData[208] |= TileProperties::BlockLight | TileProperties::BlockMissile;
447 SOLData[247] |= TileProperties::BlockLight | TileProperties::BlockMissile;
448 SOLData[253] |= TileProperties::BlockLight | TileProperties::BlockMissile;
449 SOLData[257] |= TileProperties::BlockLight | TileProperties::BlockMissile;
450 SOLData[323] |= TileProperties::BlockLight | TileProperties::BlockMissile;
451 SOLData[403] |= TileProperties::BlockLight;
452 // Fix incorrectly marked pillar tile
453 SOLData[24] |= TileProperties::BlockLight;
454 // Fix incorrectly marked wall tile
455 SOLData[450] |= TileProperties::BlockLight | TileProperties::BlockMissile;
456 break;
457 case DTYPE_CATACOMBS:
458 LoadFileInMem("levels\\l2data\\l2.sol", SOLData);
459 break;
460 case DTYPE_CAVES:
461 LoadFileInMem("levels\\l3data\\l3.sol", SOLData);
462 // The graphics for tile 48 sub-tile 171 frame 461 are partly incorrect, as they
463 // have a few pixels that should belong to the solid tile 49 instead.
464 // Marks the sub-tile as "BlockMissile" to avoid treating it as a floor during rendering.
465 SOLData[170] |= TileProperties::BlockMissile;
466 // Fence sub-tiles 481 and 487 are substitutes for solid sub-tiles 473 and 479
467 // but are not marked as solid.
468 SOLData[481] |= TileProperties::Solid;
469 SOLData[487] |= TileProperties::Solid;
470 break;
471 case DTYPE_HELL:
472 LoadFileInMem("levels\\l4data\\l4.sol", SOLData);
473 SOLData[210] = TileProperties::None; // Tile is incorrectly marked as being solid
474 break;
475 case DTYPE_NEST:
476 LoadFileInMem("nlevels\\l6data\\l6.sol", SOLData);
477 break;

Callers 1

LoadGameLevelFunction · 0.85

Calls 2

LoadFileInMemFunction · 0.85
app_fatalFunction · 0.85

Tested by

no test coverage detected