Skip to content

v0.5.0

Latest
Compare
Choose a tag to compare
@snake-biscuits snake-biscuits released this 01 Aug 12:57
· 95 commits to master since this release

New Status Quo

After almost a year and a half it's time to ship a new version
Massive changes have been made since 0.4.0
So much so I cannot help people using the old version because I forget how it works

Many systems have been either gutted or redesigned
This will probably continue in future:

  • many extensions need some serious refactors (decompile, diff & editor)
  • loading from & saving to files is going to change drastically in the next version

But before making those large changes we should at least ship some stable
So here it is, v0.5.0, the New Status Quo

NOTE: changes are pulled from CHANGELOG.md, which probably misses a bunch of stuff

Changelog

New

  • __init__ methods for all SpecialLumpClasses
  • branches.colour
  • branches.ieee754
    • Float32 BitField reversing helper
  • extensions.editor
    • parse .map & .vmf
    • compare uncompiled maps to .bsp
  • utils
    • binary
    • editor
    • geometry
    • physics
    • texture
  • NexonBsp
    • thanks cso2 big-endian fourCC
  • BSPX lumps can be parsed with bspx.BspX

Changed

  • SpecialLumpClasses & GameLumpClasses refactor
    • new basic __init__ for making your own from scratch
    • loaded from files with from_bytes
  • BspLump refactor
    • new barebones __init__
    • maps bsp lumps with from_header
    • pulled out of streams with from_count
    • lumps.create_RawBspLump will decompress before mapping
    • added append, extend & insert methods to RawBspLump
    • BspLump.find(attr=val) method is now .search()
    • removed .find() method from BasicBspLump
    • allowed implicit changes (e.g. bsp.VERTICES[0].z += 1)
    • __iter__ doesn't update _changes, reducing unnessecary caching
    • TODO: bsp.LUMP[::] creates a copy & doesn't affect / share _changes
    • RawBspLump slices are bytearrays
  • Fractured Source Engine into more branches ("solves" version conflicts of SPRP formats)
  • extensions.archives refactor
    • One script per-developer
    • Placeholders for not-yet-supported archives
    • MeruBasu utoplanet.Apk can extract files
    • Titanfall respawn.Vpk can list files (no extraction)
  • Capturing compiler signatures
    • RespawnBsp MRVN-Radiant signature
      • saved by .save_as
      • parser in extensions.compiler_signature
  • Moved valve_physics to valve.physics
  • RespawnBsp .save_as() can now skip .bsp_lump
  • respawn.ExternalLumpManager now handles .bsp_lump saving
  • added leaves_of_node method to most branch scripts
  • methods of branch scripts are now stored in dict
  • Moved branches.vector to utils.vector

Fixed

  • shared.Entities the following silent failures are now caught by the parser
    • curly braces inside key values
    • multi-line keys
  • shared.PakFile can be edited
    • .as_bytes() correctly includes "end record", without calling .close()

Newly Supported Branches

  • Genesis3D
  • Id Tech 2
    • Qbism
    • Quake 64
  • IW Engine
    • Call of Duty 1 SP Demo: Burnville
    • Call of Duty 1 SP Demo: Dawnville
  • Source Engine
    • Fairy Tale Busters (メルヘソバスターズ)
    • Zeno Clash
  • Titanfall Engine
    • Apex Legends Season 13-18
    • Apex Legends Season 18+
  • Ubertools
    • Star Trek Elite Force II SP Demo

Updated Support

  • Quake
  • Source Engine
    • More dynamic reading of Static Props
    • Split into more branches for Static Prop variants
  • Titanfall Engine
    • Split v50 into it's own branch