diff options
| author | kuchenmitsahne <25233413+kuchenmitsahne@users.noreply.github.com> | 2025-06-04 19:38:23 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-04 16:38:23 -0700 |
| commit | a4d5910cdb9bed05fa5aea4476a3cf4ef178be06 (patch) | |
| tree | 017ad9a1547e3206190c216d8a7ddd2e95ff327c /src/code/m_field_info.c | |
| parent | 8c6ae625aef6d07741cd8925f422f43ae24b198c (diff) | |
m_random_field OK (#241)
* 25 functions OK
* 10 functions OK
* Add block type and block kind enums/defines
* Formatting/style pass
* Move `FieldMakeBlockType` to `m_field_make`
* Remove unused/duplicate defines
* Split data out for `m_quest` and `m_random_field`; rename data symbols
* Generate `m_random_field.c` and rename function symbols.
* mRF_BlockTypeDirect2GateType, mRF_BlockTypeDirect2GateData OK
* mRF_Type2BlockInfo, mRF_Info2BlockType, mRF_GateType2GateCount, mRF_SearchPond, mRF_Attr2BeastRoadAttr, mRF_CheckBeastRoad OK
* mFI_GetUnitCol OK; mRF_PrintDebug and mRF_BlockInf2CheckBeastRoad OK (pending data import).
* Fix `m_random_field` code split; all newly included functions OK
* Fix mRF_Malloc return type; formatting pass
* Name m_random_field_ovl
* Rename data symbols (m_random_field_ovl).
* Rename symbols (all functions named)
* Import data
* Declare overlay segment; rename symbols
* mRF_MakeRandomField OK (all functions matching).
* Extract asset `data_combi_table`
* Clean up mRF_MakeRandomField; document m_field_make.h
* Rename mCoBG_unkStruct->unk6 as unitAttribute
* Misc cleanup and formatting.
* Rename additional data symbols (m_random_field_ovl).
* Formatting pass
* Improve documentation of BackgroundAttribute enum.
* Formatting pass; add omitted attribute.
Diffstat (limited to 'src/code/m_field_info.c')
| -rw-r--r-- | src/code/m_field_info.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/code/m_field_info.c b/src/code/m_field_info.c index 66722a8..85c8c3b 100644 --- a/src/code/m_field_info.c +++ b/src/code/m_field_info.c @@ -6,7 +6,7 @@ s32 mFI_BlockCheck(s32 blockX, s32 blockZ); -// mCoBG_unkStructUnion l_edge_ut = { { 0, 31, 31, 31, 31, 31, mCoBG_ATTRIBUTE_0 } }; +// mCoBG_unkStructUnion l_edge_ut = { { 0, 31, 31, 31, 31, 31, mCoBG_ATTRIBUTE_GRASS0 } }; extern mCoBG_unkStructUnion l_edge_ut; extern FieldMakeInfo* g_fdinfo; @@ -511,13 +511,23 @@ mCoBG_unkStructUnion* mFI_UtNum2UtCol(s32 utX, s32 utZ) { #pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/func_800897D0_jp.s") -#pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/func_80089888_jp.s") +mCoBG_unkStructUnion* mFI_GetUnitCol(xyz_t wpos) { + s32 utX; + s32 utZ; + s32 validWpos = mFI_Wpos2UtNum(&utX, &utZ, wpos); + + if (!validWpos) { + return &l_edge_ut; + } else { + return mFI_UtNum2UtCol(utX, utZ); + } +} #pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/func_800898F4_jp.s") #pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/func_800899CC_jp.s") -#pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/func_80089A34_jp.s") +#pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/mFI_GetSoundSourcePBlockNum.s") #pragma GLOBAL_ASM("asm/jp/nonmatchings/code/m_field_info/func_80089AAC_jp.s") @@ -749,7 +759,7 @@ s32 mFI_GetWaveUtinBlock(s32* arg0, s32* arg1, s32 arg2, s32 arg3) { for (i = 0; i < 0x100; i++) { - if (func_80076358_jp(var_s1->data.unk6) == 1) { + if (func_80076358_jp(var_s1->data.unitAttribute) == 1) { var_s3 += 1; } @@ -762,7 +772,7 @@ s32 mFI_GetWaveUtinBlock(s32* arg0, s32* arg1, s32 arg2, s32 arg3) { for (i = 0; i < 0x100; i++) { - if (func_80076358_jp(var_s1->data.unk6) == 1) { + if (func_80076358_jp(var_s1->data.unitAttribute) == 1) { if (var_s2 <= 0) { arg0[0] = i & 0xF; |
