mirror of
https://github.com/blupi-games/planetblupi
synced 2024-12-30 10:15:36 +01:00
Add a --play-record arg for playing a specific demo file
This commit is contained in:
parent
cfdd094d29
commit
ca97d1b278
@ -58,12 +58,13 @@ CMovie * g_pMovie = nullptr; // movie principal
|
||||
CDecor * g_pDecor = nullptr;
|
||||
std::thread * g_updateThread = nullptr;
|
||||
|
||||
bool g_bFullScreen = false; // false si mode de test
|
||||
Sint32 g_speedRate = 1;
|
||||
Sint32 g_timerInterval = 50; // inverval = 50ms
|
||||
int g_rendererType = 0;
|
||||
bool g_enableRecorder = false;
|
||||
bool g_restoreBugs = false; // restore original < v1.9 bugs
|
||||
bool g_bFullScreen = false; // false si mode de test
|
||||
Sint32 g_speedRate = 1;
|
||||
Sint32 g_timerInterval = 50; // inverval = 50ms
|
||||
int g_rendererType = 0;
|
||||
bool g_enableRecorder = false;
|
||||
std::string g_playRecord;
|
||||
bool g_restoreBugs = false; // restore original < v1.9 bugs
|
||||
|
||||
enum Settings {
|
||||
SETTING_FULLSCREEN = 1 << 0,
|
||||
@ -527,6 +528,10 @@ parseArgs (int argc, char * argv[], bool & exit)
|
||||
{"-c", "--enable-recorder"},
|
||||
"enable the recorder feature (F3/F4)",
|
||||
0},
|
||||
{"playrecord",
|
||||
{"-p", "--play-record"},
|
||||
"play a record generated by F3 (--enable-recorder)",
|
||||
1},
|
||||
{"restorebugs",
|
||||
{"-b", "--restore-bugs"},
|
||||
"restore funny original bugs of older versions < v1.9",
|
||||
@ -590,6 +595,9 @@ parseArgs (int argc, char * argv[], bool & exit)
|
||||
if (args["enablerecorder"])
|
||||
g_enableRecorder = true;
|
||||
|
||||
if (args["playrecord"])
|
||||
g_playRecord = args["playrecord"].as<std::string> ();
|
||||
|
||||
if (args["restorebugs"])
|
||||
g_restoreBugs = true;
|
||||
|
||||
|
@ -22,6 +22,7 @@
|
||||
|
||||
#include <SDL2/SDL.h>
|
||||
#include <libintl.h>
|
||||
#include <string>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
@ -30,6 +31,7 @@ extern SDL_Renderer * g_renderer;
|
||||
extern bool g_bFullScreen;
|
||||
extern bool g_restoreBugs;
|
||||
extern bool g_enableRecorder;
|
||||
extern std::string g_playRecord;
|
||||
|
||||
struct Point {
|
||||
Sint32 x;
|
||||
|
@ -4612,7 +4612,7 @@ CEvent::DemoRecStop ()
|
||||
// Lit le fichier sur disque.
|
||||
|
||||
bool
|
||||
CEvent::DemoPlayStart ()
|
||||
CEvent::DemoPlayStart (const std::string * demoFile)
|
||||
{
|
||||
std::string filename;
|
||||
FILE * file = nullptr;
|
||||
@ -4620,8 +4620,11 @@ CEvent::DemoPlayStart ()
|
||||
Sint32 world, time, total;
|
||||
size_t nb;
|
||||
|
||||
filename = string_format (GetBaseDir () + "data/demo%.3d.blp", m_demoNumber);
|
||||
file = fopen (filename.c_str (), "rb");
|
||||
filename =
|
||||
demoFile
|
||||
? *demoFile
|
||||
: string_format (GetBaseDir () + "data/demo%.3d.blp", m_demoNumber);
|
||||
file = fopen (filename.c_str (), "rb");
|
||||
if (file == nullptr)
|
||||
{
|
||||
DemoPlayStop ();
|
||||
@ -4819,7 +4822,13 @@ CEvent::DemoStep ()
|
||||
|
||||
if (m_phase == EV_PHASE_INIT)
|
||||
{
|
||||
if (m_demoTime > DEF_TIME_DEMO) // ~30 secondes écoulées ?
|
||||
if (!g_playRecord.empty ())
|
||||
{
|
||||
m_demoNumber = -1;
|
||||
DemoPlayStart (&g_playRecord);
|
||||
g_playRecord = "";
|
||||
}
|
||||
else if (m_demoTime > DEF_TIME_DEMO) // ~30 secondes écoulées ?
|
||||
{
|
||||
m_demoNumber = 0;
|
||||
DemoPlayStart (); // démarre une démo automatique
|
||||
@ -4885,7 +4894,7 @@ CEvent::DemoStep ()
|
||||
|
||||
TreatEventBase (event);
|
||||
|
||||
if (m_demoIndex >= m_demoEnd)
|
||||
if (m_demoIndex >= m_demoEnd && m_demoNumber >= 0)
|
||||
{
|
||||
m_demoNumber++; // démo suivante
|
||||
if (!DemoPlayStart ()) // démarre la démo suivante
|
||||
|
@ -175,7 +175,7 @@ protected:
|
||||
|
||||
void DemoRecStart ();
|
||||
void DemoRecStop ();
|
||||
bool DemoPlayStart ();
|
||||
bool DemoPlayStart (const std::string * demoFile = nullptr);
|
||||
void DemoPlayStop ();
|
||||
static void
|
||||
WinToSDLEvent (Uint32 msg, WPARAM wParam, LPARAM lParam, SDL_Event & event);
|
||||
|
Loading…
x
Reference in New Issue
Block a user