mirror of
https://github.com/zeldaret/tmc
synced 2026-05-23 23:05:38 -04:00
Merge pull request #573 from hatal175/TextDispEnquiry
Match some functions
This commit is contained in:
@@ -1,70 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
mov sb, r0
|
||||
adds r4, r1, #0
|
||||
movs r0, #0x6a
|
||||
movs r1, #0x1e
|
||||
movs r2, #1
|
||||
bl CreateObject
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
beq _08095F2A
|
||||
ldr r0, [r4, #4]
|
||||
cmp r0, #0
|
||||
bne _08095EE0
|
||||
movs r7, #0x10
|
||||
movs r6, #0x1f
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #7
|
||||
mov sl, r0
|
||||
movs r2, #0
|
||||
mov r8, r2
|
||||
b _08095F02
|
||||
_08095EE0:
|
||||
movs r7, #8
|
||||
movs r6, #0xf
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xb
|
||||
mov sl, r0
|
||||
ldr r4, _08095F34 @ =gUnk_08122B0E
|
||||
bl Random
|
||||
movs r1, #7
|
||||
ands r1, r0
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r4
|
||||
movs r0, #0
|
||||
ldrsh r2, [r1, r0]
|
||||
mov r8, r2
|
||||
movs r0, #0xff
|
||||
strb r0, [r5, #0xb]
|
||||
_08095F02:
|
||||
bl Random
|
||||
adds r4, r0, #0
|
||||
ands r4, r6
|
||||
subs r4, r7, r4
|
||||
bl Random
|
||||
ands r6, r0
|
||||
subs r3, r7, r6
|
||||
lsls r4, r4, #0x10
|
||||
lsls r3, r3, #0x10
|
||||
mov r0, sb
|
||||
adds r1, r5, #0
|
||||
adds r2, r4, #0
|
||||
bl PositionRelative
|
||||
mov r2, sl
|
||||
str r2, [r5, #0x20]
|
||||
mov r0, r8
|
||||
strh r0, [r5, #0x24]
|
||||
_08095F2A:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08095F34: .4byte gUnk_08122B0E
|
||||
.syntax divided
|
||||
@@ -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
|
||||
@@ -1,170 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, [r2, #0x30]
|
||||
cmp r0, #0
|
||||
bne _0807FC88
|
||||
b _0807FDA6
|
||||
_0807FC88:
|
||||
movs r1, #0xa
|
||||
ldrsh r4, [r2, r1]
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r0, r1]
|
||||
subs r0, #0x78
|
||||
subs r3, r4, r0
|
||||
cmp r3, #0
|
||||
beq _0807FD16
|
||||
ldrh r6, [r2, #0xa]
|
||||
movs r7, #7
|
||||
ands r7, r6
|
||||
mov ip, r6
|
||||
cmp r3, #0
|
||||
ble _0807FCDC
|
||||
ldrh r0, [r2, #6]
|
||||
adds r5, r0, #0
|
||||
cmp r5, r4
|
||||
bge _0807FD16
|
||||
ldrb r0, [r2, #0xe]
|
||||
cmp r0, r3
|
||||
bgt _0807FCBC
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r2, #0xf]
|
||||
movs r0, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0xf]
|
||||
_0807FCBC:
|
||||
mov r1, ip
|
||||
subs r0, r1, r3
|
||||
strh r0, [r2, #0xa]
|
||||
subs r0, r7, r3
|
||||
cmp r0, #0
|
||||
bgt _0807FCCE
|
||||
ldr r1, _0807FCD8 @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0807FCCE:
|
||||
movs r1, #0xa
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r5, r0
|
||||
blt _0807FD16
|
||||
b _0807FD14
|
||||
.align 2, 0
|
||||
_0807FCD8: .4byte gUpdateVisibleTiles
|
||||
_0807FCDC:
|
||||
ldrh r0, [r2, #6]
|
||||
ldrh r1, [r2, #0x1e]
|
||||
adds r0, r0, r1
|
||||
adds r5, r0, #0
|
||||
subs r5, #0xf0
|
||||
cmp r4, r5
|
||||
bge _0807FD16
|
||||
ldrb r0, [r2, #0xe]
|
||||
rsbs r0, r0, #0
|
||||
cmp r0, r3
|
||||
blt _0807FCFC
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r2, #0xf]
|
||||
movs r0, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0xf]
|
||||
_0807FCFC:
|
||||
subs r0, r6, r3
|
||||
strh r0, [r2, #0xa]
|
||||
subs r0, r7, r3
|
||||
cmp r0, #7
|
||||
ble _0807FD0C
|
||||
ldr r1, _0807FD68 @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0807FD0C:
|
||||
movs r1, #0xa
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, r5
|
||||
blt _0807FD16
|
||||
_0807FD14:
|
||||
strh r5, [r2, #0xa]
|
||||
_0807FD16:
|
||||
movs r0, #0xc
|
||||
ldrsh r4, [r2, r0]
|
||||
ldr r0, [r2, #0x30]
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r0, r1]
|
||||
subs r0, #0x50
|
||||
subs r3, r4, r0
|
||||
cmp r3, #0
|
||||
beq _0807FDA6
|
||||
ldrh r6, [r2, #0xc]
|
||||
movs r7, #7
|
||||
ands r7, r6
|
||||
mov ip, r6
|
||||
cmp r3, #0
|
||||
ble _0807FD6C
|
||||
ldrh r0, [r2, #8]
|
||||
adds r5, r0, #0
|
||||
cmp r5, r4
|
||||
bge _0807FDA6
|
||||
ldrb r0, [r2, #0xe]
|
||||
cmp r0, r3
|
||||
bgt _0807FD4C
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r2, #0xf]
|
||||
movs r0, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0xf]
|
||||
_0807FD4C:
|
||||
mov r1, ip
|
||||
subs r0, r1, r3
|
||||
strh r0, [r2, #0xc]
|
||||
subs r0, r7, r3
|
||||
cmp r0, #0
|
||||
bgt _0807FD5E
|
||||
ldr r1, _0807FD68 @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0807FD5E:
|
||||
movs r1, #0xc
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r5, r0
|
||||
blt _0807FDA6
|
||||
b _0807FDA4
|
||||
.align 2, 0
|
||||
_0807FD68: .4byte gUpdateVisibleTiles
|
||||
_0807FD6C:
|
||||
ldrh r0, [r2, #8]
|
||||
ldrh r1, [r2, #0x20]
|
||||
adds r0, r0, r1
|
||||
adds r5, r0, #0
|
||||
subs r5, #0xa0
|
||||
cmp r4, r5
|
||||
bge _0807FDA6
|
||||
ldrb r0, [r2, #0xe]
|
||||
rsbs r0, r0, #0
|
||||
cmp r0, r3
|
||||
blt _0807FD8C
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r2, #0xf]
|
||||
movs r0, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0xf]
|
||||
_0807FD8C:
|
||||
subs r0, r6, r3
|
||||
strh r0, [r2, #0xc]
|
||||
subs r0, r7, r3
|
||||
cmp r0, #7
|
||||
ble _0807FD9C
|
||||
ldr r1, _0807FDAC @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0807FD9C:
|
||||
movs r1, #0xc
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, r5
|
||||
blt _0807FDA6
|
||||
_0807FDA4:
|
||||
strh r5, [r2, #0xc]
|
||||
_0807FDA6:
|
||||
bl sub_08080BC4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807FDAC: .4byte gUpdateVisibleTiles
|
||||
.syntax divided
|
||||
@@ -1,99 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #2]
|
||||
movs r6, #8
|
||||
cmp r0, #0
|
||||
bne _0801CC10
|
||||
movs r6, #4
|
||||
cmp r0, #0
|
||||
bne _0801CC10
|
||||
ldr r3, _0801CC08 @ =gUnk_0200AF00
|
||||
ldrb r0, [r3, #1]
|
||||
ldrb r2, [r5, #1]
|
||||
asrs r0, r2
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0801CBF6
|
||||
ldr r0, _0801CC0C @ =gMessage
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801CC10
|
||||
_0801CBF6:
|
||||
lsls r0, r2, #1
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x1c
|
||||
adds r0, r0, r1
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
adds r1, r0, #0
|
||||
subs r1, #0x28
|
||||
b _0801CC1E
|
||||
.align 2, 0
|
||||
_0801CC08: .4byte gUnk_0200AF00
|
||||
_0801CC0C: .4byte gMessage
|
||||
_0801CC10:
|
||||
ldr r1, _0801CC7C @ =gUnk_0200AF00
|
||||
ldrb r0, [r5, #1]
|
||||
lsls r0, r0, #1
|
||||
adds r1, #0x1c
|
||||
adds r0, r0, r1
|
||||
movs r2, #0
|
||||
ldrsh r1, [r0, r2]
|
||||
_0801CC1E:
|
||||
movs r2, #0xe
|
||||
ldrsh r0, [r5, r2]
|
||||
subs r4, r1, r0
|
||||
adds r1, r4, #0
|
||||
cmp r4, #0
|
||||
bge _0801CC2C
|
||||
rsbs r4, r4, #0
|
||||
_0801CC2C:
|
||||
cmp r6, r4
|
||||
bgt _0801CC32
|
||||
adds r4, r6, #0
|
||||
_0801CC32:
|
||||
adds r0, r1, #0
|
||||
bl sub_08000E44
|
||||
muls r4, r0, r4
|
||||
cmp r4, #0
|
||||
beq _0801CC44
|
||||
ldrh r0, [r5, #0xe]
|
||||
adds r0, r0, r4
|
||||
strh r0, [r5, #0xe]
|
||||
_0801CC44:
|
||||
ldr r0, _0801CC7C @ =gUnk_0200AF00
|
||||
ldrb r1, [r5, #1]
|
||||
lsls r1, r1, #1
|
||||
adds r0, #0x16
|
||||
adds r1, r1, r0
|
||||
movs r0, #0
|
||||
ldrsh r1, [r1, r0]
|
||||
movs r2, #0xc
|
||||
ldrsh r0, [r5, r2]
|
||||
subs r4, r1, r0
|
||||
adds r1, r4, #0
|
||||
cmp r4, #0
|
||||
bge _0801CC60
|
||||
rsbs r4, r4, #0
|
||||
_0801CC60:
|
||||
cmp r6, r4
|
||||
bgt _0801CC66
|
||||
adds r4, r6, #0
|
||||
_0801CC66:
|
||||
adds r0, r1, #0
|
||||
bl sub_08000E44
|
||||
muls r4, r0, r4
|
||||
cmp r4, #0
|
||||
beq _0801CC78
|
||||
ldrh r0, [r5, #0xc]
|
||||
adds r0, r0, r4
|
||||
strh r0, [r5, #0xc]
|
||||
_0801CC78:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0801CC7C: .4byte gUnk_0200AF00
|
||||
.syntax divided
|
||||
@@ -1,111 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _08043388
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0804341C
|
||||
movs r5, #0
|
||||
movs r7, #0x80
|
||||
movs r6, #4
|
||||
rsbs r6, r6, #0
|
||||
movs r3, #1
|
||||
_0804336A:
|
||||
ldr r0, [r4, #0x64]
|
||||
lsls r1, r5, #2
|
||||
adds r0, r0, r1
|
||||
ldr r2, [r0]
|
||||
ldrb r0, [r2, #0x10]
|
||||
orrs r0, r7
|
||||
strb r0, [r2, #0x10]
|
||||
ldrb r1, [r2, #0x18]
|
||||
adds r0, r6, #0
|
||||
ands r0, r1
|
||||
orrs r0, r3
|
||||
strb r0, [r2, #0x18]
|
||||
adds r5, #1
|
||||
cmp r5, #4
|
||||
bls _0804336A
|
||||
_08043388:
|
||||
ldr r3, [r4, #0x64]
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x18
|
||||
ldr r1, _080433AC @ =gUnk_080D131C
|
||||
ldrb r0, [r4, #0xb]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
ldrb r1, [r2, #1]
|
||||
subs r0, r0, r1
|
||||
adds r0, #1
|
||||
cmp r0, #2
|
||||
bls _080433B0
|
||||
ldrh r0, [r2, #8]
|
||||
ldrh r1, [r3, #0x18]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r3, #0x18]
|
||||
movs r7, #0
|
||||
b _080433B2
|
||||
.align 2, 0
|
||||
_080433AC: .4byte gUnk_080D131C
|
||||
_080433B0:
|
||||
movs r7, #1
|
||||
_080433B2:
|
||||
adds r0, r4, #0
|
||||
bl sub_08043B9C
|
||||
movs r5, #0
|
||||
movs r6, #0x18
|
||||
_080433BC:
|
||||
ldr r0, [r4, #0x64]
|
||||
adds r2, r0, r6
|
||||
ldr r0, _080433E4 @ =gUnk_080D1414
|
||||
adds r0, r5, r0
|
||||
ldrb r1, [r2, #0xc]
|
||||
ldrb r3, [r0]
|
||||
cmp r3, r1
|
||||
bls _080433E8
|
||||
adds r0, r1, #1
|
||||
strb r0, [r2, #0xc]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r3, r0
|
||||
bne _0804341C
|
||||
movs r0, #0xaf
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
b _0804341C
|
||||
.align 2, 0
|
||||
_080433E4: .4byte gUnk_080D1414
|
||||
_080433E8:
|
||||
cmp r7, #0
|
||||
beq _08043414
|
||||
cmp r5, #4
|
||||
bne _08043414
|
||||
adds r0, r4, #0
|
||||
bl sub_08043BC8
|
||||
adds r0, r4, #0
|
||||
movs r1, #7
|
||||
bl InitAnimationForceUpdate
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7e
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _08043414
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4, #0x64]
|
||||
ldr r1, [r0, #0x14]
|
||||
movs r0, #2
|
||||
strb r0, [r1, #0xd]
|
||||
_08043414:
|
||||
adds r6, #0x10
|
||||
adds r5, #1
|
||||
cmp r5, #4
|
||||
bls _080433BC
|
||||
_0804341C:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
+9
-12
@@ -900,10 +900,9 @@ void sub_080432A8(Entity* this) {
|
||||
}
|
||||
}
|
||||
|
||||
static NONMATCH("asm/non_matching/vaati/sub_0804334C.inc", void sub_0804334C(Entity* this)) {
|
||||
int bVar1;
|
||||
void sub_0804334C(Entity* this) {
|
||||
u32 bVar1;
|
||||
Entity* entity;
|
||||
VaatiArm_HeapStruct1* s;
|
||||
u32 i;
|
||||
VaatiArm_HeapStruct1* ptr;
|
||||
|
||||
@@ -913,13 +912,13 @@ static NONMATCH("asm/non_matching/vaati/sub_0804334C.inc", void sub_0804334C(Ent
|
||||
}
|
||||
for (i = 0; i < 5; i++) {
|
||||
entity = ((VaatiArm_HeapStruct*)this->myHeap)->entities[i];
|
||||
entity->flags = entity->flags | ENT_COLLIDE;
|
||||
COLLISION_ON(entity);
|
||||
entity->spriteSettings.draw = 1;
|
||||
}
|
||||
}
|
||||
s = &((VaatiArm_HeapStruct*)this->myHeap)->s1[0];
|
||||
if ((gUnk_080D131C[this->type2] - s->unk00.HALF.HI) + 1 > 2u) {
|
||||
s->unk00.HWORD += s->unk08;
|
||||
ptr = &((VaatiArm_HeapStruct*)this->myHeap)->s1[0];
|
||||
if (gUnk_080D131C[this->type2] - ptr->unk00.HALF.HI + 1 > 2u) {
|
||||
ptr->unk00.HWORD += ptr->unk08;
|
||||
bVar1 = 0;
|
||||
} else {
|
||||
bVar1 = 1;
|
||||
@@ -927,12 +926,11 @@ static NONMATCH("asm/non_matching/vaati/sub_0804334C.inc", void sub_0804334C(Ent
|
||||
sub_08043B9C(this);
|
||||
for (i = 0; i < 5; i++) {
|
||||
ptr = &(((VaatiArm_HeapStruct*)this->myHeap)->s1)[i];
|
||||
|
||||
if (gUnk_080D1414[i] > ptr->unk0c) {
|
||||
ptr->unk0c++;
|
||||
if (gUnk_080D1414[i] != ptr->unk0c) {
|
||||
return;
|
||||
if (gUnk_080D1414[i] == ++ptr->unk0c) {
|
||||
SoundReq(SFX_15E);
|
||||
}
|
||||
SoundReq(SFX_15E);
|
||||
return;
|
||||
}
|
||||
if ((bVar1) && (i == 4)) {
|
||||
@@ -945,7 +943,6 @@ static NONMATCH("asm/non_matching/vaati/sub_0804334C.inc", void sub_0804334C(Ent
|
||||
}
|
||||
}
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
static void sub_08043420(Entity* this) {
|
||||
gUnk_080D1320[this->subAction](this);
|
||||
|
||||
+13
-5
@@ -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;
|
||||
|
||||
@@ -1107,34 +1107,34 @@ void sub_08095E7C(CutsceneMiscObjectEntity* this, ScriptExecutionContext* ctx) {
|
||||
}
|
||||
}
|
||||
|
||||
NONMATCH("asm/non_matching/cutsceneMiscObject/sub_08095EAC.inc",
|
||||
void sub_08095EAC(CutsceneMiscObjectEntity* this, ScriptExecutionContext* ctx)) {
|
||||
void sub_08095EAC(Entity* this, ScriptExecutionContext* ctx) {
|
||||
Entity* e = CreateObject(CUTSCENE_MISC_OBJECT, 0x1E, 1);
|
||||
s32 x, y;
|
||||
s32 x;
|
||||
s16 y;
|
||||
s32 a, b, speed;
|
||||
s32 vel;
|
||||
|
||||
if (e != NULL) {
|
||||
s32 a, b, vel, speed;
|
||||
if (ctx->intVariable == 0) {
|
||||
a = 0x10;
|
||||
b = 0x1F;
|
||||
vel = 0x4000;
|
||||
vel = Q_16_16(0.25);
|
||||
speed = 0;
|
||||
} else {
|
||||
a = 0x8;
|
||||
b = 0xF;
|
||||
vel = 0x40000;
|
||||
vel = Q_16_16(4);
|
||||
speed = gUnk_08122B0E[Random() & 7];
|
||||
e->type2 = -1;
|
||||
}
|
||||
|
||||
x = a - (Random() & b);
|
||||
y = a - (Random() & b);
|
||||
PositionRelative(super, e, x << 16, y << 16);
|
||||
x = (a - (Random() & b));
|
||||
y = (a - (Random() & b));
|
||||
PositionRelative(this, e, x << 16, y << 16);
|
||||
e->zVelocity = vel;
|
||||
e->speed = speed;
|
||||
}
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
#define local ((Type1F*)this)
|
||||
void sub_08095F38(CutsceneMiscObjectEntity* this) {
|
||||
|
||||
+42
-52
@@ -83,92 +83,83 @@ void sub_0807FC64(RoomControls* controls) {
|
||||
UpdateIsDiggingCave();
|
||||
}
|
||||
|
||||
NONMATCH("asm/non_matching/scroll/sub_0807FC7C.inc", void sub_0807FC7C(RoomControls* controls)) {
|
||||
u32 uVar1;
|
||||
u32 uVar2;
|
||||
u32 uVar3;
|
||||
int iVar4;
|
||||
u32 uVar5;
|
||||
u32 temp;
|
||||
u32 temp2;
|
||||
u32 uVar6;
|
||||
void sub_0807FC7C(RoomControls* controls) {
|
||||
s32 uVar2;
|
||||
s32 uVar3;
|
||||
s32 iVar4;
|
||||
s32 uVar5;
|
||||
s32 temp;
|
||||
|
||||
if (controls->camera_target != NULL) {
|
||||
iVar4 = (int)controls->scroll_x;
|
||||
iVar4 = controls->scroll_x;
|
||||
temp = controls->camera_target->x.HALF.HI - 0x78;
|
||||
uVar3 = iVar4 - temp;
|
||||
uVar3 = controls->scroll_x - temp;
|
||||
if (uVar3 != 0) {
|
||||
uVar1 = (u16)controls->scroll_x;
|
||||
uVar5 = uVar1 & 7;
|
||||
uVar6 = uVar1;
|
||||
if ((int)uVar3 >= 1) {
|
||||
uVar2 = controls->origin_x;
|
||||
if ((int)uVar2 < iVar4) {
|
||||
if ((int)controls->unk5 <= (int)uVar3) {
|
||||
uVar5 = controls->scroll_x & 7;
|
||||
if (uVar3 >= 1) {
|
||||
if (controls->origin_x < controls->scroll_x) {
|
||||
if (controls->unk5 <= uVar3) {
|
||||
uVar3 = controls->unk5;
|
||||
controls->scroll_flags = controls->scroll_flags | 4;
|
||||
controls->scroll_flags |= 4;
|
||||
}
|
||||
controls->scroll_x = uVar6 - uVar3;
|
||||
if ((int)((uVar5)-uVar3) < 1) {
|
||||
controls->scroll_x = controls->scroll_x - uVar3;
|
||||
if (uVar5 - uVar3 < 1) {
|
||||
gUpdateVisibleTiles = 1;
|
||||
}
|
||||
if ((int)uVar2 >= (int)controls->scroll_x) {
|
||||
controls->scroll_x = (s16)uVar2;
|
||||
if (controls->origin_x >= controls->scroll_x) {
|
||||
controls->scroll_x = controls->origin_x;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
uVar2 = (controls->origin_x + controls->width) - 0xf0;
|
||||
if (iVar4 < (int)uVar2) {
|
||||
if ((int)-controls->unk5 >= (int)uVar3) {
|
||||
uVar2 = controls->origin_x + controls->width - 0xf0;
|
||||
if (controls->scroll_x < uVar2) {
|
||||
if (-controls->unk5 >= uVar3) {
|
||||
uVar3 = -controls->unk5;
|
||||
controls->scroll_flags |= 4;
|
||||
}
|
||||
controls->scroll_x = uVar1 - (short)uVar3;
|
||||
if (7 < (int)((uVar5)-uVar3)) {
|
||||
controls->scroll_x -= uVar3;
|
||||
if (uVar5 - uVar3 > 7) {
|
||||
gUpdateVisibleTiles = 1;
|
||||
}
|
||||
if ((int)controls->scroll_x >= (int)uVar2) {
|
||||
controls->scroll_x = (s16)uVar2;
|
||||
if (controls->scroll_x >= uVar2) {
|
||||
controls->scroll_x = uVar2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
iVar4 = (int)controls->scroll_y;
|
||||
iVar4 = controls->scroll_y;
|
||||
temp = controls->camera_target->y.HALF.HI - 0x50;
|
||||
uVar3 = iVar4 - (temp);
|
||||
uVar3 = controls->scroll_y - (temp);
|
||||
if (uVar3 != 0) {
|
||||
uVar1 = (u16)controls->scroll_y;
|
||||
uVar5 = uVar1 & 7;
|
||||
uVar6 = uVar1;
|
||||
if ((int)uVar3 >= 1) {
|
||||
uVar2 = temp2 = (u16)controls->origin_y;
|
||||
if ((int)uVar2 < iVar4) {
|
||||
if ((int)controls->unk5 <= (int)uVar3) {
|
||||
uVar5 = controls->scroll_y & 7;
|
||||
if (uVar3 >= 1) {
|
||||
if (controls->origin_y < controls->scroll_y) {
|
||||
if (controls->unk5 <= uVar3) {
|
||||
uVar3 = controls->unk5;
|
||||
controls->scroll_flags |= 4;
|
||||
}
|
||||
controls->scroll_y = uVar6 - uVar3;
|
||||
if ((int)((uVar5)-uVar3) < 1) {
|
||||
controls->scroll_y = controls->scroll_y - uVar3;
|
||||
if (uVar5 - uVar3 < 1) {
|
||||
gUpdateVisibleTiles = 1;
|
||||
}
|
||||
if ((int)uVar2 >= (int)controls->scroll_y) {
|
||||
controls->scroll_y = (s16)uVar2;
|
||||
if (controls->origin_y >= controls->scroll_y) {
|
||||
controls->scroll_y = controls->origin_y;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
uVar2 = (controls->origin_y + controls->height) - DISPLAY_HEIGHT;
|
||||
if (iVar4 < (int)uVar2) {
|
||||
if ((int)-controls->unk5 >= (int)uVar3) {
|
||||
uVar2 = controls->origin_y + controls->height - DISPLAY_HEIGHT;
|
||||
if (controls->scroll_y < uVar2) {
|
||||
if (-controls->unk5 >= uVar3) {
|
||||
uVar3 = -controls->unk5;
|
||||
controls->scroll_flags = controls->scroll_flags | 4;
|
||||
controls->scroll_flags |= 4;
|
||||
}
|
||||
controls->scroll_y = uVar1 - (short)uVar3;
|
||||
if (7 < (int)((uVar1 & 7) - uVar3)) {
|
||||
controls->scroll_y -= uVar3;
|
||||
if (uVar5 - uVar3 > 7) {
|
||||
gUpdateVisibleTiles = 1;
|
||||
}
|
||||
if ((int)controls->scroll_y >= (int)uVar2) {
|
||||
controls->scroll_y = (s16)uVar2;
|
||||
if (controls->scroll_y >= uVar2) {
|
||||
controls->scroll_y = uVar2;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -176,7 +167,6 @@ NONMATCH("asm/non_matching/scroll/sub_0807FC7C.inc", void sub_0807FC7C(RoomContr
|
||||
}
|
||||
sub_08080BC4();
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
void sub_0807FDB0(RoomControls* controls) {
|
||||
static void (*const gUnk_0811E780[])(RoomControls*) = {
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
extern void sub_0805ECEC(u32, u32, u32, u32);
|
||||
extern bool32 ItemIsBottle(u32);
|
||||
extern u32 sub_08000E44(u32);
|
||||
|
||||
typedef struct {
|
||||
u16 unk_0;
|
||||
@@ -669,7 +670,48 @@ void ButtonUIElement_Action0(UIElement* element) {
|
||||
sub_0801CAFC(element, element->type);
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/ui/ButtonUIElement_Action1.inc", void ButtonUIElement_Action1())
|
||||
void ButtonUIElement_Action1(UIElement* element) {
|
||||
u32 MAX_MOVEMENT;
|
||||
s32 y;
|
||||
u32 y_diff;
|
||||
s32 x;
|
||||
u32 x_diff;
|
||||
|
||||
MAX_MOVEMENT = (!element->type2) ? 4 : 8;
|
||||
|
||||
if (element->type2 == 0 && (((gUnk_0200AF00.unk_1 >> element->type) & 1) || (gMessage.doTextBox & 0x7f) != 0)) {
|
||||
y = (s16)gUnk_0200AF00.buttonY[element->type] - 0x28;
|
||||
} else {
|
||||
y = (s16)gUnk_0200AF00.buttonY[element->type];
|
||||
}
|
||||
|
||||
y -= (s16)element->y;
|
||||
y_diff = (y > 0) ? y : -y;
|
||||
|
||||
if ((s32)MAX_MOVEMENT <= (s32)y_diff) {
|
||||
y_diff = MAX_MOVEMENT;
|
||||
}
|
||||
|
||||
y_diff *= sub_08000E44(y);
|
||||
|
||||
if (y_diff != 0) {
|
||||
element->y += y_diff;
|
||||
}
|
||||
|
||||
x = (short)gUnk_0200AF00.buttonX[element->type];
|
||||
x -= (short)element->x;
|
||||
x_diff = (x < 0) ? -x : x;
|
||||
|
||||
if ((int)MAX_MOVEMENT <= (int)x_diff) {
|
||||
x_diff = MAX_MOVEMENT;
|
||||
}
|
||||
|
||||
x_diff *= sub_08000E44(x);
|
||||
|
||||
if (x_diff != 0) {
|
||||
element->x += x_diff;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_0801CC80(UIElement* element) {
|
||||
u8 type = element->type;
|
||||
|
||||
Reference in New Issue
Block a user