You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey there, first of all, thank you very much for all the time and effort you've
put in to make this library possible. 💖 It's truly been a great help in achieving
my modding ambitions.
Context
However, whilst using this library in order to create custom menus (Scaleform)
I've noticed some inconsistencies I'm having trouble explaining.
Currently I'm creating menus as following (inside class inheriting from IMenu):
auto menu = static_cast<RE::IMenu*>(this);
auto scaleformManager = RE::BSScaleformManager::GetSingleton();
scaleformManager->LoadMovie(menu, menu->uiMovie, FILE_NAME.data());
assert(success);
auto msgQ = RE::UIMessageQueue::GetSingleton();
msgQ->AddMessage(SkyflashMenu::MenuName(), RE::UI_MESSAGE_TYPE::kShow, nullptr);
And this works great, the menu pops up, everything is working as intended,
menu flags work, input handling/focus is working fine.
Issue
However there's one glaring problem with this approach, the menu appears to
be running at game refresh rate, instead of the refresh rate defined in the SWF.
Unfortunately, frame rate is very important for my mod and I need it to be constant
in order for some time based coordination.
This is peculiar, because using SKSE to create the menu using OpenCustomMenu in
Papyrus code results into correct behavior, the code is as follows in SKSE:
Setting menu flags, or any sort of configuration on the IMenu or GFxMovieView
did not yield to any differences in this problematic frame behavior.
Manually advancing frame times is an option by selectively calling Advance on the GFxMovieView, however this is clunky and a native approach would be more fitting.
Closing Remarks
Unfortunately I'm not that proficient in C++ let alone reverse engineering, so I hope
one of you could help me along the way. The plugin needn't do much but load menu
and handle FxDelegate callbacks.
If you need any further info, or source, Papyrus, and / or ESP files, I would be happy to
provide them to you.
Once again, thank you for your time,
kind regards, frammiie
The text was updated successfully, but these errors were encountered:
Opening
Hey there, first of all, thank you very much for all the time and effort you've
put in to make this library possible. 💖 It's truly been a great help in achieving
my modding ambitions.
Context
However, whilst using this library in order to create custom menus (Scaleform)
I've noticed some inconsistencies I'm having trouble explaining.
Currently I'm creating menus as following (inside class inheriting from
IMenu
):And registering it by:
And opening it in papyrus via native function
And this works great, the menu pops up, everything is working as intended,
menu flags work, input handling/focus is working fine.
Issue
However there's one glaring problem with this approach, the menu appears to
be running at game refresh rate, instead of the refresh rate defined in the SWF.
Unfortunately, frame rate is very important for my mod and I need it to be constant
in order for some time based coordination.
This is peculiar, because using SKSE to create the menu using
OpenCustomMenu
inPapyrus code results into correct behavior, the code is as follows in SKSE:
This looks similar in how Commonlib-NG does it:
Considered Remedies
Setting menu flags, or any sort of configuration on the
IMenu
orGFxMovieView
did not yield to any differences in this problematic frame behavior.
Manually advancing frame times is an option by selectively calling
Advance
on theGFxMovieView
, however this is clunky and a native approach would be more fitting.Closing Remarks
Unfortunately I'm not that proficient in C++ let alone reverse engineering, so I hope
one of you could help me along the way. The plugin needn't do much but load menu
and handle
FxDelegate
callbacks.If you need any further info, or source, Papyrus, and / or ESP files, I would be happy to
provide them to you.
Once again, thank you for your time,
kind regards, frammiie
The text was updated successfully, but these errors were encountered: