-
-
Notifications
You must be signed in to change notification settings - Fork 382
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
Fix passabilities of objects on map #3756
Conversation
Hi @LeHerosInconnu, could you please test these changes as the highest priority? The changes only work on new games. To speed up the work you could consider modifying I would like to know that we didn't screw gameplay with these changes as the code is re-written from scratch. |
SonarCloud Quality Gate failed. |
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.
Hi @ihhub Since I'm not very familiar with map objects passability rules, I left a few questions here. Would you mind taking a look?
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.
Overall new logic looks good to me, although with such a big PR it's impossible to check every case. Few testing sessions definitely needed.
Hi @oleg-derevenetz , I addressed our comments. Could you please take a look again? |
Hello @ihhub,
It sounds like you are still working on this. |
Hi @LeHerosInconnu , I was addressing code related issues without touching the game's logic. Also right now all reviewers approved the changes so please proceed with testing once the current commit will be ready to be downloaded (in maximum 20 minutes). |
Hi @Branikolog , could you please also help with testing of these changes are they are very critical for the release? |
Hello @ihhub, Here are the differences I've spotted so far. |
Hi @idshibanov and @oleg-derevenetz , based on feedback from @LeHerosInconnu and @Branikolog I modified the logic. I also added temporary field called |
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.
Hi @ihhub no obvious issues found, except one note regarding read & write an obsolete field.
} | ||
|
||
StreamBase & Maps::operator>>( StreamBase & msg, TilesAddon & ta ) | ||
{ | ||
msg >> ta.level >> ta.uniq >> ta.object >> ta.index >> ta.tmp; | ||
uint8_t temp = 0; | ||
|
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 suppose, version check will be added later to not write/read an obsolete field.
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.
Yes. I didn't want to increase this pull request even further.
Hi @LeHerosInconnu and @Branikolog , could you please verify changes again? I addressed the majority of found problems. Not everything is identical to the original game but this implementation must be much closer to the original. |
SonarCloud Quality Gate failed. |
Hi @LeHerosInconnu and @Branikolog , for any other passability issues let's create a separate issue where we could define them. I found that the original game has some flaws in passability as well. |
The original code was based on hacks and it wasn't reliable. The current approach uses an algorithm and a set of conditions to determine passability of a tile.
close #1951
close #3750
close #3745
close #1521
close #496
close #2601
close #2401
close #2364
close #3246