Files
bap-room-packager/gameinfo.go
2025-12-24 13:58:02 -06:00

69 lines
1.4 KiB
Go

package main
import "slices"
var REQUIRED_IMAGES = []string{
"ART",
"CREDIT",
"FLOOR",
"ROOF",
"WALL",
}
var OPTIONAL_BUTREQUIRED_IMAGES = []string{
"MINI",
"INTERACT",
"LAYER",
}
var OPTIONAL_IMAGES = []string{
"WALL2",
"WALL3",
"WALL4",
}
var ACCEPTED_IMAGE_EXT = []string{
"PNG",
"JPG",
"BMP",
}
var OPTIONAL_BUTREQUIRED_AUDIO = []string{
"FOOT",
"MUSIC",
}
var ACCEPTED_AUDIO_EXT = []string{
"WAV",
"MP3",
"OGG",
"MIDI",
}
func gameRequiredImages() []string {
minimal := make([]string, len(REQUIRED_IMAGES))
copy(minimal, REQUIRED_IMAGES)
return minimal
}
func gameExtraRequiredImages() []string {
extra := make([]string, len(OPTIONAL_BUTREQUIRED_IMAGES))
copy(extra, OPTIONAL_BUTREQUIRED_IMAGES)
return extra
}
func gameExtraRequiredAudios() []string {
extra := make([]string, len(OPTIONAL_BUTREQUIRED_AUDIO))
copy(extra, OPTIONAL_BUTREQUIRED_AUDIO)
return extra
}
func isAcceptedImageExt(ext string) bool {
return slices.Contains(ACCEPTED_IMAGE_EXT, ext)
}
func isAcceptedAudioExt(ext string) bool {
return slices.Contains(ACCEPTED_AUDIO_EXT, ext)
}
func isAcceptedFile(name, ext string) bool {
return (isAcceptedImageExt(ext) && (slices.Contains(REQUIRED_IMAGES, name) || slices.Contains(OPTIONAL_BUTREQUIRED_IMAGES, name) || slices.Contains(OPTIONAL_IMAGES, name))) ||
(isAcceptedAudioExt(ext) && slices.Contains(OPTIONAL_BUTREQUIRED_AUDIO, name))
}