Skip to content

fix(containment): allow shared network exits - #254

Merged
fbraz3 merged 1 commit into
fbraz3:mainfrom
arazmj:fix/shared-network-container-exit
Aug 16, 2026
Merged

fix(containment): allow shared network exits#254
fbraz3 merged 1 commit into
fbraz3:mainfrom
arazmj:fix/shared-network-container-exit

Conversation

@arazmj

@arazmj arazmj commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

Description

Allow units stored in a shared tunnel or cave network to exit through another
endpoint controlled by the same player.

The non-retail containment guard required the requested exit object to be the
unit's exact containedBy object. Tunnel passengers are stored by the shared
network, so valid exit commands through a different tunnel returned before
containment logic could process them.

Changes

  • recognize tunnel and cave containment capabilities
  • permit exits between same-player endpoints of the same shared container type
  • continue rejecting unrelated containers and enemy-controlled endpoints
  • apply the fix to Zero Hour and Generals

Validation

  • built Zero Hour and Generals successfully with the macOS Vulkan preset
  • traced the shared input path through the inventory control bar and game-logic
    dispatch to both containment exit functions
  • verified the guard remains strict for ordinary non-network containers

@arazmj

arazmj commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator Author

Additional real-world validation: completed another multiplayer game with two macOS GeneralsX clients and one deterministic Windows client. Map loading, shared tunnel exits, sound, and synchronization all remained working with no reported problems.

@fbraz3

fbraz3 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

Could you please resolve the conflicts? thanks!

Permit same-player tunnel and cave endpoints to release units stored by another endpoint while preserving strict rejection for unrelated containers.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@arazmj
arazmj force-pushed the fix/shared-network-container-exit branch from 7722bde to 248ceb7 Compare August 16, 2026 14:26
@arazmj

arazmj commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator Author

Resolved: the branch is rebased onto current main, conflicts are fixed, and the PR is mergeable. I also tightened the shared-network check based on cave-network review feedback: both endpoints must now expose the same non-null shared contained-items list, so distinct CaveIndex/TunnelTracker networks remain isolated. Current CI is fully green for Linux/macOS builds and replays.

@fbraz3
fbraz3 merged commit d1997b3 into fbraz3:main Aug 16, 2026
8 checks passed
@Caball009

Copy link
Copy Markdown

A little later but TSH fixed this as well: https://github.com/TheSuperHackers/GeneralsGameCode/pull/3136/changes

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.

3 participants