GameMode Compile errors. Video 16 of powerup character tutorial

Compile Errors

Error 1 error C2146: syntax error : missing ‘;’ before identifier ‘GetCurrentState’ c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 27 1 CPPowerAbility
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 27 1 CPPowerAbility
Error 3 error C4183: ‘GetCurrentState’: missing return type; assumed to be a member function returning ‘int’ c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 27 1 CPPowerAbility
Error 4 error C2061: syntax error : identifier ‘EACPPowerAbilityPlayState’ c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 29 1 CPPowerAbility
Error 5 error C2146: syntax error : missing ‘;’ before identifier ‘CurrentState’ c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 35 1 CPPowerAbility
Error 6 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 35 1 CPPowerAbility
Error 7 error C2061: syntax error : identifier ‘EACPPowerAbilityPlayState’ c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 37 1 CPPowerAbility
Error 8 error C2556: ‘EACPPowerAbilityPlayerState ACPPowerAbilityGameMode::GetCurrentState(void) const’ : overloaded function differs only by return type from ‘int ACPPowerAbilityGameMode::GetCurrentState(void) const’ c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 42 1 CPPowerAbility
Error 9 error C2371: ‘ACPPowerAbilityGameMode::GetCurrentState’ : redefinition; different basic types c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 42 1 CPPowerAbility
Error 10 error C2065: ‘CurrentState’ : undeclared identifier c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 43 1 CPPowerAbility
Error 11 error C2084: function ‘ACPPowerAbilityGameMode::ACPPowerAbilityGameMode(const FObjectInitializer &)’ already has a body C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp 8 1 CPPowerAbility
Error 12 error C2146: syntax error : missing ‘;’ before identifier ‘GetCurrentState’ c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 27 1 CPPowerAbility
Error 13 error C4430: missing type specifier - int assumed. Note: C++ does not support default-intC:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp(31) : error C2275: ‘ACPPowerAbilityCharacter’ : illegal use of this type as an expression c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 27 1 CPPowerAbility
Error 14 error C4183: ‘GetCurrentState’: missing return type; assumed to be a member function returning ‘int’ c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityCharacter.h(7) : see declaration of ‘ACPPowerAbilityCharacter’ c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 27 1 CPPowerAbility
Error 15 error C2061: syntax error : identifier 'EACPPowerAbilityPlayState’C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp(31) : error C2227: left of ‘->PowerLevel’ must point to class/struct/union/generic type c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 29 1 CPPowerAbility
Error 16 error C2146: syntax error : missing ‘;’ before identifier 'CurrentState’C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp(35) : error C2660: ‘ACPPowerAbilityGameMode::SetCurrentState’ : function does not take 1 arguments c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 35 1 CPPowerAbility
Error 17 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 35 1 CPPowerAbility
Error 18 error C2511: ‘void ACPPowerAbilityGameMode::SetCurrentState(EACPPowerAbilityPlayerState)’ : overloaded member function not found in 'ACPPowerAbilityGameMode’c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h(37) : error C2061: syntax error : identifier ‘EACPPowerAbilityPlayState’ C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp 40 1 CPPowerAbility
Error 19 error C2065: ‘CurrentState’ : undeclared identifier C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp 41 1 CPPowerAbility
Error 20 error C2143: syntax error : missing ‘;’ before '}'c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h(42) : error C2556: ‘EACPPowerAbilityPlayerState ACPPowerAbilityGameMode::GetCurrentState(void) const’ : overloaded function differs only by return type from ‘int ACPPowerAbilityGameMode::GetCurrentState(void) const’ C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp 45 1 CPPowerAbility
Error 21 error C3861: ‘HandlesNewState’: identifier not found c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h(27) : see declaration of ‘ACPPowerAbilityGameMode::GetCurrentState’ C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp 43 1 CPPowerAbility
Error 22 error C2371: ‘ACPPowerAbilityGameMode::GetCurrentState’ : redefinition; different basic typesC:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp(47) : error C2039: ‘HandlesNewState’ : is not a member of ‘ACPPowerAbilityGameMode’ c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 42 1 CPPowerAbility
Error 23 error C2065: ‘CurrentState’ : undeclared identifierC:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp(53) : error C2143: syntax error : missing ‘:’ before ‘;’ c:\users\user\documents\unreal projects\cppowerability\source\cppowerability\CPPowerAbilityGameMode.h 43 1 CPPowerAbility
Error 24 error C2653: ‘EACPPowerAbilityPlayState’ : is not a class or namespace name C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp 55 1 CPPowerAbility
Error 25 error C2065: ‘EUnknown’ : undeclared identifier C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp 55 1 CPPowerAbility
Error 26 error C2143: syntax error : missing ‘:’ before ‘;’ C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp 55 1 CPPowerAbility
Error 27 error C2051: case expression not constant C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp 55 1 CPPowerAbility
Error 28 error C2065: ‘default’ : undeclared identifier C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.cpp 56 1 CPPowerAbility
Error 29 error C2146: syntax error : missing ‘;’ before identifier ‘GetCurrentState’ C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 27 1 CPPowerAbility
Error 30 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 27 1 CPPowerAbility
Error 31 error C4183: ‘GetCurrentState’: missing return type; assumed to be a member function returning ‘int’ C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 27 1 CPPowerAbility
Error 32 error C2061: syntax error : identifier ‘EACPPowerAbilityPlayState’ C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 29 1 CPPowerAbility
Error 33 error C2146: syntax error : missing ‘;’ before identifier ‘CurrentState’ C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 35 1 CPPowerAbility
Error 34 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 35 1 CPPowerAbility
Error 35 error C2061: syntax error : identifier ‘EACPPowerAbilityPlayState’ C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 37 1 CPPowerAbility
Error 36 error C2556: ‘EACPPowerAbilityPlayerState ACPPowerAbilityGameMode::GetCurrentState(void) const’ : overloaded function differs only by return type from ‘int ACPPowerAbilityGameMode::GetCurrentState(void) const’ C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 42 1 CPPowerAbility
Error 37 error C2371: ‘ACPPowerAbilityGameMode::GetCurrentState’ : redefinition; different basic types C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 42 1 CPPowerAbility
Error 38 error C2065: ‘CurrentState’ : undeclared identifier C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 43 1 CPPowerAbility
Error 39 error : Failed to produce item: C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Binaries\Win64\CPPowerAbility-Win64-DebugGame.exe C:\Users\User\Documents\Unreal Projects\CPPowerAbility\Intermediate\ProjectFiles\ERROR CPPowerAbility
Error 40 error MSB3073: The command ““C:\Program Files\Epic Games\4.9\Engine\Build\BatchFiles\Build.bat” CPPowerAbility Win64 DebugGame “C:\Users\User\Documents\Unreal Projects\CPPowerAbility\CPPowerAbility.uproject” -rocket” exited with code -1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets 38 5 CPPowerAbility
41 IntelliSense: this declaration has no storage class or type specifier c:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 16 1 CPPowerAbility
42 IntelliSense: expected a ‘;’ c:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 17 1 CPPowerAbility
43 IntelliSense: name followed by ‘::’ must be a class or namespace name c:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 41 41 CPPowerAbility
44 IntelliSense: a type qualifier is not allowed on a nonmember function c:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 41 84 CPPowerAbility
45 IntelliSense: identifier “CurrentState” is undefined c:\Users\User\Documents\Unreal Projects\CPPowerAbility\Source\CPPowerAbility\CPPowerAbilityGameMode.h 43 9 CPPowerAbility

