diff --git a/Source/Resource/ResourcePreload.cpp b/Source/Resource/ResourcePreload.cpp new file mode 100644 index 00000000..11aa3630 --- /dev/null +++ b/Source/Resource/ResourcePreload.cpp @@ -0,0 +1,48 @@ +#include "Resource/ResourcePreload.h" +#include "Resource/Resource.h" +#include "Resource/ResourceMgr.h" + +// GLOBAL: gl_25068 +int g_spriteHalfWidth; + +// GLOBAL: gl_25069 +int g_spriteHalfHeight; + +// OFFSET: 0x00DFCDA0 +// FUNCTION: fn_23602 +void PreloadCommonSprites() { + CRes* shadowAction = ResourceMgr::Instance().Load("shadow.act"); + CRes* shadowSprite = ResourceMgr::Instance().Load("shadow.spr"); + if (shadowAction) { + shadowAction->Lock(); + } + if (shadowSprite) { + shadowSprite->Lock(); + } + + const int halfWidth = g_spriteHalfWidth; + const int halfHeight = g_spriteHalfHeight; + g_spriteHalfWidth = 0; + g_spriteHalfHeight = 0; + + CRes* cursorAction = ResourceMgr::Instance().Load("cursors.act"); + CRes* cursorSprite = ResourceMgr::Instance().Load("cursors.spr"); + if (cursorAction) { + cursorAction->Lock(); + } + if (cursorSprite) { + cursorSprite->Lock(); + } + + CRes* numberAction = ResourceMgr::Instance().Load("이팩트\\숫자.act"); + CRes* numberSprite = ResourceMgr::Instance().Load("이팩트\\숫자.spr"); + if (numberAction) { + numberAction->Lock(); + } + if (numberSprite) { + numberSprite->Lock(); + } + + g_spriteHalfWidth = halfWidth; + g_spriteHalfHeight = halfHeight; +} diff --git a/Source/Resource/ResourcePreload.h b/Source/Resource/ResourcePreload.h new file mode 100644 index 00000000..4124bec4 --- /dev/null +++ b/Source/Resource/ResourcePreload.h @@ -0,0 +1,9 @@ +#ifndef RAGNAROK_SOURCE_RESOURCE_RESOURCEPRELOAD_H +#define RAGNAROK_SOURCE_RESOURCE_RESOURCEPRELOAD_H + +extern int g_spriteHalfWidth; +extern int g_spriteHalfHeight; + +void PreloadCommonSprites(); + +#endif diff --git a/data/compile.json b/data/compile.json index 343b1657..920d1d17 100644 --- a/data/compile.json +++ b/data/compile.json @@ -778,6 +778,7 @@ "Source/Resource/ResourceAliases.cpp": 3, "Source/Resource/ResourceFailures.cpp": 3, "Source/Resource/ResourceMgr.cpp": 3, + "Source/Resource/ResourcePreload.cpp": 3, "Source/Resource/ResourcePresence.cpp": 3, "Source/Resource/ResourceTransient.cpp": 3, "Source/Resource/RmaResource.cpp": 3,