New
* Added `load_bsp` function to identify bsp type
* Added `InfinityWardBsp`, `IdTechBsp`, `RespawnBsp` & `ValveBsp` classes
* Added general support for the PakFile lump
* Added general support for the GameLump lump
* Extension scripts
- `archive.py` extractor for CoD `.iwd` / Quake `.pk3`
- `diff.py` compare bsps for changelogs / study
- `lightmaps.py` bsp lightmap -> `.png`
* Made a basic C++ 17 implementation in `src/`
Changed
* `Bsp` lumps are loaded dynamically, reducing memory usage
- New wrapper classes can be found in `bsp_tool/lumps.py`
* `mods/` changed to `branches/`
- Added subfolders for developers
- Helpful lists for auto-detecting a .bsp's origin
- Renamed `team_fortress2` to `valve/orange_box`
* `LumpClasses` now end up in 3 dictionaries per branch script
- `BASIC_LUMP_CLASSES` for types like `short int`
- `LUMP_CLASSES` for standard `LumpClasses`
- `SPECIAL_LUMP_CLASSES` for irregular types (e.g. PakFile)
- `GAME_LUMP_CLASSES` for GameLump SpecialLumpClasses
* `Bsp`s no longer print to console once loaded
* `Base.Bsp` & subclasses have reserved ALL CAPS member names for lumps only
- `BSP_VERSION, FILE_MAGIC, HEADERS, REVISION` -> `bsp_version, file_magic, headers, revision`
Newly Supported
* IdTech Engine
- Quake II
- Quake 3 Arena
* GoldSrc Engine
* Source Engine
- 2013 SDK
- Alien Swarm branch
- Counter-Strike: Global Offensive
- Half-Life 2
- Left 4 Dead branch
Broken Support
* GoldSrc Engine
- Half-Life: Blue Shift
* IdTech Engine
- Quake
* IW Engine
- Call of Duty
* Source Engine
- Dark Messiah of Might and Magic
- Vindictus
Updated Support
* Source Engine
- Orange Box
* Titanfall Engine
- Titanfall
- Titanfall 2
- Apex Legends