Adding modding folder with a hacked build.
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
package resource
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
)
|
||||
|
||||
// ID represents an integer key of resources.
|
||||
type ID uint16
|
||||
|
||||
// Value returns the numerical value of the identifier.
|
||||
func (id ID) Value() uint16 {
|
||||
return uint16(id)
|
||||
}
|
||||
|
||||
// Plus adds the given offset and returns the resulting ID.
|
||||
func (id ID) Plus(offset int) ID {
|
||||
return ID(int(id) + offset)
|
||||
}
|
||||
|
||||
// String returns the textual representation.
|
||||
func (id ID) String() string {
|
||||
return fmt.Sprintf("%04X", uint16(id))
|
||||
}
|
||||
|
||||
// IDMarkerMap is used to collect IDs.
|
||||
type IDMarkerMap struct {
|
||||
ids map[ID]struct{}
|
||||
}
|
||||
|
||||
// Add adds the given ID to the map.
|
||||
func (marker *IDMarkerMap) Add(id ID) {
|
||||
if marker.ids == nil {
|
||||
marker.ids = make(map[ID]struct{})
|
||||
}
|
||||
marker.ids[id] = struct{}{}
|
||||
}
|
||||
|
||||
// ToList converts the map to a de-duplicated list.
|
||||
func (marker IDMarkerMap) ToList() []ID {
|
||||
result := make([]ID, 0, len(marker.ids))
|
||||
for id := range marker.ids {
|
||||
result = append(result, id)
|
||||
}
|
||||
sort.Slice(result, func(a, b int) bool { return result[a] < result[b] })
|
||||
return result
|
||||
}
|
||||
Reference in New Issue
Block a user