diff --git a/Source/gamemenu.cpp b/Source/gamemenu.cpp index 52afbf5a5..cb23ec02b 100644 --- a/Source/gamemenu.cpp +++ b/Source/gamemenu.cpp @@ -1,5 +1,9 @@ #include "diablo.h" +#ifdef HELLFIRE +BOOL jogging_opt = TRUE; +#endif + TMenuItem sgSingleMenu[6] = { // clang-format off // dwFlags, pszStr, fnMenu diff --git a/Source/gamemenu.h b/Source/gamemenu.h index 96daa5428..9705a8bf2 100644 --- a/Source/gamemenu.h +++ b/Source/gamemenu.h @@ -2,6 +2,10 @@ #ifndef __GAMEMENU_H__ #define __GAMEMENU_H__ +#ifdef HELLFIRE +extern BOOL jogging_opt; +#endif + void gamemenu_previous(); void gamemenu_enable_single(TMenuItem *pMenuItems); void gamemenu_enable_multi(TMenuItem *pMenuItems); diff --git a/Source/player.cpp b/Source/player.cpp index f319bc5f3..c3c7fd6c4 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -1344,12 +1344,23 @@ void PM_ChangeOffset(int pnum) plr[pnum]._pVar6 += plr[pnum]._pxvel; plr[pnum]._pVar7 += plr[pnum]._pyvel; + +#ifdef HELLFIRE + if (currlevel == 0 && jogging_opt) { + plr[pnum]._pVar6 += plr[pnum]._pxvel; + plr[pnum]._pVar7 += plr[pnum]._pyvel; + } +#endif + plr[pnum]._pxoff = plr[pnum]._pVar6 >> 8; plr[pnum]._pyoff = plr[pnum]._pVar7 >> 8; + px -= plr[pnum]._pVar6 >> 8; + py -= plr[pnum]._pVar7 >> 8; + if (pnum == myplr && ScrollInfo._sdir) { - ScrollInfo._sxoff += px - plr[pnum]._pxoff; - ScrollInfo._syoff += py - plr[pnum]._pyoff; + ScrollInfo._sxoff += px; + ScrollInfo._syoff += py; } PM_ChangeLightOff(pnum);