x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

UHT/UBT incorrectly uses TEnumAsByte<> in Generated.CPP

I've created an enum and a BlueprintNativeEvent that takes this enum as an argument. Unfortunately when I try to compile the game, compilation fails because the Game.Generated.Cpp file swaps out the argument for a TEnumAsByte instead of a regular enum.

If I manually edit the Generated.CPP file, I can compile - but this is obviously not a good workaround. I don't want to change my enum to the old ::Type style, since that'll be a breaking change for other parts of the code.

This is the code I have written: -- .H

 UENUM(BlueprintType)
 enum class EMissionActivityEvent : uint8
 {
     ME_None            UMETA(DisplayName = "None"),
     ME_Scheduled    UMETA(DisplayName = "Scheduled"),
     ME_Created        UMETA(DisplayName = "Created"),
     ME_Completed    UMETA(DisplayName = "Completed"),
     ME_Failed        UMETA(DisplayName = "Failed"),
 };
 
 UFUNCTION(BlueprintNativeEvent, Category = "Game Widgets")
 void OnMissionNotificationAdded(const EMissionActivityEvent& MissionEvent, const FActiveMission& MissionData);
 virtual void OnMissionNotificationAdded_Implementation(const EMissionActivityEvent& MissionEvent, const FActiveMission& MissionData);
 
 -- CPP:
 
 void UGESGame_InGameWidget::OnMissionNotificationAdded_Implementation(const EMissionActivityEvent& MissionEvent, const FActiveMission& MissionData)
 {
     // Code Goes Here
 }


And THIS is what the GESGame.Generated.CPP file generates for that UFUNCTION, which as you can see is incorrect:

 void UGESGame_InGameWidget::OnMissionNotificationAdded(const TEnumAsByte<EMissionActivityEvent>& MissionEvent, const FActiveMission& MissionData)
     {
         GESGame_InGameWidget_eventOnMissionNotificationAdded_Parms Parms;
         Parms.MissionEvent=MissionEvent;
         Parms.MissionData=MissionData;
         ProcessEvent(FindFunctionChecked(GESGAME_OnMissionNotificationAdded),&Parms);
     }


This stops my game from compiling, but i can change the Generated file and it will compile and run fine.

Product Version: UE 4.10
Tags:
more ▼

asked Feb 24 '16 at 03:00 PM in C++ Programming

avatar image

TheJamsh
820 61 99 141

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

0 answers: sort voted first
Be the first one to answer this question
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question