Unfreeze SoundManager caches

This commit is contained in:
2020-12-02 17:40:51 -06:00
parent 95bea199ed
commit 8420ccd364

View File

@@ -4,9 +4,9 @@ class IMICFPS
module SoundManager module SoundManager
extend CyberarmEngine::Common extend CyberarmEngine::Common
MASTERS = {}.freeze @masters = {}
EFFECTS = [].freeze @effects = []
PLAYLISTS = {}.freeze @playlists = {}
def self.master_volume def self.master_volume
1.0 1.0
@@ -21,10 +21,10 @@ class IMICFPS
end end
def self.load_master(package) def self.load_master(package)
return if MASTERS[package] return if @masters[package]
yaml = YAML.load_file("#{IMICFPS.assets_path}/#{package}/shared/sound/master.yaml") yaml = YAML.load_file("#{IMICFPS.assets_path}/#{package}/shared/sound/master.yaml")
MASTERS[package] = yaml @masters[package] = yaml
end end
def self.sound(package, name) def self.sound(package, name)
@@ -37,7 +37,7 @@ class IMICFPS
def self.sound_data(package, name) def self.sound_data(package, name)
load_master(package) load_master(package)
if master = MASTERS[package] if master = @masters[package]
return master["sounds"].find { |s| s["name"] == name } return master["sounds"].find { |s| s["name"] == name }
end end
@@ -45,11 +45,11 @@ class IMICFPS
end end
def self.sound_effect(klass, options) def self.sound_effect(klass, options)
EFFECTS << klass.new(options) @effects << klass.new(options)
end end
def self.update def self.update
EFFECTS.each { |e| e.update; EFFECTS.delete(e) if e.done? } @effects.each { |e| e.update; @effects.delete(e) if e.done? }
end end
end end
end end