From f646ddb88ec19307d42729b7babdb77966449327 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sat, 18 May 2024 12:31:46 +0200 Subject: ingame menu & network work --- src/game.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/game.c') diff --git a/src/game.c b/src/game.c index 6e07f65..181a041 100644 --- a/src/game.c +++ b/src/game.c @@ -31,6 +31,16 @@ static u32 get_session_id() { return (((time * 2654435789U) + time) * 2654435789U) + platform_get_processid(); } +static void client_on_disconnect() +{ + clear_players(); + clear_zombies(); + global_scene_state = SCENE_MAIN_MENU; + global_state.state = GAMESTATE_PLAYING; + current_menu_state = MENU_STATE_MAIN; + network_client_close(global_state.client); +} + bool connect_to_server(char* ip, char* port) { client_incomming_allocator = create_allocator(MAX_NETWORK_BUFFER_SIZE); @@ -40,10 +50,11 @@ bool connect_to_server(char* ip, char* port) { global_state.network_state = CONNECTING; global_state.client = network_connect_to_server(ip, port); global_state.client->on_message = client_on_message_received; + global_state.client->on_disconnect = client_on_disconnect; if (global_state.server) { player_id = 127001; - spawn_player(player_id, (network_client){0, false, 0, "Host"}); + spawn_player(player_id, (network_client){0, false, 0, 0, "Host"}); global_state.network_state = CONNECTED; return true; } -- cgit v1.2.3-70-g09d2