Adding modding folder with a hacked build.

This commit is contained in:
ml
2026-09-26 08:53:08 +02:00
parent cdb960dc71
commit c91080aba7
755 changed files with 50424 additions and 0 deletions
@@ -0,0 +1,42 @@
package media
import (
"bytes"
"github.com/inkyblackness/hacked/ss1/content/audio"
"github.com/inkyblackness/hacked/ss1/content/audio/voc"
"github.com/inkyblackness/hacked/ss1/resource"
)
// SoundEffectBlockSetter modifies storage of raw resource data.
type SoundEffectBlockSetter interface {
SetResourceBlocks(lang resource.Language, id resource.ID, data [][]byte)
DelResource(lang resource.Language, id resource.ID)
}
// SoundEffectSetterService provides methods to change sound resources.
type SoundEffectSetterService struct{}
// NewSoundSetterService returns a new instance.
func NewSoundSetterService() SoundEffectSetterService {
return SoundEffectSetterService{}
}
// Remove deletes any audio resource for given key.
func (service SoundEffectSetterService) Remove(setter SoundEffectBlockSetter, key resource.Key) {
setter.DelResource(key.Lang, key.ID.Plus(key.Index))
}
// Clear resets the identified audio resource to a silent one-sample audio.
func (service SoundEffectSetterService) Clear(setter SoundEffectBlockSetter, key resource.Key) {
silence := audio.L8{SampleRate: 22050, Samples: []byte{0x80}}
service.Set(setter, key, silence)
}
// Set stores the given sound as the identified resource.
func (service SoundEffectSetterService) Set(setter SoundEffectBlockSetter, key resource.Key, data audio.L8) {
buf := bytes.NewBuffer(nil)
_ = voc.Save(buf, data.SampleRate, data.Samples)
blockData := [][]byte{buf.Bytes()}
setter.SetResourceBlocks(key.Lang, key.ID.Plus(key.Index), blockData)
}