/* Screen locking routines... spoon of password, basically... */ void unlock_screen(player * p, char *str) { if(strcmp(p->slock_pw, str)) { do_prompt(p, " Please enter CORRECT password to unlock screen:"); p->input_to_fn = unlock_screen; } else { password_mode_off(p); p->input_to_fn = 0; p->flags |= PROMPT; strcpy(p->slock_pw, ""); tell_player(p, " Screen is now unlocked.\n"); } } void confirm_slock2(player * p, char *str) { #ifdef TRACK sprintf(functionin,"got_password (%s , SOMETHING)",p->name); addfunction(functionin); #endif if (strcmp(p->slock_pw, str)) { password_mode_off(p); p->flags |= PROMPT; p->input_to_fn = 0; strcpy(p->slock_pw, ""); tell_player(p, "\n But that doesn't match !!!\n" " screen not locked ...\n"); } else { do_prompt(p, "\n Screen is now locked - No one may type any commands" " without unlocking it with the current password.\n" " Please enter password to unlock screen:"); p->input_to_fn = unlock_screen; } } void confirm_slock1(player * p, char *str) { #ifdef TRACK sprintf(functionin,"got_password1 (%s , SOMETHING)",p->name); addfunction(functionin); #endif if (strlen(str) > (MAX_PASSWORD - 2)) { do_prompt(p, "\n Password too long, please try again.\n" " Please enter a shorter password:"); p->input_to_fn = confirm_slock1; } else { strcpy(p->slock_pw, str); do_prompt(p, "\n Enter password again to verify:"); p->input_to_fn = confirm_slock2; } } void set_screenlock(player * p, char *str) { #ifdef TRACK sprintf(functionin,"change_password (%s , SOMETHING)",p->name); addfunction(functionin); #endif password_mode_on(p); p->flags &= ~PROMPT; do_prompt(p, " Entering screen lock mode:\n" " Please enter a password:"); p->input_to_fn = confirm_slock1; }