diff --git a/src/info.c b/src/info.c index 4209787a..b71a93de 100644 --- a/src/info.c +++ b/src/info.c @@ -13048,7 +13048,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 0, // speed 16*FRACUNIT, // radius 48*FRACUNIT, // height - 0, // display offset + -1, // display offset 1000, // mass 8, // damage sfx_None, // activesound diff --git a/src/m_menu.c b/src/m_menu.c index 90af50bd..543ff0c1 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -2193,6 +2193,27 @@ static void M_ChangeCvar(INT32 choice) { consvar_t *cv = (consvar_t *)currentMenu->menuitems[itemOn].itemaction; + if (choice == -1) + { + if (cv == &cv_dummystaff + || cv == &cv_nextmap + || cv == &cv_newgametype) + return; + if (currentMenu == &SP_TimeAttackDef) + { + if (cv == &cv_playercolor) + { + SINT8 skinno = R_SkinAvailable(cv_chooseskin.string); + if (skinno == -1) + return; + CV_SetValue(cv,skins[skinno].prefcolor); + } + return; + } + CV_Set(cv,cv->defaultvalue); + return; + } + if (((currentMenu->menuitems[itemOn].status & IT_CVARTYPE) == IT_CV_SLIDER) ||((currentMenu->menuitems[itemOn].status & IT_CVARTYPE) == IT_CV_INVISSLIDER) ||((currentMenu->menuitems[itemOn].status & IT_CVARTYPE) == IT_CV_NOMOD)) @@ -2649,6 +2670,16 @@ boolean M_Responder(event_t *ev) G_ClearControlKeys(setupcontrols, currentMenu->menuitems[itemOn].alphaKey); return true; } + + if (routine && ((currentMenu->menuitems[itemOn].status & IT_TYPE) == IT_ARROWS + || (currentMenu->menuitems[itemOn].status & IT_TYPE) == IT_CVAR)) + { + if (currentMenu != &OP_SoundOptionsDef) + S_StartSound(NULL, sfx_menu1); + routine(-1); + return true; + } + // Why _does_ backspace go back anyway? //currentMenu->lastOn = itemOn; //if (currentMenu->prevMenu)