Browse Source

Repeat the intro if no activity for 30 sec (#213)

pull/220/head
vimino 7 years ago committed by Anders Jenbo
parent
commit
4910b3b081
  1. 18
      SourceX/DiabloUI/diabloui.cpp
  2. 2
      SourceX/DiabloUI/diabloui.h
  3. 15
      SourceX/DiabloUI/mainmenu.cpp

18
SourceX/DiabloUI/diabloui.cpp

@ -215,6 +215,24 @@ bool UiFocusNavigation(SDL_Event *event)
if (event->type == SDL_QUIT)
exit(0);
switch(event->type) {
case SDL_KEYUP:
case SDL_MOUSEBUTTONUP:
case SDL_MOUSEMOTION:
case SDL_MOUSEWHEEL:
case SDL_JOYBUTTONUP:
case SDL_JOYAXISMOTION:
case SDL_JOYBALLMOTION:
case SDL_JOYHATMOTION:
case SDL_FINGERUP:
case SDL_FINGERMOTION:
case SDL_CONTROLLERBUTTONUP:
case SDL_CONTROLLERAXISMOTION:
case SDL_SYSWMEVENT:
case SDL_WINDOWEVENT:
mainmenu_restart_repintro();
}
if (event->type == SDL_KEYDOWN) {
switch (event->key.keysym.sym) {
case SDLK_UP:

2
SourceX/DiabloUI/diabloui.h

@ -119,4 +119,6 @@ void WordWrap(UI_Item *item);
void DvlIntSetting(const char *valuename, int *value);
void DvlStringSetting(const char *valuename, char *string, int len);
void mainmenu_restart_repintro();
}

15
SourceX/DiabloUI/mainmenu.cpp

@ -3,6 +3,9 @@
namespace dvl {
int mainmenu_repintro_delay; //seconds
DWORD dwTicks;
int MainMenuResult;
UI_Item MAINMENU_DIALOG[] = {
{ { 0, 0, 640, 480 }, UI_IMAGE, 0, 0, NULL, &ArtBackground },
@ -24,6 +27,11 @@ void mainmenu_Esc()
UiMainMenuSelect(MAINMENU_EXIT_DIABLO);
}
void mainmenu_restart_repintro()
{
dwTicks = GetTickCount() + mainmenu_repintro_delay * 1000;
}
void mainmenu_Load(char *name, void(*fnSound)(char *file))
{
gfnSoundFunction = fnSound;
@ -47,9 +55,16 @@ void mainmenu_Free()
BOOL UiMainMenuDialog(char *name, int *pdwResult, void(*fnSound)(char *file), int a4)
{
mainmenu_repintro_delay = a4;
mainmenu_Load(name, fnSound);
mainmenu_restart_repintro(); // for automatic starts
while (MainMenuResult == 0) {
if (GetTickCount() >= dwTicks) {
mainmenu_play_intro();
break;
}
UiRender();
}

Loading…
Cancel
Save