diff --git a/nq/include/client.h b/nq/include/client.h index e3f053016..a00b94890 100644 --- a/nq/include/client.h +++ b/nq/include/client.h @@ -91,6 +91,7 @@ typedef struct { // connection information cactive_t state; signon_t signon; + keydest_t key_dest; // network stuff struct qsocket_s *netcon; diff --git a/nq/source/cl_demo.c b/nq/source/cl_demo.c index 03950998a..b15747467 100644 --- a/nq/source/cl_demo.c +++ b/nq/source/cl_demo.c @@ -478,6 +478,7 @@ CL_StartDemo (void) cls.demoplayback = true; CL_SetState (ca_connected); cls.forcetrack = 0; + cls.key_dest = key_demo; Key_SetKeyDest (key_demo); while ((c = Qgetc (cls.demofile)) != '\n') diff --git a/nq/source/cl_main.c b/nq/source/cl_main.c index 1bb8ffeb8..14bd9637e 100644 --- a/nq/source/cl_main.c +++ b/nq/source/cl_main.c @@ -323,7 +323,7 @@ CL_EstablishConnection (const char *host) cls.demonum = -1; // not in the demo loop now CL_SetState (ca_connected); - Key_SetKeyDest (key_game); + Key_SetKeyDest (cls.key_dest); } /* @@ -514,14 +514,14 @@ CL_SetState (cactive_t state) cls.signon = so_none; // need all the signon messages // before playing cl.loading = true; - Key_SetKeyDest (key_game); + Key_SetKeyDest (cls.key_dest); IN_ClearStates (); VID_SetCaption ("Connected"); break; case ca_active: // entering active state cl.loading = false; - Key_SetKeyDest (key_game); + Key_SetKeyDest (cls.key_dest); IN_ClearStates (); VID_SetCaption (""); S_AmbientOn (); @@ -583,5 +583,6 @@ CL_Init (cbuf_t *cbuf) "to be level"); SZ_Alloc (&cls.message, 1024); + cls.key_dest = key_game; CL_SetState (ca_disconnected); }