-rw-r--r-- | noncore/games/sfcave/sfcave.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/noncore/games/sfcave/sfcave.cpp b/noncore/games/sfcave/sfcave.cpp index 93f5f82..d551afe 100644 --- a/noncore/games/sfcave/sfcave.cpp +++ b/noncore/games/sfcave/sfcave.cpp | |||
@@ -826,7 +826,7 @@ void SFCave :: keyPressEvent( QKeyEvent *e ) | |||
826 | case Qt::Key_Up: | 826 | case Qt::Key_Up: |
827 | case Qt::Key_F9: | 827 | case Qt::Key_F9: |
828 | case Qt::Key_Space: | 828 | case Qt::Key_Space: |
829 | if ( !press ) | 829 | if ( !replay && !press ) |
830 | { | 830 | { |
831 | press = true; | 831 | press = true; |
832 | replayList.append( new int( nrFrames ) ); | 832 | replayList.append( new int( nrFrames ) ); |
@@ -862,7 +862,7 @@ void SFCave :: keyReleaseEvent( QKeyEvent *e ) | |||
862 | case Qt::Key_F9: | 862 | case Qt::Key_F9: |
863 | case Qt::Key_Space: | 863 | case Qt::Key_Space: |
864 | case Qt::Key_Up: | 864 | case Qt::Key_Up: |
865 | if ( press ) | 865 | if ( !replay && press ) |
866 | { | 866 | { |
867 | press = false; | 867 | press = false; |
868 | 868 | ||
@@ -883,10 +883,12 @@ void SFCave :: keyReleaseEvent( QKeyEvent *e ) | |||
883 | break; | 883 | break; |
884 | 884 | ||
885 | case Qt::Key_S: | 885 | case Qt::Key_S: |
886 | if ( state == STATE_CRASHED ) | ||
886 | saveReplay(); | 887 | saveReplay(); |
887 | break; | 888 | break; |
888 | 889 | ||
889 | case Qt::Key_L: | 890 | case Qt::Key_L: |
891 | if ( state == STATE_CRASHED ) | ||
890 | loadReplay(); | 892 | loadReplay(); |
891 | break; | 893 | break; |
892 | default: | 894 | default: |
@@ -1065,6 +1067,11 @@ void SFCave :: loadReplay() | |||
1065 | { | 1067 | { |
1066 | FILE *in = fopen( (const char *)replayFile, "r" ); | 1068 | FILE *in = fopen( (const char *)replayFile, "r" ); |
1067 | 1069 | ||
1070 | if ( in == 0 ) | ||
1071 | { | ||
1072 | printf( "Couldn't load replay file!\n" ); | ||
1073 | return; | ||
1074 | } | ||
1068 | // Read size of next line | 1075 | // Read size of next line |
1069 | char line[10+1]; | 1076 | char line[10+1]; |
1070 | fgets( line, 10, in ); | 1077 | fgets( line, 10, in ); |
@@ -1093,4 +1100,6 @@ void SFCave :: loadReplay() | |||
1093 | delete data; | 1100 | delete data; |
1094 | 1101 | ||
1095 | fclose( in ); | 1102 | fclose( in ); |
1103 | |||
1104 | printf( "Replay loaded from %s\n", (const char *)replayFile ); | ||
1096 | } \ No newline at end of file | 1105 | } \ No newline at end of file |