diff --git a/asm/code_805D8C8.s b/asm/code_805D8C8.s index 2e04f8762..706291640 100644 --- a/asm/code_805D8C8.s +++ b/asm/code_805D8C8.s @@ -5,764 +5,8 @@ .text - thumb_func_start sub_8062230 -sub_8062230: - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - ldr r0, _08062380 - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08062248 - b _08062372 -_08062248: - ldr r0, _08062384 - mov r9, r0 - movs r0, 0 - movs r1, 0 - str r0, [sp] - str r1, [sp, 0x4] - mov r0, sp - ldrh r0, [r0] - ldr r1, _08062388 - ands r1, r0 - ldr r3, _0806238C - ldr r0, [sp] - ands r0, r3 - orrs r0, r1 - str r0, [sp] - mov r1, sp - ldrh r1, [r1] - adds r2, r3, 0 - ands r2, r0 - orrs r2, r1 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _08062390 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r6, _08062394 - mov r8, r6 - mov r0, r8 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _08062398 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _0806239C - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - movs r4, 0x80 - lsls r4, 7 - mov r0, sp - ldrh r1, [r0] - ldr r6, _080623A0 - adds r0, r6, 0 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - orrs r4, r0 - ands r3, r1 - orrs r3, r4 - str r3, [sp] - movs r1, 0x80 - lsls r1, 6 - mov r5, sp - ldrh r0, [r5, 0x2] - ldr r2, _080623A4 - ands r2, r0 - orrs r2, r1 - ands r2, r6 - movs r3, 0xFC - lsls r3, 2 - ldrh r1, [r5, 0x4] - movs r0, 0xFC - lsls r0, 8 - ands r0, r1 - orrs r0, r3 - mov r1, r8 - ands r0, r1 - movs r3, 0xF - movs r1, 0xF0 - lsls r1, 8 - ldr r4, _080623A8 - ands r0, r4 - orrs r0, r1 - strh r0, [r5, 0x4] - mov r6, r9 - movs r1, 0x2 - ldrsh r0, [r6, r1] - lsls r0, 3 - adds r0, 0x8 - ands r0, r4 - lsls r0, 4 - ldrh r1, [r5, 0x6] - ands r3, r1 - orrs r3, r0 - strh r3, [r5, 0x6] - movs r3, 0 - ldrsh r0, [r6, r3] - lsls r0, 3 - adds r0, 0x40 - ldr r1, _080623AC - ands r0, r1 - movs r1, 0xFE - lsls r1, 8 - ands r2, r1 - orrs r2, r0 - strh r2, [r5, 0x2] - movs r1, 0x80 - lsls r1, 1 - mov r0, sp - movs r2, 0 - movs r3, 0 - bl AddSprite -_08062372: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08062380: .4byte gUnknown_202EDCC -_08062384: .4byte gUnknown_2027370 -_08062388: .4byte 0x0000feff -_0806238C: .4byte 0xffff0000 -_08062390: .4byte 0x0000fdff -_08062394: .4byte 0x0000f3ff -_08062398: .4byte 0x0000efff -_0806239C: .4byte 0x0000dfff -_080623A0: .4byte 0x00003fff -_080623A4: .4byte 0x0000c1ff -_080623A8: .4byte 0x00000fff -_080623AC: .4byte 0x000001ff - thumb_func_end sub_8062230 - thumb_func_start sub_80623B0 -sub_80623B0: - push {r4-r6,lr} - sub sp, 0x8 - ldr r0, _080624D4 - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080623C2 - b _080624CA -_080623C2: - ldr r6, _080624D8 - movs r0, 0 - movs r1, 0 - str r0, [sp] - str r1, [sp, 0x4] - mov r0, sp - ldrh r0, [r0] - ldr r1, _080624DC - ands r1, r0 - ldr r3, _080624E0 - ldr r0, [sp] - ands r0, r3 - orrs r0, r1 - str r0, [sp] - mov r1, sp - ldrh r1, [r1] - adds r2, r3, 0 - ands r2, r0 - orrs r2, r1 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _080624E4 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r5, _080624E8 - adds r0, r5, 0 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _080624EC - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _080624F0 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - movs r4, 0x80 - lsls r4, 7 - mov r0, sp - ldrh r1, [r0] - ldr r0, _080624F4 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - orrs r4, r0 - ands r3, r1 - orrs r3, r4 - str r3, [sp] - mov r3, sp - movs r2, 0xFC - lsls r2, 2 - ldrh r1, [r3, 0x4] - movs r0, 0xFC - lsls r0, 8 - ands r0, r1 - orrs r0, r2 - ands r0, r5 - movs r2, 0xF - movs r1, 0xF0 - lsls r1, 8 - ldr r4, _080624F8 - ands r0, r4 - orrs r0, r1 - strh r0, [r3, 0x4] - movs r1, 0x2 - ldrsh r0, [r6, r1] - lsls r0, 3 - adds r0, 0x70 - ands r0, r4 - lsls r0, 4 - ldrh r1, [r3, 0x6] - ands r2, r1 - orrs r2, r0 - strh r2, [r3, 0x6] - movs r1, 0 - ldrsh r0, [r6, r1] - lsls r0, 3 - adds r0, 0x40 - ldr r1, _080624FC - ands r0, r1 - strh r0, [r3, 0x2] - subs r1, 0xFF - mov r0, sp - movs r2, 0 - movs r3, 0 - bl AddSprite -_080624CA: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080624D4: .4byte gUnknown_202EDCC -_080624D8: .4byte gUnknown_2027370 -_080624DC: .4byte 0x0000feff -_080624E0: .4byte 0xffff0000 -_080624E4: .4byte 0x0000fdff -_080624E8: .4byte 0x0000f3ff -_080624EC: .4byte 0x0000efff -_080624F0: .4byte 0x0000dfff -_080624F4: .4byte 0x00003fff -_080624F8: .4byte 0x00000fff -_080624FC: .4byte 0x000001ff - thumb_func_end sub_80623B0 - thumb_func_start sub_8062500 -sub_8062500: - push {r4,r5,lr} - ldr r0, _0806257C - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08062574 - ldr r5, _08062580 - ldr r0, _08062584 - ldrh r2, [r0] - ldr r1, _08062588 - ands r1, r2 - ldr r2, _0806258C - ands r1, r2 - ldr r4, _08062590 - ands r1, r4 - ldr r2, _08062594 - ands r1, r2 - ldr r2, _08062598 - ands r1, r2 - movs r3, 0x80 - lsls r3, 7 - ldr r2, _0806259C - ands r1, r2 - orrs r1, r3 - strh r1, [r0] - movs r3, 0xFC - lsls r3, 2 - ldrh r2, [r0, 0x4] - movs r1, 0xFC - lsls r1, 8 - ands r1, r2 - orrs r1, r3 - ands r1, r4 - movs r3, 0xF - movs r2, 0xF0 - lsls r2, 8 - ldr r4, _080625A0 - ands r1, r4 - orrs r1, r2 - strh r1, [r0, 0x4] - movs r2, 0x2 - ldrsh r1, [r5, r2] - lsls r1, 3 - adds r1, 0x60 - ands r1, r4 - lsls r1, 4 - ldrh r2, [r0, 0x6] - ands r3, r2 - orrs r3, r1 - strh r3, [r0, 0x6] - movs r1, 0x70 - strh r1, [r0, 0x2] - adds r1, 0x90 - movs r2, 0 - movs r3, 0 - bl AddSprite -_08062574: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806257C: .4byte gUnknown_202EDCC -_08062580: .4byte gUnknown_2027370 -_08062584: .4byte gUnknown_202F268 -_08062588: .4byte 0x0000feff -_0806258C: .4byte 0x0000fdff -_08062590: .4byte 0x0000f3ff -_08062594: .4byte 0x0000efff -_08062598: .4byte 0x0000dfff -_0806259C: .4byte 0x00003fff -_080625A0: .4byte 0x00000fff - thumb_func_end sub_8062500 - - thumb_func_start sub_80625A4 -sub_80625A4: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - adds r7, r0, 0 - mov r9, r1 - mov r0, sp - bl sub_801317C - movs r4, 0 - cmp r4, r7 - bge _0806261A - subs r0, r7, 0x1 - mov r8, r0 - mov r5, sp -_080625C4: - lsls r0, r4, 2 - add r0, r9 - ldr r0, [r0] - mov r1, sp - bl sub_80639E4 - adds r6, r4, 0x1 - b _080625E8 -_080625D4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080625E2 - ldrb r0, [r5, 0x2] - cmp r0, 0 - beq _080625E8 -_080625E2: - bl sub_8083D30 - b _08062614 -_080625E8: - cmp r4, r8 - bge _080625F0 - bl sub_8062500 -_080625F0: - mov r0, sp - movs r1, 0 - bl nullsub_34 - movs r0, 0x16 - bl sub_803E46C - ldr r0, _08062628 - ldrh r1, [r0, 0x2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08062610 - ldrb r0, [r5, 0x1] - cmp r0, 0 - beq _080625D4 -_08062610: - bl sub_8083D08 -_08062614: - adds r4, r6, 0 - cmp r4, r7 - blt _080625C4 -_0806261A: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08062628: .4byte gRealInputs - thumb_func_end sub_80625A4 - - thumb_func_start sub_806262C -sub_806262C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x88 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - mov r0, sp - adds r0, 0x70 - str r0, [sp, 0x84] - add r0, sp, 0x10 - mov r8, r0 - movs r0, 0 - mov r9, r0 - add r7, sp, 0x4 - add r6, sp, 0x80 -_08062650: - add r0, sp, 0x4 - bl sub_801317C - mov r0, r8 - bl sub_80140B4 - mov r0, r8 - str r6, [r0, 0x14] - movs r1, 0x1 - add r0, sp, 0x80 - strb r1, [r0] - mov r0, r9 - strb r0, [r6, 0x1] - movs r0, 0x10 - strb r0, [r6, 0x2] - mov r0, r9 - strb r0, [r6, 0x3] - mov r0, r8 - bl sub_803ECB4 - movs r0, 0 - bl sub_80073B8 - mov r0, r10 - bl GetIQSkillName - adds r1, r0, 0 - ldr r0, _080626CC - bl strcpy - ldr r0, _080626D0 - ldr r2, [r0] - mov r0, r9 - str r0, [sp] - movs r0, 0x10 - movs r1, 0 - movs r3, 0 - bl PrintFormattedStringOnWindow - mov r0, r10 - bl GetIQSkillDescription - adds r2, r0, 0 - mov r0, r9 - str r0, [sp] - movs r0, 0x8 - movs r1, 0x10 - movs r3, 0 - bl PrintFormattedStringOnWindow - movs r0, 0 - bl sub_80073E0 - mov r0, r10 - bl GetIQSkillDescription - ldr r1, [sp, 0x84] - bl sub_8097DF0 - adds r5, r0, 0 - b _080626EA - .align 2, 0 -_080626CC: .4byte gFormatBuffer_Items -_080626D0: .4byte gUnknown_80FE95C -_080626D4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080626E2 - ldrb r0, [r7, 0x2] - cmp r0, 0 - beq _080626EA -_080626E2: - movs r4, 0x1 - bl sub_8083D30 - b _08062718 -_080626EA: - cmp r5, 0 - beq _080626F2 - bl sub_8062500 -_080626F2: - add r0, sp, 0x4 - movs r1, 0 - bl nullsub_34 - movs r0, 0x16 - bl sub_803E46C - ldr r0, _0806272C - ldrh r1, [r0, 0x2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08062712 - ldrb r0, [r7, 0x1] - cmp r0, 0 - beq _080626D4 -_08062712: - movs r4, 0 - bl sub_8083D08 -_08062718: - cmp r4, 0 - bne _08062730 - cmp r5, 0 - beq _08062730 - adds r0, r5, 0 - ldr r1, [sp, 0x84] - bl sub_80625A4 - b _08062650 - .align 2, 0 -_0806272C: .4byte gRealInputs -_08062730: - movs r0, 0x4 - movs r1, 0x3E - bl sub_803E708 - add sp, 0x88 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_806262C - - thumb_func_start sub_8062748 -sub_8062748: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x88 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - mov r0, sp - adds r0, 0x70 - str r0, [sp, 0x84] - add r0, sp, 0x10 - mov r8, r0 - movs r0, 0 - mov r9, r0 - add r7, sp, 0x4 - add r6, sp, 0x80 -_0806276C: - add r0, sp, 0x4 - bl sub_801317C - mov r0, r8 - bl sub_80140B4 - mov r0, r8 - str r6, [r0, 0x14] - movs r1, 0x1 - add r0, sp, 0x80 - strb r1, [r0] - mov r0, r9 - strb r0, [r6, 0x1] - movs r0, 0x10 - strb r0, [r6, 0x2] - mov r0, r9 - strb r0, [r6, 0x3] - mov r0, r8 - bl sub_803ECB4 - movs r0, 0 - bl sub_80073B8 - ldr r0, _080627E0 - mov r1, r10 - bl CopyTacticsNameToBuffer - ldr r0, _080627E4 - ldr r2, [r0] - mov r0, r9 - str r0, [sp] - movs r0, 0x10 - movs r1, 0 - movs r3, 0 - bl PrintFormattedStringOnWindow - mov r0, r10 - bl GetTacticsDescription - adds r2, r0, 0 - mov r0, r9 - str r0, [sp] - movs r0, 0x8 - movs r1, 0x10 - movs r3, 0 - bl PrintFormattedStringOnWindow - movs r0, 0 - bl sub_80073E0 - mov r0, r10 - bl GetTacticsDescription - ldr r1, [sp, 0x84] - bl sub_8097DF0 - adds r5, r0, 0 - b _080627FE - .align 2, 0 -_080627E0: .4byte gFormatBuffer_Items -_080627E4: .4byte gUnknown_80FE960 -_080627E8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080627F6 - ldrb r0, [r7, 0x2] - cmp r0, 0 - beq _080627FE -_080627F6: - movs r4, 0x1 - bl sub_8083D30 - b _0806282C -_080627FE: - cmp r5, 0 - beq _08062806 - bl sub_8062500 -_08062806: - add r0, sp, 0x4 - movs r1, 0 - bl nullsub_34 - movs r0, 0x3E - bl sub_803E46C - ldr r0, _08062840 - ldrh r1, [r0, 0x2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08062826 - ldrb r0, [r7, 0x1] - cmp r0, 0 - beq _080627E8 -_08062826: - movs r4, 0 - bl sub_8083D08 -_0806282C: - cmp r4, 0 - bne _08062844 - cmp r5, 0 - beq _08062844 - adds r0, r5, 0 - ldr r1, [sp, 0x84] - bl sub_80625A4 - b _0806276C - .align 2, 0 -_08062840: .4byte gRealInputs -_08062844: - movs r0, 0x4 - movs r1, 0x3E - bl sub_803E708 - add sp, 0x88 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8062748 thumb_func_start sub_806285C sub_806285C: diff --git a/include/structs/sprite_oam.h b/include/structs/sprite_oam.h index b1e1c6e98..84d6e0042 100644 --- a/include/structs/sprite_oam.h +++ b/include/structs/sprite_oam.h @@ -259,16 +259,6 @@ typedef struct SpriteOAM (spritePtr)->attrib2 |= _xSpriteVal; \ } -// Hacky way of matching functions in menu_input.c AddMenuCursorSprite_, sub_801332C sub_8013470 -#define SpriteSetX_MatrixNumSize0(spritePtr, _x) \ -{ \ - u32 _xSpriteVal = _x; \ - _xSpriteVal &= SPRITEOAM_MAX_X; \ - _xSpriteVal <<= SPRITEOAM_SHIFT_X; \ - (spritePtr)->attrib2 &= ~SPRITEOAM_MASK_X; \ - (spritePtr)->attrib2 = _xSpriteVal; \ -} - #define SpriteGetY(spritePtr)(((spritePtr)->unk6 >> SPRITEOAM_SHIFT_WORKING_Y) & SPRITEOAM_MAX_WORKING_Y) #define SpriteGetY_LocalVar(spritePtr, _y) \ diff --git a/src/code_805D8C8.c b/src/code_805D8C8.c index 16fafdc0d..8d7c71136 100644 --- a/src/code_805D8C8.c +++ b/src/code_805D8C8.c @@ -37,7 +37,7 @@ void sub_8068310(s32 size, u16 **param_2) } void sub_8068344(void) -{ +{ if ((gUnknown_202EDCC & 8) != 0) { UnkTextStruct1 *ptr = &gUnknown_2027370[0]; SpriteOAM sprite = {0}; @@ -49,7 +49,7 @@ void sub_8068344(void) SpriteSetBpp(&sprite, 0); SpriteSetShape(&sprite, 1); SpriteSetMatrixNum(&sprite, 16); - SpriteSetSize(&sprite, 0); + SpriteSetSize(&sprite, 0); SpriteSetTileNum(&sprite, 0x3F0); SpriteSetPriority(&sprite, 0); SpriteSetPalNum(&sprite, 15); @@ -59,8 +59,9 @@ void sub_8068344(void) } } +// The same as sub_80623B0 void sub_80684C4(void) -{ +{ if ((gUnknown_202EDCC & 8) != 0) { UnkTextStruct1 *ptr = &gUnknown_2027370[0]; SpriteOAM sprite = {0}; @@ -71,12 +72,13 @@ void sub_80684C4(void) SpriteSetMosaic(&sprite, 0); SpriteSetBpp(&sprite, 0); SpriteSetShape(&sprite, 1); + SpriteSetMatrixNum(&sprite, 0); SpriteSetSize(&sprite, 0); SpriteSetTileNum(&sprite, 0x3F0); SpriteSetPriority(&sprite, 0); SpriteSetPalNum(&sprite, 15); SpriteSetY(&sprite, (ptr->unk2 * 8) + 0x70); - SpriteSetX_MatrixNumSize0(&sprite, (ptr->unk0 * 8) + 0x40); + SpriteSetX(&sprite, (ptr->unk0 * 8) + 0x40); AddSprite(&sprite,0x100,NULL,NULL); } } diff --git a/src/code_805D8C8_1.c b/src/code_805D8C8_1.c index 8438e7dc7..e3405884b 100644 --- a/src/code_805D8C8_1.c +++ b/src/code_805D8C8_1.c @@ -3102,7 +3102,7 @@ EWRAM_INIT u8 gUnknown_203B43C[4] = {2, 0, 0xD, 0}; // TODO: Move to a better fi extern void sub_8069844(struct unkStruct_808FF20 *param_1, Entity *target); extern u32 sub_8014140(s32 a0, const void *a1); extern void sub_806285C(s32 a0); -extern void sub_806262C(s32 a0); +void sub_806262C(u8 iqSkillId); extern const u8 gUnknown_8106B8C[]; @@ -3559,4 +3559,220 @@ void sub_8061A38(ActionContainer *a0, bool8 a1) LoadIQSkills(entity); } +extern s32 gUnknown_202EDCC; + +// The same as sub_8068344 +void sub_8062230(void) +{ + if ((gUnknown_202EDCC & 8) != 0) { + UnkTextStruct1 *txtStrPtr = &gUnknown_2027370[0]; + SpriteOAM sprite = {0}; + + SpriteSetAffine1(&sprite, 0); + SpriteSetAffine2(&sprite, 0); + SpriteSetObjMode(&sprite, 0); + SpriteSetMosaic(&sprite, 0); + SpriteSetBpp(&sprite, 0); + SpriteSetShape(&sprite, 1); + SpriteSetMatrixNum(&sprite, 16); + SpriteSetSize(&sprite, 0); + SpriteSetTileNum(&sprite, 0x3F0); + SpriteSetPriority(&sprite, 0); + SpriteSetPalNum(&sprite, 15); + SpriteSetY(&sprite, (txtStrPtr->unk2 * 8) + 0x8); + SpriteSetX(&sprite, (txtStrPtr->unk0 * 8) + 0x40); + + AddSprite(&sprite, 0x100, NULL, NULL); + } +} + +// The same as sub_80684C4 +void sub_80623B0(void) +{ + if ((gUnknown_202EDCC & 8) != 0) { + UnkTextStruct1 *ptr = &gUnknown_2027370[0]; + SpriteOAM sprite = {0}; + + SpriteSetAffine1(&sprite, 0); + SpriteSetAffine2(&sprite, 0); + SpriteSetObjMode(&sprite, 0); + SpriteSetMosaic(&sprite, 0); + SpriteSetBpp(&sprite, 0); + SpriteSetShape(&sprite, 1); + SpriteSetMatrixNum(&sprite, 0); + SpriteSetSize(&sprite, 0); + SpriteSetTileNum(&sprite, 0x3F0); + SpriteSetPriority(&sprite, 0); + SpriteSetPalNum(&sprite, 15); + SpriteSetY(&sprite, (ptr->unk2 * 8) + 0x70); + SpriteSetX(&sprite, (ptr->unk0 * 8) + 0x40); + AddSprite(&sprite,0x100,NULL,NULL); + } +} + +extern SpriteOAM gUnknown_202F268; + +void sub_8062500(void) +{ + if ((gUnknown_202EDCC & 8) != 0) { + UnkTextStruct1 *ptr = &gUnknown_2027370[0]; + + SpriteSetAffine1(&gUnknown_202F268, 0); + SpriteSetAffine2(&gUnknown_202F268, 0); + SpriteSetObjMode(&gUnknown_202F268, 0); + SpriteSetMosaic(&gUnknown_202F268, 0); + SpriteSetBpp(&gUnknown_202F268, 0); + SpriteSetShape(&gUnknown_202F268, 1); + SpriteSetMatrixNum(&gUnknown_202F268, 0); + SpriteSetSize(&gUnknown_202F268, 0); + SpriteSetTileNum(&gUnknown_202F268, 0x3F0); + SpriteSetPriority(&gUnknown_202F268, 0); + SpriteSetPalNum(&gUnknown_202F268, 15); + SpriteSetY(&gUnknown_202F268, (ptr->unk2 * 8) + 0x60); + SpriteSetX(&gUnknown_202F268, 0x70); + AddSprite(&gUnknown_202F268,0x100,NULL,NULL); + } +} + +void sub_80639E4(struct subStruct_203B240 *strings, MenuInputStructSub *menuSub); + +void sub_80625A4(s32 count, struct subStruct_203B240 **strings) +{ + s32 i; + MenuInputStructSub menuSub; + + sub_801317C(&menuSub); + for (i = 0; i < count; i++) { + sub_80639E4(strings[i], &menuSub); + while (1) { + if (i < count - 1) { + sub_8062500(); + } + nullsub_34(&menuSub, 0); + sub_803E46C(0x16); + if ((gRealInputs.pressed & A_BUTTON) || menuSub.a_button) { + sub_8083D08(); + break; + } + if ((gRealInputs.pressed & B_BUTTON) || menuSub.b_button) { + sub_8083D30(); + break; + } + } + + } +} + +#include "code_8097DD0.h" + +extern const u8 *const gUnknown_80FE95C; +extern const u8 *const gUnknown_80FE960; + +void sub_806262C(u8 iqSkillId) +{ + MenuInputStructSub menuSub; + Windows windows; + WindowHeader header; + struct subStruct_203B240 *result[4]; + + while (1) { + s32 count; + bool8 bPress; + + sub_801317C(&menuSub); + sub_80140B4(&windows); + windows.id[0].unk14 = &header; + header.f0 = 1; + header.f1 = 0; + header.f2 = 16; + header.f3 = 0; + sub_803ECB4(&windows, TRUE); + sub_80073B8(0); + + strcpy(gFormatBuffer_Items[0], GetIQSkillName(iqSkillId)); + PrintFormattedStringOnWindow(16, 0, gUnknown_80FE95C, 0, '\0'); + PrintFormattedStringOnWindow(8, 16, GetIQSkillDescription(iqSkillId), 0, '\0'); + sub_80073E0(0); + count = sub_8097DF0(GetIQSkillDescription(iqSkillId), result); + while (1) { + if (count != 0) { + sub_8062500(); + } + nullsub_34(&menuSub, 0); + sub_803E46C(0x16); + if ((gRealInputs.pressed & A_BUTTON) || menuSub.a_button) { + bPress = FALSE; + sub_8083D08(); + break; + } + if ((gRealInputs.pressed & B_BUTTON) || menuSub.b_button) { + bPress = TRUE; + sub_8083D30(); + break; + } + } + + if (bPress || count == 0) + break; + + sub_80625A4(count, result); + } + + sub_803E708(4, 0x3E); +} + +void sub_8062748(u8 tacticId) +{ + MenuInputStructSub menuSub; + Windows windows; + WindowHeader header; + struct subStruct_203B240 *result[4]; + + while (1) { + s32 count; + bool8 bPress; + + sub_801317C(&menuSub); + sub_80140B4(&windows); + windows.id[0].unk14 = &header; + header.f0 = 1; + header.f1 = 0; + header.f2 = 16; + header.f3 = 0; + sub_803ECB4(&windows, TRUE); + sub_80073B8(0); + + CopyTacticsNameToBuffer(gFormatBuffer_Items[0], tacticId); + PrintFormattedStringOnWindow(16, 0, gUnknown_80FE960, 0, '\0'); + PrintFormattedStringOnWindow(8, 16, GetTacticsDescription(tacticId), 0, '\0'); + sub_80073E0(0); + count = sub_8097DF0(GetTacticsDescription(tacticId), result); + while (1) { + if (count != 0) { + sub_8062500(); + } + nullsub_34(&menuSub, 0); + sub_803E46C(62); + if ((gRealInputs.pressed & A_BUTTON) || menuSub.a_button) { + bPress = FALSE; + sub_8083D08(); + break; + } + if ((gRealInputs.pressed & B_BUTTON) || menuSub.b_button) { + bPress = TRUE; + sub_8083D30(); + break; + } + } + + if (bPress || count == 0) + break; + + sub_80625A4(count, result); + } + + sub_803E708(4, 0x3E); +} + + // diff --git a/src/menu_input.c b/src/menu_input.c index 26eba7212..bb6408f41 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -595,13 +595,14 @@ void AddMenuCursorSprite_(MenuInputStruct *a0, u8 *a1) SpriteSetMosaic(&sp, 0); SpriteSetBpp(&sp, 0); SpriteSetShape(&sp, 0); + SpriteSetMatrixNum(&sp, 0); SpriteSetSize(&sp, 0); SpriteSetTileNum(&sp, 0x3F4); SpriteSetPriority(&sp, 0); SpriteSetPalNum(&sp, 15); SpriteSetUnk6_0(&sp, 0); SpriteSetUnk6_1(&sp, 0); - SpriteSetX_MatrixNumSize0(&sp, a0->unk8.x); + SpriteSetX(&sp, a0->unk8.x); SpriteSetY(&sp, a0->unk8.y + 1); AddSprite(&sp, 0xFF, 0, 0); @@ -629,13 +630,14 @@ static void sub_801332C(DungeonPos *a0) SpriteSetMosaic(&sp, 0); SpriteSetBpp(&sp, 0); SpriteSetShape(&sp, 0); + SpriteSetMatrixNum(&sp, 0); SpriteSetSize(&sp, 0); SpriteSetTileNum(&sp, 0x3F5); SpriteSetPriority(&sp, 0); SpriteSetPalNum(&sp, 15); SpriteSetUnk6_0(&sp, 0); SpriteSetUnk6_1(&sp, 0); - SpriteSetX_MatrixNumSize0(&sp, a0->x); + SpriteSetX(&sp, a0->x); SpriteSetY(&sp, a0->y + 1); AddSprite(&sp, 0xFF, NULL, NULL); @@ -653,13 +655,14 @@ static void sub_8013470(MenuInputStruct *a0) SpriteSetMosaic(&sp, 0); SpriteSetBpp(&sp, 0); SpriteSetShape(&sp, 0); + SpriteSetMatrixNum(&sp, 0); SpriteSetSize(&sp, 0); SpriteSetTileNum(&sp, 0x3F2); SpriteSetPriority(&sp, 0); SpriteSetPalNum(&sp, 15); SpriteSetUnk6_0(&sp, 0); SpriteSetUnk6_1(&sp, 0); - SpriteSetX_MatrixNumSize0(&sp, a0->unkC); + SpriteSetX(&sp, a0->unkC); SpriteSetY(&sp, a0->unkE); AddSprite(&sp, 0xFF, NULL, NULL); @@ -671,13 +674,14 @@ static void sub_8013470(MenuInputStruct *a0) SpriteSetMosaic(&sp, 0); SpriteSetBpp(&sp, 0); SpriteSetShape(&sp, 0); + SpriteSetMatrixNum(&sp, 0); SpriteSetSize(&sp, 0); SpriteSetTileNum(&sp, 0x3F3); SpriteSetPriority(&sp, 0); SpriteSetPalNum(&sp, 15); SpriteSetUnk6_0(&sp, 0); SpriteSetUnk6_1(&sp, 0); - SpriteSetX_MatrixNumSize0(&sp, a0->unkC + 10); + SpriteSetX(&sp, a0->unkC + 10); SpriteSetY(&sp, a0->unkE); AddSprite(&sp, 0xFF, NULL, NULL);