aboutsummaryrefslogtreecommitdiff
path: root/src/raw
AgeCommit message (Collapse)Author
2020-05-02implement Hash, Default, PartialEq for raw typesDaniel Schadt
2020-05-02add more documentationDaniel Schadt
2020-05-01add a comment about redundant closuresDaniel Schadt
2020-05-01take readers by valueDaniel Schadt
The API guidelines for Rust state that readers should be taken by value[1]. If the caller wants to re-use the reader, they have to borrow it. This patch adjusts the parsing functions to do just that. [1]: https://rust-lang.github.io/api-guidelines/interoperability.html#generic-readerwriter-functions-take-r-read-and-w-write-by-value-c-rw-value
2020-04-29formatting fixesDaniel Schadt
2020-04-28fix documentation for CbtStatechangeDaniel Schadt
2020-04-28restructure how agents are constructedDaniel Schadt
The old function turned a bit into a mess, so the functionality is now split up.
2020-04-27remove try_traitDaniel Schadt
The .ok_or() method on Option is enough for those two occasions that we don't need to activate the complete try_trait feature just for a very small and questionable ergonomics gain. This also allows us to more easily discern which data exactly was invalid, as the .ok_or() in different places could take different error values. This also allows evtclib to be used on stable now. Some noise is introduced in the diff due to automatically re-formatting the source.
2020-04-04add more eventsDaniel Schadt
The amount of non-properly-implemented events is growing
2020-04-04Use num_derive::FromPrimitive without #[macro_use]Daniel Schadt
2020-04-04switch from quick_error to thiserrorDaniel Schadt
thiserror seems to be the more modern approach that also works with the new Error trait from std.
2019-05-24add support for partially parsing an EVTC fileDaniel Schadt
2019-05-15add guild state changeDaniel Schadt
2019-02-16wrap zip reading in BufReaderDaniel Schadt
2019-02-16implement new state changesDaniel Schadt
2018-10-10add AttackTarget, Targetable, MapId statechangesDaniel Schadt
2018-10-10update to latest arcdpsDaniel Schadt
This comes with several changes: First, the revision header field is now properly parsed and saved, instead of just being hardcoded to zero. This is the first step in allowing newer log files to be parsed. To accommodate this, the Header struct has been extended with the "revision: u8" field. To be able to parse both formats, the CbtEvent struct has been changed. It is now the unification of both the new struct and the old struct, as the changes are pretty minor and mostly concern the parsing itself. The data types have been adjusted, and two fields have been added. Moving fields around does not concern CbtEvent at all. If the struct diverges more from this in the future, some splitting might be introduced, but for now, the change is pretty transparent to other code. During this process, the structs have lost their [repr(C]) property. It was never used, as the structs were not directly involved in C FFI. It has been a relic of the past from earlier iterations. Finally, the parsing function has been changed from parse_event to parse_event_rev0, with the addition of a parse_event_rev1. parse_events now takes the event parsing function as an additional parameter, and parse_file correctly choses the implementation based on the revision number.
2018-09-06make parser more lenientDaniel Schadt
Somehow, new files (after ~2018-08-10) won't parse without this.
2018-09-06add new enum valuesDaniel Schadt
2018-08-02add more wing 1 mechanicsDaniel Schadt
2018-07-09add rudimentary support for new state changesDaniel Schadt
The arcdps update has introduced new state change events, namely BuffInitial, Position and Velocity. It is now possible to track the movements of all players. Unfortunately, this meant that evtclib could not ready any logs created by the new arc version, as the new CbtStateChange was not read correctly. evtclib just returned "Invalid data". This fix adds the new enum variants to the CbtStateChange enum, making it again possible to read files. However, there are no high-level events for those yet, so the conversion will fail.
2018-06-14add support for reading zipped logsDaniel Schadt
2018-05-31cargo fmtDaniel Schadt
2018-04-23add a bit more documentationDaniel Schadt
2018-04-23apply clippy's suggestionsDaniel Schadt
2018-04-23add basic translation to more readable eventsDaniel Schadt
This basically implements the "event logic" as described in the README, though it produces easier-to-digest events. The test binary show 0 failed events on an example log, but of course, not all mechanics are used there, and the parsing logic may very well contain some errors.
2018-04-14Initial commitDaniel Schadt