diff --git a/JA2.suo b/JA2.suo index 07b58918..1a56a8c0 100644 Binary files a/JA2.suo and b/JA2.suo differ diff --git a/Laptop/IMP Confirm.cpp b/Laptop/IMP Confirm.cpp index 5705cc3d..88fc2de6 100644 --- a/Laptop/IMP Confirm.cpp +++ b/Laptop/IMP Confirm.cpp @@ -651,13 +651,40 @@ INT32 FirstFreeBigEnoughPocket(MERCPROFILESTRUCT *pProfile, UINT16 usItem) void WriteOutCurrentImpCharacter( INT32 iProfileId ) +{ + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("WriteOutCurrentImpCharacter: IMP.dat")); + char zImpFileName[12]; + strcat(zImpFileName,IMP_MERC_FILENAME); + strcat(zImpFileName,IMP_FILENAME_SUFFIX); + WriteOutCurrentImpCharacter ( iProfileId, zImpFileName); + + + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("WriteOutCurrentImpCharacter: Nickname.dat")); + + char zFileName[12]; + char temp; + + for(int i=0;i < 8;i++) // Madd: I couldn't get strcpy or anything to work here... weird... if s/o wants to fix it, go ahead + { + temp = (char) gMercProfiles[iProfileId].zNickname[i]; + zFileName[i] = temp; + } + + strcat(zFileName,IMP_FILENAME_SUFFIX); + + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("WriteOutCurrentImpCharacter: %s", zFileName)); + WriteOutCurrentImpCharacter ( iProfileId, zFileName); +} + +void WriteOutCurrentImpCharacter( INT32 iProfileId, STR fileName ) { // grab the profile number and write out what is contained there in HWFILE hFile; UINT32 uiBytesWritten = 0; // open the file for writing - hFile = FileOpen(strcat((STR)(&gMercProfiles[iProfileId].zNickname),IMP_FILENAME_SUFFIX), FILE_ACCESS_WRITE | FILE_CREATE_ALWAYS, FALSE); + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("WriteOutCurrentImpCharacter: %s", fileName)); + hFile = FileOpen(fileName, FILE_ACCESS_WRITE | FILE_CREATE_ALWAYS, FALSE); // write out the profile id if (!FileWrite(hFile, &iProfileId, sizeof( INT32 ), &uiBytesWritten)) @@ -685,11 +712,15 @@ void WriteOutCurrentImpCharacter( INT32 iProfileId ) BOOLEAN ImpExists ( STR nickName ) { - DWORD attribs = GetFileAttributes(strcat(nickName,IMP_FILENAME_SUFFIX)); - if ( attribs != INVALID_FILE_ATTRIBUTES && !(attribs & FILE_ATTRIBUTE_DIRECTORY) ) - return TRUE; - - return FALSE; + char zFileName[12]; + + strcpy(zFileName,nickName); + strcat(zFileName,IMP_FILENAME_SUFFIX); + + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("ImpExists: %s", (STR) zFileName)); + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("ImpExists: %d", FileExistsNoDB(zFileName) )); + + return FileExistsNoDB(zFileName); } void LoadImpCharacter( STR nickName ) @@ -698,8 +729,13 @@ void LoadImpCharacter( STR nickName ) HWFILE hFile; UINT32 uiBytesRead = 0; + char zFileName[12]; + + strcpy(zFileName,nickName); + strcat(zFileName,IMP_FILENAME_SUFFIX); + // open the file for writing - hFile = FileOpen(strcat(nickName,IMP_FILENAME_SUFFIX), FILE_ACCESS_READ, FALSE); + hFile = FileOpen(zFileName, FILE_ACCESS_READ, FALSE); // valid file? if( hFile == -1 ) diff --git a/Laptop/IMP Confirm.h b/Laptop/IMP Confirm.h index 283f49f4..9ae17f33 100644 --- a/Laptop/IMP Confirm.h +++ b/Laptop/IMP Confirm.h @@ -9,6 +9,7 @@ void HandleIMPConfirm( void ); BOOLEAN AddCharacterToPlayersTeam( void ); void LoadImpCharacter( STR fileName ); void WriteOutCurrentImpCharacter( INT32 iProfileId ); +void WriteOutCurrentImpCharacter( INT32 iProfileId, STR fileName ); void ResetIMPCharactersEyesAndMouthOffsets( UINT8 ubMercProfileID ); diff --git a/Laptop/IMP HomePage.cpp b/Laptop/IMP HomePage.cpp index fa2b0e00..b8bb03f8 100644 --- a/Laptop/IMP HomePage.cpp +++ b/Laptop/IMP HomePage.cpp @@ -342,7 +342,7 @@ void HandleTextEvent( UINT32 uiKey ) uiKey == '_' || uiKey == '.' ) { // if the current string position is at max or great, do nothing - if( iStringPos >= 6 ) + if( iStringPos >= 8 ) { break; } @@ -387,6 +387,9 @@ void ProcessPlayerInputActivationString( void ) if( NumberOfMercsOnPlayerTeam() >= 18 ) return; + char charPlayerActivationString[32]; + wcstombs(charPlayerActivationString,pPlayerActivationString,32); + //Madd multiple imps if( ( ( wcscmp(pPlayerActivationString, L"XEP624") == 0 ) || ( wcscmp(pPlayerActivationString, L"xep624") == 0 ) )&&( LaptopSaveInfo.fIMPCompletedFlag == FALSE ) &&( LaptopSaveInfo.gfNewGameLaptop < 2 ) ) if( ( ( wcscmp(pPlayerActivationString, L"XEP624") == 0 ) || ( wcscmp(pPlayerActivationString, L"xep624") == 0 ) ) &&( LaptopSaveInfo.gfNewGameLaptop < 2 ) ) { @@ -397,10 +400,14 @@ void ProcessPlayerInputActivationString( void ) } //Madd multiple imps else if( ( wcscmp(pPlayerActivationString, L"90210") == 0 ) && ( LaptopSaveInfo.fIMPCompletedFlag == FALSE ) ) - // Madd: load characters by name: - else if ( ImpExists( (STR)pPlayerActivationString ) ) + else if( wcscmp(pPlayerActivationString, L"90210") == 0 ) { - LoadImpCharacter( (STR)pPlayerActivationString ); + LoadImpCharacter( IMP_MERC_FILENAME ); + } + // Madd: load characters by name + else if ( ImpExists( charPlayerActivationString ) ) + { + LoadImpCharacter( charPlayerActivationString ); } else diff --git a/Laptop/IMP HomePage.h b/Laptop/IMP HomePage.h index 500ba641..c6d657b8 100644 --- a/Laptop/IMP HomePage.h +++ b/Laptop/IMP HomePage.h @@ -12,5 +12,7 @@ void HandleImpHomePage( void ); #define MIN_GLOW_DELTA 100 #define CURSOR_HEIGHT GetFontHeight( FONT14ARIAL ) + 6 +#define IMP_MERC_FILENAME "IMP" + extern INT32 GlowColorsList[][3]; #endif \ No newline at end of file diff --git a/Laptop/laptop.cpp b/Laptop/laptop.cpp index 316c3941..9fe6e72f 100644 --- a/Laptop/laptop.cpp +++ b/Laptop/laptop.cpp @@ -4519,8 +4519,8 @@ BOOLEAN DisplayTitleBarMaximizeGraphic(BOOLEAN fForward, BOOLEAN fInit, UINT16 u sPosBottomY = LAPTOP_TITLE_BAR_HEIGHT; - SrcRect.iLeft = iScreenWidthOffset; - SrcRect.iTop = iScreenHeightOffset; + SrcRect.iLeft = 0; + SrcRect.iTop = 0; SrcRect.iRight = LAPTOP_TITLE_BAR_WIDTH; SrcRect.iBottom = LAPTOP_TITLE_BAR_HEIGHT;