22 Commits

Author SHA1 Message Date
Kukukakhew
9056e32b00 sortof working ADS but not really. 2026-05-23 21:16:56 -04:00
Kukukakhew
2b4db1367d Moved User Settings function to game instance
IMC contexts are mapped here.
2026-05-22 16:42:08 -04:00
Kukukakhew
b1d862ded9 Can now map controller buttons 2026-05-22 15:52:43 -04:00
Kukukakhew
365442bbb7 Removed unused apply button
using common button.
2026-05-22 15:26:18 -04:00
Kukukakhew
94816eb54b Removing obsolete Audio Slider BP 2026-05-22 15:11:09 -04:00
Kukukakhew
7d9c2dfce8 Moved Audio Sliders to Object Oriented setup
Code to modify sound settings migrated to Game Instance BP and just using a common slider widget for display.
2026-05-22 15:04:51 -04:00
Kukukakhew
bd5b2e9f3a Graphics Settings Rework
Moved to object oriented approach. Selector is a common asset that is reusable. Future changes to the look of the widget can be easily redone as all function for settings is handled by the game instance. The widget only needs to update its display and pass 2 strings back.
2026-05-17 11:01:21 -04:00
Kukukakhew
c8ade04bc8 Updated Mouse sensitivity Slider
Old blueprint was single purpose for just mouse sensitivity. This is now handled with the common slider. Code and setting changes have been migrated to the game instance.
2026-05-16 23:32:15 -04:00
Kukukakhew
12add78480 Multiple Changes to input and settings
Controller Input actions created with Controller IMC
Controller input events created.
Added Look sensitivity for controller.
Created reusable slider for controller sensitivity.
Created new reusable checkbox.
Implemented crouch toggle ect for controller and kept separate from mouse/keyboard settings.
2026-05-16 23:06:48 -04:00
Kukukakhew
9bdb9bac9a Added Controller Sensitivity 2026-05-15 23:19:51 -04:00
Kukukakhew
c959246bc7 MainMenu can be navigated by controller 2026-02-07 00:33:08 -05:00
Kukukakhew
e1986ef42f Added input events, added controller support for start menu 2026-02-02 21:48:32 -05:00
Kukukakhew
ee4371c320 Added Prone speed logic, still needs animation 2026-01-20 22:29:22 -05:00
Kukukakhew
6d97d86c1d Added Lean Toggle Functionality 2026-01-20 21:51:58 -05:00
Kukukakhew
9b0eef7e4f Sprint,Crouch,Prone,Lean toggle options in UI Settings 2026-01-20 20:59:37 -05:00
Kukukakhew
f40d53a6ba Initial speed replication bugfix 2026-01-16 21:27:55 -05:00
Kukukakhew
9d24abd287 Sprint/Crouch Network Replication 2026-01-16 21:17:19 -05:00
Kukukakhew
f00d4d1baf Added Input Actions for keyboard
No functionality, just the events and actions.
2026-01-04 02:16:08 -05:00
Kukukakhew
0ddc2363c0 Sprint Speed tuning
Plus some bug fixes that caused super speed.
2026-01-04 01:20:02 -05:00
Kukukakhew
9e071fd29e Added Sprint IA and speed modifier 2026-01-04 00:57:28 -05:00
Kukukakhew
5bf29d6cdb Merge branch 'MenusAndStuffpt2' of https://git.keeper317.com/Keeper317/open-conflict into MenusAndStuffpt2 2026-01-03 22:58:03 -05:00
Kukukakhew
cc1c8fa880 Added Crouch input/speed/logic 2026-01-03 22:53:17 -05:00
94 changed files with 13 additions and 304 deletions

View File

