Jump to content
  • Announcements

    • AndalayBay

      Orphan Attachments   07/31/2018

      I have been doing some housekeeping lately and I've noticed that I had a lot of orphaned attachments. Attachments get orphaned when the PM or post is deleted without removing the attachment first. Deleting a PM or post does not delete the attachment and the file or image remain on the server. I'd like to ask all members to go through their attachments and delete any attachments you don't need anymore or those that have been orphaned. Where can I get a list of my attachments? Click on your display name in the upper right corner of the forums and pick "My Attachments" from the drop-down list. How can I tell an attachment is orphaned? If the PM has been deleted, you'll see a message like this in your attachment list: Unfortunately there is no message if the post has been deleted, so please check your old posts. We do purge old birthday threads every once in a while. Also some hosted projects have been shut down, so you may have orphaned attachments on one of those locations. Thanks!
AndalayBay

Northern UI Compatibility

Recommended Posts

Posted (edited)

I’ll be working with DavidJCobb on making Oblivion XP compatible with his new UI, called Northern UI. Here are some notes for David:

Oblivion XP replaces the vanilla player levelling system with a D & D style system. This means that players don’t advance their skills and attributes from use. Rather they earn experience points from game activities. Once they have accumulated enough points, they will gain a level. When they gain a level, they can level up by sleeping or by pressing a button on the character stats menu, which will open the level-up window (menu). The level-up menu allows the player to spend points to increase their attributes and skills. Here’s the level-up menu for DarNified UI:

We need to modify these menus for Oblivion XP:

  • hud_main_menu.xml
  • stats_menu.xml
  • levelup_menu.xml
  • levelup_config.xml
  • levelup_av_template.xml ?

I'm hoping we won't have to modify levelup_av_template.xml. See my comments a few posts down where I post the code snippets.

We can upload images to the Collective project album and files to the Collective project download category. I’ll get into the specifics of what needs to change for each menu and some code snippets that show how Oblivion XP interacts with the menus in the next post.

Edited by AndalayBay

Share this post


Link to post
Share on other sites
Posted (edited)

HUD

We need to add two boxes, a progress bar and text to the HUD. I’ll upload a couple of screenshots to show these elements. The boxes are for the logs. I’ve already added the boxes and they seem to be working. I also have a progress bar, but haven’t been able to get it to work properly. I also haven’t been able to get the text to show up. The progress bar and text are configurable in the Ob XP ini file. By default, the progress bar is shown, but not the text.

Ob XP has scripts which will interact with the elements on the HUD. I’ll paste some code snippets when I get back to my game PC.

This screenshot shows the large log which is only visible as Oblivion XP is being initialized. Once initialized, it's only visible if the user opens it.

Once initialized, Ob XP displays a message at the top of the HUD:

This is the small log, which displays for a few seconds after you earn some experience points. The user can also open it manually.

Stats Menu

I really don’t remember what the vanilla stats menu looks like. The Ob XP version has the progress bar with text showing your current XP and the XP required. It also has a pop-up text box that explains the XP and shows the player’s rate of gaining experience. I’ll see if I can get a screenshot of this. The player’s current level is shown, which is probably the same as vanilla, but that area changes to a button that says “Click to level up” when the player has gained enough XP to advance in level. SirFrederik also put Oblivion XP in Daedric text at the bottom of the stats menu tab that shows the player’s skills. I don’t know why he did that unless he did that to replace a vanilla element that wasn’t applicable for Oblivion XP.

Here are some images of the Stats Menu. The first screenshot shows the descriptive text when you mouse over an attribute. I believe this is normal:

This screenshot shows the descriptive text when you mouse over the experience line, which is added by Oblivion XP:

This is the descriptive text that appears when you mouse over your current level. This is changed to a button that says "Click to level up" when you're ready to advance in level.

This is the second tab of the Stats Menu. I think SirFrederik replaced the original level progress bar with the text Oblivion XP in Daedric font.

Level up Menu

