mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 13:33:34 -04:00
feat(phase-30 S48-T6): propagate func_80187B80 to its zero-crack siblings
This commit is contained in:
@@ -7514,7 +7514,65 @@ INCLUDE_ASM("asm/ov_SC03_107/nonmatchings/ov_SC03_107_jr_801789AC", func_801805F
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_107/nonmatchings/ov_SC03_107_jr_801789AC", func_8018065C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_107/nonmatchings/ov_SC03_107_jr_801789AC", func_801806F0);
|
||||
|
||||
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B1B4(s32 a0, s32 a1);
|
||||
|
||||
void func_801806F0(s32 a0)
|
||||
{
|
||||
extern u8 D_80197498[];
|
||||
u16 out[4];
|
||||
u16 pos[4];
|
||||
u16 t0, t1, t2;
|
||||
|
||||
*(u16 *)(a0 + 0x5C) = 0xA810;
|
||||
*(u16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x34);
|
||||
|
||||
t0 = *(u16 *)(a0 + 0x6);
|
||||
pos[0] = t0;
|
||||
out[0] = t0;
|
||||
t1 = *(u16 *)(a0 + 0xA);
|
||||
pos[1] = t1;
|
||||
out[1] = t1 - 0x18;
|
||||
t2 = *(u16 *)(a0 + 0xE);
|
||||
pos[2] = t2;
|
||||
out[2] = t2;
|
||||
func_8012CEB0((s32)out, (s32)pos, 1);
|
||||
|
||||
*(u16 *)(a0 + 0xA) = pos[1] - 0x10;
|
||||
|
||||
if (*(s16 *)(a0 + 0x70) == 0xF) {
|
||||
s32 c;
|
||||
|
||||
c = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(c + 0x14) = 0;
|
||||
|
||||
*(u16 *)(a0 + 0x2) = 1;
|
||||
*(u16 *)(a0 + 0x34) = 1;
|
||||
*(u16 *)(a0 + 0x70) = 0;
|
||||
*(u16 *)(a0 + 0x88) = *(u16 *)(a0 + 0x6);
|
||||
*(u16 *)(a0 + 0x8A) = *(u16 *)(a0 + 0xA);
|
||||
*(u16 *)(a0 + 0x8C) = *(u16 *)(a0 + 0xE);
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_80197498);
|
||||
|
||||
{
|
||||
s32 n = *(s32 *)(a0 + 0x6C);
|
||||
while (n != 0) {
|
||||
*(u16 *)(n + 0x2) = 2;
|
||||
*(u16 *)(n + 0x70) = *(u16 *)(n + 0x70) - 0x10;
|
||||
*(u16 *)(*(s32 *)(n + 0x20) + 0x14) = 0;
|
||||
n = *(s32 *)(n + 0x6C);
|
||||
}
|
||||
}
|
||||
*(u16 *)(a0 + 0xFC) = 0;
|
||||
} else {
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_80197498);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_8012E688(s32, u16, u16);
|
||||
|
||||
@@ -4872,7 +4872,65 @@ INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_8017EC58", func_801833A
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_8017EC58", func_80183404);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_8017EC58", func_80183498);
|
||||
|
||||
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B1B4(s32 a0, s32 a1);
|
||||
|
||||
void func_80183498(s32 a0)
|
||||
{
|
||||
extern u8 D_801B1C64[];
|
||||
u16 out[4];
|
||||
u16 pos[4];
|
||||
u16 t0, t1, t2;
|
||||
|
||||
*(u16 *)(a0 + 0x5C) = 0xA810;
|
||||
*(u16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x34);
|
||||
|
||||
t0 = *(u16 *)(a0 + 0x6);
|
||||
pos[0] = t0;
|
||||
out[0] = t0;
|
||||
t1 = *(u16 *)(a0 + 0xA);
|
||||
pos[1] = t1;
|
||||
out[1] = t1 - 0x18;
|
||||
t2 = *(u16 *)(a0 + 0xE);
|
||||
pos[2] = t2;
|
||||
out[2] = t2;
|
||||
func_8012CEB0((s32)out, (s32)pos, 1);
|
||||
|
||||
*(u16 *)(a0 + 0xA) = pos[1] - 0x10;
|
||||
|
||||
if (*(s16 *)(a0 + 0x70) == 0xF) {
|
||||
s32 c;
|
||||
|
||||
c = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(c + 0x14) = 0;
|
||||
|
||||
*(u16 *)(a0 + 0x2) = 1;
|
||||
*(u16 *)(a0 + 0x34) = 1;
|
||||
*(u16 *)(a0 + 0x70) = 0;
|
||||
*(u16 *)(a0 + 0x88) = *(u16 *)(a0 + 0x6);
|
||||
*(u16 *)(a0 + 0x8A) = *(u16 *)(a0 + 0xA);
|
||||
*(u16 *)(a0 + 0x8C) = *(u16 *)(a0 + 0xE);
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_801B1C64);
|
||||
|
||||
{
|
||||
s32 n = *(s32 *)(a0 + 0x6C);
|
||||
while (n != 0) {
|
||||
*(u16 *)(n + 0x2) = 2;
|
||||
*(u16 *)(n + 0x70) = *(u16 *)(n + 0x70) - 0x10;
|
||||
*(u16 *)(*(s32 *)(n + 0x20) + 0x14) = 0;
|
||||
n = *(s32 *)(n + 0x6C);
|
||||
}
|
||||
}
|
||||
*(u16 *)(a0 + 0xFC) = 0;
|
||||
} else {
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_801B1C64);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012E688(s32 arg0, s32 arg1, s32 arg2);
|
||||
void func_801835C0(void *a0) {
|
||||
|
||||
@@ -3066,7 +3066,65 @@ INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_80183AE0", func_801842B
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_80183AE0", func_80184318);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_80183AE0", func_801843AC);
|
||||
|
||||
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B1B4(s32 a0, s32 a1);
|
||||
|
||||
void func_801843AC(s32 a0)
|
||||
{
|
||||
extern u8 D_801A8B40[];
|
||||
u16 out[4];
|
||||
u16 pos[4];
|
||||
u16 t0, t1, t2;
|
||||
|
||||
*(u16 *)(a0 + 0x5C) = 0xA810;
|
||||
*(u16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x34);
|
||||
|
||||
t0 = *(u16 *)(a0 + 0x6);
|
||||
pos[0] = t0;
|
||||
out[0] = t0;
|
||||
t1 = *(u16 *)(a0 + 0xA);
|
||||
pos[1] = t1;
|
||||
out[1] = t1 - 0x18;
|
||||
t2 = *(u16 *)(a0 + 0xE);
|
||||
pos[2] = t2;
|
||||
out[2] = t2;
|
||||
func_8012CEB0((s32)out, (s32)pos, 1);
|
||||
|
||||
*(u16 *)(a0 + 0xA) = pos[1] - 0x10;
|
||||
|
||||
if (*(s16 *)(a0 + 0x70) == 0xF) {
|
||||
s32 c;
|
||||
|
||||
c = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(c + 0x14) = 0;
|
||||
|
||||
*(u16 *)(a0 + 0x2) = 1;
|
||||
*(u16 *)(a0 + 0x34) = 1;
|
||||
*(u16 *)(a0 + 0x70) = 0;
|
||||
*(u16 *)(a0 + 0x88) = *(u16 *)(a0 + 0x6);
|
||||
*(u16 *)(a0 + 0x8A) = *(u16 *)(a0 + 0xA);
|
||||
*(u16 *)(a0 + 0x8C) = *(u16 *)(a0 + 0xE);
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_801A8B40);
|
||||
|
||||
{
|
||||
s32 n = *(s32 *)(a0 + 0x6C);
|
||||
while (n != 0) {
|
||||
*(u16 *)(n + 0x2) = 2;
|
||||
*(u16 *)(n + 0x70) = *(u16 *)(n + 0x70) - 0x10;
|
||||
*(u16 *)(*(s32 *)(n + 0x20) + 0x14) = 0;
|
||||
n = *(s32 *)(n + 0x6C);
|
||||
}
|
||||
}
|
||||
*(u16 *)(a0 + 0xFC) = 0;
|
||||
} else {
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_801A8B40);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012E688(s32 arg0, s32 arg1, s32 arg2);
|
||||
void func_801844D4(void *a0) {
|
||||
|
||||
@@ -6034,7 +6034,65 @@ INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113_jr_8017C294", func_8018203
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113_jr_8017C294", func_8018209C);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113_jr_8017C294", func_80182130);
|
||||
|
||||
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B1B4(s32 a0, s32 a1);
|
||||
|
||||
void func_80182130(s32 a0)
|
||||
{
|
||||
extern u8 D_8019F28C[];
|
||||
u16 out[4];
|
||||
u16 pos[4];
|
||||
u16 t0, t1, t2;
|
||||
|
||||
*(u16 *)(a0 + 0x5C) = 0xA810;
|
||||
*(u16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x34);
|
||||
|
||||
t0 = *(u16 *)(a0 + 0x6);
|
||||
pos[0] = t0;
|
||||
out[0] = t0;
|
||||
t1 = *(u16 *)(a0 + 0xA);
|
||||
pos[1] = t1;
|
||||
out[1] = t1 - 0x18;
|
||||
t2 = *(u16 *)(a0 + 0xE);
|
||||
pos[2] = t2;
|
||||
out[2] = t2;
|
||||
func_8012CEB0((s32)out, (s32)pos, 1);
|
||||
|
||||
*(u16 *)(a0 + 0xA) = pos[1] - 0x10;
|
||||
|
||||
if (*(s16 *)(a0 + 0x70) == 0xF) {
|
||||
s32 c;
|
||||
|
||||
c = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(c + 0x14) = 0;
|
||||
|
||||
*(u16 *)(a0 + 0x2) = 1;
|
||||
*(u16 *)(a0 + 0x34) = 1;
|
||||
*(u16 *)(a0 + 0x70) = 0;
|
||||
*(u16 *)(a0 + 0x88) = *(u16 *)(a0 + 0x6);
|
||||
*(u16 *)(a0 + 0x8A) = *(u16 *)(a0 + 0xA);
|
||||
*(u16 *)(a0 + 0x8C) = *(u16 *)(a0 + 0xE);
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_8019F28C);
|
||||
|
||||
{
|
||||
s32 n = *(s32 *)(a0 + 0x6C);
|
||||
while (n != 0) {
|
||||
*(u16 *)(n + 0x2) = 2;
|
||||
*(u16 *)(n + 0x70) = *(u16 *)(n + 0x70) - 0x10;
|
||||
*(u16 *)(*(s32 *)(n + 0x20) + 0x14) = 0;
|
||||
n = *(s32 *)(n + 0x6C);
|
||||
}
|
||||
}
|
||||
*(u16 *)(a0 + 0xFC) = 0;
|
||||
} else {
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_8019F28C);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012E688(s32 arg0, s32 arg1, s32 arg2);
|
||||
void func_80182258(void *a0) {
|
||||
|
||||
@@ -3655,7 +3655,65 @@ INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_jr_80181C80", func_8018333
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_jr_80181C80", func_801833A0);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_jr_80181C80", func_80183434);
|
||||
|
||||
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B1B4(s32 a0, s32 a1);
|
||||
|
||||
void func_80183434(s32 a0)
|
||||
{
|
||||
extern u8 D_801C368C[];
|
||||
u16 out[4];
|
||||
u16 pos[4];
|
||||
u16 t0, t1, t2;
|
||||
|
||||
*(u16 *)(a0 + 0x5C) = 0xA810;
|
||||
*(u16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x34);
|
||||
|
||||
t0 = *(u16 *)(a0 + 0x6);
|
||||
pos[0] = t0;
|
||||
out[0] = t0;
|
||||
t1 = *(u16 *)(a0 + 0xA);
|
||||
pos[1] = t1;
|
||||
out[1] = t1 - 0x18;
|
||||
t2 = *(u16 *)(a0 + 0xE);
|
||||
pos[2] = t2;
|
||||
out[2] = t2;
|
||||
func_8012CEB0((s32)out, (s32)pos, 1);
|
||||
|
||||
*(u16 *)(a0 + 0xA) = pos[1] - 0x10;
|
||||
|
||||
if (*(s16 *)(a0 + 0x70) == 0xF) {
|
||||
s32 c;
|
||||
|
||||
c = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(c + 0x14) = 0;
|
||||
|
||||
*(u16 *)(a0 + 0x2) = 1;
|
||||
*(u16 *)(a0 + 0x34) = 1;
|
||||
*(u16 *)(a0 + 0x70) = 0;
|
||||
*(u16 *)(a0 + 0x88) = *(u16 *)(a0 + 0x6);
|
||||
*(u16 *)(a0 + 0x8A) = *(u16 *)(a0 + 0xA);
|
||||
*(u16 *)(a0 + 0x8C) = *(u16 *)(a0 + 0xE);
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_801C368C);
|
||||
|
||||
{
|
||||
s32 n = *(s32 *)(a0 + 0x6C);
|
||||
while (n != 0) {
|
||||
*(u16 *)(n + 0x2) = 2;
|
||||
*(u16 *)(n + 0x70) = *(u16 *)(n + 0x70) - 0x10;
|
||||
*(u16 *)(*(s32 *)(n + 0x20) + 0x14) = 0;
|
||||
n = *(s32 *)(n + 0x6C);
|
||||
}
|
||||
}
|
||||
*(u16 *)(a0 + 0xFC) = 0;
|
||||
} else {
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_801C368C);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012E688(s32 arg0, s32 arg1, s32 arg2);
|
||||
void func_8018355C(void *param) {
|
||||
|
||||
@@ -3687,7 +3687,65 @@ INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_801863CC", func_80187A8
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_801863CC", func_80187AEC);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_801863CC", func_80187B80);
|
||||
|
||||
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B1B4(s32 a0, s32 a1);
|
||||
|
||||
void func_80187B80(s32 a0)
|
||||
{
|
||||
extern u8 D_801C6FA8[];
|
||||
u16 out[4];
|
||||
u16 pos[4];
|
||||
u16 t0, t1, t2;
|
||||
|
||||
*(u16 *)(a0 + 0x5C) = 0xA810;
|
||||
*(u16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x34);
|
||||
|
||||
t0 = *(u16 *)(a0 + 0x6);
|
||||
pos[0] = t0;
|
||||
out[0] = t0;
|
||||
t1 = *(u16 *)(a0 + 0xA);
|
||||
pos[1] = t1;
|
||||
out[1] = t1 - 0x18;
|
||||
t2 = *(u16 *)(a0 + 0xE);
|
||||
pos[2] = t2;
|
||||
out[2] = t2;
|
||||
func_8012CEB0((s32)out, (s32)pos, 1);
|
||||
|
||||
*(u16 *)(a0 + 0xA) = pos[1] - 0x10;
|
||||
|
||||
if (*(s16 *)(a0 + 0x70) == 0xF) {
|
||||
s32 c;
|
||||
|
||||
c = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(c + 0x14) = 0;
|
||||
|
||||
*(u16 *)(a0 + 0x2) = 1;
|
||||
*(u16 *)(a0 + 0x34) = 1;
|
||||
*(u16 *)(a0 + 0x70) = 0;
|
||||
*(u16 *)(a0 + 0x88) = *(u16 *)(a0 + 0x6);
|
||||
*(u16 *)(a0 + 0x8A) = *(u16 *)(a0 + 0xA);
|
||||
*(u16 *)(a0 + 0x8C) = *(u16 *)(a0 + 0xE);
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_801C6FA8);
|
||||
|
||||
{
|
||||
s32 n = *(s32 *)(a0 + 0x6C);
|
||||
while (n != 0) {
|
||||
*(u16 *)(n + 0x2) = 2;
|
||||
*(u16 *)(n + 0x70) = *(u16 *)(n + 0x70) - 0x10;
|
||||
*(u16 *)(*(s32 *)(n + 0x20) + 0x14) = 0;
|
||||
n = *(s32 *)(n + 0x6C);
|
||||
}
|
||||
}
|
||||
*(u16 *)(a0 + 0xFC) = 0;
|
||||
} else {
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_801C6FA8);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void func_8012E688(s32 arg0, s32 arg1, s32 arg2);
|
||||
|
||||
@@ -3615,7 +3615,65 @@ INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004_jr_8017F210", func_801808C
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004_jr_8017F210", func_80180930);
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004_jr_8017F210", func_801809C4);
|
||||
|
||||
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_8012B23C(s32 a0);
|
||||
extern void func_8012B1B4(s32 a0, s32 a1);
|
||||
|
||||
void func_801809C4(s32 a0)
|
||||
{
|
||||
extern u8 D_8019AEA4[];
|
||||
u16 out[4];
|
||||
u16 pos[4];
|
||||
u16 t0, t1, t2;
|
||||
|
||||
*(u16 *)(a0 + 0x5C) = 0xA810;
|
||||
*(u16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x34);
|
||||
|
||||
t0 = *(u16 *)(a0 + 0x6);
|
||||
pos[0] = t0;
|
||||
out[0] = t0;
|
||||
t1 = *(u16 *)(a0 + 0xA);
|
||||
pos[1] = t1;
|
||||
out[1] = t1 - 0x18;
|
||||
t2 = *(u16 *)(a0 + 0xE);
|
||||
pos[2] = t2;
|
||||
out[2] = t2;
|
||||
func_8012CEB0((s32)out, (s32)pos, 1);
|
||||
|
||||
*(u16 *)(a0 + 0xA) = pos[1] - 0x10;
|
||||
|
||||
if (*(s16 *)(a0 + 0x70) == 0xF) {
|
||||
s32 c;
|
||||
|
||||
c = *(s32 *)(a0 + 0x20);
|
||||
*(u16 *)(c + 0x14) = 0;
|
||||
|
||||
*(u16 *)(a0 + 0x2) = 1;
|
||||
*(u16 *)(a0 + 0x34) = 1;
|
||||
*(u16 *)(a0 + 0x70) = 0;
|
||||
*(u16 *)(a0 + 0x88) = *(u16 *)(a0 + 0x6);
|
||||
*(u16 *)(a0 + 0x8A) = *(u16 *)(a0 + 0xA);
|
||||
*(u16 *)(a0 + 0x8C) = *(u16 *)(a0 + 0xE);
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_8019AEA4);
|
||||
|
||||
{
|
||||
s32 n = *(s32 *)(a0 + 0x6C);
|
||||
while (n != 0) {
|
||||
*(u16 *)(n + 0x2) = 2;
|
||||
*(u16 *)(n + 0x70) = *(u16 *)(n + 0x70) - 0x10;
|
||||
*(u16 *)(*(s32 *)(n + 0x20) + 0x14) = 0;
|
||||
n = *(s32 *)(n + 0x6C);
|
||||
}
|
||||
}
|
||||
*(u16 *)(a0 + 0xFC) = 0;
|
||||
} else {
|
||||
func_8012B23C(a0);
|
||||
func_8012B1B4(a0, (s32)D_8019AEA4);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_8012E688(s32 arg0, s32 arg1, s32 arg2);
|
||||
void func_80180AEC(void *a0) {
|
||||
|
||||
Reference in New Issue
Block a user