From 85a19d3fb65b0e69d04256a52416f8e5c24a28b1 Mon Sep 17 00:00:00 2001 From: Prakxo <87568477+Prakxo@users.noreply.github.com> Date: Mon, 22 Jul 2024 17:22:21 +0200 Subject: m_mail_check OK (#203) * m_mail_check OK * comments --- src/code/m_mail_check.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/code/m_mail_check.c (limited to 'src/code') 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; +} -- cgit v1.2.3