[release] v1.1.0 #55
lmichaelis
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Oh boy, this is a big one! There are a lot of additions, some changes and also some deprecations here. Also, the
performance of phoenix has improved quite a bit, especially interacting with VDFs and parsing worlds. We've also made
the first steps to making phoenix a shared library by adding support for
cmake --install
(thanks @DaDummy!) whichwill be expanded on in the future. Another cool thing is the new, centralized documentation page for phoenix and
ZenGin internals available at https://phoenix.lmichaelis.de. It's quite bare-bones still but some interesting stuff
has already been moved over.
Anyway, here's the list of changes:
Bugfixes
trigger_mover
Features
support for parsing save-games. This feature allows phoenix to fully parse original save-games from their directory
structure. See
save_game.hh
for additional information.archive_reader::print_structure
to print the contents of an archived object as XML. This is mainlyuseful for debugging, and it only works properly with ASCII and BIN_SAFE archives since BINARY archives don't contain
field names.
archive_reader::read_raw_bytes
which takes the number of bytes to read as aparameter. This works since we normally know how many bytes to parse anyway, otherwise BINARY archives would not work.
archive_reader
now has an API to easily check whether it's a save-game or not (archive_reader::is_save_game
).archive_reader::next
andarchive_reader::visit_objects
for more details.std::shared_ptr
copies.null
-instance insteadChanges
script::find_symbol_by_name
and everywhere the script and VM require a symbol name parameter now takea
std::string_view
instead ofstd::string
.symbol::get_string
now returns astd::string_view
instead of astd::string
size_t
instead of auint8_t
VObs and different game versions
bsp_tree
leaf polygons are now stored in astd::unordered_set
instead of astd::vector
forperformance reasons. This change improves world parse times by about 6%.
vdfs_signature_error
Deprecations
way_net::waypoint(std::string const&)
: This is a broken and slow API which should not be used.archive_reader::read_raw_bytes()
: This API is unsafe and should no longer be used.model_script::parse_binary(...)
: Usemodel_script::parse(...)
instead, it now supports both binaryand text-based scripts.
camera_lock_mode
andvob::camera_alignment
: Old and incorrect names forsprite_alignment
andvob::sprite_camera_facing_mode
respectively.vdf_entry* vdf_entry::find_child(std::string_view) &
andvdf_entry* vdf_file::find_child(std::string_view) &
:Mutating VDF entries is broken, thus these APIs should not be used. Use the
const
versions instead.Performance
messages::block_by_name
now makes use of a sorted vector instead of a map lookupstd::set
to contain the entries.std::stack
. This eliminates unnecessaryheap allocations during runtime and thus improves speed.
buffer
in general by about 20%archive_reader::read_object_begin
performance by about 7%Misc
-Wpedantic
and-Wshadow
fmtlib
is no longer a dependency of phoenixthe phoenix library and ZenGin internals. It can be found at https://phoenix.lmichaelis.de.
This discussion was created from the release [release] v1.1.0.
Beta Was this translation helpful? Give feedback.
All reactions