diff options
author | Cara Salter <cara@devcara.com> | 2022-08-15 23:43:52 -0400 |
---|---|---|
committer | Cara Salter <cara@devcara.com> | 2022-08-15 23:43:52 -0400 |
commit | e6ae01729aeaffc560c59e7887c5743521677e4d (patch) | |
tree | 34ea1333a9c0ce85ac72852cd7fd1b85651dda9d /src/login.c | |
parent | f15f93f6e55d6c09b5f556f8fc8e21c29f549a96 (diff) | |
download | cmud-e6ae01729aeaffc560c59e7887c5743521677e4d.tar.gz cmud-e6ae01729aeaffc560c59e7887c5743521677e4d.zip |
data work
Diffstat (limited to 'src/login.c')
-rw-r--r-- | src/login.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/login.c b/src/login.c index 9eba897..b38fdd1 100644 --- a/src/login.c +++ b/src/login.c @@ -38,7 +38,7 @@ int step_login(playerc_t *player, int conn_fd) { for (;;) { switch (player->state) { - case LoggedOut: /* the player has yet to log in, this is a fresh connection! + case LoggedOut: ; /* the player has yet to log in, this is a fresh connection! */ printf("The player is logged out\n"); send_to_fd(player->conn, @@ -58,16 +58,22 @@ int step_login(playerc_t *player, int conn_fd) { recv(player->conn, buf, sizeof(buf), 0); if (buf[0] == 'y') { player->state = WantMakeAccount; + break; } else if (buf[0] == 'n') { send_to_fd(player->conn, "Awww :(. Oh well, hope to see you again soon!\n"); return 4; } - continue; + break; } else { - player->state = LoggedOut; - continue; + player->state = EnterPassword; + break; } + case EnterPassword: ; + asprintf(&buf, "Welcome back %s! Please enter your password, so we can confirm it.\n", player->plr.name); + send_to_fd(player->conn, buf); + recv(player->conn, buf, sizeof(buf), 0); + break; case WantMakeAccount: asprintf(&buf, "Welcome aboard %s! Why don't you start us off by giving me a password.\n", player->plr.name); send_to_fd(player->conn, buf); @@ -83,7 +89,7 @@ int step_login(playerc_t *player, int conn_fd) { send_to_fd(player->conn, "Uhhh, something happened. Try again."); printf("%d\n", err); player->state = LoggedOut; - continue; + break; } else { send_to_fd(player->conn, "Sounds good! let's drop you into a world!"); player->state = Complete; @@ -91,10 +97,14 @@ int step_login(playerc_t *player, int conn_fd) { player->plr.level = 1; player->plr.xp = 0; player->plr.location_id = 0; + printf("Trying to write player\n"); try_write_plr(&player->plr); + printf("Done\n"); player->state = Complete; } } + case Complete: ; + return 0; } } |