130 lines
4.6 KiB
C++
130 lines
4.6 KiB
C++
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Engine/GameInstance.h"
|
|
#include "EasyXMLElement.h"
|
|
#include "EasyXMLParseManager.h"
|
|
#include "cppGI.generated.h"
|
|
|
|
/**
|
|
*
|
|
*/
|
|
|
|
|
|
USTRUCT(BlueprintType)
|
|
struct Fcppcoords
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
Fcppcoords(int32 flat_ = -1, int32 type_ = 0, int32 zone_ = -1, int32 house_ = -1, int32 section_ = -1, int32 floor_ = -1) {
|
|
flat = flat_;
|
|
type = type_;
|
|
zone = zone_;
|
|
house = house_;
|
|
section = section_;
|
|
floor = floor_;
|
|
}
|
|
UPROPERTY(BlueprintReadWrite, category = "default")
|
|
int32 flat;
|
|
UPROPERTY(BlueprintReadWrite, category = "default")
|
|
int32 type;
|
|
UPROPERTY(BlueprintReadWrite, category = "default")
|
|
int32 zone;
|
|
UPROPERTY(BlueprintReadWrite, category = "default")
|
|
int32 house;
|
|
UPROPERTY(BlueprintReadWrite, category = "default")
|
|
int32 section;
|
|
UPROPERTY(BlueprintReadWrite, category = "default")
|
|
int32 floor;
|
|
};
|
|
|
|
|
|
USTRUCT(BlueprintType)
|
|
struct FcppLevelStruct
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
Fcppcoords coords;
|
|
UPROPERTY(BlueprintReadWrite)
|
|
bool dontUnload = false;
|
|
UPROPERTY(BlueprintReadWrite)
|
|
FString path;
|
|
UPROPERTY(BlueprintReadWrite)
|
|
float Z = 0;
|
|
UPROPERTY(BlueprintReadWrite)
|
|
int32 anotherLvl = -1;
|
|
UPROPERTY(BlueprintReadWrite)
|
|
FName uniqName;
|
|
};
|
|
|
|
UCLASS()
|
|
class GRAFFMODULE_API UcppGI : public UGameInstance
|
|
{
|
|
GENERATED_BODY()
|
|
public:
|
|
UFUNCTION(blueprintcallable, category = "cppFuncLib")
|
|
static void cppCoordsEq(Fcppcoords coords, Fcppcoords coords1, bool relevantMinus2, bool fastEq, bool& flat_, bool& type_, bool& zone_, bool& house_, bool& section_, bool& floor_, bool& fullEq);
|
|
|
|
|
|
/*returns array of levels for binding*/
|
|
UFUNCTION(blueprintcallable, Category = "LevelLoading", meta = (WorldContext = "WorldContextObject"))
|
|
TArray<ULevelStreaming*> cppLvlManage(UObject* WorldContextObject, Fcppcoords currentCoords, uint8 currentState);
|
|
|
|
/*return array filtered by coords, coord<0 for floor and <1 for other is ignore the one*/
|
|
UFUNCTION(blueprintcallable, category = "Data")
|
|
TArray<FcppflatStruct> getFlatArr_(Fcppcoords coords, int& len);
|
|
|
|
|
|
UFUNCTION(blueprintcallable, category = "Data")
|
|
FcppflatStruct findFlatByCoords_(Fcppcoords coords, bool& success);
|
|
|
|
/*flatId is ignoring, filter is optional*/
|
|
UFUNCTION(blueprintcallable, category = "Data")
|
|
FcppflatStruct findFlatByN_(Fcppcoords filter, int num, bool& success);
|
|
|
|
/*coord<0 for (floor,flat,type) and <1 for other is ignore the one, price is millions*/
|
|
UFUNCTION(blueprintcallable, category = "Data")
|
|
void countFreeApartments(Fcppcoords coords, int& free, int& all, float& minPrice);
|
|
UFUNCTION(blueprintcallable, blueprintPure, category = "Data", meta = (BlueprintAutocast))
|
|
static void cppFlatTocppCoords(FcppflatStruct flat, Fcppcoords& coords);
|
|
|
|
/*if onlyCoords false then same as find flat by coords*/
|
|
UFUNCTION(blueprintcallable, blueprintPure, category = "Data", meta = (WorldContext = "WorldContextObject", BlueprintAutocast))
|
|
static void cppCoordsToCppFlat(UObject* WorldContextObject, Fcppcoords coords, FcppflatStruct& flat, bool onlyCoords = true);
|
|
|
|
UFUNCTION(blueprintcallable, meta=(WorldContext = "WorldContextObject", Latent, LatentInfo="LatentInfo"), category = "Data")
|
|
void cpp_parseXmlAsync(UObject* WorldContextObject, const TMap<int32, FIntPoint>& houseIds, struct FLatentActionInfo LatentInfo);
|
|
|
|
UFUNCTION(blueprintcallable, meta=(WorldContext = "WorldContextObject", Latent, LatentInfo="LatentInfo"), category = "Data")
|
|
void fixXmlAsync(UObject* WorldContextObject, FString xmlPath, struct FLatentActionInfo LatentInfo);
|
|
|
|
/*list of lvls for anyway loading*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "levelLoading")
|
|
TArray<FcppLevelStruct> cppWhiteList;
|
|
/*list of lvls for anyway not loading*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "levelLoading")
|
|
TArray<FcppLevelStruct> cppBlackList;
|
|
/*list of coords for regular loading*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "LevelLoading")
|
|
TArray<Fcppcoords> cppLoadList;
|
|
/*list of created level names*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "LevelLoading")
|
|
TArray<FName> cppCreatedList;
|
|
/*list of loaded/loading right now level names*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "LevelLoading")
|
|
TArray<FName> cpploadedList;
|
|
/*list of lvls struct created by levelloader*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "levelLoading")
|
|
TArray<FcppLevelStruct> cppLevels;
|
|
/*list of all flats in project*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Data")
|
|
TArray<FcppflatStruct> flatArray;
|
|
|
|
private:
|
|
int intDummy;
|
|
|
|
};
|