aboutsummaryrefslogtreecommitdiff
path: root/src/login.c
diff options
context:
space:
mode:
authorCara Salter <cara@devcara.com>2022-08-15 23:43:52 -0400
committerCara Salter <cara@devcara.com>2022-08-15 23:43:52 -0400
commite6ae01729aeaffc560c59e7887c5743521677e4d (patch)
tree34ea1333a9c0ce85ac72852cd7fd1b85651dda9d /src/login.c
parentf15f93f6e55d6c09b5f556f8fc8e21c29f549a96 (diff)
downloadcmud-e6ae01729aeaffc560c59e7887c5743521677e4d.tar.gz
cmud-e6ae01729aeaffc560c59e7887c5743521677e4d.zip
data work
Diffstat (limited to 'src/login.c')
-rw-r--r--src/login.c20
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;
}
}