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

234 lines
10 KiB
Go

package routers
import (
"context"
"sync"
"time"
)
var _ = sync.Mutex{}
var _ = context.Background
var _ = time.Now
func GameRouter_LixiPolice_LixiReady(ctx context.Context, state any) bool {
// Router implementation for GameRouter_LixiPolice_LixiReady
return true
}
func GameRouter_LixiPolice_PoliceDispatches(ctx context.Context, r any) map[string]any {
// Router implementation for GameRouter_LixiPolice_PoliceDispatches
return nil
}
func GameRouter_LixiPolice_PublishLixiPolice4229938(ctx context.Context, session *GameSession, spiritId uint32) any {
// Router implementation for GameRouter_LixiPolice_PublishLixiPolice4229938
var zero any; return zero
}
func GameRouter_LixiPolice_RegisterPoliceNpc4229938(ctx context.Context, session *GameSession, id uint64, template uint32, position Vec3) any {
// Router implementation for GameRouter_LixiPolice_RegisterPoliceNpc4229938
var zero any; return zero
}
// AgentCharacterComponent is separate from AgentPoliceExamData. The native ID
// panel unconditionally reads module.Component.Portrait. A missing component
// throws before the close/continue callback is installed (Player.log 23:07:24).
// 4000 is an existing NpcInformationPortraitConfig row, a neutral display tag
// for our generated test NPCs; this does not invent crimes or grant rewards.
func GameRouter_LixiPolice_PoliceCharacterPacket4229938(ctx context.Context, id uint64) []byte {
// Router implementation for GameRouter_LixiPolice_PoliceCharacterPacket4229938
return nil
}
func GameRouter_LixiPolice_SendPoliceCharacter4229938(ctx context.Context, session *GameSession, id uint64) any {
// Router implementation for GameRouter_LixiPolice_SendPoliceCharacter4229938
var zero any; return zero
}
func GameRouter_LixiPolice_SendPoliceExamData4229938(ctx context.Context, session *GameSession, id uint64) any {
// Router implementation for GameRouter_LixiPolice_SendPoliceExamData4229938
var zero any; return zero
}
func GameRouter_LixiPolice_SendLixiPoliceCareer4229938(ctx context.Context, session *GameSession) any {
// Router implementation for GameRouter_LixiPolice_SendLixiPoliceCareer4229938
var zero any; return zero
}
func GameRouter_LixiPolice_RefreshPoliceNpcInitializationPass4229938(ctx context.Context, session *GameSession, ids []any, generation int32) any {
// Router implementation for GameRouter_LixiPolice_RefreshPoliceNpcInitializationPass4229938
var zero any; return zero
}
func GameRouter_LixiPolice_RefreshSpawnedPoliceNpcs4229938(ctx context.Context, session *GameSession, ids []any, generation int32) any {
// Router implementation for GameRouter_LixiPolice_RefreshSpawnedPoliceNpcs4229938
var zero any; return zero
}
// Native SInteract.OnEnable uses ServerInitiate to construct its own
// SPreInteractExam, instead of relying on the F-button's preparatory node.
// Keep the GM nearest-target fallback on the known test model. Explicit F
// requests can also target registered action NPCs and functional shopkeepers.
func GameRouter_LixiPolice_ControlPoliceExam4229938(ctx context.Context, session *GameSession, start bool) any {
// Router implementation for GameRouter_LixiPolice_ControlPoliceExam4229938
var zero any; return zero
}
func GameRouter_LixiPolice_ControlPoliceTarget4229938(ctx context.Context, session *GameSession, start bool, requestedTarget uint64) any {
// Router implementation for GameRouter_LixiPolice_ControlPoliceTarget4229938
var zero any; return zero
}
// 4229938 MasterToClientImpl.SyncDoToLuaMaster (0x1281DDE0) calls the
// built-in gCsToLuaHandler.GmRunLua, registered on Gate (0x14883B90).
// Invoke the ORIGINAL PrepareData_Story, as S002PlayerNet.EnterExam does;
// no replacement functions, persistent hooks, assets or client files.
// GmUtils.ParseUlongToLua (0x14677AC0) uses ulong.new(low32, high32):
// a decimal Lua number would round our 8300000000000000001 IDs.
func GameRouter_LixiPolice_PolicePrepareScript4229938(ctx context.Context, target uint64, owner uint64, nonce string) string {
// Router implementation for GameRouter_LixiPolice_PolicePrepareScript4229938
return ""
}
func GameRouter_LixiPolice_ExpirePolicePrepare4229938(ctx context.Context, session *GameSession, r any, nonce string) any {
// Router implementation for GameRouter_LixiPolice_ExpirePolicePrepare4229938
var zero any; return zero
}
// Cooperative reaction rows from PoliceExamReactionConfig. These are not a
// simulation of guilt or fine adjudication: no money/rewards are invented.
func GameRouter_LixiPolice_PoliceReaction4229938(ctx context.Context, interaction uint32) uint32 {
// Router implementation for GameRouter_LixiPolice_PoliceReaction4229938
return 0
}
func GameRouter_LixiPolice_PoliceEscortVehicleRequestValid4229938(ctx context.Context, session *GameSession, request any) bool {
// Router implementation for GameRouter_LixiPolice_PoliceEscortVehicleRequestValid4229938
return true
}
// Called with the police gate held. Deleting only this interaction invokes
// native OnDisable cleanup without deleting the NPC, police root or support.
func GameRouter_LixiPolice_PoliceEntryRetryAllowed4229938(ctx context.Context, r any) bool {
// Router implementation for GameRouter_LixiPolice_PoliceEntryRetryAllowed4229938
return true
}
func GameRouter_LixiPolice_ClosePoliceInteraction4229938(ctx context.Context, session *GameSession, r any, reason string) any {
// Router implementation for GameRouter_LixiPolice_ClosePoliceInteraction4229938
var zero any; return zero
}
func GameRouter_LixiPolice_RecoverStalledPoliceBoarding4229938(ctx context.Context, session *GameSession, child uint32, section uint32, generation int32, owner uint64) any {
// Router implementation for GameRouter_LixiPolice_RecoverStalledPoliceBoarding4229938
var zero any; return zero
}
func GameRouter_LixiPolice_WatchPoliceBoarding4229938(ctx context.Context, session *GameSession, child uint32, section uint32, generation int32, owner uint64) any {
// Router implementation for GameRouter_LixiPolice_WatchPoliceBoarding4229938
var zero any; return zero
}
func GameRouter_LixiPolice_HandlePoliceStory4229938(ctx context.Context, session *GameSession, cmd any) bool {
// Router implementation for GameRouter_LixiPolice_HandlePoliceStory4229938
return true
}
func GameRouter_LixiPolice_StopLixiPolice4229938(ctx context.Context, session *GameSession, sceneChange bool, supportOnly bool) any {
// Router implementation for GameRouter_LixiPolice_StopLixiPolice4229938
var zero any; return zero
}
type PoliceRuntime4229938 struct {
Gate *sync.Mutex `json:"gate"`
Npcs map[uint64]any `json:"npcs"`
Support []uint64 `json:"support"`
Cooldowns map[uint32]uint32 `json:"cooldowns"`
RootSent bool `json:"rootSent"`
Generation int32 `json:"generation"`
NextNode uint32 `json:"nextNode"`
Child uint32 `json:"child"`
LastSection uint32 `json:"lastSection"`
HasSection bool `json:"hasSection"`
EntryStartedUtc time.Time `json:"entryStartedUtc"`
Agent uint64 `json:"agent"`
Owner uint64 `json:"owner"`
Serial int64 `json:"serial"`
PrepareNonce *string `json:"prepareNonce"`
PrepareTarget uint64 `json:"prepareTarget"`
PrepareOwner uint64 `json:"prepareOwner"`
PrepareDeadline time.Time `json:"prepareDeadline"`
Passengers map[uint64]PolicePassenger4229938 `json:"passengers"`
PendingBoarding *PolicePassenger4229938 `json:"pendingBoarding"`
Alighting bool `json:"alighting"`
LastInteraction uint32 `json:"lastInteraction"`
PausedEscorts []uint64 `json:"pausedEscorts"`
Detained uint64 `json:"detained"`
PendingPrison uint64 `json:"pendingPrison"`
PrisonTimelineToken *string `json:"prisonTimelineToken"`
PrisonTimelineOwner uint64 `json:"prisonTimelineOwner"`
PrisonInteractionEnded bool `json:"prisonInteractionEnded"`
PrisonTimelineEnded bool `json:"prisonTimelineEnded"`
PrisonCorrectionAt int64 `json:"prisonCorrectionAt"`
}
// Lua-generated SpiritPoliceJobInfo uses Int32 collections internally, whereas
// SyncPoliceDispatchInfos uses an Int7 dictionary at the method boundary.
type PoliceDispatch4229938 struct {
Id uint32 `json:"id"`
NextAvailableTime uint32 `json:"nextAvailableTime"`
IsTemp bool `json:"isTemp"`
TempEventId uint32 `json:"tempEventId"`
TodayArrestSupportTimes uint32 `json:"todayArrestSupportTimes"`
}
type PoliceService4229938 struct {
DispatchTimes uint32 `json:"dispatchTimes"`
PatrolTimes uint32 `json:"patrolTimes"`
ArrestTimes uint32 `json:"arrestTimes"`
FineCount uint32 `json:"fineCount"`
TotalDrops []uint32 `json:"totalDrops"`
LastUpdateTime uint32 `json:"lastUpdateTime"`
CarFineCount uint32 `json:"carFineCount"`
}
type PoliceDuty4229938 struct {
DailyViolationCount uint32 `json:"dailyViolationCount"`
LeaveDueTime uint32 `json:"leaveDueTime"`
LastViolationUpdateTime uint32 `json:"lastViolationUpdateTime"`
ServiceData PoliceService4229938 `json:"serviceData"`
WeeklyServiceData PoliceService4229938 `json:"weeklyServiceData"`
ViolationCdInfos map[uint32]uint32 `json:"violationCdInfos"`
}
type PoliceJob4229938 struct {
DispatchInfos map[uint32]PoliceDispatch4229938 `json:"dispatchInfos"`
// No fabricated criminal records/rewards. Empty lists have the same wire
// framing regardless of element type; populate only with exact DTOs later.
ViolationInfos []uint32 `json:"violationInfos"`
// No fabricated criminal records/rewards. Empty lists have the same wire
// framing regardless of element type; populate only with exact DTOs later.
CaseInfos []uint32 `json:"caseInfos"`
DutyBasicInfo PoliceDuty4229938 `json:"dutyBasicInfo"`
EscortedNpcs []uint64 `json:"escortedNpcs"`
PoliceFakeFileInfo PoliceFakeFile4229938 `json:"policeFakeFileInfo"`
PeriodInvalidVehicleFine2CountDict map[uint32]uint32 `json:"periodInvalidVehicleFine2CountDict"`
NextPeriodUpdateTime uint32 `json:"nextPeriodUpdateTime"`
}
type PoliceFakeFile4229938 struct {
UnlockFileInfoDict map[uint32]uint32 `json:"unlockFileInfoDict"`
HistoryClueAgentInfoList []uint32 `json:"historyClueAgentInfoList"`
}
type PoliceJobSync4229938 struct {
SpiritId uint32 `json:"spiritId"`
Info PoliceJob4229938 `json:"info"`
}
type PoliceDispatchSync4229938 struct {
SpiritId uint32 `json:"spiritId"`
Infos map[uint32]PoliceDispatch4229938 `json:"infos"`
}