void pawsCharacterPickerWindow::OnStringEntered(const char *name, int param,const char *value) { if (!value) return; csString passwordhash = csMD5::Encode(value).HexString(); if (passHash != passwordhash) { PawsManager::GetSingleton().SetModalWidget(NULL); PawsManager::GetSingleton().CreateWarningBox("Wrong password entered!"); } else { csString name; name.Format("SelectCharacter%i", selectedCharacter); // Get Full name. psString charFullName( ((pawsButton*)FindWidget(name))->GetText() ); psString charFirstName; charFullName.GetWord( 0, charFirstName ); psCharDeleteMessage msg(charFirstName, 0); msg.SendMessage(); } }
bool pawsCharacterPickerWindow::OnButtonReleased(int /*mouseButton*/, int /*keyModifer*/, pawsWidget* widget) { if(!widget) return false; switch ( widget->GetID() ) { case YES_DELETE_CHARACTER: { PawsManager::GetSingleton().SetModalWidget(NULL); widget->GetParent()->Hide(); pawsStringPromptWindow::Create("Please enter your account password to confirm:", csString(""),false, 220, 20, this, "DeletionConfirm", 0, true); pawsEditTextBox* passbox = dynamic_cast<pawsEditTextBox*> (PawsManager::GetSingleton().FindWidget("stringPromptEntry")); if (passbox) { passbox->SetPassword(true); } return true; } case NO_DELETE_CHARACTER: { return true; } case CONFIRM_YES: { //Delete the selected character csString name; name.Format("SelectCharacter%i", selectedCharacter); // Get Full name. psString charFullName( ((pawsButton*)FindWidget(name))->GetText() ); psString charFirstName; charFullName.GetWord( 0, charFirstName ); psCharDeleteMessage msg(charFirstName, 0); msg.SendMessage(); return true; } case CONFIRM_NO: { PawsManager::GetSingleton().SetModalWidget(NULL); widget->GetParent()->Hide(); return true; } } return false; }
void pawsCharacterPickerWindow::OnStringEntered(const char* /*name*/, int /*param*/, const char* value) { if (!value) return; csString passwordhash; csString passHashorig; if(passHash256.Length() > 0) { passwordhash = CS::Utility::Checksum::SHA256::Encode(value).HexString(); passHashorig = passHash256; } else { passwordhash = csMD5::Encode(value).HexString(); passHashorig = passHash; } if (passHashorig != passwordhash) { PawsManager::GetSingleton().SetModalWidget(NULL); PawsManager::GetSingleton().CreateWarningBox("Wrong password entered!"); } else { csString name; name.Format("SelectCharacter%i", selectedCharacter); // Get Full name. psString charFullName( ((pawsButton*)FindWidget(name))->GetText() ); psString charFirstName; charFullName.GetWord( 0, charFirstName ); psCharDeleteMessage msg(charFirstName, 0); msg.SendMessage(); } }
bool pawsCharacterPickerWindow::OnButtonPressed( int mouseButton, int keyModifer, pawsWidget* widget ) { if(!widget) return false; switch ( widget->GetID() ) { case YES_DELETE_CHARACTER: { PawsManager::GetSingleton().SetModalWidget(NULL); widget->GetParent()->Hide(); pawsStringPromptWindow::Create("Please enter your account password to confirm:", csString(""),false, 220, 20, this, "DeletionConfirm", 0, true); pawsEditTextBox* passbox = dynamic_cast<pawsEditTextBox*> (PawsManager::GetSingleton().FindWidget("stringPromptEntry")); if (passbox) { passbox->SetPassword(true); } return true; } case NO_DELETE_CHARACTER: { return true; } case CHARACTER_DELETE_BUTTON: { csString name; name.Format("SelectCharacter%i", selectedCharacter); csString confirm; // Catch empty selection. if(selectedCharacter < 0) { confirm.Format( "You must select a character to delete!" ); PawsManager::GetSingleton().CreateWarningBox( confirm, this ); return false; } csString charName(((pawsButton*)FindWidget(name))->GetText()); // Catch invalid selection. if(charName == "New Character") return false; csString msg("Warning! this will PERMANENTLY DELETE your character. Are you sure you want to continue?"); pawsYesNoBox::Create(this, msg, YES_DELETE_CHARACTER, NO_DELETE_CHARACTER); return true; } case BACK_BUTTON: { ReturnToLoginWindow(); return true; } case CONFIRM_YES: { //Delete the selected character csString name; name.Format("SelectCharacter%i", selectedCharacter); // Get Full name. psString charFullName( ((pawsButton*)FindWidget(name))->GetText() ); psString charFirstName; charFullName.GetWord( 0, charFirstName ); psCharDeleteMessage msg(charFirstName, 0); msg.SendMessage(); return true; } case CONFIRM_NO: { PawsManager::GetSingleton().SetModalWidget(NULL); widget->GetParent()->Hide(); return true; } case CHARACTER_BUTTON_0: case CHARACTER_BUTTON_1: case CHARACTER_BUTTON_2: case CHARACTER_BUTTON_3: { if(!connecting) { SelectCharacter(widget->GetID(),widget); } break; } case CHARACTER_ACTION_BUTTON: { // if we have a character then we play as that one. if ( selectedCharacter != -1 && !connecting ) { // Disable the button so that we don't send 2 picker message connecting = true; csString name; name.Format("SelectCharacter%i", selectedCharacter); // Send the name of the character to the server. csString charname( ((pawsButton*)FindWidget(name))->GetText() ); psCharacterPickerMessage msg(charname); msg.SendMessage(); } return true; } case QUIT_BUTTON: { psengine->QuitClient(); return true; } } return false; }