<commit_before>﻿/***********************************************************************************
**
** FileManager.cpp
**
** Copyright (C) August 2016 Hotride
**
************************************************************************************
*/
//----------------------------------------------------------------------------------
#include "FileManager.h"
#include "../Wisp/WispApplication.h"

CFileManager g_FileManager;
//----------------------------------------------------------------------------------
CFileManager::CFileManager()
: m_UseVerdata(false), m_UseUOP(false), m_UnicodeFontsCount(0)
{
}
//----------------------------------------------------------------------------------
CFileManager::~CFileManager()
{
}
//----------------------------------------------------------------------------------
bool CFileManager::Load()
{
	if (g_FileManager.UseVerdata)
	{
		 if (!m_ArtIdx.Load(g_App.FilePath("artidx.mul")))
			return false;
		else if (!m_GumpIdx.Load(g_App.FilePath("gumpidx.mul")))
			return false;
		else if (!m_SoundIdx.Load(g_App.FilePath("soundidx.mul")))
			return false;
		else if (!m_ArtMul.Load(g_App.FilePath("art.mul")))
			return false;
		else if (!m_GumpMul.Load(g_App.FilePath("gumpart.mul")))
			return false;
		else if (!m_SoundMul.Load(g_App.FilePath("sound.mul")))
			return false;
	}
	else
	{
		if (!m_artLegacyMUL.Load(g_App.FilePath("artLegacyMUL.uop")))
			return false;
		if (!m_gumpartLegacyMUL.Load(g_App.FilePath("gumpartLegacyMUL.uop")))
			return false;
		if (!m_soundLegacyMUL.Load(g_App.FilePath("soundLegacyMUL.uop")))
			return false;
		if (!m_tileart.Load(g_App.FilePath("tileart.uop")))
			return false;
		if (!m_string_dictionary.Load(g_App.FilePath("string_dictionary.uop")))
			return false;
		if (!m_MultiCollection.Load(g_App.FilePath("MultiCollection.uop")))
			return false;
		if (!m_AnimationSequence.Load(g_App.FilePath("AnimationSequence.uop")))
			return false;
		if (!m_MainMisc.Load(g_App.FilePath("MainMisc.uop")))
			return false;
		if (!m_AnimationSequence.Load(g_App.FilePath("AnimationSequence.uop")))
			return false;
		IFOR(i, 1, 5)
		{
			if (!m_AnimationFrame[i].Load(g_App.FilePath("AnimationFrame%i.uop", i)))
				return false;
		}
	}
	if (!m_AnimIdx[0].Load(g_App.FilePath("anim.idx")))
		return false;
	if (!m_LightIdx.Load(g_App.FilePath("lightidx.mul")))
		return false;
	else if (!m_MultiIdx.Load(g_App.FilePath("multi.idx")))
		return false;
	else if (!m_SkillsIdx.Load(g_App.FilePath("skills.idx")))
		return false;
	else if (!m_MultiMap.Load(g_App.FilePath("multimap.rle")))
		return false;
	else if (!m_TextureIdx.Load(g_App.FilePath("texidx.mul")))
		return false;
	else if (!m_SpeechMul.Load(g_App.FilePath("speech.mul")))
		return false;
	else if (!m_AnimMul[0].Load(g_App.FilePath("anim.mul")))
		return false;
	else if (!m_AnimdataMul.Load(g_App.FilePath("animdata.mul")))
		return false;
	else if (!m_HuesMul.Load(g_App.FilePath("hues.mul")))
		return false;
	else if (!m_FontsMul.Load(g_App.FilePath("fonts.mul")))
		return false;
	else if (!m_LightMul.Load(g_App.FilePath("light.mul")))
		return false;
	else if (!m_MultiMul.Load(g_App.FilePath("multi.mul")))
		return false;
	else if (!m_PaletteMul.Load(g_App.FilePath("palette.mul")))
		return false;
	else if (!m_RadarcolMul.Load(g_App.FilePath("radarcol.mul")))
		return false;
	else if (!m_SkillsMul.Load(g_App.FilePath("skills.mul")))
		return false;
	else if (!m_TextureMul.Load(g_App.FilePath("texmaps.mul")))
		return false;
	else if (!m_TiledataMul.Load(g_App.FilePath("tiledata.mul")))
		return false;

	m_LangcodeIff.Load(g_App.FilePath("Langcode.iff"));

	IFOR(i, 0, 6)
	{
		if (g_FileManager.UseVerdata && i > 0 || i > 1)
		{
			if (!m_AnimIdx[i].Load(g_App.FilePath("anim%i.idx", i)))
				return false;
			if (!m_AnimMul[i].Load(g_App.FilePath("anim%i.mul", i)))
				return false;
		}

		if (!m_StaticIdx[i].Load(g_App.FilePath("staidx%i.mul", i)))
			return false;
		if (g_FileManager.UseVerdata)
		{
			if (!m_MapMul[i].Load(g_App.FilePath("map%i.mul", i)))
				return false;
		}
		else
		{
			if (!m_MapUOP[i].Load(g_App.FilePath("map%iLegacyMUL.uop", i)))
				return false;
			if (i == 0 || i == 1 || i == 2 || i == 5)
			{
				if (!m_MapXUOP[i].Load(g_App.FilePath("map%ixLegacyMUL.uop", i)))
					return false;
			}
		}

		if (!m_StaticMul[i].Load(g_App.FilePath("statics%i.mul", i)))
			return false;
		if (!m_FacetMul[i].Load(g_App.FilePath("facet0%i.mul", i)))
			return false;
	}

	IFOR(i, 0, 20)
	{
		string s;
		
		if (i)
			s = g_App.FilePath("unifont%i.mul", i);
		else
			s = g_App.FilePath("unifont.mul");

		if (!m_UnifontMul[i].Load(s))<commit_msg>поменял UseVerdata на UseUOP, как и должно быть. Застрял на ммапе anim2.mul. MapViewOfFile отдаёт нулевой адрес, хотя PathFileExistsA() путь находит и GetFileSize() отдаёт размер.<commit_after>﻿/***********************************************************************************
**
** FileManager.cpp
**
** Copyright (C) August 2016 Hotride
**
************************************************************************************
*/
//----------------------------------------------------------------------------------
#include "FileManager.h"
#include "../Wisp/WispApplication.h"

CFileManager g_FileManager;
//----------------------------------------------------------------------------------
CFileManager::CFileManager()
: m_UseVerdata(false), m_UseUOP(false), m_UnicodeFontsCount(0)
{
}
//----------------------------------------------------------------------------------
CFileManager::~CFileManager()
{
}
//----------------------------------------------------------------------------------
bool CFileManager::Load()
{
	if (g_FileManager.UseUOP)
	{
		 if (!m_ArtIdx.Load(g_App.FilePath("artidx.mul")))
			return false;
		else if (!m_GumpIdx.Load(g_App.FilePath("gumpidx.mul")))
			return false;
		else if (!m_SoundIdx.Load(g_App.FilePath("soundidx.mul")))
			return false;
		else if (!m_ArtMul.Load(g_App.FilePath("art.mul")))
			return false;
		else if (!m_GumpMul.Load(g_App.FilePath("gumpart.mul")))
			return false;
		else if (!m_SoundMul.Load(g_App.FilePath("sound.mul")))
			return false;
	}
	else
	{
		if (!m_artLegacyMUL.Load(g_App.FilePath("artLegacyMUL.uop")))
			return false;
		if (!m_gumpartLegacyMUL.Load(g_App.FilePath("gumpartLegacyMUL.uop")))
			return false;
		if (!m_soundLegacyMUL.Load(g_App.FilePath("soundLegacyMUL.uop")))
			return false;
		if (!m_tileart.Load(g_App.FilePath("tileart.uop")))
			return false;
		if (!m_string_dictionary.Load(g_App.FilePath("string_dictionary.uop")))
			return false;
		if (!m_MultiCollection.Load(g_App.FilePath("MultiCollection.uop")))
			return false;
		if (!m_AnimationSequence.Load(g_App.FilePath("AnimationSequence.uop")))
			return false;
		if (!m_MainMisc.Load(g_App.FilePath("MainMisc.uop")))
			return false;
		if (!m_AnimationSequence.Load(g_App.FilePath("AnimationSequence.uop")))
			return false;
		IFOR(i, 1, 5)
		{
			if (!m_AnimationFrame[i].Load(g_App.FilePath("AnimationFrame%i.uop", i)))
				return false;
		}
	}
	if (!m_AnimIdx[0].Load(g_App.FilePath("anim.idx")))
		return false;
	if (!m_LightIdx.Load(g_App.FilePath("lightidx.mul")))
		return false;
	else if (!m_MultiIdx.Load(g_App.FilePath("multi.idx")))
		return false;
	else if (!m_SkillsIdx.Load(g_App.FilePath("skills.idx")))
		return false;
	else if (!m_MultiMap.Load(g_App.FilePath("multimap.rle")))
		return false;
	else if (!m_TextureIdx.Load(g_App.FilePath("texidx.mul")))
		return false;
	else if (!m_SpeechMul.Load(g_App.FilePath("speech.mul")))
		return false;
	else if (!m_AnimMul[0].Load(g_App.FilePath("anim.mul")))
		return false;
	else if (!m_AnimdataMul.Load(g_App.FilePath("animdata.mul")))
		return false;
	else if (!m_HuesMul.Load(g_App.FilePath("hues.mul")))
		return false;
	else if (!m_FontsMul.Load(g_App.FilePath("fonts.mul")))
		return false;
	else if (!m_LightMul.Load(g_App.FilePath("light.mul")))
		return false;
	else if (!m_MultiMul.Load(g_App.FilePath("multi.mul")))
		return false;
	else if (!m_PaletteMul.Load(g_App.FilePath("palette.mul")))
		return false;
	else if (!m_RadarcolMul.Load(g_App.FilePath("radarcol.mul")))
		return false;
	else if (!m_SkillsMul.Load(g_App.FilePath("skills.mul")))
		return false;
	else if (!m_TextureMul.Load(g_App.FilePath("texmaps.mul")))
		return false;
	else if (!m_TiledataMul.Load(g_App.FilePath("tiledata.mul")))
		return false;

	m_LangcodeIff.Load(g_App.FilePath("Langcode.iff"));

	IFOR(i, 0, 6)
	{
		if (g_FileManager.UseUOP && i > 0 || i > 1)
		{
			if (!m_AnimIdx[i].Load(g_App.FilePath("anim%i.idx", i)))
				return false;
			if (!m_AnimMul[i].Load(g_App.FilePath("anim%i.mul", i)))
				return false;
		}

		if (!m_StaticIdx[i].Load(g_App.FilePath("staidx%i.mul", i)))
			return false;
		if (g_FileManager.UseUOP)
		{
			if (!m_MapMul[i].Load(g_App.FilePath("map%i.mul", i)))
				return false;
		}
		else
		{
			if (!m_MapUOP[i].Load(g_App.FilePath("map%iLegacyMUL.uop", i)))
				return false;
			if (i == 0 || i == 1 || i == 2 || i == 5)
			{
				if (!m_MapXUOP[i].Load(g_App.FilePath("map%ixLegacyMUL.uop", i)))
					return false;
			}
		}

		if (!m_StaticMul[i].Load(g_App.FilePath("statics%i.mul", i)))
			return false;
		if (!m_FacetMul[i].Load(g_App.FilePath("facet0%i.mul", i)))
			return false;
	}

	IFOR(i, 0, 20)
	{
		string s;
		
		if (i)
			s = g_App.FilePath("unifont%i.mul", i);
		else
			s = g_App.FilePath("unifont.mul");

		if (!m_UnifontMul[i].Load(s))
{'fraction_non_alphanumeric': 0.2662558436039099, 'fraction_numerical': 0.0045686357841053975, 'mean_word_length': 3.435909519321395, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1985138', 'n_tokens_mistral': 3818, 'n_tokens_neox': 3517, 'n_words': 544}