Batch #1607 by ragnarok-clanker: 0 byte-identical, 41 confirmed by peer review. - fn_11718 DrawItemIconById: logic confirmed by peer review - fn_11719 DrawItemSlotBackground: logic confirmed by peer review - fn_11721 UICntWnd::DrawBorder: logic confirmed by peer review - fn_11760 UIBank_NewWnd::Paint: logic confirmed by peer review - fn_11761 UIChatRoomWnd::Paint: logic confirmed by peer review - fn_11767 UIMerInfoWnd::Paint: logic confirmed by peer review - fn_12085 UIWindow::DrawPanelBackground: logic confirmed by peer review - fn_12086 UIWindow::DrawPanelBackgroundAt: logic confirmed by peer review - fn_12088 UIWindow::DrawButtonBar: logic confirmed by peer review - fn_12089 UIWindow::DrawButtonBarAt: logic confirmed by peer review - fn_12098 UIWindow::DrawTitleBar: logic confirmed by peer review - fn_12099 UIWindow::DrawTitleBarAt: logic confirmed by peer review - fn_12120 UIWindow::LoadStyledBitmap: logic confirmed by peer review - fn_12219 UIDisconnectedServerMsgWnd::Paint: logic confirmed by peer review - fn_12233 UINoticeConfirmWnd::Paint: logic confirmed by peer review - fn_12245 UIQuitWnd::Paint: logic confirmed by peer review - fn_12246 UIRestartWnd::Paint: logic confirmed by peer review - fn_12258 UIWaitWnd::Paint: logic confirmed by peer review - fn_14470 CUIFrameWnd::RefreshSkinColors: logic confirmed by peer review - fn_14471 CUIFrameWnd::Paint: logic confirmed by peer review - fn_14472 CUIFrameWnd::SetSkinColors: logic confirmed by peer review - fn_14635 CUIControl::LoadBitmapResource: logic confirmed by peer review - fn_17781 InputCharset::Prefix: logic confirmed by peer review - fn_17788 InputCharset::ServiceName: logic confirmed by peer review - fn_17847 FadeOutMode: logic confirmed by peer review - fn_18378 Resolve: logic confirmed by peer review - fn_02111 RendererDX7Operations::SaveLogo: logic confirmed by peer review - fn_09446 UICashEmotionPack::Paint: logic confirmed by peer review - fn_09453 UICashEmotionPack::SetSaleBadge: logic confirmed by peer review - fn_09483 UICashEmotionPiece::Paint: logic confirmed by peer review - fn_45445 CSkinMgr::CSkinMgr: logic confirmed by peer review - fn_09681 CSkinMgr::~CSkinMgr: logic confirmed by peer review - fn_09683 CSkinMgr::Prepare: logic confirmed by peer review - fn_09684 SkinPaletteColor: logic confirmed by peer review - fn_09685 SkinPaletteChannels: logic confirmed by peer review - fn_09686 CSkinMgr::Name: logic confirmed by peer review - fn_09687 CSkinMgr::Prefix: logic confirmed by peer review - fn_09688 CSkinMgr::Name: logic confirmed by peer review - fn_09690 CSkinMgr::Selected: logic confirmed by peer review - fn_10758 UIEditCtrl::DrawSelectionAt: logic confirmed by peer review - fn_10759 UIEditCtrl::DrawSelection: logic confirmed by peer review Reviewed-by: ragnarok-clanker Adds to the build: Source/Contents/SkinMgr.cpp
77 lines
2.4 KiB
C++
77 lines
2.4 KiB
C++
#include "Resource/Bitmap/BitmapResource.h"
|
|
#include "Resource/ResourceMgr.h"
|
|
#include "Resource/TextureNames.h"
|
|
#include "UI/Window/UIWindow.h"
|
|
#include "Utility/Text/FormatString.h"
|
|
|
|
#include <cstring>
|
|
#include <string>
|
|
|
|
// OFFSET: 0x008D0BE0
|
|
// FUNCTION: fn_12089
|
|
int UIWindow::DrawButtonBarAt(int style, int x, int width, int rows) {
|
|
if (width == 0) {
|
|
width = this->geometry.width - x;
|
|
}
|
|
|
|
const int height = this->geometry.height;
|
|
int leftWidth = 0;
|
|
int rightWidth = 0;
|
|
int barHeight = 0;
|
|
|
|
CBitmapRes* left =
|
|
this->LoadStyledBitmap(style, "유저인터페이스\\basic_interface\\btnbar_left%d.bmp", "유저인터페이스\\basic_interface\\btnbar_left.bmp");
|
|
if (left) {
|
|
leftWidth = left->image.width;
|
|
barHeight = left->image.height;
|
|
|
|
for (int row = 1; row <= rows; ++row) {
|
|
this->DrawBitmap(x, height - row * barHeight, &left->image, false);
|
|
}
|
|
}
|
|
|
|
CBitmapRes* right =
|
|
this->LoadStyledBitmap(style, "유저인터페이스\\basic_interface\\btnbar_right%d.bmp", "유저인터페이스\\basic_interface\\btnbar_right.bmp");
|
|
if (right) {
|
|
rightWidth = right->image.width;
|
|
|
|
for (int row = 1; row <= rows; ++row) {
|
|
this->DrawBitmap(x - rightWidth + width, height - row * barHeight, &right->image, false);
|
|
}
|
|
}
|
|
|
|
CBitmapRes* middle =
|
|
this->LoadStyledBitmap(style, "유저인터페이스\\basic_interface\\btnbar_mid%d.bmp", "유저인터페이스\\basic_interface\\btnbar_mid.bmp");
|
|
if (!middle) {
|
|
return 0;
|
|
}
|
|
|
|
const int middleWidth = middle->image.width;
|
|
const int extent = width - rightWidth - leftWidth;
|
|
const int count = extent / middleWidth + (extent % middleWidth != 0);
|
|
const int startX = leftWidth + x;
|
|
|
|
for (int row = 1; row <= rows; ++row) {
|
|
int columnX = startX;
|
|
for (int column = 0; column < count; ++column) {
|
|
this->DrawBitmap(columnX, height - row * barHeight, &middle->image, false);
|
|
columnX += middleWidth;
|
|
}
|
|
}
|
|
|
|
return middle->image.height;
|
|
}
|
|
|
|
// OFFSET: 0x008D7570
|
|
// FUNCTION: fn_12120
|
|
CBitmapRes* UIWindow::LoadStyledBitmap(int style, const char* format, const char* name) {
|
|
if (style > 0) {
|
|
if (format && std::strlen(format) != 0) {
|
|
std::string filename = FormatOwnedString(format, style);
|
|
return static_cast<CBitmapRes*>(ResourceMgr::Instance().Load(Resolve(filename.c_str())));
|
|
}
|
|
} else if (name && std::strlen(name) != 0) {
|
|
return static_cast<CBitmapRes*>(ResourceMgr::Instance().Load(Resolve(name)));
|
|
}
|
|
return nullptr;
|
|
}
|