Skip to content

Reject out-of-bounds field-of-view origins - #199

Open
mmporong wants to merge 2 commits into
libtcod:mainfrom
mmporong:fix/initialize-fov-buffer
Open

mmporong wants to merge 2 commits into
libtcod:mainfrom
mmporong:fix/initialize-fov-buffer

Conversation

@mmporong

@mmporong mmporong commented Oct 31, 2026 •

Copy link
Copy Markdown

Reject out-of-bounds points of view in tcod.map.compute_fov with ValueError instead of continuing after a RuntimeWarning with an uninitialized visibility buffer.

The initial change zero-initialized the temporary buffer. Following the maintainer review, the PR now follows the existing deprecation warning: pov must satisfy 0 <= pov[0] < transparency.shape[0] and 0 <= pov[1] < transparency.shape[1]; otherwise, compute_fov raises ValueError. The documentation and regression tests now cover four out-of-bounds origins and the four valid boundary corners.

HexDecimal reviewed and approved commit d1e182c after these changes. This description update only aligns the PR text with the approved head and does not change the code.

The initial wheel-based validation reported 9 passing map tests. Those results apply to the initial zero-initialization patch, not to the later invalid-origin change. I have not rerun the updated head locally.

@HexDecimal HexDecimal left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The results of compute_fov with an out-of-bounds pov are both undocumented and deprecated. If necessary, the recommend changes are informed by the deprecation warning itself which is to convert its warning into an error. Defining the previously undefined behavior in the way this pull request does ironically adds technical debt to the codebase, but that can be acceptable if the change is more intentional and the documentation is updated to match.

The lack of context awareness around this PR implies a poor use of automation tools. Ideally these would be used to help code match the documentation or fix major bugs, this is neither case. Raising an issue may have been preferable to a pull request.

Non-English commit messages are tricky to review. Most Git tools do not have auto-translations. I'm not quite sure what to do about this yet.

@codecov

codecov Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.26%. Comparing base (d8301a2) to head (d1e182c).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #199      +/-   ##
==========================================
+ Coverage   86.24%   86.26%   +0.01%     
==========================================
  Files          29       29              
  Lines        7679     7680       +1     
==========================================
+ Hits         6623     6625       +2     
+ Misses       1056     1055       -1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@HexDecimal HexDecimal left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes are good. Everything I'd want updated were updated.

@HexDecimal

Copy link
Copy Markdown
Collaborator

Ignore the current CI build failures. They are not relevant to the current PR.

@mmporong mmporong changed the title Initialize the FOV buffer for out-of-bounds points of view Reject out-of-bounds field-of-view origins Nov 2, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants