diff options
| author | Prakxo <87568477+Prakxo@users.noreply.github.com> | 2024-09-21 18:17:13 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-21 09:17:13 -0700 |
| commit | 2c7d61be83bedf7252cb0dccc0c681bfb6bb29da (patch) | |
| tree | 0bb4502456b7807f4529e5cf246545011bc7f4d1 /src | |
| parent | a12931233d710ca9d1336a1ecb5e63f7c941ce7d (diff) | |
m_land OK (#212)
Diffstat (limited to 'src')
| -rw-r--r-- | src/code/m_land.c | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/src/code/m_land.c b/src/code/m_land.c new file mode 100644 index 0000000..b8b39c1 --- /dev/null +++ b/src/code/m_land.c @@ -0,0 +1,147 @@ +#include "m_land.h" +#include "m_string.h" +#include "m_lib.h" +#include "m_msg_main.h" +#include "6B81C0.h" + +s32 mLd_NullCheckLandName(char* landName) { + s32 isNull = FALSE; + s32 i; + + for (i = 0; i < LAND_NAME_SIZE; i++) { + if (*landName != ' ') { + break; + } + landName++; + } + + if (i == LAND_NAME_SIZE) { + isNull = TRUE; + } + return isNull; +} + +s32 mLd_CheckId(u16 landId) { + s32 res = FALSE; + + if (mLd_CHECK_ID(landId)) { + res = TRUE; + } + + return res; +} + +s32 mLd_CheckCmpLandName(char* nameA, char* nameB) { + s32 equal = FALSE; + + if (mLd_NullCheckLandName(nameA) == FALSE && mLd_NullCheckLandName(nameB) == FALSE) { + equal = mem_cmp((u8*)nameA, (u8*)nameB, LAND_NAME_SIZE); + } + + return equal; +} + +s32 mLd_CheckCmpLand(char* nameA, u16 idA, char* nameB, u16 idB) { + s32 equal = FALSE; + + if (idA == idB && mLd_CheckCmpLandName(nameA, nameB) == TRUE) { + equal = TRUE; + } + + return equal; +} + +void mLd_ClearLandName(char* name) { + mem_clear((u8*)name, LAND_NAME_SIZE, ' '); +} + +void mLd_CopyLandName(char* nameA, char* nameB) { + mem_copy((u8*)nameA, (u8*)nameB, LAND_NAME_SIZE); +} + +size_t mLd_AddMuraString(char* name, size_t len) { + char buf[10]; + size_t size; + UNUSED s32 pad; + size_t lenNew; + + mString_Load_StringFromRom(buf, sizeof(buf), 484); + size = mMsg_Get_Length_String(buf, sizeof(buf)); + lenNew = size + len; + + mem_copy((u8*)(name + len), (u8*)buf, size); + + return lenNew; +} + +size_t mLd_GetLandNameStringAddMura(char* buf) { + char* name; + size_t size; + size_t muraSize; + s32 i; + + name = mLd_GetLandName(); + size = mMsg_Get_Length_String(name, LAND_NAME_SIZE); + + mem_copy((u8*)buf, (u8*)name, size); + muraSize = mLd_AddMuraString(buf, size); + + for (i = muraSize; i < LAND_NAME_MURA_SIZE; i++) { + buf[i] = ' '; + } + + return muraSize; +} + +void mLd_SetFreeStrLandMuraName(char* name, s32 freeStr) { + char str[8]; + size_t nameLen; + s32 i; + + for (i = 0; i < LAND_NAME_MURA_SIZE; i++) { + str[i] = ' '; + } + + nameLen = mMsg_Get_Length_String(name, LAND_NAME_SIZE); + mem_copy((u8*)str, (u8*)name, nameLen); + nameLen = mLd_AddMuraString(str, nameLen); + mMsg_Set_free_str(mMsg_Get_base_window_p(), freeStr, str, nameLen); +} + +char* mLd_GetLandName() { + return common_data.save.landInfo.name; +} + +u16 mLd_MakeLandId() { + return (u16)(RANDOM_F(256)) | 0x3000; +} + +s32 mLd_PlayerManKindCheckNo(u8 playerNo) { + s32 foreigner = TRUE; + + if (playerNo < PLAYER_NUM) { + foreigner = FALSE; + } + + return foreigner; +} + +s32 mLd_PlayerManKindCheck() { + return mLd_PlayerManKindCheckNo(common_data.playerNumber); +} + +s32 mLd_CheckThisLand(char* otherName, u16 otherId) { + return mLd_CheckCmpLand(otherName, otherId, common_data.save.landInfo.name, common_data.save.landInfo.id); +} + +void mLd_LandInfoInit() { + LandInfo* landInfo = &common_data.save.landInfo; + + landInfo->id = mLd_MakeLandId(); + landInfo->exists = TRUE; +} + +void mLd_LandDataInit() { + mLd_LandInfoInit(); + mHm_ClearAllHomeInfo(); +} |
