-
Notifications
You must be signed in to change notification settings - Fork 183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vampires Dawn II: Using the item "Speicherstein" triggers endless loop #2450
Comments
|
Because you know programming and this is a regression: Could you try to bisect this for us? Start it with
Then compile it and test the build.
If it works:
Repeat until the bad commit is found and tell us the commit (takes log(n) steps because it is a binary search [always takes the commit in the middle of the remaining]). Problem is that you must have the right liblcf version for each revision because of incompatible changes. I recommend that you clone liblcf to |
After typing in I don't know if this is of any help, but the last |
Yeah this is kinda how it works. |
The search has been narrowed down to 4 commits, here is the output: Test results with the remaining commits: |
somehow I always get an endless loop independent of the version, even in 0.6.2.3. |
Sure, here you go: Save01.zip (Vampires Dawn II, tested with stable 0.6.2.3). |
Yeah and after loading and then saving with the Speicherstein again I get an endless loop in 0.6.2.3. |
I got the version from www.vampiresdawn.org. (Game version 1.27) |
oh, so they updated the game (also VD1), interesting o_O |
Did more testing and I have to revise my assumption: Calling the save game scene is not the cause for the endless loop, it is something else which blocks the execution of the remaining event commands. I have removed the event command which calls the save game scene (which makes the "Speicherstein" useless, but this is for testing purposes) and still get the endless loop. |
Probably found the cause now: The save count isn't being incremented after saving a game. The "Speicherstein" checks if the save count has been changed. Because of this the endless loop is being triggered. It looks like it is meant to force the player to save the game so that the item isn't being wasted. |
I'm 100% certain now that the save count not incrementing is the culprit. As mentioned above, the "Speicherstein" checks if the save count has been changed to force the player to save the game. The cause for the save count not incrementing is in scene_save.cpp: The code in line 122 increments the save count ( Edit: Looks like that there is more which has to be fixed, fixing the counter being reset isn't sufficient to fix the issue. |
Oh okay this was obviously not possible to find properly via a bisect because this is a bug specific to player and lcf version. And you can query the save count? That is new to me or I forgot it 😅 |
Yes, querying the save count is indeed possible. See this code in game_interpreter.cpp. It belongs to event code 10220, Variable Operation. This means you can store the current save count in a game variable. The "Speicherstein" in "Vampires Dawn II" makes use of it. |
btw this also explains why I was unable to reproduce your bisect result: I always cancelled the saving 😅 . You never said that this matters. |
Oh, I'm sorry. I admit I found out about it later that it matters if you save or not when I checked out the event commands used in the event. |
Using the item "Speicherstein" (item which allows to save the game once) in "Vampires Dawn II" triggers an endless loop which means the save file window is always opening regardless if you save the game or exit the save file window. This happens on current master, but not on stable version 0.6.2.3 so we have a regression here.
The text was updated successfully, but these errors were encountered: