- printf("OP_STOP_PLAYING: %d\n", buf[0]);
- sprintf(msgbuf, "client %d stops game", buf[0]);
- sysmsg(msgbuf);
+ printf("OP_STOP_PLAYING: %d [%d]\n", buffer[0], buffer[2]);
+ Error(ERR_NETWORK_CLIENT, "client %d stops game [%d]", buffer[0], buffer[2]);
+
+ if (game_status == GAME_MODE_PLAYING)
+ {
+ if (buffer[2] == NETWORK_STOP_BY_PLAYER)
+ Request("Network game stopped by player!", REQ_CONFIRM);
+ else if (buffer[2] == NETWORK_STOP_BY_ERROR)
+ Request("Network game stopped due to internal error!", REQ_CONFIRM);
+ else
+ Request("Network game stopped!", REQ_CONFIRM);
+ }
+
+ SetGameStatus(GAME_MODE_MAIN);