| 418 | } |
| 419 | |
| 420 | void 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; |
no test coverage detected