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 ); + } }