Decompile 9 functions in Source/UI/GameSettings/GameSettingsUI.cpp, Source/UI/GameSettings/GameSettingsUI.h, ...
Batch #4814 by youko: 9 byte-identical, 0 confirmed by peer review. - fn_15962 CUIComboBox<GameSettingsUI::CUIComboItem,RenderAdapter>::Selected: byte-identical - fn_15963 CUIComboBox<GameSettingsUI::CUIComboItem,DisplayMode>::Selected: byte-identical - fn_15964 CUIComboBox<GameSettingsUI::CUIComboItem,RenderBackend>::Selected: byte-identical - fn_15965 CUIComboBox<GameSettingsUI::CUIComboItem,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::Selected: byte-identical - fn_15968 GameSettingsUI::CUIListPage::Slot54: byte-identical - fn_16009 CUIComboBox<GameSettingsUI::CUIComboItem,RenderAdapter>::UpdateListHeight: byte-identical - fn_16010 CUIComboBox<GameSettingsUI::CUIComboItem,DisplayMode>::UpdateListHeight: byte-identical - fn_16011 CUIComboBox<GameSettingsUI::CUIComboItem,RenderBackend>::UpdateListHeight: byte-identical - fn_16012 CUIComboBox<GameSettingsUI::CUIComboItem,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::UpdateListHeight: byte-identical Merged automatically: every function is byte-identical to the original.
This commit is contained in:
parent
b9eb9bf553
commit
a645583bea
3 changed files with 210 additions and 0 deletions
|
|
@ -46,6 +46,8 @@ private:
|
|||
/* 000C */ std::shared_ptr<CSurface> m_backBuffer;
|
||||
};
|
||||
|
||||
extern int g_configuredFullscreen;
|
||||
|
||||
void ClearDirectDrawModes();
|
||||
|
||||
#if defined(_WIN32) && !defined(_WIN64)
|
||||
|
|
|
|||
|
|
@ -1,17 +1,24 @@
|
|||
#include "UI/GameSettings/GameSettingsUI.h"
|
||||
#include "Client/Mode/ModeMgr.h"
|
||||
#include "Contents/Configuration/ServiceOptions.h"
|
||||
#include "Contents/MessageTable.h"
|
||||
#include "Contents/SkinMgr.h"
|
||||
#include "Contents/Sound/SoundMgr.h"
|
||||
#include "Network/Connection/Connection.h"
|
||||
#include "Network/Packets/PacketLengths.h"
|
||||
#include "Render/DisplayMode.h"
|
||||
#include "Render/DX7/RenderSystemDX7.h"
|
||||
#include "Render/RenderAdapter.h"
|
||||
#include "Render/RenderBackends.h"
|
||||
#include "UI/Buttons/UIRadioButton.h"
|
||||
#include "UI/Lists/UIVScrollBar.h"
|
||||
#include "UI/Window/UIRoulletteWnd.h"
|
||||
#include "UI/Window/UIWindowMgr.h"
|
||||
#include "UI/Window/WindowBorder.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
namespace {
|
||||
struct RodexSpamOptionPacket {
|
||||
|
|
@ -22,6 +29,9 @@ namespace {
|
|||
static_assert(sizeof(RodexSpamOptionPacket) == 12);
|
||||
}
|
||||
|
||||
template <>
|
||||
__declspec(noinline) void CUIListBoxEx<GameSettingsUI::CUIComboItem, std::string>::SelectItem(CUIListItem* item);
|
||||
|
||||
// OFFSET: 0x00A344D0
|
||||
// OFFSET: 0x00A34500
|
||||
// OFFSET: 0x00A34530
|
||||
|
|
@ -40,6 +50,44 @@ template void CUIComboBox<GameSettingsUI::CUIComboItem, RenderBackend>::Paint();
|
|||
template void CUIComboBox<GameSettingsUI::CUIComboItem, DisplayMode>::Paint();
|
||||
template void CUIComboBox<GameSettingsUI::CUIComboItem, RenderAdapter>::Paint();
|
||||
|
||||
// OFFSET: 0x00A40040
|
||||
// OFFSET: 0x00A40050
|
||||
// OFFSET: 0x00A40060
|
||||
// OFFSET: 0x00A40070
|
||||
// FUNCTION: fn_15962
|
||||
// FUNCTION: fn_15963
|
||||
// FUNCTION: fn_15964
|
||||
// FUNCTION: fn_15965
|
||||
template <class T, class D> unsigned int CUIComboBox<T, D>::Selected() const {
|
||||
return this->listBox->selected;
|
||||
}
|
||||
|
||||
template unsigned int CUIComboBox<GameSettingsUI::CUIComboItem, RenderAdapter>::Selected() const;
|
||||
template unsigned int CUIComboBox<GameSettingsUI::CUIComboItem, DisplayMode>::Selected() const;
|
||||
template unsigned int CUIComboBox<GameSettingsUI::CUIComboItem, RenderBackend>::Selected() const;
|
||||
template unsigned int CUIComboBox<GameSettingsUI::CUIComboItem, std::string>::Selected() const;
|
||||
|
||||
// OFFSET: 0x00A41FE0
|
||||
// OFFSET: 0x00A42060
|
||||
// OFFSET: 0x00A420E0
|
||||
// OFFSET: 0x00A42160
|
||||
// FUNCTION: fn_16009
|
||||
// FUNCTION: fn_16010
|
||||
// FUNCTION: fn_16011
|
||||
// FUNCTION: fn_16012
|
||||
template <class T, class D> void CUIComboBox<T, D>::UpdateListHeight() {
|
||||
const int height = std::min<unsigned int>(this->listBox->data.size(), this->visibleItems) * this->itemHeight;
|
||||
if (height != this->listBox->geometry.height) {
|
||||
this->listBox->Resize(this->listBox->geometry.width, height);
|
||||
}
|
||||
this->listBox->UpdateScrollBar();
|
||||
}
|
||||
|
||||
template void CUIComboBox<GameSettingsUI::CUIComboItem, RenderAdapter>::UpdateListHeight();
|
||||
template void CUIComboBox<GameSettingsUI::CUIComboItem, DisplayMode>::UpdateListHeight();
|
||||
template void CUIComboBox<GameSettingsUI::CUIComboItem, RenderBackend>::UpdateListHeight();
|
||||
template void CUIComboBox<GameSettingsUI::CUIComboItem, std::string>::UpdateListHeight();
|
||||
|
||||
// OFFSET: 0x00A34590
|
||||
// FUNCTION: fn_15411
|
||||
template <>
|
||||
|
|
@ -643,6 +691,49 @@ void CUIPage::Slot16() {
|
|||
}
|
||||
}
|
||||
|
||||
// OFFSET: 0x00A3F360
|
||||
|
||||
// OFFSET: 0x00A3F3D0
|
||||
|
||||
// OFFSET: 0x00A3F4C0
|
||||
|
||||
// OFFSET: 0x00A3F560
|
||||
|
||||
// OFFSET: 0x00A3F5C0
|
||||
|
||||
// OFFSET: 0x00A3F6B0
|
||||
|
||||
// OFFSET: 0x00A3F6D0
|
||||
|
||||
// OFFSET: 0x00A401C0
|
||||
|
||||
// OFFSET: 0x00A40270
|
||||
// FUNCTION: fn_15968
|
||||
void CUIListPage::Slot54(CUIOptionItem* item, const TALKTYPE& type) {
|
||||
}
|
||||
|
||||
// OFFSET: 0x00A41E30
|
||||
|
||||
// OFFSET: 0x00A41E90
|
||||
|
||||
// OFFSET: 0x00A41F30
|
||||
|
||||
// OFFSET: 0x00A42FE0
|
||||
|
||||
// OFFSET: 0x00A42FF0
|
||||
|
||||
// OFFSET: 0x00A43650
|
||||
|
||||
// OFFSET: 0x00A436A0
|
||||
|
||||
// OFFSET: 0x00A43700
|
||||
|
||||
// OFFSET: 0x00A43810
|
||||
|
||||
// OFFSET: 0x00A43870
|
||||
|
||||
// OFFSET: 0x00A43A40
|
||||
|
||||
// OFFSET: 0x00A43B70
|
||||
// FUNCTION: fn_16045
|
||||
void CUIPage::Refresh() {
|
||||
|
|
|
|||
|
|
@ -1,57 +1,161 @@
|
|||
#ifndef RAGNAROK_SOURCE_UI_GAMESETTINGS_GAMESETTINGSUI_H
|
||||
#define RAGNAROK_SOURCE_UI_GAMESETTINGS_GAMESETTINGSUI_H
|
||||
|
||||
#include "Render/DisplayMode.h"
|
||||
#include "Render/RenderAdapter.h"
|
||||
#include "Render/RenderBackends.h"
|
||||
#include "UI/Lists/UIListBoxTemplate.h"
|
||||
#include "UI/Window/UIControl.h"
|
||||
#include "UI/Window/UIFrameWnd.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
enum TALKTYPE : int;
|
||||
|
||||
class CUICheckBox;
|
||||
class CUIRadioButton;
|
||||
class CUIStaticText;
|
||||
|
||||
template <class T, class D> class CUIComboBox : public CUIControl {
|
||||
public:
|
||||
void Paint() override;
|
||||
unsigned int Selected() const;
|
||||
void UpdateListHeight();
|
||||
|
||||
/* 0084 */ unsigned char unknown_0084[0x08];
|
||||
/* 008C */ CUIListBoxEx<T, D>* listBox;
|
||||
/* 0090 */ unsigned char unknown_0090[0x04];
|
||||
/* 0094 */ int itemHeight;
|
||||
/* 0098 */ int visibleItems;
|
||||
};
|
||||
|
||||
namespace GameSettingsUI {
|
||||
class CUIComboItem;
|
||||
class CUIOptionItem;
|
||||
|
||||
class CUIGroup : public CUIControl {
|
||||
public:
|
||||
virtual void Apply();
|
||||
virtual void Refresh() = 0;
|
||||
|
||||
/* 0080 */ CUIStaticText* m_title;
|
||||
};
|
||||
|
||||
class CUIGroupEmblem : public CUIGroup {
|
||||
public:
|
||||
void Apply() override;
|
||||
void Refresh() override;
|
||||
__declspec(noinline) void SetEnabled(bool enabled);
|
||||
void OnSelect(CUIRadioButton* button);
|
||||
|
||||
/* 0084 */ CUIRadioButton* m_onButton;
|
||||
/* 0088 */ CUIStaticText* m_onText;
|
||||
/* 008C */ CUIRadioButton* m_offButton;
|
||||
/* 0090 */ CUIStaticText* m_offText;
|
||||
};
|
||||
|
||||
class CUIGroupFullscreen : public CUIGroup {
|
||||
public:
|
||||
void Refresh() override;
|
||||
|
||||
/* 0084 */ CUIRadioButton* m_onButton;
|
||||
/* 0088 */ CUIStaticText* m_onText;
|
||||
/* 008C */ CUIRadioButton* m_offButton;
|
||||
/* 0090 */ CUIStaticText* m_offText;
|
||||
};
|
||||
|
||||
class CUIGroupGraphics : public CUIGroup {
|
||||
public:
|
||||
/* 0084 */ CUIComboBox<CUIComboItem, RenderAdapter>* m_adapterCombo;
|
||||
/* 0088 */ CUIStaticText* m_modeText;
|
||||
/* 008C */ CUIComboBox<CUIComboItem, DisplayMode>* m_modeCombo;
|
||||
/* 0090 */ RenderAdapter m_adapter;
|
||||
/* 00F8 */ RenderAdapter m_pendingAdapter;
|
||||
/* 0160 */ DisplayMode m_mode;
|
||||
/* 0184 */ DisplayMode m_pendingMode;
|
||||
};
|
||||
|
||||
class CUIGroupGraphicsAPI : public CUIGroup {
|
||||
public:
|
||||
/* 0084 */ CUIComboBox<CUIComboItem, RenderBackend>* m_combo;
|
||||
/* 0088 */ int m_backend;
|
||||
/* 008C */ int m_pendingBackend;
|
||||
};
|
||||
|
||||
class CUIGroupLogInOut : public CUIGroup {
|
||||
public:
|
||||
void Apply() override;
|
||||
void Refresh() override;
|
||||
__declspec(noinline) void SetEnabled(bool enabled);
|
||||
void OnSelect(CUIRadioButton* button);
|
||||
|
||||
/* 0084 */ CUIRadioButton* m_onButton;
|
||||
/* 0088 */ CUIStaticText* m_onText;
|
||||
/* 008C */ CUIRadioButton* m_offButton;
|
||||
/* 0090 */ CUIStaticText* m_offText;
|
||||
};
|
||||
|
||||
class CUIGroupRodexSpam : public CUIGroup {
|
||||
public:
|
||||
void Apply() override;
|
||||
void OnSelect(CUIRadioButton* button);
|
||||
|
||||
/* 0084 */ CUIRadioButton* m_onButton;
|
||||
/* 0088 */ CUIStaticText* m_onText;
|
||||
/* 008C */ CUIRadioButton* m_offButton;
|
||||
/* 0090 */ CUIStaticText* m_offText;
|
||||
};
|
||||
|
||||
class CUIGroupSkin : public CUIGroup {
|
||||
public:
|
||||
void Apply() override;
|
||||
void Refresh() override;
|
||||
|
||||
/* 0084 */ CUIComboBox<CUIComboItem, std::string>* m_combo;
|
||||
};
|
||||
|
||||
class CUIGroupSound : public CUIGroup {
|
||||
public:
|
||||
void Paint() override;
|
||||
void Refresh() override;
|
||||
__declspec(noinline) void SetBgmEnabled(bool enabled);
|
||||
__declspec(noinline) void SetBgmVolume(int volume);
|
||||
__declspec(noinline) void SetEffectVolume(int volume);
|
||||
void OnBgmMute(bool muted);
|
||||
void OnEffectMute(bool muted);
|
||||
void OnBgmScroll(int position);
|
||||
void OnEffectScroll(int position);
|
||||
|
||||
/* 0084 */ CUIStaticText* m_bgmText;
|
||||
/* 0088 */ CUIVScrollBar* m_bgmSlider;
|
||||
/* 008C */ CUICheckBox* m_bgmMute;
|
||||
/* 0090 */ CUIStaticText* unknown_0090;
|
||||
/* 0094 */ CUIStaticText* m_effectText;
|
||||
/* 0098 */ CUIVScrollBar* m_effectSlider;
|
||||
/* 009C */ CUICheckBox* m_effectMute;
|
||||
};
|
||||
|
||||
class CUIGroupSpriteDetailLevel : public CUIGroup {
|
||||
public:
|
||||
void Paint() override;
|
||||
void Refresh() override;
|
||||
|
||||
/* 0084 */ CUIVScrollBar* m_slider;
|
||||
};
|
||||
|
||||
class CUIGroupTextureDetailLevel : public CUIGroup {
|
||||
public:
|
||||
void Paint() override;
|
||||
|
||||
/* 0084 */ CUIVScrollBar* m_slider;
|
||||
};
|
||||
|
||||
class CUIGroupTrilinear : public CUIGroup {
|
||||
public:
|
||||
/* 0084 */ CUIRadioButton* m_onButton;
|
||||
/* 0088 */ CUIStaticText* m_onText;
|
||||
/* 008C */ CUIRadioButton* m_offButton;
|
||||
/* 0090 */ CUIStaticText* m_offText;
|
||||
};
|
||||
|
||||
class CUIPage : public CUIControl {
|
||||
|
|
@ -62,10 +166,23 @@ public:
|
|||
virtual void Refresh();
|
||||
};
|
||||
|
||||
class CUIGraphicsPage : public CUIPage {
|
||||
public:
|
||||
bool IsModified();
|
||||
|
||||
/* 0080 */ CUIGroupGraphicsAPI* m_graphicsApi;
|
||||
/* 0084 */ CUIGroupGraphics* m_graphics;
|
||||
/* 0088 */ CUIGroupSpriteDetailLevel* m_spriteDetailLevel;
|
||||
/* 008C */ CUIGroupTextureDetailLevel* m_textureDetailLevel;
|
||||
/* 0090 */ CUIGroupFullscreen* m_fullscreen;
|
||||
/* 0094 */ CUIGroupTrilinear* m_trilinear;
|
||||
};
|
||||
|
||||
class CUIListPage : public CUIControl {
|
||||
public:
|
||||
void Slot16() override;
|
||||
void Paint() override;
|
||||
virtual void Slot54(CUIOptionItem* item, const TALKTYPE& type);
|
||||
};
|
||||
|
||||
class CUIComboItem : public CUIListItem {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue