summaryrefslogtreecommitdiff
path: root/src/code/m_field_info.c
diff options
context:
space:
mode:
authorkuchenmitsahne <25233413+kuchenmitsahne@users.noreply.github.com>2025-06-04 19:38:23 -0400
committerGitHub <noreply@github.com>2025-06-04 16:38:23 -0700
commita4d5910cdb9bed05fa5aea4476a3cf4ef178be06 (patch)
tree017ad9a1547e3206190c216d8a7ddd2e95ff327c /src/code/m_field_info.c
parent8c6ae625aef6d07741cd8925f422f43ae24b198c (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.c20
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;