[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_moverFeatures
support for parsing save-games. This feature allows phoenix to fully parse original save-games from their directory
structure. See
save_game.hhfor additional information.archive_reader::print_structureto 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_byteswhich 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_readernow has an API to easily check whether it's a save-game or not (archive_reader::is_save_game).archive_reader::nextandarchive_reader::visit_objectsfor more details.std::shared_ptrcopies.null-instance insteadChanges
script::find_symbol_by_nameand everywhere the script and VM require a symbol name parameter now takea
std::string_viewinstead ofstd::string.symbol::get_stringnow returns astd::string_viewinstead of astd::stringsize_tinstead of auint8_tVObs and different game versions
bsp_treeleaf polygons are now stored in astd::unordered_setinstead of astd::vectorforperformance reasons. This change improves world parse times by about 6%.
vdfs_signature_errorDeprecations
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_modeandvob::camera_alignment: Old and incorrect names forsprite_alignmentandvob::sprite_camera_facing_moderespectively.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
constversions instead.Performance
messages::block_by_namenow makes use of a sorted vector instead of a map lookupstd::setto contain the entries.std::stack. This eliminates unnecessaryheap allocations during runtime and thus improves speed.
bufferin general by about 20%archive_reader::read_object_beginperformance by about 7%Misc
-Wpedanticand-Wshadowfmtlibis 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