Skip to content

Add Unreal Engine 5.8 support#463

Open
marekl11 wants to merge 1 commit into
getnamo:mainfrom
marekl11:feat/ue5.8-support
Open

Add Unreal Engine 5.8 support#463
marekl11 wants to merge 1 commit into
getnamo:mainfrom
marekl11:feat/ue5.8-support

Conversation

@marekl11

Copy link
Copy Markdown
Contributor

UE 5.8 changed two engine APIs the plugin depended on:

  1. FJsonObject keys are now UE::FSharedString (FJsonObject::FStringType) instead of FString. Iterating Values yields shared-string keys and the field interface takes FStringView, so code assuming FString keys no longer compiles. (The UE_JSONOBJECT_LEGACY_STRING_KEYS=1 escape hatch changes FJsonObject's layout and is unsafe to define only in a plugin against an installed engine, so keys are handled properly instead.)

  2. StaticEnum() is deleted for namespaced UENUMs such as ESIOConnectionCloseReason, breaking UEnum::GetValueAsString().

Changes are engine-compatibility only; no behavioural or public API changes.

  • uplugin: EngineVersion -> 5.8, VersionName -> 2.12.0
  • SIOJConvert: ToFStringKeyedMap() helper for the bundled converter copy; FJsonObjectWrapper round-trip via SetField; FString(*Key) in key trim/replace
  • SIOJsonObject::GetFieldNames: copy shared-string keys into FString array
  • SIOJRequestJSON / SIOMessageConvert: build FString keys from shared-string keys
  • SocketIONative: map ESIOConnectionCloseReason to a string for the disconnect log

UE 5.8 changed two engine APIs the plugin depended on:

1. FJsonObject keys are now UE::FSharedString (FJsonObject::FStringType)
   instead of FString. Iterating Values yields shared-string keys and the
   field interface takes FStringView, so code assuming FString keys no longer
   compiles. (The UE_JSONOBJECT_LEGACY_STRING_KEYS=1 escape hatch changes
   FJsonObject's layout and is unsafe to define only in a plugin against an
   installed engine, so keys are handled properly instead.)

2. StaticEnum<T>() is deleted for namespaced UENUMs such as
   ESIOConnectionCloseReason, breaking UEnum::GetValueAsString<T>().

Changes are engine-compatibility only; no behavioural or public API changes.

- uplugin: EngineVersion -> 5.8, VersionName -> 2.12.0
- SIOJConvert: ToFStringKeyedMap() helper for the bundled converter copy;
  FJsonObjectWrapper round-trip via SetField; FString(*Key) in key trim/replace
- SIOJsonObject::GetFieldNames: copy shared-string keys into FString array
- SIOJRequestJSON / SIOMessageConvert: build FString keys from shared-string keys
- SocketIONative: map ESIOConnectionCloseReason to a string for the disconnect log
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants