game_sync/srvdata/client_ver.go

71 lines
1.6 KiB
Go

package srvdata
import "encoding/json"
func init() {
DataMgr.RegisterLoader("DB_ClientVer.dat", ClientVersSingeton)
}
type ClientVer struct {
MinApkVer int32
LatestApkVer int32
MinResVer int32
LatestResVer int32
}
var ClientVersSingeton = &ClientVers{
packVers: make(map[string]map[string]ClientVer),
gameVers: make(map[string]map[string]ClientVer),
}
type ClientVers struct {
packVers map[string]map[string]ClientVer
gameVers map[string]map[string]ClientVer
}
func (c *ClientVers) Load(fileFullPath string) error {
updateClientVers()
return nil
}
func (c *ClientVers) Reload(fileFullPath string) error {
updateClientVers()
return nil
}
func updateClientVers() error {
packVers := make(map[string]map[string]ClientVer)
gameVers := make(map[string]map[string]ClientVer)
for _, clientVer := range PBDB_ClientVerMgr.Datas.Arr {
packVerStr := clientVer.GetPackVers()
ver := make(map[string]ClientVer)
err := json.Unmarshal([]byte(packVerStr), &ver)
if err == nil {
packVers[clientVer.GetPackageFlag()] = ver
}
gameVerStr := clientVer.GetGameVers()
ver = make(map[string]ClientVer)
err = json.Unmarshal([]byte(gameVerStr), &ver)
if err == nil {
gameVers[clientVer.GetPackageFlag()] = ver
}
}
ClientVersSingeton.packVers = packVers
ClientVersSingeton.gameVers = gameVers
return nil
}
func GetPackVers(platformTag string) map[string]ClientVer {
if vers, exist := ClientVersSingeton.packVers[platformTag]; exist {
return vers
}
return nil
}
func GetGameVers(platformTag string) map[string]ClientVer {
if vers, exist := ClientVersSingeton.gameVers[platformTag]; exist {
return vers
}
return nil
}