How swfans/syndwarsfx works
SyndWarsFX is a modern-platform port of the Syndicate Wars game. The principal user workflow is to launch the game, enter its front end, select a campaign or mission, play with the game’s simulation and rendered/audio output, and save or restore progress. The tree also shows separate game-data, networking, and Smacker-video subsystems. The README documents SDL-based platform support and OpenAL/Vorbis audio; sampled source confirms startup, save-screen, and selected platform/media implementations, but not all subsystem call paths.
Main entry points: game.c Game Simulation · femain.c Front End · main.c Application Startup · campaign.c Campaign Flow
Components 19
Game and Front End
- Application Startup
src/main.c - Front End
src/femain.c - Campaign Flow
src/campaign.c - Game Simulation
src/game.c - World and Actors
src/thing.c - Player State
src/player.c - Save Screen
src/festorage.c
Rendering and Media
- Software Renderer
swrendersoft/src/engindrwlstm.c - Sound and Music
bfsoundlib/src/bfaudio.c - Smacker Video
bfsmacklib/src/bfsmack.c
Platform Services
- SDL Video Backend
bflibrary/src/x86-win-sdl2/sscreen.c - Input Backends
bflibrary/src/x86-win-sdl2/smouse.cpp - Mouse State
bflibrary/src/general/mshandler.cpp
Game Support
- Save and Restore
src/game_save.c - Game Data
src/game_data.c - WAD Files
src/wadfile.c - Networking
src/network.c
Other components
- Player
- Original Game Data
Connections 18
- Player → Application Startup: launches
- Application Startup → Game Simulation: initializes via game_initialise
- Player → Front End: uses menus
- Front End → Campaign Flow: selects campaign
- Campaign Flow → Game Simulation: starts missions
- Game Simulation → World and Actors: updates world
- Game Simulation → Player State: updates player
- Player → Save Screen: manages saves
- Save Screen → Save and Restore: writes save
- Original Game Data → Game Data: supplies assets
- Game Data → WAD Files: uses WAD access
- Game Simulation → Software Renderer: renders scene
- Software Renderer → SDL Video Backend: presents frames
- Player → Input Backends: provides input
- Input Backends → Mouse State: updates pointer state
- Game Simulation → Sound and Music: plays audio
- Front End → Smacker Video: plays cutscenes
- Game Simulation → Networking: supports network play