Player icon indicating copy to clipboard operation
Player copied to clipboard

Incorrect positioning of timer overlay in "Die Reise ins All"

Open florianessl opened this issue 6 months ago • 1 comments

Tested with the latest continuous build of the Player.

~Likely a timing issue similar to #2432 / #2932~

During the liftoff sequence, an in-game timer is set, which should align with the clock sprite on the lower left. But EasyRPG Player shows it on the upper left of the screen.

Die Reise ins All uses an unmodified RPG_RT of Don Miguels 1.07b version of RPG Maker 2000.

https://realtroll.hpage.com/die-reise-ins-all/allgemein.html

RPG_RT: Image

EasyRPG Image

Save10.zip

florianessl avatar May 03 '25 08:05 florianessl

I tested around a bit and found out that the positioning defined via "Control Text Settings" doesn't affect positioning of the timer at all. It seems, that RPG_RT actually checks for the y parameter of the window & ignores system settings. This is also the case, if the message window isn't active/visible any more.

This simple change should do it:

diff --git a/src/sprite_timer.cpp b/src/sprite_timer.cpp
--- a/src/sprite_timer.cpp
+++ b/src/sprite_timer.cpp
@@ -23,6 +23,7 @@
 #include "game_party.h"
 #include "game_system.h"
 #include "game_battle.h"
+#include "window_message.h"
 #include <player.h>
 
 Sprite_Timer::Sprite_Timer(int which) :
@@ -90,7 +91,7 @@ void Sprite_Timer::Draw(Bitmap& dst) {
 	if (Game_Battle::IsBattleRunning()) {
 		SetY((Player::screen_height / 3 * 2) - 20);
 	}
-	else if (Game_Message::IsMessageActive() && Game_Message::GetRealPosition() == 0) {
+	else if (Game_Message::GetWindow()->GetY() < 20) {
 		SetY(Player::screen_height - 20 - Player::menu_offset_y);
 	}
 	else {

florianessl avatar Jun 04 '25 19:06 florianessl