diff --git a/Source/Resource/Bitmap/BitmapResource.h b/Source/Resource/Bitmap/BitmapResource.h index 20d291f7..288609ee 100644 --- a/Source/Resource/Bitmap/BitmapResource.h +++ b/Source/Resource/Bitmap/BitmapResource.h @@ -33,6 +33,10 @@ public: bool Load(const char* name) override; void Unload() override; virtual bool Decode(const char* name, const void* data, int bytes, bool iconOnly); + // INLINED + BitmapResourceContext& Context() const { + return *this->m_context; + } /* 0110 */ BitmapImage image; diff --git a/Source/Resource/EmblemResource.cpp b/Source/Resource/EmblemResource.cpp new file mode 100644 index 00000000..99441749 --- /dev/null +++ b/Source/Resource/EmblemResource.cpp @@ -0,0 +1,48 @@ +#include "Resource/EmblemResource.h" + +#include "Contents/Emblems/EmblemCache.h" +#include "Contents/GuildMgr.h" +#include "File/File.h" + +#include +#include +#include +#include + +namespace { + // INLINED + EmblemCache& GuildEmblemCache() { + return *reinterpret_cast(g_guildMgr); + } +} + +// INLINED +CEmblemRes::CEmblemRes(BitmapResourceContext& context) : gif(context) { +} + +// INLINED +CEmblemRes::~CEmblemRes() = default; + +// OFFSET: 0x0074C9F0 + +// OFFSET: 0x0074CA90 + +// OFFSET: 0x0074CD00 +// FUNCTION: fn_07882 +void CEmblemRes::Unload() { + this->gif.Unload(); +} + +// OFFSET: 0x0074CD10 +// FUNCTION: fn_07883 +void CEmblemRes::Slot02() { + this->gif.Slot02(); +} + +// OFFSET: 0x0074CD20 +// FUNCTION: fn_07884 +bool CEmblemRes::IsTransient() { + return this->gif.IsTransient(); +} + +// OFFSET: 0x0074CD40 diff --git a/Source/Resource/EmblemResource.h b/Source/Resource/EmblemResource.h new file mode 100644 index 00000000..fe9ec5d2 --- /dev/null +++ b/Source/Resource/EmblemResource.h @@ -0,0 +1,21 @@ +#ifndef RAGNAROK_SOURCE_RESOURCE_EMBLEMRESOURCE_H +#define RAGNAROK_SOURCE_RESOURCE_EMBLEMRESOURCE_H + +#include "Resource/GifResource.h" +#include "Resource/Resource.h" + +class CEmblemRes : public CRes { +public: + explicit CEmblemRes(BitmapResourceContext& context); + ~CEmblemRes() override; + void Slot02() override; + bool IsTransient() override; + CEmblemRes* Create() override; + bool Load(const char* name) override; + void Unload() override; + void MissingFile(CRenderSystemBase* system, const char* name) override; + + /* 0110 */ CGifRes gif; +}; + +#endif diff --git a/data/compile.json b/data/compile.json index 366b6e34..3721fed3 100644 --- a/data/compile.json +++ b/data/compile.json @@ -562,6 +562,7 @@ "Source/Resource/Bitmap/BitmapImagePng.cpp": 3, "Source/Resource/Bitmap/BitmapResource.cpp": 3, "Source/Resource/EZeffectResource.cpp": 3, + "Source/Resource/EmblemResource.cpp": 3, "Source/Resource/GifLzw.cpp": 3, "Source/Resource/GifResource.cpp": 3, "Source/Resource/ImfLayerIndex.cpp": 3,