You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

62 lines
1.6 KiB

#include "pch.h"
namespace dvl {
int MainMenuResult;
UI_Item MAINMENU_DIALOG[] = {
{ { 0, 0, 640, 480 }, UI_IMAGE, 0, 0, NULL, &ArtBackground },
{ { 64, 192, 510, 43 }, UI_LIST, UIS_HUGE | UIS_GOLD | UIS_CENTER, MAINMENU_SINGLE_PLAYER, "Single Player" },
{ { 64, 235, 510, 43 }, UI_LIST, UIS_HUGE | UIS_GOLD | UIS_CENTER, MAINMENU_MULTIPLAYER, "Multi Player" },
{ { 64, 277, 510, 43 }, UI_LIST, UIS_HUGE | UIS_GOLD | UIS_CENTER, MAINMENU_REPLAY_INTRO, "Replay Intro" },
{ { 64, 320, 510, 43 }, UI_LIST, UIS_HUGE | UIS_GOLD | UIS_CENTER, MAINMENU_SHOW_CREDITS, "Show Credits" },
{ { 64, 363, 510, 43 }, UI_LIST, UIS_HUGE | UIS_GOLD | UIS_CENTER, MAINMENU_EXIT_DIABLO, "Exit Diablo" },
{ { 17, 444, 605, 21 }, UI_TEXT, UIS_SMALL },
};
void UiMainMenuSelect(int value)
{
MainMenuResult = value;
}
void mainmenu_Esc()
{
UiMainMenuSelect(MAINMENU_EXIT_DIABLO);
}
void mainmenu_Load(char *name, void(__stdcall *fnSound)(char *file))
{
gfnSoundFunction = fnSound;
MAINMENU_DIALOG[6].caption = name;
MainMenuResult = 0;
char *pszFile = "ui_art\\mainmenu.pcx";
if (false) //DiabloUI_GetSpawned()
pszFile = "ui_art\\swmmenu.pcx";
LoadBackgroundArt(pszFile);
UiInitList(MAINMENU_SINGLE_PLAYER, MAINMENU_EXIT_DIABLO, NULL, UiMainMenuSelect, mainmenu_Esc, MAINMENU_DIALOG, size(MAINMENU_DIALOG), true);
}
void mainmenu_Free()
{
mem_free_dbg(ArtBackground.data);
ArtBackground.data = NULL;
}
BOOL __stdcall UiMainMenuDialog(char *name, int *pdwResult, void(__stdcall *fnSound)(char *file), int a4)
{
mainmenu_Load(name, fnSound);
while (MainMenuResult == 0) {
UiRender();
}
BlackPalette();
mainmenu_Free();
*pdwResult = MainMenuResult;
return TRUE;
}
}