Skip to content

ArcDPS bindings v0.8.0

Compare
Choose a tag to compare
@Zerthox Zerthox released this 14 Sep 10:48

Besides internal changes some breaking changes and important additions were made to the the API.

The arcdps_export! macro had its named shortened to only export!. You can opt to either use arcdps::export! or export! directly now.

A handful of relevant enums have been added to the crate. All of them implement a variety of useful traits, for example to convert between them and their primitive numeric counterpart.

Agent and CombatEvent no longer implement Copy in order to be in line with other structs and avoid accidental implicit duplication. You can still use Clone as an explicit way to duplicate.

CombatEvent now holds enums in its affinity, is_activation, is_buff_remove and is_statechange fields rather than primitive numeric values. The iff (if friend/foe) field used in ArcDPS' API has been renamed to affinity in order to avoid confusion with the commonly used term iff meaning "if and only if". RawCombatEvent has been added for the raw API and still has the old numeric values.

Agent & AgentOwned have their _self field renamed to is_self as a more appropriate name.

Raw structs & types are no longer exported from the root of the crate. You may access them under arcdps::api alongside the other structs.

Raw callbacks have been adjusted to use types from the windows crate.

ArcDPS' exports now have proper safe abstractions and are available under arcdps::exports. You can find raw versions of them in arcdps::exports::raw.

Unofficial Extras

Support for Unofficial Extras is hidden behind the extras feature now. After enabling it, everything specific to Unofficial Extras is available in the arcdps::extras module.

The names of the callbacks have been shortened from for example unofficial_extras_squad_update to just extras_squad_update.

The extras_init function has had its signature changed. It now receives ExtrasAddonInfo as a rough equivalent of the struct used in the raw Unofficial Extras API. The account name of the current player is passed separately as second parameter.

The bindings are updated to support more recent versions of Unofficial Extras and the added callbacks.

Logging

Logging is hidden behind the log feature now. It will only log to ArcDPS' log window and no longer includes filename and line numbers in the messages. You can log messages to the arcdps.log file using log_to_file (or its corresponding raw version).