#include "laptop.h" #include "AimArchives.h" #include "aim.h" #include "WordWrap.h" #include "Utilities.h" #include "WCheck.h" #include "Encrypted File.h" #include "Text.h" #include "Soldier Profile.h" #define AIM_ALUMNI_NAME_FILE "BINARYDATA\\AlumName.edt" #define AIM_ALUMNI_FILE "BINARYDATA\\Alumni.edt" #define AIM_ALUMNI_TITLE_FONT FONT14ARIAL #define AIM_ALUMNI_TITLE_COLOR AIM_GREEN #define AIM_ALUMNI_POPUP_FONT FONT10ARIAL #define AIM_ALUMNI_POPUP_COLOR FONT_MCOLOR_WHITE #define AIM_ALUMNI_POPUP_NAME_FONT FONT12ARIAL #define AIM_ALUMNI_POPUP_NAME_COLOR FONT_MCOLOR_WHITE #define AIM_ALUMNI_NAME_FONT FONT12ARIAL #define AIM_ALUMNI_NAME_COLOR FONT_MCOLOR_WHITE #define AIM_ALUMNI_PAGE_FONT FONT14ARIAL #define AIM_ALUMNI_PAGE_COLOR_UP FONT_MCOLOR_DKWHITE #define AIM_ALUMNI_PAGE_COLOR_DOWN 138 #define AIM_ALUMNI_NAME_LINESIZE 80 * 2 #define AIM_ALUMNI_ALUMNI_LINESIZE 7 * 80 * 2 #define AIM_ALUMNI_NUM_FACE_COLS 5 #define AIM_ALUMNI_NUM_FACE_ROWS 4 #define MAX_NUMBER_OLD_MERCS_ON_PAGE AIM_ALUMNI_NUM_FACE_ROWS * AIM_ALUMNI_NUM_FACE_COLS #define AIM_ALUMNI_START_GRID_X LAPTOP_SCREEN_UL_X + 37 #define AIM_ALUMNI_START_GRID_Y LAPTOP_SCREEN_WEB_UL_Y + 68 #define AIM_ALUMNI_GRID_OFFSET_X 90 #define AIM_ALUMNI_GRID_OFFSET_Y 72 #define AIM_ALUMNI_ALUMNI_FRAME_WIDTH 66 #define AIM_ALUMNI_ALUMNI_FRAME_HEIGHT 64 #define AIM_ALUMNI_ALUMNI_FACE_WIDTH 56 #define AIM_ALUMNI_ALUMNI_FACE_HEIGHT 50 #define AIM_ALUMNI_NAME_OFFSET_X 5 #define AIM_ALUMNI_NAME_OFFSET_Y 55 #define AIM_ALUMNI_NAME_WIDTH AIM_ALUMNI_ALUMNI_FRAME_WIDTH - AIM_ALUMNI_NAME_OFFSET_X * 2 #define AIM_ALUMNI_PAGE1_X LAPTOP_SCREEN_UL_X + 100 #define AIM_ALUMNI_PAGE1_Y LAPTOP_SCREEN_WEB_UL_Y + 357 #define AIM_ALUMNI_PAGE_GAP BOTTOM_BUTTON_START_WIDTH + 25 #define AIM_ALUMNI_PAGE_END_X AIM_ALUMNI_PAGE1_X + (BOTTOM_BUTTON_START_WIDTH + BOTTOM_BUTTON_START_WIDTH) * 3 #define AIM_ALUMNI_PAGE_END_Y AIM_ALUMNI_PAGE1_Y + BOTTOM_BUTTON_START_HEIGHT #define AIM_ALUMNI_TITLE_X IMAGE_OFFSET_X + 149 #define AIM_ALUMNI_TITLE_Y AIM_SYMBOL_Y + AIM_SYMBOL_SIZE_Y // + 2 #define AIM_ALUMNI_TITLE_WIDTH AIM_SYMBOL_WIDTH #define AIM_POPUP_WIDTH 309 #define AIM_POPUP_TEXT_WIDTH 296 #define AIM_POPUP_SECTION_HEIGHT 9 #define AIM_POPUP_X LAPTOP_SCREEN_UL_X + (500-AIM_POPUP_WIDTH)/2 #define AIM_POPUP_Y iScreenHeightOffset + 120 + LAPTOP_SCREEN_WEB_DELTA_Y #define AIM_POPUP_SHADOW_GAP 4 #define AIM_POPUP_TEXT_X AIM_POPUP_X #define AIM_ALUMNI_FACE_PANEL_X AIM_POPUP_X + 6 #define AIM_ALUMNI_FACE_PANEL_Y AIM_POPUP_Y + 6 #define AIM_ALUMNI_FACE_PANEL_WIDTH 58 #define AIM_ALUMNI_FACE_PANEL_HEIGHT 52 #define AIM_ALUMNI_POPUP_NAME_X AIM_ALUMNI_FACE_PANEL_X + AIM_ALUMNI_FACE_PANEL_WIDTH + 10 #define AIM_ALUMNI_POPUP_NAME_Y AIM_ALUMNI_FACE_PANEL_Y + 20 #define AIM_ALUMNI_POPUP_DESC_X AIM_POPUP_X + 8 #define AIM_ALUMNI_POPUP_DESC_Y AIM_ALUMNI_FACE_PANEL_Y + AIM_ALUMNI_FACE_PANEL_HEIGHT + 5 #define AIM_ALUMNI_DONE_X AIM_POPUP_X + AIM_POPUP_WIDTH - AIM_ALUMNI_DONE_WIDTH - 7 #define AIM_ALUMNI_DONE_WIDTH 36 #define AIM_ALUMNI_DONE_HEIGHT 16 #define AIM_ALUMNI_NAME_SIZE 80 * 2 #define AIM_ALUMNI_DECRIPTION_SIZE 80 * 7 * 2 #define AIM_ALUMNI_FILE_RECORD_SIZE 80 * 8 * 2 #define AIM_ALUMNI_FULL_NAME_SIZE 80 * 2 UINT32 guiAlumniFrame; UINT32 guiOldAim; UINT32 guiPageButtons; UINT32 guiAlumniPopUp; UINT32 guiPopUpPic; UINT32 guiDoneButton; UINT8 gubPageNum; UINT8 gunAlumniButtonDown=255; BOOLEAN gfExitingAimArchives; UINT8 gubDrawOldMerc; UINT8 gfDrawPopUpBox=FALSE; BOOLEAN gfDestroyPopUpBox; BOOLEAN gfFaceMouseRegionsActive; //BOOLEAN gfDestroyDoneRegion; BOOLEAN gfReDrawScreen=FALSE; BOOLEAN AimArchivesSubPagesVisitedFlag[3] = {0,0,0}; //Mouse Regions //Face regions MOUSE_REGION gMercAlumniFaceMouseRegions[ MAX_NUMBER_OLD_MERCS_ON_PAGE ]; void SelectAlumniFaceRegionCallBack(MOUSE_REGION * pRegion, INT32 iReason ); //Done region MOUSE_REGION gDoneRegion; void SelectAlumniDoneRegionCallBack(MOUSE_REGION * pRegion, INT32 iReason ); //Previous Button void BtnAlumniPageButtonCallback(GUI_BUTTON *btn,INT32 reason); UINT32 guiAlumniPageButton[3]; INT32 guiAlumniPageButtonImage; INT8 idPage = -1; UINT8 cOldMerc; BOOLEAN pageEnabled[4]; void ResetAimArchiveButtons(); void DisableAimArchiveButton(); void DisplayAlumniOldMercPopUp(); void DestroyPopUpBox(); void InitAlumniFaceRegions(); void RemoveAimAlumniFaceRegion(); void CreateDestroyDoneMouseRegion(UINT16 usPosY); void ChangingAimArchiveSubPage( UINT8 ubSubPageNumber ); BOOLEAN vOldMerc[NUM_PROFILES]; UINT8 oldMercID; OLD_MERC_ARCHIVES_VALUES gAimOldArchives[NUM_PROFILES]; void GameInitAimArchives() { } void EnterInitAimArchives() { gfDrawPopUpBox=FALSE; gfDestroyPopUpBox = FALSE; memset( &AimArchivesSubPagesVisitedFlag, 0, 3); AimArchivesSubPagesVisitedFlag[0] = TRUE; } BOOLEAN EnterAimArchives() { VOBJECT_DESC VObjectDesc; UINT16 usPosX, i; idPage = -1; for(i=0; iuiFlags & BUTTON_CLICKED_ON) { if ( idPage == -1) idPage = 0; if ( idPage == 1 && pageEnabled[1] == TRUE && pageEnabled[2] == FALSE ) idPage = -1; if ( idPage == 2 && pageEnabled[2] == TRUE && pageEnabled[3] == FALSE ) idPage = -1; if ( idPage == 3 && pageEnabled[3] == TRUE ) idPage = -1; idPage++; btn->uiFlags &= (~BUTTON_CLICKED_ON ); RemoveAimAlumniFaceRegion(); ChangingAimArchiveSubPage( idPage ); gubPageNum = idPage; gfReDrawScreen = TRUE; gfDestroyPopUpBox = TRUE; gunAlumniButtonDown=255; ResetAimArchiveButtons(); DisableAimArchiveButton(); gfDrawPopUpBox = FALSE; InvalidateRegion(AIM_ALUMNI_PAGE1_X,AIM_ALUMNI_PAGE1_Y, AIM_ALUMNI_PAGE_END_X,AIM_ALUMNI_PAGE_END_Y); } } if(reason & MSYS_CALLBACK_REASON_LOST_MOUSE) { btn->uiFlags &= (~BUTTON_CLICKED_ON ); gunAlumniButtonDown=255; DisableAimArchiveButton(); InvalidateRegion(AIM_ALUMNI_PAGE1_X,AIM_ALUMNI_PAGE1_Y, AIM_ALUMNI_PAGE_END_X,AIM_ALUMNI_PAGE_END_Y); } /* if(reason & MSYS_CALLBACK_REASON_LBUTTON_DWN ) { btn->uiFlags |= BUTTON_CLICKED_ON; gunAlumniButtonDown=ubRetValue; InvalidateRegion(AIM_ALUMNI_PAGE1_X,AIM_ALUMNI_PAGE1_Y, AIM_ALUMNI_PAGE_END_X,AIM_ALUMNI_PAGE_END_Y); } if(reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { if (btn->uiFlags & BUTTON_CLICKED_ON) { btn->uiFlags &= (~BUTTON_CLICKED_ON ); RemoveAimAlumniFaceRegion(); ChangingAimArchiveSubPage( ubRetValue ); gubPageNum = ubRetValue; gfReDrawScreen = TRUE; gfDestroyPopUpBox = TRUE; gunAlumniButtonDown=255; ResetAimArchiveButtons(); DisableAimArchiveButton(); gfDrawPopUpBox = FALSE; InvalidateRegion(AIM_ALUMNI_PAGE1_X,AIM_ALUMNI_PAGE1_Y, AIM_ALUMNI_PAGE_END_X,AIM_ALUMNI_PAGE_END_Y); } } if(reason & MSYS_CALLBACK_REASON_LOST_MOUSE) { btn->uiFlags &= (~BUTTON_CLICKED_ON ); gunAlumniButtonDown=255; DisableAimArchiveButton(); InvalidateRegion(AIM_ALUMNI_PAGE1_X,AIM_ALUMNI_PAGE1_Y, AIM_ALUMNI_PAGE_END_X,AIM_ALUMNI_PAGE_END_Y); } */ } void ResetAimArchiveButtons() { //int i=0; //for(i=0; i<3; i++) //{ // ButtonList[ guiAlumniPageButton[i] ]->uiFlags &= ~BUTTON_CLICKED_ON; //} } void DisableAimArchiveButton() { if( gfExitingAimArchives == TRUE) return; /* if( (gubPageNum == 0 ) ) { ButtonList[ guiAlumniPageButton[ 0 ] ]->uiFlags |= (BUTTON_CLICKED_ON ); } else if( gubPageNum == 1 ) { ButtonList[ guiAlumniPageButton[ 1 ] ]->uiFlags |= (BUTTON_CLICKED_ON ); } else if( gubPageNum == 2 ) { ButtonList[ guiAlumniPageButton[ 2 ] ]->uiFlags |= (BUTTON_CLICKED_ON ); } */ } void DisplayAlumniOldMercPopUp() { UINT8 i,ubNumLines=11; //17 UINT16 usPosY, usTextPosY; UINT8 ubFontHeight, ubNumDescLines; HVOBJECT hAlumniPopUpHandle; HVOBJECT hDoneHandle; HVOBJECT hFacePaneHandle; HVOBJECT hFaceHandle; // CHAR16 sName[AIM_ALUMNI_NAME_SIZE]; // CHAR16 sDesc[AIM_ALUMNI_DECRIPTION_SIZE]; //UINT32 uiStartLoc; UINT16 usStringPixLength; GetVideoObject(&hAlumniPopUpHandle, guiAlumniPopUp); GetVideoObject(&hDoneHandle, guiDoneButton); GetVideoObject(&hFacePaneHandle, guiPopUpPic); GetVideoObject(&hFaceHandle, guiOldAim); ubFontHeight = (UINT8)GetFontHeight(AIM_ALUMNI_POPUP_FONT); //Load the description //uiStartLoc = AIM_ALUMNI_FILE_RECORD_SIZE * gubDrawOldMerc + AIM_ALUMNI_FULL_NAME_SIZE; //LoadEncryptedDataFromFile(AIM_ALUMNI_FILE, sDesc, uiStartLoc, AIM_ALUMNI_DECRIPTION_SIZE); // usStringPixLength = StringPixLength( sDesc, AIM_ALUMNI_POPUP_FONT); usStringPixLength = StringPixLength( gAimOldArchives[gubDrawOldMerc].szBio, AIM_ALUMNI_POPUP_FONT); ubNumDescLines = (UINT8) (usStringPixLength / AIM_POPUP_TEXT_WIDTH); ubNumLines += ubNumDescLines; usTextPosY = AIM_POPUP_Y + 5; usPosY = AIM_POPUP_Y; //draw top line of the popup background ShadowVideoSurfaceRect( FRAME_BUFFER, AIM_POPUP_X+AIM_POPUP_SHADOW_GAP, usPosY+AIM_POPUP_SHADOW_GAP, AIM_POPUP_X + AIM_POPUP_WIDTH+AIM_POPUP_SHADOW_GAP, usPosY + AIM_POPUP_SECTION_HEIGHT+AIM_POPUP_SHADOW_GAP-1); BltVideoObject(FRAME_BUFFER, hAlumniPopUpHandle, 0,AIM_POPUP_X, usPosY, VO_BLT_SRCTRANSPARENCY,NULL); //draw mid section of the popup background usPosY += AIM_POPUP_SECTION_HEIGHT; for(i=0; i