mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2025-02-04 15:46:51 -05:00
Updated music logic (#629)
This commit is contained in:
parent
7da1843f49
commit
856043d8ac
@ -636,7 +636,7 @@ func (a *App) ToCharacterSelect(connType d2clientconnectiontype.ClientConnection
|
||||
}
|
||||
|
||||
func (a *App) ToMapEngineTest(region int, level int) {
|
||||
met := d2gamescreen.CreateMapEngineTest(0, 1, a.terminal, a.renderer, a.inputManager)
|
||||
met := d2gamescreen.CreateMapEngineTest(0, 1, a.terminal, a.renderer, a.inputManager, a.audio)
|
||||
d2screen.SetNextScreen(met)
|
||||
}
|
||||
|
||||
|
@ -265,7 +265,12 @@ const (
|
||||
BGMAct4Mesa = "/data/global/music/Act4/mesa.wav"
|
||||
BGMAct4Town4 = "/data/global/music/Act4/town4.wav"
|
||||
BGMAct5Baal = "/data/global/music/Act5/baal.wav"
|
||||
BGMAct5Siege = "/data/global/music/Act5/siege.wav"
|
||||
BGMAct5Shenk = "/data/global/music/Act5/shenkmusic.wav"
|
||||
BGMAct5XTown = "/data/global/music/Act5/xtown.wav"
|
||||
BGMAct5XTemple = "/data/global/music/Act5/xtemple.wav"
|
||||
BGMAct5IceCaves = "/data/global/music/Act5/icecaves.wav"
|
||||
BGMAct5Nihlathak = "/data/global/music/Act5/nihlathakmusic.wav"
|
||||
|
||||
// --- Sound Effects ---
|
||||
|
||||
|
@ -1,6 +1,9 @@
|
||||
package d2common
|
||||
|
||||
import "github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
|
||||
import (
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2resource"
|
||||
)
|
||||
|
||||
// MusicDef stores the music definitions of a region
|
||||
type MusicDef struct {
|
||||
@ -11,41 +14,41 @@ type MusicDef struct {
|
||||
|
||||
func getMusicDefs() []MusicDef {
|
||||
return []MusicDef{
|
||||
{d2enum.RegionAct1Town, false, "/data/global/music/Act1/town1.wav"},
|
||||
{d2enum.RegionAct1Wilderness, false, "/data/global/music/Act1/wild.wav"},
|
||||
{d2enum.RegionAct1Cave, false, "/data/global/music/Act1/caves.wav"},
|
||||
{d2enum.RegionAct1Crypt, false, "/data/global/music/Act1/crypt.wav"},
|
||||
{d2enum.RegionAct1Monestary, false, "/data/global/music/Act1/monastery.wav"},
|
||||
{d2enum.RegionAct1Courtyard, false, "/data/global/music/Act1/wild.wav"}, // ?
|
||||
{d2enum.RegionAct1Barracks, false, "/data/global/music/Act1/wild.wav"}, // ?
|
||||
{d2enum.RegionAct1Jail, false, "/data/global/music/Act1/wild.wav"}, // ?
|
||||
{d2enum.RegionAct1Cathedral, false, "/data/global/music/Act1/monastery.wav"}, // ?
|
||||
{d2enum.RegionAct1Catacombs, false, "/data/global/music/Act1/crypt.wav"}, // ?
|
||||
{d2enum.RegionAct1Tristram, false, "/data/global/music/Act1/tristram.wav"}, // ?
|
||||
{d2enum.RegionAct2Town, false, "/data/global/music/Act2/town2.wav"},
|
||||
{d2enum.RegionAct2Sewer, false, "/data/global/music/Act2/sewer.wav"},
|
||||
{d2enum.RegionAct2Harem, false, "/data/global/music/Act2/harem.wav"},
|
||||
{d2enum.RegionAct2Basement, false, "/data/global/music/Act2/lair.wav"}, // ?
|
||||
{d2enum.RegionAct2Desert, false, "/data/global/music/Act2/desrt.wav"},
|
||||
{d2enum.RegionAct2Tomb, false, "/data/global/music/Act2/tombs.wav"},
|
||||
{d2enum.RegionAct2Lair, false, "/data/global/music/Act2/lair.wav"},
|
||||
{d2enum.RegionAct2Arcane, false, "/data/global/music/Act2/sanctuary.wav"}, // ?
|
||||
{d2enum.RegionAct3Town, false, "/data/global/music/Act3/town3.wav"},
|
||||
{d2enum.RegionAct3Jungle, false, "/data/global/music/Act3/jungle.wav"},
|
||||
{d2enum.RegionAct3Kurast, false, "/data/global/music/Act3/kurast.wav"},
|
||||
{d2enum.RegionAct3Spider, false, "/data/global/music/Act3/spider.wav"},
|
||||
{d2enum.RegionAct3Dungeon, false, "/data/global/music/Act3/kurastsewer.wav"}, // ?
|
||||
{d2enum.RegionAct3Sewer, false, "/data/global/music/Act3/kurastsewer.wav"},
|
||||
{d2enum.RegionAct4Town, false, "/data/global/music/Act4/town4.wav"},
|
||||
{d2enum.RegionAct4Mesa, false, "/data/global/music/Act4/mesa.wav"},
|
||||
{d2enum.RegionAct4Lava, false, "/data/global/music/Act4/diablo.wav"}, // ?
|
||||
{d2enum.RegonAct5Town, false, "/data/global/music/Act5/xtown.wav"},
|
||||
{d2enum.RegionAct5Siege, false, "/data/global/music/Act5/siege.wav"},
|
||||
{d2enum.RegionAct5Barricade, false, "/data/global/music/Act5/shenkmusic.wav"}, // ?
|
||||
{d2enum.RegionAct5Temple, false, "/data/global/music/Act5/xtemple.wav"},
|
||||
{d2enum.RegionAct5IceCaves, false, "/data/global/music/Act5/icecaves.wav"},
|
||||
{d2enum.RegionAct5Baal, false, "/data/global/music/Act5/baal.wav"},
|
||||
{d2enum.RegionAct5Lava, false, "/data/global/music/Act5/nihlathakmusic.wav"}, // ?
|
||||
{d2enum.RegionAct1Town, false, d2resource.BGMAct1Town1},
|
||||
{d2enum.RegionAct1Wilderness, false, d2resource.BGMAct1Wild},
|
||||
{d2enum.RegionAct1Cave, false, d2resource.BGMAct1Caves},
|
||||
{d2enum.RegionAct1Crypt, false, d2resource.BGMAct1Crypt},
|
||||
{d2enum.RegionAct1Monestary, false, d2resource.BGMAct1Monastery},
|
||||
{d2enum.RegionAct1Courtyard, false, d2resource.BGMAct1Monastery},
|
||||
{d2enum.RegionAct1Barracks, false, d2resource.BGMAct1Monastery},
|
||||
{d2enum.RegionAct1Jail, false, d2resource.BGMAct1Monastery},
|
||||
{d2enum.RegionAct1Cathedral, false, d2resource.BGMAct1Monastery},
|
||||
{d2enum.RegionAct1Catacombs, false, d2resource.BGMAct1Monastery},
|
||||
{d2enum.RegionAct1Tristram, false, d2resource.BGMAct1Tristram},
|
||||
{d2enum.RegionAct2Town, false, d2resource.BGMAct2Town2},
|
||||
{d2enum.RegionAct2Sewer, false, d2resource.BGMAct2Sewer},
|
||||
{d2enum.RegionAct2Harem, false, d2resource.BGMAct2Harem},
|
||||
{d2enum.RegionAct2Basement, false, d2resource.BGMAct2Harem},
|
||||
{d2enum.RegionAct2Desert, false, d2resource.BGMAct2Desert},
|
||||
{d2enum.RegionAct2Tomb, false, d2resource.BGMAct2Tombs},
|
||||
{d2enum.RegionAct2Lair, false, d2resource.BGMAct2Lair},
|
||||
{d2enum.RegionAct2Arcane, false, d2resource.BGMAct2Sanctuary},
|
||||
{d2enum.RegionAct3Town, false, d2resource.BGMAct3Town3},
|
||||
{d2enum.RegionAct3Jungle, false, d2resource.BGMAct3Jungle},
|
||||
{d2enum.RegionAct3Kurast, false, d2resource.BGMAct3Kurast},
|
||||
{d2enum.RegionAct3Spider, false, d2resource.BGMAct3Spider},
|
||||
{d2enum.RegionAct3Dungeon, false, d2resource.BGMAct3KurastSewer},
|
||||
{d2enum.RegionAct3Sewer, false, d2resource.BGMAct3KurastSewer},
|
||||
{d2enum.RegionAct4Town, false, d2resource.BGMAct4Town4},
|
||||
{d2enum.RegionAct4Mesa, false, d2resource.BGMAct4Mesa},
|
||||
{d2enum.RegionAct4Lava, false, d2resource.BGMAct4Mesa},
|
||||
{d2enum.RegonAct5Town, false, d2resource.BGMAct5XTown},
|
||||
{d2enum.RegionAct5Siege, false, d2resource.BGMAct5Siege},
|
||||
{d2enum.RegionAct5Barricade, false, d2resource.BGMAct5Siege}, // ?
|
||||
{d2enum.RegionAct5Temple, false, d2resource.BGMAct5XTemple},
|
||||
{d2enum.RegionAct5IceCaves, false, d2resource.BGMAct5IceCaves},
|
||||
{d2enum.RegionAct5Baal, false, d2resource.BGMAct5Baal},
|
||||
{d2enum.RegionAct5Lava, false, d2resource.BGMAct5Nihlathak}, // ?
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,7 @@ type Camera struct {
|
||||
// MoveTo sets the position of the Camera to the given position
|
||||
func (c *Camera) MoveTo(position *d2vector.Position) {
|
||||
c.position = position
|
||||
c.target = position
|
||||
}
|
||||
|
||||
// MoveBy adds the given vector to the current position of the Camera.
|
||||
|
@ -502,11 +502,16 @@ func (mr *MapRenderer) ViewportDefault() {
|
||||
mr.viewport.resetAlign()
|
||||
}
|
||||
|
||||
// SetCameraTarget sts the Camera target
|
||||
// SetCameraTarget sets the Camera target
|
||||
func (mr *MapRenderer) SetCameraTarget(position *d2vector.Position) {
|
||||
mr.Camera.SetTarget(position)
|
||||
}
|
||||
|
||||
// SetCameraPosition sets the Camera position
|
||||
func (mr *MapRenderer) SetCameraPosition(position *d2vector.Position) {
|
||||
mr.Camera.MoveTo(position)
|
||||
}
|
||||
|
||||
// InvalidateImageCache the global region image cache. Call this when you are changing regions.
|
||||
func (mr *MapRenderer) InvalidateImageCache() {
|
||||
mr.imageCacheRecords = nil
|
||||
|
@ -7,6 +7,8 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2math/d2vector"
|
||||
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2map/d2mapgen"
|
||||
@ -85,12 +87,13 @@ func getRegions() []regionSpec {
|
||||
|
||||
// MapEngineTest represents the MapEngineTest screen
|
||||
type MapEngineTest struct {
|
||||
gameState *d2player.PlayerState
|
||||
mapEngine *d2mapengine.MapEngine
|
||||
mapRenderer *d2maprenderer.MapRenderer
|
||||
terminal d2interface.Terminal
|
||||
renderer d2interface.Renderer
|
||||
inputManager d2interface.InputManager
|
||||
gameState *d2player.PlayerState
|
||||
mapEngine *d2mapengine.MapEngine
|
||||
mapRenderer *d2maprenderer.MapRenderer
|
||||
terminal d2interface.Terminal
|
||||
renderer d2interface.Renderer
|
||||
inputManager d2interface.InputManager
|
||||
audioProvider d2interface.AudioProvider
|
||||
|
||||
lastMouseX, lastMouseY int
|
||||
selX, selY int
|
||||
@ -111,6 +114,7 @@ func CreateMapEngineTest(currentRegion,
|
||||
term d2interface.Terminal,
|
||||
renderer d2interface.Renderer,
|
||||
inputManager d2interface.InputManager,
|
||||
audioProvider d2interface.AudioProvider,
|
||||
) *MapEngineTest {
|
||||
result := &MapEngineTest{
|
||||
currentRegion: currentRegion,
|
||||
@ -121,6 +125,7 @@ func CreateMapEngineTest(currentRegion,
|
||||
terminal: term,
|
||||
renderer: renderer,
|
||||
inputManager: inputManager,
|
||||
audioProvider: audioProvider,
|
||||
}
|
||||
result.gameState = d2player.CreateTestGameState()
|
||||
|
||||
@ -171,7 +176,11 @@ func (met *MapEngineTest) loadRegionByIndex(n, levelPreset, fileIndex int) {
|
||||
|
||||
met.mapRenderer.SetMapEngine(met.mapEngine)
|
||||
position := d2vector.NewPosition(met.mapRenderer.WorldToOrtho(met.mapEngine.GetCenterPosition()))
|
||||
met.mapRenderer.SetCameraTarget(&position)
|
||||
met.mapRenderer.SetCameraPosition(&position)
|
||||
|
||||
musicDef := d2common.GetMusicDef(met.regionSpec.regionType)
|
||||
|
||||
met.audioProvider.PlayBGM(musicDef.MusicFile)
|
||||
}
|
||||
|
||||
// OnLoad loads the resources for the Map Engine Test screen
|
||||
|
Loading…
Reference in New Issue
Block a user