diasurgical / devilutionX

Diablo build for modern operating systems
Other
8.13k stars 797 forks source link

[Issue Report]: Lazarus starting sequence issues #7025

Closed locksoft closed 7 months ago

locksoft commented 8 months ago

Operating System

Nintendo Switch

DevilutionX version

1.5.2

Describe

Here are some more details about the Lazarus event triggering. The short video, where camera zooms into the cathedral, plays (randomly) like one time every three (this time it didn't happen). Most of the times I teleport in the room all mobs are like frozen. They just look at me, rotating to follow my movements, but nothing happens until I interact (click) with Lazarus (didn't try to do with other mobs, maybe it's the same). At this point, if I move out of view (like going in another room) while Lazarus is still talking, I think the procedure sorts of "resets", and Lazarus starts talking again from the beginning if I return back. I remember he did that at least three times in a previous run. If I stay in the room while he's speaking, at the end they literally fry me (the fight correctly starts). :)

https://github.com/diasurgical/devilutionX/assets/204594/2ff58192-e257-44f8-be25-b12d7e450d4f

To Reproduce

Teleport in Lazarus room (Nintendo Switch's version) and don't click anywhere.

Expected Behavior

I guess the video should start and, at the end, Lazarus sayng his bla bla bla and the fight starts.

Maderator3000 commented 8 months ago

In vanilla Diablo it works like this - the video plays when interacting with the teleportation circle in Lazarus' room. Then he reenacts his speech about why the hell you’ll save the boy, and then the fight begins. Also works on Android version DevX 1.5.2 and earlier versions

locksoft commented 8 months ago

In vanilla Diablo it works like this - the video plays when interacting with the teleportation circle in Lazarus' room. Then he reenacts his speech about why the hell you’ll save the boy, and then the fight begins. Also works on Android version DevX 1.5.2 and earlier versions

I don't have anymore that save game but, according to this video (https://www.youtube.com/watch?v=I6fQSUNR0Aw) the cinematic should start as soon as you teleport in Lazarus room. And, as it ends, Lazarus starts talking and the fight begins. As you can see from my video, nothing happens when I teleport, I'm just there in his room walking around freely. Can it be related to the fact that, using a gamepad, the interaction with object is a bit different and the cinematic couldn't always start (next time it does, I'll check more carefully)?

To give more context I'm playing Hellfire, but I (almost) sure the issue was there even in vanilla Diablo.

Maderator3000 commented 8 months ago

To give more context I'm playing Hellfire, but I (almost) sure the issue was there even in vanilla Diablo.

I think I understand. It's a matter of management. Due to joystick control on a gamepad or on-screen controls, the character continues to walk after being hit by the teleporter, which is why he does not remain on the circle.I can’t understand anything else - why when you stood in a circle in the video, the video didn’t play?

locksoft commented 8 months ago

To give more context I'm playing Hellfire, but I (almost) sure the issue was there even in vanilla Diablo.

Judging by the video, I can assume that in DevX, due to some long-standing error, we are teleported not to the circle in Lazarus’s room, but next to him, and the trigger in the video is located right on the circle. Well, or this error exists since a certain version of vanilla Diablo.

Hmmm... it could be possible (I've just read the post about the mini map incorrect alignment of the player in the last developer version), even if the symbol on the ground seems selected when the character appears. I'm sure that in some previous run the video started, so there could be something that could slightly changes when interacting with the teleport the first time.

kphoenix137 commented 8 months ago

Can you reupload the video? It doesn't appear to be working

locksoft commented 8 months ago

Can you reupload the video? It doesn't appear to be working

The thumbnail isn’t showing for me either, I see a blank square (no idea why). But if I click it the video starts. It’s not the same for you?

Another option may be because it’s encoded in h265 and not all browsers can play it. Maybe you can try to download it and open with a media player like VLC?

AJenbo commented 8 months ago

Yeah I had to downlaode it to play it. Firefox didn't want to play it at all and Chrome only played the audio

StephenCWills commented 8 months ago

I fixed it for you guys.

AJenbo commented 8 months ago

I fixed it for you guys.

Works in Firefox and Chrome, but not Chrome on my Android phone... 2024 and still video playback in the browser is as problematic as when we needed Flash for it :D

Any way back on topic, I do seem to remember having this issue at some point when testing using gamepad and it boiled down to being able to issue a move sooner then you can with a mouse allowing you to escape the event somehow. So I think @Sergei3000yt is right in his explanation.

AJenbo commented 8 months ago

Here is where the video is initiated: https://github.com/diasurgical/devilutionX/blob/1.5/Source/monster.cpp#L2785

As you can see, it is triggered by Lazarus when he sees the player standing on the exact spot in the level. However, there are several conditions that must also apply. I'm guessing that the player manages to move out of the tile before the vision is updated, and at that point, Lazarus changes his mode to Stand, so he will no longer trigger the video even if the player returns to the tile.

AJenbo commented 8 months ago

Arh, here we go: https://github.com/diasurgical/devilutionX/issues/512#issuecomment-565760612

I removed it from the list of gamepad issues since I found out that it can be done with the mouse as well, but never created an issue for it :D

locksoft commented 8 months ago

Sorry for the problem, guys, I re-encoded it in h264. Now every browser should be able to play it (the one fixed by @StephenCWills doesn't open for me in Safari):

http://gofile.me/6RvCQ/Gj3RR5JN7

I used h265 because the file was too big to upload it (and still is, as it's 11 MB), so I'm currently hosting it on my NAS.

locksoft commented 8 months ago

To be honest it's not that big issue. It's nice to explore the room with people staring at you. :) The only thing is that neither the cinematic starts, but at the 10th run it's no more a problem anymore.

AJenbo commented 8 months ago

I didn't have any issues uploading your video

locksoft commented 8 months ago

I didn't have any issues uploading your video

This is the problem I incurred in:

Screenshot 36

The file is 11 MB. :)

AJenbo commented 8 months ago

Yes, but I didn't. I probably have extra permissions, idk

StephenCWills commented 7 months ago

I'm not sure what it was that resolved the issue, but it seems to be fixed in 1.6.0.

AJenbo commented 7 months ago

I'm not sure what it was that resolved the issue, but it seems to be fixed in 1.6.0.

It's not always easy to trigger, especially not without a game controller. Did you replicate it on earlier builds?

StephenCWills commented 7 months ago

Yes, I consistently reproduced on 1.5.2 on both Windows and Ryujinx. I couldn't do it on 1.6.0 on either platform.

AJenbo commented 7 months ago

Well that is good news then :)