Skip to content

Commit b2a4dc5

Browse files
committed
EXPERIMENTAL: add GameRegistries
1 parent da5766f commit b2a4dc5

4 files changed

Lines changed: 34 additions & 3 deletions

File tree

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
2626
endif()
2727

2828

29-
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
29+
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
3030
target_link_libraries(${PROJECT_NAME} PRIVATE user32 kernel32)
3131

3232
file(GLOB_RECURSE PROJECT_SOURCE "src/*.cpp")
33-
target_sources(${PROJECT_NAME} PUBLIC src/Lib/miniz.c ${PROJECT_SOURCE})
33+
target_sources(${PROJECT_NAME} PRIVATE src/Lib/miniz.c ${PROJECT_SOURCE})

src/GameRegistries.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#include "GameRegistries.hpp"
2+
#include "GameData.hpp"
3+
#include "ModLoader.hpp"
4+
#include "SDK/DP1Project.h"
5+
6+
WrappedRegistry<ItemMaterialData, FGDItemMaterialData>* GameRegistries::ITEM_MATERIAL = nullptr;
7+
8+
void GameRegistries::init(GameData* gameData)
9+
{
10+
ModLoader::logger->verbose("Initialize Game Registries");
11+
auto* sdm = gameData->getStaticDataManager();
12+
13+
bindItem(sdm);
14+
}
15+
16+
void GameRegistries::bindItem(UStaticDataManager* sdm)
17+
{
18+
ModLoader::gameData->waitObject(&sdm->m_ItemMaterialData);
19+
ITEM_MATERIAL = new WrappedRegistry<ItemMaterialData, FGDItemMaterialData>();
20+
ITEM_MATERIAL->Bind(&sdm->m_ItemMaterialData->m_dataMap);
21+
ITEM_MATERIAL->BuildIndex();
22+
ModLoader::logger->verbose("Binded Material Item Registry!");
23+
24+
}
25+
26+

src/ModLoader.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "ModLoader.hpp"
22
#include "GameCache.hpp"
33
#include "GameData.hpp"
4+
#include "GameRegistries.hpp"
45
#include "Hook/EventHandler.hpp"
56
#include "Patcher/Patcher.hpp"
67
#include "Patcher/Patches/EventHook.hpp"
@@ -29,6 +30,10 @@ void WINAPI ModLoader::init(MODULEINFO* moduleInfo)
2930
gameData->init();
3031

3132
gameCache = new GameCache();
33+
34+
GameRegistries* gameReg = new GameRegistries();
35+
gameReg->init(gameData);
36+
3237
configManager = new ConfigManager("../../Content/Settings");
3338
modEnvironnement = new ModEnvironnement("../../Content/Mods");
3439
modEnvironnement->PreLoad();

0 commit comments

Comments
 (0)