#ifndef __MERCTEXTBOX_H_ #define __MERCTEXTBOX_H_ #include "types.h" #define MERC_POPUP_PREPARE_FLAGS_TRANS_BACK 0x00000001 #define MERC_POPUP_PREPARE_FLAGS_MARGINS 0x00000002 #define MERC_POPUP_PREPARE_FLAGS_STOPICON 0x00000004 #define MERC_POPUP_PREPARE_FLAGS_SKULLICON 0x00000008 BOOLEAN InitMercPopupBox( ); // create a pop up box if needed, return id of box..a -1 means couldn't be added // sevenfm: added bFixedWidth flag. known issue if using this - text caption is not centered INT32 PrepareMercPopupBox( INT32 iBoxId, UINT8 ubBackgroundIndex, UINT8 ubBorderIndex, STR16 pString, UINT16 usWidth, UINT16 usMarginX, UINT16 usMarginTopY, UINT16 usMarginBottomY, UINT16 *pActualWidth, UINT16 *pActualHeight, BOOLEAN bFixedWidth = FALSE); // remove the current box BOOLEAN RemoveMercPopupBox(); // remove this box from the index BOOLEAN RemoveMercPopupBoxFromIndex( UINT32 uiId ); // render the current pop up box BOOLEAN RenderMercPopupBox(INT16 sDestX, INT16 sDestY, UINT32 uiBuffer ); // render pop up box with this index value BOOLEAN RenderMercPopUpBoxFromIndex( INT32 iBoxId, INT16 sDestX, INT16 sDestY, UINT32 uiBuffer ); void RemoveTextMercPopupImages( ); typedef struct { UINT32 uiSourceBufferIndex; UINT16 sWidth; UINT16 sHeight; UINT8 ubBackgroundIndex; UINT8 ubBorderIndex; UINT32 uiMercTextPopUpBackground; UINT32 uiMercTextPopUpBorder; BOOLEAN fMercTextPopupInitialized; BOOLEAN fMercTextPopupSurfaceInitialized; UINT32 uiFlags; } MercPopUpBox; BOOLEAN OverrideMercPopupBox( MercPopUpBox *pMercBox ); BOOLEAN ResetOverrideMercPopupBox( ); BOOLEAN SetPrepareMercPopupFlags( UINT32 uiFlags ); // background enumeration enum{ BASIC_MERC_POPUP_BACKGROUND = 0, WHITE_MERC_POPUP_BACKGROUND, GREY_MERC_POPUP_BACKGROUND, DIALOG_MERC_POPUP_BACKGROUND, LAPTOP_POPUP_BACKGROUND, IMP_POPUP_BACKGROUND, }; // border enumeration enum{ BASIC_MERC_POPUP_BORDER =0, RED_MERC_POPUP_BORDER, BLUE_MERC_POPUP_BORDER, DIALOG_MERC_POPUP_BORDER, LAPTOP_POP_BORDER }; #endif