Atlas Game Manager
A game manager for f95 and dlsite written in c++
Loading...
Searching...
No Matches
engineDetection.cpp File Reference
#include "engineDetection.hpp"
#include <QDir>
#include <QDirIterator>
#include <QMimeDatabase>
#include <QString>
#include <tracy/Tracy.hpp>
#include <tracy/TracyC.h>
#include <algorithm>
#include <array>
#include <filesystem>
#include <fstream>
#include <string>
#include "core/logging/logging.hpp"
#include "core/system.hpp"
#include "core/utils/FileScanner.hpp"

Functions

template<>
bool isEngineT< ENGINES_BEGIN > (atlas::utils::FileScanner &scanner)
 
template<>
bool isEngineT< ENGINES_END > (atlas::utils::FileScanner &scanner)
 
bool isBlacklistT (const std::string &name, const std::string_view comp)
 
bool isBlacklistT (const std::string &name, std::string_view comp, std::same_as< std::string_view > auto... comps)
 
bool isBlacklist (const std::string &name)
 
std::vector< std::filesystem::path > detectExecutables (atlas::utils::FileScanner &scanner)
 
std::vector< std::filesystem::path > scoreExecutables (std::vector< std::filesystem::path > paths, const Engine engine_type)
 
template<>
QString engineNameT< UNKNOWN > ()
 
template<Engine engine>
Engine findEngine (atlas::utils::FileScanner &scanner)
 
Engine determineEngine (atlas::utils::FileScanner &scanner)
 Returns an engine type of ENGINES_END if no engine is determined.
 
template<Engine engine_t>
QString getEngineNameT (const Engine engine)
 
QString engineName (const Engine engine)
 Returns a string name of the engine.
 
template<>
bool isEngineT< RenPy > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< RenPy > ()
 
template<>
bool isEngineT< Unity > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< Unity > ()
 
template<>
bool isEngineT< Unreal > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< Unreal > ()
 
template<>
bool isEngineT< RPGM > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< RPGM > ()
 
template<>
bool isEngineT< WolfRPG > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< WolfRPG > ()
 
template<>
bool isEngineT< HTML > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< HTML > ()
 
template<>
bool isEngineT< VisualNovelMaker > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< VisualNovelMaker > ()
 
template<>
bool isEngineT< TyanoBuilder > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< TyanoBuilder > ()
 
template<>
bool isEngineT< Java > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< Java > ()
 
template<>
bool isEngineT< Flash > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< Flash > ()
 
template<>
bool isEngineT< RAGS > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< RAGS > ()
 
template<>
bool isEngineT< KiriKiri > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< KiriKiri > ()
 
template<>
bool isEngineT< NScripter > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< NScripter > ()
 
template<>
bool isEngineT< NVList > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< NVList > ()
 
template<>
bool isEngineT< Sukai2 > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< Sukai2 > ()
 
template<>
bool isEngineT< MonoGame > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< MonoGame > ()
 
template<>
bool isEngineT< XNA > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< XNA > ()
 
template<>
bool isEngineT< Adobe_AIR > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< Adobe_AIR > ()
 
template<>
bool isEngineT< QSP > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< QSP > ()
 
template<>
bool isEngineT< BAT > (atlas::utils::FileScanner &scanner)
 
template<>
QString engineNameT< BAT > ()
 
bool checkEngineType (std::string engine, atlas::utils::FileScanner &scanner)
 

Variables

constexpr std::tuple blacklist_execs
 

Function Documentation

◆ checkEngineType()

bool checkEngineType ( std::string engine,
atlas::utils::FileScanner & scanner )

◆ detectExecutables()

std::vector< std::filesystem::path > detectExecutables ( atlas::utils::FileScanner & scanner)

◆ determineEngine()

Engine determineEngine ( atlas::utils::FileScanner & scanner)

Returns an engine type of ENGINES_END if no engine is determined.

◆ engineName()

QString engineName ( const Engine engine)

Returns a string name of the engine.

◆ engineNameT< Adobe_AIR >()

template<>
QString engineNameT< Adobe_AIR > ( )

◆ engineNameT< BAT >()

template<>
QString engineNameT< BAT > ( )

◆ engineNameT< Flash >()

template<>
QString engineNameT< Flash > ( )

◆ engineNameT< HTML >()

template<>
QString engineNameT< HTML > ( )

◆ engineNameT< Java >()

template<>
QString engineNameT< Java > ( )

◆ engineNameT< KiriKiri >()

template<>
QString engineNameT< KiriKiri > ( )

◆ engineNameT< MonoGame >()

template<>
QString engineNameT< MonoGame > ( )

◆ engineNameT< NScripter >()

template<>
QString engineNameT< NScripter > ( )

◆ engineNameT< NVList >()

template<>
QString engineNameT< NVList > ( )

◆ engineNameT< QSP >()

template<>
QString engineNameT< QSP > ( )

◆ engineNameT< RAGS >()

template<>
QString engineNameT< RAGS > ( )

◆ engineNameT< RenPy >()

template<>
QString engineNameT< RenPy > ( )

◆ engineNameT< RPGM >()

template<>
QString engineNameT< RPGM > ( )

◆ engineNameT< Sukai2 >()

template<>
QString engineNameT< Sukai2 > ( )

◆ engineNameT< TyanoBuilder >()

template<>
QString engineNameT< TyanoBuilder > ( )

◆ engineNameT< Unity >()

template<>
QString engineNameT< Unity > ( )

◆ engineNameT< UNKNOWN >()

template<>
QString engineNameT< UNKNOWN > ( )

◆ engineNameT< Unreal >()

template<>
QString engineNameT< Unreal > ( )

◆ engineNameT< VisualNovelMaker >()

template<>
QString engineNameT< VisualNovelMaker > ( )

◆ engineNameT< WolfRPG >()

template<>
QString engineNameT< WolfRPG > ( )

◆ engineNameT< XNA >()

template<>
QString engineNameT< XNA > ( )

◆ findEngine()

template<Engine engine>
Engine findEngine ( atlas::utils::FileScanner & scanner)

◆ getEngineNameT()

template<Engine engine_t>
QString getEngineNameT ( const Engine engine)

◆ isBlacklist()

bool isBlacklist ( const std::string & name)

◆ isBlacklistT() [1/2]

bool isBlacklistT ( const std::string & name,
const std::string_view comp )

◆ isBlacklistT() [2/2]

bool isBlacklistT ( const std::string & name,
std::string_view comp,
std::same_as< std::string_view > auto... comps )

◆ isEngineT< Adobe_AIR >()

template<>
bool isEngineT< Adobe_AIR > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< BAT >()

template<>
bool isEngineT< BAT > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< ENGINES_BEGIN >()

template<>
bool isEngineT< ENGINES_BEGIN > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< ENGINES_END >()

template<>
bool isEngineT< ENGINES_END > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< Flash >()

template<>
bool isEngineT< Flash > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< HTML >()

template<>
bool isEngineT< HTML > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< Java >()

template<>
bool isEngineT< Java > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< KiriKiri >()

template<>
bool isEngineT< KiriKiri > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< MonoGame >()

template<>
bool isEngineT< MonoGame > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< NScripter >()

template<>
bool isEngineT< NScripter > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< NVList >()

template<>
bool isEngineT< NVList > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< QSP >()

template<>
bool isEngineT< QSP > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< RAGS >()

template<>
bool isEngineT< RAGS > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< RenPy >()

template<>
bool isEngineT< RenPy > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< RPGM >()

template<>
bool isEngineT< RPGM > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< Sukai2 >()

template<>
bool isEngineT< Sukai2 > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< TyanoBuilder >()

template<>
bool isEngineT< TyanoBuilder > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< Unity >()

template<>
bool isEngineT< Unity > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< Unreal >()

template<>
bool isEngineT< Unreal > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< VisualNovelMaker >()

template<>
bool isEngineT< VisualNovelMaker > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< WolfRPG >()

template<>
bool isEngineT< WolfRPG > ( atlas::utils::FileScanner & scanner)

◆ isEngineT< XNA >()

template<>
bool isEngineT< XNA > ( atlas::utils::FileScanner & scanner)

◆ scoreExecutables()

std::vector< std::filesystem::path > scoreExecutables ( std::vector< std::filesystem::path > paths,
const Engine engine_type )
Warning
Provides no MIME checking. CHECK YOURSELF
Parameters
paths
Returns

Variable Documentation

◆ blacklist_execs

std::tuple blacklist_execs
constexpr
Initial value:
{ std::string_view( "UnityCrashHandler32.exe" ),
std::string_view( "UnityCrashHandler64.exe" ),
std::string_view( "payload.exe" ),
std::string_view( "nwjc.exe" ),
std::string_view( "notification_helper.exe" ),
std::string_view( "nacl64.exe" ),
std::string_view( "chromedriver.exe" ),
std::string_view( "Squirrel.exe" ),
std::string_view( "zsynccmake.exe" ),
std::string_view( "zsync" ),
std::string_view( "pythonw.exe" ),
std::string_view( "python.exe" ),
std::string_view( "dxwebsetup" ),
std::string_view( "UE4PrereqSetup_X64.exe" ),
std::string_view( "UEPrereqSetup_x64.exe" ) }