Hi
You get me wrong (or I get you wrong...). I ask is there a way to make an "active" part of inventory screen bigger than 512x480, not the higher resolution. How to put it... OK, file inventor.mos is a background of inventory screen and it's size is 512x480px. But if someone would like to make bigger inventor.mos and make inventory screen also bigger, let's say 800x700 (just an example), is it possible? The left panel is set at x coordinate 0, and there cannot be negative values here, so... Is it hardcoded in BGmain.exe?
Size of any panel hardcoded to bgmain.exe, it always show as "640x480" minus left panel minus right panel = 512x480
Widescreen mod change some of constants inside bgmain.exe to allow fit main game screen to your monitor resolution.
If you smart enough, you can change coordinates and size of screen panels too
some of important places inside bgmain.exe:
- AB90F0 640
- AB90F2 480
- 432803 code precalculate global position of panels depending on monitor resolution
same code in decompiled form (label names are mine, dont sure if it is right):
if (xRight == 800 )
{
v13 = xRight;
yBottom = 600;
v14 = 600;
xStart_MinWindow = 64;
yStart_MinWindow = 0;
xEnd_MinWindow = 736;
yEnd_MinWindow = 510;
xStart_MaxWindow = 64;
yStart_MaxWindow = 0;
xEnd_MaxWindow = 736;
yEnd_MaxWindow = 318;
xStart_Med2Window = 64;
yStart_Med2Window = 0;
xEnd_Med2Window = 736;
yEnd_Med2Window = 446;
dword_B84C58 = 64;
yStart_Med1Window = 0;
xEnd_Med1Window = 736;
yEnd_Med1Window = 461;
xStart_Med3Window = 64;
yStart_Med3Window = 0;
xEnd_Med3Window = 736;
yEnd_Med3Window = 490;
xStart_Med4Window = 64;
yStart_Med4Window = 0;
xEnd_Med4Window = 736;
yEnd_Med4Window = 354;
xStart_Max2Window = 144;
yStart_Max2Window = 66;
xEnd_Max2Window = 656;
yEnd_Max2Window = 450;
xZero2 = 0;
yZero2 = 0;
xRight2 = xRight;
yBottom2 = 600;
}
part2:
word_B61510 = 3 * (unsigned __int16)(((yBottom2 - yZero2 + 63) / 64 + 1) * ((xRight2 - xZero2 + 63) / 64 + 1)) / 2;
v6->m_u6c7c.u6c7c = -5;
v6->m_u6c7c.u6c88 = 1;
v6->m_u6c7c.u6c86 = v14;
v6->m_u6c7c.u6c84 = ((unsigned __int16)v13 - (unsigned __int16)Const_x640) / 2;
v6->m_u6c7c.u6c80 = 0;
v6->m_u6c7c.u6c82 = 0;
v6->u6c98 = -4;
v6->u6ca4 = 1;
v6->u6ca2 = v14;
v6->u6ca0 = ((unsigned __int16)v13 - (unsigned __int16)Const_x640) / 2;
v6->u6c9c = v6->m_u6c7c.u6c84 + Const_x640;
v6->u6c9e = 0;
v6->u6cb4 = -3;
v6->u6cc0 = 1;
v6->u6cbe = ((unsigned __int16)v14 - (unsigned __int16)Const_y480) / 2;
v6->u6cbc = Const_x640;
v6->u6cb8 = v6->m_u6c7c.u6c84;
v6->u6cba = 0;
v6->u6cd0 = -2;
v6->u6cdc = 1;
v6->u6cda = ((unsigned __int16)v14 - (unsigned __int16)Const_y480) / 2;
v6->u6cd8 = Const_x640;
v6->u6cd4 = v6->m_u6c7c.u6c84;
v6->u6cd6 = v6->u6cbe + Const_y480;
Edited by Insomniator, 24 June 2021 - 02:23 AM.