This menu is completely changed. The Oblivion XP version also has templates that get inserted for the skills and attributes. When you mouse over an attribute or skill, there is some descriptive text displayed. You can see the descriptive text in the two screenshots in the project album. I included one of the screenshots in the OP of this thread. The skill perk will pop up in a text box when the player increases the skill to a new level of mastery.

The level up menu is controlled by event user functions. I’ll list the functions when I get back to my game PC.

 

Edited by AndalayBay

Share this post


Link to post
Share on other sites

I have uploaded the full Oblivion XP package with the Northern UI files here. Note that only hud_main_menu.xml has been modified for Ob XP at this point. David, I'd like your help in getting this menu working. I'd also like your thoughts on the positioning of the elements. I think the log should be lowered so that it's next to the spell icon.

Then we need to get the Stats Menu changed. I think the way to approach that is to take your menu and add the Ob XP elements to it. I'm not sure how to approach the level-up menu. It might be better to take Oblivion XP's levelling menu and restyle it for NUI.

Share this post


Link to post
Share on other sites

Here's my guide to Ob XP's script that I typed up for previous collaborations:
 

Spoiler

 

Quests

ObXPMain - This is the main quest that loads all the settings from the initialization file. Once the settings are
    successfully loaded, the initialized variable is set to 1 which allows the rest of the scripts to run. This quest
    also detects if Oblivion XP has been installed in an existing game and will prompt for the player to initialize if
    it has been. It also controls the carry-over of unused training sessions and resets all the variables when the game
    has been reloaded from a previous save. Lastly it also initializes the level-up process and the post level-up
    processing.
Script - ObXPMainScript

ObXPSettings - The script for this quest will run once Oblivion XP has been initialized. It defines all the variables
    that all the scripts use and it also initializes various arrays. It also processes the player's position on each
    iteration. This script sets the location of the major cities that's used to award points when new locations are
    found.
Script - ObXPSettingsScript

ObXPDerivedAttributes - The script for this quest controls the derived player attributes: health, magicka and fatigue.
    It also control the regeneration of those attributes, if enabled. This script also sets the lock difficulty because
    that needs to run frequently. Lastly it initiates the poison fix, which is done by another script. This needs to run
    frequently as well.
Script - ObXPDerivedAttributesScript

ObXPMisc - The script for this quest controls the point rewards for miscellaneous actions, like lock picking,
    discovering new locations, selling stolen goods, creating potions, etc. Basically all the activities that are stored
    in the PCMiscStat array in the game.
Script - ObXPMiscScript

ObXPQuestsMain - The script for this quest just initializes the custom point rewards for quests. It only runs when a
    saved game is loaded or a new game is started. These quests are the ones that had built-in support from the original
    Oblivion XP mod. Quests are now processed via the quest completion event handler. Quests without built-in support or
    a custom patch are awarded a generic number of points based on the number of stages they have. See below for the
    handler function.
Script - ObXPQuestsMainScript

ObXPUIControl - The script for this quest controls the customizations of the in-game menus. It sets up the event
    handlers, updates the HUD and statistics menus with the current progress and controls the log shown on the HUD.
Script - ObXPUIControlScript

Poison Fix Processing

Oblivion XP's poison fix replaces the weapon with a clone that has a magic effect attached. The magic effect is simply
the script that tracks the poison damage and assigns the kill to the player if the target dies due to poison.
Script - ObXPPoisonScript

Event Handler Functions

The rest of the scripts are user functions. Most of the user functions are event handlers. The event handlers are
defined in ObXPMain and ObXPUIControl. OBSE 21 added several new events specifically at my request for Oblivion XP.
This has resulted in a major performance improvement. These scripts are run when the corresponding event is triggered.

ObXPfnOnCreatePotion - when a potion is created. Script determines if it is new, which is the only time points are
awarded.

OBXPfnOnDeath - when a creature or NPC is killed.

ObXPfnOnQuestComplete - when a quest is completed. It awards points for quests with built-in support. ObXPMain handles
unsupported quests because it needs to determine if the quest was handled by a patch first.

ObXPfnSDRPoisonKill - Sneaking Detection Recalibrated has defined its own events and this is the event handler for
SDR's poison kill event. Oblivion XP needs to manually call its onDeath handler to process the kill. This is only
applicable if the player is running SDR and they have chosen to have SDR handle kills by poison.

