It seems to have simply disregarded the reference (I’m using 4.2).
this is the error the compiler generates:
Error 1 error C2511: 'void ADwarrowsPlayerController::ApplyTownStructureMovement(ATownStructure *,const FTransform)' : overloaded member function not found in 'ADwarrowsPlayerController' F:\Projects\Dwarrows (UE4)\Intermediate\Build\Win64\Inc\Dwarrows\Dwarrows.generated.inl 73
The error is caused by passing your trans variable by value. FTransform is implemented using vector intrinsics, and instances of it need to have 16-byte alignment. I think the stack is guaranteed to be aligned to 16-bytes on Win64 so the compiler can pass it on the stack correctly, but there’s no such guarantee on Win32 (which is what we use for shipping builds).
The solution is to pass the variable by const reference instead: