p_saveg: P_UnArchiveSpecials allocates ceiling_t with PU_LEVSPEC instead of PU_LEVEL

Open Beginner friendly
#133 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
rust
Domain
game-dev

Research direction

Compare room/src/doom/p_saveg.rs around line 1968 with the corresponding allocation in p_saveg.c, then inspect nearby special-thinker allocations for context. Confirm whether the Rust code should match C's tag for the unarchived ceiling_t or whether the differing tag is intentional; done means the choice is implemented or documented and save-game behavior remains consistent.

Written by the indexing model from the issue text.

Description

area-p_ceilng area-p_saveg bug kilo-auto-fix kilo-triaged

Context

P_UnArchiveSpecials in room/src/doom/p_saveg.rs deserializes special thinkers (ceilings, floors, platforms, etc.) from a save file.

C behavior

p_saveg.c allocates the ceiling_t block with the zone tag PU_LEVEL.

Rust behavior

The Rust port uses PU_LEVSPEC for consistency with other specials' allocation.

Impact

PU_LEVEL and PU_LEVSPEC differ in when the zone allocator may purge the block. Diverging from C here could change save-load fidelity or zone-fragmentation behavior in edge cases.

Location

room/src/doom/p_saveg.rs:1968 (flagged with // FIXME:).

Suggested fix

Either:

  • match C exactly and use PU_LEVEL for the unarchived ceiling_t, or
  • audit other specials' allocation tags in p_saveg.c and document why the Rust port standardizes on PU_LEVSPEC.
Dominant language
Rust
Stars
3
Forks
4
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sunsided/room

All issues in sunsided/room

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.