Ticket #4582: nullmd5fix.patch

File nullmd5fix.patch, 1000 bytes (added by SF/rinco, 15 years ago)

Fix for AGI savegames where game md5 string is null.

  • engines/agi/saveload.cpp

     
    9999        debugC(5, kDebugLevelMain | kDebugLevelSavegame, "Writing game id (%s, %s)", gameIDstring, _game.id);
    100100
    101101        const char *tmp = getGameMD5();
    102         for (i = 0; i < 32; i++)
    103                 out->writeByte(tmp[i]);
     102        // MD5 can be null - if it is, just write zeros - we won't be doing a comparrison on load anyway
     103        if (tmp)
     104                for (i = 0; i < 32; i++)
     105                        out->writeByte(tmp[i]);
     106        else
     107                for (i = 0; i < 32; i++)
     108                        out->writeByte(0);
    104109
    105110        for (i = 0; i < MAX_FLAGS; i++)
    106111                out->writeByte(_game.flags[i]);
     
    316321
    317322                debug(0, "Saved game MD5: %s", md5);
    318323
    319                 if (strcmp(md5, getGameMD5())) {
     324                if (getGameMD5() && strcmp(md5, getGameMD5())) {
    320325                        warning("Game was saved with different gamedata - you may encounter problems");
    321326
    322327                        debug(0, "You have %s and save is %s.", getGameMD5(), md5);