From ee0a5376210df94ea82a187aab068d5211d9e021 Mon Sep 17 00:00:00 2001 From: baz Date: Thu, 14 Nov 2024 18:39:20 +0000 Subject: [PATCH] Update remaining includes --- Source/vampires/EXPPickup.cpp | 1 + Source/vampires/EnemyCharacter.cpp | 4 ++++ Source/vampires/EnemyCharacter.h | 6 +++--- Source/vampires/GoldPickup.cpp | 1 + Source/vampires/ObjectPoolManager.cpp | 1 - Source/vampires/Pickup.cpp | 7 ++++--- Source/vampires/Pickup.h | 5 +++-- Source/vampires/PlayerCharacter.cpp | 10 ++++++++-- Source/vampires/PlayerCharacter.h | 14 +++++++------- Source/vampires/VampireAIController.cpp | 5 +++++ Source/vampires/VampireAIController.h | 9 ++++----- Source/vampires/VampireCharacter.cpp | 3 +++ Source/vampires/VampireCharacter.h | 5 +++-- Source/vampires/VampireGameMode.cpp | 4 ++++ Source/vampires/VampireGameMode.h | 8 ++++---- Source/vampires/WeaponInventoryComponent.cpp | 1 + Source/vampires/WeaponInventoryComponent.h | 3 ++- UpgradeLog.htm | Bin 0 -> 112438 bytes 18 files changed, 57 insertions(+), 30 deletions(-) create mode 100644 UpgradeLog.htm diff --git a/Source/vampires/EXPPickup.cpp b/Source/vampires/EXPPickup.cpp index 45e6397..e776bc0 100644 --- a/Source/vampires/EXPPickup.cpp +++ b/Source/vampires/EXPPickup.cpp @@ -3,6 +3,7 @@ #include "EXPPickup.h" +#include "EXPComponent.h" #include "PlayerCharacter.h" void AEXPPickup::BeginPlay() diff --git a/Source/vampires/EnemyCharacter.cpp b/Source/vampires/EnemyCharacter.cpp index 9bf6088..bbf0981 100644 --- a/Source/vampires/EnemyCharacter.cpp +++ b/Source/vampires/EnemyCharacter.cpp @@ -3,6 +3,10 @@ #include "EnemyCharacter.h" +#include "EXPPickup.h" +#include "HealthComponent.h" +#include "ObjectPoolComponent.h" +#include "ObjectPoolManager.h" #include "VampireGameMode.h" #include "Kismet/GameplayStatics.h" diff --git a/Source/vampires/EnemyCharacter.h b/Source/vampires/EnemyCharacter.h index b26a27c..55b72ab 100644 --- a/Source/vampires/EnemyCharacter.h +++ b/Source/vampires/EnemyCharacter.h @@ -3,12 +3,12 @@ #pragma once #include "CoreMinimal.h" -#include "EXPPickup.h" -#include "ObjectPoolComponent.h" #include "VampireCharacter.h" -#include "BehaviorTree/BehaviorTree.h" #include "EnemyCharacter.generated.h" +class UObjectPoolComponent; +class UBehaviorTree; +class AEXPPickup; /** * */ diff --git a/Source/vampires/GoldPickup.cpp b/Source/vampires/GoldPickup.cpp index a51bef5..ec1eaf1 100644 --- a/Source/vampires/GoldPickup.cpp +++ b/Source/vampires/GoldPickup.cpp @@ -3,6 +3,7 @@ #include "GoldPickup.h" +#include "GoldComponent.h" #include "PlayerCharacter.h" class APlayerCharacter; diff --git a/Source/vampires/ObjectPoolManager.cpp b/Source/vampires/ObjectPoolManager.cpp index 2dc0da0..b8113db 100644 --- a/Source/vampires/ObjectPoolManager.cpp +++ b/Source/vampires/ObjectPoolManager.cpp @@ -2,7 +2,6 @@ #include "ObjectPoolManager.h" - #include "ObjectPoolComponent.h" // Called when the game starts or when spawned diff --git a/Source/vampires/Pickup.cpp b/Source/vampires/Pickup.cpp index 328d457..37fcf50 100644 --- a/Source/vampires/Pickup.cpp +++ b/Source/vampires/Pickup.cpp @@ -4,8 +4,9 @@ #include "Pickup.h" #include "PlayerCharacter.h" +#include "Components/SphereComponent.h" #include "Kismet/GameplayStatics.h" -#include "Kismet/KismetMathLibrary.h" +#include "PaperSpriteComponent.h" // Sets default values APickup::APickup() @@ -19,7 +20,7 @@ APickup::APickup() SphereComponent->SetSphereRadius(25.0f); SpriteComponent = CreateDefaultSubobject(TEXT("Sprite Component")); - SpriteComponent->SetRelativeRotation(FRotator(0.0f, 90.0f,-90.0f)); + SpriteComponent->SetRelativeRotation(FRotator(0.0f, 90.0f, -90.0f)); SpriteComponent->SetRelativeScale3D(FVector(.5f, .5f, .5f)); SpriteComponent->SetupAttachment(RootComponent); } @@ -53,7 +54,7 @@ void APickup::OnBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* O const FHitResult& SweepResult) { if (APlayerCharacter* PlayerCharacter = Cast(OtherActor)) - { + { // TODO: Add extra functionality if (PickupSoundBase) { diff --git a/Source/vampires/Pickup.h b/Source/vampires/Pickup.h index 97dfffe..68c86b8 100644 --- a/Source/vampires/Pickup.h +++ b/Source/vampires/Pickup.h @@ -3,11 +3,12 @@ #pragma once #include "CoreMinimal.h" -#include "Components/SphereComponent.h" #include "GameFramework/Actor.h" -#include "PaperSpriteComponent.h" #include "Pickup.generated.h" +class USphereComponent; +class UPaperSpriteComponent; + UCLASS() class VAMPIRES_API APickup : public AActor { diff --git a/Source/vampires/PlayerCharacter.cpp b/Source/vampires/PlayerCharacter.cpp index 4cff263..c81daa7 100644 --- a/Source/vampires/PlayerCharacter.cpp +++ b/Source/vampires/PlayerCharacter.cpp @@ -6,7 +6,13 @@ #include "VampirePlayerController.h" #include "EnhancedInputComponent.h" #include "EnhancedInputSubsystems.h" +#include "EXPComponent.h" +#include "GoldComponent.h" #include "InputMappingContext.h" +#include "WeaponInventoryComponent.h" +#include "Camera/CameraComponent.h" +#include "Components/WidgetComponent.h" +#include "GameFramework/SpringArmComponent.h" APlayerCharacter::APlayerCharacter() { @@ -39,9 +45,9 @@ APlayerCharacter::APlayerCharacter() // Create HealthBar Widget Component HealthBarWidgetComponent = CreateDefaultSubobject(TEXT("Healthbar")); HealthBarWidgetComponent->SetupAttachment(RootComponent); - HealthBarWidgetComponent->SetRelativeLocation(FVector(0,0,90)); + HealthBarWidgetComponent->SetRelativeLocation(FVector(0, 0, 90)); HealthBarWidgetComponent->SetTwoSided(true); - HealthBarWidgetComponent->SetBackgroundColor(FLinearColor(1,1,1,0)); + HealthBarWidgetComponent->SetBackgroundColor(FLinearColor(1, 1, 1, 0)); } void APlayerCharacter::BeginPlay() diff --git a/Source/vampires/PlayerCharacter.h b/Source/vampires/PlayerCharacter.h index c595568..ea7758c 100644 --- a/Source/vampires/PlayerCharacter.h +++ b/Source/vampires/PlayerCharacter.h @@ -3,16 +3,16 @@ #pragma once #include "CoreMinimal.h" -#include "EXPComponent.h" -#include "GoldComponent.h" #include "VampireCharacter.h" -#include "WeaponInventoryComponent.h" -#include "Camera/CameraComponent.h" -#include "GameFramework/SpringArmComponent.h" -#include "Blueprint/UserWidget.h" -#include "Components/WidgetComponent.h" #include "PlayerCharacter.generated.h" +struct FInputActionInstance; +class UWidgetComponent; +class UWeaponInventoryComponent; +class UGoldComponent; +class UEXPComponent; +class UCameraComponent; +class USpringArmComponent; class UInputMappingContext; class UInputAction; diff --git a/Source/vampires/VampireAIController.cpp b/Source/vampires/VampireAIController.cpp index 516ae74..6e9ef60 100644 --- a/Source/vampires/VampireAIController.cpp +++ b/Source/vampires/VampireAIController.cpp @@ -3,6 +3,11 @@ #include "VampireAIController.h" +#include "EnemyCharacter.h" +#include "HealthComponent.h" +#include "VampireCharacter.h" +#include "BehaviorTree/BehaviorTree.h" +#include "BehaviorTree/BehaviorTreeComponent.h" #include "BehaviorTree/BlackboardComponent.h" #include "Kismet/GameplayStatics.h" #include "Navigation/CrowdFollowingComponent.h" diff --git a/Source/vampires/VampireAIController.h b/Source/vampires/VampireAIController.h index dd34516..80c8327 100644 --- a/Source/vampires/VampireAIController.h +++ b/Source/vampires/VampireAIController.h @@ -4,13 +4,12 @@ #include "CoreMinimal.h" #include "AIController.h" -#include "DetourCrowdAIController.h" -#include "EnemyCharacter.h" -#include "HealthComponent.h" -#include "PlayerCharacter.h" -#include "BehaviorTree/BehaviorTreeComponent.h" #include "VampireAIController.generated.h" +class AEnemyCharacter; +class APlayerCharacter; +class UBehaviorTreeComponent; +class UBlackboardComponent; /** * */ diff --git a/Source/vampires/VampireCharacter.cpp b/Source/vampires/VampireCharacter.cpp index 5c411ee..01815c3 100644 --- a/Source/vampires/VampireCharacter.cpp +++ b/Source/vampires/VampireCharacter.cpp @@ -3,6 +3,9 @@ #include "VampireCharacter.h" +#include "HealthComponent.h" +#include "PaperFlipbookComponent.h" + // Sets default values AVampireCharacter::AVampireCharacter() { diff --git a/Source/vampires/VampireCharacter.h b/Source/vampires/VampireCharacter.h index eec94a1..dc764f3 100644 --- a/Source/vampires/VampireCharacter.h +++ b/Source/vampires/VampireCharacter.h @@ -4,10 +4,11 @@ #include "CoreMinimal.h" #include "GameFramework/Character.h" -#include "HealthComponent.h" -#include "PaperFlipbookComponent.h" #include "VampireCharacter.generated.h" +class UHealthComponent; +class UPaperFlipbookComponent; + UCLASS() class VAMPIRES_API AVampireCharacter : public ACharacter { diff --git a/Source/vampires/VampireGameMode.cpp b/Source/vampires/VampireGameMode.cpp index 02a8501..443c660 100644 --- a/Source/vampires/VampireGameMode.cpp +++ b/Source/vampires/VampireGameMode.cpp @@ -3,6 +3,10 @@ #include "VampireGameMode.h" +#include "EnemyCharacter.h" +#include "ObjectPoolManager.h" +#include "PlayerCharacter.h" +#include "VampirePlayerController.h" #include "Components/CapsuleComponent.h" #include "Kismet/GameplayStatics.h" diff --git a/Source/vampires/VampireGameMode.h b/Source/vampires/VampireGameMode.h index def66c6..a1a3289 100644 --- a/Source/vampires/VampireGameMode.h +++ b/Source/vampires/VampireGameMode.h @@ -3,13 +3,13 @@ #pragma once #include "CoreMinimal.h" -#include "EnemyCharacter.h" -#include "ObjectPoolManager.h" -#include "PlayerCharacter.h" -#include "VampirePlayerController.h" #include "GameFramework/GameMode.h" #include "VampireGameMode.generated.h" +class AObjectPoolManager; +class AVampirePlayerController; +class APlayerCharacter; +class AEnemyCharacter; /** * */ diff --git a/Source/vampires/WeaponInventoryComponent.cpp b/Source/vampires/WeaponInventoryComponent.cpp index 55c5b39..7dfef42 100644 --- a/Source/vampires/WeaponInventoryComponent.cpp +++ b/Source/vampires/WeaponInventoryComponent.cpp @@ -2,6 +2,7 @@ #include "WeaponInventoryComponent.h" +#include "Weapon.h" // Sets default values for this component's properties UWeaponInventoryComponent::UWeaponInventoryComponent() diff --git a/Source/vampires/WeaponInventoryComponent.h b/Source/vampires/WeaponInventoryComponent.h index 6729d4a..8f6748c 100644 --- a/Source/vampires/WeaponInventoryComponent.h +++ b/Source/vampires/WeaponInventoryComponent.h @@ -3,11 +3,12 @@ #pragma once #include "CoreMinimal.h" -#include "Weapon.h" #include "Components/ActorComponent.h" #include "WeaponInventoryComponent.generated.h" +class AWeapon; + UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent)) class VAMPIRES_API UWeaponInventoryComponent : public UActorComponent { diff --git a/UpgradeLog.htm b/UpgradeLog.htm new file mode 100644 index 0000000000000000000000000000000000000000..f81edc1550d27a515200e3483ec6ea13c49016af GIT binary patch literal 112438 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