diff --git a/asm/non_matching/eu/TextDispEnquiry.inc b/asm/non_matching/eu/TextDispEnquiry.inc deleted file mode 100644 index 1835ff7f..00000000 --- a/asm/non_matching/eu/TextDispEnquiry.inc +++ /dev/null @@ -1,153 +0,0 @@ -.syntax unified - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - ldr r0, _08056570 @ =gMessageChoices - movs r7, #3 - ldrsb r7, [r0, r7] - ldr r0, _08056574 @ =gInput - ldrh r0, [r0, #2] - cmp r0, #8 - beq _08056582 - cmp r0, #8 - bgt _08056578 - cmp r0, #1 - beq _08056582 - b _080565EA - .align 2, 0 -_08056570: .4byte gMessageChoices -_08056574: .4byte gInput -_08056578: - cmp r0, #0x10 - beq _080565E8 - cmp r0, #0x20 - beq _080565E4 - b _080565EA -_08056582: - ldr r0, _08056598EU @ =gMessageChoices - lsls r1, r7, #1 - adds r0, #0x10 - adds r1, r1, r0 - ldrh r1, [r1] - cmp r1, #0 - bne _080565A0EU - ldr r1, _0805659CEU @ =gUnk_08107C14 - adds r0, r6, #0 - adds r0, #0x20 - b _080565B0EU - .align 2, 0 -_08056598EU: .4byte gMessageChoices -_0805659CEU: .4byte gUnk_08107C14 -_080565A0EU: - strh r1, [r6, #8] - adds r4, r6, #0 - adds r4, #0x20 - adds r0, r4, #0 - bl sub_0805EEB4 - ldr r1, _080565D8 @ =gUnk_08107C0F - adds r0, r4, #0 -_080565B0EU: - bl sub_0805EF40 - ldr r2, _080565DC @ =gUnk_02000040 - ldr r0, _080565E0 @ =gMessageChoices - ldrb r1, [r0, #3] - strb r1, [r2, #1] - movs r1, #3 - strb r1, [r2] - movs r1, #0x18 - bl MemClear - movs r0, #0x6a - bl SoundReq - adds r1, r6, #0 - adds r1, #0x89 - movs r0, #1 - strb r0, [r1] - b _080565EA - .align 2, 0 -_080565D8: .4byte gUnk_08107C0F -_080565DC: .4byte gUnk_02000040 -_080565E0: .4byte gMessageChoices -_080565E4: - subs r7, #1 - b _080565EA -_080565E8: - adds r7, #1 -_080565EA: - ldr r4, _0805660C @ =gMessageChoices - movs r1, #2 - ldrsb r1, [r4, r1] - adds r0, r7, r1 - bl __modsi3 - adds r7, r0, #0 - movs r5, #3 - ldrsb r5, [r4, r5] - cmp r7, r5 - beq _08056610 - strb r7, [r4, #3] - movs r0, #0x69 - bl SoundReq - movs r1, #1 - b _08056612 - .align 2, 0 -_0805660C: .4byte gMessageChoices -_08056610: - movs r1, #0 -_08056612: - ldr r2, _08056674 @ =gUnk_02000040 - ldrb r0, [r2] - cmp r0, #1 - bne _08056624 - ldr r1, _08056678 @ =gMessageChoices - movs r0, #2 - strb r0, [r2] - strb r0, [r1] - movs r1, #1 -_08056624: - cmp r1, #0 - beq _0805666A - ldr r0, _0805667C @ =gTextRender - mov sl, r0 - movs r1, #0x56 - add r1, sl - mov sb, r1 - ldrh r0, [r1] - mov r8, r0 - ldr r4, _08056678 @ =gMessageChoices - lsls r0, r5, #1 - adds r4, #8 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r6, #0x50 - movs r0, #0 - adds r1, r6, #0 - bl sub_0805F8E4 - lsls r0, r7, #1 - adds r0, r0, r4 - ldrh r0, [r0] - mov r1, sb - strh r0, [r1] - movs r0, #1 - adds r1, r6, #0 - bl sub_0805F8E4 - mov r1, r8 - mov r0, sb - strh r1, [r0] - movs r0, #1 - ldr r1, _08056680 @ =0x0202281D - strb r0, [r1] -_0805666A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08056674: .4byte gUnk_02000040 -_08056678: .4byte gMessageChoices -_0805667C: .4byte gTextRender -_08056680: .4byte 0x0202281D -.syntax divided diff --git a/src/message.c b/src/message.c index 01305823..165c58d1 100644 --- a/src/message.c +++ b/src/message.c @@ -505,11 +505,7 @@ u16 RunTextCommand(TextRender* this) { const u8 gUnk_08107C0F[] = { 0x8, 0x1e, 0x4, 0x12, 0x0 }; const u8 gUnk_08107C14[] = { 0x8, 0x1e, 0x8, 0xFE, 0x0 }; -#ifdef EU -ASM_FUNC("asm/non_matching/eu/TextDispEnquiry.inc", /*static*/ void TextDispEnquiry(TextRender* ctb)) -#else - -/*static*/ void TextDispEnquiry(TextRender* this) { +void TextDispEnquiry(TextRender* this) { s32 nextTextIdx, choiceIdx, lastChoice; u32 doSwitch; const u8* src; @@ -556,10 +552,22 @@ ASM_FUNC("asm/non_matching/eu/TextDispEnquiry.inc", /*static*/ void TextDispEnqu doSwitch = 1; } if (doSwitch) { +#ifdef EU + u32 previousUnk6 = gTextRender._50.unk6; + gTextRender._50.unk6 = gMessageChoices.unk_08[lastChoice]; + sub_0805F8E4(0, &this->_50); + gTextRender._50.unk6 = gMessageChoices.unk_08[choiceIdx]; + sub_0805F8E4(1, &this->_50); + gTextRender._50.unk6 = previousUnk6; + gTextRender.updateDraw = 1; +#else SwitchChoice(choiceIdx, lastChoice); +#endif } } +#ifndef EU + static void SwitchChoice(u32 to, u32 from) { u16 t; t = gTextRender._50.unk6;