-
Notifications
You must be signed in to change notification settings - Fork 79
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Fix SEQ playing incorrect animation and/or AI game crash on load save.
gModernMap: - Fix incorrect kModernThingEnemyLifeLeech detection for custom dudes. - Fix Nblood hanging on load save in some maps (use no TROR for cansee func). - Dude patrol: Do not try to restart if the marker is not found. - Dude patrol: Force disable stealth flag for multiplayer game
- Loading branch information
1 parent
78f3de6
commit 92eebf5
Showing
5 changed files
with
121 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
92eebf5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: moving the call to
SeqLoadSaveConstruct()
up breaks loading old savegames.I only tested this with the patched NBlood version of What Lies Beneath and my custom branch that rebases the WLB changes to the latest code (I'll hopefully release that soon), but I'd be surprised if this didn't affect the base game as well.
Is there a way to detect old savegames, so one could call
SeqLoadSaveConstruct()
afterPlayerLoadSaveConstruct();
inestead of at the beginning, (only) in that case?92eebf5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I doubt you can detect old savegames (if you really need to), unless you have nblood build info
92eebf5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your reply!
I investigated a bit more, and it would be possible by using the
BYTEVERSION
define from common_game.h, which should be be increased each time the savegame format is broken.I implemented loading older savegames in DanielGibson@7b50d10, which increased BYTEVERSION and can load savegames taken with the nblood version shipped with WLB. Doing this in normal NBlood is probably not possible, because with that change loading savegames created after your commit (that still use BYTEVERSION 105) doesn't work.
In case anyone is interested in the other changes from and for WLB, see the whole branch: https://github.com/DanielGibson/NBlood/commits/wlb-changes-rb/
The original WLB source as released by BloodyTom is pretty much this: DanielGibson@efd9f32
(he released a zip with the source and I figured out what commit it was based on and applied the changes there)
92eebf5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@NoOneBlood If you do something that breaks savegames, you need to bump BYTEVERSION. Or just don't break them haphazardly.
@DanielGibson Thanks for shepherding the WLB changes. We NBlood developers do not want mod-specific forks to exist, because it inconveniences non-Windows users, and inhibits players from benefiting from subsequent updates the port receives. I wish modders such as BloodyTom would reach out to us during development before publishing their work that way. For now, if you could help them prepare a standard .diff/.patch file with the changes and include it with the mod itself, that would make things a bit easier for everyone. (It would also be good to clean up the diff, such as by surrounding disabled code with
#if 0
rather than adding//
to every line.) Long-term, we can investigate what modding capabilities the port needs so no exe changes are needed at all.92eebf5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FWIW, the change @NoOneBlood did there made a lot of sense as far as I can tell from the comment (I'm not very familiar with how Blood or the Build Engine in general works), but yeah, the BYTEVERSION should've been bumped.
I think WLB has four different kinds of changes:
kMaxLevels
) - I assume NBlood could just do the same change without breaking the base game or other mods (of course I can't be sure as I'm not very familiar with the source). Maybe just increase it to 64 while you're at it.zLevelNames[][]
in blood/src/menu.cpp) 16 was hardcoded instead of usingkMaxLevels
. That caused an assertion to trigger that BloodyTom just commented out, I fixed it properly by usingkMaxLevels
there.#ifdef BLOOD_WLB
or similar?playerSizeShrink()
,playerSizeGrow()
, call toactFireVector() in
FirePitchfork()`).For those that are necessary, I'm not sure what NBlood could do to allow mods achieving the same without changing the code.
For now I could hide them behind
#ifdef BLOOD_WLB
#ifdef BLOOD_WLB
I'll try to get in touch with BloodyTom and ask him if he wants my fixes and if he's interested in handling this better in the future, by cooperating with you.
As far as I know (I think it was mentioned in the README?) he is no programmer, which explains why his changes are a bit hacky - and it also means he probably doesn't know what a diff is or how to create one.
Would you be interested to get the changes for WLB + my fixes upstream, with the WLB-specific code hidden behind
#ifdef BLOOD_WLB
so they're only compiled in when building withmake BLOOD_WLB=1
or similar?By the way, regarding non-Windows platforms, I couldn't use the Linux binary provided by BloodyTome because my distro provides different versions of libflac and libvpx than the ones he built against.
libvpx can thankfully be disabled with
USE_LIBVPX=0
(and isn't used by WLB anyway), but libflac can't be disabled. I'd suggest using the single-header libdr_flac.h
instead: https://github.com/mackron/dr_libs