ObXPUILevelUpClickFn - when the player clicks on the level-up menu.

ObXPUILevelUpCloseFn - when the player closes the level-up menu.

ObXPUILevelUpMouseoverFn - when the player moves the mouse pointer over the level-up menu.

ObXPUILevelUpOpenFn - when the player opens the level-up menu.

ObXPUILevelUpRefreshFn - when the player changes a value in the level-up menu.

ObXPfnPoisonMenuOnClick - when the player has applied a poison to their weapon.

 

As you can see, the level-up menu is controlled by event handlers. The UI Control Script updates the progress bar and HUD logs. It not only changes the width of the ribbon, or fill, it also changes the colour under certain conditions. Here is the relevant code:

		;set XP bar progress + text
		if ( ObXPSettings.progressDisplayBar )
			setMenuFloatValue "ObXP_bar\_visible" 1004 2
			setMenuFloatValue "ObXP_bar\_levelprogress" 1004 ObXPMain.levelProgress
		else
			setMenuFloatValue "ObXP_bar\_visible" 1004 1
		endif
		
		if ( ObXPSettings.progressDisplayText )
			let uiTextStyle := getMenuFloatValue "ObXP_settings\_uistyle", 1027
			if (uiTextStyle == 1)
				let fontID := GetFontLoaded "ObXP_Kingthings_Clarity_12_bold"
				if fontID
					SetMenuFloatValue "ObXP_bar\level_prog\font", 1004, fontID
				else
					print "Could not find font."
				endif
			else
				let fontID := GetFontLoaded "ObXP_Kingthings_Clarity_10_bold"
				if fontID
					SetMenuFloatValue "ObXP_bar\level_prog\font", 1004, fontID
				else
					print "Could not find font."
				endif
			endif
			
			setMenuFloatValue "ObXP_bar\level_prog\visible" 1004 2
			let tempString := sv_Construct "%.0f/%.0f" ObXPMain.currentXP ObXPMain.neededXP
			setMenuStringValue "ObXP_bar\level_prog\string|%z" tempString 1004
		else
			setMenuFloatValue "ObXP_bar\level_prog\visible" 1004 1		
		endif

		;set log & bar visibility, making sure small log is always visible (will hide automatically after 5 seconds if no new messages)
		if ( logVisible > 0 )
			setMenuFloatValue "ObXP_log\_visible" 1004 2
			setMenuFloatValue "ObXP_log_small\_visible" 1004 2
		elseif ( logVisible == 0 ) || ( logVisible == -1 )
			setMenuFloatValue "ObXP_log\_visible" 1004 1
			setMenuFloatValue "ObXP_log_small\_visible" 1004 2
		else
			setMenuFloatValue "ObXP_log\_visible" 1004 1
			setMenuFloatValue "ObXP_log_small\_visible" 1004 2
		endif

There's a bunch more code for managing the message buffer for the HUD log. The point here is that the code is looking for specific elements and that code needs to work for all the UI's. ObXP_bar and ObXP_log are in hud_main_menu.xml. ObXP_settings is in levelup_config.xml.

There's actually only one levelup_menu.xml for all the UI's Ob XP supports and levelup_config.xml customizes the menu for the specific UI. I don't think we'll be able to do that for Northern UI since it is so different. That would be the ideal though. levelup_av_template.xml is the template code that's inserted into the levelup menu. If we can't customize the levelup menu with levelup_config.xml, then we'll need to modify the template for NUI as well.

Share this post


Link to post
Share on other sites

Let me make a list of changes made to each XML file... The installer didn't allow me to select your existing NorthernUI assets, so I went with the vanilla assets just so I can get a grasp of where to look for what.

  • hud_main_menu
    • rect#ObXP_log // full log; ten lines
    • rect#ObXP_log_small // small log; one line
    • rect#ObXP_bar // experience points meter
  • hud_info_menu
    • No major changes. The vanilla menu's X-coordinate is adjusted to move it out of the way of Oblivion XP's UI widgets. That shouldn't be needed for NorthernUI; we can omit this file entirely.
  • stats_menu
    • All changes are documented in a code comment at Line 109.
  • levelup_menu
    • Sweeping, major changes, which are immediately apparent upon opening the XML file.

Hm. The replacement levelup_menu, I can understand, but it's odd that the mod ships with replacements for the other files when their changes are so minor, and consist mostly of additions. MenuQue commands are capable of injecting XML anywhere into a loaded menu, no?

The HUD features seem like the simplest starting point. I'll take a look at what you've got so far and work from there.

Share this post


Link to post
Share on other sites

I haven't added Northern UI to the BAIN wizard yet, or any of the other installation methods. I recommend using Wrye Bash to install this. Then you just pick the following sub-packages:

  • 00 Documentation
  • 01 Core
  • 02 Northern UI

The HUD info menu isn't even changed with most of the UI's. Probably just vanilla, BTmod and Dark UI because those are all low resolution UI's. Oblivion XP has been around a lot longer than MenuQue, so we just changed the menus manually. It's also more reliable because Ob XP is continually updating the menus.

If you want to take a look at the changes, I recommend looking at another high-res UI like Darnified or DarkUId DarN. I listed the menus that need changing in the OP of this thread. If you look at the DarkUId DarN stats menu, you'll see the Ob XP changes start on line 175. Same with Darnified.

I have made the changes to the HUD main menu for Northern UI already. I just need some help getting the progress bar sized and positioned properly, as I said here.

Share this post


Link to post
Share on other sites

One more thing, Kyoma helped me rework the menus a few years ago while working some new functionality for MenuQue. He created some templates and we trimmed down the menus, but Kyoma never suggested using MenuQue for the menu changes Ob XP needs. 

Share this post


Link to post
Share on other sites
22 hours ago, AndalayBay said:

Northern UI

I haven't followed what has happen in the Oblivion modding community for quite some time now.  What the heck is Northern UI?  I know it's UI mod, but is it different in comparison to DarNDarkUI and if so in what way?

Share this post


Link to post
Share on other sites

However, when I visit the Nortern UI mod page I notice there is a remark for the virus scan on Nexus and it says this.

Quote

Some manually verified files

Does anyone know what that means, it's obvious that some files were manually verified?

Share this post


Link to post
Share on other sites

David created a DLL to fix some bugs in the menus and to offer gamepad support. I suspect he manually ran the virus scanner to show the files are safe.

Share this post


Link to post
Share on other sites

'Kay, I've moved the log to the bottom as requested. I put it above the icon rather than next to it, to avoid the risk of it covering up any particularly long dialogue subtitles that may be on-screen. XP meter has also been made consistent with other HUD statbars (same prefab), though if you still want the user to be able to customize the bar color, I'll have to make fresh images for those. Screenshot of current progress attached.

There is the slight problem that notifications can show up overtop the XP meter, with that current position. I've attached a possible alternate design, integrating the meter into the log window (so that the log, when shown, attaches to the top of the meter); if you like, I can work up some basic assets for that and give it a shot.

I'd also like to know if there's anything I can use to test the mod's functionality, e.g. debug commands that can force a level-up popup.

22330_20181012202821_1.png

possible xp widget design.png

Share this post


Link to post
Share on other sites

That's looking pretty good. The log isn't on-screen all the time and it won't be on when someone is speaking. I was thinking of putting the progress bar, or XP meter, just above the magicka bar, under the magic icon. What do you think? I've had a lot of users prefer a minimalist approach with the HUD, so I don't think they'll like the bar above the magic icon. Or is there a way to lower the notifications slightly? I've never had to look into the notifications, so that might entail editing menus that I wouldn't normally touch.

In terms of testing, being able to force a level gain is one of the nice things about Ob XP. It looks like you need 1701 points to level, so open the console and set your current XP as follows:

set obXPMain.currentXP to 1701

and then close the console. You should see the level-up prompt. If you just want to earn some XP, then you can chat up an NPC with the speechcraft mini game. If you look at the ini file, in Data\ini, to the XP Gain Multipliers section, you'll see the things you earn experience for. The main things are completing quests and killing things. Note: you don't gain XP for sleeping, but you do get a rested bonus. Having a rested bonus is one of the things that changes the colour of the progress bar.

