- removed dummy UClasses (no longer needed)
- removed file header comments (not used)
- removed duplicated function documentation in cpp files
- documentation cleanup, punctuation, spelling etc.
- pragma once include guards (now work on all platforms)
- relative public includes (are auto-discovered by UBT)
- fixed too many/too few line breaks
- deleted empty files
- missing override
- NULL to nullptr
[CL 2305058 by Max Preussner in Main branch]
This is controlled by the macro "WITH_CASE_PRESERVING_NAME", which is currently just set to "WITH_EDITORONLY_DATA" so that it works in editor builds (and UHT).
Added an extra NAME_INDEX entry to FName to store a second string table index for a case-variant string. The previous Index value (now called ComparisonIndex) is still used for comparison purposes (as FNames are still case-insensitive).
The Init process for an FName now works like this:
1) It will find or add a string table entry for the given string (not matching case) - this entry index is stored in ComparisonIndex.
2) It will then compare the string table entry string against the given string (matching case) to see if it also needs to add a case-variant entry for the FName.
3) If it does, it finds or adds a second string table entry (matching case) for the string - this entry index is stored in DisplayIndex.
Hard-coded FNames (those listed in UnrealNames.h) do not support case-variants (due to existing network replication rules for hard-coded FNames), so they skip steps 2 and 3.
I added FMinimalName, which is the same size as FName was previously. This shouldn't really be used (and as such, is deliberately awkward to make/use) as it loses the case-preserving behaviour of FName, however it was required for some things (like stats) that had a hard-coded upper limit on FName size.
I added FScriptName, which always contains the extra display index (even when WITH_CASE_PRESERVING_NAME is disabled). This is used by Blueprint bytecode, as the types used by Blueprint bytecode must be a consistent size between all build configurations.
Other changes:
- Fixed up any places that were passing an Index into the FName constructor which was supposed to take an EName.
- Some places were doing this to make the number unique when replicating an object, but this was losing the case-variant information, so I had to fix them.
- FName will now assert if the EName constructor is used with an value outside the range of hard-coded FNames.
- Ensured that assets, actors, and blueprint components could all be renamed in a way that only changed their case, and that these changes were correctly persisted.
- Added FLinkerNamePairKeyFuncs and TLinkerNameMapKeyFuncs for use with TSet and TMap.
- These allow ULinkerSave and ULinkerLoad to correctly write out case-variants for FNames, and also fixes an issue where the linker would erroneously write out duplicate string table entries for FNames which had a different number (causing package bloat).
- Bumped VER_MIN_SCRIPTVM_UE4 so that all Blueprint bytecode is recompiled using FScriptName.
ReviewedBy Robert.Manuszewski, Gil.Gribb
[CL 2300730 by Jamie Dale in Main branch]
There is now a consistent set of methods for module loading, unloading and lookup that all behave in the same expected way.
- renamed GetModuleInterface to GetModule and made it not assert
- removed GetModuleInterfaceRef
- namespace enums to enum classes, NULL to nullptr
- moved important public methods to the top, so they're easier to discover
- added missing & improved existing documentation
- cleaned up existing use cases
[CL 2109936 by Max Preussner in Main branch]
Write out the port in IPv6 address strings
Add checks to guard against problems when users sign out
Set the port when converting secure addresses
[CL 2096445 by Ryan Gerleve in Main branch]
On close, the socket now sets itself to INVALID_SOCKET and won't try to close if it's already an INVALID_SOCKET (same as IPv4 BSD sockets)
[CL 2082603 by Ryan Gerleve in Main branch]
#proj core
#branch UE4
#summary Remove all bAutoDeleteSelf and bAutoDeleteRunnable usage from the runnable.
#codereview Robert.Manuszewski
[CL 2070165 by Mikolaj Sieluzycki in Main branch]
#change All headers in Classes, Public and Private are treated as candidates for UHT.
#change All candidate headers are scraped for the presence of a UCLASS, USTRUCT, UENUM, UINTERFACE and UDELEGATE at the start of a line and are only passed to UHT if one of these is present.
#fix Removed UENUMs from various games which were picked up as false positives by UBT but were never intended to be parsed by UHT.
#fix SocketSubsystem.h was including itself.
#codereview robert.manuszewski
[CL 2058796 by Steve Robb in Main branch]
XP support is off by default and currently only supported for win32 builds using Visual Studio 2013
I have updated a lot of platform atomic calls to use 32 bits as 64 is not supported on windows xp.
Added extra checks in d3d11 to ensure that these cached shaders are for that platform.
Added a validity check to the TextInputMethodSystem before we try and process input.
128 bit atomics disabled for header generator. Causes issues with xp compilation. Reviewed by Steve Robb.
Texture Memory size stats changed to from bytes to kilobytes to satisfy dependency for 32 bit atomics.
Note: OpenGL is the default RHI for WindowsXP.
[CL 2057787 by Terence Burns in Main branch]
#ios
* fix for shutdown crash on iOS, no longer try to stop the socket subsystem if we aren't on the main thread
TTP328922
[CL 2045351 by Peter Sauerbrei in Main branch]
- Start filling out the OSS session interface for Xbox Live, based on Lionhead's code. Basic flow is working: Create, Join, Find, Destroy etc all work through Xbox Live
- Added an IPv6 socket subsystem, also based on Lionhead's code (required for Xbox One)
- FURL constructor can now parse IPv6 hosts, IPv6 address must be enclosed in square brackets.
- Added new async item class, FOnlineAsyncItemGenericCallable, which makes is easy to use lambdas as async tasks.
- Temporarily set the ShooterGame defaults so that bIsLANMatch is true. This is to avoid communicating with Xbox Live during the first (non-multiplayer) cert pass.
- The ShooterGame server list would work over Xbox Live if the console menu exposed it. Leaving it off for first cert pass.
#codereview john.pollard, josh.markiewicz, sam.zamani
[CL 2041872 by Ryan Gerleve in Main branch]