Phobos YR Engine Extension

Github All Releases Docs status Workflow license

Phobos is a WIP community project providing a set of new features and fixes for Yuri’s Revenge based on modified YRpp and Syringe to allow injecting code. It’s meant to accompany Ares rather than replace it, thus it won’t introduce incompatibilities.

For now you can discuss the project at a dedicated channel on C&C Mod Haven (which is my C&C modding server).

Building and Usage (Windows)

  1. Install Visual Studio with “Desktop development with C++” workload and “C++ Windows XP Support for VS 2017 (v141) tools” individual component and clone this repo recursively (that will also clone YRpp).

  2. Open the solution file in VS and build it (DevBuild build config is recommended).

  3. Upon build completion place the resulting Phobos.dll from folder named identical to the used build config in your YR directory and launch Syringe targeting your YR executable (usually gamemd.exe).

You can also get a nightly build for those who want to help testing Phobos features as soon as they are done. Those versions are bleeding edge (don’t redistribute them outside of testing!) and have build information (commit and branch/tag) in them which is displayed ingame and can’t be turned off. There are two ways get a nightly build.

  • Get an artifact via nightly.link. This is a service that allows guests to download automatic builds from GitHub. You can get a build for the latest successful (marked with a green tick) develop branch commit via this link, or get a build for any up-to-date pull request via an automatic comment that would appear in it.

  • Get an artifact manually from GitHub Actions runs. You can get an artifact for a specific commit which is built automatically with a GitHub Actions workflow, just press on a green tick, open the workflow, find and download the build artifact. This is limited to authorized users only.

Documentation

The documentation can be found at here @ Read the Docs and is split by a few major categories (similiar to Ares docs), each represented with a page on the sidebar. Each page has it’s contents grouped into multiple subcategories, be it buildings, technotypes, infantry, superweapons or something else.

You can switch between versions in the bottom left corner, as well as download a PDF version.

How to read code snippets

; which section the params should be in
; can be a freeform name - in this case the comment would explain what it is
; if no comment to be found - then it's a precise name
[SOMENAME] ; BuildingType
; KeyName=DefaultValue ; accepted type with optional explanation
; if there's nothing to the right of equals sign - the default value is empty/absent
UIDescription=<none> ; CSF entry key

Credits

Developers

  • Belonit (Gluk-v48), Metadorius (Kerbiter) - project authors

  • Thrifinesma (Uranusian), SEC-SOME (secsome) - co-developers

Contribution

  • Belonit (Gluk-v48) - project creator, disable empty spawn positions, custom gamemd icon with Command Line, full-color non-paletted PCX, SpySat, BigGap, TransactMoney, PCX Loading Screen, custom DiskLaser radius, extended tooltips, building upgrades enhancement, hide health bar, Sidebar.GDIPosition, help with CellSpread, Blowfish.dll-related errors fix, zero size map previews

  • Metadorius (Kerbiter) - SHP debris respect Shadow, building upgrades enhancement, extended tooltips, selection priority filtering, TurretOffset enhancement, customizable ore spawners, select next idle harvester hotkey, interceptor enhancement, zero size map previews, nightly build workflow, overhauled Unicode font, docs maintainer, organisational, maintenance and public relations work

  • misha135n2 - YRpp edits

  • tomsons26 - all-around help, assistance and guidance in reverse-engineering, YR binary mappings

  • CCHyper - all-around help, current project logo, assistance and guidance in reverse-engineering, YR binary mappings

  • Ares developers - YRpp and Syringe which are used, save/load, project foundation and generally useful code from Ares, unfinished RadTypes code

  • DCoder - unused deployer fixes that are now included in Phobos

  • ZΞPHYɌUS - win/lose themes code

  • ayylmao - help with docs

  • SMxReaver - help with docs

  • 4SG - help with docs

  • wiktorderelf - overhauled Unicode font

  • Thrifinesma (Uranusian) - Mind Control enhancement, custom warhead splash list, harvesters counter, promoted spawns, shields, death after dead fix, overhauled Unicode font, help with docs

  • SEC-SOME (secsome) - debug info dump hotkey, refactoring & porting of Ares helper code, introducing more Ares-derived stuff, disguise removal warhead, Mind Control removal warhead, Mind Control enhancement, shields

  • Otamaa (BoredEXE) - help with CellSpread, ported and fixed custom RadType code, togglable ElectricBolt bolts, customizable Chrono Locomotor properties per TechnoClass

  • E1 Elite - TileSet 255 and above bridge repair fix

  • FS-21 - Dump Object Info enhancements, Powered.KillSpawns, Spawner.LimitRange, ScriptType Actions 71, 72 & 73, MC deployer fixes, help with docs

  • AutoGavy - interceptor logic, warhead critical damage system

  • Xkein - general assistance, YRpp edits

  • thomassneddon - general assistance

  • Starkku - Warhead shield penetration & breaking, strafing aircraft weapon customization

  • SukaHati (Erzoid) - Minimum interceptor guard range

Thanks to everyone who uses Phobos, tests changes and reports bugs! You can show your appreciation and help project by displaying the logo (monochrome version can be found here) in your client/launcher, contributing or donating to us via links on the right and the Sponsor button on top of the repo.