What's next? The stats menu or the level-up menu? If you could upload (here) what you've got so far, I'll take a look at the stats menu. For the level-up menu, I think it would be better to take one of the Darnified menus and restyle it. I don't know where to start though.

Edited by AndalayBay

Share this post


Link to post
Share on other sites

Sorry for the delay; offline difficulties.

HUD is mostly done; XP bar is not yet colorable, but I'll try to get to that. Have a question about the log: the "full" log needs to be sized to fit all of the lines of text, yes? You use a constant value, but my preference would be to add the last-child's y to its height just to guarantee everything fits.

StatsMenu is functional but not perfect. NorthernUI's design merges the level and experience displays (they're the same UI widget), so I can only show the mouseover tooltip for one, but I can show an Oblivion XP tooltip; that is tested and works. I also noticed some additional text values you'd placed in the tooltip (e.g. something for "rested XP"), but couldn't find them in Oblivion XP Update's images section on the Nexus, so I don't know what they're for or how they're supposed to be positioned. Skipped them; can come back to them when I know more.

Working on levelup menu right as I type this.

Edited by DavidJCobb

Share this post


Link to post
Share on other sites

No, the full log isn't resized, rather SirFrederik clears out the past messages. That's part of the old code that I haven't touched and would prefer to leave it that way. :P He even accounts for two-line messages. All I can say is it works and we'll leave it alone!

The colours for the progress bar are done via script. I included the textures in the package. I wasn't sure if they would work, but that's something we can work on. Please let me do some of this. I need to be intimately familiar with the menus so I can help users when problems arise.

I uploaded a bunch of screenshots in one of my earlier replies, including the rested XP. Here's the screenshot:

Click on that and then click on the different sizes icon and select the full size to see all the text.

Share this post


Link to post
Share on other sites

Thanks for reminding me about the screenshots in this thread. This RAR should have the files I'm currently editing.

