From 702288636c4e407860cc5244d07725794d7b8d04 Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Thu, 29 Aug 2024 20:19:09 +0200 Subject: implement some new events evtclib hasn't kept up too well with the newest things arcdps now reports. This commit at least introduces the correct CbtStateChange variants for all of the new features, and it adds "high level" EventKinds for some of them. There are still plenty of unimplemented ones, but we can get to that later. Since there are multiple "internal use" variants now, FromRawEventError::UnexpectedReplInfo has been renamed to UnexpectedInternalEvent. --- src/raw/types.rs | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) (limited to 'src/raw') diff --git a/src/raw/types.rs b/src/raw/types.rs index 1bc3d08..b272c9b 100644 --- a/src/raw/types.rs +++ b/src/raw/types.rs @@ -191,12 +191,85 @@ pub enum CbtStateChange { /// `src_agent` is agent, `value` is float with percent BreakbarPercent, /// `time` is the start of the error string. + /// + /// In modern arcdps, this is called `CBTS_INTEGRITY`, but we leave it for backward + /// compatibility. Error, /// `src_agent` is the agent, `value` is the tag id + /// + /// In modern arcdps, this is called `CBTS_MARKER`, but we leave it for backward compatibility. Tag, /// `src_agent` is at barrier percent, `dst_agent` is the percentage times 10000 (so 99.5% /// will be 9950). BarrierUpdate, + /// `src_agent` is the species id of the agent that triggered the reset. + StatReset, + /// For extension use, not managed by arcdps. + Extension, + /// For events that are deemed unsafe to report real-time. + /// + /// Should not appear in evtc files. + ApiDelayed, + /// Map instance start. + /// + /// `src_agent` are milliseconds since the instance was created. + InstanceStart, + /// Tick health. + /// + /// `src_agent` is 25 - tickrate, when tickrate <= 20 + RateHealth, + /// No longer used. + Last90BeforeDown, + /// No longer used. + Effect, + /// content id to guid association for volatile types + /// + /// src_agent: (uint8_t*)&src_agent is uint8_t[16] guid of content + /// overstack_value: is of enum contentlocal + IdToGuid, + /// Log boss agent changed. + /// + /// src_agent: species id of agent + /// dst_agent: related to agent + /// value: as uint32_t, server unix timestamp + LogNpcUpdate, + /// Internal use. + IdleEvent, + /// For extension use. + ExtensionCombat, + /// Fractal scale. + /// + /// `src_agent` will be the fractal scale. + FractalScale, + /// Play graphical effect. + /// + /// src_agent: related to agent + /// dst_agent: effect at location of agent (if applicable) + /// value: (float*)&value is float[3], location x/y/z (if not at agent location) + /// iff: (uint32_t*)&iff is uint32_t[1], effect duration + /// buffremove: (uint32_t*)&buffremove is uint32_t[1], trackable id of effect. id dst_agent and location is 0/0/0, effect was stopped + /// is_shields: (int16_t*)&is_shields is int16_t[3], orientation x/y/z, values are original*1000 + /// is_flanking: effect is on a non-static platform + Effect2, + /// Ruleset for self. + /// + /// `src_agent` has bit 0 if PvE, bit 1 if WvW and bit 2 if PvP. + Ruleset, + /// Squad ground markers. + /// + /// src_agent: (float*)&src_agent is float[3], x/y/z of marker location. if values are all zero or infinity, this marker is removed + /// skillid: index of marker eg. 0 is arrow + SquadMarker, + /// Arcdps build info. + /// + /// `src_agent` is a null-terminated string matching the full build string. + ArcBuild, + /// Glider status change. + /// + /// `src_agent` is the agent, `value` 1 is deployed and 0 is stowed. + Glider, + /// `src_agent` is the agent, `value` is the remaining duration. + Stunbreak, } /// Combat buff remove type -- cgit v1.2.3