• src/doors/syncconquer/.gitignore PROVENANCE.md src/doors/syncconquer/v

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wed Jul 8 01:33:29 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/cfd02954727c8684827d5908
    Added Files:
    src/doors/syncconquer/.gitignore PROVENANCE.md src/doors/syncconquer/vanilla/CMakeLists.txt CMakePresets.json License.txt README.md src/doors/syncconquer/vanilla/cmake/BuildIcons.cmake ClangFormat.cmake Compilers.cmake FindClangFormat.cmake FindOpenAL.cmake FindSDL2.cmake Findiconutil.cmake GitWatcher.cmake ProductVersion.cmake VersionInfo.in VersionResource.rc i686-mingw-w64-toolchain.cmake x86_64-mingw-w64-toolchain.cmake src/doors/syncconquer/vanilla/common/CMakeLists.txt _diptabl.cpp alloc.cpp audio.h auduncmp.cpp auduncmp.h b64pipe.cpp b64pipe.h b64straw.cpp b64straw.h base64.cpp base64.h bfiofile.cpp bfiofile.h bitfields.h blowfish.cpp blowfish.h blowpipe.cpp blowpipe.h blwstraw.cpp blwstraw.h buff.cpp buff.h buffer.cpp buffer.h buffglbl.cpp ccfile.cpp ccfile.h cdfile.cpp cdfile.h cliprect.cpp cliprect.h combuf.cpp combuf.h connect.cpp connect.h connmgr.h control.cpp control.h crc.cpp crc.h crew.cpp crew.h cstraw.cpp cstraw.h debugstring.cpp debugstring.h delay.cpp dipthong.cpp dipthong.h drawbuff.cpp drawbuff.h drawline.cpp drawline.h drawmisc.cpp drawmisc.h endianness.h face.cpp face.h fading.cpp fading.h fakesock.h field.cpp field.h file.cpp file.h file_posix.cpp file_win.cpp filepcx.cpp filepcx.h filetemp.h fixed.cpp fixed.h font.cpp font.h framelimit.cpp framelimit.h ftimer.h gadget.cpp gadget.h gbuffer.cpp gbuffer.h getshape.cpp gitinfo.cpp.in gitinfo.h graphicsviewport.cpp graphicsviewport.h hsv.cpp hsv.h iff.cpp iff.h ini.cpp ini.h int.cpp int.h internet.cpp internet.h interpal.cpp interpal.h ipx.h ipxaddr.cpp ipxaddr.h irandom.cpp irandom.h keybuff.cpp keyframe.cpp keyframe.h lcw.cpp lcw.h lcwpipe.cpp lcwpipe.h lcwstraw.cpp lcwstraw.h linear.cpp linear.h link.cpp link.h listnode.h load.cpp macros.h memflag.h memrev.cpp memrev.h misc.cpp misc.h miscasm.h mixfile.cpp mixfile.h modemreg.h mp.cpp mp.h mssleep.h newdel.cpp noinit.h packet.cpp packet.h palette.cpp palette.h palettec.cpp palettec.h paths.cpp paths.h paths_posix.cpp paths_win.cpp pipe.cpp pipe.h pk.cpp pk.h pkpipe.cpp pkpipe.h pkstraw.cpp pkstraw.h queue.h ramfile.cpp ramfile.h random.cpp random.h rawfile.cpp rawfile.h readline.cpp readline.h rect.cpp rect.h region.h remapcontrol.h rgb.cpp rgb.h rndstraw.cpp rndstraw.h rotates.h sdl_keymap.h search.h settings.cpp settings.h sha.cpp sha.h shape.cpp shape.h shapebtn.h shapipe.cpp shapipe.h shastraw.cpp shastraw.h smartptr.h sockets.h soscodec.cpp soscomp.h sound.h soundint.h soundio.cpp soundio_common.cpp soundio_imp.h soundio_null.cpp soundio_openal.cpp stamp.cpp straw.cpp straw.h timer.cpp timer.h timerdwn.cpp tobuff.cpp toggle.cpp toggle.h unvqbuff.cpp unvqbuff.h utf.h utfargs.h utracker.h vector.cpp vector.h video.h video_ddraw.cpp video_ddraw.h video_null.cpp video_sdl1.cpp video_sdl2.cpp vqaaudio.h vqaaudio_dsound.cpp vqaaudio_null.cpp vqaaudio_openal.cpp vqacaption.h vqaconfig.cpp vqaconfig.h vqadrawer.cpp vqadrawer.h vqafile.h vqaloader.cpp vqaloader.h vqapalette.cpp vqapalette.h vqatask.cpp vqatask.h vqaver.cpp vqaver.h winasm.cpp winasm.h wincomm.h windows.cpp winhide.cpp winstub.cpp winstub.h wsa.cpp wsa.h wsproto.cpp wsproto.h wspudp.cpp wspudp.h ww_win.h wwalloc.h wwfile.h wwkeyboard.cpp wwkeyboard.h wwkeyboard_null.cpp wwkeyboard_sdl1.cpp wwkeyboard_sdl1.h wwkeyboard_sdl2.cpp wwkeyboard_sdl2.h wwkeyboard_sdl32.cpp wwkeyboard_win32.cpp wwkeyboard_win32.h wwlib32.h wwmem.h wwmouse.cpp wwmouse.h wwstd.h xordelta.cpp xordelta.h xpipe.cpp xpipe.h xstraw.cpp xstraw.h src/doors/syncconquer/vanilla/redalert/CMakeLists.txt aadata.cpp abstract.cpp abstract.h adata.cpp aircraft.cpp aircraft.h anim.cpp anim.h audio.cpp bar.cpp bar.h base.cpp base.h bbdata.cpp bdata.cpp bench.cpp bench.h bigcheck.cpp bigcheck.h building.cpp building.h bullet.cpp bullet.h cargo.cpp cargo.h carry.cpp carry.h ccini.cpp ccini.h ccptr.cpp ccptr.h cdata.cpp cell.cpp cell.h checkbox.cpp checkbox.h cheklist.cpp cheklist.h colrlist.cpp colrlist.h combat.cpp compat.h confdlg.cpp confdlg.h conquer.cpp conquer.h const.cpp coord.cpp crate.cpp crate.h credits.cpp credits.h debug.cpp debug.h defines.h dial8.cpp dial8.h dialog.cpp dialog.h dibapi.h dibfile.cpp dibutil.cpp dibutil.h display.cpp display.h dllinterface.cpp dllinterface.h dllinterfaceeditor.cpp dllinterfaceversion.h door.cpp door.h drive.cpp drive.h drop.cpp drop.h edit.cpp edit.h egos.cpp egos.h ending.cpp ending.h event.cpp event.h expand.cpp externs.h face.cpp face.h facing.cpp facing.h factory.cpp factory.h findpath.cpp flasher.cpp flasher.h fly.cpp fly.h foot.cpp foot.h function.h fuse.cpp fuse.h gamedlg.cpp gamedlg.h gauge.cpp gauge.h globals.cpp goptions.cpp goptions.h gscreen.cpp gscreen.h hdata.cpp heap.cpp heap.h help.cpp help.h house.cpp house.h iconlist.cpp iconlist.h iconset.cpp idata.cpp infantry.cpp infantry.h init.cpp inline.h intro.cpp intro.h iomap.cpp ioobj.cpp ipxconn.cpp ipxconn.h ipxgconn.cpp ipxgconn.h ipxmgr.cpp ipxmgr.h jshell.cpp jshell.h language.h layer.cpp layer.h license.txt list.cpp list.h loaddlg.cpp loaddlg.h logic.cpp logic.h map.cpp map.h mapeddlg.cpp mapedit.cpp mapedit.h mapedplc.cpp mapedsel.cpp mapedtm.cpp mapsel.cpp menus.cpp miscasm.cpp mission.cpp mission.h monoc.cpp monoc.h mouse.cpp mouse.h mplayer.cpp msgbox.cpp msgbox.h msglist.cpp msglist.h netdlg.cpp nulldlg.cpp object.cpp object.h odata.cpp options.cpp options.h overlay.cpp overlay.h power.cpp power.h profile.cpp queue.cpp radar.cpp radar.h radio.cpp radio.h rawolapi.cpp rawolapi.h reinf.cpp rules.cpp rules.h savedlg.h saveload.cpp scenario.cpp scenario.h score.cpp score.h scroll.cpp scroll.h sdata.cpp seditdlg.cpp seditdlg.h sendfile.cpp session.cpp session.h shapebtn.cpp sidebar.cpp sidebar.h sidebarglyphx.cpp sidebarglyphx.h slider.cpp slider.h smudge.cpp smudge.h sounddlg.cpp sounddlg.h special.cpp special.h stage.h startup.cpp statbtn.cpp statbtn.h stats.cpp super.cpp super.h tab.cpp tab.h taction.cpp taction.h target.cpp target.h tdata.cpp team.cpp team.h teamtype.cpp teamtype.h techno.cpp techno.h template.cpp template.h terrain.cpp terrain.h tevent.cpp tevent.h textbtn.cpp textbtn.h theme.cpp theme.h tile.h tooltip.cpp tooltip.h tracker.cpp trigger.cpp trigger.h trigtype.cpp trigtype.h turret.cpp turret.h txtlabel.cpp txtlabel.h type.h udata.cpp unit.cpp unit.h vdata.cpp version.cpp version.h vessel.cpp vessel.h visudlg.cpp visudlg.h vortex.cpp vortex.h warhead.cpp warhead.h weapon.cpp weapon.h winstub.cpp wolstrng.cpp wolstrng.h src/doors/syncconquer/vanilla/resources/CMakeUserPresets.json.example src/doors/syncconquer/vanilla/resources/remaster_mods/Vanilla_RA/ccmod.json src/doors/syncconquer/vanilla/resources/remaster_mods/Vanilla_TD/GameConstants_Mod.xml ccmod.json src/doors/syncconquer/vanilla/resources/vanillara_icon.svg vanillatd_icon.svg
    Log Message:
    syncconquer: vendor Vanilla Conquer @ 7f351daed0 (redalert+common)

    Vendor the Vanilla Conquer subset needed for the SyncConquer door
    (Red Alert): CMakeLists.txt, CMakePresets.json, License.txt,
    README.md, cmake/, common/, redalert/, resources/, pinned at upstream
    commit 7f351daed0c19d7c4764dc4ebae1a70c7809ac1f. tiberiandawn/,
    tests/, tools/, scripts/, and .github/ are intentionally left out
    (syncdawn is a deferred future title).

    Three local patches on top, tracked in PROVENANCE.md:

    1. common/CMakeLists.txt: add wwkeyboard_null.cpp to the
    no-video-backend source list -- upstream pairs each video backend
    with a keyboard backend but has none for the headless/null branch,
    so vanillara otherwise fails to link.
    2. common/wwkeyboard_null.cpp: new null keyboard backend satisfying
    CreateWWKeyboardClass() for headless builds (template for the M2
    terminal keyboard shim).
    3. CMakeLists.txt: guard add_subdirectory(tiberiandawn) with
    BUILD_VANILLATD OR BUILD_REMASTERTD, and add_subdirectory(tools)
    with BUILD_TOOLS, so the vendored subset configures without those
    directories present.

    Verified on Linux/gcc14: `cmake -B build -DBUILD_VANILLATD=OFF
    -DSDL2=OFF -DOPENAL=OFF` configures cleanly and `cmake --build build`
    links target VanillaRA -> build/vanillara (~21MB). A 5s smoke run with
    no game assets exits 137 (SIGKILL via timeout while still alive),
    confirming startup and the null backends work without asserting or
    crashing.

    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net