mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
293 lines
9.7 KiB
Ruby
293 lines
9.7 KiB
Ruby
def pbStringToAudioFile(str)
|
|
if str[/^(.*)\:\s*(\d+)\s*\:\s*(\d+)\s*$/] # Of the format "XXX: ###: ###"
|
|
file = $1
|
|
volume = $2.to_i
|
|
pitch = $3.to_i
|
|
return RPG::AudioFile.new(file,volume,pitch)
|
|
elsif str[/^(.*)\:\s*(\d+)\s*$/] # Of the format "XXX: ###"
|
|
file = $1
|
|
volume = $2.to_i
|
|
return RPG::AudioFile.new(file,volume,100)
|
|
else
|
|
return RPG::AudioFile.new(str,100,100)
|
|
end
|
|
end
|
|
|
|
# Converts an object to an audio file.
|
|
# str -- Either a string showing the filename or an RPG::AudioFile object.
|
|
# Possible formats for _str_:
|
|
# filename volume and pitch 100
|
|
# filename:volume pitch 100
|
|
# filename:volume:pitch
|
|
# volume -- Volume of the file, up to 100
|
|
# pitch -- Pitch of the file, normally 100
|
|
def pbResolveAudioFile(str,volume=nil,pitch=nil)
|
|
if str.is_a?(String)
|
|
str = pbStringToAudioFile(str)
|
|
str.volume = volume || 100
|
|
str.pitch = pitch || 100
|
|
end
|
|
if str.is_a?(RPG::AudioFile)
|
|
if volume || pitch
|
|
return RPG::AudioFile.new(str.name,volume || str.volume || 100 ,
|
|
pitch || str.pitch || 100)
|
|
else
|
|
return str
|
|
end
|
|
end
|
|
return str
|
|
end
|
|
|
|
################################################################################
|
|
|
|
# Plays a BGM file.
|
|
# param -- Either a string showing the filename
|
|
# (relative to Audio/BGM/) or an RPG::AudioFile object.
|
|
# Possible formats for _param_:
|
|
# filename volume and pitch 100
|
|
# filename:volume pitch 100
|
|
# filename:volume:pitch
|
|
# volume -- Volume of the file, up to 100
|
|
# pitch -- Pitch of the file, normally 100
|
|
def pbBGMPlay(param,volume=nil,pitch=nil)
|
|
return if !param
|
|
param=pbResolveAudioFile(param,volume,pitch)
|
|
if param.name && param.name!=""
|
|
if $game_system && $game_system.respond_to?("bgm_play")
|
|
$game_system.bgm_play(param)
|
|
return
|
|
elsif (RPG.const_defined?(:BGM) rescue false)
|
|
b=RPG::BGM.new(param.name,param.volume,param.pitch)
|
|
if b && b.respond_to?("play")
|
|
b.play
|
|
return
|
|
end
|
|
end
|
|
Audio.bgm_play(canonicalize("Audio/BGM/"+param.name),param.volume,param.pitch)
|
|
end
|
|
end
|
|
|
|
# Fades out or stops BGM playback. 'x' is the time in seconds to fade out.
|
|
def pbBGMFade(x=0.0); pbBGMStop(x);end
|
|
|
|
# Fades out or stops BGM playback. 'x' is the time in seconds to fade out.
|
|
def pbBGMStop(timeInSeconds=0.0)
|
|
if $game_system && timeInSeconds>0.0 && $game_system.respond_to?("bgm_fade")
|
|
$game_system.bgm_fade(timeInSeconds)
|
|
return
|
|
elsif $game_system && $game_system.respond_to?("bgm_stop")
|
|
$game_system.bgm_stop
|
|
return
|
|
elsif (RPG.const_defined?(:BGM) rescue false)
|
|
begin
|
|
(timeInSeconds>0.0) ? RPG::BGM.fade((timeInSeconds*1000).floor) : RPG::BGM.stop
|
|
return
|
|
rescue
|
|
end
|
|
end
|
|
(timeInSeconds>0.0) ? Audio.bgm_fade((timeInSeconds*1000).floor) : Audio.bgm_stop
|
|
end
|
|
|
|
################################################################################
|
|
|
|
# Plays an ME file.
|
|
# param -- Either a string showing the filename
|
|
# (relative to Audio/ME/) or an RPG::AudioFile object.
|
|
# Possible formats for _param_:
|
|
# filename volume and pitch 100
|
|
# filename:volume pitch 100
|
|
# filename:volume:pitch
|
|
# volume -- Volume of the file, up to 100
|
|
# pitch -- Pitch of the file, normally 100
|
|
def pbMEPlay(param,volume=nil,pitch=nil)
|
|
return if !param
|
|
param=pbResolveAudioFile(param,volume,pitch)
|
|
if param.name && param.name!=""
|
|
if $game_system && $game_system.respond_to?("me_play")
|
|
$game_system.me_play(param)
|
|
return
|
|
elsif (RPG.const_defined?(:ME) rescue false)
|
|
b=RPG::ME.new(param.name,param.volume,param.pitch)
|
|
if b && b.respond_to?("play")
|
|
b.play; return
|
|
end
|
|
end
|
|
Audio.me_play(canonicalize("Audio/ME/"+param.name),param.volume,param.pitch)
|
|
end
|
|
end
|
|
|
|
# Fades out or stops ME playback. 'x' is the time in seconds to fade out.
|
|
def pbMEFade(x=0.0); pbMEStop(x);end
|
|
|
|
# Fades out or stops ME playback. 'x' is the time in seconds to fade out.
|
|
def pbMEStop(timeInSeconds=0.0)
|
|
if $game_system && timeInSeconds>0.0 && $game_system.respond_to?("me_fade")
|
|
$game_system.me_fade(timeInSeconds)
|
|
return
|
|
elsif $game_system && $game_system.respond_to?("me_stop")
|
|
$game_system.me_stop(nil)
|
|
return
|
|
elsif (RPG.const_defined?(:ME) rescue false)
|
|
begin
|
|
(timeInSeconds>0.0) ? RPG::ME.fade((timeInSeconds*1000).floor) : RPG::ME.stop
|
|
return
|
|
rescue
|
|
end
|
|
end
|
|
(timeInSeconds>0.0) ? Audio.me_fade((timeInSeconds*1000).floor) : Audio.me_stop
|
|
end
|
|
|
|
################################################################################
|
|
|
|
# Plays a BGS file.
|
|
# param -- Either a string showing the filename
|
|
# (relative to Audio/BGS/) or an RPG::AudioFile object.
|
|
# Possible formats for _param_:
|
|
# filename volume and pitch 100
|
|
# filename:volume pitch 100
|
|
# filename:volume:pitch
|
|
# volume -- Volume of the file, up to 100
|
|
# pitch -- Pitch of the file, normally 100
|
|
def pbBGSPlay(param,volume=nil,pitch=nil)
|
|
return if !param
|
|
param=pbResolveAudioFile(param,volume,pitch)
|
|
if param.name && param.name!=""
|
|
if $game_system && $game_system.respond_to?("bgs_play")
|
|
$game_system.bgs_play(param)
|
|
return
|
|
elsif (RPG.const_defined?(:BGS) rescue false)
|
|
b=RPG::BGS.new(param.name,param.volume,param.pitch)
|
|
if b && b.respond_to?("play")
|
|
b.play; return
|
|
end
|
|
end
|
|
Audio.bgs_play(canonicalize("Audio/BGS/"+param.name),param.volume,param.pitch)
|
|
end
|
|
end
|
|
|
|
# Fades out or stops BGS playback. 'x' is the time in seconds to fade out.
|
|
def pbBGSFade(x=0.0); pbBGSStop(x);end
|
|
|
|
# Fades out or stops BGS playback. 'x' is the time in seconds to fade out.
|
|
def pbBGSStop(timeInSeconds=0.0)
|
|
if $game_system && timeInSeconds>0.0 && $game_system.respond_to?("bgs_fade")
|
|
$game_system.bgs_fade(timeInSeconds)
|
|
return
|
|
elsif $game_system && $game_system.respond_to?("bgs_play")
|
|
$game_system.bgs_play(nil)
|
|
return
|
|
elsif (RPG.const_defined?(:BGS) rescue false)
|
|
begin
|
|
(timeInSeconds>0.0) ? RPG::BGS.fade((timeInSeconds*1000).floor) : RPG::BGS.stop
|
|
return
|
|
rescue
|
|
end
|
|
end
|
|
(timeInSeconds>0.0) ? Audio.bgs_fade((timeInSeconds*1000).floor) : Audio.bgs_stop
|
|
end
|
|
|
|
################################################################################
|
|
|
|
# Plays an SE file.
|
|
# param -- Either a string showing the filename
|
|
# (relative to Audio/SE/) or an RPG::AudioFile object.
|
|
# Possible formats for _param_:
|
|
# filename volume and pitch 100
|
|
# filename:volume pitch 100
|
|
# filename:volume:pitch
|
|
# volume -- Volume of the file, up to 100
|
|
# pitch -- Pitch of the file, normally 100
|
|
def pbSEPlay(param,volume=nil,pitch=nil)
|
|
return if !param
|
|
param = pbResolveAudioFile(param,volume,pitch)
|
|
if param.name && param.name!=""
|
|
if $game_system && $game_system.respond_to?("se_play")
|
|
$game_system.se_play(param)
|
|
return
|
|
end
|
|
if (RPG.const_defined?(:SE) rescue false)
|
|
b = RPG::SE.new(param.name,param.volume,param.pitch)
|
|
if b && b.respond_to?("play")
|
|
b.play
|
|
return
|
|
end
|
|
end
|
|
Audio.se_play(canonicalize("Audio/SE/"+param.name),param.volume,param.pitch)
|
|
end
|
|
end
|
|
|
|
# Stops SE playback.
|
|
def pbSEFade(x=0.0); pbSEStop(x);end
|
|
|
|
# Stops SE playback.
|
|
def pbSEStop(_timeInSeconds=0.0)
|
|
if $game_system
|
|
$game_system.se_stop
|
|
elsif (RPG.const_defined?(:SE) rescue false)
|
|
RPG::SE.stop rescue nil
|
|
else
|
|
Audio.se_stop
|
|
end
|
|
end
|
|
|
|
################################################################################
|
|
|
|
# Plays a sound effect that plays when the player moves the cursor.
|
|
def pbPlayCursorSE
|
|
if $data_system && $data_system.respond_to?("cursor_se") &&
|
|
$data_system.cursor_se && $data_system.cursor_se.name!=""
|
|
pbSEPlay($data_system.cursor_se)
|
|
elsif $data_system && $data_system.respond_to?("sounds") &&
|
|
$data_system.sounds && $data_system.sounds[0] && $data_system.sounds[0].name!=""
|
|
pbSEPlay($data_system.sounds[0])
|
|
elsif FileTest.audio_exist?("Audio/SE/GUI sel cursor")
|
|
pbSEPlay("GUI sel cursor",80)
|
|
end
|
|
end
|
|
|
|
# Plays a sound effect that plays when a decision is confirmed or a choice is made.
|
|
def pbPlayDecisionSE
|
|
if $data_system && $data_system.respond_to?("decision_se") &&
|
|
$data_system.decision_se && $data_system.decision_se.name!=""
|
|
pbSEPlay($data_system.decision_se)
|
|
elsif $data_system && $data_system.respond_to?("sounds") &&
|
|
$data_system.sounds && $data_system.sounds[1] && $data_system.sounds[1].name!=""
|
|
pbSEPlay($data_system.sounds[1])
|
|
elsif FileTest.audio_exist?("Audio/SE/GUI sel decision")
|
|
pbSEPlay("GUI sel decision",80)
|
|
end
|
|
end
|
|
|
|
# Plays a sound effect that plays when a choice is canceled.
|
|
def pbPlayCancelSE
|
|
if $data_system && $data_system.respond_to?("cancel_se") &&
|
|
$data_system.cancel_se && $data_system.cancel_se.name!=""
|
|
pbSEPlay($data_system.cancel_se)
|
|
elsif $data_system && $data_system.respond_to?("sounds") &&
|
|
$data_system.sounds && $data_system.sounds[2] && $data_system.sounds[2].name!=""
|
|
pbSEPlay($data_system.sounds[2])
|
|
elsif FileTest.audio_exist?("Audio/SE/GUI sel cancel")
|
|
pbSEPlay("GUI sel cancel",80)
|
|
end
|
|
end
|
|
|
|
# Plays a buzzer sound effect.
|
|
def pbPlayBuzzerSE
|
|
if $data_system && $data_system.respond_to?("buzzer_se") &&
|
|
$data_system.buzzer_se && $data_system.buzzer_se.name!=""
|
|
pbSEPlay($data_system.buzzer_se)
|
|
elsif $data_system && $data_system.respond_to?("sounds") &&
|
|
$data_system.sounds && $data_system.sounds[3] && $data_system.sounds[3].name!=""
|
|
pbSEPlay($data_system.sounds[3])
|
|
elsif FileTest.audio_exist?("Audio/SE/GUI sel buzzer")
|
|
pbSEPlay("GUI sel buzzer",80)
|
|
end
|
|
end
|
|
|
|
# Plays a sound effect that plays when the player moves the cursor.
|
|
def pbPlayCloseMenuSE
|
|
if FileTest.audio_exist?("Audio/SE/GUI menu close")
|
|
pbSEPlay("GUI menu close",80)
|
|
end
|
|
end
|