diff --git a/Laptop/DropDown.cpp b/Laptop/DropDown.cpp index 2adeb089..d5254008 100644 --- a/Laptop/DropDown.cpp +++ b/Laptop/DropDown.cpp @@ -95,8 +95,8 @@ DropDownBase::Init(UINT16 sX, UINT16 sY) mFirstShownEntry = max(0, min(mFirstShownEntry, mEntryVector.size() - 1 - mNumDisplayedEntries)); musWidth = 0; - UINT8 size = mEntryVector.size(); - for( UINT8 i = 0; i < size; ++i) + UINT16 size = mEntryVector.size(); + for ( UINT16 i = 0; i < size; ++i ) { musWidth = max(musWidth, StringPixLength ( mEntryVector[i].second, DEF_DROPDOWN_FONT )); } @@ -174,7 +174,7 @@ DropDownBase::Create_Drop() UINT16 usPosY = musStartY_Drop; UINT16 usHeight = 0; - for ( i = 0; i< mNumDisplayedEntries; ++i ) + for ( i = 0; i < mNumDisplayedEntries; ++i ) { MSYS_DefineRegion( &mDropDownRegion[i], usPosX, (UINT16)(usPosY + 4), (UINT16)(usPosX + musWidth - 6), (UINT16)(usPosY + musFontHeight + 7), MSYS_PRIORITY_HIGHEST, CURSOR_WWW, CallBackWrapper((void*) this, DROPDOWN_MOVEMENT, &DropDownBase::Dummyfunc), CallBackWrapper((void*) this, DROPDOWN_REGION, &DropDownBase::Dummyfunc)); @@ -253,7 +253,7 @@ DropDownBase::Destroy_Drop() if( !mfMouseRegionsCreated_Drop ) return; - UINT8 i; + UINT16 i; for ( i = 0; i< mNumDisplayedEntries; ++i ) MSYS_RemoveRegion( &mDropDownRegion[i]); @@ -307,6 +307,7 @@ DropDownBase::Display() //get and display the up and down arrows GetVideoObject( &hArrowHandle, guGoldArrowImages ); + //top arrow BltVideoObject(FRAME_BUFFER, hArrowHandle, 0, musUpArrowX, musUpArrowY, VO_BLT_SRCTRANSPARENCY,NULL); @@ -392,10 +393,10 @@ DropDownBase::DrawSelectedCity() UINT16 usMaxY = 0; // make sure we dont go out of our array - if( mFirstShownEntry+mNumDisplayedEntries > (UINT8)(mEntryVector.size() ) ) + if ( mFirstShownEntry + mNumDisplayedEntries > (UINT16)(mEntryVector.size( )) ) mFirstShownEntry = mEntryVector.size() - mNumDisplayedEntries; - for( UINT8 i = mFirstShownEntry; i < mFirstShownEntry+mNumDisplayedEntries; ++i) + for ( UINT16 i = mFirstShownEntry; i < mFirstShownEntry + mNumDisplayedEntries; ++i ) { usMaxY = min(usPosY+musFontHeight+2, musStartY_Drop + musAreaHeight - 4); @@ -490,7 +491,7 @@ DropDownBase::SelectDropDownMovementCallBack(MOUSE_REGION * pRegion, INT32 reaso { pRegion->uiFlags |= BUTTON_CLICKED_ON ; - mSelectedEntry = (UINT8)MSYS_GetRegionUserData( pRegion, 0 ) + mFirstShownEntry; + mSelectedEntry = (UINT16)MSYS_GetRegionUserData( pRegion, 0 ) + mFirstShownEntry; InvalidateRegion(pRegion->RegionTopLeftX, pRegion->RegionTopLeftY, pRegion->RegionBottomRightX, pRegion->RegionBottomRightY); @@ -508,8 +509,8 @@ DropDownBase::SelectDropDownRegionCallBack(MOUSE_REGION * pRegion, INT32 iReason } else if (iReason & MSYS_CALLBACK_REASON_LBUTTON_UP) { - UINT8 ubSelected = (UINT8)MSYS_GetRegionUserData( pRegion, 0 ); - mSelectedEntry = min(ubSelected + mFirstShownEntry, (UINT8)(max(0, mEntryVector.size() -1)) ); + UINT16 ubSelected = (UINT16)MSYS_GetRegionUserData( pRegion, 0 ); + mSelectedEntry = min( ubSelected + mFirstShownEntry, (UINT16)(max( 0, mEntryVector.size( ) - 1 )) ); Destroy_Drop(); } @@ -523,7 +524,7 @@ DropDownBase::SelectUpDownArrowOnScrollAreaRegionCallBack(MOUSE_REGION * pRegion } else if( iReason & MSYS_CALLBACK_REASON_LBUTTON_UP || iReason & MSYS_CALLBACK_REASON_LBUTTON_REPEAT ) { - UINT8 ubDownArrow = (UINT8)MSYS_GetRegionUserData( pRegion, 0 ); + UINT16 ubDownArrow = (UINT16)MSYS_GetRegionUserData( pRegion, 0 ); if( ubDownArrow ) { @@ -566,7 +567,7 @@ DropDownBase::SelectScrollAreaDropDownMovementCallBack(MOUSE_REGION * pRegion, I { if( gfLeftButtonState ) { - UINT8 ubCityNum = (UINT8)MSYS_GetRegionUserData( pRegion, 0 ); + UINT16 ubCityNum = (UINT16)MSYS_GetRegionUserData( pRegion, 0 ); pRegion->uiFlags |= BUTTON_CLICKED_ON; @@ -579,10 +580,10 @@ DropDownBase::SelectScrollAreaDropDownMovementCallBack(MOUSE_REGION * pRegion, I } else if( mFirstShownEntry + ubCityNum > mSelectedEntry ) { - mSelectedEntry = min( mFirstShownEntry + ubCityNum, (UINT8)(max( 0, mEntryVector.size( ) - 1 )) ); + mSelectedEntry = min( mFirstShownEntry + ubCityNum, (UINT16)(max( 0, mEntryVector.size( ) - 1 )) ); if ( ubCityNum == mNumDisplayedEntries - 1 ) - mFirstShownEntry = min( mFirstShownEntry + 1, (UINT8)(max( 0, mEntryVector.size( ) - 1 )) ); + mFirstShownEntry = min( mFirstShownEntry + 1, (UINT16)(max( 0, mEntryVector.size( ) - 1 )) ); } InvalidateRegion(pRegion->RegionTopLeftX, pRegion->RegionTopLeftY, pRegion->RegionBottomRightX, pRegion->RegionBottomRightY); @@ -602,7 +603,7 @@ DropDownBase::SelectScrollAreaDropDownRegionCallBack(MOUSE_REGION * pRegion, INT } else if (iReason & MSYS_CALLBACK_REASON_LBUTTON_UP) { - UINT8 ubCityNum = (UINT8)MSYS_GetRegionUserData( pRegion, 0 ); + UINT16 ubCityNum = (UINT16)MSYS_GetRegionUserData( pRegion, 0 ); if( ubCityNum < mSelectedEntry ) { @@ -623,7 +624,7 @@ DropDownBase::SelectScrollAreaDropDownRegionCallBack(MOUSE_REGION * pRegion, INT } else if (iReason & MSYS_CALLBACK_REASON_LBUTTON_REPEAT) { - UINT8 ubCityNum = (UINT8)MSYS_GetRegionUserData( pRegion, 0 ); + UINT16 ubCityNum = (UINT16)MSYS_GetRegionUserData( pRegion, 0 ); pRegion->uiFlags |= BUTTON_CLICKED_ON ; @@ -654,7 +655,7 @@ DropDownBase::SelectScrollAreaDropDownRegionCallBack(MOUSE_REGION * pRegion, INT void DropDownBase::SetSelectedEntryKey( INT16 aKey ) { - UINT8 cnt = 0; + UINT16 cnt = 0; std::vector >::iterator itend = mEntryVector.end(); for ( std::vector >::iterator it = mEntryVector.begin(); it != itend; ++it ) { @@ -672,7 +673,7 @@ DropDownBase::SetSelectedEntryKey( INT16 aKey ) * set the nth entry as the selected one */ void -DropDownBase::SetNthEntry( UINT8 aNr ) +DropDownBase::SetNthEntry( UINT16 aNr ) { mSelectedEntry = min( aNr, max(0, mEntryVector.size() - 1) ); } diff --git a/Laptop/DropDown.h b/Laptop/DropDown.h index 23e5757b..b9c84e63 100644 --- a/Laptop/DropDown.h +++ b/Laptop/DropDown.h @@ -232,7 +232,7 @@ public: /* * set the nth entry as the selected one */ - void SetNthEntry( UINT8 aNr ); + void SetNthEntry( UINT16 aNr ); /* * Get width of entire DropDownBase @@ -334,9 +334,9 @@ private: CHAR16 mHelpText[200]; - UINT8 mSelectedEntry; // keeps track of the currently selected city - UINT8 mFirstShownEntry; // top entry of the dropped region - UINT8 mNumDisplayedEntries; // number of entries displayed. Calculated internally, no need to change by user + UINT16 mSelectedEntry; // keeps track of the currently selected city + UINT16 mFirstShownEntry; // top entry of the dropped region + UINT16 mNumDisplayedEntries; // number of entries displayed. Calculated internally, no need to change by user BOOLEAN mfDropScrollBar; // do we need a scrollbar and a down arrow? }; diff --git a/Laptop/DynamicDialogueWidget.cpp b/Laptop/DynamicDialogueWidget.cpp index 57022e9d..19953029 100644 --- a/Laptop/DynamicDialogueWidget.cpp +++ b/Laptop/DynamicDialogueWidget.cpp @@ -425,8 +425,9 @@ IMPDialogueChooseBox::Init( UINT16 sX, UINT16 sY ) mSelectedEntry = 0; musWidth = 0; - UINT8 size = mEntryVector.size( ); - for ( UINT8 i = 0; i < size; ++i ) + + UINT16 size = mEntryVector.size( ); + for ( UINT16 i = 0; i < size; ++i ) { musWidth = max( musWidth, StringPixLength( mEntryVector[i].second, MYBOX_FONT_DEF ) ); } @@ -449,8 +450,8 @@ IMPDialogueChooseBox::Create( UINT16 sX, UINT16 sY ) sY += IMPDIALOGUECHOOSEBOX_BAR_Y_OFFSET; - UINT8 size = mEntryVector.size( ); - for ( UINT8 i = 0; i < size; ++i ) + UINT16 size = mEntryVector.size( ); + for ( UINT16 i = 0; i < size; ++i ) { if ( !mChoiceRegionDefined[i] ) { @@ -559,7 +560,7 @@ IMPDialogueChooseBox::DrawTopEntry( ) UINT16 sY = GetY( ) + IMPDIALOGUECHOOSEBOX_BAR_Y_OFFSET; - UINT8 cnt = 0; + UINT16 cnt = 0; std::vector >::iterator itend = mEntryVector.end( ); for ( std::vector >::iterator it = mEntryVector.begin( ); it != itend; ++it ) { @@ -586,7 +587,7 @@ IMPDialogueChooseBox::SelectDropDownRegionCallBack( MOUSE_REGION * pRegion, INT3 } else if ( iReason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { - mSelectedEntry = (UINT8)MSYS_GetRegionUserData( pRegion, 0 ); + mSelectedEntry = (UINT16)MSYS_GetRegionUserData( pRegion, 0 ); } } diff --git a/Laptop/DynamicDialogueWidget.h b/Laptop/DynamicDialogueWidget.h index bed1db17..5a9dda49 100644 --- a/Laptop/DynamicDialogueWidget.h +++ b/Laptop/DynamicDialogueWidget.h @@ -263,7 +263,7 @@ private: CHAR16 mHelpText[200]; - UINT8 mSelectedEntry; // keeps track of the currently selected city + UINT16 mSelectedEntry; // keeps track of the currently selected city CHAR16 mText[500];