settings live in one registry, and the net drain starts to peel
- the CVars are one engine-side table that outlives every interface reload: a change fires its observer, the eight latched rows wait for RestartGx, and /console gains set, cvar_reset, cvar_default, cvarlist and help (2303) - every push into the interface runs in one feed phase after the net drain and before the tick, held by a structural test on the built schedule (2304) - subsystems own their packet handlers, dispatched in packet order; the auction house is the first family out of the 273-arm drain (2305) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -146,7 +146,14 @@ impl LoginRefusal {
|
||||
|
||||
/// One decoded event from the world stream. Carries only primitives + the coarse [`EntityKind`]
|
||||
/// classification — no wire types leak to the app, and no running state lives here.
|
||||
#[derive(Debug, Clone)]
|
||||
///
|
||||
/// [`SessionEventKind`] is its fieldless twin (one variant per variant, derived): the key the
|
||||
/// app's packet-handler table dispatches on, as the reference's table is keyed by opcode.
|
||||
#[derive(Debug, Clone, strum::EnumDiscriminants)]
|
||||
#[strum_discriminants(
|
||||
name(SessionEventKind),
|
||||
derive(Hash, PartialOrd, Ord, strum::EnumIter, strum::IntoStaticStr)
|
||||
)]
|
||||
pub enum SessionEvent {
|
||||
/// A login attempt progressed to `stage` (decision 0539) — IO-thread-emitted, like
|
||||
/// [`Self::CharacterList`], never wire-decoded.
|
||||
@@ -1609,6 +1616,13 @@ pub enum SessionEvent {
|
||||
},
|
||||
}
|
||||
|
||||
impl SessionEventKind {
|
||||
/// Every kind, in declaration order — for a census that asks "who handles each?".
|
||||
pub fn all() -> impl Iterator<Item = Self> {
|
||||
<Self as strum::IntoEnumIterator>::iter()
|
||||
}
|
||||
}
|
||||
|
||||
/// The result of polling the reader for the next packet's events.
|
||||
pub enum Poll {
|
||||
/// A packet decoded into these events. `events` is **empty** for an opcode we parse but do not
|
||||
|
||||
@@ -15,7 +15,7 @@ pub mod world;
|
||||
pub use auth::AuthReject;
|
||||
pub use events::{
|
||||
decode, CharAction, EntityKind, LoginRefusal, LoginStage, MoveSpeeds, Poll, SessionEnd,
|
||||
SessionEvent,
|
||||
SessionEvent, SessionEventKind,
|
||||
};
|
||||
pub use messages::field;
|
||||
pub use messages::{
|
||||
|
||||
Reference in New Issue
Block a user