Files
ZombieGame-Rawr/project/Thinker.h
Bram verhulst f9a11385fe Fianlly
2025-06-02 21:29:29 +02:00

66 lines
1.9 KiB
C++

#pragma once
#include <Exam_HelperStructs.h>
#include <chrono>
#include <vector>
#include "WorldExplorationGrid.h"
class Thinker final {
public:
struct HouseMemory {
bool newHouse{ true };
HouseInfo info;
std::chrono::steady_clock::time_point lastSaw;
};
struct ItemMemory
{
ItemInfo ItemInfo;
int invIndex;
};
Thinker() = default;
~Thinker() = default;
Thinker(const Thinker&) = default;
Thinker& operator=(const Thinker&) = default;
Thinker(Thinker&&) = default;
Thinker& operator=(Thinker&&) = default;
/*bool NewHouseToExplore();
bool HouseToReExplore();
void SetTargetHouseExpireDate(const HouseInfo& targetHouse);
HouseInfo CheckHouseValidTarget(Elite::Vector2 playerPos, float maxRadius) const;
bool CheckHousesForMemory(const std::vector<HouseInfo>& FOVHouses);*/
std::vector<ItemMemory>::iterator FindLeastValueItem(const eItemType& itemType);
bool IsInvNotFull() const;
bool IsItemInInv(const eItemType& itemType);
bool EmptyValue();
int FindEmptyValue(const ItemInfo& item);
int AddItemToMemory(const ItemInfo& item);
int CheckItem(const ItemInfo& item);
bool CheckIfTargetIsInside(const HouseInfo& targetHouse, Elite::Vector2 playerPos);
bool CheckIfTargetIsExplored(Elite::Vector2 target, float offset) const;
bool NewHouseToExplore();
bool HouseToReExplore();
void SetTargetHouseExpireDate(const HouseInfo& targetHouse);
HouseInfo CheckHouseValidTarget(Elite::Vector2 playerPos, float maxRadius) const;
bool CheckHousesForMemory(const std::vector<HouseInfo>& FOVHouses);
WorldExplorationGrid m_ExplorationGrid;
private:
std::vector<HouseMemory> m_HousesMemory{};
const float m_MaxWaitTimer{ 360.f };
std::vector<ItemMemory> m_ItemMemory{};
const size_t m_MaxStorageSlots{ 5 };
std::vector<HouseMemory>::iterator FindHouseInMemory(const HouseInfo& targetHouse);
float m_GridCellSize = 50.f; // Adjust based on your needs
};