diff options
author | Daniel Schadt <kingdread@gmx.de> | 2018-10-10 17:52:46 +0200 |
---|---|---|
committer | Daniel Schadt <kingdread@gmx.de> | 2018-10-10 17:52:46 +0200 |
commit | 786f375dd7cdcc6a92e3c7f4b027826629cd9baf (patch) | |
tree | b67cf0618e43d34685cccade48c5830e895d820d /src/statistics/gamedata.rs | |
parent | 0ebd3889b1cb62cfabbe01b6e953bfc02c8e6575 (diff) | |
download | evtclib-786f375dd7cdcc6a92e3c7f4b027826629cd9baf.tar.gz evtclib-786f375dd7cdcc6a92e3c7f4b027826629cd9baf.tar.bz2 evtclib-786f375dd7cdcc6a92e3c7f4b027826629cd9baf.zip |
update to latest arcdps
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.
Diffstat (limited to 'src/statistics/gamedata.rs')
-rw-r--r-- | src/statistics/gamedata.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/statistics/gamedata.rs b/src/statistics/gamedata.rs index 6f370d0..faa8cb3 100644 --- a/src/statistics/gamedata.rs +++ b/src/statistics/gamedata.rs @@ -35,7 +35,7 @@ pub const XERA_PHASE2_ID: u16 = 0x3F9E; /// * maximum number of stacks /// * boon type (intensity or duration) #[derive(Debug, Clone, PartialEq, Eq)] -pub struct Boon(pub u16, pub &'static str, pub u32, pub BoonType); +pub struct Boon(pub u32, pub &'static str, pub u32, pub BoonType); impl Boon { pub fn create_queue(&self) -> BoonQueue { @@ -83,7 +83,7 @@ pub static BOONS: &[Boon] = &[ Boon(738, "Vulnerability", 25, BoonType::Intensity), ]; -pub fn get_boon(boon_id: u16) -> Option<&'static Boon> { +pub fn get_boon(boon_id: u32) -> Option<&'static Boon> { BOONS.iter().find(|b| b.0 == boon_id) } @@ -91,19 +91,19 @@ pub fn get_boon(boon_id: u16) -> Option<&'static Boon> { #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub enum Trigger { /// Triggers when the given boon is applied to the player. - BoonPlayer(u16), + BoonPlayer(u32), /// Triggers when the given boon is applied to the boss. - BoonBoss(u16), + BoonBoss(u32), /// Triggers when the given skill is used by a player. - SkillByPlayer(u16), + SkillByPlayer(u32), /// Triggers when the given skill is used on a player. - SkillOnPlayer(u16), + SkillOnPlayer(u32), /// Triggers when the given boon is stripped from an enemy. - BoonStripped(u16), + BoonStripped(u32), /// Triggers when the given entity spawned. Spawn(u16), /// Triggers when the boss finishes channeling the given skill. - ChannelComplete(u16), + ChannelComplete(u32), } /// Struct describing a boss mechanic. |