//----- (0081A5B0) --------------------------------------------------------
int __usercall sub_81A5B0@<eax>(int a1)
{
HGDIOBJ v4; // ST18_4@1
void *v5; // eax@1
void *v6; // eax@4
void *v7; // eax@4
const char *v8; // eax@4
void *v9; // eax@4
const char *v10; // eax@4
void *v11; // eax@4
__int64 v12; // ST30_8@5
__int64 v13; // ST40_8@5
__int64 v14; // rax@5
__int64 v15; // rax@5
unsigned __int64 v16; // kr00_8@5
__int64 v17; // rax@5
__int64 v18; // rax@5
unsigned __int64 v19; // kr08_8@5
unsigned __int64 v20; // ST0C_8@5
const char *v21; // eax@5
void *v22; // eax@5
int v23; // ST08_4@6
void *v24; // eax@6
void *v25; // eax@6
int v26; // ST18_4@6
const char *v27; // eax@6
void *v28; // eax@6
int v29; // ST18_4@6
const char *v30; // eax@6
void *v31; // eax@6
int v32; // ST18_4@6
const char *v33; // eax@6
void *v34; // eax@6
int v36; // [sp+10h] [bp-14Ch]@1
char v37; // [sp+5Ch] [bp-100h]@4
char v38; // [sp+5Dh] [bp-FFh]@4
v36 = a1;
v4 = *(HGDIOBJ*)0xE8C588;
pSetFont(pTextThis(), (int)v4);
if ( pCheckMouseOver(458, 11, 81, 10) )
{
byte_81C0AE0 = 0;
dword_81C09F0[0] = 0;
dword_81C0A68 = 0;
pSetItemTextLine((int)oItemText_Line, "%I64d / %I64d");
pMultiLineTooltip(a2, a3, a4, 466, 26, 1, 0, 3, 0, 1);
}
pSetTextColor(pTextThis(), 0xFFu, 0xFFu, 0xFFu, 0xFFu);
pSetBackgroundTextColor(pTextThis(), 0, 0, 0, 1u);
v37 = 0;
sub_9CF630(&v38, 0, 255);
pSetItemTextLine((int)&v37, (const char *)pGetTextLine(pTextLineThis(), 1746));
pDrawText(pTextThis(), 275, 11, (int)&v37, 0, 0, 1, 0);
v10 = (const char *)pGetTextLine(pTextLineThis(), 1747);
pSetItemTextLine((int)&v37, v10);
pDrawText(pTextThis(), 372, 11, (int)&v37, 0, 0, 1, 0);
if ( qword_87935E8 )
{
v12 = word_87935D8 + 400i64;
LODWORD(v13) = word_87935D8 + 145;
HIDWORD(v13) = HIDWORD(v12) - ((unsigned int)(word_87935D8 + 400) < 0xFF);
v14 = sub_9D7C90(word_87935D8 + 409i64, v12);
v15 = sub_9D7C90(v14, v12);
v16 = sub_9D7C90(v15, 10i64);
v17 = sub_9D7C90(v13 + 9, v13);
v18 = sub_9D7C90(v17, v13);
v19 = sub_9D7C90(v18, 1000i64) + v16;
a3 = HIDWORD(v19);
a4 = v19;
HIDWORD(v20) = HIDWORD(v19) - ((unsigned int)v19 < 0xE7FF0590);
LODWORD(v20) = v19 + 402717296;
sub_9D8690(v20, 2u, 0);
v21 = (const char *)pGetTextLine(pTextLineThis(), 3335);
pSetItemTextLine((int)&v37, v21);
pDrawText(pTextThis(), 466, 11, (int)&v37, 0, 0, 1, 0);
}
v23 = pGetTextLine(pTextLineThis(), *(DWORD *)(v36 + 304));
v24 = pTextThis();
pDrawText(pTextThis(), 154, 11, v23, 0, 0, 1, 0);
//--
sub_420040(pTextThis(), 0xFFu, 0x9Bu, 0, 0xFFu);
//--
v26 = *(BYTE *)(v36 + 232);
v27 = (const char *)pGetTextLine(pTextLineThis(), *(DWORD *)(v36 + 300));//1751 "Peace: %d"
pSetItemTextLine((int)&v37, v27);
pDrawText(pTextThis(), 92, 40, (const char *)v37, 0, 0, 1, 0);
v29 = *(BYTE *)(v36 + 233);
v30 = (const char *)pGetTextLine(pTextLineThis(), *(DWORD *)(v36 + 300) + 1);//1752 "Wisdom: %d"
pSetItemTextLine((int)&v37, v30);
pDrawText(pTextThis(), 302, 40, (const char *)v37, 0, 0, 1, 0);
v32 = *(BYTE *)(v36 + 234);
v33 = (const char *)pGetTextLine(pTextLineThis(), *(DWORD *)(v36 + 300) + 2);//1753 "Overcome: %d"
pSetItemTextLine((int)&v37, v33);
pDrawText(pTextThis(), 513, 40, (const char *)v37, 0, 0, 1, 0);
//--
}
no esta completo, hay que meterle bastante mano, pero esta es la función en donde imprime la información master skill, de los puntos de cada rama, así que espero les sirva para hacerlo funcionar
así es como esta tal cual, solo acomode como debería ir las offset, ya queda la habilidad de cada uno hacerlo funcionar, para los que no tienen mucha idea de para que es la función es para quitar el limite de la impresión de puntos de cada rama de master skill, ya que estan en byte se limitan a imprimir a un maximo de 254 puntos.