diff --git a/.gitignore b/.gitignore index dc291e40..acbeb368 100644 --- a/.gitignore +++ b/.gitignore @@ -163,3 +163,7 @@ dmypy.json *.exe *.out *.app + +# Hammer / Raidant Autosaves +*.vmx +*.bak diff --git a/bsp_tool/branches/README.md b/bsp_tool/branches/README.md index a57b82f5..0e522ce8 100644 --- a/bsp_tool/branches/README.md +++ b/bsp_tool/branches/README.md @@ -39,20 +39,20 @@ This is where `load_bsp`'s second (optional!) argument comes in, `branch` ```python >>> import bsp_tool ->>> bsp_tool.load_bsp("tests/maps/pl_upward.bsp", branch=bsp_tool.branches.valve.orange_box) -Loading pl_upward.bsp (VBSP version 20)... -Loaded pl_upward.bsp - +>>> bsp_tool.load_bsp("tests/maps/Call of Duty 4/mp/mp_lobby.bsp") +Loading mp_lobby.bsp (IBSP version 22)... +Loaded mp_lobby.bsp + ->>> bsp_tool.load_bsp("tests/maps/test_bigbox.bsp", branch="Quake3") -Loading test_bigbox.bsp (IBSP version 46)... -Loaded test_bigbox.bsp - +>>> bsp_tool.load_bsp("tests/maps/Quake 3 Arena/mp_lobby.bsp", branch="Quake3") +Loading mp_lobby.bsp (IBSP version 46)... +Loaded mp_lobby.bsp + ->>> bsp_tool.load_bsp("tests/maps/test2.bsp") -Loading test2.bsp (VBSP version 20)... -Loaded test2.bsp - +>>> bsp_tool.load_bsp("tests/maps/Team Fortress 2/test2.bsp", branch=bsp_tool.branches.valve.orange_box) +Loading pl_upward.bsp (VBSP version 20)... +Loaded pl_upward.bsp + ``` In the above example `bsp_tool.branches.valve.orange_box` points to [`bsp_tool/branches/valve/orange_box.py`](https://github.com/snake-biscuits/bsp_tool/blob/master/bsp_tool/branches/valve/orange_box.py) This branch script is used to intialise the `Bsp` subclass chosen when `load_bsp` works out the developer diff --git a/bsp_tool/branches/infinity_ward/call_of_duty4.py b/bsp_tool/branches/infinity_ward/call_of_duty4.py index 1f849ba4..03ac1170 100644 --- a/bsp_tool/branches/infinity_ward/call_of_duty4.py +++ b/bsp_tool/branches/infinity_ward/call_of_duty4.py @@ -91,7 +91,7 @@ class LUMP(enum.Enum): LUMP_CLASSES = {} -SPECIAL_LUMP_CLASSES = {"ENTITIES": shared.Entities} +SPECIAL_LUMP_CLASSES = {} # "ENTITIES": shared.Entities methods = [shared.worldspawn_volume] diff --git a/bsp_tool/infinity_ward.py b/bsp_tool/infinity_ward.py index 73f809cb..8341885c 100644 --- a/bsp_tool/infinity_ward.py +++ b/bsp_tool/infinity_ward.py @@ -97,9 +97,9 @@ class D3DBsp(base.Bsp): # -- lumps are possibly divided into multiple files, quake3 map compilation generates many files def __init__(self, branch: ModuleType, filename: str = "untitled.bsp", autoload: bool = True): - if filename.lower().endswith(".d3dbsp"): + if not filename.lower().endswith(".d3dbsp"): # ^ slight alteration to allow .d3dbsp extension - raise RuntimeError("Not a .bsp") + raise RuntimeError("Not a .d3dbsp") filename = os.path.realpath(filename) self.folder, self.filename = os.path.split(filename) self.set_branch(branch) @@ -122,7 +122,6 @@ def is_related(f): return f.startswith(os.path.splitext(self.filename)[0]) assert file_magic == self.file_magic, f"{self.file} is not a valid .bsp!" self.bsp_version = int.from_bytes(self.file.read(4), "little") self.lump_count = int.from_bytes(self.file.read(4), "little") - assert self.lump_count == 39, "irregular CoD4Bsp lump_count" self.file.seek(0, 2) # move cursor to end of file self.bsp_file_size = self.file.tell() @@ -136,11 +135,13 @@ def is_related(f): return f.startswith(os.path.splitext(self.filename)[0]) assert length != 0, "cursed, idk how you got this error" offset = cursor + (4 - cursor % 4) if cursor % 4 != 0 else cursor cursor += length - lump_header = LumpHeader(_id, length, offset) + lump_header = CoD4LumpHeader(_id, length, offset) + # NOTE: offset finding could be very incorrect self.headers.append(lump_header) # identify lump LUMP_enum = self.branch.LUMP(lump_header.id) LUMP_NAME = LUMP_enum.name + # NOTE: very new to this format, may be collecting the wrong data try: if LUMP_NAME in self.branch.LUMP_CLASSES: LumpClass = self.branch.LUMP_CLASSES[LUMP_NAME] diff --git a/pytest_all_bsps.log b/pytest_all_bsps.log index 89cf3384..25fa958b 100644 --- a/pytest_all_bsps.log +++ b/pytest_all_bsps.log @@ -3,9 +3,9 @@ platform win32 -- Python 3.9.9, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 -- c:\use cachedir: .pytest_cache rootdir: C:\Users\Jared\Documents\GitHub\bsp_tool plugins: cov-2.12.1 -collecting ... collected 136 items +collecting ... collected 139 items -tests/test_bsp.py::test_load_bsp[./-tests-map_dirs0] PASSED [ 0%] +tests/test_bsp.py::test_load_bsp[./-tests/maps-map_dirs0] PASSED [ 0%] tests/test_bsp.py::test_load_bsp[C:/Program Files (x86)/Steam/steamapps/sourcemods-gesource-map_dirs1] PASSED [ 1%] tests/test_bsp.py::test_load_bsp[C:/Program Files (x86)/Steam/steamapps/sourcemods-half-life 2 riot act-map_dirs2] PASSED [ 2%] tests/test_bsp.py::test_load_bsp[C:/Program Files (x86)/Steam/steamapps/sourcemods-TFTS-map_dirs3] PASSED [ 2%] @@ -15,121 +15,124 @@ tests/test_bsp.py::test_load_bsp[C:/Program Files (x86)/Steam/steamapps/sourcemo tests/test_bsp.py::test_load_bsp[C:/Program Files (x86)/Steam/steamapps/sourcemods-companionpiece2-map_dirs7] PASSED [ 5%] tests/test_bsp.py::test_load_bsp[C:/Program Files (x86)/Steam/steamapps/sourcemods-eyecandy-map_dirs8] PASSED [ 6%] tests/test_bsp.py::test_load_bsp[C:/Program Files (x86)/Steam/steamapps/sourcemods-tworooms-map_dirs9] PASSED [ 7%] -tests/test_bsp.py::test_load_bsp[C:/Program Files (x86)/Steam/steamapps/sourcemods-fusionville2-map_dirs10] PASSED [ 8%] +tests/test_bsp.py::test_load_bsp[C:/Program Files (x86)/Steam/steamapps/sourcemods-fusionville2-map_dirs10] PASSED [ 7%] tests/test_bsp.py::test_load_bsp[C:/Program Files (x86)/Steam/steamapps/sourcemods-lvl2-map_dirs11] PASSED [ 8%] tests/test_bsp.py::test_load_bsp[C:/Program Files (x86)/Steam/steamapps/sourcemods-thewrapuptwo-map_dirs12] PASSED [ 9%] tests/test_bsp.py::test_load_bsp[C:/Program Files (x86)/Steam/steamapps/sourcemods-halloweenhorror4-map_dirs13] PASSED [ 10%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life/cstrike-map_dirs14] PASSED [ 11%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life/cstrike-map_dirs14] PASSED [ 10%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life/czero-map_dirs15] PASSED [ 11%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life/czeror-map_dirs16] PASSED [ 12%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life/dmc-map_dirs17] PASSED [ 13%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life/dmc-map_dirs17] PASSED [ 12%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life/dod-map_dirs18] PASSED [ 13%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life/gearbox-map_dirs19] PASSED [ 14%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life/ricochet-map_dirs20] PASSED [ 15%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life/tfc-map_dirs21] PASSED [ 16%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life/tfc-map_dirs21] PASSED [ 15%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life/valve-map_dirs22] PASSED [ 16%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Halfquake Trilogy-map_dirs23] PASSED [ 17%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Sven Co-op-map_dirs24] PASSED [ 18%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Alien Swarm-map_dirs25] PASSED [ 19%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Sven Co-op-map_dirs24] PASSED [ 17%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Alien Swarm-map_dirs25] PASSED [ 18%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Alien Swarm Reactive Drop-map_dirs26] PASSED [ 19%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Blade Symphony-map_dirs27] PASSED [ 20%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Counter-Strike Global Offensive-map_dirs28] PASSED [ 21%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-counter-strike source-map_dirs29] PASSED [ 22%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Counter-Strike Global Offensive-map_dirs28] PASSED [ 20%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-counter-strike source-map_dirs29] PASSED [ 21%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-day of defeat source-map_dirs30] PASSED [ 22%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Fortress Forever-map_dirs31] PASSED [ 23%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-G String-map_dirs32] PASSED [ 24%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-GarrysMod-map_dirs33] PASSED [ 25%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-G String-map_dirs32] PASSED [ 23%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-GarrysMod-map_dirs33] PASSED [ 24%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life 1 Source Deathmatch-map_dirs34] PASSED [ 25%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-half-life 2/ep2-map_dirs35] PASSED [ 26%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-half-life 2/episodic-map_dirs36] PASSED [ 27%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-half-life 2/ep2-map_dirs35] PASSED [ 25%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-half-life 2/episodic-map_dirs36] PASSED [ 26%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-half-life 2/hl1-map_dirs37] PASSED [ 27%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-half-life 2/hl2-map_dirs38] PASSED [ 28%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-half-life 2/lostcoast-map_dirs39] PASSED [ 29%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-half-life 2 deathmatch-map_dirs40] PASSED [ 30%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-half-life 2/lostcoast-map_dirs39] PASSED [ 28%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-half-life 2 deathmatch-map_dirs40] PASSED [ 29%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Half-Life 2 Update-map_dirs41] PASSED [ 30%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-left 4 dead-map_dirs42] PASSED [ 31%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Left 4 Dead 2-map_dirs43] PASSED [ 32%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-MINERVA-map_dirs44] PASSED [ 33%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-left 4 dead-map_dirs42] PASSED [ 30%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Left 4 Dead 2-map_dirs43] PASSED [ 31%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-MINERVA-map_dirs44] PASSED [ 32%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-NEOTOKYO-map_dirs45] PASSED [ 33%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Portal-map_dirs46] PASSED [ 34%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Portal 2-map_dirs47] PASSED [ 35%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Portal Reloaded-map_dirs48] PASSED [ 36%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-SourceFilmmaker-map_dirs49] PASSED [ 36%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Synergy-map_dirs50] PASSED [ 37%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Team Fortress 2-map_dirs51] FAILED [ 38%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Portal-map_dirs46] PASSED [ 33%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Portal 2-map_dirs47] PASSED [ 34%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Portal Reloaded-map_dirs48] PASSED [ 35%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-SourceFilmmaker-map_dirs49] PASSED [ 35%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Synergy-map_dirs50] PASSED [ 36%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Team Fortress 2-map_dirs51] FAILED [ 37%] tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Transmissions Element 120-map_dirs52] PASSED [ 38%] -tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Vampire The Masquerade - Bloodlines-map_dirs53] PASSED [ 39%] -tests/test_bsp.py::test_load_bsp[E:/Mod-Anachronox-map_dirs54] PASSED [ 40%] -tests/test_bsp.py::test_load_bsp[E:/Mod-Daikatana-map_dirs55] PASSED [ 41%] +tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Vampire The Masquerade - Bloodlines-map_dirs53] PASSED [ 38%] +tests/test_bsp.py::test_load_bsp[E:/Mod-Anachronox-map_dirs54] PASSED [ 39%] +tests/test_bsp.py::test_load_bsp[E:/Mod-Daikatana-map_dirs55] PASSED [ 40%] tests/test_bsp.py::test_load_bsp[E:/Mod-HereticII-map_dirs56] PASSED [ 41%] -tests/test_bsp.py::test_load_bsp[E:/Mod-Hexen2-map_dirs57] PASSED [ 42%] -tests/test_bsp.py::test_load_bsp[E:/Mod-RTCW-map_dirs58] PASSED [ 43%] -tests/test_bsp.py::test_load_bsp[E:/Mod-SiN-map_dirs59] PASSED [ 44%] -tests/test_bsp.py::test_load_bsp[E:/Mod-SoF-map_dirs60] PASSED [ 44%] -tests/test_bsp.py::test_load_bsp[E:/Mod-SoF2-map_dirs61] PASSED [ 45%] -tests/test_bsp.py::test_load_bsp[E:/Mod-StarTrekEliteForce-map_dirs62] PASSED [ 46%] -tests/test_bsp.py::test_load_bsp[E:/Mod-Quake-map_dirs63] PASSED [ 47%] -tests/test_bsp.py::test_load_bsp[E:/Mod-QuakeII-map_dirs64] PASSED [ 47%] -tests/test_bsp.py::test_load_bsp[E:/Mod-QuakeIII-map_dirs65] PASSED [ 48%] -tests/test_bsp.py::test_load_bsp[E:/Mod-QuakeLive-map_dirs66] PASSED [ 49%] -tests/test_bsp.py::test_load_bsp[E:/Mod-CoD1-map_dirs67] PASSED [ 50%] -tests/test_bsp.py::test_load_bsp[E:/Mod-CoD2-map_dirs68] FAILED [ 50%] -tests/test_bsp.py::test_load_bsp[E:/Mod-BlackMesa-map_dirs69] PASSED [ 51%] -tests/test_bsp.py::test_load_bsp[E:/Mod-CSMalvinas-map_dirs70] PASSED [ 52%] -tests/test_bsp.py::test_load_bsp[E:/Mod-CSO2-map_dirs71] FAILED [ 52%] -tests/test_bsp.py::test_load_bsp[E:/Mod-DarkMessiah/singleplayer-map_dirs72] FAILED [ 53%] -tests/test_bsp.py::test_load_bsp[E:/Mod-DarkMessiah/multiplayer-map_dirs73] FAILED [ 54%] -tests/test_bsp.py::test_load_bsp[E:/Mod-Nightfire-map_dirs74] PASSED [ 55%] -tests/test_bsp.py::test_load_bsp[E:/Mod-TacticalIntervention-map_dirs75] PASSED [ 55%] -tests/test_bsp.py::test_load_bsp[E:/Mod-TeamFortressQuake-map_dirs76] PASSED [ 56%] -tests/test_bsp.py::test_load_bsp[E:/Mod-TitanfallOnline-map_dirs77] PASSED [ 57%] -tests/test_bsp.py::test_load_bsp[E:/Mod-Vindictus-map_dirs78] FAILED [ 58%] -tests/test_bsp.py::test_load_bsp[E:/Mod-Titanfall-map_dirs79] PASSED [ 58%] -tests/test_bsp.py::test_load_bsp[E:/Mod-Titanfall2-map_dirs80] PASSED [ 59%] -tests/test_bsp.py::test_load_bsp[E:/Mod-ApexLegends-map_dirs81] PASSED [ 60%] -tests/test_bsp.py::test_load_bsp[E:/Mod-FAKK2-map_dirs82] PASSED [ 61%] -tests/test_bsp.py::test_load_bsp[E:/Mod-Alice-map_dirs83] PASSED [ 61%] -tests/test_bsp.py::test_load_bsp[E:/Mod-MoHAA-map_dirs84] PASSED [ 62%] -tests/test_bsp.py::test_load_bsp[E:/Mod-StarTrekEliteForceII-map_dirs85] PASSED [ 63%] -tests/test_bsp.py::test_load_bsp[E:/Mod-StarWarsJediKnight-map_dirs86] PASSED [ 63%] -tests/test_bsp.py::test_load_bsp[E:/Mod-StarWarsJediKnightII-map_dirs87] PASSED [ 64%] -tests/test_bsplump.py::TestRawBspLump::test_its_raw PASSED [ 65%] -tests/test_bsplump.py::TestRawBspLump::test_list_conversion PASSED [ 66%] +tests/test_bsp.py::test_load_bsp[E:/Mod-Hexen2-map_dirs57] PASSED [ 41%] +tests/test_bsp.py::test_load_bsp[E:/Mod-RTCW-map_dirs58] PASSED [ 42%] +tests/test_bsp.py::test_load_bsp[E:/Mod-SiN-map_dirs59] PASSED [ 43%] +tests/test_bsp.py::test_load_bsp[E:/Mod-SoF-map_dirs60] PASSED [ 43%] +tests/test_bsp.py::test_load_bsp[E:/Mod-SoF2-map_dirs61] PASSED [ 44%] +tests/test_bsp.py::test_load_bsp[E:/Mod-StarTrekEliteForce-map_dirs62] PASSED [ 45%] +tests/test_bsp.py::test_load_bsp[E:/Mod-Quake-map_dirs63] PASSED [ 46%] +tests/test_bsp.py::test_load_bsp[E:/Mod-QuakeII-map_dirs64] PASSED [ 46%] +tests/test_bsp.py::test_load_bsp[E:/Mod-QuakeIII-map_dirs65] PASSED [ 47%] +tests/test_bsp.py::test_load_bsp[E:/Mod-QuakeLive-map_dirs66] PASSED [ 48%] +tests/test_bsp.py::test_load_bsp[E:/Mod-CoD1-map_dirs67] PASSED [ 48%] +tests/test_bsp.py::test_load_bsp[E:/Mod-CoD2-map_dirs68] PASSED [ 49%] +tests/test_bsp.py::test_load_bsp[E:/Mod-CoD4-map_dirs69] PASSED [ 50%] +tests/test_bsp.py::test_load_bsp[E:/Mod-BlackMesa-map_dirs70] PASSED [ 51%] +tests/test_bsp.py::test_load_bsp[E:/Mod-CSMalvinas-map_dirs71] PASSED [ 51%] +tests/test_bsp.py::test_load_bsp[E:/Mod-CSO2-map_dirs72] FAILED [ 52%] +tests/test_bsp.py::test_load_bsp[E:/Mod-DarkMessiah/singleplayer-map_dirs73] FAILED [ 53%] +tests/test_bsp.py::test_load_bsp[E:/Mod-DarkMessiah/multiplayer-map_dirs74] FAILED [ 53%] +tests/test_bsp.py::test_load_bsp[E:/Mod-Nightfire-map_dirs75] PASSED [ 54%] +tests/test_bsp.py::test_load_bsp[E:/Mod-TacticalIntervention-map_dirs76] PASSED [ 55%] +tests/test_bsp.py::test_load_bsp[E:/Mod-TeamFortressQuake-map_dirs77] PASSED [ 56%] +tests/test_bsp.py::test_load_bsp[E:/Mod-TitanfallOnline-map_dirs78] PASSED [ 56%] +tests/test_bsp.py::test_load_bsp[E:/Mod-Vindictus-map_dirs79] FAILED [ 57%] +tests/test_bsp.py::test_load_bsp[E:/Mod-Titanfall-map_dirs80] PASSED [ 58%] +tests/test_bsp.py::test_load_bsp[E:/Mod-Titanfall2-map_dirs81] PASSED [ 58%] +tests/test_bsp.py::test_load_bsp[E:/Mod-ApexLegends-map_dirs82] PASSED [ 59%] +tests/test_bsp.py::test_load_bsp[E:/Mod-FAKK2-map_dirs83] PASSED [ 60%] +tests/test_bsp.py::test_load_bsp[E:/Mod-Alice-map_dirs84] PASSED [ 61%] +tests/test_bsp.py::test_load_bsp[E:/Mod-MoHAA-map_dirs85] PASSED [ 61%] +tests/test_bsp.py::test_load_bsp[E:/Mod-StarTrekEliteForceII-map_dirs86] PASSED [ 62%] +tests/test_bsp.py::test_load_bsp[E:/Mod-StarWarsJediKnight-map_dirs87] PASSED [ 63%] +tests/test_bsp.py::test_load_bsp[E:/Mod-StarWarsJediKnightII-map_dirs88] PASSED [ 64%] +tests/test_bsplump.py::TestRawBspLump::test_its_raw PASSED [ 64%] +tests/test_bsplump.py::TestRawBspLump::test_list_conversion PASSED [ 65%] tests/test_bsplump.py::TestRawBspLump::test_indexing PASSED [ 66%] -tests/test_bsplump.py::TestBspLump::test_list_conversion PASSED [ 67%] -tests/test_bsplump.py::TestBspLump::test_indexing PASSED [ 68%] -tests/test_bsplump.py::TestBspLump::test_del PASSED [ 69%] +tests/test_bsplump.py::TestBspLump::test_list_conversion PASSED [ 66%] +tests/test_bsplump.py::TestBspLump::test_indexing PASSED [ 67%] +tests/test_bsplump.py::TestBspLump::test_del PASSED [ 68%] tests/test_bsplump.py::TestBspLump::test_setitem FAILED [ 69%] -tests/test_bsplump.py::TestBasicBspLump::test_its_basic PASSED [ 70%] -tests/test_bsplump.py::TestBasicBspLump::test_list_conversion PASSED [ 71%] -tests/test_bsplump.py::TestBasicBspLump::test_indexing PASSED [ 72%] -tests/test_idtech_bsp.py::test_no_errors PASSED [ 72%] -tests/test_idtech_bsp.py::test_entities_loaded PASSED [ 73%] -tests/test_idtech_bsp.py::test_face_struct PASSED [ 74%] -tests/test_valve_bsp.py::test_no_errors PASSED [ 75%] -tests/test_valve_bsp.py::test_entites_loaded PASSED [ 75%] -tests/branches/test_base.py::TestStruct::test_unpack PASSED [ 76%] -tests/branches/test_base.py::TestStruct::test_pack PASSED [ 77%] -tests/branches/test_base.py::TestMappedArray::test_init PASSED [ 77%] -tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.id_software.quake] PASSED [ 78%] -tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.id_software.quake2] PASSED [ 79%] -tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.id_software.quake3] PASSED [ 80%] -tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.infinity_ward.call_of_duty1] PASSED [ 80%] -tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.ion_storm.daikatana] PASSED [ 81%] +tests/test_bsplump.py::TestBasicBspLump::test_its_basic PASSED [ 69%] +tests/test_bsplump.py::TestBasicBspLump::test_list_conversion PASSED [ 70%] +tests/test_bsplump.py::TestBasicBspLump::test_indexing PASSED [ 71%] +tests/test_idtech_bsp.py::test_no_errors PASSED [ 71%] +tests/test_idtech_bsp.py::test_entities_loaded PASSED [ 72%] +tests/test_idtech_bsp.py::test_face_struct PASSED [ 73%] +tests/test_valve_bsp.py::test_no_errors PASSED [ 74%] +tests/test_valve_bsp.py::test_entites_loaded PASSED [ 74%] +tests/branches/test_base.py::TestStruct::test_unpack PASSED [ 75%] +tests/branches/test_base.py::TestStruct::test_pack PASSED [ 76%] +tests/branches/test_base.py::TestMappedArray::test_init PASSED [ 76%] +tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.id_software.quake] PASSED [ 77%] +tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.id_software.quake2] PASSED [ 78%] +tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.id_software.quake3] PASSED [ 79%] +tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.infinity_ward.call_of_duty1] PASSED [ 79%] +tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.infinity_ward.call_of_duty2] PASSED [ 80%] +tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.infinity_ward.call_of_duty4] PASSED [ 81%] +tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.ion_storm.daikatana] PASSED [ 82%] tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.gearbox.blue_shift] PASSED [ 82%] tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.gearbox.nightfire] PASSED [ 83%] -tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.raven.hexen2] PASSED [ 83%] +tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.raven.hexen2] PASSED [ 84%] tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.raven.soldier_of_fortune] PASSED [ 84%] tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.raven.soldier_of_fortune2] PASSED [ 85%] tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.ritual.fakk2] PASSED [ 86%] -tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.ritual.moh_allied_assault] PASSED [ 86%] +tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.ritual.moh_allied_assault] PASSED [ 87%] tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.ritual.sin] PASSED [ 87%] tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.ritual.star_trek_elite_force2] PASSED [ 88%] -tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.valve.goldsrc] PASSED [ 88%] -tests/branches/test_branch_script.py::test_branch_script[bsp_tool.branches.arkane.dark_messiah] PASSED [ 89%] -tests/branches/test_branch_script.py::test_branch_script[bsp_tool.branches.arkane.dark_messiah_multiplayer] PASSED [ 90%] +tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.valve.goldsrc] PASSED [ 89%] +tests/branches/test_branch_script.py::test_branch_script[bsp_tool.branches.arkane.dark_messiah_multiplayer] PASSED [ 89%] +tests/branches/test_branch_script.py::test_branch_script[bsp_tool.branches.arkane.dark_messiah_singleplayer] PASSED [ 90%] tests/branches/test_branch_script.py::test_branch_script[bsp_tool.branches.nexon.cso2] PASSED [ 91%] -tests/branches/test_branch_script.py::test_branch_script[bsp_tool.branches.nexon.cso2_2018] PASSED [ 91%] +tests/branches/test_branch_script.py::test_branch_script[bsp_tool.branches.nexon.cso2_2018] PASSED [ 92%] tests/branches/test_branch_script.py::test_branch_script[bsp_tool.branches.nexon.vindictus] PASSED [ 92%] tests/branches/test_branch_script.py::test_branch_script[bsp_tool.branches.respawn.apex_legends] PASSED [ 93%] tests/branches/test_branch_script.py::test_branch_script[bsp_tool.branches.respawn.titanfall] PASSED [ 94%] @@ -187,7 +190,7 @@ map_dirs = ['tf/maps', 'tf/download/maps'] types.add((bsp.__class__.__name__, bsp.branch.__name__, bsp.bsp_version)) del bsp > assert errors == dict(), "\n".join([f"{len(errors)} out of {total} .bsps failed", *map(str, types)]) -E AssertionError: 1 out of 397 .bsps failed +E AssertionError: 1 out of 405 .bsps failed E ('ValveBsp', 'bsp_tool.branches.valve.orange_box', 20) E assert {'tf/download/maps/af_tf2_party_a11.bsp': AssertionError('ENTITIES\nassert 1 == 0\n +1\n -0')} == {} E Left contains 1 more item: @@ -196,7 +199,7 @@ E Full diff: E - {} E + {'tf/download/maps/af_tf2_party_a11.bsp': AssertionError('ENTITIES\nassert 1 == 0\n +1\n -0')} -tests\test_bsp.py:70: AssertionError +tests\test_bsp.py:71: AssertionError ---------------------------- Captured stdout call ----------------------------- ERROR LOADING ENTITIES: Line 10205: "OnEntitySpawned" "text_minigame_info,AddOutput,message Demoman Only - Use Stickybombs ERROR LOADING ENTITIES: Line 10206: Detonate bombs at the bottom.,0,-1" @@ -207,109 +210,7 @@ ERROR LOADING ENTITIES: Line 04307: "message" "Players can get rid of their jit ERROR LOADING ENTITIES: Line 04308: in return for a slight increase in move speed, by shooting the Anti-Jitter button." ERROR LOADING ENTITIES: Line 04326: "message" "Players in Anti-Jitter Mode will retain their increased jump height. ERROR LOADING ENTITIES: Line 04327: This option is per-player; your setting does not affect other players." -____________________ test_load_bsp[E:/Mod-CoD2-map_dirs68] ____________________ - -group_path = 'E:/Mod', game_name = 'CoD2', map_dirs = ['maps', 'maps/mp'] - - @pytest.mark.parametrize("group_path,game_name,map_dirs", [(*gps, ms) for gps, ms in maplist.installed_games.items()]) - def test_load_bsp(group_path, game_name, map_dirs): - """MEGATEST: 69GB+ of .bsp files!""" - branch_script = game_scripts.get(game_name) - # NOTE: this is ugly and results in quite a few errors - # auto-detection really shouldn't have to rely on precise strings - errors = dict() - # ^ {"game": ["errors"]} - types = set() - # ^ {(BspClass, branch, version)} - total = 0 - for map_dir in map_dirs: - full_path = os.path.join(group_path, game_name, map_dir) - if os.path.exists(full_path): - files = os.listdir(full_path) - maps = fnmatch.filter(files, "*[Bb][Ss][Pp]") # .bsp, .BSP & CoD2 .d3dbsp - total += len(maps) - assert len(maps) != 0, f"couldn't find any maps for {game_name} in {map_dir}" - for m in maps: # load every .bsp - try: - bsp_filename = os.path.join(full_path, m) - if os.path.getsize(bsp_filename) == 0: - continue # hl2/maps/d2_coast_02 is 0 bytes, idk why it shipped - if game_name == "half-life 2/episodic" and m == "ep1_citadel_00_demo.bsp": - continue # broken HL2:EP1 map (game crashes on load) - elif game_name == "half-life 2/hl1" and m in ("c4a1y.bsp", "c4a1z.bsp"): - continue # broken HL:Source maps (y is v18 and won't run, z is v19 and has broken IO) -> bsp = load_bsp(bsp_filename, branch_script) - -tests\test_bsp.py:59: -_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - -filename = 'E:/Mod\\CoD2\\maps\\88ridge.d3dbsp', branch_script = None - - def load_bsp(filename: str, branch_script: ModuleType = None) -> base.Bsp: - """Calculate and return the correct base.Bsp sub-class for the given .bsp""" - # TODO: OPTION: use filepath to guess game / branch - # verify path - if not os.path.exists(filename): - raise FileNotFoundError(f".bsp file '{filename}' does not exist.") - elif os.path.getsize(filename) == 0: # HL2/ d2_coast_02.bsp - raise RuntimeError(f"{filename} is an empty file") - # parse header - with open(filename, "rb") as bsp_file: - file_magic = bsp_file.read(4) - version = int.from_bytes(bsp_file.read(4), "little") - # identify BspVariant - if filename.lower().endswith(".d3dbsp"): # CoD2 - assert file_magic == b"IBSP", "Mystery .d3dbsp!" -> assert version in InfinityWard_versions, "Unexpected .d3dbsp format version!" -E AssertionError: Unexpected .d3dbsp format version! - -bsp_tool\__init__.py:55: AssertionError - -During handling of the above exception, another exception occurred: - -group_path = 'E:/Mod', game_name = 'CoD2', map_dirs = ['maps', 'maps/mp'] - - @pytest.mark.parametrize("group_path,game_name,map_dirs", [(*gps, ms) for gps, ms in maplist.installed_games.items()]) - def test_load_bsp(group_path, game_name, map_dirs): - """MEGATEST: 69GB+ of .bsp files!""" - branch_script = game_scripts.get(game_name) - # NOTE: this is ugly and results in quite a few errors - # auto-detection really shouldn't have to rely on precise strings - errors = dict() - # ^ {"game": ["errors"]} - types = set() - # ^ {(BspClass, branch, version)} - total = 0 - for map_dir in map_dirs: - full_path = os.path.join(group_path, game_name, map_dir) - if os.path.exists(full_path): - files = os.listdir(full_path) - maps = fnmatch.filter(files, "*[Bb][Ss][Pp]") # .bsp, .BSP & CoD2 .d3dbsp - total += len(maps) - assert len(maps) != 0, f"couldn't find any maps for {game_name} in {map_dir}" - for m in maps: # load every .bsp - try: - bsp_filename = os.path.join(full_path, m) - if os.path.getsize(bsp_filename) == 0: - continue # hl2/maps/d2_coast_02 is 0 bytes, idk why it shipped - if game_name == "half-life 2/episodic" and m == "ep1_citadel_00_demo.bsp": - continue # broken HL2:EP1 map (game crashes on load) - elif game_name == "half-life 2/hl1" and m in ("c4a1y.bsp", "c4a1z.bsp"): - continue # broken HL:Source maps (y is v18 and won't run, z is v19 and has broken IO) - bsp = load_bsp(bsp_filename, branch_script) - # TODO: assert game_name, bsp_version and BspVariant match - loading_errors = {**bsp.loading_errors} - if hasattr(bsp, "GAME_LUMP"): - if not isinstance(bsp.GAME_LUMP, lumps.RawBspLump): # HACK: incomplete Vindictus GameLump - loading_errors.update(bsp.GAME_LUMP.loading_errors) - assert len(loading_errors) == 0, ", ".join(loading_errors.keys()) - except AssertionError as ae: - errors[f"{map_dir}/{m}"] = ae -> types.add((bsp.__class__.__name__, bsp.branch.__name__, bsp.bsp_version)) -E UnboundLocalError: local variable 'bsp' referenced before assignment - -tests\test_bsp.py:68: UnboundLocalError -____________________ test_load_bsp[E:/Mod-CSO2-map_dirs71] ____________________ +____________________ test_load_bsp[E:/Mod-CSO2-map_dirs72] ____________________ group_path = 'E:/Mod', game_name = 'CSO2', map_dirs = ['maps'] @@ -354,209 +255,209 @@ group_path = 'E:/Mod', game_name = 'CSO2', map_dirs = ['maps'] > assert errors == dict(), "\n".join([f"{len(errors)} out of {total} .bsps failed", *map(str, types)]) E AssertionError: 97 out of 97 .bsps failed E ('ValveBsp', 'bsp_tool.branches.nexon.cso2', 100) -E assert {'maps/aim_dust.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'),\n 'maps/awp_metro.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/awp_museum.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'),\n 'maps/bigcity_main.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/bigcity_pvp.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'),\n 'maps/campaign_05.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/cs_aquarium.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/cs_assault.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/cs_estate.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/cs_italy.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/cs_italy_night.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/cs_militia.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/cs_office.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/cs_office_xmas.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/de_aztec.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/de_cbble.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/de_centered.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/de_cornerwork.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/de_cornerwork2.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/de_dust.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/de_dust2.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/de_dust2_decompressed.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/de_headquarter.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/de_highland.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/de_inferno.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 6 == 0\n +6\n -0'),\n 'maps/de_nuke.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/de_prodigy.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/de_sa02.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 6 == 0\n +6\n -0'),\n 'maps/de_sa03.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/de_storage.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/de_storm.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/de_survivor.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/de_tides.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/de_tosca.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/de_train.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/de_vantage.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/de_vertigo.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'),\n 'maps/dm_cargoship.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/dm_dustrush.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'),\n 'maps/dm_killhouse.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/dm_mboss.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'),\n 'maps/dm_playground.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'),\n 'maps/dm_sa01.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 6 == 0\n +6\n -0'),\n 'maps/dm_sewer.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/dm_shutdown.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/dm_uprising.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/duel_diner.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/ew_lasttrain.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/gb_varena.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 6 == 0\n +6\n -0'),\n 'maps/gm_giant.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/hm_multi01.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/hs2_assault.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/hs2_cargoship.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/hs2_estate.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/hs2_italy2.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/hs2_italy2_xmas.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'),\n 'maps/hs2_office.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/hs2_phouse.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/hs2_sa01.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'),\n 'maps/hs2_sa02.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'),\n 'maps/hs2_sa03.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/hs2_studio.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'),\n 'maps/hs_aqua.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/hs_dust2.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'),\n 'maps/hs_festival.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'),\n 'maps/hs_highland.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/hs_italy2.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/hs_italy2_xmas.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/hs_studio.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'),\n 'maps/mad_city.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/mad_city_big.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'),\n 'maps/testzone_transition1.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'),\n 'maps/testzone_transition2.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'),\n 'maps/tuto_walk.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/uc_aztec.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'),\n 'maps/uc_museum.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 6 == 0\n +6\n -0'),\n 'maps/uc_shutdown.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 6 == 0\n +6\n -0'),\n 'maps/zc_laboratory.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'),\n 'maps/zc_trainyard.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'),\n 'maps/zd_aztec.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/zd_boss.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/zd_internal.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/zd_italy.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'),\n 'maps/zd_lasttrain.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/zd_nuke.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'),\n 'maps/zd_park.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/zd_trainyard.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/zp_assault.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/zp_aztec.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/zp_estate.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/zp_italy.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/zp_militia.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/zp_storm.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/zp_uprising.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'),\n 'maps/zz_festival.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/zz_phouse.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'),\n 'maps/zz_prodigy.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0')} == {} +E assert {'maps/aim_dust.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/awp_metro.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/awp_museum.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/bigcity_main.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/bigcity_pvp.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/campaign_05.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/cs_aquarium.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/cs_assault.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/cs_estate.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/cs_italy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/cs_italy_night.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/cs_militia.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/cs_office.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/cs_office_xmas.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_aztec.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_cbble.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_centered.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_cornerwork.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_cornerwork2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_dust.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_dust2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_dust2_decompressed.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_headquarter.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_highland.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_inferno.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_nuke.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_prodigy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_sa02.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_sa03.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_storage.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_storm.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_survivor.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_tides.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_tosca.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_train.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_vantage.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/de_vertigo.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/dm_cargoship.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/dm_dustrush.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/dm_killhouse.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/dm_mboss.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/dm_playground.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/dm_sa01.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/dm_sewer.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/dm_shutdown.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/dm_uprising.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/duel_diner.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/ew_lasttrain.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/gb_varena.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/gm_giant.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hm_multi01.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs2_assault.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs2_cargoship.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs2_estate.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs2_italy2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs2_italy2_xmas.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs2_office.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs2_phouse.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs2_sa01.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs2_sa02.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs2_sa03.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs2_studio.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs_aqua.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs_dust2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs_festival.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs_highland.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs_italy2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs_italy2_xmas.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/hs_studio.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/mad_city.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/mad_city_big.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/testzone_transition1.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/testzone_transition2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/tuto_walk.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/uc_aztec.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/uc_museum.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/uc_shutdown.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zc_laboratory.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zc_trainyard.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zd_aztec.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zd_boss.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zd_internal.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zd_italy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zd_lasttrain.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zd_nuke.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zd_park.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zd_trainyard.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zp_assault.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zp_aztec.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zp_estate.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zp_italy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zp_militia.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zp_storm.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zp_uprising.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zz_festival.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zz_phouse.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/zz_prodigy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0')} == {} E Left contains 97 more items: -E {'maps/aim_dust.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'), -E 'maps/awp_metro.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/awp_museum.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'), -E 'maps/bigcity_main.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/bigcity_pvp.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E 'maps/campaign_05.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/cs_aquarium.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/cs_assault.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/cs_estate.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/cs_italy.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/cs_italy_night.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/cs_militia.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/cs_office.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/cs_office_xmas.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/de_aztec.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/de_cbble.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/de_centered.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/de_cornerwork.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/de_cornerwork2.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/de_dust.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/de_dust2.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/de_dust2_decompressed.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/de_headquarter.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/de_highland.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/de_inferno.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 6 == 0\n +6\n -0'), -E 'maps/de_nuke.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/de_prodigy.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/de_sa02.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 6 == 0\n +6\n -0'), -E 'maps/de_sa03.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/de_storage.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/de_storm.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/de_survivor.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/de_tides.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/de_tosca.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/de_train.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/de_vantage.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/de_vertigo.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'), -E 'maps/dm_cargoship.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/dm_dustrush.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E 'maps/dm_killhouse.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/dm_mboss.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'), -E 'maps/dm_playground.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E 'maps/dm_sa01.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 6 == 0\n +6\n -0'), -E 'maps/dm_sewer.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/dm_shutdown.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/dm_uprising.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/duel_diner.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/ew_lasttrain.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/gb_varena.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 6 == 0\n +6\n -0'), -E 'maps/gm_giant.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/hm_multi01.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/hs2_assault.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/hs2_cargoship.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/hs2_estate.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/hs2_italy2.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/hs2_italy2_xmas.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E 'maps/hs2_office.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/hs2_phouse.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/hs2_sa01.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E 'maps/hs2_sa02.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E 'maps/hs2_sa03.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/hs2_studio.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E 'maps/hs_aqua.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/hs_dust2.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E 'maps/hs_festival.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E 'maps/hs_highland.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/hs_italy2.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/hs_italy2_xmas.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/hs_studio.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E 'maps/mad_city.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/mad_city_big.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E 'maps/testzone_transition1.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E 'maps/testzone_transition2.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E 'maps/tuto_walk.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/uc_aztec.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E 'maps/uc_museum.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 6 == 0\n +6\n -0'), -E 'maps/uc_shutdown.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 6 == 0\n +6\n -0'), -E 'maps/zc_laboratory.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E 'maps/zc_trainyard.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E 'maps/zd_aztec.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/zd_boss.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/zd_internal.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/zd_italy.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'), -E 'maps/zd_lasttrain.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/zd_nuke.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E 'maps/zd_park.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/zd_trainyard.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/zp_assault.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/zp_aztec.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/zp_estate.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/zp_italy.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/zp_militia.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/zp_storm.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/zp_uprising.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E 'maps/zz_festival.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/zz_phouse.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E 'maps/zz_prodigy.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0')} +E {'maps/aim_dust.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/awp_metro.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/awp_museum.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/bigcity_main.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/bigcity_pvp.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/campaign_05.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/cs_aquarium.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/cs_assault.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/cs_estate.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/cs_italy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/cs_italy_night.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/cs_militia.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/cs_office.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/cs_office_xmas.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_aztec.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_cbble.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_centered.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_cornerwork.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_cornerwork2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_dust.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_dust2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_dust2_decompressed.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_headquarter.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_highland.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_inferno.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_nuke.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_prodigy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_sa02.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_sa03.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_storage.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_storm.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_survivor.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_tides.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_tosca.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_train.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_vantage.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/de_vertigo.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/dm_cargoship.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/dm_dustrush.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/dm_killhouse.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/dm_mboss.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/dm_playground.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/dm_sa01.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/dm_sewer.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/dm_shutdown.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/dm_uprising.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/duel_diner.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/ew_lasttrain.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/gb_varena.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/gm_giant.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hm_multi01.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs2_assault.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs2_cargoship.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs2_estate.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs2_italy2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs2_italy2_xmas.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs2_office.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs2_phouse.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs2_sa01.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs2_sa02.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs2_sa03.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs2_studio.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs_aqua.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs_dust2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs_festival.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs_highland.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs_italy2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs_italy2_xmas.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/hs_studio.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/mad_city.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/mad_city_big.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/testzone_transition1.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/testzone_transition2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/tuto_walk.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/uc_aztec.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/uc_museum.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/uc_shutdown.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zc_laboratory.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zc_trainyard.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zd_aztec.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zd_boss.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zd_internal.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zd_italy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zd_lasttrain.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zd_nuke.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zd_park.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zd_trainyard.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zp_assault.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zp_aztec.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zp_estate.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zp_italy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zp_militia.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zp_storm.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zp_uprising.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zz_festival.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zz_phouse.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/zz_prodigy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0')} E Full diff: E { E - , -E + 'maps/aim_dust.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'), -E + 'maps/awp_metro.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/awp_museum.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'), -E + 'maps/bigcity_main.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/bigcity_pvp.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E + 'maps/campaign_05.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/cs_aquarium.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/cs_assault.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/cs_estate.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/cs_italy.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/cs_italy_night.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/cs_militia.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/cs_office.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/cs_office_xmas.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/de_aztec.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/de_cbble.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/de_centered.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/de_cornerwork.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/de_cornerwork2.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/de_dust.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/de_dust2.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/de_dust2_decompressed.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/de_headquarter.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/de_highland.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/de_inferno.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 6 == 0\n +6\n -0'), -E + 'maps/de_nuke.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/de_prodigy.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/de_sa02.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 6 == 0\n +6\n -0'), -E + 'maps/de_sa03.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/de_storage.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/de_storm.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/de_survivor.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/de_tides.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/de_tosca.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/de_train.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/de_vantage.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/de_vertigo.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'), -E + 'maps/dm_cargoship.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/dm_dustrush.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E + 'maps/dm_killhouse.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/dm_mboss.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'), -E + 'maps/dm_playground.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E + 'maps/dm_sa01.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 6 == 0\n +6\n -0'), -E + 'maps/dm_sewer.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/dm_shutdown.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/dm_uprising.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/duel_diner.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/ew_lasttrain.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/gb_varena.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 6 == 0\n +6\n -0'), -E + 'maps/gm_giant.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/hm_multi01.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/hs2_assault.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/hs2_cargoship.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/hs2_estate.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/hs2_italy2.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/hs2_italy2_xmas.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E + 'maps/hs2_office.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/hs2_phouse.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/hs2_sa01.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E + 'maps/hs2_sa02.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E + 'maps/hs2_sa03.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/hs2_studio.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E + 'maps/hs_aqua.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/hs_dust2.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E + 'maps/hs_festival.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E + 'maps/hs_highland.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/hs_italy2.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/hs_italy2_xmas.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/hs_studio.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E + 'maps/mad_city.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/mad_city_big.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E + 'maps/testzone_transition1.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E + 'maps/testzone_transition2.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E + 'maps/tuto_walk.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/uc_aztec.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E + 'maps/uc_museum.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 6 == 0\n +6\n -0'), -E + 'maps/uc_shutdown.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 6 == 0\n +6\n -0'), -E + 'maps/zc_laboratory.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E + 'maps/zc_trainyard.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 6 == 0\n +6\n -0'), -E + 'maps/zd_aztec.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/zd_boss.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/zd_internal.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/zd_italy.bsp': AssertionError('LEAVES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE\nassert 5 == 0\n +5\n -0'), -E + 'maps/zd_lasttrain.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/zd_nuke.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS\nassert 7 == 0\n +7\n -0'), -E + 'maps/zd_park.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/zd_trainyard.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/zp_assault.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/zp_aztec.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/zp_estate.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/zp_italy.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/zp_militia.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/zp_storm.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/zp_uprising.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), -E + 'maps/zz_festival.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/zz_phouse.bsp': AssertionError('LEAVES, BRUSH_SIDES, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 7 == 0\n +7\n -0'), -E + 'maps/zz_prodigy.bsp': AssertionError('LEAVES, BRUSH_SIDES, DISPLACEMENT_INFO, ORIGINAL_FACES, GAME_LUMP, PAKFILE, CUBEMAPS, OVERLAYS\nassert 8 == 0\n +8\n -0'), +E + 'maps/aim_dust.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/awp_metro.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/awp_museum.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/bigcity_main.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/bigcity_pvp.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/campaign_05.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/cs_aquarium.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/cs_assault.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/cs_estate.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/cs_italy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/cs_italy_night.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/cs_militia.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/cs_office.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/cs_office_xmas.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_aztec.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_cbble.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_centered.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_cornerwork.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_cornerwork2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_dust.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_dust2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_dust2_decompressed.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_headquarter.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_highland.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_inferno.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_nuke.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_prodigy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_sa02.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_sa03.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_storage.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_storm.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_survivor.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_tides.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_tosca.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_train.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_vantage.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/de_vertigo.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/dm_cargoship.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/dm_dustrush.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/dm_killhouse.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/dm_mboss.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/dm_playground.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/dm_sa01.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/dm_sewer.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/dm_shutdown.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/dm_uprising.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/duel_diner.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/ew_lasttrain.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/gb_varena.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/gm_giant.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hm_multi01.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs2_assault.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs2_cargoship.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs2_estate.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs2_italy2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs2_italy2_xmas.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs2_office.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs2_phouse.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs2_sa01.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs2_sa02.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs2_sa03.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs2_studio.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs_aqua.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs_dust2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs_festival.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs_highland.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs_italy2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs_italy2_xmas.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/hs_studio.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/mad_city.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/mad_city_big.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/testzone_transition1.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/testzone_transition2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/tuto_walk.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/uc_aztec.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/uc_museum.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/uc_shutdown.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zc_laboratory.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zc_trainyard.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zd_aztec.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zd_boss.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zd_internal.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zd_italy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zd_lasttrain.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zd_nuke.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zd_park.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zd_trainyard.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zp_assault.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zp_aztec.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zp_estate.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zp_italy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zp_militia.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zp_storm.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zp_uprising.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zz_festival.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zz_phouse.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/zz_prodigy.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), E } -tests\test_bsp.py:70: AssertionError -__________ test_load_bsp[E:/Mod-DarkMessiah/singleplayer-map_dirs72] __________ +tests\test_bsp.py:71: AssertionError +__________ test_load_bsp[E:/Mod-DarkMessiah/singleplayer-map_dirs73] __________ group_path = 'E:/Mod', game_name = 'DarkMessiah/singleplayer' map_dirs = ['maps'] @@ -601,86 +502,86 @@ map_dirs = ['maps'] del bsp > assert errors == dict(), "\n".join([f"{len(errors)} out of {total} .bsps failed", *map(str, types)]) E AssertionError: 35 out of 35 .bsps failed -E ('ArkaneBsp', 'bsp_tool.branches.arkane.dark_messiah_multiplayer', (20, 4)) -E assert {'maps/e3_l06_l09.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l00.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l01_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l02_a.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l02_b1.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l02_b2.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l03_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l03_b.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l04_b.bsp': AssertionError('TEXTURE_INFO, MODELS\nassert 2 == 0\n +2\n -0'),\n 'maps/l05_a.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l05_b.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l05_c.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l06_a.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l06_b.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l06_c.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l06_d.bsp': AssertionError('TEXTURE_INFO, MODELS\nassert 2 == 0\n +2\n -0'),\n 'maps/l07_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l07_b.bsp': AssertionError('TEXTURE_INFO, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l08_a1.bsp': AssertionError('TEXTURE_INFO, MODELS\nassert 2 == 0\n +2\n -0'),\n 'maps/l08_a2.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l08_b.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l09_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l09_d.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l10_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l10_b.bsp': AssertionError('MODELS\nassert 1 == 0\n +1\n -0'),\n 'maps/l10_c.bsp': AssertionError('TEXTURE_INFO, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l11_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l11_b1.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l11_b2.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l11_c.bsp': AssertionError('TEXTURE_INFO, GAME_LUMP\nassert 2 == 0\n +2\n -0'),\n 'maps/l12_a.bsp': AssertionError('MODELS\nassert 1 == 0\n +1\n -0'),\n 'maps/l12_b.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/l12_c.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'),\n 'maps/menu_3d.bsp': AssertionError('TEXTURE_INFO, MODELS\nassert 2 == 0\n +2\n -0'),\n 'maps/menu_3d_credits.bsp': AssertionError('MODELS\nassert 1 == 0\n +1\n -0')} == {} +E ('ArkaneBsp', 'bsp_tool.branches.arkane.dark_messiah_singleplayer', (20, 4)) +E assert {'maps/e3_l06_l09.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l00.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l01_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l02_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l02_b1.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l02_b2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l03_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l03_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l04_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l05_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l05_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l05_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l06_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l06_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l06_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l06_d.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l07_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l07_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l08_a1.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l08_a2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l08_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l09_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l09_d.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l10_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l10_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l10_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l11_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l11_b1.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l11_b2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l11_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l12_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l12_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/l12_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/menu_3d.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'),\n 'maps/menu_3d_credits.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0')} == {} E Left contains 35 more items: -E {'maps/e3_l06_l09.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l00.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E 'maps/l01_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l02_a.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E 'maps/l02_b1.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E 'maps/l02_b2.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l03_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l03_b.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l04_b.bsp': AssertionError('TEXTURE_INFO, MODELS\nassert 2 == 0\n +2\n -0'), -E 'maps/l05_a.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E 'maps/l05_b.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l05_c.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l06_a.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E 'maps/l06_b.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l06_c.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E 'maps/l06_d.bsp': AssertionError('TEXTURE_INFO, MODELS\nassert 2 == 0\n +2\n -0'), -E 'maps/l07_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l07_b.bsp': AssertionError('TEXTURE_INFO, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E 'maps/l08_a1.bsp': AssertionError('TEXTURE_INFO, MODELS\nassert 2 == 0\n +2\n -0'), -E 'maps/l08_a2.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l08_b.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E 'maps/l09_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l09_d.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E 'maps/l10_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l10_b.bsp': AssertionError('MODELS\nassert 1 == 0\n +1\n -0'), -E 'maps/l10_c.bsp': AssertionError('TEXTURE_INFO, GAME_LUMP\nassert 2 == 0\n +2\n -0'), +E {'maps/e3_l06_l09.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l00.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l01_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l02_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l02_b1.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l02_b2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l03_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l03_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l04_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l05_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l05_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l05_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l06_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l06_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l06_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l06_d.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l07_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l07_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l08_a1.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l08_a2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l08_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l09_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l09_d.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l10_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l10_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l10_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), E 'maps/l11_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), -E 'maps/l11_b1.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E 'maps/l11_b2.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E 'maps/l11_c.bsp': AssertionError('TEXTURE_INFO, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E 'maps/l12_a.bsp': AssertionError('MODELS\nassert 1 == 0\n +1\n -0'), -E 'maps/l12_b.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/l12_c.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E 'maps/menu_3d.bsp': AssertionError('TEXTURE_INFO, MODELS\nassert 2 == 0\n +2\n -0'), -E 'maps/menu_3d_credits.bsp': AssertionError('MODELS\nassert 1 == 0\n +1\n -0')} +E 'maps/l11_b1.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l11_b2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l11_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l12_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l12_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/l12_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/menu_3d.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E 'maps/menu_3d_credits.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0')} E Full diff: E { E - , -E + 'maps/e3_l06_l09.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l00.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E + 'maps/l01_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l02_a.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E + 'maps/l02_b1.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E + 'maps/l02_b2.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l03_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l03_b.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l04_b.bsp': AssertionError('TEXTURE_INFO, MODELS\nassert 2 == 0\n +2\n -0'), -E + 'maps/l05_a.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E + 'maps/l05_b.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l05_c.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l06_a.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E + 'maps/l06_b.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l06_c.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E + 'maps/l06_d.bsp': AssertionError('TEXTURE_INFO, MODELS\nassert 2 == 0\n +2\n -0'), -E + 'maps/l07_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l07_b.bsp': AssertionError('TEXTURE_INFO, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E + 'maps/l08_a1.bsp': AssertionError('TEXTURE_INFO, MODELS\nassert 2 == 0\n +2\n -0'), -E + 'maps/l08_a2.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l08_b.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E + 'maps/l09_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l09_d.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E + 'maps/l10_a.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l10_b.bsp': AssertionError('MODELS\nassert 1 == 0\n +1\n -0'), -E + 'maps/l10_c.bsp': AssertionError('TEXTURE_INFO, GAME_LUMP\nassert 2 == 0\n +2\n -0'), +E + 'maps/e3_l06_l09.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l00.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l01_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l02_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l02_b1.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l02_b2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l03_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l03_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l04_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l05_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l05_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l05_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l06_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l06_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l06_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l06_d.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l07_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l07_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l08_a1.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l08_a2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l08_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l09_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l09_d.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l10_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l10_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l10_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), E + 'maps/l11_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), -E + 'maps/l11_b1.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E + 'maps/l11_b2.bsp': AssertionError('MODELS, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E + 'maps/l11_c.bsp': AssertionError('TEXTURE_INFO, GAME_LUMP\nassert 2 == 0\n +2\n -0'), -E + 'maps/l12_a.bsp': AssertionError('MODELS\nassert 1 == 0\n +1\n -0'), -E + 'maps/l12_b.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/l12_c.bsp': AssertionError('TEXTURE_INFO, MODELS, GAME_LUMP\nassert 3 == 0\n +3\n -0'), -E + 'maps/menu_3d.bsp': AssertionError('TEXTURE_INFO, MODELS\nassert 2 == 0\n +2\n -0'), -E + 'maps/menu_3d_credits.bsp': AssertionError('MODELS\nassert 1 == 0\n +1\n -0'), +E + 'maps/l11_b1.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l11_b2.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l11_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l12_a.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l12_b.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/l12_c.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/menu_3d.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), +E + 'maps/menu_3d_credits.bsp': AssertionError('GAME_LUMP\nassert 1 == 0\n +1\n -0'), E } -tests\test_bsp.py:70: AssertionError -__________ test_load_bsp[E:/Mod-DarkMessiah/multiplayer-map_dirs73] ___________ +tests\test_bsp.py:71: AssertionError +__________ test_load_bsp[E:/Mod-DarkMessiah/multiplayer-map_dirs74] ___________ group_path = 'E:/Mod', game_name = 'DarkMessiah/multiplayer' map_dirs = ['maps'] @@ -755,8 +656,8 @@ E + 'maps/l_mp4.bsp': AssertionError('sprp\nassert 1 == 0\n +1\n -0') E + 'maps/l_mp5.bsp': AssertionError('sprp\nassert 1 == 0\n +1\n -0'), E } -tests\test_bsp.py:70: AssertionError -_________________ test_load_bsp[E:/Mod-Vindictus-map_dirs78] __________________ +tests\test_bsp.py:71: AssertionError +_________________ test_load_bsp[E:/Mod-Vindictus-map_dirs79] __________________ group_path = 'E:/Mod', game_name = 'Vindictus', map_dirs = ['maps'] @@ -1756,12 +1657,12 @@ E + 'maps/w_boss04.bsp': AssertionError('ENTITIES, PLANES, TEXTURE_DATA E + 'maps/w_boss04_story.bsp': AssertionError('ENTITIES, PLANES, TEXTURE_DATA, VERTICES, NODES, TEXTURE_INFO, FACES, EDGES, MODELS, WORLD_LIGHTS, DISPLACEMENT_INFO, PHYSICS_COLLIDE, VERTEX_NORMALS, DISPLACEMENT_VERTICES, GAME_LUMP, LEAF_WATER_DATA, PAKFILE, OVERLAYS, WORLD_LIGHTS_HDR\nassert 19 == 0\n +19\n -0'), E } -tests\test_bsp.py:70: AssertionError +tests\test_bsp.py:71: AssertionError ---------------------------- Captured stdout call ----------------------------- ERROR LOADING ENTITIES: Line 00000: VBSP\x14\x00\x00\x00p\t\x02"\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\nERROR LOADING ENTITIES: Line 00000: VBSP\x14\x00\x00\x00T"\x02_\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\nERROR LOADING ENTITIES: Line 00000: VBSP\x14\x00\x00\x00\x00a"\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\nERROR LOADING ENTITIES: Line 00000: VBSP\x14\x00\x00\x00\x18"\x00Y\x14\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\nERROR LOADING ENTITIES: Line 00001: \x04\x00\x00A\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00(]\x03\x00@\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\u033a\x01\x004\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00P\x02\x00`9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00d\x01\x00\x02\x00\x00\x00\x00\x00\x00\x00\x1f\nERROR LOADING ENTITIES: Line 00000: VBSP\x14\x00\x00\x00"\x00]\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\nERROR LOADING ENTITIES: Line 00001: \x04\x00\x00p\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00L \x02\x00`\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x007\x01\x00\x18<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00s\x01\x00 C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nERROR LOADING ENTITIES: Line 00000: VBSP\x14\x00\x00\x00 \x13\x00"m\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00 __________________________ TestBspLump.test_setitem ___________________________ -self = +self = def test_setitem(self): for map_name in bsps: @@ -1770,123 +1671,138 @@ self = lump[0] = empty_entry > assert lump[0] == empty_entry, f"{map_name} failed" -tests\test_bsplump.py:74: +tests\test_bsplump.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -bsp_tool\branches\base.py:153: in __eq__ - return all([(a == b) for a, b in zip(self, other)]) -bsp_tool\branches\base.py:164: in __iter__ - return iter([getattr(self, attr) for attr in self._mapping]) +bsp_tool\branches\base.py:37: in __eq__ + return self.flat() == other.flat() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -.0 = +self = <[AttributeError('position') raised in repr()] Vertex object at 0x227676acf80> -> return iter([getattr(self, attr) for attr in self._mapping]) -E AttributeError: 'Vertex' object has no attribute 'x' + def flat(self) -> list: + """recreates the _tuple this instance was initialised from""" + _tuple = [] + for slot in self.__slots__: +> value = getattr(self, slot) +E AttributeError: position -bsp_tool\branches\base.py:164: AttributeError +bsp_tool\branches\base.py:53: AttributeError ============================== warnings summary =============================== tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.id_software.quake] - C:\Users\Jared\Documents\GitHub\bsp_tool\tests\branches\test_branch_script.py:39: UserWarning: Unused LumpClasses in branch script: + C:\Users\Jared\Documents\GitHub\bsp_tool\tests\branches\test_branch_script.py:41: UserWarning: Unused LumpClasses in branch script: MipTexture warnings.warn(UserWarning(warning_text)) tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.infinity_ward.call_of_duty1] - C:\Users\Jared\Documents\GitHub\bsp_tool\tests\branches\test_branch_script.py:39: UserWarning: Unused LumpClasses in branch script: - Light - Brush - DrawVertex - CullGroup + C:\Users\Jared\Documents\GitHub\bsp_tool\tests\branches\test_branch_script.py:41: UserWarning: Unused LumpClasses in branch script: Cell - CollisionVertex + Node Occluder AxisAlignedBoundingBox PatchCollision + Model + Light + DrawVertex Portal - Node + CullGroup + Brush + warnings.warn(UserWarning(warning_text)) + +tests/branches/test_branch_script.py::test_basic_branch_script[bsp_tool.branches.infinity_ward.call_of_duty2] + C:\Users\Jared\Documents\GitHub\bsp_tool\tests\branches\test_branch_script.py:41: UserWarning: Unused LumpClasses in branch script: + CollisionEdge + Model + CollisionTriangle + warnings.warn(UserWarning(warning_text)) + +tests/branches/test_branch_script.py::test_branch_script[bsp_tool.branches.arkane.dark_messiah_singleplayer] + C:\Users\Jared\Documents\GitHub\bsp_tool\tests\branches\test_branch_script.py:66: UserWarning: Unused LumpClasses in branch script: Model + TextureInfo warnings.warn(UserWarning(warning_text)) tests/branches/test_branch_script.py::test_branch_script[bsp_tool.branches.nexon.vindictus] - C:\Users\Jared\Documents\GitHub\bsp_tool\tests\branches\test_branch_script.py:64: UserWarning: Unused LumpClasses in branch script: + C:\Users\Jared\Documents\GitHub\bsp_tool\tests\branches\test_branch_script.py:66: UserWarning: Unused LumpClasses in branch script: GameLumpHeader warnings.warn(UserWarning(warning_text)) -- Docs: https://docs.pytest.org/en/stable/warnings.html ----------- coverage: platform win32, python 3.9.9-final-0 ----------- -Name Stmts Miss Cover --------------------------------------------------------------------------- -bsp_tool\__init__.py 48 5 90% -bsp_tool\arkane.py 53 6 89% -bsp_tool\base.py 114 30 74% -bsp_tool\branches\__init__.py 28 0 100% -bsp_tool\branches\arkane\__init__.py 3 0 100% -bsp_tool\branches\arkane\dark_messiah.py 54 4 93% -bsp_tool\branches\arkane\dark_messiah_multiplayer.py 23 0 100% -bsp_tool\branches\base.py 170 34 80% -bsp_tool\branches\gearbox\__init__.py 3 0 100% -bsp_tool\branches\gearbox\blue_shift.py 27 0 100% -bsp_tool\branches\gearbox\nightfire.py 72 0 100% -bsp_tool\branches\id_software\__init__.py 4 0 100% -bsp_tool\branches\id_software\quake.py 175 13 93% -bsp_tool\branches\id_software\quake2.py 83 0 100% -bsp_tool\branches\id_software\quake3.py 140 32 77% -bsp_tool\branches\infinity_ward\__init__.py 2 0 100% -bsp_tool\branches\infinity_ward\call_of_duty1.py 140 4 97% -bsp_tool\branches\ion_storm\__init__.py 2 0 100% -bsp_tool\branches\ion_storm\daikatana.py 12 0 100% -bsp_tool\branches\nexon\__init__.py 5 0 100% -bsp_tool\branches\nexon\cso2.py 98 3 97% -bsp_tool\branches\nexon\cso2_2018.py 19 0 100% -bsp_tool\branches\nexon\vindictus.py 225 27 88% -bsp_tool\branches\physics.py 92 24 74% -bsp_tool\branches\py_struct_as_cpp.py 171 171 0% -bsp_tool\branches\raven\__init__.py 4 0 100% -bsp_tool\branches\raven\hexen2.py 12 0 100% -bsp_tool\branches\raven\soldier_of_fortune.py 13 0 100% -bsp_tool\branches\raven\soldier_of_fortune2.py 31 0 100% -bsp_tool\branches\respawn\__init__.py 4 0 100% -bsp_tool\branches\respawn\apex_legends.py 261 22 92% -bsp_tool\branches\respawn\titanfall.py 463 61 87% -bsp_tool\branches\respawn\titanfall2.py 189 1 99% -bsp_tool\branches\ritual\__init__.py 5 0 100% -bsp_tool\branches\ritual\fakk2.py 56 0 100% -bsp_tool\branches\ritual\moh_allied_assault.py 73 0 100% -bsp_tool\branches\ritual\sin.py 13 0 100% -bsp_tool\branches\ritual\star_trek_elite_force2.py 71 0 100% -bsp_tool\branches\shared.py 85 27 68% -bsp_tool\branches\troika\__init__.py 2 0 100% -bsp_tool\branches\troika\vampire.py 37 0 100% -bsp_tool\branches\valve\__init__.py 8 0 100% -bsp_tool\branches\valve\alien_swarm.py 87 0 100% -bsp_tool\branches\valve\goldsrc.py 67 0 100% -bsp_tool\branches\valve\left4dead.py 90 0 100% -bsp_tool\branches\valve\left4dead2.py 88 0 100% -bsp_tool\branches\valve\orange_box.py 134 10 93% -bsp_tool\branches\valve\sdk_2013.py 24 0 100% -bsp_tool\branches\valve\source.py 585 111 81% -bsp_tool\branches\vector.py 175 121 31% -bsp_tool\extensions\__init__.py 0 0 100% -bsp_tool\extensions\archive.py 35 35 0% -bsp_tool\extensions\decrypt_xor.py 11 11 0% -bsp_tool\extensions\diff.py 106 106 0% -bsp_tool\extensions\lightmaps.py 133 133 0% -bsp_tool\id_software.py 94 13 86% -bsp_tool\infinity_ward.py 50 3 94% -bsp_tool\lumps\__init__.py 272 49 82% -bsp_tool\raven.py 3 0 100% -bsp_tool\respawn.py 144 69 52% -bsp_tool\ritual.py 44 3 93% -bsp_tool\valve.py 57 10 82% --------------------------------------------------------------------------- -TOTAL 5289 1138 78% +Name Stmts Miss Cover +--------------------------------------------------------------------------- +bsp_tool\__init__.py 50 4 92% +bsp_tool\arkane.py 53 6 89% +bsp_tool\base.py 114 32 72% +bsp_tool\branches\__init__.py 28 0 100% +bsp_tool\branches\arkane\__init__.py 3 0 100% +bsp_tool\branches\arkane\dark_messiah_multiplayer.py 23 0 100% +bsp_tool\branches\arkane\dark_messiah_singleplayer.py 55 0 100% +bsp_tool\branches\base.py 170 34 80% +bsp_tool\branches\gearbox\__init__.py 3 0 100% +bsp_tool\branches\gearbox\blue_shift.py 27 0 100% +bsp_tool\branches\gearbox\nightfire.py 72 0 100% +bsp_tool\branches\id_software\__init__.py 4 0 100% +bsp_tool\branches\id_software\quake.py 175 13 93% +bsp_tool\branches\id_software\quake2.py 83 0 100% +bsp_tool\branches\id_software\quake3.py 140 8 94% +bsp_tool\branches\infinity_ward\__init__.py 4 0 100% +bsp_tool\branches\infinity_ward\call_of_duty1.py 141 4 97% +bsp_tool\branches\infinity_ward\call_of_duty2.py 133 1 99% +bsp_tool\branches\infinity_ward\call_of_duty4.py 52 0 100% +bsp_tool\branches\ion_storm\__init__.py 2 0 100% +bsp_tool\branches\ion_storm\daikatana.py 12 0 100% +bsp_tool\branches\nexon\__init__.py 5 0 100% +bsp_tool\branches\nexon\cso2.py 104 6 94% +bsp_tool\branches\nexon\cso2_2018.py 19 0 100% +bsp_tool\branches\nexon\vindictus.py 225 27 88% +bsp_tool\branches\physics.py 92 24 74% +bsp_tool\branches\py_struct_as_cpp.py 171 171 0% +bsp_tool\branches\raven\__init__.py 4 0 100% +bsp_tool\branches\raven\hexen2.py 12 0 100% +bsp_tool\branches\raven\soldier_of_fortune.py 13 0 100% +bsp_tool\branches\raven\soldier_of_fortune2.py 31 0 100% +bsp_tool\branches\respawn\__init__.py 4 0 100% +bsp_tool\branches\respawn\apex_legends.py 261 22 92% +bsp_tool\branches\respawn\titanfall.py 463 61 87% +bsp_tool\branches\respawn\titanfall2.py 189 1 99% +bsp_tool\branches\ritual\__init__.py 5 0 100% +bsp_tool\branches\ritual\fakk2.py 56 0 100% +bsp_tool\branches\ritual\moh_allied_assault.py 73 0 100% +bsp_tool\branches\ritual\sin.py 13 0 100% +bsp_tool\branches\ritual\star_trek_elite_force2.py 71 0 100% +bsp_tool\branches\shared.py 88 27 69% +bsp_tool\branches\troika\__init__.py 2 0 100% +bsp_tool\branches\troika\vampire.py 37 0 100% +bsp_tool\branches\valve\__init__.py 8 0 100% +bsp_tool\branches\valve\alien_swarm.py 87 0 100% +bsp_tool\branches\valve\goldsrc.py 67 0 100% +bsp_tool\branches\valve\left4dead.py 90 0 100% +bsp_tool\branches\valve\left4dead2.py 88 0 100% +bsp_tool\branches\valve\orange_box.py 134 10 93% +bsp_tool\branches\valve\sdk_2013.py 24 0 100% +bsp_tool\branches\valve\source.py 585 111 81% +bsp_tool\branches\vector.py 175 121 31% +bsp_tool\extensions\__init__.py 0 0 100% +bsp_tool\extensions\archive.py 70 70 0% +bsp_tool\extensions\decrypt_xor.py 11 11 0% +bsp_tool\extensions\diff.py 106 106 0% +bsp_tool\extensions\lightmaps.py 133 133 0% +bsp_tool\id_software.py 95 13 86% +bsp_tool\infinity_ward.py 123 19 85% +bsp_tool\lumps\__init__.py 272 49 82% +bsp_tool\raven.py 3 0 100% +bsp_tool\respawn.py 146 69 53% +bsp_tool\ritual.py 44 3 93% +bsp_tool\valve.py 58 10 83% +--------------------------------------------------------------------------- +TOTAL 5601 1166 79% =========================== short test summary info =========================== FAILED tests/test_bsp.py::test_load_bsp[D:/SteamLibrary/steamapps/common-Team Fortress 2-map_dirs51] -FAILED tests/test_bsp.py::test_load_bsp[E:/Mod-CoD2-map_dirs68] - UnboundLoca... -FAILED tests/test_bsp.py::test_load_bsp[E:/Mod-CSO2-map_dirs71] - AssertionEr... -FAILED tests/test_bsp.py::test_load_bsp[E:/Mod-DarkMessiah/singleplayer-map_dirs72] -FAILED tests/test_bsp.py::test_load_bsp[E:/Mod-DarkMessiah/multiplayer-map_dirs73] -FAILED tests/test_bsp.py::test_load_bsp[E:/Mod-Vindictus-map_dirs78] - Assert... -FAILED tests/test_bsplump.py::TestBspLump::test_setitem - AttributeError: 'Ve... -=========== 7 failed, 129 passed, 3 warnings in 2015.62s (0:33:35) ============ +FAILED tests/test_bsp.py::test_load_bsp[E:/Mod-CSO2-map_dirs72] - AssertionEr... +FAILED tests/test_bsp.py::test_load_bsp[E:/Mod-DarkMessiah/singleplayer-map_dirs73] +FAILED tests/test_bsp.py::test_load_bsp[E:/Mod-DarkMessiah/multiplayer-map_dirs74] +FAILED tests/test_bsp.py::test_load_bsp[E:/Mod-Vindictus-map_dirs79] - Assert... +FAILED tests/test_bsplump.py::TestBspLump::test_setitem - AttributeError: pos... +=========== 6 failed, 133 passed, 5 warnings in 2203.57s (0:36:43) ============ diff --git a/tests/maplist.py b/tests/maplist.py index b3b17c91..0a1a411d 100644 --- a/tests/maplist.py +++ b/tests/maplist.py @@ -241,7 +241,10 @@ # "/media/bikkie/GAMES/bsps": every_bsp_dir } -installed_games = {("./", "tests"): ["maps"]} +# NOTE: registering test maps +installed_games = {("./", "tests/maps"): ["Call of Duty 4", "Call of Duty 4/mp", + "Quake 3 Arena", + "Team Fortress 2"]} for group, games in group_dirs.items(): if os.path.exists(group): for game, map_dirs in games.items(): diff --git a/tests/maps/Call of Duty 4/mp/mp_lobby.d3dbsp b/tests/maps/Call of Duty 4/mp/mp_lobby.d3dbsp new file mode 100644 index 00000000..8841d1f7 Binary files /dev/null and b/tests/maps/Call of Duty 4/mp/mp_lobby.d3dbsp differ diff --git a/tests/maps/Call of Duty 4/mp/mp_lobby.d3dbsp.info.txt b/tests/maps/Call of Duty 4/mp/mp_lobby.d3dbsp.info.txt new file mode 100644 index 00000000..76e30415 --- /dev/null +++ b/tests/maps/Call of Duty 4/mp/mp_lobby.d3dbsp.info.txt @@ -0,0 +1,52 @@ +.../Call of Duty 4> bin/cod4map.exe -info raw/maps/mp/mp_lobby.d3dbsp +CoD4Map v1.1 (c) 2002 Id Software Inc. / Infinity Ward +--------------------- +raw/maps/mp/mp_lobby.d3dbsp: 3151024 + + Limit% Count Lump Bytes Kilobytes BSP% +------------------------------------------------------------ + 0.02% 1 models 48 B 0 KB 0.0% + 0.16% 2 materials 144 B 0 KB 0.0% + 0.02% 6 brushes 24 B 0 KB 0.0% + 0.01% 36 brushsides 288 B 0 KB 0.0% + 0.01% 6 planes 96 B 0 KB 0.0% + 0.00% 3 entdata 121 B 0 KB 0.0% + + 0.02% 6 nodes 216 B 0 KB 0.0% + 0.02% 8 leafs 192 B 0 KB 0.0% + 0.00% 6 leafbrushes 24 B 0 KB 0.0% + 0.00% 0 leafsurfaces 0 B 0 KB 0.0% + 0.00% 0 collisionverts 0 B 0 KB 0.0% + 0.00% 0 collisiontris 0 B 0 KB 0.0% + 0.00% 0 collisionedgewalk 0 B 0 KB 0.0% + 0.00% 0 collisionborders 0 B 0 KB 0.0% + 0.00% 0 collisionparts 0 B 0 KB 0.0% + 0.00% 0 collisionaabbs 0 B 0 KB 0.0% + 0.00% 24 layered verts 1632 B 2 KB 0.1% + 0.00% 24 layered data 0 B 0 KB 0.0% + 0.00% 24 simple verts 1632 B 2 KB 0.1% + 0.00% 36 layered indexes 72 B 0 KB 0.0% + 0.00% 36 simple indexes 72 B 0 KB 0.0% + 0.00% 1 layered tri soups 24 B 0 KB 0.0% + 0.00% 1 simple tri soups 24 B 0 KB 0.0% + 3.23% 1 lightmaps 3145728 B 3072 KB 99.8% + 0.00% 1 light grid header 22 B 0 KB 0.0% + 0.00% 1 light grid rows 0 B 0 KB 0.0% + 0.00% 0 light grid points 0 B 0 KB 0.0% + 0.00% 0 light grid colors 0 B 0 KB 0.0% + 0.00% visibility 0 B 0 KB 0.0% + 0.00% 0 portalverts 0 B 0 KB 0.0% + 0.00% 1 layered aabbtrees 12 B 0 KB 0.0% + 0.00% 1 simple aabbtrees 12 B 0 KB 0.0% + 0.10% 1 cells 112 B 0 KB 0.0% + 0.00% 0 portals 0 B 0 KB 0.0% + 0.00% 0 cullgroups 0 B 0 KB 0.0% + 0.00% 0 cullgroupindexes 0 B 0 KB 0.0% + 0.00% 0 reflection_probes 0 B 0 KB 0.0% + 0.78% 2 primary lights 256 B 0 KB 0.0% + 0.78% 2 light regions 2 B 0 KB 0.0% + 0.00% 0 light region hulls 0 B 0 KB 0.0% + 0.00% 0 light region axes 0 B 0 KB 0.0% + + 0.00% 0 paths 0 B 0 KB 0.0% +--------------------- \ No newline at end of file diff --git a/tests/maps/Call of Duty 4/mp/mp_test.d3dbsp b/tests/maps/Call of Duty 4/mp/mp_test.d3dbsp new file mode 100644 index 00000000..33430487 Binary files /dev/null and b/tests/maps/Call of Duty 4/mp/mp_test.d3dbsp differ diff --git a/tests/maps/Call of Duty 4/mp/mp_test.d3dbsp.info.txt b/tests/maps/Call of Duty 4/mp/mp_test.d3dbsp.info.txt new file mode 100644 index 00000000..5696f6bf --- /dev/null +++ b/tests/maps/Call of Duty 4/mp/mp_test.d3dbsp.info.txt @@ -0,0 +1,52 @@ +.../Call of Duty 4> bin/cod4map.exe -info ../raw/maps/mp/mp_test.d3dbsp +CoD4Map v1.1 (c) 2002 Id Software Inc. / Infinity Ward +--------------------- +../raw/maps/mp/mp_test.d3dbsp: 3763128 + + Limit% Count Lump Bytes Kilobytes BSP% +------------------------------------------------------------ + 0.02% 1 models 48 B 0 KB 0.0% + 0.74% 9 materials 648 B 1 KB 0.0% + 0.29% 94 brushes 376 B 0 KB 0.0% + 0.16% 1039 brushsides 8312 B 8 KB 0.2% + 0.52% 342 planes 5472 B 5 KB 0.1% + 0.01% 25 entdata 2269 B 2 KB 0.1% + + 0.19% 61 nodes 2196 B 2 KB 0.1% + 0.19% 63 leafs 1512 B 1 KB 0.0% + 0.07% 181 leafbrushes 724 B 1 KB 0.0% + 0.00% 0 leafsurfaces 0 B 0 KB 0.0% + 0.20% 130 collisionverts 1560 B 2 KB 0.0% + 0.18% 232 collisiontris 1392 B 1 KB 0.0% + 0.18% 696 collisionedgewalk 88 B 0 KB 0.0% + 0.16% 52 collisionborders 1456 B 1 KB 0.0% + 0.01% 9 collisionparts 108 B 0 KB 0.0% + 0.01% 14 collisionaabbs 448 B 0 KB 0.0% + 0.02% 102 layered verts 6936 B 7 KB 0.2% + 0.00% 102 layered data 0 B 0 KB 0.0% + 0.02% 102 simple verts 6936 B 7 KB 0.2% + 0.02% 168 layered indexes 336 B 0 KB 0.0% + 0.01% 168 simple indexes 336 B 0 KB 0.0% + 0.04% 12 layered tri soups 288 B 0 KB 0.0% + 0.04% 12 simple tri soups 288 B 0 KB 0.0% + 3.23% 1 lightmaps 3145728 B 3072 KB 83.6% + 0.00% 1 light grid header 122 B 0 KB 0.0% + 0.31% 51 light grid rows 816 B 1 KB 0.0% + 0.99% 10404 light grid points 41616 B 41 KB 1.1% + 0.04% 28 light grid colors 4704 B 5 KB 0.1% + 0.00% visibility 0 B 0 KB 0.0% + 0.00% 0 portalverts 0 B 0 KB 0.0% + 0.00% 1 layered aabbtrees 12 B 0 KB 0.0% + 0.00% 1 simple aabbtrees 12 B 0 KB 0.0% + 0.10% 1 cells 112 B 0 KB 0.0% + 0.00% 0 portals 0 B 0 KB 0.0% + 0.00% 0 cullgroups 0 B 0 KB 0.0% + 0.00% 0 cullgroupindexes 0 B 0 KB 0.0% + 1.57% 4 reflection_probes 524560 B 512 KB 13.9% + 0.78% 2 primary lights 256 B 0 KB 0.0% + 0.78% 2 light regions 2 B 0 KB 0.0% + 0.00% 0 light region hulls 0 B 0 KB 0.0% + 0.00% 0 light region axes 0 B 0 KB 0.0% + + 0.00% 0 paths 0 B 0 KB 0.0% +--------------------- \ No newline at end of file diff --git a/tests/maps/Call of Duty 4/sources.txt b/tests/maps/Call of Duty 4/sources.txt new file mode 100644 index 00000000..e4fe7ede --- /dev/null +++ b/tests/maps/Call of Duty 4/sources.txt @@ -0,0 +1,9 @@ +mp/mp_lobby.d3dbsp - made by @snake-biscuits (Titanfall mp_lobby.bsp recreation) +# NOTE: partial compile, need to patch PunkBuster in Steam version to create grid +# NOTENOTE: PunkBuster can be patched using this repo: https://github.com/promod/CoD-PunkBuster-Files +# -- don't forget to add the code in the readme to the appropriate .htm file (PB/pbgame.htm +# NOTENOTENOTE: PunkBuster also requires the latest versions of pbsetup.exe & pbsvc.exe +# -- promod's direct links set off my antivirus to I went to https://www.evenbalance.com/pbsetup.php and followed their links +mp/mp_test.d3dbsp - CoD4ModTools (https://github.com/promod/CoD4-Mod-Tools) +test.d3dbsp - CoD4ModTools (https://github.com/promod/CoD4-Mod-Tools) +test_traverses.d3dbsp - CoD4ModTools (https://github.com/promod/CoD4-Mod-Tools) \ No newline at end of file diff --git a/tests/maps/Call of Duty 4/test.d3dbsp b/tests/maps/Call of Duty 4/test.d3dbsp new file mode 100644 index 00000000..6b0ad34f Binary files /dev/null and b/tests/maps/Call of Duty 4/test.d3dbsp differ diff --git a/tests/maps/Call of Duty 4/test.d3dbsp.info.txt b/tests/maps/Call of Duty 4/test.d3dbsp.info.txt new file mode 100644 index 00000000..ef5ec9fe --- /dev/null +++ b/tests/maps/Call of Duty 4/test.d3dbsp.info.txt @@ -0,0 +1,52 @@ +.../Call of Duty 4> bin/cod4map.exe -info ../raw/maps/test.d3dbsp +CoD4Map v1.1 (c) 2002 Id Software Inc. / Infinity Ward +--------------------- +../raw/maps/test.d3dbsp: 3310912 + + Limit% Count Lump Bytes Kilobytes BSP% +------------------------------------------------------------ + 0.02% 1 models 48 B 0 KB 0.0% + 0.25% 3 materials 216 B 0 KB 0.0% + 0.03% 11 brushes 44 B 0 KB 0.0% + 0.01% 66 brushsides 528 B 1 KB 0.0% + 0.03% 17 planes 272 B 0 KB 0.0% + 0.01% 28 entdata 1857 B 2 KB 0.1% + + 0.19% 61 nodes 2196 B 2 KB 0.1% + 0.19% 63 leafs 1512 B 1 KB 0.0% + 0.04% 95 leafbrushes 380 B 0 KB 0.0% + 0.00% 0 leafsurfaces 0 B 0 KB 0.0% + 0.00% 0 collisionverts 0 B 0 KB 0.0% + 0.00% 0 collisiontris 0 B 0 KB 0.0% + 0.00% 0 collisionedgewalk 0 B 0 KB 0.0% + 0.00% 0 collisionborders 0 B 0 KB 0.0% + 0.00% 0 collisionparts 0 B 0 KB 0.0% + 0.00% 0 collisionaabbs 0 B 0 KB 0.0% + 0.02% 88 layered verts 5984 B 6 KB 0.2% + 0.00% 88 layered data 0 B 0 KB 0.0% + 0.01% 88 simple verts 5984 B 6 KB 0.2% + 0.01% 144 layered indexes 288 B 0 KB 0.0% + 0.01% 144 simple indexes 288 B 0 KB 0.0% + 0.02% 5 layered tri soups 120 B 0 KB 0.0% + 0.02% 5 simple tri soups 120 B 0 KB 0.0% + 3.23% 1 lightmaps 3145728 B 3072 KB 95.0% + 0.00% 1 light grid header 58 B 0 KB 0.0% + 0.12% 19 light grid rows 304 B 0 KB 0.0% + 0.14% 1444 light grid points 5776 B 6 KB 0.2% + 0.05% 35 light grid colors 5880 B 6 KB 0.2% + 0.00% visibility 0 B 0 KB 0.0% + 0.00% 0 portalverts 0 B 0 KB 0.0% + 0.00% 1 layered aabbtrees 12 B 0 KB 0.0% + 0.00% 1 simple aabbtrees 12 B 0 KB 0.0% + 0.10% 1 cells 112 B 0 KB 0.0% + 0.00% 0 portals 0 B 0 KB 0.0% + 0.00% 0 cullgroups 0 B 0 KB 0.0% + 0.00% 0 cullgroupindexes 0 B 0 KB 0.0% + 0.39% 1 reflection_probes 131140 B 128 KB 4.0% + 0.78% 2 primary lights 256 B 0 KB 0.0% + 0.78% 2 light regions 2 B 0 KB 0.0% + 0.00% 0 light region hulls 0 B 0 KB 0.0% + 0.00% 0 light region axes 0 B 0 KB 0.0% + + 0.06% 1 paths 1356 B 1 KB 0.0% +--------------------- \ No newline at end of file diff --git a/tests/maps/Call of Duty 4/test_traverses.d3dbsp b/tests/maps/Call of Duty 4/test_traverses.d3dbsp new file mode 100644 index 00000000..26722cb8 Binary files /dev/null and b/tests/maps/Call of Duty 4/test_traverses.d3dbsp differ diff --git a/tests/maps/Call of Duty 4/test_traverses.d3dbsp.info.txt b/tests/maps/Call of Duty 4/test_traverses.d3dbsp.info.txt new file mode 100644 index 00000000..0e85e934 --- /dev/null +++ b/tests/maps/Call of Duty 4/test_traverses.d3dbsp.info.txt @@ -0,0 +1,52 @@ +.../Call of Duty 4> bin/cod4map.exe -info ../raw/maps/test_traverses.d3dbsp +CoD4Map v1.1 (c) 2002 Id Software Inc. / Infinity Ward +--------------------- +../raw/maps/test_traverses.d3dbsp: 3616264 + + Limit% Count Lump Bytes Kilobytes BSP% +------------------------------------------------------------ + 0.29% 12 models 576 B 1 KB 0.0% + 1.23% 15 materials 1080 B 1 KB 0.0% + 0.19% 61 brushes 244 B 0 KB 0.0% + 0.06% 386 brushsides 3088 B 3 KB 0.1% + 0.07% 47 planes 752 B 1 KB 0.0% + 0.08% 136 entdata 13224 B 13 KB 0.4% + + 0.32% 106 nodes 3816 B 4 KB 0.1% + 0.36% 119 leafs 2856 B 3 KB 0.1% + 0.09% 243 leafbrushes 972 B 1 KB 0.0% + 0.00% 0 leafsurfaces 0 B 0 KB 0.0% + 0.00% 0 collisionverts 0 B 0 KB 0.0% + 0.00% 0 collisiontris 0 B 0 KB 0.0% + 0.00% 0 collisionedgewalk 0 B 0 KB 0.0% + 0.00% 0 collisionborders 0 B 0 KB 0.0% + 0.00% 0 collisionparts 0 B 0 KB 0.0% + 0.00% 0 collisionaabbs 0 B 0 KB 0.0% + 0.05% 287 layered verts 19516 B 19 KB 0.5% + 0.00% 287 layered data 0 B 0 KB 0.0% + 0.05% 287 simple verts 19516 B 19 KB 0.5% + 0.05% 492 layered indexes 984 B 1 KB 0.0% + 0.04% 492 simple indexes 984 B 1 KB 0.0% + 0.03% 11 layered tri soups 264 B 0 KB 0.0% + 0.03% 11 simple tri soups 264 B 0 KB 0.0% + 3.23% 1 lightmaps 3145728 B 3072 KB 87.0% + 0.00% 1 light grid header 24 B 0 KB 0.0% + 0.02% 2 light grid rows 40 B 0 KB 0.0% + 0.00% 16 light grid points 64 B 0 KB 0.0% + 0.00% 3 light grid colors 504 B 0 KB 0.0% + 0.00% visibility 0 B 0 KB 0.0% + 0.00% 0 portalverts 0 B 0 KB 0.0% + 0.00% 1 layered aabbtrees 12 B 0 KB 0.0% + 0.00% 1 simple aabbtrees 12 B 0 KB 0.0% + 0.10% 1 cells 112 B 0 KB 0.0% + 0.00% 0 portals 0 B 0 KB 0.0% + 0.00% 0 cullgroups 0 B 0 KB 0.0% + 0.00% 0 cullgroupindexes 0 B 0 KB 0.0% + 1.18% 3 reflection_probes 393420 B 384 KB 10.9% + 0.78% 2 primary lights 256 B 0 KB 0.0% + 0.78% 2 light regions 2 B 0 KB 0.0% + 0.00% 0 light region hulls 0 B 0 KB 0.0% + 0.00% 0 light region axes 0 B 0 KB 0.0% + + 0.32% 1 paths 6614 B 6 KB 0.2% +--------------------- \ No newline at end of file diff --git a/tests/maps/Quake 3 Arena/mp_lobby.bsp b/tests/maps/Quake 3 Arena/mp_lobby.bsp new file mode 100644 index 00000000..f9ad2297 Binary files /dev/null and b/tests/maps/Quake 3 Arena/mp_lobby.bsp differ diff --git a/tests/maps/Quake 3 Arena/sources.txt b/tests/maps/Quake 3 Arena/sources.txt new file mode 100644 index 00000000..c2239516 --- /dev/null +++ b/tests/maps/Quake 3 Arena/sources.txt @@ -0,0 +1 @@ +mp_lobby.bsp - made by @snake-biscuits (Titanfall mp_lobby.bsp recreation) \ No newline at end of file diff --git a/tests/maps/Team Fortress 2/sources.txt b/tests/maps/Team Fortress 2/sources.txt new file mode 100644 index 00000000..4dd45c56 --- /dev/null +++ b/tests/maps/Team Fortress 2/sources.txt @@ -0,0 +1,3 @@ +test_displacement_decompile.bsp - handmade [by @snake-biscuits] +test_physcollide.bsp - handmade [by @snake-biscuits] +test2.bsp - handmade [by @snake-biscuits] \ No newline at end of file diff --git a/tests/maps/test2.bsp b/tests/maps/Team Fortress 2/test2.bsp similarity index 100% rename from tests/maps/test2.bsp rename to tests/maps/Team Fortress 2/test2.bsp diff --git a/tests/maps/Team Fortress 2/test2.bsp.info.txt b/tests/maps/Team Fortress 2/test2.bsp.info.txt new file mode 100644 index 00000000..f2fd31ed --- /dev/null +++ b/tests/maps/Team Fortress 2/test2.bsp.info.txt @@ -0,0 +1,58 @@ +.../Team Fortress 2> bin/vbspinfo.exe tf/maps/test2.bsp +Command line: "...\Team Fortress 2\bin\vbspinfo.exe" "tf/maps/test2.bsp" + +--------------------- +reading .../Team Fortress 2/tf/maps/test2.bsp (213776) + +Object names Objects/Maxobjs Memory / Maxmem Fullness +------------ --------------- --------------- -------- +models 2/1024 96/49152 ( 0.2%) +brushes 75/8192 900/98304 ( 0.9%) +brushsides 454/65536 3632/524288 ( 0.7%) +planes 160/65536 3200/1310720 ( 0.2%) +vertexes 308/65536 3696/786432 ( 0.5%) +nodes 128/65536 4096/2097152 ( 0.2%) +texinfos 30/12288 2160/884736 ( 0.2%) +texdata 12/2048 384/65536 ( 0.6%) +dispinfos 3/0 528/0 ( 0.0%) +disp_verts 131/0 2620/0 ( 0.0%) +disp_tris 192/0 384/0 ( 0.0%) +disp_lmsamples 6928/0 6928/0 ( 0.0%) +faces 172/65536 9632/3670016 ( 0.3%) +hdr faces 0/65536 0/3670016 ( 0.0%) +origfaces 128/65536 7168/3670016 ( 0.2%) +leaves 131/65536 4192/2097152 ( 0.2%) +leaffaces 204/65536 408/131072 ( 0.3%) +leafbrushes 115/65536 230/131072 ( 0.2%) +areas 2/256 16/2048 ( 0.8%) +surfedges 1320/512000 5280/2048000 ( 0.3%) +edges 821/256000 3284/1024000 ( 0.3%) +LDR worldlights 4/8192 352/720896 ( 0.0%) +HDR worldlights 0/8192 0/720896 ( 0.0%) +leafwaterdata 0/32768 0/393216 ( 0.0%) +waterstrips 20/32768 200/327680 ( 0.1%) +waterverts 0/65536 0/786432 ( 0.0%) +waterindices 279/65536 558/131072 ( 0.4%) +cubemapsamples 0/1024 0/16384 ( 0.0%) +overlays 2/512 704/180224 ( 0.4%) +LDR lightdata [variable] 85244/0 ( 0.0%) +HDR lightdata [variable] 0/0 ( 0.0%) +visdata [variable] 688/16777216 ( 0.0%) +entdata [variable] 9647/393216 ( 2.5%) +LDR ambient table 131/65536 524/262144 ( 0.2%) +HDR ambient table 131/65536 524/262144 ( 0.2%) +LDR leaf ambient 684/65536 19152/1835008 ( 1.0%) +HDR leaf ambient 131/65536 3668/1835008 ( 0.2%) +occluders 0/0 0/0 ( 0.0%) +occluder polygons 0/0 0/0 ( 0.0%) +occluder vert ind 0/0 0/0 ( 0.0%) +detail props [variable] 1/12 ( 8.3%) +static props [variable] 1/2560 ( 0.0%) +pakfile [variable] 54/0 ( 0.0%) +physics [variable] 26008/4194304 ( 0.6%) +physics terrain [variable] 805/1048576 ( 0.1%) + +Level flags = 0 + +Total triangle count: 464 +--------------------- \ No newline at end of file diff --git a/tests/maps/test_displacement_decompile.bsp b/tests/maps/Team Fortress 2/test_displacement_decompile.bsp similarity index 100% rename from tests/maps/test_displacement_decompile.bsp rename to tests/maps/Team Fortress 2/test_displacement_decompile.bsp diff --git a/tests/maps/Team Fortress 2/test_displacement_decompile.bsp.info.txt b/tests/maps/Team Fortress 2/test_displacement_decompile.bsp.info.txt new file mode 100644 index 00000000..95934104 --- /dev/null +++ b/tests/maps/Team Fortress 2/test_displacement_decompile.bsp.info.txt @@ -0,0 +1,58 @@ +.../Team Fortress 2> bin/vbspinfo.exe tf/maps/test_displacement_decompile.bsp +Command line: "...Team Fortress 2\bin\vbspinfo.exe" tf/maps/test_displacement_decompile.bsp + +--------------------- +reading .../Team Fortress 2/tf/maps/test_displacement_decompile.bsp (871964) + +Object names Objects/Maxobjs Memory / Maxmem Fullness +------------ --------------- --------------- -------- +models 1/1024 48/49152 ( 0.1%) +brushes 6/8192 72/98304 ( 0.1%) +brushsides 36/65536 288/524288 ( 0.1%) +planes 168/65536 3360/1310720 ( 0.3%) +vertexes 2223/65536 26676/786432 ( 3.4%) +nodes 5379/65536 172128/2097152 ( 8.2%) +texinfos 3/12288 216/884736 ( 0.0%) +texdata 2/2048 64/65536 ( 0.1%) +dispinfos 3/0 528/0 ( 0.0%) +disp_verts 75/0 1500/0 ( 0.0%) +disp_tris 96/0 192/0 ( 0.0%) +disp_lmsamples 3600/0 3600/0 ( 0.0%) +faces 2195/65536 122920/3670016 ( 3.3%) +hdr faces 0/65536 0/3670016 ( 0.0%) +origfaces 21/65536 1176/3670016 ( 0.0%) +leaves 5381/65536 172192/2097152 ( 8.2%) +leaffaces 2192/65536 4384/131072 ( 3.3%) +leafbrushes 3068/65536 6136/131072 ( 4.7%) +areas 1/256 8/2048 ( 0.4%) +surfedges 8864/512000 35456/2048000 ( 1.7%) +edges 4459/256000 17836/1024000 ( 1.7%) +LDR worldlights 0/8192 0/720896 ( 0.0%) +HDR worldlights 0/8192 0/720896 ( 0.0%) +leafwaterdata 0/32768 0/393216 ( 0.0%) +waterstrips 0/32768 0/327680 ( 0.0%) +waterverts 0/65536 0/786432 ( 0.0%) +waterindices 0/65536 0/131072 ( 0.0%) +cubemapsamples 0/1024 0/16384 ( 0.0%) +overlays 0/512 0/180224 ( 0.0%) +LDR lightdata [variable] 3612/0 ( 0.0%) +HDR lightdata [variable] 0/0 ( 0.0%) +visdata [variable] 0/16777216 ( 0.0%) +entdata [variable] 246/393216 ( 0.1%) +LDR ambient table 5381/65536 21524/262144 ( 8.2%) +HDR ambient table 5381/65536 21524/262144 ( 8.2%) +LDR leaf ambient 2312/65536 64736/1835008 ( 3.5%) +HDR leaf ambient 5381/65536 150668/1835008 ( 8.2%) +occluders 0/0 0/0 ( 0.0%) +occluder polygons 0/0 0/0 ( 0.0%) +occluder vert ind 0/0 0/0 ( 0.0%) +detail props [variable] 1/12 ( 8.3%) +static props [variable] 1/12 ( 8.3%) +pakfile [variable] 54/0 ( 0.0%) +physics [variable] 2288/4194304 ( 0.1%) +physics terrain [variable] 161/1048576 ( 0.0%) + +Level flags = 0 + +Total triangle count: 4390 +--------------------- \ No newline at end of file diff --git a/tests/maps/test_physcollide.bsp b/tests/maps/Team Fortress 2/test_physcollide.bsp similarity index 100% rename from tests/maps/test_physcollide.bsp rename to tests/maps/Team Fortress 2/test_physcollide.bsp diff --git a/tests/maps/Team Fortress 2/test_physcollide.bsp.info.txt b/tests/maps/Team Fortress 2/test_physcollide.bsp.info.txt new file mode 100644 index 00000000..59a3f453 --- /dev/null +++ b/tests/maps/Team Fortress 2/test_physcollide.bsp.info.txt @@ -0,0 +1,58 @@ +...\Team Fortress 2> bin/vbspinfo.exe tf/maps/test_physcollide.bsp +Command line: "...\Team Fortress 2\bin\vbspinfo.exe" ".../Team Fortress 2/tf/maps/test_physcollide.bsp" + +--------------------- +reading .../Team Fortress 2/tf/maps/test_physcollide.bsp (34308) + +Object names Objects/Maxobjs Memory / Maxmem Fullness +------------ --------------- --------------- -------- +models 3/1024 144/49152 ( 0.3%) +brushes 9/8192 108/98304 ( 0.1%) +brushsides 54/65536 432/524288 ( 0.1%) +planes 176/65536 3520/1310720 ( 0.3%) +vertexes 69/65536 828/786432 ( 0.1%) +nodes 83/65536 2656/2097152 ( 0.1%) +texinfos 10/12288 720/884736 ( 0.1%) +texdata 4/2048 128/65536 ( 0.2%) +dispinfos 0/0 0/0 ( 0.0%) +disp_verts 0/0 0/0 ( 0.0%) +disp_tris 0/0 0/0 ( 0.0%) +disp_lmsamples 0/0 0/0 ( 0.0%) +faces 44/65536 2464/3670016 ( 0.1%) +hdr faces 0/65536 0/3670016 ( 0.0%) +origfaces 24/65536 1344/3670016 ( 0.0%) +leaves 87/65536 2784/2097152 ( 0.1%) +leaffaces 64/65536 128/131072 ( 0.1%) +leafbrushes 148/65536 296/131072 ( 0.2%) +areas 2/256 16/2048 ( 0.8%) +surfedges 272/512000 1088/2048000 ( 0.1%) +edges 149/256000 596/1024000 ( 0.1%) +LDR worldlights 0/8192 0/720896 ( 0.0%) +HDR worldlights 0/8192 0/720896 ( 0.0%) +leafwaterdata 0/32768 0/393216 ( 0.0%) +waterstrips 0/32768 0/327680 ( 0.0%) +waterverts 0/65536 0/786432 ( 0.0%) +waterindices 0/65536 0/131072 ( 0.0%) +cubemapsamples 0/1024 0/16384 ( 0.0%) +overlays 0/512 0/180224 ( 0.0%) +LDR lightdata [variable] 6240/0 ( 0.0%) +HDR lightdata [variable] 0/0 ( 0.0%) +visdata [variable] 196/16777216 ( 0.0%) +entdata [variable] 796/393216 ( 0.2%) +LDR ambient table 87/65536 348/262144 ( 0.1%) +HDR ambient table 87/65536 348/262144 ( 0.1%) +LDR leaf ambient 28/65536 784/1835008 ( 0.0%) +HDR leaf ambient 87/65536 2436/1835008 ( 0.1%) +occluders 0/0 0/0 ( 0.0%) +occluder polygons 0/0 0/0 ( 0.0%) +occluder vert ind 0/0 0/0 ( 0.0%) +detail props [variable] 1/12 ( 8.3%) +static props [variable] 1/12 ( 8.3%) +pakfile [variable] 54/0 ( 0.0%) +physics [variable] 3807/4194304 ( 0.1%) +physics terrain [variable] 2/1048576 ( 0.0%) + +Level flags = 0 + +Total triangle count: 88 +--------------------- \ No newline at end of file diff --git a/tests/maps/_sources.txt b/tests/maps/_sources.txt deleted file mode 100644 index e3d6c0f2..00000000 --- a/tests/maps/_sources.txt +++ /dev/null @@ -1,5 +0,0 @@ -pl_upward - Team Fortress 2 -test_bigbox - Quake III Arena -test_displacement_decompile - Team Fortress 2 -test_physicscollide - Team Fortress 2 -test2 - Team Fortress 2 diff --git a/tests/maps/pl_upward.bsp b/tests/maps/pl_upward.bsp deleted file mode 100644 index da7e121e..00000000 Binary files a/tests/maps/pl_upward.bsp and /dev/null differ diff --git a/tests/maps/test_bigbox.bsp b/tests/maps/test_bigbox.bsp deleted file mode 100644 index 9c34ade8..00000000 Binary files a/tests/maps/test_bigbox.bsp and /dev/null differ diff --git a/tests/mapsrc/CoD4Radiant/mp_lobby.map b/tests/mapsrc/CoD4Radiant/mp_lobby.map new file mode 100644 index 00000000..556103df --- /dev/null +++ b/tests/mapsrc/CoD4Radiant/mp_lobby.map @@ -0,0 +1,71 @@ +iwmap 4 +"000_Global" flags active +"The Map" flags +// entity 0 +{ +"classname" "worldspawn" +// brush 0 +{ + ( 208 -208 -240 ) ( 208 176 -240 ) ( -176 176 -240 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 208 176 -192 ) ( 208 -208 -192 ) ( -176 -208 -192 ) case512grey 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -192 -208 -224 ) ( -192 -208 -240 ) ( -192 176 -240 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -288 -208 -240 ) ( -288 -208 -224 ) ( 80 -208 -224 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 -224 -224 ) ( 192 160 -224 ) ( 192 160 -240 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 208 176 -240 ) ( 208 176 -224 ) ( -160 176 -224 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 1 +{ + ( 192 -208 -192 ) ( -192 -208 -192 ) ( -192 -224 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -192 -224 192 ) ( -192 -208 192 ) ( 192 -208 192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -192 -272 192 ) ( 192 -272 192 ) ( 192 -272 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 -224 192 ) ( 192 -208 192 ) ( 192 -208 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 -208 192 ) ( -192 -208 192 ) ( -192 -208 -192 ) case512grey 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -192 -208 192 ) ( -192 -224 192 ) ( -192 -224 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 2 +{ + ( 192 176 -192 ) ( 192 -208 -192 ) ( 256 -208 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 -208 192 ) ( 192 176 192 ) ( 256 176 192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 -208 192 ) ( 256 -208 192 ) ( 256 -208 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 256 -208 192 ) ( 256 176 192 ) ( 256 176 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 256 176 192 ) ( 192 176 192 ) ( 192 176 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 176 192 ) ( 192 -208 192 ) ( 192 -208 -192 ) case512grey 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 3 +{ + ( 192 -208 192 ) ( 192 176 192 ) ( -192 176 192 ) case512grey 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 176 256 ) ( 192 -208 256 ) ( -192 -208 256 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 -208 192 ) ( -192 -208 192 ) ( -192 -208 256 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 176 192 ) ( 192 -208 192 ) ( 192 -208 256 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -192 176 192 ) ( 192 176 192 ) ( 192 176 256 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -192 -208 192 ) ( -192 176 192 ) ( -192 176 256 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 4 +{ + ( -192 176 -192 ) ( -256 176 -192 ) ( -256 -208 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -256 176 192 ) ( -192 176 192 ) ( -192 -208 192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -256 -208 192 ) ( -192 -208 192 ) ( -192 -208 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -192 176 192 ) ( -192 176 -192 ) ( -192 -208 -192 ) case512grey 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -192 176 192 ) ( -256 176 192 ) ( -256 176 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -256 176 -192 ) ( -256 176 192 ) ( -256 -208 192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 5 +{ + ( 192 176 -192 ) ( 192 240 -192 ) ( -192 240 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 240 192 ) ( 192 176 192 ) ( -192 176 192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -192 176 192 ) ( 192 176 192 ) ( 192 176 -192 ) case512grey 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 176 192 ) ( 192 240 192 ) ( 192 240 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 240 192 ) ( -192 240 192 ) ( -192 240 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -192 240 192 ) ( -192 176 192 ) ( -192 176 -192 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 1 +{ +"origin" "56.0 48.0 96.0" +"classname" "light" +} +// entity 2 +{ +"origin" "0.0 0.0 0.0" +"classname" "mp_dm_spawn" +} diff --git a/tests/mapsrc/CoD4Radiant/mp_test.map b/tests/mapsrc/CoD4Radiant/mp_test.map new file mode 100644 index 00000000..e86e65fe --- /dev/null +++ b/tests/mapsrc/CoD4Radiant/mp_test.map @@ -0,0 +1,242 @@ +iwmap 4 +"000_Global" flags active +"The Map" flags +// entity 0 +{ +"contrastGain" ".25" +"sunRadiosity" "1" +"sunlight" ".6" +"sundirection" "-30 42 0" +"sundiffusecolor" "0.5 0.6 1" +"suncolor" "0.75 0.9 1" +"diffusefraction" "0.35" +"ambient" "0.1" +"_color" "0.6 0.7 1.000000" +"classname" "worldspawn" +// brush 0 +{ + ( 320 832 0 ) ( -320 832 0 ) ( -320 816 0 ) ch_tile_floor05 64 64 0 -512 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 816 128 ) ( -320 832 128 ) ( 320 832 128 ) ch_tile_floor05 64 64 0 -512 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -832 816 16 ) ( -192 816 16 ) ( -192 816 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 832 816 16 ) ( 832 832 16 ) ( 832 832 0 ) ch_tile_floor05 64 64 512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 320 832 16 ) ( -320 832 16 ) ( -320 832 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -832 832 16 ) ( -832 816 16 ) ( -832 816 0 ) ch_tile_floor05 64 64 512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 1 +{ + ( 320 -816 0 ) ( -320 -816 0 ) ( -320 -832 0 ) ch_tile_floor05 64 64 0 512 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 -832 128 ) ( -320 -816 128 ) ( 320 -816 128 ) ch_tile_floor05 64 64 0 512 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 -832 16 ) ( 320 -832 16 ) ( 320 -832 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 832 -832 16 ) ( 832 -816 16 ) ( 832 -816 0 ) ch_tile_floor05 64 64 -512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 320 -816 16 ) ( -320 -816 16 ) ( -320 -816 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -832 -816 16 ) ( -832 -832 16 ) ( -832 -832 0 ) ch_tile_floor05 64 64 -512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 2 +{ + ( 832 -304 0 ) ( 192 -304 0 ) ( 192 -320 0 ) ch_tile_floor05 64 64 512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 -320 128 ) ( 192 -304 128 ) ( 832 -304 128 ) ch_tile_floor05 64 64 512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 192 -832 16 ) ( 832 -832 16 ) ( 832 -832 0 ) ch_tile_floor05 64 64 512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 832 -320 16 ) ( 832 -304 16 ) ( 832 -304 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1456 832 16 ) ( 816 832 16 ) ( 816 832 0 ) ch_tile_floor05 64 64 512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 816 -192 128 ) ( 816 -208 128 ) ( 816 -208 112 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 3 +{ + ( -816 -304 0 ) ( -1456 -304 0 ) ( -1456 -320 0 ) ch_tile_floor05 64 64 -512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1456 -320 128 ) ( -1456 -304 128 ) ( -816 -304 128 ) ch_tile_floor05 64 64 -512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1456 -832 16 ) ( -816 -832 16 ) ( -816 -832 0 ) ch_tile_floor05 64 64 -512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -816 -832 128 ) ( -816 -816 128 ) ( -816 -816 112 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -192 832 16 ) ( -832 832 16 ) ( -832 832 0 ) ch_tile_floor05 64 64 -512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -832 832 16 ) ( -832 816 16 ) ( -832 816 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 4 +{ + ( 320 320 -16 ) ( -320 320 -16 ) ( -320 -320 -16 ) ch_tile_floor03 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 -320 0 ) ( -320 320 0 ) ( 320 320 0 ) ch_tile_floor03 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -832 -832 112 ) ( -192 -832 112 ) ( -192 -832 -16 ) ch_tile_floor03 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 832 192 112 ) ( 832 832 112 ) ( 832 832 -16 ) ch_tile_floor03 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 832 832 112 ) ( 192 832 112 ) ( 192 832 -16 ) ch_tile_floor03 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -832 -192 112 ) ( -832 -832 112 ) ( -832 -832 -16 ) ch_tile_floor03 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 5 +{ + ( 384 320 -64 ) ( -384 320 -64 ) ( -384 -320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -896 -896 432 ) ( -128 -896 432 ) ( -128 -896 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 896 192 432 ) ( 896 832 432 ) ( 896 832 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 896 432 ) ( -384 896 432 ) ( -384 896 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -896 -192 432 ) ( -896 -832 432 ) ( -896 -832 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 320 -48 ) ( 384 320 -48 ) ( -384 -320 -48 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 6 +{ + ( -384 -320 512 ) ( -384 320 512 ) ( 384 320 512 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 128 -896 432 ) ( 896 -896 432 ) ( 896 -896 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 896 -832 432 ) ( 896 -192 432 ) ( 896 -192 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 896 432 ) ( -896 896 432 ) ( -896 896 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -896 832 432 ) ( -896 192 432 ) ( -896 192 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 320 496 ) ( -384 -320 496 ) ( 384 320 496 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 7 +{ + ( 384 -192 -64 ) ( -384 -192 -64 ) ( -384 -832 -64 ) sky_chechnya 256 256 0 512 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -832 512 ) ( -384 -192 512 ) ( 384 -192 512 ) sky_chechnya 256 256 0 512 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 128 -896 432 ) ( 896 -896 432 ) ( 896 -896 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 896 -832 432 ) ( 896 -192 432 ) ( 896 -192 -64 ) sky_chechnya 256 256 -512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -896 -192 432 ) ( -896 -832 432 ) ( -896 -832 -64 ) sky_chechnya 256 256 -512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 -880 432 ) ( -896 -880 432 ) ( -128 -880 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 8 +{ + ( 896 320 -64 ) ( 128 320 -64 ) ( 128 -320 -64 ) sky_chechnya 256 256 512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 128 -320 512 ) ( 128 320 512 ) ( 896 320 512 ) sky_chechnya 256 256 512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 128 -896 432 ) ( 896 -896 432 ) ( 896 -896 -64 ) sky_chechnya 256 256 512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 896 -832 432 ) ( 896 -192 432 ) ( 896 -192 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 896 896 432 ) ( 128 896 432 ) ( 128 896 -64 ) sky_chechnya 256 256 512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 880 320 432 ) ( 880 -320 432 ) ( 880 320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 9 +{ + ( 384 832 -64 ) ( -384 832 -64 ) ( -384 192 -64 ) sky_chechnya 256 256 0 -512 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 192 512 ) ( -384 832 512 ) ( 384 832 512 ) sky_chechnya 256 256 0 -512 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 896 192 432 ) ( 896 832 432 ) ( 896 832 -64 ) sky_chechnya 256 256 512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 896 432 ) ( -384 896 432 ) ( -384 896 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -896 832 432 ) ( -896 192 432 ) ( -896 192 -64 ) sky_chechnya 256 256 512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 880 432 ) ( 384 880 432 ) ( -384 880 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 10 +{ + ( -128 320 -64 ) ( -896 320 -64 ) ( -896 -320 -64 ) sky_chechnya 256 256 -512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -896 -320 512 ) ( -896 320 512 ) ( -128 320 512 ) sky_chechnya 256 256 -512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -896 -896 432 ) ( -128 -896 432 ) ( -128 -896 -64 ) sky_chechnya 256 256 -512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 896 432 ) ( -896 896 432 ) ( -896 896 -64 ) sky_chechnya 256 256 -512 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -896 -192 432 ) ( -896 -832 432 ) ( -896 -832 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -880 192 432 ) ( -880 832 432 ) ( -880 192 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 11 +{ + ( 816 816 0 ) ( -816 816 0 ) ( -816 -816 0 ) lightgrid_volume 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -816 -816 192 ) ( -816 816 192 ) ( 816 816 192 ) lightgrid_volume 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -816 -816 192 ) ( 816 -816 192 ) ( 816 -816 0 ) lightgrid_volume 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 816 -816 192 ) ( 816 816 192 ) ( 816 816 0 ) lightgrid_volume 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 816 816 192 ) ( -816 816 192 ) ( -816 816 0 ) lightgrid_volume 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -816 816 192 ) ( -816 -816 192 ) ( -816 -816 0 ) lightgrid_volume 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 1 +{ +"origin" "-608.0 -608.0 16.0" +"angles" "0 45 0" +"classname" "info_player_start" +} +// entity 2 +{ +"origin" "-496.0 496.0 80.0" +"classname" "reflection_probe" +} +// entity 3 +{ +"origin" "-704.0 704.0 0.0" +"model" "prefabs/mp/spawn_obj_tdm_aliies.map" +"classname" "misc_prefab" +} +// entity 4 +{ +"angles" "0 180 0" +"origin" "608.0 -640.0 0.0" +"model" "prefabs/mp/spawn_obj_tdm_axis.map" +"classname" "misc_prefab" +} +// entity 5 +{ +"origin" "608.0 -592.0 16.0" +"angles" "0 180 0" +"classname" "mp_tdm_spawn_axis_start" +} +// entity 6 +{ +"origin" "-704.0 656.0 16.0" +"angles" "0 2.50448e-006 0" +"classname" "mp_tdm_spawn_allies_start" +} +// entity 7 +{ +"origin" "-64.0 -576.0 16.0" +"angles" "0 90 0" +"classname" "mp_tdm_spawn" +} +// entity 8 +{ +"origin" "0.0 -576.0 16.0" +"angles" "0 90 0" +"classname" "mp_tdm_spawn" +} +// entity 9 +{ +"origin" "64.0 -576.0 16.0" +"angles" "0 90 0" +"classname" "mp_tdm_spawn" +} +// entity 10 +{ +"origin" "-64.0 -640.0 16.0" +"angles" "0 90 0" +"classname" "mp_tdm_spawn" +} +// entity 11 +{ +"origin" "0.0 -640.0 16.0" +"angles" "0 90 0" +"classname" "mp_tdm_spawn" +} +// entity 12 +{ +"origin" "64.0 -640.0 16.0" +"angles" "0 90 0" +"classname" "mp_tdm_spawn" +} +// entity 13 +{ +"origin" "-64.0 -704.0 16.0" +"angles" "0 90 0" +"classname" "mp_tdm_spawn" +} +// entity 14 +{ +"origin" "0.0 -704.0 16.0" +"angles" "0 90 0" +"classname" "mp_tdm_spawn" +} +// entity 15 +{ +"origin" "64.0 -704.0 16.0" +"angles" "0 90 0" +"classname" "mp_tdm_spawn" +} +// entity 16 +{ +"origin" "144.0 -32.0 0.0" +"model" "prefabs/misc_models/vehicle_ch46e_damaged_front_piece.map" +"classname" "misc_prefab" +} +// entity 17 +{ +"angles" "0 315 0" +"origin" "-98.3 58.5 0.0" +"model" "prefabs/misc_models/vehicle_ch46e_damaged_rear_piece.map" +"classname" "misc_prefab" +} +// entity 18 +{ +"origin" "480.0 544.0 80.0" +"classname" "reflection_probe" +} +// entity 19 +{ +"origin" "512.0 -480.0 80.0" +"classname" "reflection_probe" +} +// entity 20 +{ +"origin" "-416.0 -352.0 80.0" +"classname" "reflection_probe" +} diff --git a/tests/mapsrc/CoD4Radiant/sources.txt b/tests/mapsrc/CoD4Radiant/sources.txt new file mode 100644 index 00000000..e699002b --- /dev/null +++ b/tests/mapsrc/CoD4Radiant/sources.txt @@ -0,0 +1,4 @@ +mp_lobby.map - made by @snake-biscuits (Titanfall mp_lobby.bsp recreation) +mp_test.map - CoD4ModTools (https://github.com/promod/CoD4-Mod-Tools) +test.map - CoD4ModTools (https://github.com/promod/CoD4-Mod-Tools) +test_traverses.map - CoD4ModTools (https://github.com/promod/CoD4-Mod-Tools) \ No newline at end of file diff --git a/tests/mapsrc/CoD4Radiant/test.map b/tests/mapsrc/CoD4Radiant/test.map new file mode 100644 index 00000000..2b386729 --- /dev/null +++ b/tests/mapsrc/CoD4Radiant/test.map @@ -0,0 +1,271 @@ +iwmap 4 +"000_Global" flags active +"The Map" flags +// entity 0 +{ +"contrastGain" ".25" +"sunRadiosity" "1" +"sunlight" ".6" +"sundirection" "-30 42 0" +"sundiffusecolor" "0.5 0.6 1" +"suncolor" "0.75 0.9 1" +"diffusefraction" "0.35" +"ambient" "0.1" +"_color" "0.6 0.7 1.000000" +"classname" "worldspawn" +// brush 0 +{ + ( 320 320 0 ) ( -320 320 0 ) ( -320 304 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 304 128 ) ( -320 320 128 ) ( 320 320 128 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 304 16 ) ( 320 304 16 ) ( 320 304 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 320 304 16 ) ( 320 320 16 ) ( 320 320 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 320 320 16 ) ( -320 320 16 ) ( -320 320 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 320 16 ) ( -320 304 16 ) ( -320 304 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 1 +{ + ( 320 -304 0 ) ( -320 -304 0 ) ( -320 -320 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 -320 128 ) ( -320 -304 128 ) ( 320 -304 128 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 -320 16 ) ( 320 -320 16 ) ( 320 -320 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 320 -320 16 ) ( 320 -304 16 ) ( 320 -304 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 320 -304 16 ) ( -320 -304 16 ) ( -320 -304 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 -304 16 ) ( -320 -320 16 ) ( -320 -320 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 2 +{ + ( 320 -304 0 ) ( -320 -304 0 ) ( -320 -320 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 -320 128 ) ( -320 -304 128 ) ( 320 -304 128 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 -320 16 ) ( 320 -320 16 ) ( 320 -320 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 320 -320 16 ) ( 320 -304 16 ) ( 320 -304 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 944 320 16 ) ( 304 320 16 ) ( 304 320 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 304 320 128 ) ( 304 304 128 ) ( 304 304 112 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 3 +{ + ( -304 -304 0 ) ( -944 -304 0 ) ( -944 -320 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -944 -320 128 ) ( -944 -304 128 ) ( -304 -304 128 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -944 -320 16 ) ( -304 -320 16 ) ( -304 -320 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -304 -320 128 ) ( -304 -304 128 ) ( -304 -304 112 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 320 320 16 ) ( -320 320 16 ) ( -320 320 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 320 16 ) ( -320 304 16 ) ( -320 304 0 ) ch_tile_floor05 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 4 +{ + ( 320 320 -16 ) ( -320 320 -16 ) ( -320 -320 -16 ) ch_tile_floor03 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 -320 0 ) ( -320 320 0 ) ( 320 320 0 ) ch_tile_floor03 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 -320 112 ) ( 320 -320 112 ) ( 320 -320 -16 ) ch_tile_floor03 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 320 -320 112 ) ( 320 320 112 ) ( 320 320 -16 ) ch_tile_floor03 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 320 320 112 ) ( -320 320 112 ) ( -320 320 -16 ) ch_tile_floor03 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 320 112 ) ( -320 -320 112 ) ( -320 -320 -16 ) ch_tile_floor03 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 5 +{ + ( 384 320 -64 ) ( -384 320 -64 ) ( -384 -320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -384 432 ) ( 384 -384 432 ) ( 384 -384 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 -320 432 ) ( 384 320 432 ) ( 384 320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 384 432 ) ( -384 384 432 ) ( -384 384 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 320 432 ) ( -384 -320 432 ) ( -384 -320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 320 -48 ) ( 384 320 -48 ) ( -384 -320 -48 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 6 +{ + ( -384 -320 1280 ) ( -384 320 1280 ) ( 384 320 1280 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -384 1200 ) ( 384 -384 1200 ) ( 384 -384 704 ) sky_chechnya 256 256 0 -768 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 -320 1200 ) ( 384 320 1200 ) ( 384 320 704 ) sky_chechnya 256 256 0 -768 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 384 1200 ) ( -384 384 1200 ) ( -384 384 704 ) sky_chechnya 256 256 0 -768 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 320 1200 ) ( -384 -320 1200 ) ( -384 -320 704 ) sky_chechnya 256 256 0 -768 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 320 1264 ) ( -384 -320 1264 ) ( 384 320 1264 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 7 +{ + ( 384 320 -64 ) ( -384 320 -64 ) ( -384 -320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -320 1280 ) ( -384 320 1280 ) ( 384 320 1280 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -384 432 ) ( 384 -384 432 ) ( 384 -384 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 -320 432 ) ( 384 320 432 ) ( 384 320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 320 432 ) ( -384 -320 432 ) ( -384 -320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 -368 1200 ) ( -384 -368 1200 ) ( 384 -368 704 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 8 +{ + ( 384 320 -64 ) ( -384 320 -64 ) ( -384 -320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -320 1280 ) ( -384 320 1280 ) ( 384 320 1280 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -384 432 ) ( 384 -384 432 ) ( 384 -384 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 -320 432 ) ( 384 320 432 ) ( 384 320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 384 432 ) ( -384 384 432 ) ( -384 384 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 368 320 432 ) ( 368 -320 432 ) ( 368 320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 9 +{ + ( 384 320 -64 ) ( -384 320 -64 ) ( -384 -320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -320 1280 ) ( -384 320 1280 ) ( 384 320 1280 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 -320 432 ) ( 384 320 432 ) ( 384 320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 384 432 ) ( -384 384 432 ) ( -384 384 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 320 432 ) ( -384 -320 432 ) ( -384 -320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 368 432 ) ( 384 368 432 ) ( -384 368 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 10 +{ + ( 384 320 -64 ) ( -384 320 -64 ) ( -384 -320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -320 1280 ) ( -384 320 1280 ) ( 384 320 1280 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -384 432 ) ( 384 -384 432 ) ( 384 -384 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 384 384 432 ) ( -384 384 432 ) ( -384 384 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 320 432 ) ( -384 -320 432 ) ( -384 -320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -368 -320 432 ) ( -368 320 432 ) ( -368 -320 -64 ) sky_chechnya 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 11 +{ + ( 112 128 0 ) ( -144 128 0 ) ( -144 -128 0 ) lightgrid_volume 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 -128 192 ) ( -128 128 192 ) ( 128 128 192 ) lightgrid_volume 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 48 -304 16 ) ( 304 -304 16 ) ( 304 -304 0 ) lightgrid_volume 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 304 -304 16 ) ( 304 -48 16 ) ( 304 -48 0 ) lightgrid_volume 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -48 304 16 ) ( -304 304 16 ) ( -304 304 0 ) lightgrid_volume 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -304 304 16 ) ( -304 48 16 ) ( -304 48 0 ) lightgrid_volume 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 1 +{ +"origin" "-256.0 -256.0 16.0" +"angles" "0 45 0" +"classname" "info_player_start" +} +// entity 2 +{ +"origin" "-256.0 -256.0 32.0" +"classname" "node_pathnode" +} +// entity 3 +{ +"origin" "-128.0 -256.0 32.0" +"classname" "node_pathnode" +} +// entity 4 +{ +"origin" "0.0 -256.0 32.0" +"classname" "node_pathnode" +} +// entity 5 +{ +"origin" "128.0 -256.0 32.0" +"classname" "node_pathnode" +} +// entity 6 +{ +"origin" "256.0 -256.0 32.0" +"classname" "node_pathnode" +} +// entity 7 +{ +"origin" "-256.0 -128.0 32.0" +"classname" "node_pathnode" +} +// entity 8 +{ +"radius" "32" +"targetname" "auto1" +"origin" "-128.0 -128.0 32.0" +"classname" "node_pathnode" +} +// entity 9 +{ +"origin" "0.0 -128.0 32.0" +"classname" "node_pathnode" +} +// entity 10 +{ +"origin" "128.0 -128.0 32.0" +"classname" "node_pathnode" +} +// entity 11 +{ +"origin" "256.0 -128.0 32.0" +"classname" "node_pathnode" +} +// entity 12 +{ +"origin" "-256.0 0.0 32.0" +"classname" "node_pathnode" +} +// entity 13 +{ +"origin" "-128.0 0.0 32.0" +"classname" "node_pathnode" +} +// entity 14 +{ +"origin" "0.0 0.0 32.0" +"classname" "node_pathnode" +} +// entity 15 +{ +"origin" "128.0 0.0 32.0" +"classname" "node_pathnode" +} +// entity 16 +{ +"origin" "256.0 0.0 32.0" +"classname" "node_pathnode" +} +// entity 17 +{ +"origin" "-256.0 128.0 32.0" +"classname" "node_pathnode" +} +// entity 18 +{ +"origin" "-128.0 128.0 32.0" +"classname" "node_pathnode" +} +// entity 19 +{ +"origin" "0.0 128.0 32.0" +"classname" "node_pathnode" +} +// entity 20 +{ +"origin" "128.0 128.0 32.0" +"classname" "node_pathnode" +} +// entity 21 +{ +"origin" "256.0 128.0 32.0" +"classname" "node_pathnode" +} +// entity 22 +{ +"origin" "-256.0 256.0 32.0" +"classname" "node_pathnode" +} +// entity 23 +{ +"origin" "-128.0 256.0 32.0" +"classname" "node_pathnode" +} +// entity 24 +{ +"origin" "0.0 256.0 32.0" +"classname" "node_pathnode" +} +// entity 25 +{ +"origin" "128.0 256.0 32.0" +"classname" "node_pathnode" +} +// entity 26 +{ +"origin" "256.0 256.0 32.0" +"classname" "node_pathnode" +} +// entity 27 +{ +"origin" "0.0 0.0 80.0" +"classname" "reflection_probe" +} +// entity 28 +{ +"origin" "256.0 256.0 16.0" +"target" "auto1" +"angles" "0 225 0" +"export" "1" +"model" "body_complete_sp_arab_regular_asad" +"classname" "actor_enemy_arab_AR_ak47" +} diff --git a/tests/mapsrc/CoD4Radiant/test_traverses.map b/tests/mapsrc/CoD4Radiant/test_traverses.map new file mode 100644 index 00000000..b65b6cd4 --- /dev/null +++ b/tests/mapsrc/CoD4Radiant/test_traverses.map @@ -0,0 +1,994 @@ +iwmap 4 +"000_Global" flags active +"The Map" flags +// entity 0 +{ +"_color" "0.5 0.5 .62 1" +"ambient" ".116" +"sundiffusecolor" "0.75 0.82 0.85" +"diffusefraction" ".2" +"classname" "worldspawn" +"sundirection" "-90 172 0" +"suncolor" "0.9 0.95 1" +"sunlight" "1.2" +// brush 0 +{ + ( 1056 704 -8 ) ( -520 704 -8 ) ( -520 -592 -8 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -520 -1360 0 ) ( 1056 -1360 0 ) ( 1056 -1360 -8 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1056 -592 0 ) ( 1056 704 0 ) ( 1056 704 -8 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1056 704 0 ) ( -520 704 0 ) ( -520 704 -8 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1224 704 0 ) ( -1224 -592 0 ) ( -1224 -592 -8 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -520 704 0 ) ( 1056 704 0 ) ( -520 -592 0 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 1 +{ + ( -576 -592 864 ) ( -576 704 864 ) ( 1000 704 864 ) sky_aftermath 256 256 0 0 0 0 lightmap_gray 1024 1024 0 0 0 0 + ( -520 -1360 0 ) ( 1056 -1360 0 ) ( 1056 -1360 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 1024 1024 0 0 0 0 + ( 1056 -592 0 ) ( 1056 704 0 ) ( 1056 704 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 1024 1024 0 0 0 0 + ( 1056 704 0 ) ( -520 704 0 ) ( -520 704 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 1024 1024 0 0 0 0 + ( -1224 704 0 ) ( -1224 -592 0 ) ( -1224 -592 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 1024 1024 0 0 0 0 + ( -576 704 856 ) ( -576 -592 856 ) ( 1000 704 856 ) sky_aftermath 256 256 0 0 0 0 lightmap_gray 1024 1024 0 0 0 0 +} +// brush 2 +{ + ( -576 -592 864 ) ( -576 704 864 ) ( 1000 704 864 ) sky_aftermath 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -520 -1360 0 ) ( 1056 -1360 0 ) ( 1056 -1360 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1056 -592 0 ) ( 1056 704 0 ) ( 1056 704 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1056 704 0 ) ( -520 704 0 ) ( -520 704 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1048 -64 0 ) ( 1048 -1360 0 ) ( 1048 -64 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 -56 128 ) ( -224 -56 128 ) ( -320 -24 128 ) sky_aftermath 256 256 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 3 +{ + ( 1056 704 -8 ) ( -520 704 -8 ) ( -520 -592 -8 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -520 -1360 0 ) ( 1056 -1360 0 ) ( 1056 -1360 -8 ) case512brown3 128 128 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1056 -592 0 ) ( 1056 704 0 ) ( 1056 704 -8 ) case512brown3 128 128 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1056 704 0 ) ( -520 704 0 ) ( -520 704 -8 ) case512brown3 128 128 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1048 -64 0 ) ( 1048 -1360 0 ) ( 1048 -64 -8 ) case512brown3 128 128 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -224 -56 128 ) ( -320 -56 128 ) ( -320 -24 128 ) caulk 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 4 +{ + ( -576 -336 864 ) ( -576 960 864 ) ( 1000 960 864 ) sky_aftermath 256 256 0 -256 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1056 -336 0 ) ( 1056 960 0 ) ( 1056 960 -8 ) sky_aftermath 256 256 256 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 960 704 0 ) ( -616 704 0 ) ( -616 704 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1224 960 0 ) ( -1224 -336 0 ) ( -1224 -336 -8 ) sky_aftermath 256 256 256 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1192 696 0 ) ( 384 696 0 ) ( -1192 696 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 200 128 ) ( -224 200 128 ) ( -320 232 128 ) sky_aftermath 256 256 0 -256 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 5 +{ + ( 1056 960 -8 ) ( -520 960 -8 ) ( -520 -336 -8 ) case512brown3 128 128 0 -256 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1056 -336 0 ) ( 1056 960 0 ) ( 1056 960 -8 ) case512brown3 128 128 256 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1024 704 0 ) ( -552 704 0 ) ( -552 704 -8 ) case512brown3 128 128 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1224 960 0 ) ( -1224 -336 0 ) ( -1224 -336 -8 ) case512brown3 128 128 256 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1192 696 0 ) ( 384 696 0 ) ( -1192 696 -8 ) case512brown3 128 128 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -224 200 128 ) ( -320 200 128 ) ( -320 232 128 ) caulk 64 64 0 -256 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 6 +{ + ( -576 -1360 864 ) ( -576 -64 864 ) ( 1000 -64 864 ) sky_aftermath 256 256 0 768 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -520 -1360 0 ) ( 1056 -1360 0 ) ( 1056 -1360 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1056 -1360 0 ) ( 1056 -64 0 ) ( 1056 -64 -8 ) sky_aftermath 256 256 -768 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1224 -64 0 ) ( -1224 -1360 0 ) ( -1224 -1360 -8 ) sky_aftermath 256 256 -768 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 352 -1352 0 ) ( -1224 -1352 0 ) ( 352 -1352 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -320 -824 128 ) ( -224 -824 128 ) ( -320 -792 128 ) sky_aftermath 256 256 0 768 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 7 +{ + ( 1056 -64 -8 ) ( -520 -64 -8 ) ( -520 -1360 -8 ) case512brown3 128 128 0 768 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -520 -1360 0 ) ( 1056 -1360 0 ) ( 1056 -1360 -8 ) case512brown3 128 128 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 1056 -1360 0 ) ( 1056 -64 0 ) ( 1056 -64 -8 ) case512brown3 128 128 -768 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1224 -64 0 ) ( -1224 -1360 0 ) ( -1224 -1360 -8 ) case512brown3 128 128 -768 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 352 -1352 0 ) ( -1224 -1352 0 ) ( 352 -1352 -8 ) case512brown3 128 128 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -224 -824 128 ) ( -320 -824 128 ) ( -320 -792 128 ) caulk 64 64 0 768 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 8 +{ + ( -1280 -592 864 ) ( -1280 704 864 ) ( 296 704 864 ) sky_aftermath 256 256 -704 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1224 -1360 0 ) ( 352 -1360 0 ) ( 352 -1360 -8 ) sky_aftermath 256 256 -704 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 352 704 0 ) ( -1224 704 0 ) ( -1224 704 -8 ) sky_aftermath 256 256 -704 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1224 704 0 ) ( -1224 -592 0 ) ( -1224 -592 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1216 -1360 0 ) ( -1216 -64 0 ) ( -1216 -1360 -8 ) sky_aftermath 256 256 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1024 -56 128 ) ( -928 -56 128 ) ( -1024 -24 128 ) sky_aftermath 256 256 -704 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 9 +{ + ( 352 704 -8 ) ( -1224 704 -8 ) ( -1224 -592 -8 ) case512brown3 128 128 -704 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1224 -1360 0 ) ( 352 -1360 0 ) ( 352 -1360 -8 ) case512brown3 128 128 -704 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 352 704 0 ) ( -1224 704 0 ) ( -1224 704 -8 ) case512brown3 128 128 -704 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1224 704 0 ) ( -1224 -592 0 ) ( -1224 -592 -8 ) case512brown3 128 128 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -1216 -1360 0 ) ( -1216 -64 0 ) ( -1216 -1360 -8 ) case512brown3 128 128 0 -64 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -928 -56 128 ) ( -1024 -56 128 ) ( -1024 -24 128 ) caulk 64 64 -704 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 10 +{ + ( -512 320 0 ) ( -520 320 0 ) ( -520 208 0 ) clip_ai 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -520 208 128 ) ( -520 320 128 ) ( -512 320 128 ) clip_ai 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -520 -1352 112 ) ( -512 -1352 112 ) ( -512 -1352 0 ) clip_ai 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -514 -336 112 ) ( -514 -224 112 ) ( -514 -224 0 ) clip_ai 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -504 696 112 ) ( -512 696 112 ) ( -512 696 0 ) clip_ai 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 208 128 ) ( -516 96 128 ) ( -516 96 16 ) clip_ai 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 11 +{ + ( -516 -672 0 ) ( -312 -672 0 ) ( -312 -572 0 ) clip_player 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -416 -572 52 ) ( -260 -572 0 ) ( -260 -640 0 ) clip_player 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -424 -572 52 ) ( -524 -572 52 ) ( -516 -572 0 ) clip_player 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -600 32 ) ( -516 -616 32 ) ( -516 -616 0 ) clip_player 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -312 -672 0 ) ( -516 -672 0 ) ( -516 -572 52 ) clip_player 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 12 +{ + ( -520 -156 36 ) ( -508 -156 36 ) ( -508 -82 36 ) case512brown3 128 128 0 -256 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -509 -182 80 ) ( -521 -182 80 ) ( -521 -108 80 ) case512brown3 128 128 0 -256 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -508 -160 0 ) ( -520 -160 0 ) ( -520 -160 40 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -508 -100 0 ) ( -508 -174 0 ) ( -508 -174 40 ) case512brown3 128 128 256 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -512 -140 0 ) ( -500 -140 0 ) ( -500 -140 40 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -174 0 ) ( -516 -100 0 ) ( -516 -100 40 ) case512brown3 128 128 256 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 13 +{ + ( -520 -166 0 ) ( -508 -166 0 ) ( -508 -92 0 ) case512brown3 128 128 0 -256 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -509 -150 36 ) ( -521 -150 36 ) ( -521 -76 36 ) case512brown3 128 128 0 -256 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -508 -160 0 ) ( -520 -160 0 ) ( -520 -160 40 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -508 -92 -4 ) ( -508 -166 -4 ) ( -508 -166 36 ) case512brown3 128 128 256 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -520 -96 2 ) ( -508 -96 2 ) ( -508 -96 42 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -166 0 ) ( -516 -92 0 ) ( -516 -92 40 ) case512brown3 128 128 256 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 14 +{ + ( -520 -38 0 ) ( -508 -38 0 ) ( -508 36 0 ) case512brown3 128 128 0 -384 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -509 -22 36 ) ( -521 -22 36 ) ( -521 52 36 ) case512brown3 128 128 0 -384 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -508 -32 0 ) ( -520 -32 0 ) ( -520 -32 40 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -508 36 -4 ) ( -508 -38 -4 ) ( -508 -38 36 ) case512brown3 128 128 384 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -520 32 2 ) ( -508 32 2 ) ( -508 32 42 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -38 0 ) ( -516 36 0 ) ( -516 36 40 ) case512brown3 128 128 384 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 15 +{ + ( -520 -28 36 ) ( -508 -28 36 ) ( -508 46 36 ) case512brown3 128 128 0 -384 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -509 -54 80 ) ( -521 -54 80 ) ( -521 20 80 ) case512brown3 128 128 0 -384 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -508 -32 0 ) ( -520 -32 0 ) ( -520 -32 40 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -508 28 0 ) ( -508 -46 0 ) ( -508 -46 40 ) case512brown3 128 128 384 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -512 -12 0 ) ( -500 -12 0 ) ( -500 -12 40 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -46 0 ) ( -516 28 0 ) ( -516 28 40 ) case512brown3 128 128 384 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 16 +{ + ( -520 -422 0 ) ( -508 -422 0 ) ( -508 -348 0 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -509 -438 40 ) ( -521 -438 40 ) ( -521 -364 40 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -508 -416 0 ) ( -520 -416 0 ) ( -520 -416 40 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -508 -348 -4 ) ( -508 -422 -4 ) ( -508 -422 36 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -520 -332 2 ) ( -508 -332 2 ) ( -508 -332 42 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -422 0 ) ( -516 -348 0 ) ( -516 -348 40 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 17 +{ + ( -520 -274 0 ) ( -508 -274 0 ) ( -508 -200 0 ) case512brown3 128 128 0 -20 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -509 -290 40 ) ( -521 -290 40 ) ( -521 -216 40 ) case512brown3 128 128 0 -20 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -508 -288 0 ) ( -520 -288 0 ) ( -520 -288 40 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -508 -200 -4 ) ( -508 -274 -4 ) ( -508 -274 36 ) case512brown3 128 128 20 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -520 -204 2 ) ( -508 -204 2 ) ( -508 -204 42 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -274 0 ) ( -516 -200 0 ) ( -516 -200 40 ) case512brown3 128 128 20 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 18 +{ + ( -260 -572 0 ) ( -260 -452 0 ) ( -516 -452 0 ) case512brown3 128 128 0 256 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -472 -448 52 ) ( -472 -568 52 ) ( -512 -568 52 ) case512brown3 128 128 0 256 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -572 52 ) ( -416 -572 52 ) ( -312 -572 0 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -260 -452 0 ) ( -260 -572 0 ) ( -416 -572 52 ) case512brown3 128 128 -256 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -416 -452 52 ) ( -516 -452 52 ) ( -516 -452 0 ) case512brown3 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -452 52 ) ( -516 -572 52 ) ( -516 -572 0 ) case512brown3 128 128 -256 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 19 +{ + ( -260 -348 0 ) ( -516 -348 0 ) ( -516 -452 0 ) clip_player 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -452 52 ) ( -352 -452 52 ) ( -260 -452 0 ) clip_player 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -260 -452 0 ) ( -416 -452 52 ) ( -260 -384 0 ) clip_player 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -360 32 ) ( -516 -376 32 ) ( -516 -376 0 ) clip_player 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -348 0 ) ( -260 -348 0 ) ( -416 -452 52 ) clip_player 64 64 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 20 +{ + ( -772 -572 0 ) ( -772 -692 0 ) ( -516 -692 0 ) case512brown3 128 128 1032 -888 180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -560 -696 40 ) ( -560 -576 40 ) ( -520 -576 40 ) case512brown3 128 128 1032 -888 -180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -572 40 ) ( -616 -572 40 ) ( -772 -572 0 ) case512brown3 128 -128 1032 0 180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -616 -572 40 ) ( -616 -692 40 ) ( -772 -692 0 ) case512brown3 128 128 776 -1144 -180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -616 -692 40 ) ( -516 -692 40 ) ( -516 -692 0 ) case512brown3 128 -128 1032 0 180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -628 40 ) ( -516 -508 40 ) ( -516 -508 0 ) case512brown3 128 -128 888 0 180 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 21 +{ + ( -976 -824 0 ) ( -976 -944 0 ) ( -512 -944 0 ) case512brown3 128 128 1032 -1144 180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -560 -952 96 ) ( -560 -832 96 ) ( -520 -832 96 ) case512brown3 128 128 1032 -1144 180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -828 96 ) ( -616 -828 96 ) ( -772 -828 0 ) case512brown3 128 -128 1032 0 180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -976 -944 0 ) ( -976 -824 0 ) ( -616 -824 96 ) case512brown3 128 128 776 -1400 -180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -616 -948 96 ) ( -516 -948 96 ) ( -516 -948 0 ) case512brown3 128 -128 1032 0 180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -948 96 ) ( -516 -828 96 ) ( -516 -828 0 ) case512brown3 128 -128 1144 0 180 0 lightmap_gray 16384 16384 0 0 0 0 +} +// brush 22 +{ + ( -848 -696 0 ) ( -848 -816 0 ) ( -512 -816 0 ) case512brown3 128 128 1032 -1016 180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -616 -820 56 ) ( -616 -700 56 ) ( -516 -700 56 ) case512brown3 128 128 1032 -1016 -180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -700 56 ) ( -616 -700 56 ) ( -772 -700 0 ) case512brown3 128 -128 1032 0 180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -848 -816 0 ) ( -848 -696 0 ) ( -616 -696 56 ) case512brown3 128 128 776 -1272 180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -616 -820 56 ) ( -516 -820 56 ) ( -516 -820 0 ) case512brown3 128 -128 1032 0 180 0 lightmap_gray 16384 16384 0 0 0 0 + ( -516 -820 56 ) ( -516 -700 56 ) ( -516 -700 0 ) case512brown3 128 -128 1016 0 180 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 1 +{ +"origin" "128.0 -64.0 0.0" +"angles" "0 180 0" +"classname" "info_player_start" +} +// entity 2 +{ +"origin" "-576.0 0.0 28.0" +"classname" "node_pathnode" +} +// entity 3 +{ +"origin" "-704.0 0.0 28.0" +"classname" "node_pathnode" +} +// entity 4 +{ +"origin" "-832.0 0.0 28.0" +"classname" "node_pathnode" +} +// entity 5 +{ +"origin" "-960.0 0.0 28.0" +"classname" "node_pathnode" +} +// entity 6 +{ +"origin" "-1088.0 0.0 28.0" +"classname" "node_pathnode" +} +// entity 7 +{ +"origin" "-320.0 0.0 28.0" +"classname" "node_pathnode" +} +// entity 8 +{ +"origin" "-448.0 0.0 28.0" +"classname" "node_pathnode" +} +// entity 9 +{ +"origin" "-576.0 -128.0 28.0" +"classname" "node_pathnode" +} +// entity 10 +{ +"origin" "-704.0 -128.0 28.0" +"classname" "node_pathnode" +} +// entity 11 +{ +"origin" "-832.0 -128.0 28.0" +"classname" "node_pathnode" +} +// entity 12 +{ +"origin" "-960.0 -128.0 28.0" +"classname" "node_pathnode" +} +// entity 13 +{ +"origin" "-1088.0 -128.0 28.0" +"classname" "node_pathnode" +} +// entity 14 +{ +"origin" "-320.0 -128.0 28.0" +"classname" "node_pathnode" +} +// entity 15 +{ +"origin" "-448.0 -128.0 28.0" +"classname" "node_pathnode" +} +// entity 16 +{ +"origin" "-576.0 -512.0 28.0" +"classname" "node_pathnode" +} +// entity 17 +{ +"origin" "-704.0 -512.0 28.0" +"classname" "node_pathnode" +} +// entity 18 +{ +"origin" "-832.0 -512.0 28.0" +"classname" "node_pathnode" +} +// entity 19 +{ +"origin" "-960.0 -512.0 28.0" +"classname" "node_pathnode" +} +// entity 20 +{ +"origin" "-1088.0 -512.0 28.0" +"classname" "node_pathnode" +} +// entity 21 +{ +"origin" "-320.0 -512.0 54.5" +"classname" "node_pathnode" +} +// entity 22 +{ +"origin" "-432.0 -512.0 80.0" +"classname" "node_pathnode" +} +// entity 23 +{ +"count" "9999" +"spawnflags" "3" +"targetname" "auto16" +"target" "auto15" +"origin" "-1152.0 0.0 152.0" +"export" "8" +"model" "body_complete_sp_usmc_zach" +"classname" "actor_ally_marine_AR_m16basic" +} +// entity 24 +{ +"targetname" "aitrigger" +"target" "auto16" +"classname" "trigger_multiple" +// brush 0 +{ + ( -64 64 0 ) ( -128 64 0 ) ( -128 0 0 ) trigger 64 64 -192 448 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 0 128 ) ( -128 64 128 ) ( -64 64 128 ) trigger 64 64 -192 448 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -64 192 ) ( -320 -64 192 ) ( -320 -64 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 64 0 192 ) ( 64 64 192 ) ( 64 64 128 ) trigger 64 64 -448 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 64 192 ) ( -448 64 192 ) ( -448 64 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -448 64 192 ) ( -448 0 192 ) ( -448 0 128 ) trigger 64 64 -448 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 25 +{ +"count" "9999" +"spawnflags" "3" +"targetname" "auto18" +"target" "auto17" +"origin" "-1152.0 -128.0 152.0" +"export" "9" +"model" "body_complete_sp_usmc_zach" +"classname" "actor_ally_marine_AR_m16basic" +} +// entity 26 +{ +"targetname" "aitrigger" +"target" "auto18" +"classname" "trigger_multiple" +// brush 0 +{ + ( -64 -64 0 ) ( -128 -64 0 ) ( -128 -128 0 ) trigger 64 64 -192 576 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 -128 128 ) ( -128 -64 128 ) ( -64 -64 128 ) trigger 64 64 -192 576 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -192 192 ) ( -320 -192 192 ) ( -320 -192 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 64 -128 192 ) ( 64 -64 192 ) ( 64 -64 128 ) trigger 64 64 -576 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -64 192 ) ( -448 -64 192 ) ( -448 -64 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -448 -64 192 ) ( -448 -128 192 ) ( -448 -128 128 ) trigger 64 64 -576 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 27 +{ +"count" "9999" +"spawnflags" "3" +"targetname" "auto20" +"target" "auto19" +"origin" "-1152.0 -512.0 152.0" +"export" "10" +"model" "body_complete_sp_usmc_zach" +"classname" "actor_ally_marine_AR_m16basic" +} +// entity 28 +{ +"targetname" "aitrigger" +"target" "auto20" +"classname" "trigger_multiple" +// brush 0 +{ + ( -64 -448 0 ) ( -128 -448 0 ) ( -128 -512 0 ) trigger 64 64 -192 960 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 -512 128 ) ( -128 -448 128 ) ( -64 -448 128 ) trigger 64 64 -192 960 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -64 -576 192 ) ( 0 -576 192 ) ( 0 -576 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 64 -512 192 ) ( 64 -448 192 ) ( 64 -448 128 ) trigger 64 64 -960 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -448 192 ) ( -448 -448 192 ) ( -448 -448 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -448 -448 192 ) ( -448 -512 192 ) ( -448 -512 128 ) trigger 64 64 -960 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 29 +{ +"classname" "node_pathnode" +"origin" "-192.0 -128.0 28.0" +"targetname" "auto17" +} +// entity 30 +{ +"classname" "node_pathnode" +"origin" "-192.0 -512.0 28.0" +"targetname" "auto19" +} +// entity 31 +{ +"count" "9999" +"spawnflags" "3" +"targetname" "auto22" +"target" "auto21" +"origin" "-1152.0 -640.0 152.0" +"export" "11" +"model" "body_complete_sp_usmc_zach" +"classname" "actor_ally_marine_AR_m16basic" +} +// entity 32 +{ +"targetname" "aitrigger" +"target" "auto22" +"classname" "trigger_multiple" +// brush 0 +{ + ( -64 -576 0 ) ( -128 -576 0 ) ( -128 -640 0 ) trigger 64 64 -192 1088 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 -640 128 ) ( -128 -576 128 ) ( -64 -576 128 ) trigger 64 64 -192 1088 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -64 -704 192 ) ( 0 -704 192 ) ( 0 -704 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 64 -640 192 ) ( 64 -576 192 ) ( 64 -576 128 ) trigger 64 64 -1088 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -576 192 ) ( -448 -576 192 ) ( -448 -576 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -448 -576 192 ) ( -448 -640 192 ) ( -448 -640 128 ) trigger 64 64 -1088 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 33 +{ +"classname" "node_pathnode" +"origin" "-192.0 -640.0 28.0" +"targetname" "auto21" +} +// entity 34 +{ +"origin" "-832.0 -640.0 60.0" +"classname" "node_pathnode" +} +// entity 35 +{ +"origin" "-960.0 -640.0 28.0" +"classname" "node_pathnode" +} +// entity 36 +{ +"origin" "-1088.0 -640.0 28.0" +"classname" "node_pathnode" +} +// entity 37 +{ +"origin" "-432.0 -640.0 36.0" +"classname" "node_pathnode" +} +// entity 38 +{ +"origin" "-608.0 -640.0 68.0" +"classname" "node_pathnode" +} +// entity 39 +{ +"origin" "-704.0 -640.0 60.0" +"classname" "node_pathnode" +} +// entity 40 +{ +"origin" "-320.0 -640.0 28.0" +"classname" "node_pathnode" +} +// entity 41 +{ +"origin" "-704.0 128.0 28.0" +"classname" "node_pathnode" +} +// entity 42 +{ +"origin" "-832.0 128.0 28.0" +"classname" "node_pathnode" +} +// entity 43 +{ +"origin" "-960.0 128.0 28.0" +"classname" "node_pathnode" +} +// entity 44 +{ +"origin" "-1088.0 128.0 28.0" +"classname" "node_pathnode" +} +// entity 45 +{ +"origin" "-320.0 128.0 28.0" +"classname" "node_pathnode" +} +// entity 46 +{ +"origin" "-448.0 128.0 28.0" +"classname" "node_pathnode" +} +// entity 47 +{ +"count" "9999" +"spawnflags" "3" +"targetname" "auto24" +"target" "auto23" +"origin" "-1152.0 128.0 152.0" +"export" "12" +"model" "body_complete_sp_usmc_zach" +"classname" "actor_ally_marine_AR_m16basic" +} +// entity 48 +{ +"targetname" "aitrigger" +"target" "auto24" +"classname" "trigger_multiple" +// brush 0 +{ + ( -64 192 0 ) ( -128 192 0 ) ( -128 128 0 ) trigger 64 64 -192 320 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 128 128 ) ( -128 192 128 ) ( -64 192 128 ) trigger 64 64 -192 320 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 64 192 ) ( -320 64 192 ) ( -320 64 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 64 128 192 ) ( 64 192 192 ) ( 64 192 128 ) trigger 64 64 -320 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 192 192 ) ( -448 192 192 ) ( -448 192 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -448 192 192 ) ( -448 128 192 ) ( -448 128 128 ) trigger 64 64 -320 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 49 +{ +"classname" "node_pathnode" +"origin" "-192.0 128.0 28.0" +"targetname" "auto23" +} +// entity 50 +{ +"origin" "-512.0 184.0 0.0" +"angles" "0 270 0" +"model" "prefabs/misc_models/vehicle_80s_sedan1_red.map" +"classname" "misc_prefab" +} +// entity 51 +{ +"origin" "-512.0 120.0 64.0" +"angles" "0 270 0" +"model" "prefabs/traverse/slide_across_car.map" +"classname" "misc_prefab" +} +// entity 52 +{ +"origin" "-516.0 -128.0 0.0" +"angles" "0 2.50448e-006 0" +"model" "prefabs/traverse/window_over_40.map" +"classname" "misc_prefab" +} +// entity 53 +{ +"origin" "-704.0 320.0 28.0" +"classname" "node_pathnode" +} +// entity 54 +{ +"origin" "-832.0 320.0 28.0" +"classname" "node_pathnode" +} +// entity 55 +{ +"origin" "-960.0 320.0 28.0" +"classname" "node_pathnode" +} +// entity 56 +{ +"origin" "-1088.0 320.0 28.0" +"classname" "node_pathnode" +} +// entity 57 +{ +"origin" "-320.0 320.0 28.0" +"classname" "node_pathnode" +} +// entity 58 +{ +"origin" "-448.0 320.0 28.0" +"classname" "node_pathnode" +} +// entity 59 +{ +"count" "9999" +"spawnflags" "3" +"targetname" "auto26" +"target" "auto25" +"origin" "-1152.0 320.0 152.0" +"export" "13" +"model" "body_complete_sp_usmc_zach" +"classname" "actor_ally_marine_AR_m16basic" +} +// entity 60 +{ +"targetname" "aitrigger" +"target" "auto26" +"classname" "trigger_multiple" +// brush 0 +{ + ( -64 384 0 ) ( -128 384 0 ) ( -128 320 0 ) trigger 64 64 -192 128 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 320 128 ) ( -128 384 128 ) ( -64 384 128 ) trigger 64 64 -192 128 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 256 192 ) ( -320 256 192 ) ( -320 256 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 64 320 192 ) ( 64 384 192 ) ( 64 384 128 ) trigger 64 64 -128 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 384 192 ) ( -448 384 192 ) ( -448 384 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -448 384 192 ) ( -448 320 192 ) ( -448 320 128 ) trigger 64 64 -128 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 61 +{ +"angles" "0 180 0" +"classname" "node_cover_crouch" +"origin" "-462.0 312.0 22.0" +"targetname" "auto25" +} +// entity 62 +{ +"origin" "-512.0 376.0 0.0" +"angles" "0 270 0" +"model" "prefabs/misc_models/vehicle_80s_sedan1_red.map" +"classname" "misc_prefab" +} +// entity 63 +{ +"origin" "-512.0 312.0 64.0" +"angles" "0 270 0" +"model" "prefabs/traverse/slide_across_car.map" +"classname" "misc_prefab" +} +// entity 64 +{ +"origin" "-516.0 0.0 0.0" +"angles" "0 2.50448e-006 0" +"model" "prefabs/traverse/window_over_40.map" +"classname" "misc_prefab" +} +// entity 65 +{ +"angles" "0 180 0" +"classname" "node_cover_crouch" +"origin" "-492.0 4.0 22.0" +"targetname" "auto15" +} +// entity 66 +{ +"origin" "-576.0 -384.0 28.0" +"classname" "node_pathnode" +} +// entity 67 +{ +"origin" "-704.0 -384.0 28.0" +"classname" "node_pathnode" +} +// entity 68 +{ +"origin" "-832.0 -384.0 28.0" +"classname" "node_pathnode" +} +// entity 69 +{ +"origin" "-960.0 -384.0 28.0" +"classname" "node_pathnode" +} +// entity 70 +{ +"origin" "-1088.0 -384.0 28.0" +"classname" "node_pathnode" +} +// entity 71 +{ +"origin" "-320.0 -384.0 28.0" +"classname" "node_pathnode" +} +// entity 72 +{ +"origin" "-448.0 -384.0 28.0" +"classname" "node_pathnode" +} +// entity 73 +{ +"count" "9999" +"spawnflags" "3" +"targetname" "auto29" +"target" "auto28" +"origin" "-1152.0 -384.0 152.0" +"export" "14" +"model" "body_complete_sp_usmc_zach" +"classname" "actor_ally_marine_AR_m16basic" +} +// entity 74 +{ +"targetname" "aitrigger" +"target" "auto29" +"classname" "trigger_multiple" +// brush 0 +{ + ( -64 -320 0 ) ( -128 -320 0 ) ( -128 -384 0 ) trigger 64 64 -192 832 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 -384 128 ) ( -128 -320 128 ) ( -64 -320 128 ) trigger 64 64 -192 832 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -448 192 ) ( -320 -448 192 ) ( -320 -448 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 64 -384 192 ) ( 64 -320 192 ) ( 64 -320 128 ) trigger 64 64 -832 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -320 192 ) ( -448 -320 192 ) ( -448 -320 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -448 -320 192 ) ( -448 -384 192 ) ( -448 -384 128 ) trigger 64 64 -832 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 75 +{ +"classname" "node_pathnode" +"origin" "-192.0 -384.0 28.0" +"targetname" "auto28" +} +// entity 76 +{ +"origin" "-516.0 -356.0 0.0" +"angles" "0 2.50448e-006 0" +"model" "prefabs/traverse/wall_over_40.map" +"classname" "misc_prefab" +} +// entity 77 +{ +"origin" "-576.0 -256.0 28.0" +"classname" "node_pathnode" +} +// entity 78 +{ +"origin" "-704.0 -256.0 28.0" +"classname" "node_pathnode" +} +// entity 79 +{ +"origin" "-832.0 -256.0 28.0" +"classname" "node_pathnode" +} +// entity 80 +{ +"origin" "-960.0 -256.0 28.0" +"classname" "node_pathnode" +} +// entity 81 +{ +"origin" "-1088.0 -256.0 28.0" +"classname" "node_pathnode" +} +// entity 82 +{ +"origin" "-320.0 -256.0 28.0" +"classname" "node_pathnode" +} +// entity 83 +{ +"origin" "-448.0 -256.0 28.0" +"classname" "node_pathnode" +} +// entity 84 +{ +"count" "9999" +"spawnflags" "3" +"targetname" "auto31" +"target" "auto30" +"origin" "-1152.0 -256.0 152.0" +"export" "15" +"model" "body_complete_sp_usmc_zach" +"classname" "actor_ally_marine_AR_m16basic" +} +// entity 85 +{ +"targetname" "aitrigger" +"target" "auto31" +"classname" "trigger_multiple" +// brush 0 +{ + ( -64 -192 0 ) ( -128 -192 0 ) ( -128 -256 0 ) trigger 64 64 -192 704 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 -256 128 ) ( -128 -192 128 ) ( -64 -192 128 ) trigger 64 64 -192 704 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -320 192 ) ( -320 -320 192 ) ( -320 -320 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 64 -256 192 ) ( 64 -192 192 ) ( 64 -192 128 ) trigger 64 64 -704 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -192 192 ) ( -448 -192 192 ) ( -448 -192 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -448 -192 192 ) ( -448 -256 192 ) ( -448 -256 128 ) trigger 64 64 -704 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 86 +{ +"origin" "-516.0 -228.0 0.0" +"angles" "0 2.50448e-006 0" +"model" "prefabs/traverse/wall_over_40.map" +"classname" "misc_prefab" +} +// entity 87 +{ +"angles" "0 180 0" +"classname" "node_cover_crouch" +"origin" "-492.0 -228.0 22.0" +"targetname" "auto30" +} +// entity 88 +{ +"origin" "-516.0 -516.0 0.0" +"angles" "0 2.50448e-006 0" +"model" "prefabs/traverse/stepup_52.map" +"classname" "misc_prefab" +} +// entity 89 +{ +"origin" "-512.0 568.0 -8.0" +"angles" "0 2.50448e-006 0" +"model" "prefabs/traverse/window_2.map" +"classname" "misc_prefab" +} +// entity 90 +{ +"origin" "-608.0 -768.0 84.0" +"classname" "node_pathnode" +} +// entity 91 +{ +"origin" "-704.0 -768.0 68.0" +"classname" "node_pathnode" +} +// entity 92 +{ +"origin" "-832.0 -768.0 28.0" +"classname" "node_pathnode" +} +// entity 93 +{ +"origin" "-960.0 -768.0 28.0" +"classname" "node_pathnode" +} +// entity 94 +{ +"origin" "-1088.0 -768.0 28.0" +"classname" "node_pathnode" +} +// entity 95 +{ +"origin" "-320.0 -768.0 28.0" +"classname" "node_pathnode" +} +// entity 96 +{ +"origin" "-424.0 -768.0 28.0" +"classname" "node_pathnode" +} +// entity 97 +{ +"count" "9999" +"spawnflags" "3" +"targetname" "auto33" +"target" "auto32" +"origin" "-1152.0 -768.0 152.0" +"export" "16" +"model" "body_complete_sp_usmc_zach" +"classname" "actor_ally_marine_AR_m16basic" +} +// entity 98 +{ +"targetname" "aitrigger" +"target" "auto33" +"classname" "trigger_multiple" +// brush 0 +{ + ( -64 -704 0 ) ( -128 -704 0 ) ( -128 -768 0 ) trigger 64 64 -192 1216 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 -768 128 ) ( -128 -704 128 ) ( -64 -704 128 ) trigger 64 64 -192 1216 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -832 192 ) ( -320 -832 192 ) ( -320 -832 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 64 -768 192 ) ( 64 -704 192 ) ( 64 -704 128 ) trigger 64 64 -1216 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -704 192 ) ( -448 -704 192 ) ( -448 -704 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -448 -704 192 ) ( -448 -768 192 ) ( -448 -768 128 ) trigger 64 64 -1216 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 99 +{ +"origin" "-516.0 -640.0 0.0" +"angles" "0 2.50448e-006 0" +"model" "prefabs/traverse/jumpdown_40.map" +"classname" "misc_prefab" +} +// entity 100 +{ +"origin" "-608.0 -896.0 124.0" +"classname" "node_pathnode" +} +// entity 101 +{ +"origin" "-704.0 -896.0 108.0" +"classname" "node_pathnode" +} +// entity 102 +{ +"origin" "-832.0 -896.0 76.0" +"classname" "node_pathnode" +} +// entity 103 +{ +"origin" "-960.0 -896.0 28.0" +"classname" "node_pathnode" +} +// entity 104 +{ +"origin" "-1088.0 -896.0 28.0" +"classname" "node_pathnode" +} +// entity 105 +{ +"origin" "-320.0 -896.0 28.0" +"classname" "node_pathnode" +} +// entity 106 +{ +"origin" "-424.0 -896.0 28.0" +"classname" "node_pathnode" +} +// entity 107 +{ +"count" "9999" +"spawnflags" "3" +"targetname" "auto35" +"target" "auto34" +"origin" "-1152.0 -896.0 152.0" +"export" "17" +"model" "body_complete_sp_usmc_zach" +"classname" "actor_ally_marine_AR_m16basic" +} +// entity 108 +{ +"targetname" "aitrigger" +"target" "auto35" +"classname" "trigger_multiple" +// brush 0 +{ + ( -64 -832 0 ) ( -128 -832 0 ) ( -128 -896 0 ) trigger 64 64 -192 1344 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -128 -896 128 ) ( -128 -832 128 ) ( -64 -832 128 ) trigger 64 64 -192 1344 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -960 192 ) ( -320 -960 192 ) ( -320 -960 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( 64 -896 192 ) ( 64 -832 192 ) ( 64 -832 128 ) trigger 64 64 -1344 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -384 -832 192 ) ( -448 -832 192 ) ( -448 -832 128 ) trigger 64 64 -192 0 0 0 lightmap_gray 16384 16384 0 0 0 0 + ( -448 -832 192 ) ( -448 -896 192 ) ( -448 -896 128 ) trigger 64 64 -1344 0 0 0 lightmap_gray 16384 16384 0 0 0 0 +} +} +// entity 109 +{ +"origin" "-516.0 -768.0 0.0" +"angles" "0 2.50448e-006 0" +"model" "prefabs/traverse/jumpdown_56.map" +"classname" "misc_prefab" +} +// entity 110 +{ +"origin" "-516.0 -896.0 0.0" +"angles" "0 2.50448e-006 0" +"model" "prefabs/traverse/jumpdown_96.map" +"classname" "misc_prefab" +} +// entity 111 +{ +"targetname" "auto32" +"origin" "-192.0 -768.0 28.0" +"classname" "node_pathnode" +} +// entity 112 +{ +"targetname" "auto34" +"origin" "-192.0 -896.0 28.0" +"classname" "node_pathnode" +} +// entity 113 +{ +"origin" "-440.0 376.0 88.0" +"classname" "reflection_probe" +} +// entity 114 +{ +"origin" "-440.0 168.0 88.0" +"classname" "reflection_probe" +} +// entity 115 +{ +"origin" "-632.0 -312.0 88.0" +"classname" "reflection_probe" +} diff --git a/tests/mapsrc/GtKRadiant/Quake 3 Arena/mp_lobby.map b/tests/mapsrc/GtKRadiant/Quake 3 Arena/mp_lobby.map new file mode 100644 index 00000000..170c07c6 --- /dev/null +++ b/tests/mapsrc/GtKRadiant/Quake 3 Arena/mp_lobby.map @@ -0,0 +1,70 @@ +// entity 0 +{ +"classname" "worldspawn" +// brush 0 +{ +( -192 184 -192 ) ( -192 40 -192 ) ( -192 40 -200 ) common/caulk 0 -16 0 0.500000 0.500000 0 4 0 +( 72 192 -192 ) ( -80 192 -192 ) ( -80 192 -200 ) common/caulk -16 -16 0 0.500000 0.500000 0 4 0 +( 192 48 -192 ) ( 192 192 -192 ) ( 192 192 -200 ) common/caulk 0 -16 0 0.500000 0.500000 0 4 0 +( -72 -192 -192 ) ( 80 -192 -192 ) ( 80 -192 -200 ) common/caulk -16 -16 0 0.500000 0.500000 0 4 0 +( -80 48 -192 ) ( -80 192 -192 ) ( 72 192 -192 ) base_floor/clang_floor2 0 0 0 0.500000 0.500000 0 0 0 +( 72 192 -200 ) ( -80 192 -200 ) ( -80 48 -200 ) common/caulk -16 0 0 0.500000 0.500000 0 4 0 +} +// brush 1 +{ +( -192 264 200 ) ( -192 -192 200 ) ( -192 -192 192 ) common/caulk 16 0 0 0.500000 0.500000 0 4 0 +( 176 192 200 ) ( -256 192 200 ) ( -256 192 192 ) common/caulk -48 0 0 0.500000 0.500000 0 4 0 +( 192 -200 200 ) ( 192 256 200 ) ( 192 256 192 ) common/caulk 16 0 0 0.500000 0.500000 0 4 0 +( -192 -192 200 ) ( 240 -192 200 ) ( 240 -192 192 ) common/caulk -48 0 0 0.500000 0.500000 0 4 0 +( -192 -192 200 ) ( -192 264 200 ) ( 240 264 200 ) common/caulk -48 -16 0 0.500000 0.500000 0 4 0 +( 240 264 192 ) ( -192 264 192 ) ( -192 -192 192 ) base_floor/clang_floor2 0 0 0 0.500000 0.500000 0 0 0 +} +// brush 2 +{ +( -200 192 -184 ) ( -200 -192 -184 ) ( -200 -192 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( -192 192 -184 ) ( -200 192 -184 ) ( -200 192 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( -192 -192 -184 ) ( -192 192 -184 ) ( -192 192 -192 ) base_floor/clang_floor2 0 0 0 0.500000 0.500000 0 0 0 +( -200 -192 -184 ) ( -192 -192 -184 ) ( -192 -192 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( -200 -192 192 ) ( -200 192 192 ) ( -192 192 192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( -192 192 -192 ) ( -200 192 -192 ) ( -200 -192 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +} +// brush 3 +{ +( 192 192 192 ) ( 192 -192 192 ) ( 192 -192 -192 ) base_floor/clang_floor2 0 0 0 0.500000 0.500000 0 0 0 +( 200 192 192 ) ( 192 192 192 ) ( 192 192 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 200 -192 192 ) ( 200 192 192 ) ( 200 192 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 192 -192 192 ) ( 200 -192 192 ) ( 200 -192 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 192 -192 192 ) ( 192 192 192 ) ( 200 192 192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 200 192 -192 ) ( 192 192 -192 ) ( 192 -192 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +} +// brush 4 +{ +( -192 200 192 ) ( -192 192 192 ) ( -192 192 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 192 200 192 ) ( -192 200 192 ) ( -192 200 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 192 192 192 ) ( 192 200 192 ) ( 192 200 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( -192 192 192 ) ( 192 192 192 ) ( 192 192 -192 ) base_floor/clang_floor2 0 0 0 0.500000 0.500000 0 0 0 +( -192 192 192 ) ( -192 200 192 ) ( 192 200 192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 192 200 -192 ) ( -192 200 -192 ) ( -192 192 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +} +// brush 5 +{ +( -192 -192 192 ) ( -192 -200 192 ) ( -192 -200 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 192 -192 192 ) ( -192 -192 192 ) ( -192 -192 -192 ) base_floor/clang_floor2 0 0 0 0.500000 0.500000 0 0 0 +( 192 -200 192 ) ( 192 -192 192 ) ( 192 -192 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( -192 -200 192 ) ( 192 -200 192 ) ( 192 -200 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( -192 -200 192 ) ( -192 -192 192 ) ( 192 -192 192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +( 192 -192 -192 ) ( -192 -192 -192 ) ( -192 -200 -192 ) common/caulk 0 0 0 0.500000 0.500000 0 4 0 +} +} +// entity 1 +{ +"classname" "light" +"origin" "48 40 112" +"light" "300" +} +// entity 2 +{ +"classname" "info_player_deathmatch" +"origin" "0 0 0" +"angle" "90" +} diff --git a/tests/mapsrc/GtKRadiant/Quake 3 Arena/mp_lobby.prt b/tests/mapsrc/GtKRadiant/Quake 3 Arena/mp_lobby.prt new file mode 100644 index 00000000..bfbd6fe2 --- /dev/null +++ b/tests/mapsrc/GtKRadiant/Quake 3 Arena/mp_lobby.prt @@ -0,0 +1,40 @@ +PRT1 +8 +12 +24 +4 0 4 0 (0 0 0 ) (0 0 192 ) (0 192 192 ) (0 192 0 ) +4 0 2 0 (0 0 192 ) (0 0 0 ) (192 0 0 ) (192 0 192 ) +4 0 1 0 (192 0 0 ) (0 0 0 ) (0 192 0 ) (192 192 0 ) +4 1 5 0 (0 0 -192 ) (0 0 0 ) (0 192 0 ) (0 192 -192 ) +4 1 3 0 (0 0 0 ) (0 0 -192 ) (192 0 -192 ) (192 0 0 ) +4 2 6 0 (0 0 192 ) (0 0 0 ) (0 -192 0 ) (0 -192 192 ) +4 2 3 0 (0 -192 0 ) (0 0 0 ) (192 0 0 ) (192 -192 0 ) +4 3 7 0 (0 -192 -192 ) (0 -192 0 ) (0 0 0 ) (0 0 -192 ) +4 4 6 0 (-192 0 0 ) (0 0 0 ) (0 0 192 ) (-192 0 192 ) +4 4 5 0 (0 0 0 ) (-192 0 0 ) (-192 192 0 ) (0 192 0 ) +4 5 7 0 (-192 0 -192 ) (0 0 -192 ) (0 0 0 ) (-192 0 0 ) +4 6 7 0 (-192 0 0 ) (0 0 0 ) (0 -192 0 ) (-192 -192 0 ) +4 0 (192 192 192 ) (0 192 192 ) (0 0 192 ) (192 0 192 ) +4 0 (192 192 192 ) (192 192 0 ) (0 192 0 ) (0 192 192 ) +4 0 (192 0 0 ) (192 192 0 ) (192 192 192 ) (192 0 192 ) +4 1 (192 0 -192 ) (0 0 -192 ) (0 192 -192 ) (192 192 -192 ) +4 1 (192 192 -192 ) (0 192 -192 ) (0 192 0 ) (192 192 0 ) +4 1 (192 0 0 ) (192 0 -192 ) (192 192 -192 ) (192 192 0 ) +4 2 (192 0 192 ) (0 0 192 ) (0 -192 192 ) (192 -192 192 ) +4 2 (0 -192 192 ) (0 -192 0 ) (192 -192 0 ) (192 -192 192 ) +4 2 (192 0 192 ) (192 -192 192 ) (192 -192 0 ) (192 0 0 ) +4 3 (192 -192 -192 ) (0 -192 -192 ) (0 0 -192 ) (192 0 -192 ) +4 3 (192 -192 0 ) (0 -192 0 ) (0 -192 -192 ) (192 -192 -192 ) +4 3 (192 0 0 ) (192 -192 0 ) (192 -192 -192 ) (192 0 -192 ) +4 4 (0 192 192 ) (-192 192 192 ) (-192 0 192 ) (0 0 192 ) +4 4 (-192 192 192 ) (0 192 192 ) (0 192 0 ) (-192 192 0 ) +4 4 (-192 0 192 ) (-192 192 192 ) (-192 192 0 ) (-192 0 0 ) +4 5 (0 0 -192 ) (-192 0 -192 ) (-192 192 -192 ) (0 192 -192 ) +4 5 (-192 192 -192 ) (-192 192 0 ) (0 192 0 ) (0 192 -192 ) +4 5 (-192 192 0 ) (-192 192 -192 ) (-192 0 -192 ) (-192 0 0 ) +4 6 (0 0 192 ) (-192 0 192 ) (-192 -192 192 ) (0 -192 192 ) +4 6 (-192 -192 0 ) (0 -192 0 ) (0 -192 192 ) (-192 -192 192 ) +4 6 (-192 0 0 ) (-192 -192 0 ) (-192 -192 192 ) (-192 0 192 ) +4 7 (0 -192 -192 ) (-192 -192 -192 ) (-192 0 -192 ) (0 0 -192 ) +4 7 (0 -192 -192 ) (0 -192 0 ) (-192 -192 0 ) (-192 -192 -192 ) +4 7 (-192 0 -192 ) (-192 -192 -192 ) (-192 -192 0 ) (-192 0 0 ) diff --git a/tests/mapsrc/GtKRadiant/Quake 3 Arena/mp_lobby.srf b/tests/mapsrc/GtKRadiant/Quake 3 Arena/mp_lobby.srf new file mode 100644 index 00000000..87448c0f --- /dev/null +++ b/tests/mapsrc/GtKRadiant/Quake 3 Arena/mp_lobby.srf @@ -0,0 +1,44 @@ +default +{ + castShadows 1 + receiveShadows 1 + sampleSize 16 + longestCurve 0.000000 +} + +0 // SURFACE_META V: 4 I: 6 planar +{ + shader textures/base_floor/clang_floor2 + lightmapAxis ( -1.000000 0.000000 0.000000 ) +} + +1 // SURFACE_META V: 4 I: 6 planar +{ + shader textures/base_floor/clang_floor2 + lightmapAxis ( 0.000000 -1.000000 0.000000 ) +} + +2 // SURFACE_META V: 4 I: 6 planar +{ + shader textures/base_floor/clang_floor2 + lightmapAxis ( 0.000000 0.000000 -1.000000 ) +} + +3 // SURFACE_META V: 4 I: 6 planar +{ + shader textures/base_floor/clang_floor2 + lightmapAxis ( 1.000000 0.000000 0.000000 ) +} + +4 // SURFACE_META V: 4 I: 6 planar +{ + shader textures/base_floor/clang_floor2 + lightmapAxis ( 0.000000 1.000000 0.000000 ) +} + +5 // SURFACE_META V: 4 I: 6 planar +{ + shader textures/base_floor/clang_floor2 + lightmapAxis ( 0.000000 0.000000 1.000000 ) +} + diff --git a/tests/mapsrc/GtKRadiant/Quake 3 Arena/sources.txt b/tests/mapsrc/GtKRadiant/Quake 3 Arena/sources.txt new file mode 100644 index 00000000..c5d358f3 --- /dev/null +++ b/tests/mapsrc/GtKRadiant/Quake 3 Arena/sources.txt @@ -0,0 +1 @@ +mp_lobby.map - made by @snake-biscuits (Titanfall mp_lobby.bsp recreation) \ No newline at end of file diff --git a/tests/mapsrc/mp_lobby.vmf b/tests/mapsrc/Hammer++/Team Fortress 2/mp_lobby.vmf similarity index 70% rename from tests/mapsrc/mp_lobby.vmf rename to tests/mapsrc/Hammer++/Team Fortress 2/mp_lobby.vmf index 40377c7f..2bd145d2 100644 --- a/tests/mapsrc/mp_lobby.vmf +++ b/tests/mapsrc/Hammer++/Team Fortress 2/mp_lobby.vmf @@ -1,8 +1,8 @@ versioninfo { "editorversion" "400" - "editorbuild" "9109" - "mapversion" "1" + "editorbuild" "8849" + "mapversion" "2" "formatversion" "100" "prefab" "0" } @@ -15,17 +15,16 @@ viewsettings "bShowGrid" "1" "bShowLogicalGrid" "0" "nGridSpacing" "8" - "bShow3DGrid" "0" } world { "id" "1" - "mapversion" "1" + "mapversion" "2" "classname" "worldspawn" - "skyname" "sky_tf2_04" - "maxpropscreenwidth" "-1" - "detailvbsp" "detail_2fort.vbsp" "detailmaterial" "detail/detailsprites_2fort" + "detailvbsp" "detail_2fort.vbsp" + "maxpropscreenwidth" "-1" + "skyname" "sky_tf2_04" solid { "id" "2" @@ -33,6 +32,13 @@ world { "id" "1" "plane" "(-192 192 256) (192 192 256) (192 -192 256)" + vertices_plus + { + "v" "-192 -192 256" + "v" "-192 192 256" + "v" "192 192 256" + "v" "192 -192 256" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 -1 0 0] 0.25" @@ -44,6 +50,13 @@ world { "id" "2" "plane" "(-192 -192 192) (192 -192 192) (192 192 192)" + vertices_plus + { + "v" "-192 192 192" + "v" "-192 -192 192" + "v" "192 -192 192" + "v" "192 192 192" + } "material" "DEV/DEV_MEASUREGENERIC01B" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 -1 0 0] 0.25" @@ -55,6 +68,13 @@ world { "id" "3" "plane" "(-192 192 256) (-192 -192 256) (-192 -192 192)" + vertices_plus + { + "v" "-192 -192 192" + "v" "-192 192 192" + "v" "-192 192 256" + "v" "-192 -192 256" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[0 1 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -66,6 +86,13 @@ world { "id" "4" "plane" "(192 192 192) (192 -192 192) (192 -192 256)" + vertices_plus + { + "v" "192 192 192" + "v" "192 -192 192" + "v" "192 -192 256" + "v" "192 192 256" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[0 1 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -77,6 +104,13 @@ world { "id" "5" "plane" "(192 192 256) (-192 192 256) (-192 192 192)" + vertices_plus + { + "v" "-192 192 192" + "v" "192 192 192" + "v" "192 192 256" + "v" "-192 192 256" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -88,6 +122,13 @@ world { "id" "6" "plane" "(192 -192 192) (-192 -192 192) (-192 -192 256)" + vertices_plus + { + "v" "192 -192 192" + "v" "-192 -192 192" + "v" "-192 -192 256" + "v" "192 -192 256" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -109,6 +150,13 @@ world { "id" "18" "plane" "(-192 -256 192) (192 -256 192) (192 -256 -192)" + vertices_plus + { + "v" "192 -256 192" + "v" "192 -256 -192" + "v" "-192 -256 -192" + "v" "-192 -256 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -120,6 +168,13 @@ world { "id" "17" "plane" "(-192 -192 -192) (192 -192 -192) (192 -192 192)" + vertices_plus + { + "v" "-192 -192 192" + "v" "-192 -192 -192" + "v" "192 -192 -192" + "v" "192 -192 192" + } "material" "DEV/DEV_MEASUREGENERIC01B" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -131,6 +186,13 @@ world { "id" "16" "plane" "(-192 -256 192) (-192 -256 -192) (-192 -192 -192)" + vertices_plus + { + "v" "-192 -256 192" + "v" "-192 -256 -192" + "v" "-192 -192 -192" + "v" "-192 -192 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[0 1 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -142,6 +204,13 @@ world { "id" "15" "plane" "(192 -192 192) (192 -192 -192) (192 -256 -192)" + vertices_plus + { + "v" "192 -192 192" + "v" "192 -192 -192" + "v" "192 -256 -192" + "v" "192 -256 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[0 1 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -153,6 +222,13 @@ world { "id" "14" "plane" "(192 -256 192) (-192 -256 192) (-192 -192 192)" + vertices_plus + { + "v" "192 -256 192" + "v" "-192 -256 192" + "v" "-192 -192 192" + "v" "192 -192 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 -1 0 0] 0.25" @@ -164,6 +240,13 @@ world { "id" "13" "plane" "(192 -192 -192) (-192 -192 -192) (-192 -256 -192)" + vertices_plus + { + "v" "192 -192 -192" + "v" "-192 -192 -192" + "v" "-192 -256 -192" + "v" "192 -256 -192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 -1 0 0] 0.25" @@ -185,6 +268,13 @@ world { "id" "30" "plane" "(-192 192 192) (192 192 192) (192 192 -192)" + vertices_plus + { + "v" "192 192 192" + "v" "192 192 -192" + "v" "-192 192 -192" + "v" "-192 192 192" + } "material" "DEV/DEV_MEASUREGENERIC01B" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -196,6 +286,13 @@ world { "id" "29" "plane" "(-192 256 -192) (192 256 -192) (192 256 192)" + vertices_plus + { + "v" "-192 256 192" + "v" "-192 256 -192" + "v" "192 256 -192" + "v" "192 256 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -207,6 +304,13 @@ world { "id" "28" "plane" "(-192 192 192) (-192 192 -192) (-192 256 -192)" + vertices_plus + { + "v" "-192 192 192" + "v" "-192 192 -192" + "v" "-192 256 -192" + "v" "-192 256 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[0 1 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -218,6 +322,13 @@ world { "id" "27" "plane" "(192 256 192) (192 256 -192) (192 192 -192)" + vertices_plus + { + "v" "192 256 192" + "v" "192 256 -192" + "v" "192 192 -192" + "v" "192 192 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[0 1 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -229,6 +340,13 @@ world { "id" "26" "plane" "(192 192 192) (-192 192 192) (-192 256 192)" + vertices_plus + { + "v" "192 192 192" + "v" "-192 192 192" + "v" "-192 256 192" + "v" "192 256 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 -1 0 0] 0.25" @@ -240,6 +358,13 @@ world { "id" "25" "plane" "(192 256 -192) (-192 256 -192) (-192 192 -192)" + vertices_plus + { + "v" "192 256 -192" + "v" "-192 256 -192" + "v" "-192 192 -192" + "v" "192 192 -192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 -1 0 0] 0.25" @@ -261,6 +386,13 @@ world { "id" "42" "plane" "(-192 192 -192) (192 192 -192) (192 -192 -192)" + vertices_plus + { + "v" "-192 -192 -192" + "v" "-192 192 -192" + "v" "192 192 -192" + "v" "192 -192 -192" + } "material" "DEV/DEV_MEASUREGENERIC01B" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 -1 0 0] 0.25" @@ -272,6 +404,13 @@ world { "id" "41" "plane" "(-192 -192 -256) (192 -192 -256) (192 192 -256)" + vertices_plus + { + "v" "-192 192 -256" + "v" "-192 -192 -256" + "v" "192 -192 -256" + "v" "192 192 -256" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 -1 0 0] 0.25" @@ -283,6 +422,13 @@ world { "id" "40" "plane" "(-192 192 -192) (-192 -192 -192) (-192 -192 -256)" + vertices_plus + { + "v" "-192 -192 -256" + "v" "-192 192 -256" + "v" "-192 192 -192" + "v" "-192 -192 -192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[0 1 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -294,6 +440,13 @@ world { "id" "39" "plane" "(192 192 -256) (192 -192 -256) (192 -192 -192)" + vertices_plus + { + "v" "192 192 -256" + "v" "192 -192 -256" + "v" "192 -192 -192" + "v" "192 192 -192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[0 1 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -305,6 +458,13 @@ world { "id" "38" "plane" "(192 192 -192) (-192 192 -192) (-192 192 -256)" + vertices_plus + { + "v" "-192 192 -256" + "v" "192 192 -256" + "v" "192 192 -192" + "v" "-192 192 -192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -316,6 +476,13 @@ world { "id" "37" "plane" "(192 -192 -256) (-192 -192 -256) (-192 -192 -192)" + vertices_plus + { + "v" "192 -192 -256" + "v" "-192 -192 -256" + "v" "-192 -192 -192" + "v" "192 -192 -192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -337,6 +504,13 @@ world { "id" "60" "plane" "(256 -192 192) (256 192 192) (256 192 -192)" + vertices_plus + { + "v" "256 192 192" + "v" "256 192 -192" + "v" "256 -192 -192" + "v" "256 -192 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[0 1 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -348,6 +522,13 @@ world { "id" "59" "plane" "(192 -192 -192) (192 192 -192) (192 192 192)" + vertices_plus + { + "v" "192 -192 192" + "v" "192 -192 -192" + "v" "192 192 -192" + "v" "192 192 192" + } "material" "DEV/DEV_MEASUREGENERIC01B" "uaxis" "[0 1 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -359,6 +540,13 @@ world { "id" "58" "plane" "(256 -192 192) (256 -192 -192) (192 -192 -192)" + vertices_plus + { + "v" "256 -192 192" + "v" "256 -192 -192" + "v" "192 -192 -192" + "v" "192 -192 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -370,6 +558,13 @@ world { "id" "57" "plane" "(192 192 192) (192 192 -192) (256 192 -192)" + vertices_plus + { + "v" "192 192 192" + "v" "192 192 -192" + "v" "256 192 -192" + "v" "256 192 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -381,6 +576,13 @@ world { "id" "56" "plane" "(256 192 192) (256 -192 192) (192 -192 192)" + vertices_plus + { + "v" "192 -192 192" + "v" "192 192 192" + "v" "256 192 192" + "v" "256 -192 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 -1 0 0] 0.25" @@ -392,6 +594,13 @@ world { "id" "55" "plane" "(192 192 -192) (192 -192 -192) (256 -192 -192)" + vertices_plus + { + "v" "192 192 -192" + "v" "192 -192 -192" + "v" "256 -192 -192" + "v" "256 192 -192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 -1 0 0] 0.25" @@ -413,6 +622,13 @@ world { "id" "66" "plane" "(-192 -192 192) (-192 192 192) (-192 192 -192)" + vertices_plus + { + "v" "-192 192 192" + "v" "-192 192 -192" + "v" "-192 -192 -192" + "v" "-192 -192 192" + } "material" "DEV/DEV_MEASUREGENERIC01B" "uaxis" "[0 1 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -424,6 +640,13 @@ world { "id" "65" "plane" "(-256 -192 -192) (-256 192 -192) (-256 192 192)" + vertices_plus + { + "v" "-256 -192 192" + "v" "-256 -192 -192" + "v" "-256 192 -192" + "v" "-256 192 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[0 1 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -435,6 +658,13 @@ world { "id" "64" "plane" "(-192 -192 192) (-192 -192 -192) (-256 -192 -192)" + vertices_plus + { + "v" "-192 -192 192" + "v" "-192 -192 -192" + "v" "-256 -192 -192" + "v" "-256 -192 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -446,6 +676,13 @@ world { "id" "63" "plane" "(-256 192 192) (-256 192 -192) (-192 192 -192)" + vertices_plus + { + "v" "-256 192 192" + "v" "-256 192 -192" + "v" "-192 192 -192" + "v" "-192 192 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 0 -1 0] 0.25" @@ -457,6 +694,13 @@ world { "id" "62" "plane" "(-192 192 192) (-192 -192 192) (-256 -192 192)" + vertices_plus + { + "v" "-256 -192 192" + "v" "-256 192 192" + "v" "-192 192 192" + "v" "-192 -192 192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 -1 0 0] 0.25" @@ -468,6 +712,13 @@ world { "id" "61" "plane" "(-256 192 -192) (-256 -192 -192) (-192 -192 -192)" + vertices_plus + { + "v" "-256 192 -192" + "v" "-256 -192 -192" + "v" "-192 -192 -192" + "v" "-192 192 -192" + } "material" "TOOLS/TOOLSNODRAW" "uaxis" "[1 0 0 0] 0.25" "vaxis" "[0 -1 0 0] 0.25" @@ -489,7 +740,7 @@ entity "classname" "info_player_start" "angles" "0 90 0" "spawnflags" "0" - "origin" "-1.63249 1.63249 8" + "origin" "0 0 0" editor { "color" "0 255 0" @@ -552,9 +803,17 @@ cameras { "activecamera" "-1" } -cordon +cordons { - "mins" "(-1024 -1024 -1024)" - "maxs" "(1024 1024 1024)" "active" "0" + cordon + { + "name" "cordon" + "active" "1" + box + { + "mins" "(-1024 -1024 -1024)" + "maxs" "(1024 1024 1024)" + } + } } diff --git a/tests/mapsrc/Hammer/Team Fortress 2/sources.txt b/tests/mapsrc/Hammer/Team Fortress 2/sources.txt new file mode 100644 index 00000000..a3e6e769 --- /dev/null +++ b/tests/mapsrc/Hammer/Team Fortress 2/sources.txt @@ -0,0 +1,3 @@ +test_displacement_decompile.vmf - made by @snake-biscuits +test_physcollide.vmf - made by @snake-biscuits +test2.vmf - made by @snake-biscuits \ No newline at end of file diff --git a/tests/mapsrc/test2.vmf b/tests/mapsrc/Hammer/Team Fortress 2/test2.vmf similarity index 100% rename from tests/mapsrc/test2.vmf rename to tests/mapsrc/Hammer/Team Fortress 2/test2.vmf diff --git a/tests/mapsrc/Hammer/Team Fortress 2/test_displacement_decompile.log b/tests/mapsrc/Hammer/Team Fortress 2/test_displacement_decompile.log new file mode 100644 index 00000000..45e443bc --- /dev/null +++ b/tests/mapsrc/Hammer/Team Fortress 2/test_displacement_decompile.log @@ -0,0 +1,110 @@ + + + +materialPath: D:\SteamLibrary\steamapps\common\Team Fortress 2\tf\materials +Loading e:\mod\tf2\mapsrc\_test_maps\test_displacement_decompile.vmf +fixing up env_cubemap materials on brush sides... +0...1...2...3...4...5...6...7...8...9...10**** leaked **** +Processing areas...done (0) +Building Faces...done (0) +FixTjuncs... +PruneNodes... +WriteBSP... +done (0) +*** Error: Skybox vtf files for skybox/sky_tf2_04 weren't compiled with the same size texture and/or same flags! +Can't load skybox file skybox/sky_tf2_04 to build the default cubemap! +*** Error: Skybox vtf files for skybox/sky_tf2_04 weren't compiled with the same size texture and/or same flags! +Can't load skybox file skybox/sky_tf2_04 to build the default cubemap! +Finding displacement neighbors... +Finding lightmap sample positions... +Displacement Alpha : 0...1...2...3...4...5...6...7...8...9...10 +Building Physics collision data... +done (0) (2288 bytes) +Placing detail props : 0...1...2...3...4...5...6...7...8...9...10 +Compacting texture/material tables... +Reduced 8 texinfos to 3 +Reduced 3 texdatas to 2 (57 bytes to 39) +Writing e:\mod\tf2\mapsrc\_test_maps\test_displacement_decompile.bsp +MSG_FILEWRITE - Filesystem was asked to write to 'e:\mod\tf2\mapsrc\_test_maps\test_displacement_decompile.bsp', but we don't own that location. Allowing. +ZIP Output overshot buffer estimate: Estimated 0, actual 54 +0 seconds elapsed + + + +8 threads +reading e:\mod\tf2\mapsrc\_test_maps\test_displacement_decompile.bsp +reading e:\mod\tf2\mapsrc\_test_maps\test_displacement_decompile.prt +LoadPortals: couldn't read e:\mod\tf2\mapsrc\_test_maps\test_displacement_decompile.prt + + + +[Reading texlights from 'lights.rad'] +[56 texlights parsed from 'lights.rad'] + +Loading e:\mod\tf2\mapsrc\_test_maps\test_displacement_decompile.bsp +No vis information, direct lighting only. +2195 faces +44870320 square feet [6461325824.00 square inches] +3 Displacements +1251 Square Feet [180223.98 Square Inches] +0 direct lights +0...1...2...3...4...5...6...7...8...9...10Build Patch/Sample Hash Table(s).....Done<0.0000 sec> +0...1...2...3...4...5...6...7...8...9...10FinalLightFace Done +0 of 0 (0% of) surface lights went in leaf ambient cubes. +0...1...2...3...4...5...6...7...8...9...10Writing leaf ambient...done +Ready to Finish + +Object names Objects/Maxobjs Memory / Maxmem Fullness +------------ --------------- --------------- -------- +models 1/1024 48/49152 ( 0.1%) +brushes 6/8192 72/98304 ( 0.1%) +brushsides 36/65536 288/524288 ( 0.1%) +planes 168/65536 3360/1310720 ( 0.3%) +vertexes 2223/65536 26676/786432 ( 3.4%) +nodes 5379/65536 172128/2097152 ( 8.2%) +texinfos 3/12288 216/884736 ( 0.0%) +texdata 2/2048 64/65536 ( 0.1%) +dispinfos 3/0 528/0 ( 0.0%) +disp_verts 75/0 1500/0 ( 0.0%) +disp_tris 96/0 192/0 ( 0.0%) +disp_lmsamples 3600/0 3600/0 ( 0.0%) +faces 2195/65536 122920/3670016 ( 3.3%) +hdr faces 0/65536 0/3670016 ( 0.0%) +origfaces 21/65536 1176/3670016 ( 0.0%) +leaves 5381/65536 172192/2097152 ( 8.2%) +leaffaces 2192/65536 4384/131072 ( 3.3%) +leafbrushes 3068/65536 6136/131072 ( 4.7%) +areas 1/256 8/2048 ( 0.4%) +surfedges 8864/512000 35456/2048000 ( 1.7%) +edges 4459/256000 17836/1024000 ( 1.7%) +LDR worldlights 0/8192 0/720896 ( 0.0%) +HDR worldlights 0/8192 0/720896 ( 0.0%) +leafwaterdata 0/32768 0/393216 ( 0.0%) +waterstrips 0/32768 0/327680 ( 0.0%) +waterverts 0/65536 0/786432 ( 0.0%) +waterindices 0/65536 0/131072 ( 0.0%) +cubemapsamples 0/1024 0/16384 ( 0.0%) +overlays 0/512 0/180224 ( 0.0%) +LDR lightdata [variable] 3612/0 ( 0.0%) +HDR lightdata [variable] 0/0 ( 0.0%) +visdata [variable] 0/16777216 ( 0.0%) +entdata [variable] 246/393216 ( 0.1%) +LDR ambient table 5381/65536 21524/262144 ( 8.2%) +HDR ambient table 5381/65536 21524/262144 ( 8.2%) +LDR leaf ambient 2312/65536 64736/1835008 ( 3.5%) +HDR leaf ambient 5381/65536 150668/1835008 ( 8.2%) +occluders 0/0 0/0 ( 0.0%) +occluder polygons 0/0 0/0 ( 0.0%) +occluder vert ind 0/0 0/0 ( 0.0%) +detail props [variable] 1/12 ( 8.3%) +static props [variable] 1/12 ( 8.3%) +pakfile [variable] 54/0 ( 0.0%) +physics [variable] 2288/4194304 ( 0.1%) +physics terrain [variable] 161/1048576 ( 0.0%) + +Level flags = 0 + +Total triangle count: 4390 +Writing e:\mod\tf2\mapsrc\_test_maps\test_displacement_decompile.bsp +ZIP Output overshot buffer estimate: Estimated 0, actual 54 +19 seconds elapsed diff --git a/tests/mapsrc/Hammer/Team Fortress 2/test_displacement_decompile.vmf b/tests/mapsrc/Hammer/Team Fortress 2/test_displacement_decompile.vmf new file mode 100644 index 00000000..0cdda167 --- /dev/null +++ b/tests/mapsrc/Hammer/Team Fortress 2/test_displacement_decompile.vmf @@ -0,0 +1,830 @@ +versioninfo +{ + "editorversion" "400" + "editorbuild" "8610" + "mapversion" "1" + "formatversion" "100" + "prefab" "0" +} +visgroups +{ +} +viewsettings +{ + "bSnapToGrid" "1" + "bShowGrid" "1" + "bShowLogicalGrid" "0" + "nGridSpacing" "64" + "bShow3DGrid" "0" +} +world +{ + "id" "1" + "mapversion" "1" + "classname" "worldspawn" + "skyname" "sky_tf2_04" + "maxpropscreenwidth" "-1" + "detailvbsp" "detail_2fort.vbsp" + "detailmaterial" "detail/detailsprites_2fort" + solid + { + "id" "2" + side + { + "id" "1" + "plane" "(-384 128 64) (-128 128 64) (-128 -128 64)" + "material" "DEV/DEV_BLENDMEASURE" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + dispinfo + { + "power" "2" + "startposition" "[-384 -128 64]" + "flags" "0" + "elevation" "0" + "subdiv" "0" + normals + { + "row0" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row1" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row2" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row3" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row4" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + } + distances + { + "row0" "0 0 0 0 0" + "row1" "0 0 0 0 0" + "row2" "0 0 0 0 0" + "row3" "0 0 0 0 0" + "row4" "0 0 0 0 0" + } + offsets + { + "row0" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row1" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row2" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row3" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row4" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + } + offset_normals + { + "row0" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1" + "row1" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1" + "row2" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1" + "row3" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1" + "row4" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1" + } + alphas + { + "row0" "0 0 0 0 0" + "row1" "0 0 0 0 0" + "row2" "0 0 0 0 0" + "row3" "0 0 0 0 0" + "row4" "0 0 0 0 0" + } + triangle_tags + { + "row0" "9 9 9 9 9 9 9 9" + "row1" "9 9 9 9 9 9 9 9" + "row2" "9 9 9 9 9 9 9 9" + "row3" "9 9 9 9 9 9 9 9" + } + allowed_verts + { + "10" "-1 -1 -1 -1 -1 -1 -1 -1 -1 -1" + } + } + } + side + { + "id" "2" + "plane" "(-384 -128 -128) (-128 -128 -128) (-128 128 -128)" + "material" "TOOLS/TOOLSNODRAW" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "3" + "plane" "(-384 128 64) (-384 -128 64) (-384 -128 -128)" + "material" "TOOLS/TOOLSNODRAW" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "4" + "plane" "(-128 128 -128) (-128 -128 -128) (-128 -128 64)" + "material" "TOOLS/TOOLSNODRAW" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "5" + "plane" "(-128 128 64) (-384 128 64) (-384 128 -128)" + "material" "TOOLS/TOOLSNODRAW" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "6" + "plane" "(-128 -128 -128) (-384 -128 -128) (-384 -128 64)" + "material" "DEV/DEV_BLENDMEASURE" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + dispinfo + { + "power" "2" + "startposition" "[-384 -128 -128]" + "flags" "0" + "elevation" "0" + "subdiv" "0" + normals + { + "row0" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row1" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row2" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row3" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row4" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + } + distances + { + "row0" "0 0 0 0 0" + "row1" "0 0 0 0 0" + "row2" "0 0 0 0 0" + "row3" "0 0 0 0 0" + "row4" "0 0 0 0 0" + } + offsets + { + "row0" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row1" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row2" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row3" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row4" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + } + offset_normals + { + "row0" "0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0" + "row1" "0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0" + "row2" "0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0" + "row3" "0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0" + "row4" "0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0" + } + alphas + { + "row0" "0 0 0 0 0" + "row1" "0 0 0 0 0" + "row2" "0 0 0 0 0" + "row3" "0 0 0 0 0" + "row4" "0 0 0 0 0" + } + triangle_tags + { + "row0" "0 0 0 0 0 0 0 0" + "row1" "0 0 0 0 0 0 0 0" + "row2" "0 0 0 0 0 0 0 0" + "row3" "0 0 0 0 0 0 0 0" + } + allowed_verts + { + "10" "-1 -1 -1 -1 -1 -1 -1 -1 -1 -1" + } + } + } + editor + { + "color" "0 102 171" + "visgroupshown" "1" + "visgroupautoshown" "1" + } + } + solid + { + "id" "3" + side + { + "id" "18" + "plane" "(128 128 64) (384 128 64) (384 -128 64)" + "material" "DEV/DEV_BLENDMEASURE" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + dispinfo + { + "power" "2" + "startposition" "[128 -128 64]" + "flags" "0" + "elevation" "0" + "subdiv" "0" + normals + { + "row0" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row1" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row2" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row3" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row4" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + } + distances + { + "row0" "0 0 0 0 0" + "row1" "0 0 0 0 0" + "row2" "0 0 0 0 0" + "row3" "0 0 0 0 0" + "row4" "0 0 0 0 0" + } + offsets + { + "row0" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row1" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row2" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row3" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + "row4" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + } + offset_normals + { + "row0" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1" + "row1" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1" + "row2" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1" + "row3" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1" + "row4" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1" + } + alphas + { + "row0" "0 0 0 0 0" + "row1" "0 0 0 0 0" + "row2" "0 0 0 0 0" + "row3" "0 0 0 0 0" + "row4" "0 0 0 0 0" + } + triangle_tags + { + "row0" "9 9 9 9 9 9 9 9" + "row1" "9 9 9 9 9 9 9 9" + "row2" "9 9 9 9 9 9 9 9" + "row3" "9 9 9 9 9 9 9 9" + } + allowed_verts + { + "10" "-1 -1 -1 -1 -1 -1 -1 -1 -1 -1" + } + } + } + side + { + "id" "17" + "plane" "(128 -128 -128) (384 -128 -128) (384 128 -128)" + "material" "TOOLS/TOOLSNODRAW" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "16" + "plane" "(128 128 64) (128 -128 64) (128 -128 -128)" + "material" "TOOLS/TOOLSNODRAW" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "15" + "plane" "(384 128 -128) (384 -128 -128) (384 -128 64)" + "material" "TOOLS/TOOLSNODRAW" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "14" + "plane" "(384 128 64) (128 128 64) (128 128 -128)" + "material" "TOOLS/TOOLSNODRAW" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "13" + "plane" "(384 -128 -128) (128 -128 -128) (128 -128 64)" + "material" "TOOLS/TOOLSNODRAW" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 102 171" + "visgroupshown" "1" + "visgroupautoshown" "1" + } + } + solid + { + "id" "12" + side + { + "id" "24" + "plane" "(-16376 16376 16376) (16376 16376 16376) (16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "23" + "plane" "(-16376 16376 16376) (-16376 -16376 16376) (-16376 -16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "22" + "plane" "(16376 16376 -16376) (16376 -16376 -16376) (16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "21" + "plane" "(16376 16376 16376) (-16376 16376 16376) (-16376 16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "20" + "plane" "(16376 -16376 -16376) (-16376 -16376 -16376) (-16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "19" + "plane" "(1024 -1024 1024) (1024 1024 1024) (-1024 1024 1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 211 240" + "visgroupshown" "1" + "visgroupautoshown" "1" + "cordonsolid" "1" + } + } + solid + { + "id" "14" + side + { + "id" "30" + "plane" "(-16376 -16376 -16376) (16376 -16376 -16376) (16376 16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "29" + "plane" "(-16376 16376 16376) (-16376 -16376 16376) (-16376 -16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "28" + "plane" "(16376 16376 -16376) (16376 -16376 -16376) (16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "27" + "plane" "(16376 16376 16376) (-16376 16376 16376) (-16376 16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "26" + "plane" "(16376 -16376 -16376) (-16376 -16376 -16376) (-16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "25" + "plane" "(1024 1024 -1024) (1024 -1024 -1024) (-1024 -1024 -1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 211 240" + "visgroupshown" "1" + "visgroupautoshown" "1" + "cordonsolid" "1" + } + } + solid + { + "id" "16" + side + { + "id" "36" + "plane" "(-16376 16376 16376) (-16376 -16376 16376) (-16376 -16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "35" + "plane" "(16376 16376 16376) (-16376 16376 16376) (-16376 16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "34" + "plane" "(16376 -16376 -16376) (-16376 -16376 -16376) (-16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "33" + "plane" "(-1024 1024 1024) (1024 1024 1024) (1024 -1024 1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "32" + "plane" "(-1024 -1024 -1024) (1024 -1024 -1024) (1024 1024 -1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "31" + "plane" "(-1024 -1024 -1024) (-1024 -1024 1024) (-1024 1024 1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 211 240" + "visgroupshown" "1" + "visgroupautoshown" "1" + "cordonsolid" "1" + } + } + solid + { + "id" "18" + side + { + "id" "42" + "plane" "(16376 16376 -16376) (16376 -16376 -16376) (16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "41" + "plane" "(16376 16376 16376) (-16376 16376 16376) (-16376 16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "40" + "plane" "(16376 -16376 -16376) (-16376 -16376 -16376) (-16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "39" + "plane" "(-1024 1024 1024) (1024 1024 1024) (1024 -1024 1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "38" + "plane" "(-1024 -1024 -1024) (1024 -1024 -1024) (1024 1024 -1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "37" + "plane" "(1024 -1024 1024) (1024 -1024 -1024) (1024 1024 -1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 211 240" + "visgroupshown" "1" + "visgroupautoshown" "1" + "cordonsolid" "1" + } + } + solid + { + "id" "20" + side + { + "id" "48" + "plane" "(16376 16376 16376) (-16376 16376 16376) (-16376 16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "47" + "plane" "(-1024 1024 1024) (1024 1024 1024) (1024 -1024 1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "46" + "plane" "(-1024 -1024 -1024) (1024 -1024 -1024) (1024 1024 -1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "45" + "plane" "(-1024 1024 1024) (-1024 -1024 1024) (-1024 -1024 -1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "44" + "plane" "(1024 1024 -1024) (1024 -1024 -1024) (1024 -1024 1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "43" + "plane" "(-1024 1024 -1024) (-1024 1024 1024) (1024 1024 1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 211 240" + "visgroupshown" "1" + "visgroupautoshown" "1" + "cordonsolid" "1" + } + } + solid + { + "id" "22" + side + { + "id" "54" + "plane" "(16376 -16376 -16376) (-16376 -16376 -16376) (-16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "53" + "plane" "(-1024 1024 1024) (1024 1024 1024) (1024 -1024 1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "52" + "plane" "(-1024 -1024 -1024) (1024 -1024 -1024) (1024 1024 -1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "51" + "plane" "(-1024 1024 1024) (-1024 -1024 1024) (-1024 -1024 -1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "50" + "plane" "(1024 1024 -1024) (1024 -1024 -1024) (1024 -1024 1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "49" + "plane" "(-1024 -1024 1024) (-1024 -1024 -1024) (1024 -1024 -1024)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 211 240" + "visgroupshown" "1" + "visgroupautoshown" "1" + "cordonsolid" "1" + } + } +} +cameras +{ + "activecamera" "-1" +} +cordon +{ + "mins" "(-1024 -1024 -1024)" + "maxs" "(1024 1024 1024)" + "active" "1" +} diff --git a/tests/mapsrc/Hammer/Team Fortress 2/test_physcollide.log b/tests/mapsrc/Hammer/Team Fortress 2/test_physcollide.log new file mode 100644 index 00000000..feaca22d --- /dev/null +++ b/tests/mapsrc/Hammer/Team Fortress 2/test_physcollide.log @@ -0,0 +1,126 @@ + + + +materialPath: D:\SteamLibrary\steamapps\common\Team Fortress 2\tf\materials +Loading e:\mod\tf2\mapsrc\_test_maps\test_physcollide.vmf +fixing up env_cubemap materials on brush sides... +0...1...2...3...4...5...6...7...8...9...100...1...2...3...4...5...6...7...8...9...10Processing areas...done (0) +Building Faces...done (0) +FixTjuncs... +PruneNodes... +WriteBSP... +done (0) +writing e:\mod\tf2\mapsrc\_test_maps\test_physcollide.prt...Building visibility clusters... +done (0) +*** Error: Skybox vtf files for skybox/sky_tf2_04 weren't compiled with the same size texture and/or same flags! +Can't load skybox file skybox/sky_tf2_04 to build the default cubemap! +*** Error: Skybox vtf files for skybox/sky_tf2_04 weren't compiled with the same size texture and/or same flags! +Can't load skybox file skybox/sky_tf2_04 to build the default cubemap! +Finding displacement neighbors... +Finding lightmap sample positions... +Displacement Alpha : 0...1...2...3...4...5...6...7...8...9...10 +Building Physics collision data... +done (0) (3807 bytes) +Placing detail props : 0...1...2...3...4...5...6...7...8...9...10 +Compacting texture/material tables... +Reduced 16 texinfos to 10 +Reduced 4 texdatas to 4 (122 bytes to 122) +Writing e:\mod\tf2\mapsrc\_test_maps\test_physcollide.bsp +MSG_FILEWRITE - Filesystem was asked to write to 'e:\mod\tf2\mapsrc\_test_maps\test_physcollide.bsp', but we don't own that location. Allowing. +ZIP Output overshot buffer estimate: Estimated 0, actual 54 +0 seconds elapsed + + + +8 threads +reading e:\mod\tf2\mapsrc\_test_maps\test_physcollide.bsp +reading e:\mod\tf2\mapsrc\_test_maps\test_physcollide.prt + 16 portalclusters + 32 numportals +0...1...2...3...4...5...6...7...8...9...10Optimized: 0 visible clusters (0.00%) +Total clusters visible: 224 +Average clusters visible: 14 +Building PAS... +Average clusters audible: 16 +visdatasize:196 compressed from 256 +writing e:\mod\tf2\mapsrc\_test_maps\test_physcollide.bsp +MSG_FILEWRITE - Filesystem was asked to write to 'e:\mod\tf2\mapsrc\_test_maps\test_physcollide.bsp', but we don't own that location. Allowing. +ZIP Output overshot buffer estimate: Estimated 0, actual 54 +0 seconds elapsed + + + +[Reading texlights from 'lights.rad'] +[56 texlights parsed from 'lights.rad'] + +Loading e:\mod\tf2\mapsrc\_test_maps\test_physcollide.bsp +44 faces +20252 square feet [2916352.00 square inches] +0 Displacements +0 Square Feet [0.00 Square Inches] +44 patches before subdivision +564 patches after subdivision +0 direct lights +0...1...2...3...4...5...6...7...8...9...100...1...2...3...4...5...6...7...8...9...10transfers 176, max 14 +transfer lists: 0.0 megs +0...1...2...3...4...5...6...7...8...9...10 Bounce #1 added RGB(0, 0, 0) +Build Patch/Sample Hash Table(s).....Done<0.0000 sec> +0...1...2...3...4...5...6...7...8...9...10FinalLightFace Done +0 of 0 (0% of) surface lights went in leaf ambient cubes. +0...1...2...3...4...5...6...7...8...9...10Writing leaf ambient...done +Ready to Finish + +Object names Objects/Maxobjs Memory / Maxmem Fullness +------------ --------------- --------------- -------- +models 3/1024 144/49152 ( 0.3%) +brushes 9/8192 108/98304 ( 0.1%) +brushsides 54/65536 432/524288 ( 0.1%) +planes 176/65536 3520/1310720 ( 0.3%) +vertexes 69/65536 828/786432 ( 0.1%) +nodes 83/65536 2656/2097152 ( 0.1%) +texinfos 10/12288 720/884736 ( 0.1%) +texdata 4/2048 128/65536 ( 0.2%) +dispinfos 0/0 0/0 ( 0.0%) +disp_verts 0/0 0/0 ( 0.0%) +disp_tris 0/0 0/0 ( 0.0%) +disp_lmsamples 0/0 0/0 ( 0.0%) +faces 44/65536 2464/3670016 ( 0.1%) +hdr faces 0/65536 0/3670016 ( 0.0%) +origfaces 24/65536 1344/3670016 ( 0.0%) +leaves 87/65536 2784/2097152 ( 0.1%) +leaffaces 64/65536 128/131072 ( 0.1%) +leafbrushes 148/65536 296/131072 ( 0.2%) +areas 2/256 16/2048 ( 0.8%) +surfedges 272/512000 1088/2048000 ( 0.1%) +edges 149/256000 596/1024000 ( 0.1%) +LDR worldlights 0/8192 0/720896 ( 0.0%) +HDR worldlights 0/8192 0/720896 ( 0.0%) +leafwaterdata 0/32768 0/393216 ( 0.0%) +waterstrips 0/32768 0/327680 ( 0.0%) +waterverts 0/65536 0/786432 ( 0.0%) +waterindices 0/65536 0/131072 ( 0.0%) +cubemapsamples 0/1024 0/16384 ( 0.0%) +overlays 0/512 0/180224 ( 0.0%) +LDR lightdata [variable] 6240/0 ( 0.0%) +HDR lightdata [variable] 0/0 ( 0.0%) +visdata [variable] 196/16777216 ( 0.0%) +entdata [variable] 796/393216 ( 0.2%) +LDR ambient table 87/65536 348/262144 ( 0.1%) +HDR ambient table 87/65536 348/262144 ( 0.1%) +LDR leaf ambient 28/65536 784/1835008 ( 0.0%) +HDR leaf ambient 87/65536 2436/1835008 ( 0.1%) +occluders 0/0 0/0 ( 0.0%) +occluder polygons 0/0 0/0 ( 0.0%) +occluder vert ind 0/0 0/0 ( 0.0%) +detail props [variable] 1/12 ( 8.3%) +static props [variable] 1/12 ( 8.3%) +pakfile [variable] 54/0 ( 0.0%) +physics [variable] 3807/4194304 ( 0.1%) +physics terrain [variable] 2/1048576 ( 0.0%) + +Level flags = 0 + +Total triangle count: 88 +Writing e:\mod\tf2\mapsrc\_test_maps\test_physcollide.bsp +ZIP Output overshot buffer estimate: Estimated 0, actual 54 +0 seconds elapsed diff --git a/tests/mapsrc/Hammer/Team Fortress 2/test_physcollide.prt b/tests/mapsrc/Hammer/Team Fortress 2/test_physcollide.prt new file mode 100644 index 00000000..8e7bd733 --- /dev/null +++ b/tests/mapsrc/Hammer/Team Fortress 2/test_physcollide.prt @@ -0,0 +1,35 @@ +PRT1 +16 +32 +4 0 8 (256 0 512 ) (64 0 512 ) (64 0 -512 ) (256 0 -512 ) +4 0 2 (64 0 64 ) (64 0 512 ) (64 64 512 ) (64 64 64 ) +4 0 3 (64 64 -512 ) (64 0 -512 ) (64 0 -64 ) (64 64 -64 ) +4 0 1 (64 256 512 ) (64 256 -512 ) (64 64 -512 ) (64 64 512 ) +4 1 4 (0 64 512 ) (0 256 512 ) (0 256 -512 ) (0 64 -512 ) +4 1 2 (64 64 64 ) (64 64 512 ) (0 64 512 ) (0 64 64 ) +4 1 3 (0 64 -512 ) (64 64 -512 ) (64 64 -64 ) (0 64 -64 ) +4 2 9 (64 0 512 ) (0 0 512 ) (0 0 64 ) (64 0 64 ) +4 2 5 (0 0 64 ) (0 0 512 ) (0 64 512 ) (0 64 64 ) +4 3 10 (0 0 -64 ) (0 0 -512 ) (64 0 -512 ) (64 0 -64 ) +4 3 6 (0 0 -512 ) (0 0 -64 ) (0 64 -64 ) (0 64 -512 ) +4 4 5 (-64 64 512 ) (-64 64 64 ) (0 64 64 ) (0 64 512 ) +4 4 6 (-64 64 -64 ) (-64 64 -512 ) (0 64 -512 ) (0 64 -64 ) +4 4 7 (-64 256 512 ) (-64 256 -512 ) (-64 64 -512 ) (-64 64 512 ) +4 5 12 (0 0 64 ) (0 0 512 ) (-64 0 512 ) (-64 0 64 ) +4 5 7 (-64 0 64 ) (-64 0 512 ) (-64 64 512 ) (-64 64 64 ) +4 6 13 (0 0 -512 ) (0 0 -64 ) (-64 0 -64 ) (-64 0 -512 ) +4 6 7 (-64 64 -512 ) (-64 0 -512 ) (-64 0 -64 ) (-64 64 -64 ) +4 7 15 (-64 0 512 ) (-256 0 512 ) (-256 0 -512 ) (-64 0 -512 ) +4 8 9 (64 -64 64 ) (64 -64 512 ) (64 0 512 ) (64 0 64 ) +4 8 10 (64 0 -512 ) (64 -64 -512 ) (64 -64 -64 ) (64 0 -64 ) +4 8 11 (64 -64 -512 ) (64 -256 -512 ) (64 -256 512 ) (64 -64 512 ) +4 9 12 (0 0 512 ) (0 0 64 ) (0 -64 64 ) (0 -64 512 ) +4 9 11 (64 -64 64 ) (64 -64 512 ) (0 -64 512 ) (0 -64 64 ) +4 10 13 (0 0 -64 ) (0 0 -512 ) (0 -64 -512 ) (0 -64 -64 ) +4 10 11 (0 -64 -512 ) (64 -64 -512 ) (64 -64 -64 ) (0 -64 -64 ) +4 11 14 (0 -64 -512 ) (0 -256 -512 ) (0 -256 512 ) (0 -64 512 ) +4 12 15 (-64 -64 64 ) (-64 -64 512 ) (-64 0 512 ) (-64 0 64 ) +4 12 14 (-64 -64 512 ) (-64 -64 64 ) (0 -64 64 ) (0 -64 512 ) +4 13 14 (-64 -64 -64 ) (-64 -64 -512 ) (0 -64 -512 ) (0 -64 -64 ) +4 13 15 (-64 0 -512 ) (-64 -64 -512 ) (-64 -64 -64 ) (-64 0 -64 ) +4 14 15 (-64 -64 -512 ) (-64 -256 -512 ) (-64 -256 512 ) (-64 -64 512 ) diff --git a/tests/mapsrc/Hammer/Team Fortress 2/test_physcollide.vmf b/tests/mapsrc/Hammer/Team Fortress 2/test_physcollide.vmf new file mode 100644 index 00000000..cb59af58 --- /dev/null +++ b/tests/mapsrc/Hammer/Team Fortress 2/test_physcollide.vmf @@ -0,0 +1,776 @@ +versioninfo +{ + "editorversion" "400" + "editorbuild" "8610" + "mapversion" "1" + "formatversion" "100" + "prefab" "0" +} +visgroups +{ +} +viewsettings +{ + "bSnapToGrid" "1" + "bShowGrid" "1" + "bShowLogicalGrid" "0" + "nGridSpacing" "256" + "bShow3DGrid" "0" +} +world +{ + "id" "1" + "mapversion" "1" + "classname" "worldspawn" + "skyname" "sky_tf2_04" + "maxpropscreenwidth" "-1" + "detailvbsp" "detail_2fort.vbsp" + "detailmaterial" "detail/detailsprites_2fort" + solid + { + "id" "2" + side + { + "id" "1" + "plane" "(-64 64 64) (64 64 64) (64 -64 64)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01BLU" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "2" + "plane" "(-64 -64 -64) (64 -64 -64) (64 64 -64)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01BLU" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "3" + "plane" "(-64 64 64) (-64 -64 64) (-64 -64 -64)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01BLU" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "4" + "plane" "(64 64 -64) (64 -64 -64) (64 -64 64)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01BLU" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "5" + "plane" "(64 64 64) (-64 64 64) (-64 64 -64)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01BLU" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "6" + "plane" "(64 -64 -64) (-64 -64 -64) (-64 -64 64)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01BLU" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 133 138" + "visgroupshown" "1" + "visgroupautoshown" "1" + } + } + solid + { + "id" "29" + side + { + "id" "48" + "plane" "(-16376 16376 16376) (16376 16376 16376) (16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "47" + "plane" "(-16376 16376 16376) (-16376 -16376 16376) (-16376 -16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "46" + "plane" "(16376 16376 -16376) (16376 -16376 -16376) (16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "45" + "plane" "(16376 16376 16376) (-16376 16376 16376) (-16376 16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "44" + "plane" "(16376 -16376 -16376) (-16376 -16376 -16376) (-16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "43" + "plane" "(256 -256 512) (256 256 512) (-256 256 512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 214 227" + "visgroupshown" "1" + "visgroupautoshown" "1" + "cordonsolid" "1" + } + } + solid + { + "id" "31" + side + { + "id" "54" + "plane" "(-16376 -16376 -16376) (16376 -16376 -16376) (16376 16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "53" + "plane" "(-16376 16376 16376) (-16376 -16376 16376) (-16376 -16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "52" + "plane" "(16376 16376 -16376) (16376 -16376 -16376) (16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "51" + "plane" "(16376 16376 16376) (-16376 16376 16376) (-16376 16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "50" + "plane" "(16376 -16376 -16376) (-16376 -16376 -16376) (-16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "49" + "plane" "(256 256 -512) (256 -256 -512) (-256 -256 -512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 214 227" + "visgroupshown" "1" + "visgroupautoshown" "1" + "cordonsolid" "1" + } + } + solid + { + "id" "33" + side + { + "id" "60" + "plane" "(-16376 16376 16376) (-16376 -16376 16376) (-16376 -16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "59" + "plane" "(16376 16376 16376) (-16376 16376 16376) (-16376 16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "58" + "plane" "(16376 -16376 -16376) (-16376 -16376 -16376) (-16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "57" + "plane" "(-256 256 512) (256 256 512) (256 -256 512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "56" + "plane" "(-256 -256 -512) (256 -256 -512) (256 256 -512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "55" + "plane" "(-256 -256 -512) (-256 -256 512) (-256 256 512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 214 227" + "visgroupshown" "1" + "visgroupautoshown" "1" + "cordonsolid" "1" + } + } + solid + { + "id" "35" + side + { + "id" "66" + "plane" "(16376 16376 -16376) (16376 -16376 -16376) (16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "65" + "plane" "(16376 16376 16376) (-16376 16376 16376) (-16376 16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "64" + "plane" "(16376 -16376 -16376) (-16376 -16376 -16376) (-16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "63" + "plane" "(-256 256 512) (256 256 512) (256 -256 512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "62" + "plane" "(-256 -256 -512) (256 -256 -512) (256 256 -512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "61" + "plane" "(256 -256 512) (256 -256 -512) (256 256 -512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 214 227" + "visgroupshown" "1" + "visgroupautoshown" "1" + "cordonsolid" "1" + } + } + solid + { + "id" "37" + side + { + "id" "72" + "plane" "(16376 16376 16376) (-16376 16376 16376) (-16376 16376 -16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "71" + "plane" "(-256 256 512) (256 256 512) (256 -256 512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "70" + "plane" "(-256 -256 -512) (256 -256 -512) (256 256 -512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "69" + "plane" "(-256 256 512) (-256 -256 512) (-256 -256 -512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "68" + "plane" "(256 256 -512) (256 -256 -512) (256 -256 512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "67" + "plane" "(-256 256 -512) (-256 256 512) (256 256 512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 214 227" + "visgroupshown" "1" + "visgroupautoshown" "1" + "cordonsolid" "1" + } + } + solid + { + "id" "39" + side + { + "id" "78" + "plane" "(16376 -16376 -16376) (-16376 -16376 -16376) (-16376 -16376 16376)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "77" + "plane" "(-256 256 512) (256 256 512) (256 -256 512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "76" + "plane" "(-256 -256 -512) (256 -256 -512) (256 256 -512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "75" + "plane" "(-256 256 512) (-256 -256 512) (-256 -256 -512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "74" + "plane" "(256 256 -512) (256 -256 -512) (256 -256 512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "73" + "plane" "(-256 -256 512) (-256 -256 -512) (256 -256 -512)" + "material" "TOOLS/TOOLSSKYBOX" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "0 214 227" + "visgroupshown" "1" + "visgroupautoshown" "1" + "cordonsolid" "1" + } + } +} +entity +{ + "id" "7" + "classname" "func_brush" + "disablereceiveshadows" "0" + "disableshadows" "0" + "InputFilter" "0" + "invert_exclusion" "0" + "origin" "0 0 -128" + "renderamt" "255" + "rendercolor" "255 255 255" + "renderfx" "0" + "rendermode" "0" + "solidbsp" "0" + "Solidity" "0" + "spawnflags" "2" + "StartDisabled" "0" + "vrad_brush_cast_shadows" "0" + solid + { + "id" "5" + side + { + "id" "36" + "plane" "(-64 64 -64) (64 64 -64) (64 -64 -64)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01RED" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "35" + "plane" "(-64 -64 -192) (64 -64 -192) (64 64 -192)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01RED" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "34" + "plane" "(-64 64 -64) (-64 -64 -64) (-64 -64 -192)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01RED" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "33" + "plane" "(64 64 -192) (64 -64 -192) (64 -64 -64)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01RED" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "32" + "plane" "(64 64 -64) (-64 64 -64) (-64 64 -192)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01RED" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "31" + "plane" "(64 -64 -192) (-64 -64 -192) (-64 -64 -64)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01RED" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "220 30 220" + "visgroupshown" "1" + "visgroupautoshown" "1" + } + } + editor + { + "color" "220 30 220" + "visgroupshown" "1" + "visgroupautoshown" "1" + "logicalpos" "[0 1500]" + } +} +entity +{ + "id" "18" + "classname" "trigger_hurt" + "damage" "10" + "damagecap" "20" + "damagemodel" "0" + "damagetype" "0" + "effects" "0" + "nodmgforce" "0" + "origin" "0 0 128" + "spawnflags" "1" + "StartDisabled" "0" + solid + { + "id" "4" + side + { + "id" "42" + "plane" "(-64 64 192) (64 64 192) (64 -64 192)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01GREEN" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "41" + "plane" "(-64 -64 64) (64 -64 64) (64 64 64)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01GREEN" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 -1 0 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "40" + "plane" "(-64 64 192) (-64 -64 192) (-64 -64 64)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01GREEN" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "39" + "plane" "(64 64 64) (64 -64 64) (64 -64 192)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01GREEN" + "uaxis" "[0 1 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "38" + "plane" "(64 64 192) (-64 64 192) (-64 64 64)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01GREEN" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + side + { + "id" "37" + "plane" "(64 -64 64) (-64 -64 64) (-64 -64 192)" + "material" "CUSTOMDEV/DEV_MEASUREGENERIC01GREEN" + "uaxis" "[1 0 0 0] 0.25" + "vaxis" "[0 0 -1 0] 0.25" + "rotation" "0" + "lightmapscale" "16" + "smoothing_groups" "0" + } + editor + { + "color" "220 30 220" + "visgroupshown" "1" + "visgroupautoshown" "1" + } + } + editor + { + "color" "220 30 220" + "visgroupshown" "1" + "visgroupautoshown" "1" + "logicalpos" "[0 2000]" + } +} +cameras +{ + "activecamera" "-1" +} +cordon +{ + "mins" "(-256 -256 -512)" + "maxs" "(256 256 512)" + "active" "1" +} diff --git a/tests/test_bsplump.py b/tests/test_bsplump.py index a9cef7eb..ed933ef7 100644 --- a/tests/test_bsplump.py +++ b/tests/test_bsplump.py @@ -3,12 +3,12 @@ from bsp_tool import load_bsp, lumps from bsp_tool.branches.id_software import quake, quake3 -# TODO: use maplist.installed_games + tests/maps/*.bsp global bsps -bsps = {"test2": load_bsp("tests/maps/test2.bsp"), - "upward": load_bsp("tests/maps/pl_upward.bsp"), - "bigbox": load_bsp("tests/maps/test_bigbox.bsp")} -# NOTE: only orange_box ValveBsp & quake3 IdTechBsp available to test +# TODO: use maplist.installed_games to grab .bsps to test +bsps = {"mp_lobby": load_bsp("tests/maps/Quake 3 Arena/mp_lobby.bsp"), + "test2": load_bsp("tests/maps/Team Fortress 2/test2.bsp"), + "test_displacement_decompile": load_bsp("tests/maps/Team Fortress 2/test_displacement_decompile.bsp"), + "test_physcollide": load_bsp("tests/maps/Team Fortress 2/test_physcollide.bsp")} class TestRawBspLump: @@ -16,7 +16,8 @@ class TestRawBspLump: # TODO: generate raw lumps, since the end goal is to have none # -- or maybe target lightmaps here instead raw_lumps = [bsps["test2"].VISIBILITY, - bsps["upward"].VISIBILITY] + # NOTE: test_displacement_decompile has a leak (no VISIBILITY lump) + bsps["test_physcollide"].VISIBILITY] def test_its_raw(self): for lump in self.raw_lumps: @@ -47,7 +48,7 @@ def test_list_conversion(self): def test_indexing(self): for map_name in bsps: lump = bsps[map_name].VERTICES - LumpClass = quake.Vertex if map_name != "bigbox" else quake3.Vertex + LumpClass = quake.Vertex if map_name != "mp_lobby" else quake3.Vertex assert isinstance(lump[0], LumpClass), f"{map_name} failed" assert isinstance(lump[:1], list), f"{map_name} failed" assert len(lump[:1]) == 1, f"{map_name} failed" diff --git a/tests/test_idtech_bsp.py b/tests/test_idtech_bsp.py index 65ed93b6..6a239549 100644 --- a/tests/test_idtech_bsp.py +++ b/tests/test_idtech_bsp.py @@ -5,23 +5,23 @@ from bsp_tool.branches.id_software import quake3 -bigbox = IdTechBsp(quake3, "tests/maps/test_bigbox.bsp") +mp_lobby = IdTechBsp(quake3, "tests/maps/Quake 3 Arena/mp_lobby.bsp") def test_no_errors(): - assert len(bigbox.loading_errors) == 0 + assert len(mp_lobby.loading_errors) == 0 def test_entities_loaded(): - assert bigbox.ENTITIES[0]["classname"] == "worldspawn" + assert mp_lobby.ENTITIES[0]["classname"] == "worldspawn" # TODO: @pytest.mark.parametrize("LumpClass", ...) def test_face_struct(): # most complex branches.base.MappedArray # TODO: add some asserts, be thorough - header = bigbox.headers["FACES"] + header = mp_lobby.headers["FACES"] assert header.length % struct.calcsize(quake3.Face._format) == 0 - with open(bigbox.file.name, "rb") as file: + with open(mp_lobby.file.name, "rb") as file: file.seek(header.offset) raw_faces = file.read(header.length) @@ -31,11 +31,11 @@ def test_face_struct(): # most complex branches.base.MappedArray # ^ what? -# def test_save_as(): # Not implemented -# with open("tests/maps/test_bigbox.bsp", "rb") as file: +# def test_save_as(): # NotImplemented +# with open("tests/maps/Quake 3 Arena/mp_lobby.bsp", "rb") as file: # original = file.read() -# bigbox.save_as("tests/maps/bigbox_save_test.bsp") -# with open("tests/maps/bigbox_save_test.bsp", "rb") as file: +# bigbox.save_as("tests/maps/Quake 3 Arena/mp_lobby_save_test.bsp") +# with open("tests/maps/Quake 3 Arena/mp_lobby_save_test.bsp", "rb") as file: # saved = file.read() -# os.remove("tests/maps/bigbox_save_test.bsp") +# os.remove("tests/maps/Quake 3 Arena/mp_lobby_save_test.bsp") # assert original == saved diff --git a/tests/test_valve_bsp.py b/tests/test_valve_bsp.py index b3ad5296..b6849300 100644 --- a/tests/test_valve_bsp.py +++ b/tests/test_valve_bsp.py @@ -1,28 +1,31 @@ -# import os - from bsp_tool import ValveBsp from bsp_tool.branches.valve import orange_box -test2 = ValveBsp(orange_box, "tests/maps/test2.bsp") # TF2 -upward = ValveBsp(orange_box, "tests/maps/pl_upward.bsp") # TF2 +# TODO: use maplist to test all Source & GoldSrc dirs (of those installed) +test2 = ValveBsp(orange_box, "tests/maps/Team Fortress 2/test2.bsp") +test_displacement_decompile = ValveBsp(orange_box, "tests/maps/Team Fortress 2/test_displacement_decompile.bsp") +test_physcollide = ValveBsp(orange_box, "tests/maps/Team Fortress 2/test_physcollide.bsp") +# NOTE: this is incredibly limited def test_no_errors(): assert len(test2.loading_errors) == 0 - assert len(upward.loading_errors) == 0 + assert len(test_displacement_decompile.loading_errors) == 0 + assert len(test_physcollide.loading_errors) == 0 def test_entites_loaded(): assert test2.ENTITIES[0]["classname"] == "worldspawn" - assert upward.ENTITIES[0]["classname"] == "worldspawn" + assert test_displacement_decompile.ENTITIES[0]["classname"] == "worldspawn" + assert test_physcollide.ENTITIES[0]["classname"] == "worldspawn" -# def test_save_as(): # Not implemented -# with open("tests/maps/test2.bsp", "rb") as file: +# def test_save_as(): # NotImplemented +# with open("tests/maps/Team Fortress 2/test2.bsp", "rb") as file: # original = file.read() -# test2.save_as("tests/maps/test2_save_test.bsp") -# with open("tests/maps/test2_save_test.bsp", "rb") as file: +# test2.save_as("tests/maps/Team Fortress 2/test2_save_test.bsp") +# with open("tests/maps/Team Fortress 2/test2_save_test.bsp", "rb") as file: # saved = file.read() -# os.remove("tests/maps/test2_save_test.bsp") +# os.remove("tests/maps/Team Fortress 2/test2_save_test.bsp") # assert original == saved