From a7e03ca42617dc2dbefec1625de3eb3b6b665c8f Mon Sep 17 00:00:00 2001 From: allenseitz Date: Sat, 20 Dec 2014 01:11:05 +0000 Subject: [PATCH] Fixed a bug in the (new) VideoManager which was causing file handles to leak, eventually breaking the game forever. This was noticeable after a few hours of the attract loop. I also modified Error Mode to reboot the game after 10 minutes of being neglected at the error screen. --- deploy/DMX.exe | Bin 520704 -> 521216 bytes src/headers/common.h | 6 ++++-- src/headers/gameStateManager.h | 1 + src/source/VideoManager.cpp | 1 + src/source/main.cpp | 18 +++++++++++++++--- src/source/render_dmx.cpp | 4 ++++ 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/deploy/DMX.exe b/deploy/DMX.exe index 2de29a8eb1446239cae0c52905ddeb55fcef37bb..dc877c205e76910b0a76b7770fd4618d15127b18 100644 GIT binary patch delta 39619 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 MZ<%mA-GfyB2PY7-i2wiq delta 39497 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 diff --git a/src/headers/common.h b/src/headers/common.h index 90864c2..2a17b9f 100644 --- a/src/headers/common.h +++ b/src/headers/common.h @@ -98,11 +98,12 @@ struct AL_POINT #define VOTEMODE 17 #define BOOTMODE 18 #ifdef DMXDEBUG - #define FIRST_GAME_MODE BOOTMODE + //#define FIRST_GAME_MODE VIDEOTEST + //#define FIRST_GAME_MODE BOOTMODE //#define FIRST_GAME_MODE SONGWHEEL //#define FIRST_GAME_MODE GAMEPLAY //#define FIRST_GAME_MODE PLAYERSELECT - //#define FIRST_GAME_MODE ATTRACT + #define FIRST_GAME_MODE ATTRACT #else #define FIRST_GAME_MODE BOOTMODE #endif @@ -126,6 +127,7 @@ struct AL_POINT #define PLAYER_PREFS_LOST 5001 #define PLAYER_SCORES_LOST 5002 #define UPDATE_FAILED 6001 +#define REBOOT_FAILED 6002 #define EXTIO_ERROR 7001 void globalError(long errorCode, const char* errorInfo); diff --git a/src/headers/gameStateManager.h b/src/headers/gameStateManager.h index b723eca..989cef7 100644 --- a/src/headers/gameStateManager.h +++ b/src/headers/gameStateManager.h @@ -458,6 +458,7 @@ public: case PLAYER_SCORES_LOST: return "PLAYER SCORE DATA LOST"; case 6000: return "UNSPECIFIC UPDATE ERROR"; case UPDATE_FAILED: return "FAILED TO START UPDATE PROCESS"; + case REBOOT_FAILED: return "UNABLE TO SELF-RESTART"; case 7000: return "UNSPECIFIC HARDWARE ERROR"; case EXTIO_ERROR: return "I/O BOARD SYNC ERROR"; } diff --git a/src/source/VideoManager.cpp b/src/source/VideoManager.cpp index 786aa02..29bcaad 100644 --- a/src/source/VideoManager.cpp +++ b/src/source/VideoManager.cpp @@ -163,6 +163,7 @@ void VideoManager::loadVideo(char* filename) // load the entire video into an unreasonably large memory buffer! videoBuffer = malloc(fsize); fread(videoBuffer, fsize, 1, fp); + fclose(fp); // sanity check the buffer contents or else APEG may hang if ( ((char*)videoBuffer)[0] == 'O' && ((char*)videoBuffer)[1] == 'g' && ((char*)videoBuffer)[2] == 'g' && ((char*)videoBuffer)[3] == 'S' ) diff --git a/src/source/main.cpp b/src/source/main.cpp index 3b9832c..b8ce1a2 100644 --- a/src/source/main.cpp +++ b/src/source/main.cpp @@ -131,6 +131,7 @@ void mainCautionLoop(UTIME dt); void renderCreditsDisplay(); void getUpdateAndRestart(); +void giveUpAndRestart(); void renderDebugOverlay(); // operator menus @@ -305,6 +306,7 @@ int main() if ( time > last_utime ) { UTIME dt = time - last_utime; + //dt *= 1000; // FOR SOAK TESTING, CAUSES HILLARIOUS THINGS TO HAPPEN last_utime = time; totalGameTime += dt; @@ -596,11 +598,11 @@ void mainErrorLoop(UTIME dt) textprintf_centre(rm.m_backbuf, font, 320, 300, makecol(255,255,255), "PLEASE PRESS TEST BUTTON"); textprintf_centre(rm.m_backbuf, font, 320, 410, makecol(255,255,255), "time = %d", accumulate/1000); - // nevermind? no one is coming to the rescue? just carry on after 10 minutes + // nevermind? no one is coming to the rescue? just reboot after 10 minutes if ( accumulate/1000 > 600 ) { - gs.g_currentGameMode = MAINMENU; - gs.g_gameModeTransition = 1; + giveUpAndRestart(); + accumulate = 600000 - 10000; } } @@ -695,6 +697,16 @@ void getUpdateAndRestart() } } +// This is used in the event of a fatal error. +void giveUpAndRestart() +{ + if ( _execl("dmx.exe", "dmx.exe", NULL) == -1 ) + { + globalError(REBOOT_FAILED, "please reboot the machine"); + em.playSample(SFX_LOUD_BELL); + } +} + void firstOperatorLoop() { bm.forceBookkeepingSave(); diff --git a/src/source/render_dmx.cpp b/src/source/render_dmx.cpp index 8be1273..4d02dec 100644 --- a/src/source/render_dmx.cpp +++ b/src/source/render_dmx.cpp @@ -700,6 +700,10 @@ void renderBatteryLivesDMX(int player) for ( int i = 0; i < gs.player[player].lifebarLives; i++ ) { int frame = getValueFromRange(0, 7, (gs.player[player].stepZoneBeatTimer*100 / gs.player[player].stepZoneTimePerBeat)); + if ( frame < 0 || frame > 7 ) + { + frame = 7; + } masked_stretch_blit(m_notesDMX[2], rm.m_backbuf, 0, frame*40, 40, 40, xpos, ypos, 20, 20); ypos += 20*direction; }