mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-02 07:59:52 -04:00
feat(phase-30 S2): func_8016EC0C sibling sweep — 88 ins x137 (void-flip edit + h_seq remap)
This commit is contained in:
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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) */
|
||||
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user