From 30974f588816aa03652002111c6a946b138e3bc5 Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Wed, 8 Jan 2025 19:47:31 +0100 Subject: replay in preview scene --- game/preview/PreviewReplaySubScript.cpp | 51 +++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 game/preview/PreviewReplaySubScript.cpp (limited to 'game/preview/PreviewReplaySubScript.cpp') diff --git a/game/preview/PreviewReplaySubScript.cpp b/game/preview/PreviewReplaySubScript.cpp new file mode 100644 index 0000000..9725ba2 --- /dev/null +++ b/game/preview/PreviewReplaySubScript.cpp @@ -0,0 +1,51 @@ +#include "PreviewReplaySubScript.h" +#include "menus/ButtonReplaySubScript.h" +#include +#include + +using namespace crepe; +using namespace std; + +void PreviewReplaySubScript::init() { + IButtonScript::init(); + this->subscribe([this](const ButtonPressEvent & e) { + return this->on_button_press(e); + }); + this->subscribe([this](const StopPreviewRecording & e) { + return this->stop_recording(); + }); + this->subscribe([this](const DeleteRecordingEvent & e) { + return this->delete_recording(); + }); + this->subscribe([this](const StartPreviewRecording & e) { + return this->start_recording(); + }); + +} + +bool PreviewReplaySubScript::on_button_press(const ButtonPressEvent & e) { + replay.play(this->recording); + return false; +} +bool PreviewReplaySubScript::start_recording(){ + if(record_saved){ + this->stop_recording(); + this->delete_recording(); + } + replay.record_start(); + this->record_started = true; + return false; +} + +bool PreviewReplaySubScript::stop_recording() { + if(this->record_started)this->recording = replay.record_end(); + this->record_saved = true; + return false; +} + +bool PreviewReplaySubScript::delete_recording() { + if(this->record_started) this->stop_recording(); + if(this->record_saved)replay.release(this->recording); + this->record_saved = false; + return false; +} -- cgit v1.2.3 From 64a0cf67d6c299a099b48ce083b1f3a688787cb3 Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Fri, 10 Jan 2025 11:04:44 +0100 Subject: added optional replay and added black background --- game/Config.h | 2 ++ game/menus/ButtonReplaySubScript.cpp | 5 +++++ game/menus/mainmenu/MainMenuScene.cpp | 2 +- game/preview/PreviewReplaySubScript.cpp | 5 +++++ 4 files changed, 13 insertions(+), 1 deletion(-) (limited to 'game/preview/PreviewReplaySubScript.cpp') diff --git a/game/Config.h b/game/Config.h index 8fa41ba..391fd76 100644 --- a/game/Config.h +++ b/game/Config.h @@ -64,3 +64,5 @@ static constexpr int PLAYER_GRAVITY_SCALE = 60; // In game units static constexpr const char * CAMERA_NAME = "camera"; // Jetpack particles static constexpr const char * JETPACK_PARTICLES = "jetpack_particles"; + +static constexpr bool DISABLE_REPLAY = false; diff --git a/game/menus/ButtonReplaySubScript.cpp b/game/menus/ButtonReplaySubScript.cpp index ddd9fa4..55e718d 100644 --- a/game/menus/ButtonReplaySubScript.cpp +++ b/game/menus/ButtonReplaySubScript.cpp @@ -1,4 +1,5 @@ #include "ButtonReplaySubScript.h" +#include "Config.h" #include "MenusConfig.h" #include "../Events.h" @@ -19,20 +20,24 @@ void ButtonReplaySubScript::init() { this->subscribe([this](const DeleteRecordingEvent & e) { return this->delete_recording(); }); + if(DISABLE_REPLAY)return; replay.record_start(); } bool ButtonReplaySubScript::on_button_press(const ButtonPressEvent & e) { + if(DISABLE_REPLAY)return false; replay.play(this->recording); return false; } bool ButtonReplaySubScript::set_recording() { + if(DISABLE_REPLAY)return false; this->recording = replay.record_end(); return false; } bool ButtonReplaySubScript::delete_recording() { + if(DISABLE_REPLAY)return false; replay.release(this->recording); return false; } diff --git a/game/menus/mainmenu/MainMenuScene.cpp b/game/menus/mainmenu/MainMenuScene.cpp index ff94e74..baeca39 100644 --- a/game/menus/mainmenu/MainMenuScene.cpp +++ b/game/menus/mainmenu/MainMenuScene.cpp @@ -29,7 +29,7 @@ void MainMenuScene::load_scene() { camera_object.add_component( ivec2(990, 720), vec2(1100, 800), Camera::Data { - .bg_color = Color::RED, + .bg_color = Color::BLACK, } ); camera_object.add_component().set_script(); diff --git a/game/preview/PreviewReplaySubScript.cpp b/game/preview/PreviewReplaySubScript.cpp index 9725ba2..51c27aa 100644 --- a/game/preview/PreviewReplaySubScript.cpp +++ b/game/preview/PreviewReplaySubScript.cpp @@ -1,4 +1,5 @@ #include "PreviewReplaySubScript.h" +#include "Config.h" #include "menus/ButtonReplaySubScript.h" #include #include @@ -24,10 +25,12 @@ void PreviewReplaySubScript::init() { } bool PreviewReplaySubScript::on_button_press(const ButtonPressEvent & e) { + if(DISABLE_REPLAY)return false; replay.play(this->recording); return false; } bool PreviewReplaySubScript::start_recording(){ + if(DISABLE_REPLAY)return false; if(record_saved){ this->stop_recording(); this->delete_recording(); @@ -38,12 +41,14 @@ bool PreviewReplaySubScript::start_recording(){ } bool PreviewReplaySubScript::stop_recording() { + if(DISABLE_REPLAY)return false; if(this->record_started)this->recording = replay.record_end(); this->record_saved = true; return false; } bool PreviewReplaySubScript::delete_recording() { + if(DISABLE_REPLAY)return false; if(this->record_started) this->stop_recording(); if(this->record_saved)replay.release(this->recording); this->record_saved = false; -- cgit v1.2.3