package gameserver import ( "fmt" "gac-hkrpg-go/internal/common" pb "gac-hkrpg-go/protocol/proto" "google.golang.org/protobuf/proto" ) func init() { // Current command-table names remain obfuscated. Current .54 native evidence: // _OnGetDataSuccess d4dbc60 reads response+3c -> _SetUpProgress; FNIAAEAFGDE // getter 1fc3dcd0 reads +3c. That path calls Progress.EIBHHOPHJCK at // 16c8dab0, which writes +18; get_CurrentCycleId at 16c8d980 reads +18. // HNOCFELOAFJ (+10) supplies the completed-level collection. See the // comic-*-consumer/current getter disassemblies and ComicDessertCatalog. rawNamed("MGCJKEEOPEC", func(s *Session, body []byte) error { rsp := &pb.LPLCFFGANFC{Retcode: uint32(pb.Retcode_RET_FAIL)} if err := proto.Unmarshal(body, new(pb.MGCJKEEOPEC)); err != nil { return s.Send(rsp) } catalog, err := common.LoadComicDessertCatalog() if err != nil { PacketLog("COMIC_DESSERT_DATA rejected: " + err.Error()) return s.Send(rsp) } // Preview starts at the resource's first cycle. No finished levels, // upgrades, currency, claimed rewards or saved completion are fabricated. rsp.FNIAAEAFGDE = catalog.InitialCycle().ID rsp.Retcode = 0 PacketLog(fmt.Sprintf("COMIC_DESSERT_DATA preview_cycle=%d cycles=%d levels=%d", rsp.FNIAAEAFGDE, len(catalog.Cycles), len(catalog.Levels))) return s.Send(rsp) }) }