mirror of
				https://github.com/Laupetin/OpenAssetTools.git
				synced 2025-10-31 10:36:58 +00:00 
			
		
		
		
	chore: fix loading and writing code for T6
This commit is contained in:
		
							
								
								
									
										47
									
								
								src/ObjLoading/Game/T6/StringTable/LoaderStringTableT6.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/ObjLoading/Game/T6/StringTable/LoaderStringTableT6.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| #include "LoaderStringTableT6.h" | ||||
|  | ||||
| #include "Csv/CsvStream.h" | ||||
| #include "Game/T6/CommonT6.h" | ||||
| #include "Game/T6/T6.h" | ||||
| #include "StringTable/StringTableLoader.h" | ||||
|  | ||||
| #include <cstring> | ||||
|  | ||||
| using namespace T6; | ||||
|  | ||||
| namespace | ||||
| { | ||||
|     class StringTableLoader final : public AssetCreator<AssetStringTable> | ||||
|     { | ||||
|     public: | ||||
|         StringTableLoader(MemoryManager& memory, ISearchPath& searchPath) | ||||
|             : m_memory(memory), | ||||
|               m_search_path(searchPath) | ||||
|         { | ||||
|         } | ||||
|  | ||||
|         AssetCreationResult CreateAsset(const std::string& assetName, AssetCreationContext& context) override | ||||
|         { | ||||
|             const auto file = m_search_path.Open(assetName); | ||||
|             if (!file.IsOpen()) | ||||
|                 return AssetCreationResult::NoAction(); | ||||
|  | ||||
|             string_table::StringTableLoaderV3<StringTable, Common::Com_HashString> loader; | ||||
|             auto* stringTable = loader.LoadFromStream(assetName, m_memory, *file.m_stream); | ||||
|  | ||||
|             return AssetCreationResult::Success(context.AddAsset<AssetStringTable>(assetName, stringTable)); | ||||
|         } | ||||
|  | ||||
|     private: | ||||
|         MemoryManager& m_memory; | ||||
|         ISearchPath& m_search_path; | ||||
|     }; | ||||
| } // namespace | ||||
|  | ||||
| namespace T6 | ||||
| { | ||||
|     std::unique_ptr<AssetCreator<AssetStringTable>> CreateStringTableLoader(MemoryManager& memory, ISearchPath& searchPath) | ||||
|     { | ||||
|         return std::make_unique<StringTableLoader>(memory, searchPath); | ||||
|     } | ||||
| } // namespace T6 | ||||
							
								
								
									
										13
									
								
								src/ObjLoading/Game/T6/StringTable/LoaderStringTableT6.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/ObjLoading/Game/T6/StringTable/LoaderStringTableT6.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| #pragma once | ||||
|  | ||||
| #include "Asset/IAssetCreator.h" | ||||
| #include "Game/T6/T6.h" | ||||
| #include "SearchPath/ISearchPath.h" | ||||
| #include "Utils/MemoryManager.h" | ||||
|  | ||||
| #include <memory> | ||||
|  | ||||
| namespace T6 | ||||
| { | ||||
|     std::unique_ptr<AssetCreator<AssetStringTable>> CreateStringTableLoader(MemoryManager& memory, ISearchPath& searchPath); | ||||
| } // namespace T6 | ||||
		Reference in New Issue
	
	Block a user