@@ -113,3 +113,6 @@ ConnectionType=USBOnly
bUseManualIPAddress=False bUseManualIPAddress=False
ManualIPAddress= ManualIPAddress=
[/Script/Engine.AudioSettings]
DefaultBaseSoundMix=/Game/Sounds/MainSoundMix.MainSoundMix

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,4 +1,5 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=83F7D316_002D1724_002D38F0_002D85D9_002D704D5DF137A0_002Fdl_003ASource_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FProgram_0020Files_003FEpic_0020Games_003FUE_005F5_002E7_003FEngine_003FSource_002Fd_003ARuntime_002Fd_003AEngine_002Fd_003AClasses_002Fd_003AGameFramework_002Ff_003AActor_002Eh/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=83F7D316_002D1724_002D38F0_002D85D9_002D704D5DF137A0_002Fdl_003ASource_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FProgram_0020Files_003FEpic_0020Games_003FUE_005F5_002E7_003FEngine_003FSource_002Fd_003ARuntime_002Fd_003AEngine_002Fd_003AClasses_002Fd_003AGameFramework_002Ff_003AActor_002Eh/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=83F7D316_002D1724_002D38F0_002D85D9_002D704D5DF137A0_002Fdl_003ASource_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FProgram_0020Files_003FEpic_0020Games_003FUE_005F5_002E7_003FEngine_003FSource_002Fd_003ARuntime_002Fd_003AEngine_002Fd_003AClasses_002Fd_003AGameFramework_002Ff_003ACharacterMovementComponent_002Eh/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=83F7D316_002D1724_002D38F0_002D85D9_002D704D5DF137A0_002Fdl_003ASource_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FProgram_0020Files_003FEpic_0020Games_003FUE_005F5_002E7_003FEngine_003FSource_002Fd_003ARuntime_002Fd_003AEngine_002Fd_003AClasses_002Fd_003APhysicsEngine_002Ff_003APhysicsSpringComponent_002Eh/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=83F7D316_002D1724_002D38F0_002D85D9_002D704D5DF137A0_002Fdl_003ASource_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FProgram_0020Files_003FEpic_0020Games_003FUE_005F5_002E7_003FEngine_003FSource_002Fd_003ARuntime_002Fd_003AEngine_002Fd_003AClasses_002Fd_003APhysicsEngine_002Ff_003APhysicsSpringComponent_002Eh/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=83F7D316_002D1724_002D38F0_002D85D9_002D704D5DF137A0_002Fdl_003ASource_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FProgram_0020Files_003FEpic_0020Games_003FUE_005F5_002E7_003FEngine_003FSource_002Fd_003ARuntime_002Fd_003AUMG_002Fd_003APublic_002Fd_003AComponents_002Ff_003AWidgetSwitcher_002Eh/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=83F7D316_002D1724_002D38F0_002D85D9_002D704D5DF137A0_002Fdl_003ASource_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FProgram_0020Files_003FEpic_0020Games_003FUE_005F5_002E7_003FEngine_003FSource_002Fd_003ARuntime_002Fd_003AUMG_002Fd_003APublic_002Fd_003AComponents_002Ff_003AWidgetSwitcher_002Eh/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>

View File

@@ -68,20 +68,16 @@ void ADDICharacter::Server_SpawnProjectile_Implementation()
FRotator Rotation = GetActorRotation(); FRotator Rotation = GetActorRotation();
FVector Dir = GetActorForwardVector(); FVector Dir = GetActorForwardVector();
// GetActorEyesViewPoint(Location, Rotation); Location += Dir * 200.f;
Location += Dir * 55.f;
if (!ProjectileClass) if (!ProjectileClass)
{ {
GEngine->AddOnScreenDebugMessage(1, 10.f, FColor::Emerald, "No Projectile Set"); GEngine->AddOnScreenDebugMessage(1, 10.f, FColor::Emerald, "No Projectile Set");
return; return;
} }
GetWorld()->SpawnActor<AActor>(ProjectileClass, Location, Rotation);
FActorSpawnParameters SpawnInfo;
SpawnInfo.Owner = this;
SpawnInfo.Instigator = GetInstigator();
GetWorld()->SpawnActor<AActor>(ProjectileClass, Location, Rotation, SpawnInfo);
} }
void ADDICharacter::Client_CharacterHit_Implementation() void ADDICharacter::Client_CharacterHit_Implementation()

View File

