[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
-
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