From cb53f7bb919b784ca6f7512392b6702fb812c6cf Mon Sep 17 00:00:00 2001 From: Flugente Date: Wed, 30 Oct 2013 18:55:20 +0000 Subject: [PATCH] Fix: text outside of laptop boundary on first use of IMP Prejudice webpage git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6542 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Laptop/DropDown.h | 5 +++ Laptop/IMP Prejudice.cpp | 76 +++++++++++++++++++++------------------- 2 files changed, 45 insertions(+), 36 deletions(-) diff --git a/Laptop/DropDown.h b/Laptop/DropDown.h index 6d964f24..f6d312e9 100644 --- a/Laptop/DropDown.h +++ b/Laptop/DropDown.h @@ -128,6 +128,11 @@ public: */ UINT16 GetLastX() { return musStartX + GetTotalWidth(); } + /* + * Are we displayed? + */ + BOOLEAN IsDisplayed() { return mfMouseRegionsCreated; } + // call to open/close the drop down void OpenDropDownRegionCallBack(MOUSE_REGION * pRegion, INT32 iReason ); void CloseDropDownRegionCallBack(MOUSE_REGION * pRegion, INT32 iReason ); diff --git a/Laptop/IMP Prejudice.cpp b/Laptop/IMP Prejudice.cpp index 8d9b11de..34b11f23 100644 --- a/Laptop/IMP Prejudice.cpp +++ b/Laptop/IMP Prejudice.cpp @@ -304,55 +304,59 @@ void IMPPrejudiceDisplay() ColorFillVideoSurfaceArea( FRAME_BUFFER, LAPTOP_SCREEN_UL_X + 2, LAPTOP_SCREEN_WEB_UL_Y + 40, LAPTOP_SCREEN_LR_X - 2, LAPTOP_SCREEN_WEB_UL_Y + 20 + 5 * DROPDOWN_MARKUP_Y, Get16BPPColor( FROMRGB( 100, 100, 100 ) ) ); - usPosX = LAPTOP_SCREEN_UL_X + 5; - usPosY = LAPTOP_SCREEN_WEB_UL_Y + 50; + // only display if at least the first dropdown has been initialized (otherwise text will be written outside of the laptop) + if ( DropDownTemplate::getInstance().IsDisplayed() ) + { + usPosX = LAPTOP_SCREEN_UL_X + 5; + usPosY = LAPTOP_SCREEN_WEB_UL_Y + 50; - // Appearance - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_YOULOOK], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + // Appearance + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_YOULOOK], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); - usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_ANDAPPEARANCEIS], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_ANDAPPEARANCEIS], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); - usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_IMPORTANTTOYOU], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_IMPORTANTTOYOU], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); - // Refinement - usPosX = LAPTOP_SCREEN_UL_X + 5; - usPosY += DROPDOWN_MARKUP_Y; - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_YOUHAVE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + // Refinement + usPosX = LAPTOP_SCREEN_UL_X + 5; + usPosY += DROPDOWN_MARKUP_Y; + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_YOUHAVE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); - usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_ANDCARE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_ANDCARE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); - usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_ABOUTTHAT], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_ABOUTTHAT], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); - // Hated Nations - usPosX = LAPTOP_SCREEN_UL_X + 5; - usPosY += DROPDOWN_MARKUP_Y; - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_YOUARE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + // Hated Nations + usPosX = LAPTOP_SCREEN_UL_X + 5; + usPosY += DROPDOWN_MARKUP_Y; + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_YOUARE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); - usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_ADHATEEVERYONE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_ADHATEEVERYONE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); - // Racism - usPosX = LAPTOP_SCREEN_UL_X + 5; - usPosY += DROPDOWN_MARKUP_Y; - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_YOUARE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + // Racism + usPosX = LAPTOP_SCREEN_UL_X + 5; + usPosY += DROPDOWN_MARKUP_Y; + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_YOUARE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); - usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_RACISTAGAINSTNON], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_RACISTAGAINSTNON], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); - usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_PEOPLE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_PEOPLE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); - // Sexism - usPosX = LAPTOP_SCREEN_UL_X + 5; - usPosY += DROPDOWN_MARKUP_Y; - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_YOUARE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + // Sexism + usPosX = LAPTOP_SCREEN_UL_X + 5; + usPosY += DROPDOWN_MARKUP_Y; + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_YOUARE], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); - usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); - DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_DOT], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + usPosX = 10 + DropDownTemplate::getInstance().GetLastX(); + DrawTextToScreen( szPersonalityDisplayText[PERSONALITYTEXT_DOT], usPosX, usPosY, 0, IMP_PREJUDICE__FONT, IMP_PREJUDICE__COLOR, FONT_MCOLOR_BLACK, FALSE, LEFT_JUSTIFIED ); + } }