From e1fcb33cef0b8e58ce3cecc2977921e685f129ba Mon Sep 17 00:00:00 2001 From: Prakxo <87568477+Prakxo@users.noreply.github.com> Date: Thu, 23 Nov 2023 18:03:30 +0100 Subject: The NPC PR 3/3 OK (#119) * npc werk * atleast it builds * m_npc OK * forgor format * review * format * fix warns? --- src/code/m_mail.c | 108 +++++++++++++++++++++++++++--------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) (limited to 'src/code/m_mail.c') diff --git a/src/code/m_mail.c b/src/code/m_mail.c index d816fe2..d967753 100644 --- a/src/code/m_mail.c +++ b/src/code/m_mail.c @@ -2,7 +2,7 @@ #include "m_common_data.h" #include "m_lib.h" #include "m_npc.h" -#include "6B8A70.h" +#include "m_land.h" #include "unknown_structs.h" #include "macros.h" @@ -50,21 +50,21 @@ void mMl_strcpy_back(char* dst, const char* src, s32 size) { } } -void mMl_clear_mail_header(Mail* mail) { - mPr_ClearPersonalID(&mail->unk_00.unk_00); - mail->unk_00.unk_10 = 0xFF; - mPr_ClearPersonalID(&mail->unk_12.unk_00); - mail->unk_12.unk_10 = 0xFF; +void mMl_clear_mail_header(Mail_c* mail) { + mPr_ClearPersonalID(&mail->header.recipient.personalID); + mail->header.recipient.type = 0xFF; + mPr_ClearPersonalID(&mail->header.sender.personalID); + mail->header.sender.type = 0xFF; } -void mMl_clear_mail(Mail* mail) { - bzero(mail, sizeof(Mail)); +void mMl_clear_mail(Mail_c* mail) { + bzero(mail, sizeof(Mail_c)); mMl_clear_mail_header(mail); - mem_clear((u8*)&mail->unk_2A, sizeof(mMl_unk_2A), 0x20); - mail->unk_26 = 0xFF; + mem_clear(mail->content.header, MAIL_HEADER_LEN + MAIL_BODY_LEN + MAIL_FOOTER_LEN, 0x20); + mail->content.font = 0xFF; } -void mMl_clear_mail_box(Mail mail[], s32 arg1) { +void mMl_clear_mail_box(Mail_c mail[], s32 arg1) { while (arg1 != 0) { arg1--; mMl_clear_mail(mail); @@ -72,47 +72,47 @@ void mMl_clear_mail_box(Mail mail[], s32 arg1) { } } -s32 mMl_check_not_used_mail(Mail* mail) { +s32 mMl_check_not_used_mail(Mail_c* mail) { s32 ret = 0; - if (mail->unk_26 == 0xFF) { + if (mail->content.font == 0xFF) { ret = 1; } return ret; } void mMl_copy_header_name(mMl_unk_00* arg0, mMl_unk_00* arg1) { - arg0->unk_10 = arg1->unk_10; - mPr_CopyPersonalID(&arg0->unk_00, &arg1->unk_00); + arg0->type = arg1->type; + mPr_CopyPersonalID(&arg0->personalID, &arg1->personalID); } -void mMl_set_from_name(Mail* arg0, Mail* arg1) { - mMl_copy_header_name(&arg0->unk_12, &arg1->unk_00); +void mMl_set_from_name(Mail_c* arg0, Mail_c* arg1) { + mMl_copy_header_name(&arg0->header.sender, &arg1->header.recipient); } -void mMl_set_to_name(Mail* arg0, Mail* arg1) { - mMl_copy_header_name(&arg0->unk_00, &arg1->unk_00); +void mMl_set_to_name(Mail_c* arg0, Mail_c* arg1) { + mMl_copy_header_name(&arg0->header.recipient, &arg1->header.recipient); } -void mMl_set_to_plname(Mail* arg0, Mail* arg1) { - mPr_CopyPersonalID(&arg0->unk_00.unk_00, &arg1->unk_00.unk_00); - arg0->unk_00.unk_10 = 0; +void mMl_set_to_plname(Mail_c* arg0, Mail_c* arg1) { + mPr_CopyPersonalID(&arg0->header.recipient.personalID, &arg1->header.recipient.personalID); + arg0->header.recipient.type = 0; } -void mMl_set_playername(Mail* mail, PersonalID* arg1) { - mPr_CopyPersonalID(&mail->unk_12.unk_00, arg1); - mail->unk_12.unk_10 = 0; +void mMl_set_playername(Mail_c* mail, PersonalID_c* arg1) { + mPr_CopyPersonalID(&mail->header.sender.personalID, arg1); + mail->header.sender.type = 0; } -void mMl_init_mail(Mail* mail, PersonalID* arg1) { +void mMl_init_mail(Mail_c* mail, PersonalID_c* arg1) { mMl_clear_mail(mail); mMl_set_playername(mail, arg1); - mail->unk_26 = 1; - mail->unk_28 = 0; - mail->unk_29 = 0; + mail->content.font = 1; + mail->content.mailType = 0; + mail->content.paperType = 0; } -s32 mMl_chk_mail_free_space(Mail mail[], s32 arg1) { +s32 mMl_chk_mail_free_space(Mail_c mail[], s32 arg1) { s32 i; for (i = 0; i < arg1; i++) { @@ -124,7 +124,7 @@ s32 mMl_chk_mail_free_space(Mail mail[], s32 arg1) { return -1; } -s32 mMl_use_mail_space(Mail mail[], s32 arg1, PersonalID* arg2) { +s32 mMl_use_mail_space(Mail_c mail[], s32 arg1, PersonalID_c* arg2) { s32 index = mMl_chk_mail_free_space(mail, arg1); if (index != -1) { @@ -133,7 +133,7 @@ s32 mMl_use_mail_space(Mail mail[], s32 arg1, PersonalID* arg2) { return index; } -s32 mMl_count_use_mail_space(Mail mail[], s32 arg1) { +s32 mMl_count_use_mail_space(Mail_c mail[], s32 arg1) { s32 i; s32 ret = 0; @@ -146,8 +146,8 @@ s32 mMl_count_use_mail_space(Mail mail[], s32 arg1) { return ret; } -void mMl_copy_mail(Mail* dst, Mail* src) { - mem_copy((u8*)dst, (u8*)src, sizeof(Mail)); +void mMl_copy_mail(Mail_c* dst, Mail_c* src) { + mem_copy((u8*)dst, (u8*)src, sizeof(Mail_c)); } void mMl_clear_mail_header_common(MailHeaderCommon* arg0) { @@ -161,40 +161,40 @@ void mMl_copy_mail_header_common(MailHeaderCommon* arg0, MailHeaderCommon* arg1) mem_copy((u8*)arg0, (u8*)arg1, sizeof(MailHeaderCommon)); } -void mMl_set_mail_name_npcinfo(mMl_unk_00* arg0, mMl_get_npcinfo_from_mail_name_arg0* arg1) { - PlayerName sp20; +void mMl_set_mail_name_npcinfo(mMl_unk_00* arg0, AnmPersonalID_c* arg1) { + char name[PLAYER_NAME_LEN]; - arg0->unk_10 = 1; - mNpc_GetNpcWorldNameAnm(&sp20, arg1); - mPr_CopyPlayerName(&arg0->unk_00.unk_0, &sp20); - arg0->unk_00.unk_E = arg1->unk_2; - mLd_CopyLandName(&arg0->unk_00.unk_6, &arg1->unk_4); - arg0->unk_00.unk_C = ((arg1->unk_0 & 0xFF) << 8) | (arg1->unk_A & 0xFF); + arg0->type = 1; + mNpc_GetNpcWorldNameAnm(name, arg1); + mPr_CopyPlayerName(arg0->personalID.playerName, name); + arg0->personalID.landId = arg1->landId; + mLd_CopyLandName(arg0->personalID.landName, arg1->landName); + arg0->personalID.playerId = ((arg1->npcId & 0xFF) << 8) | (arg1->nameId & 0xFF); } -s32 mMl_get_npcinfo_from_mail_name(mMl_get_npcinfo_from_mail_name_arg0* arg0, mMl_unk_00* arg1) { +s32 mMl_get_npcinfo_from_mail_name(AnmPersonalID_c* arg0, mMl_unk_00* arg1) { s32 var_v1 = 0; - if (arg1->unk_10 == 1) { - arg0->unk_0 = (((arg1->unk_00.unk_C & 0xFF00) >> 8) | 0xE000); - arg0->unk_2 = arg1->unk_00.unk_E; - mLd_CopyLandName(&arg0->unk_4, &arg1->unk_00.unk_6); - arg0->unk_A = arg1->unk_00.unk_C & 0xFFFF; - arg0->unk_B = mNpc_GetLooks(arg0->unk_0); + if (arg1->type == 1) { + arg0->npcId = (((arg1->personalID.playerId & 0xFF00) >> 8) | 0xE000); + arg0->landId = arg1->personalID.landId; + mLd_CopyLandName(arg0->landName, arg1->personalID.landName); + arg0->nameId = arg1->personalID.playerId & 0xFFFF; + arg0->looks = mNpc_GetLooks(arg0->npcId); var_v1 = 1; } return var_v1; } -s32 mMl_hunt_for_send_address(Mail* mail) { +s32 mMl_hunt_for_send_address(Mail_c* mail) { s32 i; - if (mail->unk_00.unk_10 != 0) { + if (mail->header.recipient.type != 0) { return -1; } for (i = 0; i < ARRAY_COUNT(common_data.homes); i++) { - if (mPr_CheckCmpPersonalID(&common_data.homes[i].unk_000, &mail->unk_00.unk_00) == 1) { + if (mPr_CheckCmpPersonalID(&common_data.homes[i].ownerID, &mail->header.recipient.personalID) == 1) { return i; } } @@ -212,8 +212,8 @@ s32 mMl_check_send_mail(struct_func_8085CE18_jp_arg4* arg0) { } } -s32 mMl_check_set_present_myself(Mail* mail) { - switch (mail->unk_26) { +s32 mMl_check_set_present_myself(Mail_c* mail) { + switch (mail->content.font) { case 1: case 3: case 4: -- cgit v1.2.3