mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-05 08:57:59 -04:00
feat(phase-30 S48-T6): propagate func_80181948 to its zero-crack siblings
This commit is contained in:
+2
-2
@@ -253,7 +253,7 @@ build/src/ov_SC02_000/ov_SC02_000_jr_8015AE2C.o: JTBL_PADS := 0,4 # §8e pads (
|
||||
build/src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
|
||||
build/src/ov_SC02_000/ov_SC02_000_jr_80178D40.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x178
|
||||
build/src/ov_SC02_000/ov_SC02_000_jr_8017AE2C.o: JTBL_PADS := 0,0,0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14,+0x34,+0x54,+0x74
|
||||
build/src/ov_SC02_000/ov_SC02_000_jr_8017EA84.o: JTBL_PADS := 0,4,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18,+0x38,+0x58
|
||||
build/src/ov_SC02_000/ov_SC02_000_jr_8017EA84.o: JTBL_PADS := 0,4,0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18,+0x38,+0x58,+0x78
|
||||
build/src/ov_SC02_000/ov_SC02_000_jr_8017FCB0.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
|
||||
build/src/ov_SC02_000/ov_SC02_000_jr_801808C4.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
|
||||
build/src/ov_SC02_000/ov_SC02_000_jr_80180D6C.o: JTBL_PADS := 0,0,0,0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20,+0x40,+0x60,+0x80,+0xa0
|
||||
@@ -293,7 +293,7 @@ build/src/ov_SC02_003/ov_SC02_003_jr_8015AE2C.o: JTBL_PADS := 0,4 # §8e pads (
|
||||
build/src/ov_SC02_003/ov_SC02_003_jr_8016AB6C.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
|
||||
build/src/ov_SC02_003/ov_SC02_003_jr_80178D40.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x178
|
||||
build/src/ov_SC02_003/ov_SC02_003_jr_8017AE2C.o: JTBL_PADS := 0,0,0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14,+0x34,+0x54,+0x74
|
||||
build/src/ov_SC02_003/ov_SC02_003_jr_8017EA84.o: JTBL_PADS := 0,4,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18,+0x38,+0x58
|
||||
build/src/ov_SC02_003/ov_SC02_003_jr_8017EA84.o: JTBL_PADS := 0,4,0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18,+0x38,+0x58,+0x78
|
||||
build/src/ov_SC02_003/ov_SC02_003_jr_8017FCB0.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
|
||||
build/src/ov_SC02_003/ov_SC02_003_jr_801808C4.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
|
||||
build/src/ov_SC02_003/ov_SC02_003_jr_80180D6C.o: JTBL_PADS := 0,0,0,0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20,+0x40,+0x60,+0x80,+0xa0
|
||||
|
||||
@@ -170,7 +170,7 @@ segments:
|
||||
- [0xbe764, data, tail17]
|
||||
- [0xbe768, .rodata, ov_SC02_000_jr_8017AE2C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xbe7fc, .rodata, ov_SC02_000_jr_8017EA84] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xbe874, data, tail18]
|
||||
- [0xbe894, data, tail18]
|
||||
- [0xbe924, .rodata, ov_SC02_000_jr_8017FB24] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xbe944, .rodata, ov_SC02_000_jr_8017FCB0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xbe984, data, tail19]
|
||||
|
||||
@@ -170,7 +170,7 @@ segments:
|
||||
- [0xbe764, data, tail17]
|
||||
- [0xbe768, .rodata, ov_SC02_003_jr_8017AE2C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xbe7fc, .rodata, ov_SC02_003_jr_8017EA84] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xbe874, data, tail18]
|
||||
- [0xbe894, data, tail18]
|
||||
- [0xbe924, .rodata, ov_SC02_003_jr_8017FB24] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xbe944, .rodata, ov_SC02_003_jr_8017FCB0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xbe984, data, tail19]
|
||||
|
||||
@@ -3237,7 +3237,100 @@ void func_8017EA84(s32 a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_8017EA84", func_8017F390);
|
||||
|
||||
extern u16 D_80126B66;
|
||||
extern s32 D_801270C8;
|
||||
extern s32 D_801270CC;
|
||||
extern s32 D_801E8008;
|
||||
extern char D_801A6534[];
|
||||
extern char D_801A7054[];
|
||||
extern char D_8018E6B0[];
|
||||
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern s32 func_8012B608(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B14C(s32 a0, s32 a1);
|
||||
extern void func_8012CBA4(s32 a0);
|
||||
extern void func_8012C098(void *a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
|
||||
void func_8017F390(s32 a0)
|
||||
{
|
||||
u16 state;
|
||||
u16 t;
|
||||
s32 v0;
|
||||
|
||||
state = *(u16 *)(a0 + 0x34);
|
||||
switch (state) {
|
||||
case 0:
|
||||
v0 = (s32) *(s16 *)&D_80126B66 - (s32) *(s16 *)(a0 + 0xE);
|
||||
if (v0 < 0) {
|
||||
v0 = -v0;
|
||||
}
|
||||
if (v0 < 0x171) {
|
||||
t = state + 1;
|
||||
*(u16 *)(a0 + 0x34) = t;
|
||||
func_8012A828(a0, &D_801A7054);
|
||||
*(s32 *)(a0 + 0x1C) = 0x1E;
|
||||
}
|
||||
return;
|
||||
|
||||
case 1:
|
||||
if (*(s32 *)(a0 + 0x1C) == 0x14) {
|
||||
D_801270C8 = 1;
|
||||
}
|
||||
if (func_8012BEE8(a0) == 0) {
|
||||
return;
|
||||
}
|
||||
t = *(u16 *)(a0 + 0x34) + 1;
|
||||
*(u16 *)(a0 + 0x34) = t;
|
||||
func_8012A828(a0, &D_801A6534);
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
return;
|
||||
|
||||
case 2:
|
||||
*(s32 *)(a0 + 0x1C) = *(s32 *)(a0 + 0x1C) + 1;
|
||||
{
|
||||
s32 p20 = *(s32 *)(a0 + 0x20);
|
||||
v0 = func_8012B608(*(s16 *)(p20 + 0x12), 0x800, 4);
|
||||
}
|
||||
{
|
||||
s32 p20b = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(p20b + 0x12) = *(u16 *)(p20b + 0x12) + v0;
|
||||
}
|
||||
if (*(s32 *)(a0 + 0x1C) >= 8) {
|
||||
func_8012B14C(a0, (s32) D_8018E6B0);
|
||||
v0 = ((s32 (*)(s32)) func_8012CBA4)(a0);
|
||||
D_801E8008 = v0;
|
||||
if (v0 == 0 || (v0 & 0x4000) != 0) {
|
||||
*(s32 *)(a0 + 4) = *(s32 *)(a0 + 0x38);
|
||||
*(s32 *)(a0 + 8) = *(s32 *)(a0 + 0x3C);
|
||||
*(s32 *)(a0 + 0xC) = *(s32 *)(a0 + 0x40);
|
||||
}
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) = *(s32 *)(a0 + 0x1C) + 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x100) {
|
||||
switch ((s32)((u32)*(u16 *)(a0 + 0x70) << 0x10) >> 0x18) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 5:
|
||||
case 6:
|
||||
func_8012C098((void *)a0);
|
||||
return;
|
||||
case 3:
|
||||
case 7:
|
||||
func_8012C218((void *)a0);
|
||||
break;
|
||||
case 4:
|
||||
D_801270CC = D_801270CC - 1;
|
||||
func_8012C218((void *)a0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// @class: plumbing
|
||||
|
||||
@@ -3237,7 +3237,100 @@ void func_8017EA84(s32 a0)
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8017EA84", func_8017F390);
|
||||
|
||||
extern u16 D_80126B66;
|
||||
extern s32 D_801270C8;
|
||||
extern s32 D_801270CC;
|
||||
extern s32 D_801E8008;
|
||||
extern char D_801A6534[];
|
||||
extern char D_801A7054[];
|
||||
extern char D_8018E6B0[];
|
||||
|
||||
extern void func_8012A828(s32 a0, void *a1);
|
||||
extern s32 func_8012BEE8(s32 a0);
|
||||
extern s32 func_8012B608(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B14C(s32 a0, s32 a1);
|
||||
extern void func_8012CBA4(s32 a0);
|
||||
extern void func_8012C098(void *a0);
|
||||
extern void func_8012C218(void *a0);
|
||||
|
||||
void func_8017F390(s32 a0)
|
||||
{
|
||||
u16 state;
|
||||
u16 t;
|
||||
s32 v0;
|
||||
|
||||
state = *(u16 *)(a0 + 0x34);
|
||||
switch (state) {
|
||||
case 0:
|
||||
v0 = (s32) *(s16 *)&D_80126B66 - (s32) *(s16 *)(a0 + 0xE);
|
||||
if (v0 < 0) {
|
||||
v0 = -v0;
|
||||
}
|
||||
if (v0 < 0x171) {
|
||||
t = state + 1;
|
||||
*(u16 *)(a0 + 0x34) = t;
|
||||
func_8012A828(a0, &D_801A7054);
|
||||
*(s32 *)(a0 + 0x1C) = 0x1E;
|
||||
}
|
||||
return;
|
||||
|
||||
case 1:
|
||||
if (*(s32 *)(a0 + 0x1C) == 0x14) {
|
||||
D_801270C8 = 1;
|
||||
}
|
||||
if (func_8012BEE8(a0) == 0) {
|
||||
return;
|
||||
}
|
||||
t = *(u16 *)(a0 + 0x34) + 1;
|
||||
*(u16 *)(a0 + 0x34) = t;
|
||||
func_8012A828(a0, &D_801A6534);
|
||||
*(s32 *)(a0 + 0x1C) = 0;
|
||||
return;
|
||||
|
||||
case 2:
|
||||
*(s32 *)(a0 + 0x1C) = *(s32 *)(a0 + 0x1C) + 1;
|
||||
{
|
||||
s32 p20 = *(s32 *)(a0 + 0x20);
|
||||
v0 = func_8012B608(*(s16 *)(p20 + 0x12), 0x800, 4);
|
||||
}
|
||||
{
|
||||
s32 p20b = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(p20b + 0x12) = *(u16 *)(p20b + 0x12) + v0;
|
||||
}
|
||||
if (*(s32 *)(a0 + 0x1C) >= 8) {
|
||||
func_8012B14C(a0, (s32) D_8018E6B0);
|
||||
v0 = ((s32 (*)(s32)) func_8012CBA4)(a0);
|
||||
D_801E8008 = v0;
|
||||
if (v0 == 0 || (v0 & 0x4000) != 0) {
|
||||
*(s32 *)(a0 + 4) = *(s32 *)(a0 + 0x38);
|
||||
*(s32 *)(a0 + 8) = *(s32 *)(a0 + 0x3C);
|
||||
*(s32 *)(a0 + 0xC) = *(s32 *)(a0 + 0x40);
|
||||
}
|
||||
}
|
||||
*(s32 *)(a0 + 0x1C) = *(s32 *)(a0 + 0x1C) + 1;
|
||||
if (*(s32 *)(a0 + 0x1C) >= 0x100) {
|
||||
switch ((s32)((u32)*(u16 *)(a0 + 0x70) << 0x10) >> 0x18) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 5:
|
||||
case 6:
|
||||
func_8012C098((void *)a0);
|
||||
return;
|
||||
case 3:
|
||||
case 7:
|
||||
func_8012C218((void *)a0);
|
||||
break;
|
||||
case 4:
|
||||
D_801270CC = D_801270CC - 1;
|
||||
func_8012C218((void *)a0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// @class: plumbing
|
||||
|
||||
Reference in New Issue
Block a user