mirror of
https://github.com/SK8-ENGINE/skate-3-rust-engine.git
synced 2026-10-26 19:47:44 +00:00
Replaces our own water placement (water.rs: water collision grouped into bodies, a random 1-2.5 s piece every 0.7-1.3 s that piled up 2-3 deep, which the user heard as overlapping water at the University plaza). Setup (audio manifest v4): - audio_formats: .ems reader (72-byte records) and name_id, Bob Jenkins' lookup8 64-bit hash with the seed the sound ids use; - audio_export: every .ems file with each sound's attributes from the disc's skatercollections emitter class 0xF0CEF367088EFFF8 (volume, bank, patch selector, volume type, falloff), resolved through parents; decodes every bank the sfx_*/skateschool emitters place (100 banks; all 486 sound emitters resolve to a bank on the disc). Game (game_audio/emitters.rs, behaviour taken from TU3): - sphere or ellipsoid (semi-axes = extents along forward/up/side), inner core at full level, level = volume x falloff ((1-d)^2, 1-d or flat); - at most 5 emitters, in discovery order, released when the listener leaves; - each water bank plays its program's measured pattern (two-voice relay of shuffled one-shots or one loop, with its level/pitch movement) until the AEMS evaluator is ported. Verified muted in game: University plaza starts water_fountain and the channel fountains_waterlaps_left; Aletown canal fountains_waterlaps_left.