From c620e4c982df402def5f2757b3228e139ca04fd9 Mon Sep 17 00:00:00 2001 From: Tangent Wantwight Date: Sat, 9 May 2020 22:08:22 -0400 Subject: [PATCH] Reset state on client connection instead of as a special manipulation of the local server. --- src/Net/LockstepClient.ts | 5 +++++ src/Net/LoopbackServer.ts | 7 +++---- src/index.ts | 2 -- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Net/LockstepClient.ts b/src/Net/LockstepClient.ts index 7e36fbf..929a5cc 100644 --- a/src/Net/LockstepClient.ts +++ b/src/Net/LockstepClient.ts @@ -92,6 +92,11 @@ export abstract class LockstepClient { } }); + // talkback should exist at this point, send reset message + if(this.serverTalkback) { + this.serverTalkback(1, {t: MessageTypes.SET_STATE, s: {}}); + } + // disposal return () => { this.serverTalkback?.(2); diff --git a/src/Net/LoopbackServer.ts b/src/Net/LoopbackServer.ts index 1293658..c4f8dcc 100644 --- a/src/Net/LoopbackServer.ts +++ b/src/Net/LoopbackServer.ts @@ -39,6 +39,9 @@ export class LoopbackServer { this.inputBuffer[playerNumber] = message.i; } break; + case MessageTypes.SET_STATE: + this.broadcast(1, { t: MessageTypes.SET_STATE, u: -1, s: message.s }); + break; } } @@ -52,8 +55,4 @@ export class LoopbackServer { return message; } } - - public resetState(newState: Partial) { - this.broadcast(1, { t: MessageTypes.SET_STATE, u: -1, s: newState }); - } } diff --git a/src/index.ts b/src/index.ts index 75584c7..4f87441 100644 --- a/src/index.ts +++ b/src/index.ts @@ -20,6 +20,4 @@ const server = new LoopbackServer(); Select(".GameCanvas").forEachCanvas((c, cx, keys) => new Main(c, cx, keys, server)); -server.resetState({}); - BindTests();