snake-biscuits / bsp_tool

Python library for analysing .bsp files
GNU General Public License v3.0
102 stars 8 forks source link

Test maps for Static Props #90

Open snake-biscuits opened 1 year ago

snake-biscuits commented 1 year ago

sprp GameLumps are quite diverse, with multiple lump versions To ensure test coverage, we'll have to have at least 1 test map for each version.

Could get tricky, as some engine versions may not have a specific game each Might need to track down some archived tools. Step one is probably going to be writing up a spreadsheet matching versions to games & tools.

We also need to write tests that properly interrogate each test map Including RespawnBsp.external, just in case.

Every Static Prop Version:

snake-biscuits commented 1 year ago

Step One:

TODO: add a request in the Test Maps issue for the branch of each StaticPropClass

NOTE: test map paths start in tests/maps/

StaticPropClass Game Test Map
ace_team.zeno_clash.StaticPropv7 Zeno Clash
nexon.vindictus.StaticPropv6 Vindictus
nexon.vindictus.StaticPropv7 Vindictus
outerlight.outerlight.StaticPropv5 The Ship
outerlight.outerlight.StaticPropv6 Bloody Good Time
respawn.titanfall.StaticPropv12 Titanfall: Online
respawn.titanfall2.StaticPropv13 Titanfall 2
respawn.titanfall_x360.StaticPropv12_x360 Titanfall (Xbox 360)
strata.strata.StaticPropv12
strata.strata.StaticPropv13 Portal: Revolution
utoplanet.merubasu.StaticPropv11 Maerchen Busters
valve.left4dead.StaticPropv8 Left 4 Dead
valve.left4dead2.StaticPropv9 Left 4 Dead 2
valve.orange_box.StaticPropv10 Team Fortress 2 Team Fortress 2/test2.bsp
valve.orange_box_x360.StaticPropv10_x360
valve.orange_box_x360.StaticPropv4_x360
valve.orange_box_x360.StaticPropv5_x360 The Orange Box (Xbox 360) Xbox360/The Orange Box/shack.bsp
valve.orange_box_x360.StaticPropv6_x360
valve.sdk_2013.StaticPropv10
valve.sdk_2013.StaticPropv11
valve.sdk_2013_x360.StaticPropv10_x360
valve.sdk_2013_x360.StaticPropv11_x360
valve.sdk_2013_x360.StaticPropv8_x360
valve.sdk_2013_x360.StaticPropv9_x360 Portal 2 (Xbox 360)
valve.source.StaticPropv4
valve.source.StaticPropv5
valve.source.StaticPropv6
valve.source_filmmaker.StaticPropv10 Source Filmmaker
snake-biscuits commented 1 year ago

Once #68 is mostly done, we should update the StaticPropClasses list to a list of GameLump_SPRPvX We'll also need to support nexon.vindictus69' alternate SPRP (valve.source.StaticPropv6 + StaticPropScales)

snake-biscuits commented 1 year ago

The Ship, Bloody Good Time & SourceFilmMaker all seem to have unique sprp formats Hopefully supporting them won't splinter valve.orange_box too much, but some lump versions may overlap

Left4Dead (Xbox 360) also appears to have a unique SPRPv7 (7*)

IIRC we haven't yet extracted a decent Titanfall Xbox360 SPRP lump, probably a unique format

snake-biscuits commented 1 year ago

Should probably use the MegaTest maplist to generate a table of Game | Branch | SPRP

snake-biscuits commented 11 months ago

Built a valve.orange_box_x360 map, props don't appear in-game

Using the .360.mdl extension in the .vmf doesn't seem to change anything I haven't seen anyone else get static props working on the Xbox360[^dr]

The lump still has data in it though Model names don't appear in the lump Idk, it's wierd man.

[^dr]: Dr. on YouTube: Yeah, that's cool. But can your Xbox do this?

snake-biscuits commented 11 months ago

Built a valve.orange_box_x360 map, props don't appear in-game

All official maps in The Orange Box (Xbox 360) are sprp v5 shack.bsp was compiled with HL2's SDK & is sprp v6

Left 4 Dead (Xbox 360) is sprp v7, L4D2 & Portal 2 are v9 I don't have the other Xbox360 Source Engine titles to compare, yet.

snake-biscuits commented 7 months ago

The latest release of https://github.com/ata4/bspsrc includes support for Portal: Revolution Looks like there's a new strata.strata.StaticPropv13 (valve.sdk_2013.StaticPropv10 + scale: vec3)

Haven't added support for this yet strata.strata.StaticPropv12 was a stepping stone to v13 Upgrades leaves from uint16_t -> uint32_t

Momentum Mod uses v11, so we don't have any v12 maps in the wild to test.

snake-biscuits commented 4 months ago

respawn.titanfall2.GameLump_SPRPv13 might differ from respawn.apex_legends.GameLump_SPRP specifically the Unknown3 struct