Skip to content

Fix Cydonia mission startup in separate and shared co-op campaigns - #177

Merged
xcomcoopdev merged 1 commit into
mainfrom
fix/coop-cydonia-start
Aug 30, 2026
Merged

xcomcoopdev merged 1 commit into
mainfrom
fix/coop-cydonia-start

Conversation

@xcomcoopdev

Copy link
Copy Markdown
Collaborator

Summary

Fixes the Cydonia final mission failing to load for the second player in co-op campaigns.

Previously, Cydonia was started through ConfirmCydoniaState, which bypassed the normal ConfirmLandingState co-op mission startup and battle streaming flow. As a result, the initiating player generated the Mars map locally, while the other player never received or loaded it.

Changes

  • Added a dedicated co-op startup path for ConfirmCydoniaState.
  • Added support for both SEPARATE and SHARED campaigns.
  • SEPARATE campaigns now perform the existing two-world craft and squad merge before generating Cydonia.
  • SHARED campaigns now generate Cydonia once on the authoritative host and stream the same battle to the client.
  • Applied the SHARED soldier control split based on ownerPlayerId.
  • Added protection against generating the shared Cydonia map more than once.
  • Preserved the original single-player Cydonia startup behavior.
  • Added harness commands for opening and confirming the real Cydonia confirmation state.

Regression test

Added:

tools/coop_test/test_cydonia_coop_start.py

The regression test covers:

  • Cydonia startup in a SEPARATE co-op campaign.
  • Cydonia startup in a SHARED co-op campaign.
  • Both players receiving a live battle.
  • Both players loading the same mission type.
  • Matching map dimensions on both machines.
  • Matching map fingerprints on both machines.
  • Both players reaching BriefingState.

Testing

The new regression test was run successfully in both campaign modes.

Result:

  • SEPARATE campaign: passed
  • SHARED campaign: passed

@xcomcoopdev
xcomcoopdev merged commit a7106c8 into main Aug 30, 2026
11 checks passed
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.

1 participant