From bdbb5c9f4134f280e866bd176cf352b822ebdc00 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Wed, 10 Jan 2018 11:53:46 +0100 Subject: [PATCH] changed code position of check if tape is full when adding actions --- src/tape.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/tape.c b/src/tape.c index 38edafc5..e4254036 100644 --- a/src/tape.c +++ b/src/tape.c @@ -660,7 +660,7 @@ void TapeStopRecording() MapTapeEjectButton(); } -void TapeAddAction(byte action[MAX_PLAYERS]) +boolean TapeAddAction(byte action[MAX_PLAYERS]) { int i; @@ -674,6 +674,9 @@ void TapeAddAction(byte action[MAX_PLAYERS]) if (changed_events || tape.pos[tape.counter].delay >= 255) { + if (tape.counter >= MAX_TAPE_LEN - 1) + return FALSE; + tape.counter++; tape.pos[tape.counter].delay = 0; } @@ -688,6 +691,8 @@ void TapeAddAction(byte action[MAX_PLAYERS]) tape.pos[tape.counter].delay++; } + + return TRUE; } void TapeRecordAction(byte action_raw[MAX_PLAYERS]) @@ -698,12 +703,6 @@ void TapeRecordAction(byte action_raw[MAX_PLAYERS]) if (!tape.recording) /* (record action even when tape is paused) */ return; - if (tape.counter >= MAX_TAPE_LEN - 1) - { - TapeStopRecording(); - return; - } - for (i = 0; i < MAX_PLAYERS; i++) action[i] = action_raw[i]; @@ -717,7 +716,8 @@ void TapeRecordAction(byte action_raw[MAX_PLAYERS]) tape.set_centered_player = FALSE; } - TapeAddAction(action); + if (!TapeAddAction(action)) + TapeStopRecording(); } void TapeTogglePause(boolean toggle_mode) -- 2.34.1