|
|
|
|
#include "selyesno.h"
|
|
|
|
|
|
|
|
|
|
#include "DiabloUI/diabloui.h"
|
|
|
|
|
#include "devilution.h"
|
|
|
|
|
|
|
|
|
|
namespace dvl {
|
|
|
|
|
|
|
|
|
|
_uiheroinfo selyesno_heroInfo;
|
|
|
|
|
int selyesno_endMenu;
|
|
|
|
|
BOOL(*selyesno_gfnRemove)
|
|
|
|
|
(_uiheroinfo *);
|
|
|
|
|
char selyesno_confirmationMessage[256];
|
|
|
|
|
char selyesno_title[32];
|
|
|
|
|
|
|
|
|
|
UI_Item SELYESNO_DIALOG[] = {
|
|
|
|
|
{ { 0, 0, 640, 480 }, UI_IMAGE, 0, 0, NULL, &ArtBackground },
|
|
|
|
|
{ { 24, 161, 590, 35 }, UI_TEXT, UIS_CENTER | UIS_BIG, 0, selyesno_title },
|
|
|
|
|
{ { 120, 236, 280, 168 }, UI_TEXT, UIS_MED, 0, selyesno_confirmationMessage },
|
|
|
|
|
{ { 230, 390, 180, 35 }, UI_LIST, UIS_CENTER | UIS_BIG | UIS_GOLD, 0, "Yes" },
|
|
|
|
|
{ { 230, 426, 180, 35 }, UI_LIST, UIS_CENTER | UIS_BIG | UIS_GOLD, 1, "No" },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void selyesno_Free()
|
|
|
|
|
{
|
|
|
|
|
ArtBackground.Unload();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void selyesno_Select(int value)
|
|
|
|
|
{
|
|
|
|
|
if (value == 0)
|
|
|
|
|
selyesno_gfnRemove(&selyesno_heroInfo);
|
|
|
|
|
|
|
|
|
|
selyesno_endMenu = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void selyesno_Esc()
|
|
|
|
|
{
|
|
|
|
|
selyesno_endMenu = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOL UiSelHeroDelYesNoDialog(
|
|
|
|
|
BOOL (*fnremove)(_uiheroinfo *),
|
|
|
|
|
_uiheroinfo *selectHero,
|
|
|
|
|
bool isMultiplayer)
|
|
|
|
|
{
|
|
|
|
|
selyesno_heroInfo = *selectHero;
|
|
|
|
|
selyesno_gfnRemove = fnremove;
|
|
|
|
|
LoadBackgroundArt("ui_art\\black.pcx");
|
|
|
|
|
|
|
|
|
|
if (isMultiplayer) {
|
|
|
|
|
sprintf(selyesno_title, "Delete Multi Player Hero");
|
|
|
|
|
} else {
|
|
|
|
|
sprintf(selyesno_title, "Delete Single Player Hero");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sprintf(selyesno_confirmationMessage, "Are you sure you want to delete the character \"%s\"?", selyesno_heroInfo.name);
|
|
|
|
|
WordWrap(&SELYESNO_DIALOG[2]);
|
|
|
|
|
|
|
|
|
|
UiInitList(0, 1, NULL, selyesno_Select, selyesno_Esc, SELYESNO_DIALOG, size(SELYESNO_DIALOG), false, NULL);
|
|
|
|
|
|
|
|
|
|
selyesno_endMenu = false;
|
|
|
|
|
while (!selyesno_endMenu) {
|
|
|
|
|
UiRenderItems(SELYESNO_DIALOG, size(SELYESNO_DIALOG));
|
|
|
|
|
UiRender();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BlackPalette();
|
|
|
|
|
|
|
|
|
|
selyesno_Free();
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|