1,096 comment lines become 372 across 31 files; the code is unchanged. Dropped as false or stale: - the module table, which missed 8 of the 44 modules; - "cacheable forever" for names, which a pet rename breaks; - "only failures get a packet", though SMSG_BUY_ITEM answers a buy; - a go_target parameter that does not exist; - "three" cast shapes, where there are five. vmangos line citations now name the function or the current lines. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
26 lines
834 B
Rust
26 lines
834 B
Rust
//! The tutorial system's sends.
|
|
|
|
use anyhow::Result;
|
|
|
|
use crate::messages::{self, opcode};
|
|
|
|
use super::WorldWriter;
|
|
|
|
impl WorldWriter {
|
|
/// `CMSG_TUTORIAL_FLAG`, a 0-based id: sent by `FlagTutorial` and six auto-acknowledge sites,
|
|
/// only when that tutorial's bit was clear.
|
|
pub fn tutorial_flag(&mut self, id: u32) -> Result<()> {
|
|
self.send(opcode::CMSG_TUTORIAL_FLAG, &messages::tutorial_flag(id))
|
|
}
|
|
|
|
/// `CMSG_TUTORIAL_CLEAR`, empty: `ClearTutorials()`, marking every tutorial acknowledged.
|
|
pub fn tutorial_clear(&mut self) -> Result<()> {
|
|
self.send(opcode::CMSG_TUTORIAL_CLEAR, &[])
|
|
}
|
|
|
|
/// `CMSG_TUTORIAL_RESET`, empty: `ResetTutorials()`, forgetting every tutorial.
|
|
pub fn tutorial_reset(&mut self) -> Result<()> {
|
|
self.send(opcode::CMSG_TUTORIAL_RESET, &[])
|
|
}
|
|
}
|