Esempio n. 1
0
void
DropDownBase::Destroy_Drop()
{
	if( !mfMouseRegionsCreated_Drop )
		return;

	UINT8 i;
	for( i=0; i< DROPDOWN_REGIONS; ++i)
		MSYS_RemoveRegion( &mDropDownRegion[i]);
	
	//destroy the scroll bar arrow regions
	for( i=0; i< 2; ++i)
		MSYS_RemoveRegion( &mgSelectedUpDownArrowOnScrollAreaRegion[i]);

	//destroy the scroll bar regions
	for( i=0; i<DROPDOWN_REGIONS; ++i)
		MSYS_RemoveRegion( &mSelectedScrollAreaDropDownRegion[i]);

	//disable the close region
	MSYS_DisableRegion(&mSelectedCloseDropDownRegion);
	
	mfMouseRegionsCreated_Drop	= FALSE;

	SetRefresh();
}
void RemoveEditorRegions()
{
	INT32 x;
	MSYS_RemoveRegion( &EditorRegion );
	for(x = BASE_TERRAIN_TILE_REGION_ID; x < NUM_TERRAIN_TILE_REGIONS; x++ )
	{
		MSYS_RemoveRegion( &TerrainTileButtonRegion[ x ] );
	}
	MSYS_RemoveRegion( &ItemsRegion );
	MSYS_RemoveRegion( &MercRegion );
}
Esempio n. 3
0
void ExitInsuranceInfo()
{
	RemoveInsuranceDefaults();


	UnloadButtonImage( guiInsPrevButtonImage );
	RemoveButton( guiInsPrevBackButton );

	UnloadButtonImage( guiInsNextButtonImage );
	RemoveButton( guiInsNextBackButton );

	MSYS_RemoveRegion( &gSelectedInsuranceInfoLinkRegion);
	MSYS_RemoveRegion( &gSelectedInsuranceInfoHomeLinkRegion);

	DeleteVideoObjectFromIndex( guiBulletImage );
}
void DestroyButtonsForMapScreenInterfaceBottom( void )
{
	// will destroy the buttons for the mapscreen bottom interface

	RemoveButton( guiMapBottomExitButtons[ 0 ] );
	RemoveButton( guiMapBottomExitButtons[ 1 ] );
	RemoveButton( guiMapBottomExitButtons[ 2 ] );
	RemoveButton( guiMapMessageScrollButtons[ 0 ] );
	RemoveButton( guiMapMessageScrollButtons[ 1 ] );
	RemoveButton( guiMapBottomTimeButtons[ 0 ] );
	RemoveButton( guiMapBottomTimeButtons[ 1 ] ); 


	#ifdef JA2DEMO
	MSYS_RemoveRegion( &MapScreenmaskForDemo );
	RemoveDemoMouseRegionsForHelpText(  );
	#endif
	

	UnloadButtonImage( guiMapBottomExitButtonsImage[ 0 ] );
	UnloadButtonImage( guiMapBottomExitButtonsImage[ 1 ] );
	UnloadButtonImage( guiMapBottomExitButtonsImage[ 2 ] );
	UnloadButtonImage( guiMapMessageScrollButtonsImage[ 0 ] );
	UnloadButtonImage( guiMapMessageScrollButtonsImage[ 1 ] );
	UnloadButtonImage( guiMapBottomTimeButtonsImage[ 0 ] );
	UnloadButtonImage( guiMapBottomTimeButtonsImage[ 1 ] );

	// reset dirty flag
	fMapScreenBottomDirty = TRUE;
	
	return;
}
Esempio n. 5
0
void RemoveFileDialog(void)
{
	INT32 x;

	MSYS_RemoveRegion( &BlanketRegion );

	for(x=0; x<6; x++)
	{
		RemoveButton(iFileDlgButtons[x]);
	}

	if( iFileDlgButtons[6] != -1 )
	{
		RemoveButton( iFileDlgButtons[6] );
	}

	TrashFDlgList( FileList );

	FileList = NULL;

	InvalidateScreen( );

	EnableEditorTaskbar();
	KillTextInputMode();
	MarkWorldDirty();
	RenderWorld();
	EndFrameBufferRender();
}
Esempio n. 6
0
void RemoveAimAlumniFaceRegion()
{
	UINT16 i;
	UINT16 usNumber=0;

	if(!gfFaceMouseRegionsActive)
		return;

	switch(gubPageNum)
	{
		case 0:
			usNumber = AIM_ALUMNI_NUM_FACE_ROWS * AIM_ALUMNI_NUM_FACE_COLS;
			break;
		case 1:
			usNumber = AIM_ALUMNI_NUM_FACE_ROWS * AIM_ALUMNI_NUM_FACE_COLS;
			break;
		case 2:
			usNumber = 2 * AIM_ALUMNI_NUM_FACE_COLS + 1;

		default:
			break;
	}

	for(i=0; i<usNumber; i++)
	{
	  MSYS_RemoveRegion( &gMercAlumniFaceMouseRegions[ i ]);
	}
	gfFaceMouseRegionsActive = FALSE;
}
Esempio n. 7
0
void CreateDestroyBackGroundMouseMask( BOOLEAN fCreate )
{
	static BOOLEAN fRegionCreated = FALSE;

	if( fCreate )
	{
		if( fRegionCreated )
			return;

		// Make a mouse region
		MSYS_DefineRegion( &(gBackRegion), 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, MSYS_PRIORITY_HIGHEST,
							CURSOR_NORMAL, MSYS_NO_CALLBACK, SelectMainMenuBackGroundRegionCallBack );
		// Add region
		MSYS_AddRegion(&(gBackRegion) );

		fRegionCreated = TRUE;
	}
	else
	{
		if( !fRegionCreated )
			return;

		MSYS_RemoveRegion( &gBackRegion );
		fRegionCreated = FALSE;
	}
}
void DestroyIMPBeginScreenMouseRegions( void )
{
	// this function destroys the IMP mouse regions

	// are we only reviewing text?.. if so, do not remove regions
	if( ubTextEnterMode == 5 )
		return;

	// remove regions
  MSYS_RemoveRegion(&gIMPBeginScreenMouseRegions[ 0 ]);
	MSYS_RemoveRegion(&gIMPBeginScreenMouseRegions[ 1 ]);
	MSYS_RemoveRegion(&gIMPBeginScreenMouseRegions[ 2 ]);
	MSYS_RemoveRegion(&gIMPBeginScreenMouseRegions[ 3 ]);
 

	return;
}
Esempio n. 9
0
BOOLEAN RemoveAimDefaults()
{
	DeleteVideoObjectFromIndex(guiRustBackGround);
	DeleteVideoObjectFromIndex(guiAimSymbol);
  MSYS_RemoveRegion( &gSelectedAimLogo);

	return(TRUE);
}
Esempio n. 10
0
void DestoryMouseRegionsForIMPMainPageBasedOnCharGenStatus( void )
{
	// will destroy button masks for the char gen pages


	 MSYS_RemoveRegion( &pIMPMainPageMouseRegions[ 0 ]);

	 MSYS_RemoveRegion( &pIMPMainPageMouseRegions[ 1 ]);

	 MSYS_RemoveRegion( &pIMPMainPageMouseRegions[ 2 ]);

	 MSYS_RemoveRegion( &pIMPMainPageMouseRegions[ 3 ]);
		


	return;
}
Esempio n. 11
0
void
DropDownBase::Destroy()
{
	Destroy_Drop();

	if( !mfMouseRegionsCreated )
		return;
	
	mfMouseRegionsCreated	= FALSE;

	MSYS_RemoveRegion( &mSelectedOpenDropDownRegion);
	MSYS_RemoveRegion( &mSelectedCloseDropDownRegion);
	MSYS_RemoveRegion( &mBubbleHelpRegion);

	DeleteVideoObjectFromIndex(muiGoldArrowImages);

	SetRefresh();
}
Esempio n. 12
0
BOOLEAN ExitAimPolicyTocMenu()
{
	UINT16 i;

	gfInPolicyToc = FALSE;
	for(i=0; i<NUM_AIM_POLICY_TOC_BUTTONS; i++)
		MSYS_RemoveRegion( &gSelectedPolicyTocMenuRegion[i]);

	return(TRUE);
}
Esempio n. 13
0
void CreateDestroyMouseRegionMasksForTimeCompressionButtons( void )
{
	BOOLEAN fDisabled = FALSE;
	static BOOLEAN fCreated = FALSE;

	// allowed to time compress?
	if( AllowedToTimeCompress( )== FALSE )
	{
		// no, disable buttons
		fDisabled = TRUE;
	}

	if( fInMapMode == FALSE )
	{
		fDisabled = FALSE;
	}

	// check if disabled and not created, create
	if( ( fDisabled ) && ( fCreated == FALSE ) )
	{
		// mask over compress more button
		MSYS_DefineRegion( &gTimeCompressionMask[ 0 ], 528, 456, 528 + 13, 456 + 14, MSYS_PRIORITY_HIGHEST - 1,
							MSYS_NO_CURSOR, MSYS_NO_CALLBACK, CompressMaskClickCallback );

		// mask over compress less button
		MSYS_DefineRegion( &gTimeCompressionMask[ 1 ], 466, 456, 466 + 13, 456 + 14, MSYS_PRIORITY_HIGHEST - 1,
							MSYS_NO_CURSOR, MSYS_NO_CALLBACK, CompressMaskClickCallback );

		// mask over pause game button
		MSYS_DefineRegion( &gTimeCompressionMask[ 2 ], 487, 456, 522, 467, MSYS_PRIORITY_HIGHEST - 1,
							MSYS_NO_CURSOR, MSYS_NO_CALLBACK, CompressMaskClickCallback );

		fCreated = TRUE;
	}
	else if( ( fDisabled == FALSE ) && ( fCreated ) )
	{
		// created and no longer need to disable
		MSYS_RemoveRegion( &gTimeCompressionMask[ 0 ] );
		MSYS_RemoveRegion( &gTimeCompressionMask[ 1 ] );
		MSYS_RemoveRegion( &gTimeCompressionMask[ 2 ] );
		fCreated = FALSE;
	}
}
Esempio n. 14
0
void RemoveDemoMouseRegionsForHelpText( void )
{
	INT32 iCounter = 0;

	for( iCounter = 0; iCounter < 14; iCounter++ )
	{
		MSYS_RemoveRegion( &MapButtonScreenMasks[ iCounter ] );
	}
	return;
}
Esempio n. 15
0
void KillDoorEditing()
{
	INT32 i;
	EnableEditorTaskbar();
	MSYS_RemoveRegion( &DoorRegion );
	for( i = 0; i < NUM_DOOR_BUTTONS; i++ )
		RemoveButton( iDoorButton[ i ] );
	gfEditingDoor = FALSE;
	KillTextInputMode();
}
void DeleteMouseRegionsForLevelMarkers( void )
{
	INT16 sCounter = 0;


	for( sCounter = 0; sCounter < 4; sCounter++ )
	{
		MSYS_RemoveRegion(	&LevelMouseRegions[ sCounter ] );
	}
}
Esempio n. 17
0
BOOLEAN ExitTocMenu()
{
	UINT16 i;

	if( gfInToc )
	{
		gfInToc = FALSE;
		for(i=0; i<NUM_AIM_HISTORY_PAGES; i++)
			MSYS_RemoveRegion( &gSelectedHistoryTocMenuRegion[i]);
	}

	return(TRUE);
}
Esempio n. 18
0
void ExitAIM()
{
	RemoveAimDefaults();

	DeleteVideoObjectFromIndex(guiMemberCard);
	DeleteVideoObjectFromIndex(guiPolicies);
	DeleteVideoObjectFromIndex(guiLinks);
	DeleteVideoObjectFromIndex(guiHistory);
	DeleteVideoObjectFromIndex(guiWarning);
	DeleteVideoObjectFromIndex(guiFlowerAdvertisement);
	DeleteVideoObjectFromIndex(guiAdForAdsImages);
	DeleteVideoObjectFromIndex(guiInsuranceAdImages);
	DeleteVideoObjectFromIndex(guiFuneralAdImages);
//	DeleteVideoObjectFromIndex(guiBobbyRAdImages);	JA25  No Bobbyr in exp


	// Remove Mouse Regions
  MSYS_RemoveRegion( &gSelectedMemberCardRegion);
  MSYS_RemoveRegion( &gSelectedPoliciesRegion);
  MSYS_RemoveRegion( &gSelectedLinksRegion);
  MSYS_RemoveRegion( &gSelectedHistoryRegion);
  MSYS_RemoveRegion( &gSelectedBannerRegion);
}
Esempio n. 19
0
void ExitFloristCards()
{
	UINT8	i;

	RemoveFloristDefaults();
	DeleteVideoObjectFromIndex( guiCardBackground );

	//card gallery 
	for(i=0; i<9; i++)
		MSYS_RemoveRegion( &gSelectedFloristCardsRegion[i]);

	UnloadButtonImage( guiFlowerCardsButtonImage );
	RemoveButton( guiFlowerCardsBackButton );
}
Esempio n. 20
0
BOOLEAN		ExitCreditScreen()
{
	UINT32	uiCnt;

	DeleteVideoObjectFromIndex( guiCreditBackGroundImage );
	DeleteVideoObjectFromIndex( guiCreditFaces );

	//ShutDown Credit link list
	ShutDownCreditList();

	for( uiCnt=0; uiCnt < NUM_PEOPLE_IN_CREDITS; uiCnt++)
	{
		MSYS_RemoveRegion( &gCrdtMouseRegions[uiCnt] );
	}

	return( TRUE );
}
Esempio n. 21
0
void ExitBriefingRoomEnter()
{
	UINT16 i;
	
	RemoveBriefingRoomEnterDefaults();

	DeleteVideoObjectFromIndex(guiContentButtonBriefingRoomEnter);
	DeleteVideoObjectFromIndex(guiRustBriefingRoomEnterLogoAim);

	
	// Remove Mouse Regions
	for(i=0; i<BRIEFINGROOM_MISSION_BUTTONS_DEF; i++)
		MSYS_RemoveRegion( &gSelectedBriefingRoomEnterTocMenuRegion[i]);
		
	// remove activation indent symbol
	DeleteVideoObjectFromIndex( guiBRIEFINGROOM_MISSIONACTIVATIONINDENT );

}
Esempio n. 22
0
void RemoveSliderBar( UINT32 uiSliderID )
{
	SLIDER *pTemp = NULL;
	SLIDER *pNodeToRemove = NULL;
//	UINT32	cnt;

	pTemp = pSliderHead;

	//Get the required slider
	while( pTemp && pTemp->uiSliderID != uiSliderID )
	{
		pTemp = pTemp->pNext;
	}

	//if we could not find the required slider
	if( pTemp == NULL )
	{
		//return an error
		return;
	}

	pNodeToRemove = pTemp;

	if( pTemp == pSliderHead )
		pSliderHead = pSliderHead->pNext;

	//Detach the node.
	if( pTemp->pNext )
		pTemp->pNext->pPrev = pTemp->pPrev;

	if( pTemp->pPrev )
		pTemp->pPrev->pNext = pTemp->pNext;

	MSYS_RemoveRegion( &pNodeToRemove->ScrollAreaMouseRegion );

	//if its the last node
	if( pNodeToRemove == pSliderHead )
		pSliderHead = NULL;

	//Remove the slider node
	MemFree( pNodeToRemove );
	pNodeToRemove = NULL;
}
Esempio n. 23
0
void CreateDestroyDoneMouseRegion(UINT16 usPosY)
{
	static BOOLEAN DoneRegionCreated=FALSE;

	if( ( !DoneRegionCreated ) && ( usPosY != 0) )
	{
		usPosY -= AIM_ALUMNI_DONE_HEIGHT;
		MSYS_DefineRegion( &gDoneRegion, AIM_ALUMNI_DONE_X-2, usPosY, (AIM_ALUMNI_DONE_X-2 + AIM_ALUMNI_DONE_WIDTH), (INT16)(usPosY + AIM_ALUMNI_DONE_HEIGHT), MSYS_PRIORITY_HIGH,
							 CURSOR_WWW, MSYS_NO_CALLBACK, SelectAlumniDoneRegionCallBack); 
		// Add region
		MSYS_AddRegion( &gDoneRegion );
		DoneRegionCreated = TRUE;
	}

	if( DoneRegionCreated && usPosY == 0)
	{
		MSYS_RemoveRegion( &gDoneRegion );
		DoneRegionCreated = FALSE;
//		gfDestroyDoneRegion = FALSE;
	}
}
Esempio n. 24
0
void ExitIMPMinorTrait( void )
{
	INT32 iCnt;

	DeleteVideoObjectFromIndex( guiIMT_GreyGoldBox );

	//remove the skill buttons
	for(iCnt = 0; iCnt < IMP_SKILL_TRAITS_NEW_NUMBER_MINOR_SKILLS; iCnt++)
	{
		//if there is a button allocated
		if( giIMPMinorTraitAnswerButton[iCnt] != -1 )
		{
			RemoveButton(giIMPMinorTraitAnswerButton[ iCnt ] );
			UnloadButtonImage(giIMPMinorTraitAnswerButtonImage[ iCnt ] );
		}
		
		MSYS_RemoveRegion( &gMR_MinorTraitHelpTextRegions[iCnt] );
	}

	RemoveButton( giIMPMinorlTraitFinsihButton );
	UnloadButtonImage( giIMPMinorlTraitFinsihButtonImage );
}
Esempio n. 25
0
void ExitIMPDisabilityTrait( void )
{
	INT32 ubCnt;

	DeleteVideoObjectFromIndex( guiIST_GreyGoldBox3 );

	//remove the skill buttons
	for(ubCnt = 0; ubCnt < IMP_DISABILITIES_NUMBER; ubCnt++)
	{
		//if there is a button allocated
		if( giIMPDisabilityTraitAnswerButton[ubCnt] != -1 )
		{
			RemoveButton(giIMPDisabilityTraitAnswerButton[ ubCnt ] );
			UnloadButtonImage(giIMPDisabilityTraitAnswerButtonImage[ ubCnt ] );
		}

		MSYS_RemoveRegion( &gMR_DisabilityHelpTextRegions[ubCnt] );
	}

	RemoveButton( giIMPDisabilityTraitFinsihButton );
	UnloadButtonImage( giIMPDisabilityTraitFinsihButtonImage );
}
Esempio n. 26
0
void ExitAimSort()
{
	// Sort the merc array
	SortMercArray();
	RemoveAimDefaults();

	DeleteVideoObjectFromIndex(guiSortByBox);
	DeleteVideoObjectFromIndex(guiToAlumni);
	DeleteVideoObjectFromIndex(guiToMugShots);
	DeleteVideoObjectFromIndex(guiToStats);
	DeleteVideoObjectFromIndex(guiSelectLight);

	MSYS_RemoveRegion( &gSelectedToMugShotRegion);
	MSYS_RemoveRegion( &gSelectedToStatsRegion);
	MSYS_RemoveRegion( &gSelectedToArchiveRegion);

	MSYS_RemoveRegion( &gSelectedPriceBoxRegion);
	MSYS_RemoveRegion( &gSelectedExpBoxRegion);
	MSYS_RemoveRegion( &gSelectedMarkBoxRegion);
	MSYS_RemoveRegion( &gSelectedMechanicalBoxRegion);
	MSYS_RemoveRegion( &gSelectedExplosiveBoxRegion);
	MSYS_RemoveRegion( &gSelectedMedicalBoxRegion);
	MSYS_RemoveRegion( &gSelectedHealthBoxRegion);
	MSYS_RemoveRegion( &gSelectedAgilityBoxRegion);
	MSYS_RemoveRegion( &gSelectedDexterityBoxRegion);
	MSYS_RemoveRegion( &gSelectedStrengthBoxRegion);
	MSYS_RemoveRegion( &gSelectedLeadershipBoxRegion);
	MSYS_RemoveRegion( &gSelectedWisdomBoxRegion);
	MSYS_RemoveRegion( &gSelectedNameBoxRegion);
	MSYS_RemoveRegion( &gSelectedAscendBoxRegion);
	MSYS_RemoveRegion( &gSelectedDescendBoxRegion);
	ExitAimMenuBar();

}
Esempio n. 27
0
void PopupMenuHandle()
{
	InputAtom InputEvent;

	if( gPopup.ubActiveType == POPUP_ACTIVETYPE_NOT_YET_DETERMINED )
	{
		//Attempt to determine if the menu will be persistant or not.
		//Determination is made when the mouse's left button is released or if
		//the mouse cursor enters the menu region.
		if( gusMouseXPos >= gPopup.usLeft 
			&& gusMouseXPos <= gPopup.usRight
			&& gusMouseYPos > gPopup.usTop						//one pixel gap on top ignored
			&& gusMouseYPos < gPopup.usBottom - 1 )		//two pixel gap on bottom ignored
		{
			//mouse cursor has just entered the menu region -- nonpersistant.

			//KRIS:  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
			//Disabled this because Linda doesn't like it... (I like it though, and it works)
			//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
			//UNCOMMENT IF NONPERSISTANT IS ALLOWED
			//gPopup.ubActiveType = POPUP_ACTIVETYPE_NONPERSISTANT;

			return;
		}
		else if( !gfLeftButtonState )
		{	//left button has been released before entering region -- persistant
			gPopup.ubActiveType = POPUP_ACTIVETYPE_PERSISTANT;
			return;
		}
	}
	if( !gPopup.fUseKeyboardInfoUntilMouseMoves )
	{
		//check menu entry based on mouse position
		gPopup.ubSelectedIndex = GetPopupIndexFromMousePosition();
	}
	else if( gusMouseXPos != gPopup.usLastMouseX || gusMouseYPos != gPopup.usLastMouseY )
	{
		//The keyboard determined the last entry, but the mouse has moved,
		//so use the mouse to determine the new entry.
		gPopup.fUseKeyboardInfoUntilMouseMoves = FALSE;
		gPopup.ubSelectedIndex = GetPopupIndexFromMousePosition();
	}
	//Check terminating conditions for persistant states.
	if( gfLeftButtonState && gPopup.ubActiveType == POPUP_ACTIVETYPE_PERSISTANT )
		fWaitingForLButtonRelease = TRUE;
	if( gfLeftButtonState && gPopup.ubActiveType == POPUP_ACTIVETYPE_PERSISTANT 
		|| !gfLeftButtonState && gPopup.ubActiveType == POPUP_ACTIVETYPE_NONPERSISTANT )
	{
		//Selection conditions via mouse have been met whether the mouse is in the 
		//menu region or not.
		gPopup.ubSelectedIndex = GetPopupIndexFromMousePosition();
		if( gPopup.ubSelectedIndex )
		{
			ProcessPopupMenuSelection();	
		}
		gPopup.fActive = FALSE;
		MSYS_RemoveRegion( &popupRegion );
		gfRenderWorld = TRUE;
		gfRenderTaskbar = TRUE;
		return;
	}
	//Use keyboard input as well.
	while( DequeueEvent( &InputEvent ) )
	{
		switch(InputEvent.usEvent)
		{
			case KEY_DOWN:
				switch( InputEvent.usParam )
				{
					case DNARROW:
						gPopup.fUseKeyboardInfoUntilMouseMoves = TRUE;
						gPopup.usLastMouseX = gusMouseXPos;
						gPopup.usLastMouseY = gusMouseYPos;
						gPopup.ubSelectedIndex++;
						if( gPopup.ubSelectedIndex > gPopup.ubNumEntries )
						{
							gPopup.ubSelectedIndex = 1;
						}
						break;
					case UPARROW:
						gPopup.fUseKeyboardInfoUntilMouseMoves = TRUE;
						gPopup.usLastMouseX = gusMouseXPos;
						gPopup.usLastMouseY = gusMouseYPos;
						if( gPopup.ubSelectedIndex < 2 )
						{
							gPopup.ubSelectedIndex = gPopup.ubNumEntries;
						}
						else
						{
							gPopup.ubSelectedIndex--;
						}
						break;
					case ESC:
						gPopup.fActive = FALSE;
						MSYS_RemoveRegion( &popupRegion );
						gfRenderWorld = TRUE;
						gfRenderTaskbar = TRUE;
						break;
					case ENTER:
						ProcessPopupMenuSelection();
						gPopup.fActive = FALSE;
						MSYS_RemoveRegion( &popupRegion );
						gfRenderWorld = TRUE;
						gfRenderTaskbar = TRUE;
						break;
				}
				break;
		}
  }
}
Esempio n. 28
0
UINT32	ExitChatBox( INT8 ubExitCode )
{
	UINT32 uiDestPitchBYTES, uiSrcPitchBYTES;
	UINT8	*pDestBuf, *pSrcBuf;
	SGPPoint pPosition;

	// Delete popup!
	RemoveMercPopupBoxFromIndex( gChatBox.iBoxId );
	gChatBox.iBoxId = -1;

	
	// OJW - 20090208 - Add text input box type
	// exit text input mode in this screen and clean up text boxes
	KillAllTextInputModes();
	
	RemoveButton( gChatBox.uiOKButton );
	RemoveButton( gChatBox.uiNOButton );

	// Delete button images
	UnloadButtonImage( gChatBox.iButtonImages );

	//Remove the toggle buttons
	for(int cnt=0; cnt<NUM_CHAT_TOGGLES; cnt++)
	{
		RemoveButton( guiChatToggles[ cnt ] );
	}

	// delete graphics and scrolling buttons / slider
	if (gIncludeChatLog)
	{
		RemoveButton( guiChatLogScrollButtons[ 0 ] );
		RemoveButton( guiChatLogScrollButtons[ 1 ] );
		UnloadButtonImage( guiChatLogScrollButtonsImage[ 0 ] );
		UnloadButtonImage( guiChatLogScrollButtonsImage[ 1 ] );

		DeleteVideoObjectFromIndex( guiCHATLOGIMG );

		DeleteChatLogSliderBar();
	}

#if 0
	if (!gChatBox.fWasPaused)
	{
		// Unpause game....
		UnLockPauseState();
		UnPauseGame();
		// UnPause timers as well....
		PauseTime( FALSE );
	}
#endif

	// Restore mouse restriction region...
	RestrictMouseCursor( &gOldCursorLimitRectangle );


	gfInChatBox = FALSE;

	// Call done callback!
	if ( gChatBox.ExitCallback != NULL )
	{
		(*(gChatBox.ExitCallback))( ubExitCode );
	}


	//if ur in a non gamescreen and DONT want the msg box to use the save buffer, unset gfDontOverRideSaveBuffer in ur callback
	if( ( ( gChatBox.uiExitScreen != GAME_SCREEN ) || ( fRestoreBackgroundForMessageBox == TRUE ) ) && gfDontOverRideSaveBuffer )
	{
		// restore what we have under here...
		pSrcBuf = LockVideoSurface( gChatBox.uiSaveBuffer, &uiSrcPitchBYTES);
		pDestBuf = LockVideoSurface( FRAME_BUFFER, &uiDestPitchBYTES);

		Blt16BPPTo16BPP((UINT16 *)pDestBuf, uiDestPitchBYTES,
					(UINT16 *)pSrcBuf, uiSrcPitchBYTES,
					gChatBox.sX , gChatBox.sY,
					0, 0,
					gChatBox.usWidth, gChatBox.usHeight );

		UnLockVideoSurface( gChatBox.uiSaveBuffer );
		UnLockVideoSurface( FRAME_BUFFER );

		InvalidateRegion( gChatBox.sX, gChatBox.sY, (INT16)( gChatBox.sX + gChatBox.usWidth ), (INT16)( gChatBox.sY + gChatBox.usHeight ) );
	}

	fRestoreBackgroundForMessageBox = FALSE;
	gfDontOverRideSaveBuffer = TRUE;

	if( fCursorLockedToArea == TRUE )
	{
		GetMousePos( &pPosition );

		if( ( pPosition.iX > ChatBoxRestrictedCursorRegion.iRight ) || ( pPosition.iX > ChatBoxRestrictedCursorRegion.iLeft ) && ( pPosition.iY < ChatBoxRestrictedCursorRegion.iTop ) && ( pPosition.iY > ChatBoxRestrictedCursorRegion.iBottom ) )
		{
			SimulateMouseMovement( pOldMousePosition.iX , pOldMousePosition.iY );
		}

		fCursorLockedToArea = FALSE;
		RestrictMouseCursor( &ChatBoxRestrictedCursorRegion );
	}

	// Remove region
	MSYS_RemoveRegion(&(gChatBox.BackRegion) );

	// Remove save buffer!
	DeleteVideoSurfaceFromIndex( gChatBox.uiSaveBuffer );


	switch( gChatBox.uiExitScreen )
	{
		case GAME_SCREEN:

		if ( InOverheadMap( ) )
		{
		gfOverheadMapDirty = TRUE;
		}
		else
		{
			SetRenderFlags( RENDER_FLAG_FULL );
		}
			break;
		case MAP_SCREEN:
			fMapPanelDirty = TRUE;
			break;
	}

	if ( gfFadeInitialized )
	{
	SetPendingNewScreen(FADE_SCREEN);
	return( FADE_SCREEN );
	}

	return( gChatBox.uiExitScreen );
}
Esempio n. 29
0
void DeleteChatLogMessageScrollRegion( void )
{
	MSYS_RemoveRegion( &gChatLogScrollBarRegion );
}
Esempio n. 30
0
void DestroyIMPVoiceMouseRegions( void )
{
	// will destroy already created mouse reiogns for IMP voices page
	MSYS_RemoveRegion( &gVoicePortraitRegion );
}