@@ -1,63 +0,0 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "MagazineActor.h"
#include "OpenConflict/PlayerCharacter/Components/DDIHealth.h"
// Sets default values
AMagazineActor::AMagazineActor()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
bReplicates = true;
}
// Called when the game starts or when spawned
void AMagazineActor::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void AMagazineActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
if (!ActiveMag && CurrentCount < MAX_COUNT )
{
GetWorld()->GetTimerManager().SetTimer(RepackTimer, this, &AMagazineActor::PackMag, RepackDelay, true, RepackDelay);
}
}
void AMagazineActor::PackMag()
{
if (hasReserveAmmo)
{
CurrentCount += 1;
AMMO_REPACK.Broadcast();
}
if (CurrentCount >= MAX_COUNT)
{
CurrentCount = MAX_COUNT;
GetWorld()->GetTimerManager().ClearTimer(RepackTimer);
}
}
void AMagazineActor::StripRound()
{
CurrentCount -= 1;
if (CurrentCount <= 0)
{
CurrentCount = 0;
}
}
void AMagazineActor::SetAmmoValues(int MaxCount)
{
MAX_COUNT = MaxCount;
CurrentCount = MAX_COUNT;
}

View File

@@ -1,76 +0,0 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MagazineActor.generated.h"
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FAMMO_REPACK);
UCLASS()
class OPENCONFLICT_API AMagazineActor : public AActor
{
GENERATED_BODY()
/*UPROPERTY and UFUNCTION declarations*/
private:
/*Properties*/
UPROPERTY(BlueprintReadOnly, meta=(AllowPrivateAccess=true))
int MAX_COUNT;
UPROPERTY(BlueprintReadOnly, meta=(AllowPrivateAccess=true))
int CurrentCount;
UPROPERTY(BlueprintReadOnly, meta=(AllowPrivateAccess=true))
bool ActiveMag = false;
UPROPERTY(BlueprintReadOnly, meta=(AllowPrivateAccess=true))
float RepackDelay = 0.5f;
/*Functions*/
protected:
/*Properties*/
/*Functions*/
public:
/*Properties*/
UPROPERTY(BlueprintAssignable)
FAMMO_REPACK AMMO_REPACK;
/*Functions*/
UFUNCTION(BlueprintImplementableEvent)
void EmptyMagEvent();
/*C++ only declarations*/
private:
/*Properties*/
/*Functions*/
void PackMag();
protected:
/*Properties*/
FTimerHandle RepackTimer;
/*Functions*/
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
/*Properties*/
bool hasReserveAmmo = true;
/*Functions*/
// Sets default values for this actor's properties
AMagazineActor();
AMagazineActor(int MaxCount);
// Called every frame
virtual void Tick(float DeltaTime) override;
void StripRound();
void SetAmmoValues(int MaxCount);
};

View File

@@ -1,34 +0,0 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "MagazineComponenet.h"
// Sets default values for this component's properties
UMagazineComponenet::UMagazineComponenet()
{
// Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
// off to improve performance if you don't need them.
PrimaryComponentTick.bCanEverTick = true;
// ...
}
// Called when the game starts
void UMagazineComponenet::BeginPlay()
{
Super::BeginPlay();
// ...
}
// Called every frame
void UMagazineComponenet::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
// ...
}

View File

@@ -1,28 +0,0 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "MagazineComponenet.generated.h"
UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
class OPENCONFLICT_API UMagazineComponenet : public UActorComponent
{
GENERATED_BODY()
public:
// Sets default values for this component's properties
UMagazineComponenet();
protected:
// Called when the game starts
virtual void BeginPlay() override;
public:
// Called every frame
virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
};

View File