CPPowerAbilityPlayerState.h

#pragma once
#include "GameFramework/GameMode.h"
#include "SpawnVolume.h"
#include "CPPowerAbilityGameMode.generated.h"

//enum to store the current state of gameplay
enum class EACPPowerAbilityPlayerState : uint8
{
	EPlaying,
	EGameOver,
	EUnknown

};

UCLASS()
class ACPPowerAbilityGameMode : public AGameMode
{
	GENERATED_BODY()

public:
	virtual void Tick(float DeltaSeconds) override;
	
	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = Power)
	float DecayRate;

	EACPPowerAbilityPlayState GetCurrentState() const;

	void SetCurrentState(EACPPowerAbilityPlayState NewState);

	virtual void BeginPlay() override;

private:

	EACPPowerAbilityPlayState CurrentState;

	void HandleNewState(EACPPowerAbilityPlayState NewState);

};

FORCEINLINE EACPPowerAbilityPlayerState ACPPowerAbilityGameMode::GetCurrentState() const
{
	return CurrentState;

}

CPPowerAbilityPlayerState.cpp

// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.

#include "CPPowerAbility.h"
#include "CPPowerAbilityGameMode.h"
#include "CPPowerAbilityCharacter.h"
#include "Kismet/GameplayStatics.h"

ACPPowerAbilityGameMode::ACPPowerAbilityGameMode(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
{
	// set default pawn class to our Blueprinted character
	static ConstructorHelpers::FClassFinder<APawn> PlayerPawnBPClass(TEXT("/Game/ThirdPersonCPP/Blueprints/ThirdPersonCharacter"));
	if (PlayerPawnBPClass.Class != NULL)
	{
		DefaultPawnClass = PlayerPawnBPClass.Class;
	}

	//base decay rate 
	DecayRate = 1;

}

void ACPPowerAbilityGameMode::Tick(float DeltaSeconds)
{
	ACPPowerAbilityCharacter* MyCharacter = Cast<ACPPowerAbilityCharacter>(UGameplayStatics::GetPlayerPawn(this, 0));
	
	// if the character still has power decrease the characters power
	if (MyCharacter->PowerLevel > 0.05)
	{

		//decrease characters power
		MyCharacter->PowerLevel = FMath::FInterpTo(ACPPowerAbilityCharacter->PowerLevel, 0.f, DeltaSeconds, DecayRate);

	}else
	{
		SetCurrentState(EACPPowerAbilityPlayerState::EGameOver);
	}
}

void ACPPowerAbilityGameMode::SetCurrentState(EACPPowerAbilityPlayerState NewState)
{
	CurrentState = NewState;

	HandlesNewState(NewState)

}

void ACPPowerAbilityGameMode::HandlesNewState(EACPPowerAbilityPlayerState NewState)
{
	switch (NewState)
	{
	case EACPPowerAbilityPlayerState::EPlaying:
		break;
		case EACPPowerAbilityPlayerState::EGameOver;
			break;
			case EACPPowerAbilityPlayState::EUnknown;
				default;
				//Do Nothing
				break;

	}

}

I am having the same problem as well. Line 3 “C4430: missing type specifier - int assumed. Note: C++ does not support default-int” This is because “CPPowerAbilityPlayerState.cpp” line 8 should have a int connected to it.