feat(phase-30 S2): func_8016EC0C sibling sweep — 88 ins x137 (void-flip edit + h_seq remap)

This commit is contained in:
Drew T
2026-08-01 09:26:41 -06:00
parent 8cd0bd3db9
commit 9d2e4171cf
137 changed files with 10412 additions and 685 deletions
+76 -5
View File
@@ -3679,7 +3679,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3717,7 +3717,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80181FC8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3739,7 +3739,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80181FB8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3761,7 +3761,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80181FC8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3778,7 +3778,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC01_000/nonmatchings/ov_SC01_000_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80181FB4[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80181FB4[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80186C18[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80186C08[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80186C18[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC01_001/nonmatchings/ov_SC01_001_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80186C04[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80186C04[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801825DC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801825CC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801825DC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801825C8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801825C8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3678,7 +3678,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3716,7 +3716,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80185770[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3738,7 +3738,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80185760[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3760,7 +3760,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80185770[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3777,7 +3777,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018575C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018575C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3678,7 +3678,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3716,7 +3716,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80185770[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3738,7 +3738,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80185760[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3760,7 +3760,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80185770[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3777,7 +3777,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018575C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018575C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80182B50[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80182B40[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80182B50[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80182B3C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80182B3C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80185D38[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80185D28[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80185D38[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80185D24[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80185D24[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801819B8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801819A8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801819B8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801819A4[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801819A4[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80186918[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80186908[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80186918[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80186904[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80186904[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3678,7 +3678,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3716,7 +3716,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80189C0C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3738,7 +3738,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80189BFC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3760,7 +3760,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80189C0C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3777,7 +3777,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80189BF8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80189BF8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3675,7 +3675,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3713,7 +3713,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018DFBC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3735,7 +3735,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018DFAC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3757,7 +3757,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018DFBC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3774,7 +3774,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018DFA8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018DFA8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3675,7 +3675,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3713,7 +3713,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018DFBC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3735,7 +3735,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018DFAC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3757,7 +3757,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018DFBC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3774,7 +3774,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018DFA8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018DFA8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018109C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018108C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018109C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_004/nonmatchings/ov_SC02_004_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80181088[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80181088[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3679,7 +3679,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3717,7 +3717,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80193CA0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3739,7 +3739,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80193C90[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3761,7 +3761,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80193CA0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3778,7 +3778,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80193C8C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80193C8C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801940F0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801940E0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801940F0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801940DC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801940DC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3675,7 +3675,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3713,7 +3713,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80181604[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3735,7 +3735,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801815F4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3757,7 +3757,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80181604[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3774,7 +3774,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_015/nonmatchings/ov_SC02_015_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801815F0[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801815F0[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018783C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018782C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018783C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_016/nonmatchings/ov_SC02_016_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80187828[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80187828[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018D894[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018D884[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018D894[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018D880[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018D880[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80182E88[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80182E78[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80182E88[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80182E74[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80182E74[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801894DC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801894CC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801894DC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801894C8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801894C8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018E600[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018E5F0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018E600[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018E5EC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018E5EC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018E804[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018E7F4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018E804[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018E7F0[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018E7F0[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80188030[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80188020[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80188030[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018801C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018801C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80187890[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80187880[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80187890[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018787C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018787C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801824BC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801824AC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801824BC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_039/nonmatchings/ov_SC02_039_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801824A8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801824A8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018818C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018817C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018818C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80188178[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80188178[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801908CC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801908BC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801908CC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801908B8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801908B8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801888BC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801888AC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801888BC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801888A8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801888A8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80182684[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80182674[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80182684[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_003/nonmatchings/ov_SC03_003_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80182670[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80182670[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018F9A0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018F990[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018F9A0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018F98C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018F98C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018A798[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018A788[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018A798[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018A784[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018A784[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801832B8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801832A8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801832B8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801832A4[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801832A4[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80184628[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80184618[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80184628[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80184614[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80184614[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80181508[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801814F8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80181508[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_012/nonmatchings/ov_SC03_012_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801814F4[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801814F4[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801842F0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801842E0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801842F0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801842DC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801842DC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018E92C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018E91C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018E92C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018E918[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018E918[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018E92C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018E91C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018E92C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018E918[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018E918[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801822A8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80182298[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801822A8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80182294[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80182294[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018A2CC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018A2BC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018A2CC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018A2B8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018A2B8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018ED98[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018ED88[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018ED98[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018ED84[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018ED84[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018ABD0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018ABC0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018ABD0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018ABBC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018ABBC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018520C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801851FC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018520C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801851F8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801851F8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80185728[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80185718[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80185728[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80185714[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80185714[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018CA24[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018CA14[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018CA24[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018CA10[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018CA10[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018EE48[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018EE38[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018EE48[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018EE34[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018EE34[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018FCF0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018FCE0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018FCF0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018FCDC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018FCDC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801880C0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801880B0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801880C0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801880AC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801880AC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80189298[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80189288[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80189298[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80189284[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80189284[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018AC94[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018AC84[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018AC94[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018AC80[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018AC80[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801842F4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801842E4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801842F4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801842E0[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801842E0[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80183E74[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80183E64[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80183E74[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80183E60[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80183E60[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80189254[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80189244[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80189254[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80189240[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80189240[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801886E0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801886D0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801886E0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_098/nonmatchings/ov_SC03_098_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801886CC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801886CC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801867E0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801867D0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801867E0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_099/nonmatchings/ov_SC03_099_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801867CC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801867CC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80187CAC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80187C9C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80187CAC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_100/nonmatchings/ov_SC03_100_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80187C98[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80187C98[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80186C88[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80186C78[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80186C88[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80186C74[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80186C74[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80189540[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80189530[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80189540[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_102/nonmatchings/ov_SC03_102_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018952C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018952C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801874F0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801874E0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801874F0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_103/nonmatchings/ov_SC03_103_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801874DC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801874DC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018E080[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018E070[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018E080[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018E06C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018E06C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018D708[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018D6F8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018D708[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018D6F4[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018D6F4[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3627,7 +3627,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3665,7 +3665,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80184060[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3687,7 +3687,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80184050[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3709,7 +3709,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80184060[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3726,7 +3726,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_108/nonmatchings/ov_SC03_108_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018404C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018404C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018170C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801816FC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018170C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_109/nonmatchings/ov_SC03_109_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801816F8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801816F8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018512C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018511C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018512C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80185118[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80185118[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3677,7 +3677,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3715,7 +3715,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80187CE0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3737,7 +3737,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80187CD0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3759,7 +3759,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80187CE0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3776,7 +3776,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80187CCC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80187CCC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80188AE8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80188AD8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80188AE8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80188AD4[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80188AD4[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80186198[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80186188[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80186198[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80186184[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80186184[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80181E00[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80181DF0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80181E00[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_114/nonmatchings/ov_SC03_114_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80181DEC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80181DEC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018386C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018385C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018386C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80183858[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80183858[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80185C70[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80185C60[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80185C70[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80185C5C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80185C5C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80187C7C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80187C6C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80187C7C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80187C68[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80187C68[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018CD28[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018CD18[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018CD28[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018CD14[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018CD14[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018CD28[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018CD18[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018CD28[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018CD14[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018CD14[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80185544[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80185534[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80185544[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_121/nonmatchings/ov_SC03_121_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80185530[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80185530[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018DF70[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018DF60[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018DF70[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018DF5C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018DF5C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80187140[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80187130[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80187140[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018712C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018712C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80182638[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80182628[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80182638[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC03_126/nonmatchings/ov_SC03_126_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80182624[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80182624[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80186644[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80186634[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80186644[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80186630[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80186630[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018B7B0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018B7A0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018B7B0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018B79C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018B79C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018554C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018553C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018554C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_003/nonmatchings/ov_SC04_003_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80185538[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80185538[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80187A80[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80187A70[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80187A80[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80187A6C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80187A6C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018AEB4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018AEA4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018AEB4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018AEA0[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018AEA0[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80182F94[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80182F84[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80182F94[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_006/nonmatchings/ov_SC04_006_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80182F80[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80182F80[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80188F4C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80188F3C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80188F4C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80188F38[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80188F38[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80181E84[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80181E74[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80181E84[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80181E70[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80181E70[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80181EB0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80181EA0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80181EB0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_009/nonmatchings/ov_SC04_009_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80181E9C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80181E9C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018155C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018154C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018155C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80181548[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80181548[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801937EC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801937DC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801937EC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801937D8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801937D8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801819C0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801819B0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801819C0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_012/nonmatchings/ov_SC04_012_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801819AC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801819AC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801878F8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801878E8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801878F8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801878E4[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801878E4[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801833BC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801833AC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801833BC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_016/nonmatchings/ov_SC04_016_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801833A8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801833A8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801905D4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801905C4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801905D4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801905C0[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801905C0[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801905D4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801905C4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801905D4[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801905C0[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801905C0[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018670C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801866FC[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018670C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801866F8[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801866F8[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80182638[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80182628[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80182638[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80182624[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80182624[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3674,7 +3674,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3712,7 +3712,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_8018164C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3734,7 +3734,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_8018163C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3756,7 +3756,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_8018164C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3773,7 +3773,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC05_000/nonmatchings/ov_SC05_000_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80181638[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80181638[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80188E28[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80188E18[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80188E28[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80188E14[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80188E14[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_801835E8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801835D8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_801835E8[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC05_002/nonmatchings/ov_SC05_002_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801835D4[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801835D4[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80185920[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80185910[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80185920[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC05_003/nonmatchings/ov_SC05_003_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_8018590C[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_8018590C[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80184A2C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_80184A1C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80184A2C[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_80184A18[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_80184A18[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */
+76 -5
View File
@@ -3676,7 +3676,7 @@ s32 func_8016E95C() {
extern s32 func_800D2CA8(s32 a0, s32 a1);
extern void func_800D2D10(s32 a0, s32 a1, void *a2, s32 a3);
extern s32 func_80024054(void *a0, void *a1);
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016E9EC(u8 *p)
{
@@ -3714,7 +3714,7 @@ void func_8016E9EC(u8 *p)
// @stuck: none — MATCH (31/31 ins, match_one verified)
extern u16 D_80185800[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EAC0(Wave *param_1)
{
@@ -3736,7 +3736,7 @@ void func_8016EAC0(Wave *param_1)
// @stuck: none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
extern u8 D_801857F0[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EB3C(s32 p) {
u8 v;
@@ -3758,7 +3758,7 @@ void func_8016EB3C(s32 p) {
extern u16 D_80185800[];
extern s32 func_8016EC0C(s32 a0, s32 a1);
extern void func_8016EC0C(s32 a0, s32 a1);
void func_8016EBA8(u8 *param_1)
{
@@ -3775,7 +3775,78 @@ void func_8016EBA8(u8 *param_1)
}
INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005_jr_8016AB6C", func_8016EC0C);
extern void func_80017B98(void *a0);
extern u8 D_801857EC[];
void func_8016EC0C(s32 a0, s32 a1)
{
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
typedef struct {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s32 u04;
/* 0x08 */ s16 u08;
/* 0x0A */ s16 u0A;
/* 0x0C */ s16 u0C;
/* 0x0E */ s16 u0E;
/* 0x10 */ u8 r;
/* 0x11 */ u8 g;
/* 0x12 */ u8 b;
/* 0x13 */ u8 pad13;
/* 0x14 */ s32 u14;
/* 0x18 */ u8 u18;
/* 0x19 */ u8 pad19[3];
} T8016EC0C; /* 0x1C */
T8016EC0C s;
u16 *p;
s32 x;
s32 y;
s32 v;
s.r = s.g = s.b = a1;
s.u18 = D_801857EC[*(u8 *)(a0 + 3)];
s.u0C = 0x640;
s.u0E = 0x1C8;
s.u14 = 0;
s.u08 = 0x28;
s.u0A = 8;
x = *(u16 *)(a0 + 4);
s.x = x + 0x10;
y = *(u16 *)(a0 + 6);
s.u04 = 0x10;
s.y = y;
func_80017B98(&s);
s.u08 = 8;
y += 0xA;
p = (u16 *)(a0 + 8);
while (*p != 0xFFFF) {
v = *p;
switch (v) {
case 0x1850:
case 0x1858:
s.x = x + 4;
s.y = y - 7;
break;
case 0x3872:
x += 2;
p++;
continue;
default:
s.x = x;
s.y = y;
x += 8;
break;
}
s.u0C = *(u8 *)p + 0x500;
s.u0E = (*p >> 8) + 0x100;
p++;
func_80017B98(&s);
}
}
DEFINE_func_8016ED6C() /* dedup: shared engine-core @0x8016ED6C (src/shared) */

Some files were not shown because too many files have changed in this diff Show More