Batch #14947 by ragnarok-clanker: no function's compiled code changes; checked with 596 compiled unit(s), including every includer of Source/Client/Input/Language.h, Source/Client/Input/LanguageTC.h, Source/Client/Mode/CGameMode.h, Source/Client/Mode/CLoginMode.h, Source/Client/Mode/EquipWindowLook.h, Source/Client/Session.h, Source/Contents/Actors/GameActor.h, Source/Contents/Actors/GraffiSkill.h, Source/Contents/Actors/GrannyGameActor.h, Source/Contents/Actors/Pc.h, Source/Contents/Camera/Camera.h, Source/Contents/Effects/EffectEmitter.h, Source/Contents/Effects/EffectPrimitiveState.h, Source/Contents/FlyingShipRouteInfo.h, Source/Contents/Ground/GroundGeometry.h, Source/Contents/Ground/GroundSpatial.h, Source/Contents/Items/ItemInfo.h, Source/Render/SpriteQuad.h, Source/Resource/EZeffectResource.h, Source/Resource/Models/AnimatedModelResource.h, Source/Resource/Models/GrannyModelResource.h, Source/Resource/Models/ModelMesh.h, Source/Resource/World/WorldResource.h, Source/UI/Dialogs/UIChooseWnd.h, Source/UI/Items/UISpellListWnd.h, Source/UI/Lists/UIListBoxTemplate.h, Source/UI/MiniPartyGrid.h, Source/UI/Quest/UIOngoingQuestInfo.h, Source/UI/Text/UIAchWnd.h, Source/UI/Window/UIMonsterInfoWnd.h, Source/UI/Window/UINavigationWnd.h, Source/UI/Window/UINewMakeCharWnd.h, Source/UI/Window/UITalkboxTrapInputWnd.h, Source/UI/Window/UIWindowMgr.h.
661 lines
25 KiB
C++
661 lines
25 KiB
C++
#ifndef RAGNAROK_SOURCE_UI_WINDOW_UIWINDOWMGR_H
|
|
#define RAGNAROK_SOURCE_UI_WINDOW_UIWINDOWMGR_H
|
|
|
|
#include "Contents/UserData/NormalItemSlots.h"
|
|
#include "UI/Layout/SnapRectangle.h"
|
|
|
|
#include <windows.h>
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
#include <deque>
|
|
#include <list>
|
|
#include <map>
|
|
#include <set>
|
|
#include <string>
|
|
#include <unordered_set>
|
|
#include <vector>
|
|
|
|
class UIWindow;
|
|
class UIMessageBox;
|
|
class CBitmapRes;
|
|
class CWebBrowser;
|
|
struct MessengerMember;
|
|
struct ReplayOptions;
|
|
struct ModeDragState;
|
|
|
|
struct WindowTextEntry {
|
|
/* 0000 */ std::string text;
|
|
/* 0018 */ std::uint32_t color;
|
|
};
|
|
|
|
struct WindowTextRecord {
|
|
/* 0000 */ std::string text;
|
|
/* 0018 */ std::uint32_t unknown_0018;
|
|
/* 001C */ std::uint32_t unknown_001C;
|
|
};
|
|
|
|
struct SavedWindowRectangle {
|
|
// INLINED
|
|
SavedWindowRectangle(int left, int top, int rectangleWidth, int rectangleHeight)
|
|
: x(left), y(top), width(rectangleWidth), height(rectangleHeight) {}
|
|
|
|
/* 0000 */ int x;
|
|
/* 0004 */ int y;
|
|
/* 0008 */ int width;
|
|
/* 000C */ int height;
|
|
};
|
|
|
|
struct WindowPolicyEntry {
|
|
/* 0000 */ int actions[8];
|
|
};
|
|
|
|
class UIRoulletteWnd;
|
|
|
|
class UIWindowMgr {
|
|
public:
|
|
int SendNotice(int selector, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d, std::intptr_t e);
|
|
/* 0004 */ int activeWindowId;
|
|
/* 0008 */ std::map<int, UIWindow*> windows;
|
|
/* 0010 */ int keyCode;
|
|
/* 0014 */ int modifierKey;
|
|
/* 0018 */ std::list<int> windowHistory;
|
|
/* 0020 */ int lastWindowId;
|
|
/* 0024 */ unsigned char inputSuggestionsEnabled;
|
|
/* 0025 */ unsigned char imeInputActive;
|
|
/* 0026 */ unsigned char chatModeChanged;
|
|
/* 0028 */ std::map<int, UIWindow*> retainedWindows;
|
|
/* 0030 */ int chatWndX;
|
|
/* 0034 */ int chatWndY;
|
|
/* 0038 */ int chatWndHeight;
|
|
/* 003C */ int chatWndVisible;
|
|
/* 0040 */ int unknown_0040;
|
|
/* 0044 */ int unknown_0044;
|
|
/* 0048 */ int skillDescriptionVisible;
|
|
/* 004C */ int chatWndStatus;
|
|
/* 0050 */ float minimapZoom;
|
|
/* 0054 */ unsigned char minimapMarkersVisible;
|
|
/* 0055 */ unsigned char unknown_0055[3];
|
|
/* 0058 */ int itemStoreWindowCount;
|
|
/* 005C */ std::uint32_t minimapColor;
|
|
/* 0060 */ int drawCompass;
|
|
/* 0064 */ int dragAllItems;
|
|
/* 0068 */ int compactCompositionLayout;
|
|
/* 006C */ int rightToLeftChatEnabled;
|
|
/* 0070 */ int unknown_0070;
|
|
/* 0074 */ int unknown_0074;
|
|
/* 0078 */ int unknown_0078;
|
|
/* 007C */ int unknown_007C;
|
|
/* 0080 */ int unknown_0080;
|
|
/* 0084 */ int unknown_0084;
|
|
/* 0088 */ int unknown_0088;
|
|
/* 008C */ int unknown_008C;
|
|
/* 0090 */ int unknown_0090;
|
|
/* 0094 */ int unknown_0094;
|
|
/* 0098 */ int unknown_0098;
|
|
/* 009C */ int unknown_009C;
|
|
/* 00A0 */ int unknown_00A0;
|
|
/* 00A4 */ int unknown_00A4;
|
|
/* 00A8 */ int unknown_00A8;
|
|
/* 00AC */ int unknown_00AC;
|
|
/* 00B0 */ int unknown_00B0;
|
|
/* 00B4 */ int unknown_00B4;
|
|
/* 00B8 */ int unknown_00B8;
|
|
/* 00BC */ int unknown_00BC;
|
|
/* 00C0 */ int unknown_00C0;
|
|
/* 00C4 */ int unknown_00C4;
|
|
/* 00C8 */ int unknown_00C8;
|
|
/* 00CC */ int unknown_00CC;
|
|
/* 00D0 */ int unknown_00D0;
|
|
/* 00D4 */ int unknown_00D4;
|
|
/* 00D8 */ int unknown_00D8;
|
|
/* 00DC */ int unknown_00DC;
|
|
/* 00E0 */ int unknown_00E0;
|
|
/* 00E4 */ int unknown_00E4;
|
|
/* 00E8 */ int unknown_00E8;
|
|
/* 00EC */ int unknown_00EC;
|
|
/* 00F0 */ int unknown_00F0;
|
|
/* 00F4 */ int unknown_00F4;
|
|
/* 00F8 */ int unknown_00F8;
|
|
/* 00FC */ int unknown_00FC;
|
|
/* 0100 */ int unknown_0100;
|
|
/* 0104 */ int unknown_0104;
|
|
/* 0108 */ int unknown_0108;
|
|
/* 010C */ int unknown_010C;
|
|
/* 0110 */ int unknown_0110;
|
|
/* 0114 */ int unknown_0114;
|
|
/* 0118 */ int unknown_0118;
|
|
/* 011C */ int unknown_011C;
|
|
/* 0120 */ int unknown_0120;
|
|
/* 0124 */ int unknown_0124;
|
|
/* 0128 */ int unknown_0128;
|
|
/* 012C */ int unknown_012C;
|
|
/* 0130 */ int unknown_0130;
|
|
/* 0134 */ int unknown_0134;
|
|
/* 0138 */ int unknown_0138;
|
|
/* 013C */ int unknown_013C;
|
|
/* 0140 */ int unknown_0140;
|
|
/* 0144 */ int unknown_0144;
|
|
/* 0148 */ int unknown_0148;
|
|
/* 014C */ int unknown_014C;
|
|
/* 0150 */ int unknown_0150;
|
|
/* 0154 */ int unknown_0154;
|
|
/* 0158 */ int unknown_0158;
|
|
/* 015C */ int unknown_015C;
|
|
/* 0160 */ int unknown_0160;
|
|
/* 0164 */ int unknown_0164;
|
|
/* 0168 */ int unknown_0168;
|
|
/* 016C */ int unknown_016C;
|
|
/* 0170 */ std::set<UIWindow*> persistentWindows;
|
|
/* 0178 */ bool retainedPersistentWindow;
|
|
/* 017C */ std::list<UIWindow*> rendered;
|
|
/* 0184 */ std::list<UIWindow*> retired;
|
|
/* 018C */ std::list<UIWindow*> registeredWindows;
|
|
/* 0194 */ std::map<UIWindow*, SnapRectangle> snapRectangles;
|
|
/* 019C */ UIWindow* inputWindow;
|
|
/* 01A0 */ UIWindow* hoverWindow;
|
|
/* 01A4 */ std::deque<UIWindow*> modalWindows;
|
|
/* 01B8 */ UIWindow* window_01B8;
|
|
/* 01BC */ UIWindow* loadingWnd;
|
|
/* 01C0 */ UIWindow* minimapZoomWnd;
|
|
/* 01C4 */ UIWindow* statusWnd;
|
|
/* 01C8 */ UIWindow* window_01C8;
|
|
/* 01CC */ UIWindow* window_01CC;
|
|
/* 01D0 */ UIWindow* window_01D0;
|
|
/* 01D4 */ UIWindow* itemWnd;
|
|
/* 01D8 */ std::uint32_t unknown_01D8;
|
|
/* 01DC */ UIWindow* basicInfoWnd;
|
|
/* 01E0 */ UIWindow* equipWnd;
|
|
/* 01E4 */ UIWindow* nCashWnd;
|
|
/* 01E8 */ UIWindow* window_01E8;
|
|
/* 01EC */ UIWindow* window_01EC;
|
|
/* 01F0 */ UIWindow* sayDialogWnd;
|
|
/* 01F4 */ UIWindow* sayDialogOverlayWnd;
|
|
/* 01F8 */ UIWindow* choose3Wnd;
|
|
/* 01FC */ UIWindow* itemIdentifyWnd;
|
|
/* 0200 */ UIWindow* itemRepairWnd;
|
|
/* 0204 */ UIWindow* weaponRefineWnd;
|
|
/* 0208 */ UIWindow* itemCompositionWnd;
|
|
/* 020C */ UIWindow* chooseWarpWnd;
|
|
/* 0210 */ UIWindow* menuWnd;
|
|
/* 0214 */ UIWindow* comboBoxWnd;
|
|
/* 0218 */ UIWindow* itemCollectionWnd;
|
|
/* 021C */ UIWindow* comboBoxIDWnd;
|
|
/* 0220 */ UIWindow* itemCollectionComparisonWnd;
|
|
/* 0224 */ UIWindow* combinedCardItemCollectionComparisonWnd;
|
|
/* 0228 */ UIWindow* combinedCardItemCollectionWnd;
|
|
/* 022C */ UIWindow* itemParamChangeDisplayWnd;
|
|
/* 0230 */ UIWindow* window_0230;
|
|
/* 0234 */ UIWindow* quitWnd;
|
|
/* 0238 */ UIWindow* restartWnd;
|
|
/* 023C */ UIWindow* cardItemIllustWnd;
|
|
/* 0240 */ UIWindow* notifyLevelUpWnd;
|
|
/* 0244 */ UIWindow* notifyJobLevelUpWnd;
|
|
/* 0248 */ UIWindow* notifyQuestWnd;
|
|
/* 024C */ UIWindow* nCashCallWnd;
|
|
/* 0250 */ UIWindow* itemShopWnd;
|
|
/* 0254 */ UIWindow* itemShopWnd2;
|
|
/* 0258 */ UIWindow* itemPurchaseWnd;
|
|
/* 025C */ UIWindow* itemSellWnd;
|
|
/* 0260 */ UIWindow* itemSellWnd2;
|
|
/* 0264 */ UIWindow* chooseSellBuyWnd;
|
|
/* 0268 */ UIWindow* paraItemShopWnd;
|
|
/* 026C */ UIWindow* paraItemPurchaseWnd;
|
|
/* 0270 */ UIWindow* window_0270;
|
|
/* 0274 */ UIWindow* window_0274;
|
|
/* 0278 */ UIWindow* window_0278;
|
|
/* 027C */ UIWindow* window_027C;
|
|
/* 0280 */ UIWindow* passwordWnd;
|
|
/* 0284 */ UIWindow* exchangeAcceptWnd;
|
|
/* 0288 */ UIWindow* window_0288;
|
|
/* 028C */ UIWindow* itemStoreTabWnds[7];
|
|
/* 02A8 */ UIWindow* itemStoreLastTabWnd;
|
|
/* 02AC */ UIWindow* itemStoreFindWnd;
|
|
/* 02B0 */ UIWindow* seekPartyWnd;
|
|
/* 02B4 */ UIWindow* seekPartyMessageWnd;
|
|
/* 02B8 */ UIWindow* jobListWnd;
|
|
/* 02BC */ UIWindow* seekPartyListWnd;
|
|
/* 02C0 */ UIWindow* partyBookingHelpWnd;
|
|
/* 02C4 */ UIWindow* window_02C4;
|
|
/* 02C8 */ UIWindow* window_02C8;
|
|
/* 02CC */ UIWindow* joinPartyAcceptWnd;
|
|
/* 02D0 */ UIWindow* coupleAcceptWnd;
|
|
/* 02D4 */ UIWindow* starPlaceAcceptWnd;
|
|
/* 02D8 */ UIWindow* mixAcceptWnd;
|
|
/* 02DC */ UIWindow* yourItemWnd;
|
|
/* 02E0 */ UIWindow* babyAcceptWnd;
|
|
/* 02E4 */ UIWindow* babyAcceptWnd2;
|
|
/* 02E8 */ UIWindow* joinGuildAcceptWnd;
|
|
/* 02EC */ UIWindow* allyGuildAcceptWnd;
|
|
/* 02F0 */ UIWindow* tipOfTheDayWnd;
|
|
/* 02F4 */ UIWindow* merchantItemWnd;
|
|
/* 02F8 */ std::uint32_t merchantMirrorItemWnd;
|
|
/* 02FC */ UIWindow* merchantShopMakeWnd;
|
|
/* 0300 */ UIWindow* merchantItemShopWnd;
|
|
/* 0304 */ UIWindow* merchantItemMyShopWnd;
|
|
/* 0308 */ UIWindow* merchantItemPurchaseWnd;
|
|
/* 030C */ UIWindow* partySettingWnd;
|
|
/* 0310 */ UIWindow* skillNameChangeWnd;
|
|
/* 0314 */ UIWindow* npcEditDialogWnd;
|
|
/* 0318 */ UIWindow* npcTextEditDialogWnd;
|
|
/* 031C */ UIWindow* notifyItemObtainWnd;
|
|
/* 0320 */ UIWindow* window_0320;
|
|
/* 0324 */ UIWindow* window_0324;
|
|
/* 0328 */ UIWindow* guildPositionManageWnd;
|
|
/* 032C */ UIWindow* window_032C;
|
|
/* 0330 */ UIWindow* guildBanishedMemberWnd;
|
|
/* 0334 */ UIWindow* guildNoticeWnd;
|
|
/* 0338 */ UIWindow* guildTotalInfoWnd;
|
|
/* 033C */ UIWindow* friendOptionWnd;
|
|
/* 0340 */ UIWindow* guildLeaveReasonDescWnd;
|
|
/* 0344 */ UIWindow* guildBanReasonDescWnd;
|
|
/* 0348 */ UIWindow* illustWnd;
|
|
/* 034C */ UIWindow* multiIllustWnds[10];
|
|
/* 0374 */ UIWindow* makeTargetListWnd;
|
|
/* 0378 */ UIWindow* makeTargetProcessWnd;
|
|
/* 037C */ UIWindow* makeTargetResultWnd;
|
|
/* 0380 */ UIWindow* emotionWnd;
|
|
/* 0384 */ UIWindow* cashEmotionListWnd;
|
|
/* 0388 */ UIWindow* window_0388;
|
|
/* 038C */ UIWindow* window_038C;
|
|
/* 0390 */ UIWindow* petEggListWnd;
|
|
/* 0394 */ UIWindow* petTamingDeceiveWnd;
|
|
/* 0398 */ UIWindow* makingArrowListWnd;
|
|
/* 039C */ UIWindow* selectCartWnd;
|
|
/* 03A0 */ UIWindow* spellListWnd;
|
|
/* 03A4 */ UIWindow* window_03A4;
|
|
/* 03A8 */ UIWindow* compositionWnd;
|
|
/* 03AC */ UIWindow* window_03AC;
|
|
/* 03B0 */ UIWindow* bookWnd;
|
|
/* 03B4 */ UIWindow* joinFriendAcceptWnd;
|
|
/* 03B8 */ UIWindow* secondPasswordInputWnd;
|
|
/* 03BC */ UIWindow* secondPasswordEditWnd;
|
|
/* 03C0 */ UIWindow* window_03C0;
|
|
/* 03C4 */ UIWindow* window_03C4;
|
|
/* 03C8 */ UIWindow* window_03C8;
|
|
/* 03CC */ UIWindow* window_03CC;
|
|
/* 03D0 */ UIWindow* autoMessageWnd;
|
|
/* 03D4 */ UIWindow* window_03D4;
|
|
/* 03D8 */ UIWindow* window_03D8;
|
|
/* 03DC */ UIWindow* window_03DC;
|
|
/* 03E0 */ UIWindow* rebirthWnd;
|
|
/* 03E4 */ std::uint32_t subChatHistoryWnd;
|
|
/* 03E8 */ std::uint32_t secondSubChatHistoryWnd;
|
|
/* 03EC */ UIWindow* battleMsgOptionWnd;
|
|
/* 03F0 */ std::uint32_t subChatMiniWnd;
|
|
/* 03F4 */ unsigned short chatWndStickOn;
|
|
/* 03F6 */ unsigned char battleSubChatEnabled;
|
|
/* 03F7 */ unsigned char unknown_03F7;
|
|
/* 03F8 */ UIWindow* memorialDunWnd;
|
|
/* 03FC */ UIWindow* otherEquipWnd;
|
|
/* 0400 */ UIWindow* modal;
|
|
/* 0404 */ UIWindow* hotkeyWnd;
|
|
/* 0408 */ UIWindow* escOptionWnd;
|
|
/* 040C */ UIWindow* buyingShopMakeWnd;
|
|
/* 0410 */ std::uint32_t buyingShopMirrorItemWnd;
|
|
/* 0414 */ UIWindow* buyingShopMyItemsWnd;
|
|
/* 0418 */ UIWindow* buyingShopItemsWnd;
|
|
/* 041C */ UIWindow* buyingShopPurchaseWnd;
|
|
/* 0420 */ std::uint32_t purchaseMirrorItemWnd;
|
|
/* 0424 */ UIWindow* monsterDisplayWnd;
|
|
/* 0428 */ UIWindow* window_0428;
|
|
/* 042C */ UIWindow* partyInvitationToWnd;
|
|
/* 0430 */ UIWindow* guildHelperWnd;
|
|
/* 0434 */ UIWindow* guildTipWnd;
|
|
/* 0438 */ UIWindow* createGuildWnd;
|
|
/* 043C */ UIWindow* createGuildAlternateWnd;
|
|
/* 0440 */ std::uint32_t unknown_0440;
|
|
/* 0444 */ UIWindow* window_0444;
|
|
/* 0448 */ UIWindow* window_0448;
|
|
/* 044C */ UIWindow* window_044C;
|
|
/* 0450 */ UIWindow* openMailBoxWnd;
|
|
/* 0454 */ UIWindow* rodexInboxWnd;
|
|
/* 0458 */ UIWindow* rodexComposeWnd;
|
|
/* 045C */ UIWindow* rodexContentsWnd;
|
|
/* 0460 */ UIWindow* openRoulletteWnd;
|
|
/* 0464 */ UIRoulletteWnd* roulletteWnd;
|
|
/* 0468 */ UIWindow* window_0468;
|
|
/* 046C */ int previousMouseX;
|
|
/* 0470 */ int previousMouseY;
|
|
/* 0474 */ int modalResponse;
|
|
/* 0478 */ UIWindow* backgroundSurface;
|
|
/* 047C */ int screenWidth;
|
|
/* 0480 */ int screenHeight;
|
|
/* 0484 */ std::string unknown_0484;
|
|
/* 049C */ short loginGridX;
|
|
/* 049E */ short loginGridY;
|
|
/* 04A0 */ POINTS loginSidePanelOffset;
|
|
/* 04A4 */ POINTS loginBottomPanelOffset;
|
|
/* 04A8 */ POINTS loginButtonPanelOffset;
|
|
/* 04AC */ POINTS loginExtraPanelOffset;
|
|
/* 04B0 */ unsigned char loginDragRegion;
|
|
/* 04B1 */ unsigned char unknown_04B1[3];
|
|
/* 04B4 */ int gradeImageWidth;
|
|
/* 04B8 */ int gradeImageHeight;
|
|
/* 04BC */ int gradeImageX;
|
|
/* 04C0 */ int gradeImageY;
|
|
/* 04C4 */ std::list<WindowTextEntry> pendingNoticeLines;
|
|
/* 04CC */ std::list<std::string> unknown_04CC;
|
|
/* 04D4 */ std::list<std::string> unknown_04D4;
|
|
/* 04DC */ std::string chatInputText;
|
|
/* 04F4 */ int unknown_04F4;
|
|
/* 04F8 */ int unknown_04F8;
|
|
/* 04FC */ int framesInvalidated;
|
|
/* 0500 */ std::map<std::string, UIWindow*> namedWindows;
|
|
/* 0508 */ int windowVisibilityState;
|
|
/* 050C */ std::list<UIWindow*> hiddenWindows;
|
|
/* 0514 */ unsigned char basicInfoPlacement[0x12];
|
|
/* 0526 */ bool basicInfoExpanded;
|
|
/* 0527 */ unsigned char itemPlacementStorage[0x25];
|
|
/* 054C */ int itemWndVisible;
|
|
/* 0550 */ unsigned char questPlacement[0x18];
|
|
/* 0568 */ int questWndVisible;
|
|
/* 056C */ unsigned char questDisplayAndStatusPlacement[0x1C];
|
|
/* 0588 */ int statusWndVisible;
|
|
/* 058C */ unsigned char equipPlacementStorage[0x18];
|
|
/* 05A4 */ int equipWndVisible;
|
|
/* 05A8 */ unsigned char optionPlacement[0x14];
|
|
/* 05BC */ int optionWndVisible;
|
|
/* 05C0 */ unsigned char shortenItemPlacement[0x10];
|
|
/* 05D0 */ int shortenItemWndVisible;
|
|
/* 05D4 */ unsigned char unknown_05D4[0x168];
|
|
/* 073C */ int messengerGroupWndVisible;
|
|
/* 0740 */ unsigned char messengerPartyTabState[0x08];
|
|
/* 0748 */ NormalItemSlotWindow m_normalItemSlotWindow;
|
|
/* 075C */ unsigned char exchangeAcceptAndSkillListPlacement[0x20];
|
|
/* 077C */ int skillListWndVisible;
|
|
/* 0780 */ unsigned char merchantItemPlacement[0x10];
|
|
/* 0790 */ int merchantItemWndVisible;
|
|
/* 0794 */ unsigned char merchantMirrorItemPlacement[0xB4];
|
|
/* 0848 */ WindowPlacement m_whisperPlacement;
|
|
/* 0858 */ unsigned char unknown_0858[0x94];
|
|
/* 08EC */ int homunculusSkillWndVisible;
|
|
/* 08F0 */ unsigned char mercenaryInfoAndSkillPlacement[0x20];
|
|
/* 0910 */ int mercenarySkillWndVisible;
|
|
/* 0914 */ unsigned char subChatPlacements[0x20];
|
|
/* 0934 */ unsigned char hotkeyPlacement[0x10];
|
|
/* 0944 */ unsigned char battlefieldPlacement[0x80];
|
|
/* 09C4 */ std::map<HWND, CWebBrowser*> browsers;
|
|
/* 09CC */ CWebBrowser* activeBrowser;
|
|
/* 09D0 */ CWebBrowser* specialBrowser;
|
|
/* 09D4 */ unsigned char entryQueueStandbyPlacement[0x10];
|
|
/* 09E4 */ std::vector<UIMessageBox*> messageBoxes;
|
|
/* 09F0 */ unsigned char unknown_09F0[0x40];
|
|
/* 0A30 */ UIWindow* window_0A30;
|
|
/* 0A34 */ WindowPolicyEntry policy[10041];
|
|
/* 4F154 */ unsigned char navigationPlacement[16];
|
|
/* 4F164 */ UIWindow* window_4F164;
|
|
/* 4F168 */ UIWindow* window_4F168;
|
|
/* 4F16C */ UIWindow* window_4F16C;
|
|
/* 4F170 */ UIWindow* window_4F170;
|
|
/* 4F174 */ UIWindow* window_4F174;
|
|
/* 4F178 */ UIWindow* window_4F178;
|
|
/* 4F17C */ UIWindow* window_4F17C;
|
|
/* 4F180 */ UIWindow* window_4F180;
|
|
/* 4F184 */ UIWindow* window_4F184;
|
|
/* 4F188 */ UIWindow* window_4F188;
|
|
/* 4F18C */ UIWindow* window_4F18C;
|
|
/* 4F190 */ std::map<int, SavedWindowRectangle*> savedRectangles;
|
|
/* 4F198 */ std::map<int, UIWindow*> overlays;
|
|
/* 4F1A0 */ unsigned previousHitUid;
|
|
/* 4F1A4 */ unsigned currentHitUid;
|
|
/* 4F1A8 */ int miniMapClickX;
|
|
/* 4F1AC */ int miniMapClickY;
|
|
/* 4F1B0 */ unsigned char miniMapPlacementState[0x1C];
|
|
/* 4F1CC */ UIWindow* window_4F1CC;
|
|
/* 4F1D0 */ UIWindow* window_4F1D0;
|
|
/* 4F1D4 */ UIWindow* window_4F1D4;
|
|
/* 4F1D8 */ UIWindow* window_4F1D8;
|
|
/* 4F1DC */ UIWindow* window_4F1DC;
|
|
/* 4F1E0 */ int visible_276;
|
|
/* 4F1E4 */ UIWindow* window_4F1E4;
|
|
/* 4F1E8 */ UIWindow* window_4F1E8;
|
|
/* 4F1EC */ UIWindow* window_4F1EC;
|
|
/* 4F1F0 */ UIWindow* window_4F1F0;
|
|
/* 4F1F4 */ UIWindow* window_4F1F4;
|
|
/* 4F1F8 */ UIWindow* window_4F1F8;
|
|
/* 4F1FC */ UIWindow* window_4F1FC;
|
|
/* 4F200 */ unsigned char macroReporterPlacement[16];
|
|
/* 4F210 */ bool macroReporterVisible;
|
|
/* 4F211 */ bool unknown_4F211;
|
|
/* 4F214 */ std::vector<WindowTextRecord> unknown_4F214;
|
|
/* 4F220 */ unsigned char previewEquipPlacement[0x18];
|
|
/* 4F238 */ int miniPartyWidth;
|
|
/* 4F23C */ int miniPartyHeight;
|
|
/* 4F240 */ std::list<UIWindow*> snapExcluded;
|
|
/* 4F248 */ std::list<int> closedMiniPartyIds;
|
|
/* 4F250 */ UIWindow* window_4F250;
|
|
/* 4F254 */ UIWindow* window_4F254;
|
|
/* 4F258 */ UIWindow* window_4F258;
|
|
/* 4F25C */ UIWindow* window_4F25C;
|
|
/* 4F260 */ UIWindow* window_4F260;
|
|
/* 4F264 */ UIWindow* window_4F264;
|
|
/* 4F268 */ UIWindow* window_4F268;
|
|
/* 4F26C */ UIWindow* window_4F26C;
|
|
/* 4F270 */ UIWindow* window_4F270;
|
|
/* 4F274 */ UIWindow* window_4F274;
|
|
/* 4F278 */ UIWindow* window_4F278;
|
|
/* 4F27C */ UIWindow* window_4F27C;
|
|
/* 4F280 */ std::list<int> savedWindowIds;
|
|
/* 4F288 */ UIWindow* window_4F288;
|
|
/* 4F28C */ std::unordered_set<UIWindow*> deferredDeletion;
|
|
/* 4F2AC */ UIWindow* window_4F2AC;
|
|
|
|
virtual ~UIWindowMgr();
|
|
UIWindowMgr();
|
|
|
|
void InitializeWindowPolicy();
|
|
int WindowPolicy(int action, unsigned int id) const;
|
|
void ResetWindows();
|
|
void Shutdown();
|
|
void ClearMapWindows();
|
|
void SetScreenSize(int width, int height);
|
|
void ArrangeMiniPartyWindows();
|
|
__declspec(noinline) void AddMiniPartyWindow(UIWindow* window);
|
|
void RearrangeMiniPartyWindows();
|
|
void RebuildMiniPartyWindows();
|
|
void RestoreMiniPartyWindows();
|
|
static int ScaleToViewportWidth(int value);
|
|
static int CenterOnViewportX(int x);
|
|
static int CenterOnViewportY(int y);
|
|
void ConfirmActiveDialog();
|
|
void SaveVisibleWindowIds();
|
|
void UpdateNavigationList();
|
|
void LoadShortcutItems();
|
|
void SaveShortcutItems();
|
|
void LoadUIRectInfo();
|
|
void SaveUIRectInfo();
|
|
void ResetUIRectInfo();
|
|
UIWindow* LookupWindow(int id);
|
|
void Promote(UIWindow* window);
|
|
void InvalidateFrames();
|
|
UIWindow* FindRenderedUid(std::uint32_t uid);
|
|
UIWindow* HitTestWindows(int x, int y);
|
|
void ShowDropDown(UIWindow* owner, UIWindow* child, int x, int y);
|
|
bool CloseDropDown();
|
|
void RefreshGameSettingOption(int option);
|
|
void RefreshGameSettings();
|
|
void RefreshGameSettingHotkeys();
|
|
UIWindow* EnsureWindow(int id);
|
|
UIWindow* CreateLayoutWindow(int id);
|
|
RECT GetMiniPartyUsableArea();
|
|
__declspec(noinline) UIWindow* FindSnapExcludedWindow(int cell);
|
|
void Schedule(UIWindow* window);
|
|
__declspec(noinline) void AddRendered(UIWindow* window);
|
|
void RegisterWindow(UIWindow* window);
|
|
void UnregisterWindow(UIWindow* window);
|
|
void InvalidateRegisteredWindows();
|
|
void SetUnknown04DC(const char* text);
|
|
void Destroy(UIWindow* window);
|
|
void ForgetWindowReferences(UIWindow* removed);
|
|
void DeferDeletion(UIWindow* window);
|
|
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);
|
|
int RunEmailAddress();
|
|
void DismissTransient();
|
|
void MoveTransient(int x, int y);
|
|
void RetireTransientWindow();
|
|
void ClearWindow01B8();
|
|
void ClearUnknown04DC();
|
|
int ProcessMouse();
|
|
void UpdateFrameWindows();
|
|
CWebBrowser* CreateBrowser(int width, int height);
|
|
CWebBrowser* EnsureSpecialBrowser(int width, int height);
|
|
CWebBrowser* FindBrowser(HWND window);
|
|
void RemoveBrowser(HWND window);
|
|
bool CloseWindow(int id);
|
|
void CloseWindowExcept251(int id);
|
|
void RecordWindowPacket(int argument);
|
|
void Nullsub370();
|
|
void RegisterNamedWindow(std::string name, UIWindow* window);
|
|
void UnregisterNamedWindow(std::string name);
|
|
void ShowTransient(UIWindow* window);
|
|
void RequestAddFriend(const char* name);
|
|
void AddOverlay(int id, UIWindow* window);
|
|
void AddRenderedFront(UIWindow* window);
|
|
void ShowWindows189(unsigned char show);
|
|
void DestroyPersistentWindows();
|
|
void RemoveSnapRectangle(UIWindow* window);
|
|
void StoreSnapRectangle(UIWindow* window);
|
|
void ConstrainSnap(UIWindow* window, int& dx, int& dy, int groupMember);
|
|
void ReleaseRetainedWindow(int id);
|
|
void InvalidateAll();
|
|
void RefreshClanWnd();
|
|
void RefreshGuildWindows();
|
|
void RefreshRouletteWnd();
|
|
void EnableRouletteWnd();
|
|
char UpdateSnapRectangles();
|
|
bool ProcessDialogKey(int unused, int key);
|
|
void DestroyWindow0478();
|
|
void SubmitActiveDialog();
|
|
void NotifyMode();
|
|
void NotifyItemWindows(int accountId, int lower, int upper);
|
|
UIWindow* FindItemWindow(int accountId);
|
|
void NotifyMemberWindows(const MessengerMember* target);
|
|
int SendMsg(int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4, std::intptr_t argument5);
|
|
bool IsOrderFixed(int id);
|
|
__declspec(noinline) void RemoveOrder(int id);
|
|
void BringToFront(int id);
|
|
void CloseMiniPartyWindow(int id);
|
|
bool ProcessEnterKey();
|
|
UIWindow* OpenSubChatWindow(int id, int x, int y, int width, int height);
|
|
void SetCapture(UIWindow* window);
|
|
void ReleaseCapture();
|
|
UIWindow* Capture() const;
|
|
void SendMsgToNamedWindow(const char* name);
|
|
void SetWindows189Visible(unsigned char show);
|
|
void ShowWindowsWithId(int id, unsigned char show);
|
|
void NotifyHoverWindow();
|
|
UIWindow* GetGuildWindow();
|
|
int FindMiniPartyCell();
|
|
UIWindow* GetHoverWindow();
|
|
int GetRenderedWindowIds(int* ids);
|
|
void HideWindow01C8();
|
|
bool DropAt(int x, int y, ModeDragState* drag);
|
|
void FocusWindow01C8Edit();
|
|
void SetFocus(UIWindow* value);
|
|
void FocusFirst();
|
|
void FocusLast();
|
|
void FocusNext();
|
|
bool IsLastFocus(UIWindow* value);
|
|
void FocusPrevious();
|
|
void RefreshFocus(UIWindow* const& excludedRoot);
|
|
void SetPressedWindowRoot(UIWindow* window);
|
|
bool IsHoverOnWindow01C8Button();
|
|
void SelectWhisperName(const char* name);
|
|
void AddWhisperName(const char* name);
|
|
int ShowWhisperFrom(const char* name, const char* text, int color, std::uint32_t accountId);
|
|
void RefreshFrameSkins();
|
|
bool IsDropDownChild(const UIWindow* window);
|
|
bool HasMiniPartyMember(std::uint32_t accountId);
|
|
bool IsHoverParentVisible();
|
|
int IsFriend(const char* name);
|
|
bool IsSharedWindowId(int id);
|
|
bool HasNavigationBlocker();
|
|
int Window4F250Ready();
|
|
bool HasPendingDialog();
|
|
bool HasTitleAtActorCell(std::uint32_t aid);
|
|
void CancelActiveDialog();
|
|
void CenterSurface0478();
|
|
void DrawLoginOverlay();
|
|
void DrawWindows();
|
|
void RefreshWindow01C8Edits();
|
|
void SetSurface0478(CBitmapRes* bitmap);
|
|
void SendFlagEffect(int message);
|
|
void RestoreHiddenWindows();
|
|
std::vector<unsigned char> SaveReplaySettings();
|
|
std::vector<unsigned char> SaveReplayReserved();
|
|
void ApplyReplayOptions(const ReplayOptions& options);
|
|
int LoadReplaySettings(const std::vector<unsigned char>& data);
|
|
int LoadReplayReserved(const std::vector<unsigned char>& data);
|
|
int LoadReplayWindows(const std::vector<unsigned char>& data);
|
|
void CycleWindowVisibility(int unused);
|
|
void CycleWindowVisibilityTwice();
|
|
bool ShowWindowById(int id, int visible);
|
|
bool ShowShortcutWindow(int value);
|
|
void BroadcastMessage21();
|
|
bool HasModalWindow();
|
|
int TranslateHotkey(int key, int keyData);
|
|
int GetHotkeyBehavior();
|
|
std::vector<unsigned char> SaveReplayWindows();
|
|
bool ProcessHotkeyAction(int action, int pressed);
|
|
bool ProcessShortcutKey(int action);
|
|
bool ProcessKeyDown(int key, int keyData, int pressed);
|
|
void ShowWaitDBSaveWindow();
|
|
void SendEmotionHotkey(int index);
|
|
};
|
|
|
|
extern UIWindowMgr g_windowMgr;
|
|
extern int g_renderDiagnosticLine;
|
|
extern const char* g_renderDiagnosticFile;
|
|
extern bool g_windowToggleFlag;
|
|
extern bool g_randomLoadingScreen;
|
|
extern int g_windowCloseValue;
|
|
extern int g_savedWindowCloseValue;
|
|
|
|
void __fastcall RefreshItemWindows(UIWindowMgr* mgr);
|
|
|
|
#if defined(_WIN32) && !defined(_WIN64)
|
|
static_assert(sizeof(WindowTextEntry) == 0x1C);
|
|
static_assert(sizeof(WindowTextRecord) == 0x20);
|
|
static_assert(sizeof(SavedWindowRectangle) == 0x10);
|
|
static_assert(sizeof(WindowPolicyEntry) == 0x20);
|
|
static_assert(offsetof(UIWindowMgr, windows) == 0x8);
|
|
static_assert(offsetof(UIWindowMgr, windowHistory) == 0x18);
|
|
static_assert(offsetof(UIWindowMgr, retainedWindows) == 0x28);
|
|
static_assert(offsetof(UIWindowMgr, persistentWindows) == 0x170);
|
|
static_assert(offsetof(UIWindowMgr, rendered) == 0x17C);
|
|
static_assert(offsetof(UIWindowMgr, retired) == 0x184);
|
|
static_assert(offsetof(UIWindowMgr, registeredWindows) == 0x18C);
|
|
static_assert(offsetof(UIWindowMgr, snapRectangles) == 0x194);
|
|
static_assert(offsetof(UIWindowMgr, modalWindows) == 0x1A4);
|
|
static_assert(offsetof(UIWindowMgr, window_01C8) == 0x1C8);
|
|
static_assert(offsetof(UIWindowMgr, window_01E8) == 0x1E8);
|
|
static_assert(offsetof(UIWindowMgr, window_0230) == 0x230);
|
|
static_assert(offsetof(UIWindowMgr, modal) == 0x400);
|
|
static_assert(offsetof(UIWindowMgr, unknown_0484) == 0x484);
|
|
static_assert(offsetof(UIWindowMgr, pendingNoticeLines) == 0x4C4);
|
|
static_assert(offsetof(UIWindowMgr, unknown_04CC) == 0x4CC);
|
|
static_assert(offsetof(UIWindowMgr, unknown_04D4) == 0x4D4);
|
|
static_assert(offsetof(UIWindowMgr, chatInputText) == 0x4DC);
|
|
static_assert(offsetof(UIWindowMgr, namedWindows) == 0x500);
|
|
static_assert(offsetof(UIWindowMgr, hiddenWindows) == 0x50C);
|
|
static_assert(offsetof(UIWindowMgr, browsers) == 0x9C4);
|
|
static_assert(offsetof(UIWindowMgr, messageBoxes) == 0x9E4);
|
|
static_assert(offsetof(UIWindowMgr, policy) == 0xA34);
|
|
static_assert(offsetof(UIWindowMgr, savedRectangles) == 0x4F190);
|
|
static_assert(offsetof(UIWindowMgr, overlays) == 0x4F198);
|
|
static_assert(offsetof(UIWindowMgr, unknown_4F214) == 0x4F214);
|
|
static_assert(offsetof(UIWindowMgr, snapExcluded) == 0x4F240);
|
|
static_assert(offsetof(UIWindowMgr, closedMiniPartyIds) == 0x4F248);
|
|
static_assert(offsetof(UIWindowMgr, savedWindowIds) == 0x4F280);
|
|
static_assert(offsetof(UIWindowMgr, deferredDeletion) == 0x4F28C);
|
|
static_assert(offsetof(UIWindowMgr, window_4F2AC) == 0x4F2AC);
|
|
static_assert(sizeof(UIWindowMgr) == 0x4F2B0);
|
|
#endif
|
|
|
|
#endif
|