diff options
| author | Prakxo <87568477+Prakxo@users.noreply.github.com> | 2024-07-22 17:22:21 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-22 08:22:21 -0700 |
| commit | 85a19d3fb65b0e69d04256a52416f8e5c24a28b1 (patch) | |
| tree | a353b9a876577f7f253fd18a0fd4f27815c99712 /src | |
| parent | 9cb07c495cfda1c667ed865208e90d1144f4e9a2 (diff) | |
m_mail_check OK (#203)
* m_mail_check OK
* comments
Diffstat (limited to 'src')
| -rw-r--r-- | src/code/m_mail_check.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/code/m_mail_check.c b/src/code/m_mail_check.c new file mode 100644 index 0000000..9946303 --- /dev/null +++ b/src/code/m_mail_check.c @@ -0,0 +1,35 @@ +#include "m_mail_check.h" +#include "segment_symbols.h" +#include "game.h" +#include "ovlmgr.h" +#include "m_malloc.h" + +typedef s32 (*MailCheckOvlUnkFunc)(s32* len, u8* str); + +extern s32 mMck_check_key_hit(s32* len, u8* str); + +s32 mMC_get_mail_hit_rate(s32* len, u8* str, Game* game) { + void* buf; + MailCheckOvlUnkFunc func; + s32 ret; + + if (game != NULL) { + buf = gamealloc_malloc(&game->alloc, SEGMENT_VRAM_SIZE(m_mail_check_ovl)); + } else { + buf = zelda_malloc(SEGMENT_VRAM_SIZE(m_mail_check_ovl)); + } + + ovlmgr_Load(SEGMENT_ROM_START(m_mail_check_ovl), SEGMENT_ROM_END(m_mail_check_ovl), + SEGMENT_VRAM_START(m_mail_check_ovl), SEGMENT_VRAM_END(m_mail_check_ovl), buf); + func = (MailCheckOvlUnkFunc)SEGMENT_VRAM_RESOLVE_ADDR(m_mail_check_ovl, buf, mMck_check_key_hit); + + ret = func(len, str); + + if (game != NULL) { + gamealloc_free(&game->alloc, buf); + } else { + zelda_free(buf); + } + + return ret; +} |
