Added game_menu variable. Started implementing menu-item sending.
This commit is contained in:
parent
3a1d9ff266
commit
ae38341601
@ -31,6 +31,7 @@
|
||||
#include "players.h"
|
||||
#include "db.h"
|
||||
#include "configuration.h"
|
||||
#include "menu.h"
|
||||
|
||||
/**
|
||||
* SECTION:game-networking
|
||||
@ -51,6 +52,12 @@ struct AcceptData {
|
||||
*/
|
||||
GSList *clients = NULL;
|
||||
|
||||
/**
|
||||
* game_menu:
|
||||
* The list of menu items to display after a successful login
|
||||
*/
|
||||
static GSList *game_menu = NULL;
|
||||
|
||||
void wmud_client_interpret_newplayer_email(wmudClient *client);
|
||||
void wmud_client_interpret_newplayer_mailconfirm(wmudClient *client);
|
||||
|
||||
@ -79,6 +86,12 @@ wmud_client_close(wmudClient *client, gboolean send_goodbye)
|
||||
g_free(client);
|
||||
}
|
||||
|
||||
void
|
||||
send_menu_item(wmudMenu *item, wmudClient *client)
|
||||
{
|
||||
wmud_client_send(client, "Item\r\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* wmud_client_callback:
|
||||
* @client: the socket of the client on which the data arrived
|
||||
@ -214,6 +227,7 @@ wmud_client_callback(GSocket *client_socket, GIOCondition condition, wmudClient
|
||||
client->state = WMUD_CLIENT_STATE_MENU;
|
||||
/* TODO: send MOTD */
|
||||
/* TODO: send menu items */
|
||||
//g_slist_foreach(game_menu, (GFunc)send_menu_item, client);
|
||||
/* TODO: send menu prologue */
|
||||
}
|
||||
else
|
||||
@ -419,7 +433,7 @@ game_source_callback(GSocket *socket, GIOCondition condition, struct AcceptData
|
||||
* err is set accordingly (if not NULL)
|
||||
*/
|
||||
gboolean
|
||||
wmud_networking_init(guint port_number, GMainContext *game_context, GError **err)
|
||||
wmud_networking_init(guint port_number, GMainContext *game_context, GSList *menu_items, GError **err)
|
||||
{
|
||||
struct AcceptData *accept_data;
|
||||
GSocketListener *game_listener;
|
||||
@ -524,6 +538,8 @@ wmud_networking_init(guint port_number, GMainContext *game_context, GError **err
|
||||
g_source_attach(game_net_source4, game_context);
|
||||
}
|
||||
|
||||
game_menu = menu_items;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@
|
||||
|
||||
extern GSList *clients;
|
||||
|
||||
gboolean wmud_networking_init(guint port_number, GMainContext *game_context, GError **err);
|
||||
gboolean wmud_networking_init(guint port_number, GMainContext *game_context, GSList *menu_items, GError **err);
|
||||
void wmud_client_send(wmudClient *client, const gchar *fmt, ...);
|
||||
|
||||
#endif
|
||||
|
@ -190,12 +190,12 @@ main(int argc, char **argv)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Initialization ends here */
|
||||
/* Non-thread initialization ends here */
|
||||
|
||||
wmud_game_init(&game_thread, &game_context, game_menu);
|
||||
wmud_game_init(&game_thread, &game_context);
|
||||
|
||||
g_clear_error(&err);
|
||||
if (!wmud_networking_init(active_config->port, game_context, &err))
|
||||
if (!wmud_networking_init(active_config->port, game_context, game_menu, &err))
|
||||
{
|
||||
if (err)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user