Conversation
|
This is a must object for the upcoming release. Hi @Districh-ru , do you think we can rework this pull request or would it be better to just from scratch? Also, we go updated images. |
|
Hi @ihhub |
Hi @Districh-ru , We should use images provided in this message on Discord - https://discord.com/channels/733093692860137523/1070399399127167106/1456756481612316693 I am attaching the archive here: |
|
Funny MSVC/clang-tidy errors:
|
|
How about fire spells under water? |
|
Lots of cool ideas here. I think any one you decide on will fit. Here are some more ideas you can take or leave: We'd also need to decide if and how these changes should apply to we in hero's army, both hired and summoned. I also think we don't need to limit ourselves to reusing pre-existing spells and effects, in other words, we could make a new maelstrom-specific status for these we, and this status could, or could not, ensure the changes are exclusive to the neutral we. As a side note in case anyone brings it up, these effects don't make sense for we in the moat since there's less water or some magical explanation 🤷 |
|
Go ahead, set time limit, i. e. 6 turns. If it expires, all living troops (undead and elementals not count) are insta-killed. |
|
Let's push these changes to the next release as it still needs a lot of refinement. |
|
Hi @Districh-ru , can we please do the following to progress with this pull request:
|
It should be maelstrom. |
Hi @ihhub, done. |
ihhub
left a comment
There was a problem hiding this comment.
Hi @Districh-ru , I left few more comments here. Can you please take a look at them?
| } | ||
|
|
||
| std::copy_n( palette.begin(), paletteSize, PaletteHolder::instance().gamePalette.begin() ); | ||
| auto & gamePalette = PaletteHolder::instance().gamePalette; |
There was a problem hiding this comment.
This function shouldn't have any logic except copying the whole palette. Here we are making some changes in the copied palette. We modified palettes in pal.cpp. Could you please explain why we need this change?
There was a problem hiding this comment.
pal.cpp and image.cpp have only changed palette mappings (what color to take instead of the given), but here we add the new colors (copies of cycling colors) to properly work in some engine functions functions.
Previously we did not add any colors to the palette but only remap them using "palettes" in pal.cpp and almost the same ones in image.cpp (in future we should reduce this duplication of palette mappings).
The GetPALColorId(), ApplyAlpha(), AlphaBlit() and some others relies on the game palette (vector of RGB values for each color), not on the mappings.
Without this change the fade-in/-out will be broken for the new object:

To fix it we will need to update the fheroes2::getGamePalette() function or update its result after every call that will introduce the colors adding operation on every call that is not good.
The problem is that we need to have the exact copy of 231, 232, 233 and 235 colors without cycling.
|
Hi @Districh-ru , I can see that this pull request changes a lot of things and I would like us to move forward with some changes. What we can do is to implement some changes in separate pull requests eventually reducing the length of the modified code here and ease the review of the changes. Therefore, either me or @Districh-ru can create pull requests for the following changes:
Then this pull request would be much easier to handle. What do you think @Districh-ru ? I can handle the creation of separate PRs if needed. |
|
Hi @ihhub, in the next days I'll open a PR with changes in battle_interface (including enum class DelayType : uint8_t) and a PR with hero fading animation fix. And probably a game palette update PR. |
|
Hi @Districh-ru , I am thinking that we are introducing a lot of changes in palettes and logic for it just because of the animation of the object. I think we should explore a possibility how we can achieve the same using the current palette without the need of introduction of new colors. I will have a conversion with @PusshPop in Discord about this. |
All the changes have been taken from #10309
Many thanks to @PusshPop for the Maelstrom object sprites and for the underwater battlefield background!
fheroes2.2026-02-01.09-43-51-373.mp4
To properly represent the objects the water cycling colors were duplicated in the game palette to the non-cycle palette part. The same is done also for the lava cycling colors (it includes changes from #10287):

The new colors are placed in the unused part of palette (color IDs 246-253).
All engine palette conversion tables are updated to support the new colors (the values are mostly taken from their updated cycling colors in the corresponding table).
The Barrel object is also updated with the new palette colors.
TODO: