Skip to content

Commit

Permalink
Mission information header shouldn't bug other HUD elements
Browse files Browse the repository at this point in the history
  • Loading branch information
vitor251093 committed Feb 5, 2025
1 parent d4a4925 commit ee19774
Showing 1 changed file with 31 additions and 42 deletions.
73 changes: 31 additions & 42 deletions src/plugins/PluginKingdomHeartsReCoded_GPU_OpenGL_shaders.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,17 +113,12 @@ bool is2DGraphicEqualToColor(ivec4 diffColor, ivec2 texcoord)
return (pixel.r == diffColor.r && pixel.g == diffColor.g && pixel.b == diffColor.b);
}
bool isMissionInformationVisibleOnTopScreen()
bool isMissionInformationVisible()
{
return is2DGraphicDifferentFromColor(ivec4(63,0,0,31), ivec2(256/2, 0)) ||
is2DGraphicDifferentFromColor(ivec4(63,0,0,31), ivec2(256/2, 10));
}
bool isMissionInformationVisible()
{
return isMissionInformationVisibleOnTopScreen();
}
bool isDialogVisible()
{
return is2DGraphicDifferentFromColor(ivec4(0,0,0,31), ivec2(256/2, 192*0.809));
Expand Down Expand Up @@ -347,31 +342,6 @@ vec2 getVerticalDualScreenTextureCoordinates(float xpos, float ypos, vec2 clearV
return clearVect;
}
vec2 getMissionInformationCoordinates(vec2 texPosition3d)
{
float heightScale = 1.0/TopScreenAspectRatio;
float widthScale = TopScreenAspectRatio;
vec2 fixStretch = vec2(widthScale, 1.0);
// mission information
float sourceMissionInfoHeight = 40.0;
float sourceMissionInfoWidth = 256.0;
float missionInfoHeight = sourceMissionInfoHeight;
float missionInfoWidth = sourceMissionInfoWidth*heightScale;
float missionInfoY1 = 0;
float missionInfoY2 = missionInfoHeight;
float missionInfoDetailsLeftMargin = -5.4*heightScale;
if (texPosition3d.x >= 0 &&
texPosition3d.x < missionInfoWidth &&
texPosition3d.y >= 0 &&
texPosition3d.y < missionInfoY2) {
return fixStretch*(texPosition3d);
}
return vec2(-1, -1);
}
vec2 getIngameHudTextureCoordinates(float xpos, float ypos)
{
bool _isHealthVisible = isHealthVisible();
Expand All @@ -390,16 +360,23 @@ vec2 getIngameHudTextureCoordinates(float xpos, float ypos)
float heightScale = 1.0/TopScreenAspectRatio;
float widthScale = TopScreenAspectRatio;
vec2 fixStretch = vec2(widthScale, 1.0);
if (isMissionInformationVisible()) {
vec2 missionInfoCoords = getMissionInformationCoordinates(texPosition3d);
if (missionInfoCoords.x != -1 && missionInfoCoords.y != -1) {
return missionInfoCoords;
}
if (texPosition3d.y <= (192*iuTexScale)/3) {
// nothing (clear screen)
return vec2(-1, -1);
bool _isMissionInformationVisible = isMissionInformationVisible();
if (_isMissionInformationVisible) {
// mission information
float sourceMissionInfoHeight = 40.0;
float sourceMissionInfoWidth = 256.0;
float missionInfoHeight = sourceMissionInfoHeight;
float missionInfoWidth = sourceMissionInfoWidth*heightScale;
float missionInfoY1 = 0;
float missionInfoY2 = missionInfoHeight;
float missionInfoDetailsLeftMargin = -5.4*heightScale;
if (texPosition3d.x >= 0 &&
texPosition3d.x < missionInfoWidth &&
texPosition3d.y >= 0 &&
texPosition3d.y < missionInfoY2) {
return fixStretch*(texPosition3d);
}
}
Expand Down Expand Up @@ -595,6 +572,18 @@ vec2 getIngameHudTextureCoordinates(float xpos, float ypos)
}
}
if (_isMissionInformationVisible) {
// mission information
float sourceMissionInfoHeight = 40.0;
float missionInfoHeight = sourceMissionInfoHeight;
float missionInfoY2 = missionInfoHeight;
if (texPosition3d.y < missionInfoY2) {
// nothing (clear screen)
return vec2(-1, -1);
}
}
// overclock notification
float sourceOverclockNotificationHeight = 27.0;
float sourceOverclockNotificationWidth = 95.0;
Expand Down Expand Up @@ -955,7 +944,7 @@ ivec4 getTopScreenColor(float xpos, float ypos, int index)
return color;
}
if (!isDialogVisible() && !isMissionInformationVisible())
if (!isDialogVisible())
{
int iuScale = KHUIScale;
float iuTexScale = (6.0)/iuScale;
Expand Down

0 comments on commit ee19774

Please sign in to comment.