LevelUpMenu is very preliminary I'll try to get the layout and style finished first; then I need to look into an incompatibility that's causing issues. MenuQue's "active(...)" tile selector is crashing with NorthernUI installed; this is something I've never been able to test for, because stuff like "active()" wasn't documented on MenuQue's mod page or on its CS wiki articles. I've commented out all traits using that selector, so there won't be any crashes for now, but the hover images and text for attributes and skills will be stuck or invisible. (The vanilla hover images and text are also still there; I didn't realize those would be inoperative (due to ObXP no-oping the vanilla attribute list) until after I got something that could render without crashing.)

MenuQue has this bizarre "TileLink" system -- apparently a subclass of the internal Tile class. A while back, I was able to patch a piece of MenuQue code that had crashed due to some bad assumptions (mainly, it would choke on a null TileLink pointer if a menu with a non-vanilla ID was open); I found TileLink while working on that and couldn't figure out how it worked.

The worst-case scenario is that we exclude this stuff to avoid the crashes, and users just won't see descriptions and images for attributes or skills when they hover over them. As long as MenuQue doesn't throw especially nasty surprises at me, I should be able to at least get this functional.

EDIT: Come to think of it, I could probably replicate the active() stuff just by checking mouseover traits by hand. Maybe. EDIT2: Nope, that won't work for anything templated. Hm.

 

Share this post


Link to post
Share on other sites

And with just a bit more work, I now have this. Amazing how much better it looks once the fonts and images are set up.

Just gotta get sizing and positioning dealt with, it looks like -- and test the scripts and whatnot, of course. Not sure how much room there'll be for that hint text at the bottom, though, or for any stat descriptions/images if I get those working.

22330_20181015094000_1.png

Share this post


Link to post
Share on other sites

New fixes on my side:

  • Stats menu: the "level" bar/button can now be keyboard-navigated to from most of the menu panes, and can keyboard-navigate back to the panes as well. Can't navigate to it from an empty Factions pane or from the MiscStat pane; not sure how to work around engine limits for that; for those, just go to a different pane via left/right and then press up.
     
  • Stats menu: Fixed display of the player's level. Odd, though. I'd expect this to be broken for Vanilla!OblivionXP as well.

EDIT: Some fifty minutes of work has seen the following changes to the level-up menu:

  • The stat template now scales according to its parent width (or half its parent width minus the column gutter, for attributes).
  • Finished sizing and positioning for the attribute list.
  • Fixed scrolling code for the skill list: the scrolling setup is closer to vanilla, and all tiles clip properly.
  • Took advantage of the pre-existing scrolling setup for the skill list: the list is now smaller, so with a bit more work, I should be able to fit that hint text.

I've been trying to use the values in your "config" prefab where possible, though that does impose some limits (e.g. the hint text being bright white instead of the subdued grey). There are a few changes I made to some of the menus before I figured out what the "config" prefab was for, though, so there may be places that it no longer controls.

Anyway--screenshot:

22330_20181015105141_1.png

Edited by DavidJCobb
update

Share this post


Link to post
Share on other sites

Oh--I almost forgot! Offhand, do you know if there's any difference between "ObXP\generic\vert_floating_scroll.xml" and the normal scrollbar prefab? The code looks vanilla, but I see comments like "DarN 39" on some traits and I don't know why they're there.

Just wanna make sure I don't break anything, once I set about reskinning the scrollbar.

EDIT: Got keyboard navigation mostly working for the level-up menu: you can navigate between list items (and between the two separate lists) using the up and down arrow keys, and you can increase or decrease a stat using the left and right arrow keys. This should generalize to the gamepad as well.

I don't know if the method I used is something that would work on your other compatibility files. Consider this: when you're at the end of the attribute list, pressing "down" needs to take you to a skill list... but which one? There are four list containers, and only one can be visible at a time. Normally, you can only specify one tile to try to navigate to, and if that tile isn't visible or targetable, then navigation simply fails. NorthernUI patches the game to let you specify multiple tiles to navigate to, with the game using the first one that works. There could be some other workaround (e.g. moving the XLIST stuff to the list containers' parent tile, and trying to navigate to that), but I haven't tested it (and frankly, don't want to break the setup that does work for NorthernUI at present).

Still, here's the general details.

  • Each list container (that is, the tile into which list items are inserted) needs to have an XLIST trait set to &xlist;, a TARGET trait set to false, an XDEFAULT trait, and an XSCROLL trait whose value is a REF operator pointing to the scrollbar. (The trait you specify is irrelevant; the game always uses user5.)
  • Each list item needs an XDEFAULT trait (should probably set it to true), an XUP trait set to &prev;, and an XDOWN trait set to &next;.
  • Each list item should have an XSCROLL trait that resolves to a numeric value (generally, you take the number of list items visible at once, divide that by half, and round it up; then, subtract that from the list item's index in the list). When the list item receives focus, the game takes the scrollbar that the list container's XSCROLL refers to, and uses the list item's XSCROLL to scroll it into view if it isn't already in view.
    • The level-up menu provides a bit of a wrinkle, since list items in two different lists use the same prefab and only one of those lists has a scrollbar. In that case, the attribute list container has its XSCROLL trait omitted, so that moving through attributes doesn't scroll the skill scrollbar.
  • If you want to allow keyboard navigation between two lists, then the first list needs an XDOWN trait pointing to the second list, and the second list needs an XUP trait pointing to the first list. To describe how that works: if you scroll to the bottom of the first list and then press "down" one more time, the list item's XDOWN won't resolve to anything valid, so the game will check the list container's XDOWN and act on that instead.
    • This, again, is where your design runs into problems, since without NorthernUI's DLL installed, you can only point to one tile -- and your first list needs to be able to point to any of four. You can try setting up the keyboard navigation stuff on the thing that contains your four skill list containers, but I can't guarantee that'll work; I haven't examined Bethesda's internals quite that closely.
  • XUP, XDOWN, XLEFT, and XRIGHT all work for the gamepad (control stick and D-Pad) as well as the keyboard.

So, ah, there's all that laid out.


EDIT 2: I almost forgot to do the skill category selector!  When you're in the skill list, that's mapped to the bumpers and triggers on a controller (triggers are aliased to Shift + Arrow Key on keyboards). The only issue is that switching categories while in the skill list boots you out to the bottom of the attribute list... I'm actually surprised that the engine handles the case of the currently-focused tile (in this case, a list item in a list that gets hidden) suddenly becoming unfocusable.

As to why it's the bottom of the attribute list: every time you keyboard-navigate to a tile with an XDEFAULT trait, that trait gets increased to be higher than all other tiles' values. If you navigate from List A Item 3 to List B Item 1, and then back to List A, you'll end up back at List A Item 3, because that's the item with the highest XDEFAULT. I... can't really think of a good, consistent way to move you to the newly-visible list instead of to the previous list you were on. This doesn't look like a use case that Bethesda had in mind when designing the engine.

One way to hide the problem would be to ditch the category selector and just display the four skill lists consecutively, with some magic to make them look like one merged list. I used that for the dialogue menu, to "add" the buttons to the top and bottom of the list as lines of dialogue (e.g. "Goodbye" as a selectable line); it was actually three separate lists end-to-end. That's not something I really want to do without your go-ahead, though.

As it stands, the UI/UX will work just fine for mouse users, and be a little weird (but still usable, which is an improvement) for keyboard and gamepad folks.

Edited by DavidJCobb

Share this post


Link to post
Share on other sites

Current progress attached. Changes from the last pic include using enumpicker buttons for the category selector, and adding as much keyboard/gamepad navigation support as is possible.

Just to make sure this doesn't get lost amidst all the technical stuff above: I need to know if there's any difference between "ObXP\generic\vert_floating_scroll.xml" and the normal scrollbar prefab? The code looks vanilla, but I see comments like "DarN 39" on some traits and I don't know why they're there. This is important for reskinning the scrollbar in the level-up menu.

Aside from that, I'll send you a message on Nexus so you have proof of permission for publishing edited copies of my files. NorthernUI isn't under open permissions (it's on an "ask me" basis unless I disappear for a year, in which case it's on a "do whatever you want if you're not being a jerk" basis), so you'll want to have proof of permissions somewhere the Nexus folks can see.

 

Edited by AndalayBay
Removed attachment

Share this post


Link to post
Share on other sites

Updates:

  • Reskinned the scrollbar anyway.
  • XP meters now support Oblivion XP's fill colors.
  • Improved positioning and sizing for the skill list in the level-up menu.
  • Reskinned the level-up menu's focus box.
  • The level-up menu now sizes to fit its contents.

I think this is everything? Looks like it.

 

Edited by AndalayBay
Removed attachment

Share this post


Link to post
Share on other sites

This is super! I'm still reading through your posts and it will take me a while longer to finish. :D

I just checked the scrollbar with WinMerge and there are tons of changes. The main one is that the Ob XP version has zoom. There's also a _mouseover_any trait. All the positions and sizes are adjusted for the zoom factor. DarNified allows users to zoom their menus, so Oblivion XP needs to replicate that.

I think that's one to the first things I saw with your menus is that they don't zoom? That might be an issue. Do you know if your menus are compatible with 4K monitors? I had to make a lot of changes to Ob XP to make its menus compatible. I don't have a 4K monitor, so my fixes are probably less than ideal.

I'll definitely grab your files and give them a going-over. :)

Share this post


Link to post
Share on other sites

Thanks for the answers!

NorthernUI doesn't have a zoom/resize feature for the UI, no.

The menu would be usable on a 4K monitor, but only in the sense that Oblivion's UI engine normalizes the screen size. I play on 1600x900, so the game renders the UI at 1707x960px and that gets scaled. The precise details are on the CS wiki. According to Wikipedia, 4K is 4096x2160px, so that'd render at 1820x960px. (Bear in mind: the UI renders in 3D, so it's not going to look like a 1820px image scaled up to 4096px. That said, the graphics in my UI are all hand-drawn; most get downscaled, but I only drew them so large...)

My scrollbars don't (all) offer a " _mouseover_any" trait, but I can't think of anything offhand that would use that for a scrollbar.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×