This repository has been archived on 2026-10-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files

73 lines
2.9 KiB
Go

package routers
import (
"context"
"sync"
)
var _ = sync.Mutex{}
var _ = context.Background
//
// In-game GM console (ALT+F1) wallet and backpack grants for build 4229938.
// The panel calls the native UX.Game.IGmToGamePlayer interface and both commands return void,
// so the only observable effect is the push this router sends back:
// AddMoney(money, gold, bindingGold, allowDebt) -> SyncMoney (authoritative totals) + SyncMoneyAdd popup
// AddItem(itemTemplateId, count, isBind) -> SyncBackpackItemChanged (add or update stack)
// The wire shapes are hand-decoded from the client metadata because these two commands have no
// generated contract class; everything else keeps using the typed-neutral compatibility fallback.
//
func GameRouter_GmWallet_AddMoney(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_GmWallet_AddMoney
var zero any; return zero
}
func GameRouter_GmWallet_AddItem(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_GmWallet_AddItem
var zero any; return zero
}
// UX.Game.IGmToGamePlayer.AddMoney(money, gold, bindingGold, allowDebt): three 8-byte amounts
// followed by one bool (the captured 25-byte panel packet). Gold and binding gold may be absent
// in older bodies, so decode whatever complete fields are present and default the rest to zero.
func GameRouter_GmWallet_ParseMoneyGrant4229938(ctx context.Context, body []byte) any {
// Router implementation for GameRouter_GmWallet_ParseMoneyGrant4229938
var zero any; return zero
}
// The native panel writes whole amounts as int64 (1 -> 01 00 00 00 00 00 00 00) while the
// signature declares the field as a double, so accept either reading: the int64 form of a
// genuine double is always astronomically large, and the double form of a whole amount is a
// denormal or a nonsense fraction.
func GameRouter_GmWallet_ReadAmount4229938(ctx context.Context, body []byte, offset int32) float64 {
// Router implementation for GameRouter_GmWallet_ReadAmount4229938
return 0
}
// UX.Game.IGmToGamePlayer.AddItem(itemTemplateId, count, isBind) is 9 bytes on the wire. Item
// ids and counts are 4-byte fields; tolerate a hypothetical 8-byte variant by clamping instead
// of throwing, and always answer OK so the panel never hangs on an unknown body.
func GameRouter_GmWallet_ParseItemGrant4229938(ctx context.Context, body []byte) any {
// Router implementation for GameRouter_GmWallet_ParseItemGrant4229938
var zero any; return zero
}
func GameRouter_GmWallet_ClampToUInt32(ctx context.Context, value uint64) uint32 {
// Router implementation for GameRouter_GmWallet_ClampToUInt32
return 0
}
type MoneyGrant4229938 struct {
Money float64 `json:"money"`
Gold float64 `json:"gold"`
BindingGold float64 `json:"bindingGold"`
AllowDebt bool `json:"allowDebt"`
}
type ItemGrant4229938 struct {
TemplateId uint32 `json:"templateId"`
Count uint32 `json:"count"`
IsBind bool `json:"isBind"`
}