@@ -8,8 +8,6 @@ AWeaponBase::AWeaponBase()
{ {
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true; PrimaryActorTick.bCanEverTick = true;
bReplicates = true;
WeaponMesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("Weapon Component"));
} }
@@ -17,13 +15,6 @@ AWeaponBase::AWeaponBase()
void AWeaponBase::BeginPlay() void AWeaponBase::BeginPlay()
{ {
Super::BeginPlay(); Super::BeginPlay();
// AMMO_REPACK.AddDynamic(this, &AWeaponBase::MagRepacking);
for (int i = 0; i < RESERVE_MAG_COUNT; i++)
{
// AMagazineActor* mag = new AMagazineActor();
// mag->SetAmmoValues(MAX_AMMO_COUNT);
// ActiveMags.Add(mag);
}
} }
@@ -34,15 +25,3 @@ void AWeaponBase::Tick(float DeltaTime)
} }
void AWeaponBase::MagRepacking()
{
RESERVE_AMMO_POOL_DEFAULT -= 1;
if (RESERVE_AMMO_POOL_DEFAULT <= 0)
{
RESERVE_AMMO_POOL_DEFAULT = 0;
// for (AMagazineActor* mag : ActiveMags)
// {
// mag->hasReserveAmmo = false;
// }
}
}

View File

@@ -4,8 +4,6 @@
#include "CoreMinimal.h" #include "CoreMinimal.h"
#include "GameFramework/Actor.h" #include "GameFramework/Actor.h"
#include "WeaponEnums.h"
// #include "UMagazine.h"
#include "WeaponBase.generated.h" #include "WeaponBase.generated.h"
UCLASS() UCLASS()
@@ -13,70 +11,16 @@ class OPENCONFLICT_API AWeaponBase : public AActor
{ {
GENERATED_BODY() GENERATED_BODY()
/*UPROPERTY and UFUNCTION declarations*/
private:
/*Properties*/
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="Weapon HUD", meta=(AllowPrivateAccess=true))
UTexture2D* Texture;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="Weapon Anims", meta=(AllowPrivateAccess=true))
WeaponNames WeaponNameEnum;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="Weapon Anims", meta=(AllowPrivateAccess=true))
FName AttachSocketName;
/*Ammo counter for in mags*/
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="Weapon Ammo", meta=(AllowPrivateAccess=true))
int MAX_AMMO_COUNT = 30; //Tracks max ammo in one mag, not to be edited during runtime ever
UPROPERTY(BlueprintReadOnly, Category="Weapon Ammo", meta=(AllowPrivateAccess=true))
int MagIndex; //Tracks index for ActiveMags Array
// UPROPERTY(BlueprintReadOnly, Category="Weapon Ammo", meta=(AllowPrivateAccess=true))
// TArray<UMagazine*> ActiveMags; //Tracks all mags for weapon
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="Weapon Ammo", meta=(AllowPrivateAccess=true))
int RESERVE_MAG_COUNT = 2; //Tracks how many mags are kept in reserve. DO NOT INCLUDE MAG IN WEAPON
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="Weapon Ammo", meta=(AllowPrivateAccess=true))
int RESERVE_AMMO_POOL_DEFAULT = 120;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta=(AllowPrivateAccess=true))
USkeletalMeshComponent* WeaponMesh;
/*Functions*/
protected:
/*Properties*/
/*Functions*/
public: public:
/*Properties*/ // Sets default values for this actor's properties
// UPROPERTY(BlueprintAssignable) AWeaponBase();
// FAMMO_REPACK AMMO_REPACK;
/*Functions*/
UFUNCTION()
void MagRepacking();
/*C++ only declarations*/
private:
/*Properties*/
/*Functions*/
protected: protected:
/*Properties*/
/*Functions*/
// Called when the game starts or when spawned // Called when the game starts or when spawned
virtual void BeginPlay() override; virtual void BeginPlay() override;
public: public:
/*Properties*/
/*Functions*/
// Called every frame // Called every frame
virtual void Tick(float DeltaTime) override; virtual void Tick(float DeltaTime) override;
// Sets default values for this actor's properties
AWeaponBase();
}; };

View File

@@ -1,13 +0,0 @@
#pragma once
#include "CoreMinimal.h"
#include "WeaponEnums.generated.h"
UENUM(BlueprintType)
enum class WeaponNames : uint8
{
Pistol = 0 UMETA(DisplayName = "Pistol"),
Rifle = 1 UMETA(DisplayName = "Rifle"),
Shotgun = 2 UMETA(DisplayName = "Shotgun"),
Sniper = 3 UMETA(DisplayName = "Sniper")
};