X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftape.c;h=479adfbfc0f2cb4767f73cdc8d76f5f5b2f381b2;hb=af07d74262e7d5075feaea67fa16c04c6be0e3f6;hp=b521d38e37ff0e8e2cabbd84618059d8009b5b2f;hpb=62aa94beca16e39169d440bbc211a9f1efbcd60f;p=rocksndiamonds.git diff --git a/src/tape.c b/src/tape.c index b521d38e..479adfbf 100644 --- a/src/tape.c +++ b/src/tape.c @@ -654,10 +654,16 @@ void TapeDeactivateDisplayOff(boolean redraw_display) /* tape control functions */ /* ========================================================================= */ -void TapeErase() +static void TapeSetDate() { time_t epoch_seconds = time(NULL); - struct tm *time = localtime(&epoch_seconds); + struct tm *now = localtime(&epoch_seconds); + + tape.date = 10000 * (now->tm_year % 100) + 100 * now->tm_mon + now->tm_mday; +} + +void TapeErase() +{ int i; tape.length = 0; @@ -670,13 +676,14 @@ void TapeErase() tape.pos[tape.counter].delay = 0; tape.changed = TRUE; - tape.date = 10000*(time->tm_year % 100) + 100*time->tm_mon + time->tm_mday; tape.random_seed = InitRND(NEW_RANDOMIZE); tape.file_version = FILE_VERSION_ACTUAL; tape.game_version = GAME_VERSION_ACTUAL; tape.engine_version = level.game_version; + TapeSetDate(); + #if 0 printf("::: tape.engine_version = level.game_version = %d \n", level.game_version); @@ -749,7 +756,10 @@ static void TapeAppendRecording() tape.recording = TRUE; tape.changed = TRUE; - DrawVideoDisplay(VIDEO_STATE_PLAY_OFF | VIDEO_STATE_REC_ON,0); + TapeSetDate(); + + DrawVideoDisplay(VIDEO_STATE_DATE_ON, tape.date); + DrawVideoDisplay(VIDEO_STATE_PLAY_OFF | VIDEO_STATE_REC_ON, 0); } void TapeHaltRecording() @@ -973,6 +983,8 @@ byte *TapePlayAction() DrawVideoDisplay(VIDEO_STATE_WARP2_ON, VIDEO_DISPLAY_SYMBOL_ONLY); } } +#if 0 + /* !!! this makes things much slower !!! */ else if (tape.warp_forward) { if ((FrameCounter / 20) % 2) @@ -982,6 +994,7 @@ byte *TapePlayAction() DrawVideoDisplay(VIDEO_STATE_WARP_ON, VIDEO_DISPLAY_SYMBOL_ONLY); } +#endif if (tape.counter >= tape.length) /* end of tape reached */ { @@ -1139,6 +1152,17 @@ void TapeQuickSave() void TapeQuickLoad() { + if (tape.recording && !Request("Stop recording and load tape ?", + REQ_ASK | REQ_STAY_CLOSED)) + { + BlitBitmap(bitmap_db_door, bitmap_db_door, + DOOR_GFX_PAGEX2, DOOR_GFX_PAGEY1, DXSIZE, DYSIZE, + DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1); + OpenDoor(DOOR_OPEN_1); + + return; + } + if (game_status == GAME_MODE_PLAYING || game_status == GAME_MODE_MAIN) { TapeStop();