diff --git a/src/common/menu/menu.cpp b/src/common/menu/menu.cpp index 6a8ce3ddc..deee74597 100644 --- a/src/common/menu/menu.cpp +++ b/src/common/menu/menu.cpp @@ -1033,6 +1033,8 @@ DEFINE_FIELD(DListMenuDescriptor, mFontColor2) DEFINE_FIELD(DListMenuDescriptor, mAnimatedTransition) DEFINE_FIELD(DListMenuDescriptor, mAnimated) DEFINE_FIELD(DListMenuDescriptor, mCenter) +DEFINE_FIELD(DListMenuDescriptor, mDontDim) +DEFINE_FIELD(DListMenuDescriptor, mDontBlur) DEFINE_FIELD(DListMenuDescriptor, mVirtWidth) DEFINE_FIELD(DListMenuDescriptor, mVirtHeight) @@ -1045,6 +1047,9 @@ DEFINE_FIELD(DOptionMenuDescriptor, mScrollPos) DEFINE_FIELD(DOptionMenuDescriptor, mIndent) DEFINE_FIELD(DOptionMenuDescriptor, mPosition) DEFINE_FIELD(DOptionMenuDescriptor, mDontDim) +DEFINE_FIELD(DOptionMenuDescriptor, mDontBlur) +DEFINE_FIELD(DOptionMenuDescriptor, mAnimatedTransition) +DEFINE_FIELD(DOptionMenuDescriptor, mAnimated) DEFINE_FIELD(DOptionMenuDescriptor, mFont) DEFINE_FIELD(FOptionMenuSettings, mTitleColor) @@ -1063,6 +1068,8 @@ DEFINE_FIELD(DImageScrollerDescriptor,textFont) DEFINE_FIELD(DImageScrollerDescriptor, textScale) DEFINE_FIELD(DImageScrollerDescriptor, mAnimatedTransition) DEFINE_FIELD(DImageScrollerDescriptor, mAnimated) +DEFINE_FIELD(DImageScrollerDescriptor, mDontDim) +DEFINE_FIELD(DImageScrollerDescriptor, mDontBlur) DEFINE_FIELD(DImageScrollerDescriptor, virtWidth) DEFINE_FIELD(DImageScrollerDescriptor, virtHeight) diff --git a/src/common/menu/menu.h b/src/common/menu/menu.h index aaeecbcd4..3bd23b3b8 100644 --- a/src/common/menu/menu.h +++ b/src/common/menu/menu.h @@ -91,6 +91,8 @@ public: bool mFromEngine; bool mAnimated; bool mAnimatedTransition; + bool mDontDim; + bool mDontBlur; int mVirtWidth; int mVirtHeight; bool mCustomSizeSet; @@ -124,6 +126,9 @@ public: int mIndent; int mPosition; bool mDontDim; + bool mDontBlur; + bool mAnimatedTransition; + bool mAnimated; FFont *mFont; void CalcIndent(); @@ -143,6 +148,8 @@ public: double textScale; bool mAnimatedTransition; bool mAnimated; + bool mDontDim; + bool mDontBlur; int virtWidth, virtHeight; }; diff --git a/src/common/menu/menudef.cpp b/src/common/menu/menudef.cpp index 1b25fcdad..7076f8b7b 100644 --- a/src/common/menu/menudef.cpp +++ b/src/common/menu/menudef.cpp @@ -358,6 +358,14 @@ static void DoParseListMenuBody(FScanner &sc, DListMenuDescriptor *desc, bool &s { desc->mAnimated = true; } + else if (sc.Compare("DontDim")) + { + desc->mDontDim = true; + } + else if (sc.Compare("DontBlur")) + { + desc->mDontBlur = true; + } else if (sc.Compare("MouseWindow")) { sc.MustGetNumber(); @@ -763,6 +771,10 @@ static void ParseListMenu(FScanner &sc) desc->mFromEngine = fileSystem.GetFileContainer(sc.LumpNum) == 0; // flags menu if the definition is from the IWAD. desc->mVirtWidth = -2; desc->mCustomSizeSet = false; + desc->mAnimatedTransition = false; + desc->mAnimated = false; + desc->mDontDim = false; + desc->mDontBlur = false; desc->mForceList = false; if (DefaultListMenuSettings->mCustomSizeSet) { @@ -1020,6 +1032,22 @@ static void ParseOptionMenuBody(FScanner &sc, DOptionMenuDescriptor *desc, int i sc.MustGetNumber(); desc->mIndent = sc.Number; } + else if (sc.Compare("AnimatedTransition")) + { + desc->mAnimatedTransition = true; + } + else if (sc.Compare("Animated")) + { + desc->mAnimated = true; + } + else if (sc.Compare("DontDim")) + { + desc->mDontDim = true; + } + else if (sc.Compare("DontBlur")) + { + desc->mDontBlur = true; + } else { bool success = false; @@ -1189,7 +1217,10 @@ static void ParseOptionMenu(FScanner &sc) desc->mPosition = DefaultOptionMenuSettings->mPosition; desc->mScrollTop = DefaultOptionMenuSettings->mScrollTop; desc->mIndent = DefaultOptionMenuSettings->mIndent; - desc->mDontDim = DefaultOptionMenuSettings->mDontDim; + desc->mDontDim = false; + desc->mDontBlur = false; + desc->mAnimatedTransition = false; + desc->mAnimated = false; desc->mProtected = sc.CheckString("protected"); ParseOptionMenuBody(sc, desc, -1); @@ -1275,6 +1306,14 @@ static void ParseImageScrollerBody(FScanner& sc, DImageScrollerDescriptor* desc) { desc->mAnimated = true; } + else if (sc.Compare("DontDim")) + { + desc->mDontDim = true; + } + else if (sc.Compare("DontBlur")) + { + desc->mDontBlur = true; + } else if (sc.Compare("textBackground")) { sc.MustGetString(); @@ -1450,7 +1489,10 @@ static void ParseImageScroller(FScanner& sc) desc->textBackgroundBrightness = 0xffffffff; desc->textFont = SmallFont; desc->textScale = 1; + desc->mDontDim = false; + desc->mDontBlur = false; desc->mAnimatedTransition = false; + desc->mAnimated = false; desc->virtWidth = 320; desc->virtHeight = 200; diff --git a/src/menu/doommenu.cpp b/src/menu/doommenu.cpp index 82f4ac94b..5fd354202 100644 --- a/src/menu/doommenu.cpp +++ b/src/menu/doommenu.cpp @@ -694,6 +694,9 @@ void M_StartupEpisodeMenu(FNewGameStartup *gs) od->mScrollTop = 0; od->mIndent = 160; od->mDontDim = false; + od->mDontBlur = false; + od->mAnimatedTransition = false; + od->mAnimated = false; GC::WriteBarrier(od); for(unsigned i = 0; i < AllEpisodes.Size(); i++) { @@ -829,6 +832,9 @@ static void BuildPlayerclassMenu() od->mScrollTop = 0; od->mIndent = 160; od->mDontDim = false; + od->mDontBlur = false; + od->mAnimatedTransition = false; + od->mAnimated = false; od->mNetgameMessage = "$NEWGAME"; GC::WriteBarrier(od); for (unsigned i = 0; i < PlayerClasses.Size (); i++) @@ -1252,6 +1258,9 @@ fail: od->mScrollTop = 0; od->mIndent = 160; od->mDontDim = false; + od->mDontBlur = false; + od->mAnimatedTransition = false; + od->mAnimated = false; GC::WriteBarrier(od); } else diff --git a/wadsrc/static/zscript/engine/ui/menu/imagescroller.zs b/wadsrc/static/zscript/engine/ui/menu/imagescroller.zs index d56d770ce..5c7865f03 100644 --- a/wadsrc/static/zscript/engine/ui/menu/imagescroller.zs +++ b/wadsrc/static/zscript/engine/ui/menu/imagescroller.zs @@ -41,6 +41,8 @@ class ImageScrollerDescriptor : MenuDescriptor native native double textScale; native bool mAnimatedTransition; native bool mAnimated; + native bool mDontBlur; + native bool mDontDim; native int virtWidth, virtHeight; } @@ -168,8 +170,10 @@ class ImageScrollerMenu : Menu mParentMenu = parent; index = 0; mDesc = desc; - AnimatedTransition = desc.mAnimatedTransition; - Animated = desc.mAnimated; + AnimatedTransition = mDesc.mAnimatedTransition; + Animated = mDesc.mAnimated; + DontBlur = mDesc.mDontBlur; + DontDim = mDesc.mDontDim; current = mDesc.mItems[0]; current.onStartPage(); previous = null; diff --git a/wadsrc/static/zscript/engine/ui/menu/listmenu.zs b/wadsrc/static/zscript/engine/ui/menu/listmenu.zs index 66d9a1ce6..672c0ebc7 100644 --- a/wadsrc/static/zscript/engine/ui/menu/listmenu.zs +++ b/wadsrc/static/zscript/engine/ui/menu/listmenu.zs @@ -57,6 +57,8 @@ class ListMenuDescriptor : MenuDescriptor native native bool mCenter; native bool mAnimatedTransition; native bool mAnimated; + native bool mDontBlur; + native bool mDontDim; native int mVirtWidth, mVirtHeight; native void Reset(); @@ -89,6 +91,8 @@ class ListMenu : Menu mDesc = desc; AnimatedTransition = mDesc.mAnimatedTransition; Animated = mDesc.mAnimated; + DontBlur = mDesc.mDontBlur; + DontDim = mDesc.mDontDim; if (desc.mCenter) { double center = 160; diff --git a/wadsrc/static/zscript/engine/ui/menu/optionmenu.zs b/wadsrc/static/zscript/engine/ui/menu/optionmenu.zs index 1928d70ab..7338885bf 100644 --- a/wadsrc/static/zscript/engine/ui/menu/optionmenu.zs +++ b/wadsrc/static/zscript/engine/ui/menu/optionmenu.zs @@ -55,6 +55,9 @@ class OptionMenuDescriptor : MenuDescriptor native native int mIndent; native int mPosition; native bool mDontDim; + native bool mDontBlur; + native bool mAnimatedTransition; + native bool mAnimated; native Font mFont; void Reset() @@ -106,6 +109,9 @@ class OptionMenu : Menu mParentMenu = parent; mDesc = desc; DontDim = desc.mDontDim; + DontBlur = desc.mDontBlur; + AnimatedTransition = desc.mAnimatedTransition; + Animated = desc.mAnimated; let itemCount = mDesc.mItems.size(); if (itemCount > 0)