diff --git a/singe/main.c b/singe/main.c index 2d587fed4..907a0bb4e 100644 --- a/singe/main.c +++ b/singe/main.c @@ -659,7 +659,7 @@ int main(int argc, char *argv[]) { ap_free(&parser); #ifdef _WIN32 - getchar(); + if (!_confNoConsole) getchar(); #endif return 0; diff --git a/singe/singe.c b/singe/singe.c index 7690a2a4a..59d196a91 100644 --- a/singe/singe.c +++ b/singe/singe.c @@ -2354,6 +2354,7 @@ void singe(SDL_Window *window, SDL_Renderer *renderer) { lua_register(_luaContext, "discAudio", apiDiscAudio); lua_register(_luaContext, "discChangeSpeed", apiDiscChangeSpeed); lua_register(_luaContext, "discGetFrame", apiDiscGetFrame); + lua_register(_luaContext, "discGetState", apiDiscGetState); lua_register(_luaContext, "discPause", apiDiscPause); lua_register(_luaContext, "discPauseAtFrame", apiDiscPauseAtFrame); lua_register(_luaContext, "discPlay", apiDiscPlay); @@ -2374,19 +2375,35 @@ void singe(SDL_Window *window, SDL_Renderer *renderer) { lua_register(_luaContext, "fontSelect", apiFontSelect); lua_register(_luaContext, "fontToSprite", apiFontToSprite); + lua_register(_luaContext, "keyboardGetMode", apiKeyboardGetMode); + lua_register(_luaContext, "keyboardSetMode", apiKeyboardSetMode); + + lua_register(_luaContext, "mouseEnable", apiMouseEnable); + lua_register(_luaContext, "mouseDisable", apiMouseDisable); lua_register(_luaContext, "mouseGetPosition", apiMouseGetPosition); + lua_register(_luaContext, "mouseHowMany", apiMouseHowMany); + lua_register(_luaContext, "mouseSetMode", apiMouseSetMode); lua_register(_luaContext, "overlayClear", apiOverlayClear); lua_register(_luaContext, "overlayGetHeight", apiOverlayGetHeight); lua_register(_luaContext, "overlayGetWidth", apiOverlayGetWidth); lua_register(_luaContext, "overlayPrint", apiOverlayPrint); + lua_register(_luaContext, "singeGetPauseFlag", apiSingeGetPauseFlag); + lua_register(_luaContext, "singeSetPauseFlag", apiSingeSetPauseFlag); + lua_register(_luaContext, "singeEnablePauseKey", apiSingeEnablePauseKey); + lua_register(_luaContext, "singeDisablePauseKey", apiSingeDisablePauseKey); + lua_register(_luaContext, "singeQuit", apiSingeQuit); + lua_register(_luaContext, "singeVersion", apiSingeVersion); + lua_register(_luaContext, "singeSetGameName", apiSingeSetGameName); + lua_register(_luaContext, "singeGetScriptPath", apiSingeGetScriptPath); + lua_register(_luaContext, "soundLoad", apiSoundLoad); lua_register(_luaContext, "soundPlay", apiSoundPlay); - lua_register(_luaContext, "soundPause", apiSoundPause); // rdg - lua_register(_luaContext, "soundResume", apiSoundResume); // - lua_register(_luaContext, "soundIsPlaying", apiSoundIsPlaying); // - lua_register(_luaContext, "soundStop", apiSoundStop); // + lua_register(_luaContext, "soundPause", apiSoundPause); + lua_register(_luaContext, "soundResume", apiSoundResume); + lua_register(_luaContext, "soundIsPlaying", apiSoundIsPlaying); + lua_register(_luaContext, "soundStop", apiSoundStop); lua_register(_luaContext, "soundSetVolume", apiSoundSetVolume); lua_register(_luaContext, "soundGetVolume", apiSoundGetVolume); lua_register(_luaContext, "soundFullStop", apiSoundFullStop); @@ -2401,23 +2418,6 @@ void singe(SDL_Window *window, SDL_Renderer *renderer) { lua_register(_luaContext, "vldpGetWidth", apiVldpGetWidth); lua_register(_luaContext, "vldpSetVerbose", apiVldpVerbose); - // by RDG2010 - lua_register(_luaContext, "keyboardGetMode", apiKeyboardGetMode); - lua_register(_luaContext, "keyboardSetMode", apiKeyboardSetMode); - lua_register(_luaContext, "mouseEnable", apiMouseEnable); - lua_register(_luaContext, "mouseDisable", apiMouseDisable); - lua_register(_luaContext, "mouseSetMode", apiMouseSetMode); - lua_register(_luaContext, "mouseHowMany", apiMouseHowMany); - lua_register(_luaContext, "discGetState", apiDiscGetState); - lua_register(_luaContext, "singeGetPauseFlag", apiSingeGetPauseFlag); - lua_register(_luaContext, "singeSetPauseFlag", apiSingeSetPauseFlag); - lua_register(_luaContext, "singeEnablePauseKey", apiSingeEnablePauseKey); - lua_register(_luaContext, "singeDisablePauseKey", apiSingeDisablePauseKey); - lua_register(_luaContext, "singeQuit", apiSingeQuit); - lua_register(_luaContext, "singeVersion", apiSingeVersion); - lua_register(_luaContext, "singeSetGameName", apiSingeSetGameName); - lua_register(_luaContext, "singeGetScriptPath", apiSingeGetScriptPath); - // Open main video file doIndexDisplay(-1); videoSetIndexCallback(doIndexDisplay); @@ -2788,6 +2788,18 @@ void singe(SDL_Window *window, SDL_Renderer *renderer) { } } + // Update video + thisFrame = videoUpdate(_videoHandle, &_videoTexture); + if (_confIsFrameFile) { + frameFileUpdate(_frameFileHandle, &_videoHandle); + } + // Did we get a new video frame? + if ((thisFrame != lastFrame) && (thisFrame >= 0)) { + lastFrame = thisFrame; + frameClock = 0; + _refreshDisplay = true; + } + // Call game code if (SDL_GetTicks() > frameClock) { callLua("onOverlayUpdate", ">i", &intReturn); @@ -2797,16 +2809,6 @@ void singe(SDL_Window *window, SDL_Renderer *renderer) { frameClock = SDL_GetTicks() + 15; // Don't eat all the CPU. } - // Update video - thisFrame = videoUpdate(_videoHandle, &_videoTexture); - if (_confIsFrameFile) { - frameFileUpdate(_frameFileHandle, &_videoHandle); - } - if ((thisFrame != lastFrame) && (thisFrame >= 0)) { - lastFrame = thisFrame; - _refreshDisplay = true; - } - // Update display if (_refreshDisplay || _discStopped) { // Sinden Gun Border