Adding modding folder with a hacked build.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
package messages
|
||||
|
||||
import (
|
||||
"github.com/inkyblackness/hacked/ss1/resource"
|
||||
"github.com/inkyblackness/hacked/ss1/world"
|
||||
)
|
||||
|
||||
type messageDataEntry struct {
|
||||
oldData [][]byte
|
||||
newData [][]byte
|
||||
}
|
||||
|
||||
type setMessageDataCommand struct {
|
||||
model *viewModel
|
||||
|
||||
key resource.Key
|
||||
showVerboseText bool
|
||||
|
||||
textEntries map[resource.Language]messageDataEntry
|
||||
audioEntries map[resource.Language]messageDataEntry
|
||||
}
|
||||
|
||||
func (cmd setMessageDataCommand) Do(modder world.Modder) error {
|
||||
return cmd.perform(modder, func(entry messageDataEntry) [][]byte { return entry.newData })
|
||||
}
|
||||
|
||||
func (cmd setMessageDataCommand) Undo(modder world.Modder) error {
|
||||
return cmd.perform(modder, func(entry messageDataEntry) [][]byte { return entry.oldData })
|
||||
}
|
||||
|
||||
func (cmd setMessageDataCommand) perform(modder world.Modder, dataResolver func(messageDataEntry) [][]byte) error {
|
||||
cmd.saveEntries(modder, cmd.key.ID.Plus(cmd.key.Index), cmd.textEntries, dataResolver)
|
||||
cmd.saveEntries(modder, cmd.key.ID.Plus(cmd.key.Index).Plus(300), cmd.audioEntries, dataResolver)
|
||||
|
||||
cmd.model.restoreFocus = true
|
||||
cmd.model.currentKey = cmd.key
|
||||
cmd.model.showVerboseText = cmd.showVerboseText
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cmd setMessageDataCommand) saveEntries(modder world.Modder, id resource.ID,
|
||||
entries map[resource.Language]messageDataEntry,
|
||||
dataResolver func(messageDataEntry) [][]byte) {
|
||||
for lang, entry := range entries {
|
||||
data := dataResolver(entry)
|
||||
if len(data) > 0 {
|
||||
modder.SetResourceBlocks(lang, id, data)
|
||||
} else {
|
||||
modder.DelResource(lang, id)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user