Added a randomized response on unknown commands.
Signed-off-by: Gergely Polonkai (W00d5t0ck) <polesz@w00d5t0ck.info>
This commit is contained in:
parent
c715d19b2d
commit
b29f7c9063
@ -4,6 +4,7 @@
|
||||
|
||||
#include "interpreter.h"
|
||||
#include "networking.h"
|
||||
#include "main.h"
|
||||
|
||||
#define IS_SPACE(c) (g_ascii_isspace((c)) || (!(c)))
|
||||
|
||||
@ -95,7 +96,7 @@ wmud_interpret_game_command(wmudClient *client)
|
||||
{
|
||||
wmud_client_send(client, "You should close quotes of any kind, like %c, shouldn't you?\r\n", str_delim);
|
||||
#if GLIB_CHECK_VERSION(2, 28, 0)
|
||||
g_slist_free_full(command_parts, destroy_string);
|
||||
g_slist_free_full(command_parts, (GDestroyNotify)destroy_string);
|
||||
#else
|
||||
g_slist_foreach(command_parts, (GFunc)destroy_string, NULL);
|
||||
g_slist_free(command_parts);
|
||||
@ -131,13 +132,27 @@ wmud_interpret_game_command(wmudClient *client)
|
||||
}
|
||||
}
|
||||
|
||||
if (match_count == 1)
|
||||
switch (match_count)
|
||||
{
|
||||
((wmudCommand *)(matches->data))->commandFunc(client, ((GString *)(command_parts->data))->str, command_parts->next);
|
||||
}
|
||||
else
|
||||
{
|
||||
wmud_client_send(client, "This command could mean several things, please try a more exact form!\r\n");
|
||||
case 0:
|
||||
switch (random_number(1, 3))
|
||||
{
|
||||
case 1:
|
||||
wmud_client_send(client, "Huh?\r\n");
|
||||
break;
|
||||
case 2:
|
||||
wmud_client_send(client, "What?\r\n");
|
||||
break;
|
||||
case 3:
|
||||
wmud_client_send(client, "I can hardly understand you...\r\n");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
((wmudCommand *)(matches->data))->commandFunc(client, ((GString *)(command_parts->data))->str, command_parts->next);
|
||||
break;
|
||||
default:
|
||||
wmud_client_send(client, "This command could mean several things, please try a more exact form!\r\n");
|
||||
}
|
||||
|
||||
g_slist_free(matches);
|
||||
|
@ -18,6 +18,7 @@ struct {
|
||||
GMainContext *game_context;
|
||||
guint32 elapsed_seconds = 0;
|
||||
guint32 elapsed_cycle = 0;
|
||||
GRand *main_rand = NULL;
|
||||
|
||||
gboolean
|
||||
rl_sec_elapsed(gpointer user_data)
|
||||
@ -61,6 +62,8 @@ main(int argc, char **argv)
|
||||
|
||||
g_print("Starting up...\n");
|
||||
|
||||
main_rand = g_rand_new();
|
||||
|
||||
game_context = g_main_context_new();
|
||||
game_loop = g_main_loop_new(game_context, FALSE);
|
||||
|
||||
|
@ -5,6 +5,9 @@
|
||||
|
||||
extern GMainContext *game_context;
|
||||
extern guint32 elapsed_seconds;
|
||||
extern GRand *main_rand;
|
||||
|
||||
#define random_number(a, b) g_rand_int_range(main_rand, (a), (b) + 1)
|
||||
|
||||
#endif /* __WMUD_MAIN_H__ */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user