Merge branch 'develop'

This commit is contained in:
Athanasius 2022-09-27 13:56:22 +01:00
commit 6f8158fbc8
No known key found for this signature in database
GPG Key ID: 8C392035DD80FD62

View File

@ -251,10 +251,14 @@ so that you are aware of any changes to Schemas.
#### `horizons` and `odyssey` flags #### `horizons` and `odyssey` flags
Where the Schema allows for them, `horizons` and `odyssey` keys SHOULD be Where the Schema allows for them, `horizons` and `odyssey` keys **MUST** be
added with appropriate boolean values. `null` is not allowed in the values, added with appropriate boolean values. `null` is not allowed in the values,
so **if you cannot determine a value do not include that key at all**. so **if you cannot determine a value do not include that key at all**.
To emphasise that, *in the case where there is no `Odyssey` boolean in the
`LoadGame` event* **DO NOT INCLUDE IT IN THE EDDN MESSAGE**. No, not with a
`false` value. **DO NOT INCLUDE IT**.
The only source of these is the `LoadGame` event from journals. It's present The only source of these is the `LoadGame` event from journals. It's present
both in the PC local files and the CAPI journal data. If you're both in the PC local files and the CAPI journal data. If you're
composing a shipyard or outfitting message from CAPI data then it is composing a shipyard or outfitting message from CAPI data then it is
@ -263,42 +267,48 @@ possible to synthesise the `horizons` flag. For now consult the function
[EDMarketConnector:plugins/eddn.py](https://github.com/EDCD/EDMarketConnector/blob/stable/plugins/eddn.py) [EDMarketConnector:plugins/eddn.py](https://github.com/EDCD/EDMarketConnector/blob/stable/plugins/eddn.py)
for a method to achieve this. for a method to achieve this.
As of 2022-01-29 the following was observed for the `LoadGame` events as As of 2022-09-27 the following was observed for the `LoadGame` events as
present in CAPI-sourced Journal files (which were confirmed to match the present in CAPI-sourced Journal files (which were confirmed to match the
PC-local files for these events): PC-local files for these events):
- PC Odyssey Client, game version `4.0.0.1100`: - PC Odyssey Client, game version `4.0.0.1450`:
```json ```json
{ "timestamp":"2022-01-29T16:17:02Z", "event":"LoadGame", "FID":"<elided>", "Commander":"<elided>", "Horizons":true, "Odyssey":true,... { "timestamp":"2022-09-27T09:47:35Z", "event":"LoadGame", "FID":"<elided>", "Commander":"<elided>", "Horizons":true, "Odyssey":true, ...
``` ```
- PC Horizons Client, game version `3.8.0.404`, no `Odyssey` key was - PC Horizons 4.0 Client, game version `4.0.0.1450`:
```json
{ "timestamp":"2022-09-27T11:25:45Z", "event":"LoadGame", "FID":"<elided>", "Commander":"<elided>", "Horizons":true, "Odyssey":false, ...
```
- PC Horizons Client, game version `3.8.0.407`, no `Odyssey` key was
present: present:
```json ```json
{ "timestamp":"2022-01-29T16:15:07Z", "event":"LoadGame", "FID":"<elided>", "Commander":"<elided>", "Horizons":true,... { "timestamp":"2022-09-27T11:28:53Z", "event":"LoadGame", "FID":"<elided>", "Commander":"<elided>", "Horizons":true, ...
``` ```
- PC 'base' Client, game version `3.8.0.404`, no `Odyssey` key was - PC 'base' Client, game version `i3.8.0.407`, no `Odyssey` key was
present: present:
```json ```json
{ "timestamp":"2022-01-29T16:11:54Z", "event":"LoadGame", "FID":"<elided>", "Commander":"<elided>", "Horizons":false,... { "timestamp":"2022-09-27T11:31:32Z", "event":"LoadGame", "FID":"<elided>", "Commander":"<elided>", "Horizons":false, ...
``` ```
Do not attempt to use the value(s) from a `Fileheader` event as the semantics Do not attempt to use the value(s) from a `Fileheader` event as the semantics
are different. With clients 3.8.0.404 and 4.0.0.1100 the following was observed: are different. With clients 3.8.0.407 and 4.0.0.1450 the following was observed:
| Game Client | Fileheader | LoadGame | | Game Client | Fileheader | LoadGame |
| ---------------: | ---------------- | ------------------------------: | | ---------------: |-----------------|---------------------------------:|
| Base | "Odyssey":false | "Horizons":false | | Base | "Odyssey":false | "Horizons":false |
| Horizons | "Odyssey":false | "Horizons":true | | Horizons 3.8 | "Odyssey":false | "Horizons":true |
| Horizons 4.0 | "Odyssey":true | "Horizons":true, "Odyssey":false |
| Odyssey | "Odyssey":true | "Horizons":true, "Odyssey":true | | Odyssey | "Odyssey":true | "Horizons":true, "Odyssey":true |
NB: The 'Base' client appears to simply be the Horizons client with any NB: The 'Base' client appears to simply be the Horizons client with any
Horizons-only features disabled. Horizons-only features disabled.
- In the `Fileheader` event it's indicating whether it's an Odyssey game client. - In the `Fileheader` event the `Odyssey` flag is indicating whether it's a
- In the `LoadGame` it's indicating whether Horizons and/or Odyssey features are `4.0` game client.
active, but in the non-Odyssey game client case you only get the Horizons - In the `LoadGame` event the `Horizons` and `Odyssey` flags indicate if those
boolean. features are active, but in the `3.8` game client case you only get the
`Horizons` boolean.
#### Other data Augmentations #### Other data Augmentations
Some schemas mandate that extra data be added, beyond what is in the source Some schemas mandate that extra data be added, beyond what is in the source