Mouse over descriptions for the hacks. Thanks to KrossX again, these are great :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5123 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
ramapcsx2 2012-03-07 09:58:38 +00:00
parent 144a7a13fb
commit 9aa9808c2f
4 changed files with 79 additions and 10 deletions

View File

@ -411,7 +411,7 @@ void GSHacksDlg::OnInit()
cb2msaa[j] = i; cb2msaa[j] = i;
char text[32] = {0}; char text[32] = {0};
sprintf(text, "%dx ????", i); sprintf(text, "%dx ", i);
SendMessage(GetDlgItem(m_hWnd, IDC_MSAACB), CB_ADDSTRING, 0, (LPARAM)text); SendMessage(GetDlgItem(m_hWnd, IDC_MSAACB), CB_ADDSTRING, 0, (LPARAM)text);
} }
@ -425,15 +425,70 @@ void GSHacksDlg::OnInit()
SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_SETRANGE, 0, MAKELPARAM(1000, 0)); SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_SETRANGE, 0, MAKELPARAM(1000, 0));
SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfig("UserHacks_SkipDraw", 0), 0)); SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfig("UserHacks_SkipDraw", 0), 0));
// Hacks descriptions
SetWindowText(GetDlgItem(m_hWnd, IDC_HACK_DESCRIPTION), ""); // Blank it
sprintf(Hack[HK_MSAA].description, "Multisample Anti-Aliasing\n\nEnables hardware Anti-Aliasing. Needs lots of memory."
" The Z-24 modes might need to have LogarithmicZ to compensate for the bits lost (DX9 mode).");
sprintf(Hack[HK_SKIPDRAW].description, "Skipdraw\n\nSkips drawing n surfaces completely. "
"Use it, for example, to try and get rid of messed up post processing effects."
" Try values between 1 and 100.");
sprintf(Hack[HK_ALPHA].description, "Alpha Hack\n\nDifferent alpha handling. Works around some shadow problems.");
sprintf(Hack[HK_OFFSET].description, "Halfpixel\n\nMight fix some misaligned fog, bloom, or blend effect.");
sprintf(Hack[HK_SPRITE].description, "Sprite Hack\n\nHelps getting rid of black inner lines in some filtered sprites."
" Half option should be the preferred one, for Mana Khemia and ArTonelico for example."
" Full should be used for Tales of Destiny.");
sprintf(Hack[HK_WILD].description, "WildArms\n\nLowers the GS precission to avoid gaps between pixels when"
" upscaling. Full option fixes the text on WildArms games, while Half option might improve portraits"
" in ArTonelico for example.");
SetNotHover(-1);
} }
void GSHacksDlg::UpdateControls() void GSHacksDlg::UpdateControls()
{} {}
bool GSHacksDlg::OnMessage(UINT message, WPARAM wParam, LPARAM lParam) void GSHacksDlg::SetNotHover(int skip)
{ {
switch(message) for(int i=0; i<HK_SIZE; i++)
{
if(skip == i) continue;
Hack[i].isHovered = false;
}
}
bool GSHacksDlg::OnMessage(UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{ {
case WM_MOUSEMOVE:
{
POINTS pos = MAKEPOINTS(lParam);
if(pos.x >= 20 && pos.x <= 120)
{
int isHovering = -1;
if(pos.y >= 28 && pos.y <= 52) isHovering = HK_MSAA;
else if(pos.y >= 54 && pos.y <= 82) isHovering = HK_SKIPDRAW;
else if(pos.y >= 84 && pos.y <= 106) isHovering = HK_ALPHA;
else if(pos.y >= 112 && pos.y <= 134) isHovering = HK_OFFSET;
else if(pos.y >= 140 && pos.y <= 164) isHovering = HK_SPRITE;
else if (pos.y >= 168 && pos.y <= 190) isHovering = HK_WILD;
if(isHovering > -1 && !Hack[isHovering].isHovered)
{
Hack[isHovering].isHovered = true;
SetWindowText(GetDlgItem(m_hWnd, IDC_HACK_DESCRIPTION), Hack[isHovering].description);
SetNotHover(isHovering);
}
}
} break;
case WM_COMMAND: case WM_COMMAND:
{ {
int id = LOWORD(wParam); int id = LOWORD(wParam);

View File

@ -47,7 +47,25 @@ class GSHacksDlg : public GSDialog
bool isdx9; bool isdx9;
enum
{
HK_MSAA,
HK_SKIPDRAW,
HK_ALPHA,
HK_OFFSET,
HK_SPRITE,
HK_WILD,
HK_SIZE
};
struct
{
bool isHovered;
char description[1024];
} Hack[HK_SIZE];
void UpdateControls(); void UpdateControls();
void SetNotHover(int i);
protected: protected:
void OnInit(); void OnInit();

View File

@ -89,15 +89,10 @@ BEGIN
CONTROL "Alpha",IDC_ALPHAHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,54,34,10 CONTROL "Alpha",IDC_ALPHAHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,54,34,10
CONTROL "Half-pixel Offset",IDC_OFFSETHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,71,65,10 CONTROL "Half-pixel Offset",IDC_OFFSETHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,71,65,10
CONTROL "Sprite",IDC_SPRITEHACK,"Button",BS_AUTO3STATE | WS_TABSTOP,14,88,35,10 CONTROL "Sprite",IDC_SPRITEHACK,"Button",BS_AUTO3STATE | WS_TABSTOP,14,88,35,10
LTEXT "It tickles your GPU's fancy",IDC_STATIC,92,20,82,8
LTEXT "Makes Kratos a sad panda. Don't try with values over 9000.",IDC_STATIC,92,37,187,8
LTEXT "Works around some shadow problems",IDC_STATIC,92,54,120,8
LTEXT "May fix displaced fog or blend effects",IDC_STATIC,92,71,117,8
LTEXT "Fixes character sprites in some 2D games",IDC_STATIC,92,88,129,8
LTEXT "USE AT YOUR OWN RISK!",IDC_STATIC,7,182,84,8,WS_DISABLED LTEXT "USE AT YOUR OWN RISK!",IDC_STATIC,7,182,84,8,WS_DISABLED
COMBOBOX IDC_MSAACB,35,18,44,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_MSAACB,35,18,44,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "WildArmsOffset",IDC_WILDHACK,"Button",BS_AUTO3STATE | WS_TABSTOP,14,105,64,10 CONTROL "WildArmsOffset",IDC_WILDHACK,"Button",BS_AUTO3STATE | WS_TABSTOP,14,105,64,10
LTEXT "Lowers GS precission. Can fix text in Wild Arms and others.",IDC_STATIC,92,105,200,11 LTEXT "TEXT_GOES_HERE",IDC_HACK_DESCRIPTION,92,20,209,145
END END
IDD_SHADEBOOST DIALOGEX 0, 0, 316, 129 IDD_SHADEBOOST DIALOGEX 0, 0, 316, 129

View File

@ -89,6 +89,7 @@
#define IDC_MSAACB 2070 #define IDC_MSAACB 2070
#define IDC_HACKSBUTTON 2071 #define IDC_HACKSBUTTON 2071
#define IDC_WILDHACK 2072 #define IDC_WILDHACK 2072
#define IDC_HACK_DESCRIPTION 2073
#define IDC_COLORSPACE 3000 #define IDC_COLORSPACE 3000
#define IDR_CONVERT_FX 10000 #define IDR_CONVERT_FX 10000
#define IDR_TFX_FX 10001 #define IDR_TFX_FX 10001
@ -107,7 +108,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 10012 #define _APS_NEXT_RESOURCE_VALUE 10012
#define _APS_NEXT_COMMAND_VALUE 32771 #define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 2073 #define _APS_NEXT_CONTROL_VALUE 2074
#define _APS_NEXT_SYMED_VALUE 5000 #define _APS_NEXT_SYMED_VALUE 5000
#endif #endif
#endif #endif