rodecomp/Source/UI/Window/WindowDialogs.h
ragnarok-clanker 25321ae8a6 Decompile 4 functions in Source/Contents/Actors/GameActor.cpp, Source/Contents/Actors/GameActor.h, ...
Batch #5758 by Yommy: 1 byte-identical, 3 confirmed by peer review.

- fn_17210 CGameActor::HasUnknown0310Entry: byte-identical
- fn_17211 WindowDialogs::AddMessageBox: logic confirmed by peer review
- fn_17212 WindowDialogs::RunModal: logic confirmed by peer review
- fn_17213 UIWindowMgr::MoveTransient: logic confirmed by peer review

Peer-reviewed-by: willerthal, SapitoSucio
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-10-30 16:03:04 +00:00

50 lines
1.2 KiB
C++

#ifndef RAGNAROK_SOURCE_UI_WINDOW_WINDOWDIALOGS_H
#define RAGNAROK_SOURCE_UI_WINDOW_WINDOWDIALOGS_H
#include <deque>
#include <map>
#include <set>
class UIWindow;
class UIMessageBox;
struct UIWindowContext;
struct UIFrameContext;
struct UIMessageBoxContext;
class ModalFramePump {
public:
virtual void Frame() = 0;
protected:
~ModalFramePump() = default;
};
struct WindowDialogs {
UIWindowContext& windows;
UIFrameContext& frames;
UIMessageBoxContext& dialog;
int& result;
std::set<UIWindow*>& suspendedRoots;
UIWindow*& capture;
UIWindow*& input;
std::deque<UIWindow*>& modal;
int& alternateResult;
UIMessageBox*& latest;
ModalFramePump*& mode;
const bool& suppressed;
const int& immediate;
const std::map<int, int>& frameOptions;
UIWindow* Top() const;
void RestoreInput();
int Confirm(const char* text, int type, bool defaultAccept, bool replace, int timeout, const char* caption, int width, int height, unsigned char protect);
void AddMessageBox(
const char* text, int type, bool defaultAccept, int unused, int timeout, const char* caption, int width, int height, const char* icon, bool track
);
int RunModal(UIWindow* window);
};
extern int g_dialogKeyboardEnabled;
extern int g_dialogKeyboardBlocked;
#endif