// 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 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 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& 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 cppWhiteList; /*list of lvls for anyway not loading*/ UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "levelLoading") TArray cppBlackList; /*list of coords for regular loading*/ UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "LevelLoading") TArray cppLoadList; /*list of created level names*/ UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "LevelLoading") TArray cppCreatedList; /*list of loaded/loading right now level names*/ UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "LevelLoading") TArray cpploadedList; /*list of lvls struct created by levelloader*/ UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "levelLoading") TArray cppLevels; /*list of all flats in project*/ UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Data") TArray flatArray; private: int intDummy; };