mirror of
https://github.com/mehah/otclient
synced 2026-08-15 16:29:06 -04:00
82 lines
2 KiB
Lua
82 lines
2 KiB
Lua
local musicFilename = 'sounds/startup'
|
|
local musicChannel = nil
|
|
if g_sounds then
|
|
musicChannel = g_sounds.getChannel(SoundChannels.Music)
|
|
end
|
|
|
|
function setMusic(filename)
|
|
musicFilename = filename
|
|
|
|
if not g_game.isOnline() then
|
|
musicChannel:stop()
|
|
musicChannel:enqueue(musicFilename, 3)
|
|
end
|
|
end
|
|
|
|
function startup()
|
|
if musicChannel then
|
|
musicChannel:enqueue(musicFilename, 3)
|
|
connect(g_game, {
|
|
onGameStart = function()
|
|
musicChannel:stop(3)
|
|
end
|
|
})
|
|
connect(g_game, {
|
|
onGameEnd = function()
|
|
g_sounds.stopAll()
|
|
musicChannel:enqueue(musicFilename, 3)
|
|
end
|
|
})
|
|
end
|
|
|
|
-- Check for startup errors
|
|
local errtitle = nil
|
|
local errmsg = nil
|
|
|
|
if g_graphics.getRenderer():lower():match('gdi generic') then
|
|
errtitle = tr('Graphics card driver not detected')
|
|
errmsg = tr(
|
|
'No graphics card detected, everything will be drawn using the CPU,\nthus the performance will be really bad.\nPlease update your graphics driver to have a better performance.')
|
|
end
|
|
|
|
-- Show entergame
|
|
if errmsg or errtitle then
|
|
local msgbox = displayErrorBox(errtitle, errmsg)
|
|
msgbox.onOk = function()
|
|
EnterGame.firstShow()
|
|
end
|
|
else
|
|
EnterGame.firstShow()
|
|
end
|
|
if g_app.hasUpdater() and g_sounds then
|
|
g_sounds.setAudioEnabled(g_settings.getBoolean('enableAudio'))
|
|
end
|
|
end
|
|
|
|
function init()
|
|
if g_app.hasUpdater() then
|
|
connect(g_app, {
|
|
onUpdateFinished = startup,
|
|
})
|
|
else
|
|
connect(g_app, {
|
|
onRun = startup,
|
|
})
|
|
end
|
|
|
|
if musicChannel then
|
|
g_sounds.preload(musicFilename)
|
|
end
|
|
end
|
|
|
|
function terminate()
|
|
if g_app.hasUpdater() then
|
|
disconnect(g_app, {
|
|
onUpdateFinished = startup,
|
|
})
|
|
else
|
|
disconnect(g_app, {
|
|
onRun = startup,
|
|
})
|
|
end
|
|
end
|