Realm667 / WolfenDoom

"WolfenDoom - Blade of Agony" | Important: This is only meant for development and testing purposes. You are NOT ALLOWED to use material from this repository for your own projects. Important: This repository is for development and testing purposes, you are NOT ALLOWED to use the copyrighted material for your own projects without our permission!
http://boa.realm667.com
255 stars 26 forks source link

Gamefile is of a 'different' level #1293

Closed x3003 closed 1 year ago

x3003 commented 1 year ago

With the latest git version, when going to this room in c2m0_a and activating either of the 2 balls, the savegame can't be loaded again. Says that the file is from a different level, although it identifies it as 'astrostein'.

Screenshot_Doom_20230415_140419

Edit: it's not only those 2, these also do the job......

Screenshot_Doom_20230415_142912

Talon1024 commented 1 year ago

I just tried to reproduce this issue with GZDoom 4.10.0, and quicksaving and loading those quicksaves works just fine for me, even if I activate one of those balls.

EDIT: And again, I just started a new game on C2M0_A using a GZDoom developer build, reached the aforementioned area, activated one of the balls, quicksaved, and I had no problems loading the quicksave after the ball was finished rolling.

Then again, GZDoom saves all information about any previous BoA levels to saved games. The last change to any of the chapter 2 maps was a month ago, with the most recent change being to C2M6_A last month. Perhaps the saved game you tried loading was older than that? I really have no idea.

EDIT 2: Here's the code used to load savegames, and where the "savegame is from a different level" error message comes from:

https://github.com/ZDoom/gzdoom/blob/86bc9cafd49307a9367ba59b54c88d6525f73e69/src/p_saveg.cpp#L937-L956

Username-N00b-is-not-available commented 1 year ago

Greetings, @Talon1024! Excuse me, have you seen this message? Asking here because I have no other means to contact anyone from the team (no one seems to respond to emails or to have notifications for this repository enabled). @x3003 Could you please elaborate on what you have done?

x3003 commented 1 year ago

1) Start the game w/ gzdoom g4.11pre-163 2) Use MAP c2m0_a 3) Play a bit till you get to the room in the first pic. 4a) Save 4b) Save again w/ another name after 1 of the boulders was activated.

The first save can be loaded w/o a problem. On the second one, there's a problem loading (different level).

Username-N00b-is-not-available commented 1 year ago

Can confirm this (for pre-163). Edit: also happens with boulders on C1M6 and C3M6_B. Edit 2: cannot reproduce this on GZDoom 4.10.0. This might be an issue with the devbuild.

Talon1024 commented 1 year ago

Also, when I was testing for this bug, the developer build I was using was g4.11pre-174. I'm on Linux, so I can compile GZDoom myself. I also had no trouble reloading a saved game from after activating a boulder.

Maybe this bug is related to a bug in RapidJson? pre-163 does not have this fix.

Username-N00b-is-not-available commented 1 year ago

@x3003 It seems indeed that the problem arises from the GZDoom pre-163 devbuild, not BoA. Until DRDTeam compiles some of the most recent builds, I guess it would be better to stick with 4.10.0 for playthroughs. For now BoA does not use any features more recent than that, anyway.

x3003 commented 1 year ago

For now BoA does not use any features more recent than that, anyway.

No, but dragon sector remake does need a newer version. Hope a newer version of gzdoom comes soon. Then I don't have to switch all the time between versions.

Username-N00b-is-not-available commented 1 year ago

@x3003 You can follow Talon1024's advice, except that you will also need to manually copy the three DLL's from an earlier GZDoom version (e. g. 4.10.0) into the new directory.

Username-N00b-is-not-available commented 1 year ago

Ah goddamnit, this still happens for boulders on C3M0_A near (9871, 4149, -304).

x3003 commented 1 year ago

Strange, as it didn't happen to the boulders in c1m6.

Username-N00b-is-not-available commented 1 year ago

Savegame in case anyone else wants to tackle this... auto01.zip

Username-N00b-is-not-available commented 1 year ago

The problem is because of these lines: https://github.com/Realm667/WolfenDoom/blob/07684f1f78ab0af6ebc967793b7d56d97d9ef1e8/scripts/actors/boulders.zs#L141-L142 Looks like the matrix does not get serialized properly. I know mostly nothing about what gets and what does not get written to savegames, so would need some help here...

x3003 commented 1 year ago

You used gzdoom version 4.11 pre 163, which still had this bug, pre 174 should work as expected.

Username-N00b-is-not-available commented 1 year ago

🤦Thanks... Looks like I'm a Markov chain --- I seem to have zero memory. Deleting the pre163 for good. Sorry for taking your attention over this.