Merge pull request #92 from AnonymousRandomPerson/master

More item AI decomp
This commit is contained in:
Seth Barberee 2022-01-07 16:30:55 -08:00 committed by GitHub
commit 3cdde2a92a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 12184 additions and 12296 deletions

View File

@ -5469,7 +5469,7 @@ _0803FBBA:
lsls r3, 1
adds r0, r3
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0
bne _0803FBD2
movs r0, 0x1

File diff suppressed because it is too large Load Diff

2625
asm/code_8046CE4.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -42,7 +42,7 @@ _08048568:
lsls r0, 1
adds r5, r0
ldr r0, [r5]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0
beq _08048598
mov r0, sp
@ -1310,638 +1310,4 @@ sub_8048F00:
_08048F24: .4byte gPtrMusicBoxPlayedCrumbledMessage
thumb_func_end sub_8048F00
thumb_func_start EvaluateItem
EvaluateItem:
push {r4-r7,lr}
sub sp, 0x4
adds r4, r0, 0
ldr r3, [r4, 0x70]
movs r6, 0
movs r0, 0x1
adds r5, r2, 0
ands r5, r0
lsrs r2, 1
movs r0, 0x1
ands r2, r0
ldrb r0, [r1, 0x2]
subs r0, 0x1
cmp r0, 0xCC
bls _08048F48
b _080494E0
_08048F48:
lsls r0, 2
ldr r1, _08048F54
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08048F54: .4byte _08048F58
.align 2, 0
_08048F58:
.4byte _0804928C
.4byte _0804928C
.4byte _0804928C
.4byte _0804928C
.4byte _0804928C
.4byte _0804928C
.4byte _0804928C
.4byte _0804928C
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _08049408
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _08049296
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080492B0
.4byte _080492B0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _08049320
.4byte _080494E0
.4byte _080492B8
.4byte _080492B8
.4byte _0804935E
.4byte _080494E0
.4byte _080493E0
.4byte _0804948E
.4byte _08049394
.4byte _08049344
.4byte _0804946E
.4byte _0804947A
.4byte _08049378
.4byte _080493CE
.4byte _080493AC
.4byte _080493B8
.4byte _08049436
.4byte _080494E0
.4byte _080493F6
.4byte _080494B2
.4byte _0804946A
.4byte _08049462
.4byte _08049454
.4byte _08049498
.4byte _080492DC
.4byte _0804932C
.4byte _08049338
.4byte _0804933C
.4byte _08049340
.4byte _080494C2
.4byte _080494C2
.4byte _080494D6
.4byte _080494C2
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494DA
_0804928C:
cmp r5, 0
bne _08049292
b _080494E2
_08049292:
movs r6, 0x46
b _080494E2
_08049296:
cmp r5, 0
bne _0804929C
b _080494E0
_0804929C:
movs r1, 0x9E
lsls r1, 1
adds r0, r3, r1
ldr r0, [r0]
bl GetBellyRoundedUp
cmp r0, 0
ble _080492AE
b _0804948A
_080492AE:
b _080494E0
_080492B0:
cmp r5, 0
beq _080492B6
b _0804948A
_080492B6:
b _080494E0
_080492B8:
movs r2, 0xE
ldrsh r1, [r3, r2]
movs r2, 0x10
ldrsh r0, [r3, r2]
cmp r1, r0
blt _080492C6
b _080494E2
_080492C6:
cmp r0, 0
bge _080492CC
adds r0, 0x3
_080492CC:
asrs r0, 2
cmp r1, r0
ble _080492D4
b _080494E2
_080492D4:
cmp r5, 0
bne _080492DA
b _08049420
_080492DA:
b _08049432
_080492DC:
movs r6, 0
movs r0, 0x8C
lsls r0, 1
adds r5, r3, r0
adds r7, r5, 0
movs r2, 0x3
_080492E8:
ldrb r1, [r5]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0804930C
ldrb r0, [r5, 0x4]
cmp r0, 0
bne _080492FA
adds r6, 0x1E
_080492FA:
ldrb r4, [r5, 0x4]
adds r0, r7, 0
str r2, [sp]
bl GetMoveMaxPP
ldr r2, [sp]
cmp r4, r0
beq _0804930C
adds r6, 0x6
_0804930C:
adds r5, 0x8
adds r7, 0x8
subs r2, 0x1
cmp r2, 0
bge _080492E8
cmp r6, 0x62
bgt _0804931C
b _080494E2
_0804931C:
movs r6, 0x63
b _080494E2
_08049320:
adds r0, r4, 0
bl HasNegativeStatus
lsls r0, 24
movs r6, 0
b _080494BC
_0804932C:
ldrb r0, [r3, 0x14]
_0804932E:
movs r6, 0x64
cmp r0, 0xF9
bhi _08049336
b _080494E2
_08049336:
b _080494E0
_08049338:
ldrb r0, [r3, 0x15]
b _0804932E
_0804933C:
ldrb r0, [r3, 0x16]
b _0804932E
_08049340:
ldrb r0, [r3, 0x17]
b _0804932E
_08049344:
cmp r5, 0
beq _0804934A
b _080494E0
_0804934A:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x64
cmp r0, 0
bne _0804935A
b _080494E2
_0804935A:
movs r6, 0xA
b _080494E2
_0804935E:
adds r0, r4, 0
bl CanSeeInvisible
lsls r0, 24
cmp r0, 0
beq _0804936C
b _080494A2
_0804936C:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
b _080494BC
_08049378:
ldr r0, [r4, 0x70]
movs r1, 0x82
lsls r1, 1
adds r0, r1
ldr r0, [r0]
cmp r0, 0x3
ble _08049388
b _080494A2
_08049388:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
b _080494BC
_08049394:
adds r0, r3, 0
adds r0, 0xE8
ldrb r0, [r0]
cmp r0, 0x2
bne _080493A0
b _080494A2
_080493A0:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
b _080494BC
_080493AC:
adds r0, r3, 0
adds r0, 0xAC
ldrb r0, [r0]
cmp r0, 0x4
bne _080494A2
b _080494B2
_080493B8:
adds r0, r3, 0
adds r0, 0xBC
ldrb r0, [r0]
cmp r0, 0x2
beq _080494A2
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0xF
b _080494BC
_080493CE:
adds r0, r3, 0
adds r0, 0xAC
ldrb r0, [r0]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080494A2
b _08049420
_080493E0:
adds r0, r3, 0
adds r0, 0xE8
ldrb r0, [r0]
cmp r0, 0x1
beq _080494A2
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
b _080494BC
_080493F6:
cmp r2, 0
bne _0804940C
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
cmp r0, 0
beq _080494E2
_08049408:
movs r6, 0x28
b _080494E2
_0804940C:
movs r2, 0xE
ldrsh r1, [r3, r2]
movs r2, 0x10
ldrsh r0, [r3, r2]
cmp r1, r0
bge _080494E2
cmp r1, 0x13
bgt _080494E2
cmp r5, 0
bne _08049432
_08049420:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x32
cmp r0, 0
beq _080494E2
movs r6, 0x64
b _080494E2
_08049432:
movs r6, 0x32
b _080494E2
_08049436:
adds r0, r3, 0
adds r0, 0xA8
ldrb r0, [r0]
cmp r0, 0x1
beq _080494A2
cmp r0, 0x5
beq _080494A2
cmp r0, 0x3
beq _080494A2
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
b _080494BC
_08049454:
adds r0, r3, 0
adds r0, 0xA8
ldrb r0, [r0]
cmp r0, 0x2
beq _080494A2
movs r6, 0x5
b _080494E2
_08049462:
ldrb r0, [r3, 0x9]
movs r6, 0
cmp r0, 0x62
bhi _080494E2
_0804946A:
movs r6, 0x50
b _080494E2
_0804946E:
adds r0, r3, 0
adds r0, 0xAC
ldrb r0, [r0]
cmp r0, 0x1
beq _0804948A
b _080494E0
_0804947A:
movs r1, 0x9E
lsls r1, 1
adds r0, r3, r1
ldr r0, [r0]
bl GetBellyRoundedUp
cmp r0, 0
ble _080494E0
_0804948A:
movs r0, 0x32
b _080494E4
_0804948E:
ldrb r0, [r3, 0x9]
movs r6, 0
cmp r0, 0x1
bls _080494E2
b _0804946A
_08049498:
adds r0, r3, 0
adds r0, 0xB0
ldrb r0, [r0]
cmp r0, 0x6
bne _080494A6
_080494A2:
movs r0, 0
b _080494E4
_080494A6:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
b _080494BC
_080494B2:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x1E
_080494BC:
cmp r0, 0
beq _080494E2
b _0804946A
_080494C2:
movs r2, 0x9E
lsls r2, 1
adds r0, r3, r2
ldr r0, [r0]
bl GetBellyRoundedUp
cmp r0, 0x9
bgt _080494E0
movs r0, 0x64
b _080494E4
_080494D6:
movs r6, 0x1E
b _080494E2
_080494DA:
movs r6, 0x14
cmp r5, 0
beq _080494E2
_080494E0:
movs r6, 0
_080494E2:
adds r0, r6, 0
_080494E4:
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end EvaluateItem
thumb_func_start CanTargetAdjacentPokemon
CanTargetAdjacentPokemon:
push {r4-r6,lr}
adds r5, r0, 0
movs r6, 0
_080494F2:
movs r1, 0x4
ldrsh r0, [r5, r1]
ldr r1, _08049538
lsls r2, r6, 2
adds r2, r1
movs r3, 0
ldrsh r1, [r2, r3]
adds r0, r1
movs r3, 0x6
ldrsh r1, [r5, r3]
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
bl GetMapTileAtPosition
ldr r4, [r0, 0x10]
cmp r4, 0
beq _0804953C
adds r0, r4, 0
bl GetEntityType
cmp r0, 0
beq _0804953C
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0
movs r3, 0x1
bl CanTarget
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0804953C
movs r0, 0x1
b _08049544
.align 2, 0
_08049538: .4byte gAdjacentTileOffsets
_0804953C:
adds r6, 0x1
cmp r6, 0x7
ble _080494F2
movs r0, 0
_08049544:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end CanTargetAdjacentPokemon
.align 2, 0

View File

@ -2611,7 +2611,7 @@ _08053888:
lsls r2, 1
adds r0, r1, r2
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
ldr r1, _080538C4
movs r3, 0
ldrsh r1, [r1, r3]

View File

@ -6523,7 +6523,7 @@ sub_805AAE0:
lsls r1, 1
adds r5, r0, r1
ldr r0, [r5]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0x1
ble _0805AB20
ldr r0, _0805AB1C
@ -10426,7 +10426,7 @@ _0805CB24:
lsls r1, 1
adds r0, r2, r1
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0
ble _0805CB3E
b _0805CEA8
@ -12282,7 +12282,7 @@ _0805DB7A:
lsls r0, 1
add r0, r8
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0
beq _0805DBAA
b _0805D9EC
@ -12307,7 +12307,7 @@ _0805DBBE:
lsls r0, 1
add r0, r8
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0
bne _0805DBDA
b _0805DD02
@ -13016,7 +13016,7 @@ _0805E14C:
lsls r0, 1
add r0, r8
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0
beq _0805E188
mov r1, r10
@ -16138,14 +16138,14 @@ _0805FA62:
lsls r1, 1
adds r0, r7, r1
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
ldr r4, _0805FBC0
str r0, [r4]
movs r2, 0xA0
lsls r2, 1
adds r0, r7, r2
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
str r0, [r4, 0x4]
ldr r0, _0805FBC4
ldr r2, [r0]
@ -35982,7 +35982,7 @@ _08069A02:
lsls r1, 1
adds r0, r5, r1
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0
bne _08069A38
ldrb r0, [r5, 0x7]
@ -37646,11 +37646,11 @@ _0806A664:
movs r1, 0
mov r8, r1
adds r0, r5, 0
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0x13
ble _0806A6A4
ldr r0, [r4]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0x13
bgt _0806A6A4
ldr r0, _0806A6E0
@ -37658,14 +37658,14 @@ _0806A664:
mov r8, r0
_0806A6A4:
adds r0, r5, 0
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0x9
ble _0806A6C4
movs r2, 0x9E
lsls r2, 1
adds r0, r7, r2
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0x9
bgt _0806A6C4
ldr r0, _0806A6E4

View File

@ -3616,7 +3616,7 @@ _0806EB3A:
lsls r0, 1
add r0, r10
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
adds r1, r0, 0
cmp r1, 0
bne _0806EB72

View File

@ -685,11 +685,11 @@ _0807421E:
str r0, [r4]
movs r6, 0x1
adds r0, r7, 0
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0x13
ble _0807425C
ldr r0, [r4]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0x13
bgt _0807425C
ldr r0, _08074368
@ -697,14 +697,14 @@ _0807421E:
mov r9, r0
_0807425C:
adds r0, r7, 0
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0x9
ble _0807427C
movs r0, 0x9E
lsls r0, 1
add r0, r8
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0x9
bgt _0807427C
ldr r0, _0807436C
@ -715,7 +715,7 @@ _0807427C:
lsls r4, 1
add r4, r8
ldr r0, [r4]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0
bne _08074298
add r0, sp, 0x20
@ -725,7 +725,7 @@ _0807427C:
str r0, [r4]
_08074298:
ldr r0, [r4]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0
bge _080742AE
add r0, sp, 0x24
@ -735,7 +735,7 @@ _08074298:
str r0, [r4]
_080742AE:
ldr r0, [r4]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0
bne _08074384
bl sub_805E804
@ -803,13 +803,13 @@ _08074320:
movs r0, 0x1
strb r0, [r1]
ldr r0, [r4]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r0, 0
beq _08074390
b _080743B0
.align 2, 0
_0807434C: .4byte 0x00000169
_08074350: .4byte gUnknown_80F5594
_08074350: .4byte gWarpScarfActivationChances
_08074354: .4byte gDungeonGlobalData
_08074358: .4byte 0x0000199a
_0807435C: .4byte gUnknown_80F54F4

View File

@ -5786,10 +5786,10 @@ sub_8078A58:
movs r2, 0
bl SetMessageArgument
adds r0, r7, 0
bl GetBellyRoundedUp
bl RoundUpFixedPoint
adds r4, r0, 0
ldr r0, [r5]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r4, r0
beq _08078AD8
adds r0, r6, 0
@ -5823,10 +5823,10 @@ _08078AE0:
movs r2, 0
bl SetMessageArgument
adds r0, r7, 0
bl GetBellyRoundedUp
bl RoundUpFixedPoint
adds r5, r0, 0
ldr r0, [r4]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r5, r0
beq _08078B38
adds r0, r6, 0
@ -5916,13 +5916,13 @@ _08078BB8:
lsls r1, 1
adds r0, r7, r1
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
adds r4, r0, 0
movs r1, 0xA0
lsls r1, 1
adds r0, r7, r1
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r4, r0
blt _08078BE0
movs r5, 0x1
@ -5943,10 +5943,10 @@ _08078BE8:
adds r0, r7
mov r10, r0
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
adds r4, r0, 0
ldr r0, [r5]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
movs r1, 0
str r1, [sp, 0x24]
cmp r4, r0
@ -5987,13 +5987,13 @@ _08078C16:
bl sub_80522F4
_08078C5E:
ldr r0, [sp, 0x20]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
adds r4, r0, 0
movs r1, 0xA0
lsls r1, 1
adds r0, r7, r1
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r4, r0
bne _08078C9C
ldr r0, _08078C94
@ -6060,10 +6060,10 @@ _08078CFA:
movs r2, 0
bl SetMessageArgument
adds r0, r4, 0
bl GetBellyRoundedUp
bl RoundUpFixedPoint
adds r4, r0, 0
ldr r0, [r5]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r4, r0
bne _08078D34
mov r1, r8
@ -6077,10 +6077,10 @@ _08078D2C: .4byte gAvailablePokemonNames
_08078D30: .4byte gUnknown_80FBE14
_08078D34:
ldr r0, [r5]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
adds r4, r0, 0
ldr r0, [r7]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
cmp r4, r0
blt _08078D60
mov r0, r8
@ -10207,7 +10207,7 @@ _0807AE12:
lsls r1, 1
adds r0, r4, r1
ldr r0, [r0]
bl GetBellyRoundedUp
bl RoundUpFixedPoint
adds r1, r0, 0
cmp r1, 0
bne _0807AE32

View File

@ -279,471 +279,4 @@ _08094448: .4byte 0xffff0000
_0809444C: .4byte 0x0000ffff
thumb_func_end sub_80943DC
thumb_func_start GetBellyRoundedUp
GetBellyRoundedUp:
push {lr}
adds r1, r0, 0
lsls r0, r1, 16
asrs r2, r0, 16
cmp r2, 0
bne _0809446A
asrs r0, r1, 16
cmp r0, 0
bne _08094466
movs r0, 0
b _08094476
_08094466:
movs r0, 0x1
b _08094476
_0809446A:
asrs r0, r1, 16
cmp r0, 0
bne _08094474
adds r0, r2, 0
b _08094476
_08094474:
adds r0, r2, 0x1
_08094476:
pop {r1}
bx r1
thumb_func_end GetBellyRoundedUp
thumb_func_start sub_809447C
sub_809447C:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r2, 0x10
bl RestoreIntegerBits
adds r4, 0x2
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x10
bl RestoreIntegerBits
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_809447C
thumb_func_start sub_809449C
sub_809449C:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r2, 0x10
bl SaveIntegerBits
adds r4, 0x2
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x10
bl SaveIntegerBits
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_809449C
thumb_func_start sub_80944BC
sub_80944BC:
push {r4,lr}
sub sp, 0x8
adds r4, r1, 0
lsls r0, 16
asrs r1, r0, 16
ldr r0, _080944F4
cmp r1, r0
bgt _08094500
lsls r1, 16
lsrs r1, 16
mov r0, sp
bl sub_8092AA8
ldr r0, _080944F8
mov r1, sp
movs r2, 0
bl sub_80928C0
ldr r0, _080944FC
ldr r0, [r0]
adds r2, r4, 0
adds r2, 0xC8
adds r1, r4, 0
movs r3, 0
bl xxx_format_string
b _08094516
.align 2, 0
_080944F4: .4byte 0x000001f3
_080944F8: .4byte gUnknown_202DE58
_080944FC: .4byte gUnknown_811383C
_08094500:
ldr r0, _08094520
ldr r2, _08094524
adds r1, r2
lsls r1, 3
adds r0, 0x4
adds r1, r0
ldr r1, [r1]
adds r0, r4, 0
movs r2, 0xC8
bl strncpy
_08094516:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08094520: .4byte gUnknown_8113080
_08094524: .4byte 0xfffffe0c
thumb_func_end sub_80944BC
thumb_func_start sub_8094528
sub_8094528:
push {lr}
lsls r0, 16
asrs r1, r0, 16
ldr r0, _08094544
cmp r1, r0
ble _08094550
ldr r0, _08094548
ldr r2, _0809454C
adds r1, r2
lsls r1, 3
adds r1, r0
ldrb r0, [r1]
b _08094552
.align 2, 0
_08094544: .4byte 0x000001f3
_08094548: .4byte gUnknown_8113080
_0809454C: .4byte 0xfffffe0c
_08094550:
movs r0, 0x1
_08094552:
pop {r1}
bx r1
thumb_func_end sub_8094528
thumb_func_start sub_8094558
sub_8094558:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xCC
adds r7, r0, 0
adds r4, r1, 0
adds r6, r2, 0
bl sub_80073B8
movs r5, 0
str r5, [sp]
movs r0, 0x10
movs r1, 0
adds r2, r4, 0
adds r3, r7, 0
bl xxx_format_and_draw
ldr r4, _080945D0
adds r1, r6, 0
adds r1, 0x18
adds r0, r4, 0
bl sub_8090208
ldr r0, _080945D4
ldr r2, [r0]
str r5, [sp]
movs r0, 0x4
movs r1, 0x10
adds r3, r7, 0
bl xxx_format_and_draw
movs r5, 0x1A
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0xA
bl sub_80922B4
adds r4, 0x50
adds r1, r6, 0
adds r1, 0xA
adds r0, r4, 0
movs r2, 0xA
bl sub_80922B4
movs r1, 0x14
ldrsh r0, [r6, r1]
bl sub_8094528
lsls r0, 24
cmp r0, 0
beq _080945DC
ldr r0, _080945D8
ldr r0, [r0]
add r2, sp, 0xCC
add r1, sp, 0x4
movs r3, 0
bl xxx_format_string
b _080945EA
.align 2, 0
_080945D0: .4byte gAvailablePokemonNames
_080945D4: .4byte gUnknown_8113850
_080945D8: .4byte gUnknown_8113868
_080945DC:
ldr r0, _0809465C
ldr r0, [r0]
add r2, sp, 0xCC
add r1, sp, 0x4
movs r3, 0
bl xxx_format_string
_080945EA:
add r0, sp, 0x4
bl sub_8008ED0
movs r4, 0xB0
subs r0, r4, r0
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
movs r1, 0
mov r8, r1
str r1, [sp]
adds r1, r5, 0
add r2, sp, 0x4
adds r3, r7, 0
bl xxx_format_and_draw
adds r5, 0xA
movs r1, 0x14
ldrsh r0, [r6, r1]
add r1, sp, 0x4
bl sub_80944BC
add r0, sp, 0x4
bl sub_8008ED0
subs r4, r0
lsrs r0, r4, 31
adds r4, r0
asrs r0, r4, 1
mov r1, r8
str r1, [sp]
adds r1, r5, 0
add r2, sp, 0x4
adds r3, r7, 0
bl xxx_format_and_draw
adds r5, 0x10
ldr r1, _08094660
ldr r0, [r6, 0x20]
str r0, [r1]
adds r0, r6, 0
adds r0, 0x2A
ldrb r0, [r0]
str r0, [r1, 0x4]
cmp r0, 0x63
ble _08094668
ldr r0, _08094664
ldr r2, [r0]
mov r0, r8
str r0, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
b _0809467A
.align 2, 0
_0809465C: .4byte gUnknown_8113870
_08094660: .4byte gUnknown_202DE30
_08094664: .4byte gUnknown_81138C0
_08094668:
ldr r0, _080946CC
ldr r2, [r0]
mov r1, r8
str r1, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
_0809467A:
adds r5, 0xA
ldr r4, _080946D0
movs r1, 0x24
ldrsh r0, [r6, r1]
str r0, [r4]
ldr r0, _080946D4
ldr r2, [r0]
movs r0, 0
mov r8, r0
str r0, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
adds r5, 0xA
adds r0, r6, 0
adds r0, 0x26
ldrb r2, [r0]
str r2, [r4]
adds r0, 0x2
ldrb r0, [r0]
str r0, [r4, 0x4]
adds r0, r6, 0
adds r0, 0x2B
ldrb r1, [r0]
cmp r1, 0
beq _080946DC
adds r0, r1, 0
adds r0, r2, r0
str r0, [r4]
ldr r0, _080946D8
ldr r2, [r0]
mov r1, r8
str r1, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
b _080946EC
.align 2, 0
_080946CC: .4byte gUnknown_8113898
_080946D0: .4byte gUnknown_202DE30
_080946D4: .4byte gUnknown_81138D0
_080946D8: .4byte gUnknown_8113950
_080946DC:
ldr r0, _08094714
ldr r2, [r0]
str r1, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
_080946EC:
adds r0, r6, 0
adds r0, 0x2D
ldrb r1, [r0]
cmp r1, 0
beq _08094720
ldr r2, _08094718
ldr r0, [r2, 0x4]
adds r0, r1
str r0, [r2, 0x4]
ldr r0, _0809471C
ldr r2, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
b _08094730
.align 2, 0
_08094714: .4byte gUnknown_81138E4
_08094718: .4byte gUnknown_202DE30
_0809471C: .4byte gUnknown_8113974
_08094720:
ldr r0, _08094768
ldr r2, [r0]
str r1, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
_08094730:
adds r5, 0xA
ldr r2, _0809476C
adds r0, r6, 0
adds r0, 0x27
ldrb r3, [r0]
str r3, [r2]
adds r0, 0x2
ldrb r0, [r0]
str r0, [r2, 0x4]
adds r0, r6, 0
adds r0, 0x2C
ldrb r1, [r0]
cmp r1, 0
beq _08094774
adds r0, r1, 0
adds r0, r3, r0
str r0, [r2]
ldr r0, _08094770
ldr r2, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
b _08094784
.align 2, 0
_08094768: .4byte gUnknown_8113900
_0809476C: .4byte gUnknown_202DE30
_08094770: .4byte gUnknown_8113990
_08094774:
ldr r0, _080947AC
ldr r2, [r0]
str r1, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
_08094784:
adds r0, r6, 0
adds r0, 0x2E
ldrb r1, [r0]
cmp r1, 0
beq _080947B8
ldr r2, _080947B0
ldr r0, [r2, 0x4]
adds r0, r1
str r0, [r2, 0x4]
ldr r0, _080947B4
ldr r2, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
b _080947C8
.align 2, 0
_080947AC: .4byte gUnknown_8113918
_080947B0: .4byte gUnknown_202DE30
_080947B4: .4byte gUnknown_81139B4
_080947B8:
ldr r0, _080947E4
ldr r2, [r0]
str r1, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
_080947C8:
adds r5, 0x10
adds r2, r6, 0
adds r2, 0x1C
ldrb r1, [r6, 0x1C]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080947EC
ldr r0, _080947E8
adds r1, r2, 0
movs r2, 0
bl sub_8090E14
b _080947F6
.align 2, 0
_080947E4: .4byte gUnknown_8113934
_080947E8: .4byte gUnknown_202DE58
_080947EC:
ldr r0, _0809481C
ldr r1, _08094820
ldr r1, [r1]
bl strcpy
_080947F6:
ldr r0, _08094824
ldr r2, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
adds r0, r7, 0
bl sub_80073E0
add sp, 0xCC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0809481C: .4byte gUnknown_202DE58
_08094820: .4byte gUnknown_81139B8
_08094824: .4byte gUnknown_81139CC
thumb_func_end sub_8094558
.align 2,0
.align 2, 0

446
asm/code_809447C.s Normal file
View File

@ -0,0 +1,446 @@
#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_809447C
sub_809447C:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r2, 0x10
bl RestoreIntegerBits
adds r4, 0x2
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x10
bl RestoreIntegerBits
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_809447C
thumb_func_start sub_809449C
sub_809449C:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r2, 0x10
bl SaveIntegerBits
adds r4, 0x2
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x10
bl SaveIntegerBits
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_809449C
thumb_func_start sub_80944BC
sub_80944BC:
push {r4,lr}
sub sp, 0x8
adds r4, r1, 0
lsls r0, 16
asrs r1, r0, 16
ldr r0, _080944F4
cmp r1, r0
bgt _08094500
lsls r1, 16
lsrs r1, 16
mov r0, sp
bl sub_8092AA8
ldr r0, _080944F8
mov r1, sp
movs r2, 0
bl sub_80928C0
ldr r0, _080944FC
ldr r0, [r0]
adds r2, r4, 0
adds r2, 0xC8
adds r1, r4, 0
movs r3, 0
bl xxx_format_string
b _08094516
.align 2, 0
_080944F4: .4byte 0x000001f3
_080944F8: .4byte gUnknown_202DE58
_080944FC: .4byte gUnknown_811383C
_08094500:
ldr r0, _08094520
ldr r2, _08094524
adds r1, r2
lsls r1, 3
adds r0, 0x4
adds r1, r0
ldr r1, [r1]
adds r0, r4, 0
movs r2, 0xC8
bl strncpy
_08094516:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08094520: .4byte gUnknown_8113080
_08094524: .4byte 0xfffffe0c
thumb_func_end sub_80944BC
thumb_func_start sub_8094528
sub_8094528:
push {lr}
lsls r0, 16
asrs r1, r0, 16
ldr r0, _08094544
cmp r1, r0
ble _08094550
ldr r0, _08094548
ldr r2, _0809454C
adds r1, r2
lsls r1, 3
adds r1, r0
ldrb r0, [r1]
b _08094552
.align 2, 0
_08094544: .4byte 0x000001f3
_08094548: .4byte gUnknown_8113080
_0809454C: .4byte 0xfffffe0c
_08094550:
movs r0, 0x1
_08094552:
pop {r1}
bx r1
thumb_func_end sub_8094528
thumb_func_start sub_8094558
sub_8094558:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xCC
adds r7, r0, 0
adds r4, r1, 0
adds r6, r2, 0
bl sub_80073B8
movs r5, 0
str r5, [sp]
movs r0, 0x10
movs r1, 0
adds r2, r4, 0
adds r3, r7, 0
bl xxx_format_and_draw
ldr r4, _080945D0
adds r1, r6, 0
adds r1, 0x18
adds r0, r4, 0
bl sub_8090208
ldr r0, _080945D4
ldr r2, [r0]
str r5, [sp]
movs r0, 0x4
movs r1, 0x10
adds r3, r7, 0
bl xxx_format_and_draw
movs r5, 0x1A
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0xA
bl sub_80922B4
adds r4, 0x50
adds r1, r6, 0
adds r1, 0xA
adds r0, r4, 0
movs r2, 0xA
bl sub_80922B4
movs r1, 0x14
ldrsh r0, [r6, r1]
bl sub_8094528
lsls r0, 24
cmp r0, 0
beq _080945DC
ldr r0, _080945D8
ldr r0, [r0]
add r2, sp, 0xCC
add r1, sp, 0x4
movs r3, 0
bl xxx_format_string
b _080945EA
.align 2, 0
_080945D0: .4byte gAvailablePokemonNames
_080945D4: .4byte gUnknown_8113850
_080945D8: .4byte gUnknown_8113868
_080945DC:
ldr r0, _0809465C
ldr r0, [r0]
add r2, sp, 0xCC
add r1, sp, 0x4
movs r3, 0
bl xxx_format_string
_080945EA:
add r0, sp, 0x4
bl sub_8008ED0
movs r4, 0xB0
subs r0, r4, r0
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
movs r1, 0
mov r8, r1
str r1, [sp]
adds r1, r5, 0
add r2, sp, 0x4
adds r3, r7, 0
bl xxx_format_and_draw
adds r5, 0xA
movs r1, 0x14
ldrsh r0, [r6, r1]
add r1, sp, 0x4
bl sub_80944BC
add r0, sp, 0x4
bl sub_8008ED0
subs r4, r0
lsrs r0, r4, 31
adds r4, r0
asrs r0, r4, 1
mov r1, r8
str r1, [sp]
adds r1, r5, 0
add r2, sp, 0x4
adds r3, r7, 0
bl xxx_format_and_draw
adds r5, 0x10
ldr r1, _08094660
ldr r0, [r6, 0x20]
str r0, [r1]
adds r0, r6, 0
adds r0, 0x2A
ldrb r0, [r0]
str r0, [r1, 0x4]
cmp r0, 0x63
ble _08094668
ldr r0, _08094664
ldr r2, [r0]
mov r0, r8
str r0, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
b _0809467A
.align 2, 0
_0809465C: .4byte gUnknown_8113870
_08094660: .4byte gUnknown_202DE30
_08094664: .4byte gUnknown_81138C0
_08094668:
ldr r0, _080946CC
ldr r2, [r0]
mov r1, r8
str r1, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
_0809467A:
adds r5, 0xA
ldr r4, _080946D0
movs r1, 0x24
ldrsh r0, [r6, r1]
str r0, [r4]
ldr r0, _080946D4
ldr r2, [r0]
movs r0, 0
mov r8, r0
str r0, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
adds r5, 0xA
adds r0, r6, 0
adds r0, 0x26
ldrb r2, [r0]
str r2, [r4]
adds r0, 0x2
ldrb r0, [r0]
str r0, [r4, 0x4]
adds r0, r6, 0
adds r0, 0x2B
ldrb r1, [r0]
cmp r1, 0
beq _080946DC
adds r0, r1, 0
adds r0, r2, r0
str r0, [r4]
ldr r0, _080946D8
ldr r2, [r0]
mov r1, r8
str r1, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
b _080946EC
.align 2, 0
_080946CC: .4byte gUnknown_8113898
_080946D0: .4byte gUnknown_202DE30
_080946D4: .4byte gUnknown_81138D0
_080946D8: .4byte gUnknown_8113950
_080946DC:
ldr r0, _08094714
ldr r2, [r0]
str r1, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
_080946EC:
adds r0, r6, 0
adds r0, 0x2D
ldrb r1, [r0]
cmp r1, 0
beq _08094720
ldr r2, _08094718
ldr r0, [r2, 0x4]
adds r0, r1
str r0, [r2, 0x4]
ldr r0, _0809471C
ldr r2, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
b _08094730
.align 2, 0
_08094714: .4byte gUnknown_81138E4
_08094718: .4byte gUnknown_202DE30
_0809471C: .4byte gUnknown_8113974
_08094720:
ldr r0, _08094768
ldr r2, [r0]
str r1, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
_08094730:
adds r5, 0xA
ldr r2, _0809476C
adds r0, r6, 0
adds r0, 0x27
ldrb r3, [r0]
str r3, [r2]
adds r0, 0x2
ldrb r0, [r0]
str r0, [r2, 0x4]
adds r0, r6, 0
adds r0, 0x2C
ldrb r1, [r0]
cmp r1, 0
beq _08094774
adds r0, r1, 0
adds r0, r3, r0
str r0, [r2]
ldr r0, _08094770
ldr r2, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
b _08094784
.align 2, 0
_08094768: .4byte gUnknown_8113900
_0809476C: .4byte gUnknown_202DE30
_08094770: .4byte gUnknown_8113990
_08094774:
ldr r0, _080947AC
ldr r2, [r0]
str r1, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
_08094784:
adds r0, r6, 0
adds r0, 0x2E
ldrb r1, [r0]
cmp r1, 0
beq _080947B8
ldr r2, _080947B0
ldr r0, [r2, 0x4]
adds r0, r1
str r0, [r2, 0x4]
ldr r0, _080947B4
ldr r2, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
b _080947C8
.align 2, 0
_080947AC: .4byte gUnknown_8113918
_080947B0: .4byte gUnknown_202DE30
_080947B4: .4byte gUnknown_81139B4
_080947B8:
ldr r0, _080947E4
ldr r2, [r0]
str r1, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
_080947C8:
adds r5, 0x10
adds r2, r6, 0
adds r2, 0x1C
ldrb r1, [r6, 0x1C]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080947EC
ldr r0, _080947E8
adds r1, r2, 0
movs r2, 0
bl sub_8090E14
b _080947F6
.align 2, 0
_080947E4: .4byte gUnknown_8113934
_080947E8: .4byte gUnknown_202DE58
_080947EC:
ldr r0, _0809481C
ldr r1, _08094820
ldr r1, [r1]
bl strcpy
_080947F6:
ldr r0, _08094824
ldr r2, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x4
adds r1, r5, 0
adds r3, r7, 0
bl xxx_format_and_draw
adds r0, r7, 0
bl sub_80073E0
add sp, 0xCC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0809481C: .4byte gUnknown_202DE58
_08094820: .4byte gUnknown_81139B8
_08094824: .4byte gUnknown_81139CC
thumb_func_end sub_8094558
.align 2,0

File diff suppressed because it is too large Load Diff

1312
data/data_80F4468.s Normal file

File diff suppressed because it is too large Load Diff

6081
data/data_80F59C8.s Normal file

File diff suppressed because it is too large Load Diff

399
data/data_8106A4C.s Normal file
View File

@ -0,0 +1,399 @@
.section .rodata
.global gUnknown_8106A4C
gUnknown_8106A4C: @ 8106A4C
.4byte 0
.global gUnknown_8106A50
gUnknown_8106A50: @ 8106A50
.4byte 1
.global gUnknown_8106A54
gUnknown_8106A54: @ 8106A54
.incbin "baserom.gba", 0x106A54, 0x38
.global gUnknown_8106A8C
gUnknown_8106A8C: @ 8106A8C
.incbin "baserom.gba", 0x106A8C, 0x3C
.global gUnknown_8106AC8
gUnknown_8106AC8: @ 8106AC8
.incbin "baserom.gba", 0x106AC8, 0x20
.global gUnknown_8106AE8
gUnknown_8106AE8: @ 8106AE8
.byte 0x00, 0x00, 0x01, 0x00
.global gUnknown_8106AEC
gUnknown_8106AEC: @ 8106AEC
.incbin "baserom.gba", 0x106AEC, 0x64
.global gUnknown_8106B50
gUnknown_8106B50: @ 8106B50
.string "{COLOR_1}%c%s\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_8106B60
gUnknown_8106B60: @ 8106B60
.byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x50, 0x00, 0x01, 0x00, 0x00, 0x00
.global gUnknown_8106B6C
gUnknown_8106B6C: @ 8106B6C
.incbin "baserom.gba", 0x106B6C, 0x20
.global gUnknown_8106B8C
gUnknown_8106B8C: @ 8106B8C
.incbin "baserom.gba", 0x106B8C, 0x24
.global gUnknown_8106BB0
gUnknown_8106BB0: @ 8106BB0
.string "$t\0"
.align 2,0
@ Red Heart Symbols
.global gUnknown_8106BB4
gUnknown_8106BB4: @ 8106BB4
.byte 0x87, 0x46, 0x00, 0x00
.global gUnknown_8106BB8
gUnknown_8106BB8: @ 8106BB8
.byte 0x87, 0x47, 0x00, 0x00
.global gUnknown_8106BBC
gUnknown_8106BBC: @ 8106BBC
.byte 0x87, 0x48, 0x00, 0x00
.global gUnknown_8106BC0
gUnknown_8106BC0: @ 8106BC0
.byte 0x87, 0x49, 0x00, 0x00
@ Yellow Heart Symbols
.global gUnknown_8106BC4
gUnknown_8106BC4: @ 8106BC4
.byte 0x87, 0x4A, 0x00, 0x00
.global gUnknown_8106BC8
gUnknown_8106BC8: @ 8106BC8
.byte 0x87, 0x4B, 0x00, 0x00
.global gUnknown_8106BCC
gUnknown_8106BCC: @ 8106BCC
.byte 0x87, 0x4C, 0x00, 0x00
.global gUnknown_8106BD0
gUnknown_8106BD0: @ 8106BD0
.byte 0x87, 0x4D, 0x00, 0x00
.global gUnknown_8106BD4
gUnknown_8106BD4: @ 8106BD4
.byte 0x87, 0x42, 0x24, 0x6d, 0x30, 0x23, 0x3d, 0x59, 0x24, 0x6d, 0x31, 0x00
.global gUnknown_8106BE0
gUnknown_8106BE0: @ 8106BE0
.byte 0x87, 0x40, 0x24, 0x6d, 0x30, 0x23, 0x3d, 0x59, 0x24, 0x6d, 0x31, 0x00
.global gUnknown_8106BEC
gUnknown_8106BEC: @ 8106BEC
.byte 0x87, 0x42, 0x24, 0x6d, 0x30, 0x00, 0x00, 0x00
.global gUnknown_8106BF4
gUnknown_8106BF4: @ 8106BF4
.byte 0x87, 0x40, 0x24, 0x6d, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0f, 0x00
.global gUnknown_8106C00
gUnknown_8106C00: @ 8106C00
.byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x12, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfc, 0x6b, 0x10, 0x08
.global gUnknown_8106C18
gUnknown_8106C18: @ 8106C18
.byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x12, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0xfc, 0x6b, 0x10, 0x08
.global gUnknown_8106C30
gUnknown_8106C30: @ 8106C30
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x0e, 0x00, 0x02, 0x00
.byte 0x0e, 0x00, 0x10, 0x00
.byte 0x10, 0x00, 0x00, 0x00
.byte 0x70, 0xf2, 0x02, 0x02
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x0a, 0x00, 0x02, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_8106C90
gUnknown_8106C90: @ 8106C90
.string "????\0"
.align 2,0
.global gUnknown_8106C98
gUnknown_8106C98: @ 8106C98
.string "{ARG_MOVE_ITEM_0}\0"
.align 2,0
.global gUnknown_8106C9C
gUnknown_8106C9C: @ 8106C9C
.string "None\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_8106CAC
gUnknown_8106CAC: @ 8106CAC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x0E, 0x00
.byte 0x1A, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_8106CC4
gUnknown_8106CC4: @ 8106CC4
.string "{ARG_MOVE_ITEM_0}\0"
.align 2,0
.global gUnknown_8106CC8
gUnknown_8106CC8: @ 8106CC8
.byte 0x01, 0x00, 0x10, 0x00
.global gUnknown_8106CCC
gUnknown_8106CCC: @ 8106CCC
.string "{ARG_POKEMON_0}\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_8106CE8
gUnknown_8106CE8: @ 8106CE8
.byte 0x10, 0x00, 0x00, 0x00
.byte 0x19, 0x00, 0x00, 0x00
.byte 0x1b, 0x00, 0x00, 0x00
.global gUnknown_8106CF4
gUnknown_8106CF4: @ 8106CF4
.byte 0x13, 0x00, 0x00, 0x00
.byte 0x11, 0x00, 0x00, 0x00
.byte 0x19, 0x00, 0x00, 0x00
.string "pksdir0\0"
.align 2,0
.global gUnknown_8106D08
gUnknown_8106D08: @ 8106D08
.byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x12, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x02, 0x00, 0x3c, 0xb4, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gUnknown_8106D68
gUnknown_8106D68: @ 8106D68
.byte 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x38, 0x00, 0x68, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_8106D8C
gUnknown_8106D8C: @ 8106D8C
.string "{COLOR_2}%d{ARG_POKEMON_0}\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_8106DA4
gUnknown_8106DA4: @ 8106DA4
.byte 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x38, 0x00, 0x68, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_8106DC8
gUnknown_8106DC8: @ 8106DC8
.byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x11, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x02, 0x00, 0x08, 0xf3, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x15, 0x00, 0x04, 0x00, 0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gUnknown_8106E28
gUnknown_8106E28: @ 8106E28
.string "{ARG_POKEMON_0}\0"
.align 2,0
.global gUnknown_8106E2C
gUnknown_8106E2C: @ 8106E2C
.byte 0x87, 0x42, 0x00, 0x00
.global gUnknown_8106E30
gUnknown_8106E30: @ 8106E30
.byte 0x87, 0x40, 0x00, 0x00
.global gUnknown_8106E34
gUnknown_8106E34: @ 8106E34
.string "{ARG_MOVE_ITEM_0}{COLOR_2 CYAN}$v02:{ARG_POKEMON_0}{END_COLOR_TEXT_2}\0"
.align 2,0
.global gUnknown_8106E48
gUnknown_8106E48: @ 8106E48
.string "{ARG_MOVE_ITEM_0}{COLOR_2 YELLOW}$v02:{ARG_POKEMON_0}{END_COLOR_TEXT_2}\0"
.align 2,0
.global gUnknown_8106E5C
gUnknown_8106E5C: @ 8106E5C
.string "Press {B_BUTTON}\n"
.string "if OK.\0"
.align 2,0
.global gUnknown_8106E6C
gUnknown_8106E6C: @ 8106E6C
.string "Say bye to\n"
.string "$d0 more\0"
.align 2,0
.global gUnknown_8106E80
gUnknown_8106E80: @ 8106E80
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.string "pksdir0\0"
.align 2,0
.global gUnknown_8106E98
gUnknown_8106E98: @ 8106E98
.string "palet\0"
.align 2,0
.global gUnknown_8106EA0
gUnknown_8106EA0: @ 8106EA0
.string "ax%03d\0"
.align 2,0
.global gUnknown_8106EA8
gUnknown_8106EA8: @ 8106EA8
.string "talkp%d\0"
.align 2,0
.global gUnknown_8106EB0
gUnknown_8106EB0: @ 8106EB0
.string "talk%d\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_8106EC8
gUnknown_8106EC8: @ 8106EC8
.incbin "baserom.gba", 0x106EC8, 0x27
.global gUnknown_8106EEF
gUnknown_8106EEF: @ 8106EEF
.incbin "baserom.gba", 0x106EEF, 0xD
.global gUnknown_8106EFC
gUnknown_8106EFC: @ 8106EFC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_8106F04
gUnknown_8106F04: @ 8106F04
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x01, 0x00
.global gUnknown_8106F0C
gUnknown_8106F0C: @ 8106F0C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x02, 0x00
.global gUnknown_8106F14
gUnknown_8106F14: @ 8106F14
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x80, 0x01, 0x00
.global gUnknown_8106F1C
gUnknown_8106F1C: @ 8106F1C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x80, 0x00, 0x00
.global gUnknown_8106F24
gUnknown_8106F24: @ 8106F24
.incbin "baserom.gba", 0x106F24, 0x30
.global gUnknown_8106F54
gUnknown_8106F54: @ 8106F54
.byte 0x3C, 0x6F, 0x10, 0x08
.byte 0x44, 0x6F, 0x10, 0x08
.4byte gUnknown_8106F04
.byte 0x4C, 0x6F, 0x10, 0x08
.global gUnknown_8106F64
gUnknown_8106F64: @ 8106F64
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0xC0, 0x00, 0x00
.global gTypeEffectivenessMultipliers
gTypeEffectivenessMultipliers: @ 8106F6C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00
.global gUnknown_8106F7C
gUnknown_8106F7C: @ 8106F7C
.incbin "baserom.gba", 0x106F7C, 0x28
.global gUnknown_8106FA4
gUnknown_8106FA4: @ 8106FA4
.string "{COLOR_2}%c%s{END_COLOR_TEXT_2}\0"
.global gDirectionBitMasks
gDirectionBitMasks: @ 8106FAD
@ replacing .incbin "baserom.gba", 0x00106fad, 0x8
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.global gUnknown_8106FB5
gUnknown_8106FB5: @ 8106FB5
@ replacing .incbin "baserom.gba", 0x00106fb5, 0x8
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.global gUnknown_8106FBD
gUnknown_8106FBD: @ 8106FBD
@ replacing .incbin "baserom.gba", 0x00106fbd, 0x8
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.global gUnknown_8106FC5
gUnknown_8106FC5: @ 8106FC5
@ replacing .incbin "baserom.gba", 0x00106fc5, 0x8
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.global gUnknown_8106FCD
gUnknown_8106FCD: @ 8106FCD
@ replacing .incbin "baserom.gba", 0x00106fcd, 0x8
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.global gDirectionBitMasks_2
gDirectionBitMasks_2: @ 8106FD5
@ replacing .incbin "baserom.gba", 0x00106fd5, 0x8
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.global gDirectionBitMasks_3
gDirectionBitMasks_3: @ 8106FDD
@ replacing .incbin "baserom.gba", 0x00106fdd, 0x8
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80

640
data/data_8107010.s Normal file
View File

@ -0,0 +1,640 @@
.section .rodata
.string "pksdir0\0"
.string "pksdir0\0"
.global gUnknown_8107010
gUnknown_8107010: @ 8107010
.incbin "baserom.gba", 0x107010, 0x8
.global gUnknown_8107018
gUnknown_8107018: @ 8107018
.incbin "baserom.gba", 0x107018, 0x160
.global gUnknown_8107178
gUnknown_8107178: @ 8107178
.incbin "baserom.gba", 0x107178, 0x5C
.global gUnknown_81071D4
gUnknown_81071D4: @ 81071D4
.incbin "baserom.gba", 0x1071D4, 0xC
.global gUnknown_81071E0
gUnknown_81071E0: @ 81071E0
.incbin "baserom.gba", 0x1071E0, 0x44
.global gUnknown_8107224
gUnknown_8107224: @ 8107224
.incbin "baserom.gba", 0x107224, 0x10
.global gUnknown_8107234
gUnknown_8107234: @ 8107234
.incbin "baserom.gba", 0x107234, 0xE0
.global gUnknown_8107314
gUnknown_8107314: @ 8107314
.incbin "baserom.gba", 0x107314, 0x44
.global gUnknown_8107358
gUnknown_8107358: @ 8107358
.incbin "baserom.gba", 0x107358, 0x1C
.global gUnknown_8107374
gUnknown_8107374: @ 8107374
.incbin "baserom.gba", 0x107374, 0xC
.global gUnknown_8107380
gUnknown_8107380: @ 8107380
.incbin "baserom.gba", 0x107380, 0x1C
.global gUnknown_810739C
gUnknown_810739C: @ 810739C
.incbin "baserom.gba", 0x10739C, 0x38
.global gUnknown_81073D4
gUnknown_81073D4: @ 81073D4
.incbin "baserom.gba", 0x1073D4, 0x38
.global gUnknown_810740C
gUnknown_810740C: @ 810740C
.incbin "baserom.gba", 0x10740C, 0x40
.global gUnknown_810744C
gUnknown_810744C: @ 810744C
.incbin "baserom.gba", 0x10744C, 0x18
.global gUnknown_8107464
gUnknown_8107464: @ 8107464
.incbin "baserom.gba", 0x107464, 0x98
.global gUnknown_81074FC
gUnknown_81074FC: @ 81074FC
.incbin "baserom.gba", 0x1074FC, 0x48
.global gUnknown_8107544
gUnknown_8107544: @ 8107544
.incbin "baserom.gba", 0x107544, 0xB0
.global gUnknown_81075F4
gUnknown_81075F4: @ 81075F4
.string "monspara\0"
.align 2,0
.global gUnknown_8107600
gUnknown_8107600: @ 8107600
.string "{COLOR_2 YELLOW_2}%s{END_COLOR_TEXT_2}"
.align 2,0
.global gUnknown_8107608
gUnknown_8107608: @ 8107608
.string "{COLOR_2 CYAN_2}%s{END_COLOR_TEXT_2}"
.align 2,0
.global gUnownLetters
gUnownLetters: @ 8107610
.string "ABCDEFGHIJKLMNOPQRSTUVWXYZ!?\0"
.align 2,0
.global gUnknown_8107630
gUnknown_8107630: @ 8107630
.string "%s%c\0"
.align 2,0
.global gUnknown_8107638
gUnknown_8107638: @ 8107638
.string "%s\0"
.align 2,0
.global gUnknown_810763C
gUnknown_810763C: @ 810763C
.string "{COLOR_2}%c%s{END_COLOR_TEXT_2}\0"
.global gUnknown_8107645
gUnknown_8107645: @ 8107645
.byte 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gUnknown_8107654
gUnknown_8107654: @ 8107654
.byte 0x9d, 0x01, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00
.byte 0x33, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gUnknown_8107684
gUnknown_8107684: @ 8107684
.string "kao%03d\0"
.align 2,0
.global gUnknown_810768C
gUnknown_810768C: @ 810768C
.string "lvmp%03d\0"
.align 2,0
.global gUnknown_8107698
gUnknown_8107698: @ 8107698
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.global gUnknown_81076BC
gUnknown_81076BC: @ 81076BC
.string "etcfont\0"
.align 2,0
.global gUnknown_81076C4
gUnknown_81076C4: @ 81076C4
.byte 0xfc, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00
.global gIQSkillGroups
gIQSkillGroups: @ 81076E4
.4byte 9999
.4byte 4
.4byte 1
.4byte 2
.4byte 4
.4byte 4
.4byte 6
.4byte 7
.4byte 8
.4byte 9
.4byte 9
.4byte 9
.4byte 10
.4byte 10
.4byte 11
.4byte 11
.4byte 14
.4byte 14
.4byte 14
.4byte 16
.4byte 16
.4byte 9
.4byte 17
.4byte 6
.string "pksdir0\0"
.string "pksdir0\0"
.global gUnknown_8107754
gUnknown_8107754: @ 8107754
.string "Stats\0"
.align 2,0
.global gUnknown_810775C
gUnknown_810775C: @ 810775C
.string "Features\0"
.align 2,0
.global gUnknown_8107768
gUnknown_8107768: @ 8107768
.string "Type:\0"
.align 2,0
.global gUnknown_8107770
gUnknown_8107770: @ 8107770
.string "Special Abilities:\0"
.align 2,0
.global gUnknown_8107784
gUnknown_8107784: @ 8107784
.string "{ARG_MOVE_ITEM_1}\0"
.align 2,0
.global gUnknown_8107788
gUnknown_8107788: @ 8107788
.byte 0x87, 0x42, 0x00, 0x00
.global gUnknown_810778C
gUnknown_810778C: @ 810778C
.byte 0x87, 0x40, 0x00, 0x00
.global gUnknown_8107790
gUnknown_8107790: @ 8107790
.string "{ARG_MOVE_ITEM_0}{ARG_MOVE_ITEM_1}\0"
.align 2,0
.global gUnknown_8107798
gUnknown_8107798: @ 8107798
.string "Info\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_81077A8
gUnknown_81077A8: @ 81077A8
.incbin "baserom.gba", 0x1077A8, 0x40
.global gUnknown_81077E8
gUnknown_81077E8: @ 81077E8
.incbin "baserom.gba", 0x1077E8, 0x40
.global gUnknown_8107828
gUnknown_8107828: @ 8107828
.incbin "baserom.gba", 0x107828, 0x85C
.global gUnknown_8108084
gUnknown_8108084: @ 8108084
.incbin "baserom.gba", 0x108084, 0xDD4
.global gUnknown_8108E58
gUnknown_8108E58: @ 8108E58
@ replacing .incbin "baserom.gba", 0x00108e58, 0x68
@ u16*s
.4byte 0x8108184
.4byte 0x810819c
.4byte 0x81081ea
.4byte 0x8108274
.4byte 0x8108302
.4byte 0x810838e
.4byte 0x8108432
.4byte 0x81084d6
.4byte 0x810857e
.4byte 0x810862c
.4byte 0x81086c8
.4byte 0x8108766
.4byte 0x8108804
.4byte 0x81088a2
.4byte 0x810893e
.4byte 0x81089da
.4byte 0x8108a10
.4byte 0x8108a6e
.4byte 0x8108ab4
.4byte 0x8108b16
.4byte 0x8108b5c
.4byte 0x8108bc0
.4byte 0x8108c12
.4byte 0x8108c92
.4byte 0x8108d18
.4byte 0x8108e36
.global gUnknown_8108EC0
gUnknown_8108EC0: @ 8108EC0
.incbin "baserom.gba", 0x108EC0, 0x50
.global gUnknown_8108F10
gUnknown_8108F10: @ 8108F10
.string "{COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2}\0"
.align 2,0
.global gUnknown_8108F18
gUnknown_8108F18: @ 8108F18
.string "{COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2}"
.byte 0x81, 0x40
.string "{COLOR_2 CYAN}%d{END_COLOR_TEXT_2}F\0"
.align 2,0
.global gUnknown_8108F2C
gUnknown_8108F2C: @ 8108F2C
.string "{COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2}"
.byte 0x81, 0x40
.string "B{COLOR_2 CYAN}%d{END_COLOR_TEXT_2}F\0"
.align 2,0
.global gUnknown_8108F40
gUnknown_8108F40: @ 8108F40
.byte 0x00, 0x00
.global gUnknown_8108F42
gUnknown_8108F42: @ 8108F42
.byte 0x99, 0x00, 0x9c, 0x00, 0x9e, 0x00, 0xdb, 0x00
.global gUnknown_8108F4A
gUnknown_8108F4A: @ 8108F4A
.byte 0xe1, 0xe7, 0xe6, 0xe2, 0x00, 0x00
.global gUnknown_8108F50
gUnknown_8108F50: @ 8108F50
.string "No problem.\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_8108F64
gUnknown_8108F64: @ 8108F64
.incbin "baserom.gba", 0x108F64, 0x800
.global gItemParaFileName
gItemParaFileName: @ 8109764
.string "itempara\0"
.align 2,0
.global gUnknown_8109770
gUnknown_8109770: @ 8109770
.string "%s %d\0"
.align 2,0
.global gUnknown_8109778
gUnknown_8109778: @ 8109778
.string "%s\0"
.align 2,0
.global gUnknown_810977C
gUnknown_810977C: @ 810977C
@ replacing .incbin "baserom.gba", 0x0010977c, 0x8
.string "%d {POKE}\0"
.global gUnknown_8109784
gUnknown_8109784: @ 8109784
@ replacing .incbin "baserom.gba", 0x00109784, 0x8
.byte 0x87, 0x44
.asciz "%s\0"
.align 2,0
.global gUnknown_810978C
gUnknown_810978C: @ 810978C
@ replacing .incbin "baserom.gba", 0x0010978c, 0x8
.byte 0x87, 0x41
.asciz "%s\0"
.align 2,0
.global gUnknown_8109794
gUnknown_8109794: @ 8109794
@ replacing .incbin "baserom.gba", 0x00109794, 0x10
.byte 0x25, 0x73, 0x23, 0x3d, 0x25, 0x63, 0x23, 0x43, 0x04, 0x25, 0x73, 0x23, 0x52, 0x00, 0x00, 0x00
.global gUnknown_81097A4
gUnknown_81097A4: @ 81097A4
@ replacing .incbin "baserom.gba", 0x001097a4, 0xc
.byte 0x25, 0x73, 0x23, 0x43, 0x04, 0x25, 0x73, 0x23, 0x52, 0x00, 0x00, 0x00
.global gUnknown_81097B0
gUnknown_81097B0: @ 81097B0
@ replacing .incbin "baserom.gba", 0x001097b0, 0x14
.byte 0xa0, 0x86, 0x01, 0x00, 0x10, 0x27, 0x00, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00
.global gUnknown_81097C4
gUnknown_81097C4: @ 81097C4
.byte 0x83
.global gUnknown_81097C5
gUnknown_81097C5: @ 81097C5
@ replacing .incbin "baserom.gba", 0x001097c5, 0x1b
.byte 0x9f, 0x83, 0xa0, 0x83, 0xa1, 0x83, 0xa2, 0x83, 0xa3, 0x83, 0xa4, 0x83, 0xa5, 0x83, 0xa6, 0x83, 0xa7, 0x83, 0xa8, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x97, 0x10, 0x08
.global gGummiStatBoostLUT
gGummiStatBoostLUT: @ 81097E0
@ replacing .incbin "baserom.gba", 0x001097e0, 0x8
.2byte 0x0001
.2byte 0x0002
.2byte 0x0004
.2byte 0x0008
.global gUnknown_81097E8
gUnknown_81097E8: @ 81097E8
@ replacing .incbin "baserom.gba", 0x001097e8, 0x10
.byte 0x10, 0x00, 0x00, 0x00
.byte 0x12, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x00, 0x00
.byte 0x16, 0x00, 0x00, 0x00
.global gUnknown_81097F8
gUnknown_81097F8: @ 81097F8
@ replacing .incbin "baserom.gba", 0x001097f8, 0x18
.byte 0x11, 0x00, 0x00, 0x00
.byte 0x13, 0x00, 0x00, 0x00
.byte 0x15, 0x00, 0x00, 0x00
.byte 0x17, 0x00, 0x00, 0x00
.string "pksdir0\0"
.global gRescueRankMaxPoints
gRescueRankMaxPoints: @ 8109810
.4byte 50
.4byte 500
.4byte 1500
.4byte 3000
.4byte 7500
.4byte 15000
.4byte 100000000
.global gTeamNamePlaceholder
gTeamNamePlaceholder: @ 810982C
.string "Pokémon\0"
.string "pksdir0\0"
.global gUnknown_810983C
gUnknown_810983C: @ 810983C
.incbin "baserom.gba", 0x10983C, 0x68
.global gUnknown_81098A4
gUnknown_81098A4: @ 81098A4
.string "{COLOR_2}"
.byte 0x4
.string "%s{END_COLOR_TEXT_2}\0"
.align 2,0
.global gUnknown_81098AC
gUnknown_81098AC: @ 81098AC
.string "%s#=%c{COLOR_1}"
.byte 0x4
.string "%s{END_COLOR_TEXT_1}\0"
.align 2,0
.string "pksdir0"
.align 2,0
.global gUnknown_81098C4
gUnknown_81098C4: @ 81098C4
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gUnknown_81098D0
gUnknown_81098D0: @ 81098D0
.string "wazapara\0"
.align 2,0
.global gUnknown_81098DC
gUnknown_81098DC: @ 81098DC
.string "%+d\0"
.global gUnknown_81098E0
gUnknown_81098E0: @ 81098E0
.string "{COLOR_2}%c%s%s{END_COLOR_TEXT_2}\0"
.align 2,0
.global gUnknown_81098EC
gUnknown_81098EC: @ 81098EC
.string "{COLOR_2}%c#:%s%s%s#;%c%2d/%2d{END_COLOR_TEXT_2}\0"
.align 2,0
.global gUnknown_8109908
gUnknown_8109908: @ 8109908
.byte 0x87, 0x41, 0x00, 0x00 @ apparently shows A in memory viewer
.global gUnknown_810990C
gUnknown_810990C: @ 810990C
.byte 0x87, 0x40, 0x00, 0x00 @ apparently shows @ in memory viewer
.global gUnknown_8109910
gUnknown_8109910: @ 8109910
.string "{COLOR_2}%c%s%s%s#=%c%2d/%2d{END_COLOR_TEXT_2}\0"
.align 2,0
.global gUnknown_8109928
gUnknown_8109928: @ 8109928
.byte 0x87, 0x42, 0x00 @ apparently shows B in memory viewer
.global gUnknown_810992B
gUnknown_810992B: @ 810992B
.byte 0x00
.global gUnknown_810992C
gUnknown_810992C: @ 810992C
.string "%s\0"
.align 2,0
.global gUnknown_8109930
gUnknown_8109930: @ 8109930
.string "{ARG_POKEMON_0}\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_8109954
gUnknown_8109954: @ 8109954
.byte 0x20, 0x48, 0x68, 0x00
.byte 0x80, 0x38, 0x20, 0x00
.byte 0x28, 0x80, 0x48, 0x00
.byte 0x28, 0x80, 0x48, 0x00
.string "pksdir0\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_8109984
gUnknown_8109984: @ 8109984
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x00
.string "pksdir0\0"
.align 2,0
.global gStoryMissionText
gStoryMissionText: @ 8109994
.incbin "baserom.gba", 0x109994, 0x314
.global gDummyScenarioText
gDummyScenarioText: @ 8109CA8
.string "{COLOR_1 YELLOW_3}Scenario try dummy{END_COLOR_TEXT_1}\0"
.align 2,0
.global gUnknown_8109CC0
gUnknown_8109CC0: @ 8109CC0
.string "{COLOR_1 RED_2}???{END_COLOR_TEXT_1}\0"
.align 2,0
.string "pksdir0\0"
.global gMeetNinetalesText
gMeetNinetalesText: @ 8109CD4
.string "Meet Ninetales.\0"
.align 2,0
.global gAvoidCaptureText
gAvoidCaptureText: @ 8109CE4
.string "Avoid capture.\0"
.align 2,0
.global gFinalScenarioText
gFinalScenarioText: @ 8109CF4
.incbin "baserom.gba", 0x109CF4, 0x3C
.global gDungeons
gDungeons: @ 8109D30
.incbin "baserom.gba", 0x109D30, 0x620
.global gUnknown_810A350
gUnknown_810A350: @ 810A350
@ replacing .incbin "baserom.gba", 0x0010a350, 0xb
.byte 0x18, 0x19, 0x1e, 0x27, 0x31, 0x32, 0x33, 0x36, 0x37, 0x3d, 0x3f
.global gInvalidItemIDs
gInvalidItemIDs: @ 810A35B (item related)
@ replacing .incbin "baserom.gba", 0x0010a35b, 0x10
.byte 0xed, 0xee, 0xef, 0xb1, 0xe9, 0x24, 0xd8, 0xd2, 0xb0, 0xdc, 0x32, 0x33, 0x34, 0xc2, 0xec, 0xf0
.global gTacticsTargetLeader
gTacticsTargetLeader: @ 810A36B
@ replacing .incbin "baserom.gba", 0x0010a36b, 0xd
.byte 0x01
.byte 0x00
.byte 0x00
.byte 0x00
.byte 0x01
.byte 0x01
.byte 0x01
.byte 0x01
.byte 0x01
.byte 0x00
.byte 0x01
.byte 0x00
.byte 0x00
.global gReqTacticLvls
gReqTacticLvls: @ 810A378
@ replacing .incbin "baserom.gba", 0x0010a378, 0x18
.2byte 1
.2byte 25
.2byte 1
.2byte 1
.2byte 999
.2byte 999
.2byte 35
.2byte 40
.2byte 20
.2byte 15
.2byte 10
.2byte 999
.global gReqIQSkillPts
gReqIQSkillPts: @ 810A390
.byte 0x0f, 0x27, 0x00, 0x00
.byte 0x69, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0xf4, 0x01, 0x00, 0x00
.byte 0x64, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x28, 0x00, 0x00, 0x00
.byte 0x19, 0x00, 0x00, 0x00
.byte 0xc8, 0x00, 0x00, 0x00
.byte 0x0a, 0x00, 0x00, 0x00
.byte 0x7d, 0x00, 0x00, 0x00
.byte 0x90, 0x01, 0x00, 0x00
.byte 0xde, 0x03, 0x00, 0x00
.byte 0x8c, 0x00, 0x00, 0x00
.byte 0x20, 0x03, 0x00, 0x00
.byte 0xfa, 0x00, 0x00, 0x00
.byte 0xa0, 0x00, 0x00, 0x00
.byte 0x46, 0x00, 0x00, 0x00
.byte 0x58, 0x02, 0x00, 0x00
.byte 0x2c, 0x01, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.global gUnknown_810A3F0
gUnknown_810A3F0: @ 810A3F0 (money related according to PMDe
@ LUT for money item stack size -> money amount
.4byte 4, 6, 10, 14, 22, 26, 34, 38, 46, 58
.4byte 62, 74, 82, 86, 94, 106, 118, 122, 134, 142
.4byte 146, 158, 166, 178, 194, 202, 206, 214, 218, 226
.4byte 254, 262, 274, 278, 298, 302, 314, 326, 334, 346
.4byte 358, 362, 382, 386, 394, 398, 422, 446, 454, 458
.4byte 466, 478, 482, 502, 514, 526, 538, 542, 554, 562
.4byte 566, 586, 614, 622, 626, 634, 662, 674, 694, 698
.4byte 706, 718, 734, 746, 758, 768, 778, 794, 802, 818
.4byte 838, 842, 862, 866, 878, 886, 898, 914, 922, 926
.4byte 934, 958, 974, 982, 998, 1000, 1100, 1300, 1500, 20000
.global gTypeGummiIQBoost
gTypeGummiIQBoost: @ 810A580
// s16[0x12][NUMBER_OF_GUMMIS = 18]
// relates [type][gummi tyep] -> iq boost amount
.incbin "baserom.gba", 0x10A580, 0x288
.global gUnknown_810A808
gUnknown_810A808: @ 810A808
.incbin "baserom.gba", 0x10A808, 0x288

View File

@ -126,7 +126,7 @@ gAdventureLogText: @ 810B04C
.4byte BrokeCurse_810B3C4
.4byte TeamBaseDone_810B3A0
.4byte Smeargle_810B38C
.4byte SpottedMunclax_810B378
.4byte SpottedMunchlax_810B378
.4byte NumMoves_810B360
.4byte NumFriendRescues_810B33C
.4byte NumPokemonEvolved_810B324
@ -278,8 +278,8 @@ NumMoves_810B360:
.string "$d0 moves were learned.\0"
.align 2,0
.global SpottedMunclax_810B378
SpottedMunclax_810B378:
.global SpottedMunchlax_810B378
SpottedMunchlax_810B378:
.string "Spotted Munchlax.\0"
.align 2,0

View File

@ -162,18 +162,18 @@
#define ITEM_ID_CALM_MIND 0x80
#define ITEM_ID_ROAR 0x81
#define ITEM_ID_TOXIC 0x82
#define ITEM_ID_HAIL_ORB 0x83
#define ITEM_ID_HAIL 0x83
#define ITEM_ID_BULK_UP 0x84
#define ITEM_ID_BULLET_SEED 0x85
#define ITEM_ID_HIDDEN_POWER 0x86
#define ITEM_ID_SUNNY_ORB 0x87
#define ITEM_ID_SUNNY_DAY 0x87
#define ITEM_ID_TAUNT 0x88
#define ITEM_ID_ICE_BEAM 0x89
#define ITEM_ID_BLIZZARD 0x8A
#define ITEM_ID_HYPER_BEAM 0x8B
#define ITEM_ID_LIGHT_SCREEN 0x8C
#define ITEM_ID_PROTECT 0x8D
#define ITEM_ID_RAINY_ORB 0x8E
#define ITEM_ID_RAIN_DANCE 0x8E
#define ITEM_ID_GIGA_DRAIN 0x8F
#define ITEM_ID_SAFEGUARD 0x90
#define ITEM_ID_FRUSTRATION 0x91
@ -187,14 +187,14 @@
#define ITEM_ID_PSYCHIC 0x99
#define ITEM_ID_SHADOW_BALL 0x9A
#define ITEM_ID_BRICK_BREAK 0x9B
#define ITEM_ID_EVASION_ORB 0x9C
#define ITEM_ID_DOUBLE_TEAM 0x9C
#define ITEM_ID_REFLECT 0x9D
#define ITEM_ID_SHOCK_WAVE 0x9E
#define ITEM_ID_FLAMETHROWER 0x9F
#define ITEM_ID_SLUDGE_BOMB 0xA0
#define ITEM_ID_SANDY_ORB 0xA1
#define ITEM_ID_SANDSTORM 0xA1
#define ITEM_ID_FIRE_BLAST 0xA2
#define ITEM_ID_ROCKY_ORB 0xA3
#define ITEM_ID_ROCK_TOMB 0xA3
#define ITEM_ID_AERIAL_ACE 0xA4
#define ITEM_ID_TORMENT 0xA5
#define ITEM_ID_FACADE 0xA6
@ -204,7 +204,7 @@
#define ITEM_ID_THIEF 0xAA
#define ITEM_ID_STEEL_WING 0xAB
#define ITEM_ID_SKILL_SWAP 0xAC
#define ITEM_ID_SNATCH_ORB 0xAD
#define ITEM_ID_SNATCH 0xAD
#define ITEM_ID_OVERHEAT 0xAE
#define ITEM_ID_WIDE_SLASH 0xAF
#define ITEM_ID_EXCAVATE 0xB0

View File

@ -0,0 +1,11 @@
#ifndef GUARD_DUNGEON_AI_ITEM_WEIGHT_H
#define GUARD_DUNGEON_AI_ITEM_WEIGHT_H
#include "dungeon_entity.h"
// 0x48F28
u32 EvaluateItem(struct DungeonEntity *targetPokemon, struct ItemSlot *item, u32 itemTargetFlags);
// 0x494EC
bool8 CanTargetAdjacentPokemon(struct DungeonEntity *pokemon);
#endif

View File

@ -164,8 +164,7 @@ struct DungeonEntityData
u8 fillFE[0x100 - 0xFE];
/* 0x100 */ u8 targetingDecoy; // If the Pokémon is targeting a decoy, this indicates whether the decoy target is a team or wild Pokémon.
u8 fill101[0x104 - 0x101];
/* 0x104 */ u8 movementSpeed;
u8 fill105[0x108 - 0x105];
/* 0x104 */ s32 movementSpeed;
// The turn counter for movement speed up/down is split into five timers each. Multiple timers are used if the Pokémon is affected by multiple
// speed-up/slow effects at once, like using Agility twice.
/* 0x108 */ u8 speedUpTurnsLeft[5];
@ -195,7 +194,9 @@ struct DungeonEntityData
u8 unk15D;
u8 unk15E;
u8 unk15F;
u8 fill160[0x16C - 0x160];
u8 fill160[0x169 - 0x160];
u8 turnsSinceWarpScarfActivation;
u8 fill16A[0x16C - 0x16A];
/* 0x16C */ struct Position targetPosition;
/* 0x170 */ struct Position posPixel;
u32 unk174;

9
include/dungeon_items.h Normal file
View File

@ -0,0 +1,9 @@
#ifndef GUARD_DUNGEON_ITEMS_H
#define GUARD_DUNGEON_ITEMS_H
#include "dungeon_entity.h"
// 0x46CB0
bool8 HasItem(struct DungeonEntity *pokemon, u8 itemIndex);
#endif

View File

@ -1,7 +1,11 @@
#ifndef GUARD_DUNGEON_UTIL_H
#define GUARD_DUNGEON_UTIL_H
#include "constants/direction.h"
#include "dungeon_entity.h"
#include "position.h"
extern const struct Position gAdjacentTileOffsets[NUM_DIRECTIONS];
// 0x450E0
bool8 EntityExists(struct DungeonEntity *pokemon);

8
include/moves.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef GUARD_MOVES_H
#define GUARD_MOVES_H
#include "constants/move.h"
u32 GetMoveMaxPP(struct PokemonMove *move);
#endif

7
include/number_util.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef GUARD_NUMBER_UTIL_H
#define GUARD_NUMBER_UTIL_H
// 0x94450
s32 RoundUpFixedPoint(s32 fixedPointNumber);
#endif

View File

@ -192,8 +192,11 @@ SECTIONS {
asm/code_80450F8.o(.text);
src/dungeon_visibility.o(.text);
asm/code_8045A00.o(.text);
src/dungeon_items.o(.text);
asm/code_8046CE4.o(.text);
src/code_8048480.o(.text);
asm/code_8048480.o(.text);
src/dungeon_ai_item_weight.o(.text);
src/dungeon_map_access.o(.text);
asm/code_8049590.o(.text);
src/code_80521D0.o(.text);
@ -260,6 +263,8 @@ SECTIONS {
asm/moves_1.o(.text);
src/moves_1.o(.text);
asm/code_8094148.o(.text);
src/number_util.o(.text);
asm/code_809447C.o(.text);
src/code_8092334.o(.text);
src/game_options.o(.text);
asm/code_8094D28.o(.text);
@ -386,6 +391,14 @@ SECTIONS {
data/personality_test.o(.rodata);
src/personality_test.o(.rodata);
data/data_80F4278.o(.rodata);
src/dungeon_util.o(.rodata);
data/data_80F4468.o(.rodata);
src/dungeon_pokemon_attributes_1.o(.rodata);
data/data_80F59C8.o(.rodata);
src/charge_move.o(.rodata);
data/data_8106A4C.o(.rodata);
src/dungeon_ai_1.o(.rodata);
data/data_8107010.o(.rodata);
src/friend_area.o(.rodata);
data/data_810AC60.o(.rodata);
src/exclusive_pokemon.o(.rodata);

View File

@ -4,7 +4,20 @@
#include "constants/status.h"
#include "dungeon_util.h"
extern u32 gMultiTurnChargingStatuses[];
const u32 gMultiTurnChargingStatuses[10] = {
CHARGING_STATUS_SOLARBEAM,
CHARGING_STATUS_SKY_ATTACK,
CHARGING_STATUS_RAZOR_WIND,
CHARGING_STATUS_FOCUS_PUNCH,
CHARGING_STATUS_SKULL_BASH,
CHARGING_STATUS_FLY,
CHARGING_STATUS_BOUNCE,
CHARGING_STATUS_DIVE,
CHARGING_STATUS_DIG,
CHARGING_STATUS_NONE
};
ALIGNED(4) const char chargingStatusFill[] = "pksdir0";
bool8 IsCharging(struct DungeonEntity *pokemon, bool8 checkCharge)
{

View File

@ -5,7 +5,38 @@
#include "constants/targeting.h"
#include "dungeon_pokemon_attributes_1.h"
extern bool8 gTargetingData[3][2][2][2];
const u8 gTargetingData[3][2][2][2] = {
{
{
{TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET},
{TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}
},
{
{TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET},
{TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}
}
},
{
{
{TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET},
{TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}
},
{
{TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET},
{TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET}
}
},
{
{
{TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET},
{TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET}
},
{
{TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET},
{TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}
}
}
};
u8 CanTarget(struct DungeonEntity *pokemon, struct DungeonEntity *targetPokemon, bool8 ignoreInvisible, bool8 checkPetrified)
{

View File

@ -5,8 +5,7 @@
#include "dungeon_global_data.h"
#include "dungeon_map_access.h"
#include "dungeon_pokemon_attributes_1.h"
extern struct Position gAdjacentTileOffsets[8];
#include "dungeon_util.h"
bool8 IsTargetStraightAhead(struct DungeonEntity *pokemon, struct DungeonEntity *targetPokemon, s32 facingDir, s32 maxRange)
{

View File

@ -0,0 +1,461 @@
#include "global.h"
#include "dungeon_ai_item_weight.h"
#include "constants/status.h"
#include "constants/targeting.h"
#include "dungeon_ai_1.h"
#include "dungeon_map_access.h"
#include "dungeon_pokemon_attributes_1.h"
#include "dungeon_util.h"
#include "moves.h"
#include "number_util.h"
extern bool8 HasNegativeStatus(struct DungeonEntity*);
u32 EvaluateItem(struct DungeonEntity *targetPokemon, struct ItemSlot *item, u32 itemTargetFlags)
{
struct DungeonEntityData *pokemonData = targetPokemon->entityData;
s32 itemWeight = 0;
bool8 targetOther = itemTargetFlags & 1;
u16 targetAlly = (itemTargetFlags >> 1) & 1;
s32 i;
struct PokemonMove *move;
struct PokemonMove *move2;
switch (item->itemIndex)
{
case ITEM_ID_STICK:
case ITEM_ID_IRON_THORN:
case ITEM_ID_SILVER_SPIKE:
case ITEM_ID_GOLD_FANG:
case ITEM_ID_CACNEA_SPIKE:
case ITEM_ID_CORSOLA_TWIG:
case ITEM_ID_GRAVELEROCK:
case ITEM_ID_GEO_PEBBLE:
if (targetOther)
{
itemWeight = 70;
}
break;
case ITEM_ID_DIET_RIBBON:
if (targetOther && RoundUpFixedPoint(pokemonData->belly) > 0)
{
return 50;
}
else
{
itemWeight = 0;
}
break;
case ITEM_ID_WHIFF_SPECS:
case ITEM_ID_NO_AIM_SCOPE:
if (targetOther)
{
return 50;
}
else
{
itemWeight = 0;
}
break;
case ITEM_ID_ORAN_BERRY:
case ITEM_ID_SITRUS_BERRY:
if (pokemonData->HP < pokemonData->maxHP && pokemonData->HP <= pokemonData->maxHP / 4)
{
if (!targetOther)
{
if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 100;
}
else
{
itemWeight = 50;
}
}
else
{
itemWeight = 50;
}
}
break;
case ITEM_ID_MAX_ELIXIR:
itemWeight = 0;
move = pokemonData->moves;
move2 = move;
for (i = 0; i < MAX_MON_MOVES; move++, move2++, i++)
{
if (move->moveFlags & MOVE_FLAG_EXISTS)
{
if (move->pp == 0)
{
itemWeight += 30;
}
if (move->pp != GetMoveMaxPP(move2))
{
itemWeight += 6;
}
}
}
if (itemWeight > 98)
{
itemWeight = 99;
}
break;
case ITEM_ID_HEAL_SEED:
if (HasNegativeStatus(targetPokemon))
{
itemWeight = 80;
}
else
{
itemWeight = 0;
}
break;
case ITEM_ID_PROTEIN:
if (pokemonData->attack > 249)
{
itemWeight = 0;
}
else
{
itemWeight = 100;
}
break;
case ITEM_ID_CALCIUM:
if (pokemonData->specialAttack > 249)
{
itemWeight = 0;
}
else
{
itemWeight = 100;
}
break;
case ITEM_ID_IRON:
if (pokemonData->defense > 249)
{
itemWeight = 0;
}
else
{
itemWeight = 100;
}
break;
case ITEM_ID_ZINC:
if (pokemonData->specialDefense > 249)
{
itemWeight = 0;
}
else
{
itemWeight = 100;
}
break;
case ITEM_ID_LIFE_SEED:
if (!targetOther)
{
if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 10;
}
else
{
itemWeight = 100;
}
}
else
{
itemWeight = 0;
}
break;
case ITEM_ID_EYEDROP_SEED:
if (!CanSeeInvisible(targetPokemon))
{
if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 80;
}
else
{
itemWeight = 5;
}
}
else
{
return 0;
}
break;
case ITEM_ID_QUICK_SEED:
if (targetPokemon->entityData->movementSpeed <= 3)
{
if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 80;
}
else
{
itemWeight = 5;
}
}
else
{
return 0;
}
break;
case ITEM_ID_ALLURE_SEED:
if (pokemonData->eyesightStatus != EYESIGHT_STATUS_CROSS_EYED)
{
if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 80;
}
else
{
itemWeight = 5;
}
}
else
{
return 0;
}
break;
case ITEM_ID_CHERI_BERRY:
if (pokemonData->nonVolatileStatus != NON_VOLATILE_STATUS_PARALYZED)
{
return 0;
}
else if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 80;
}
else
{
itemWeight = 30;
}
break;
case ITEM_ID_TOTTER_SEED:
if (pokemonData->volatileStatus != VOLATILE_STATUS_CONFUSED)
{
if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 80;
}
else
{
itemWeight = 15;
}
}
else
{
return 0;
}
break;
case ITEM_ID_PECHA_BERRY:
if (pokemonData->nonVolatileStatus != NON_VOLATILE_STATUS_POISONED &&
pokemonData->nonVolatileStatus != NON_VOLATILE_STATUS_BADLY_POISONED)
{
return 0;
}
else if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 100;
}
else
{
itemWeight = 50;
}
break;
case ITEM_ID_BLINKER_SEED:
if (pokemonData->eyesightStatus != EYESIGHT_STATUS_BLINKER)
{
if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 80;
}
else
{
itemWeight = 5;
}
}
else
{
return 0;
}
break;
case ITEM_ID_WARP_SEED:
if (!targetAlly)
{
if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 40;
}
else
{
itemWeight = 5;
}
}
else if (pokemonData->HP < pokemonData->maxHP && pokemonData->HP < 20)
{
if (!targetOther)
{
if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 100;
}
else
{
itemWeight = 50;
}
}
else
{
itemWeight = 50;
}
}
break;
case ITEM_ID_PATSY_BAND:
itemWeight = 40;
break;
case ITEM_ID_SLEEP_SEED:
if (pokemonData->sleepStatus != SLEEP_STATUS_SLEEP &&
pokemonData->sleepStatus != SLEEP_STATUS_NAPPING &&
pokemonData->sleepStatus != SLEEP_STATUS_NIGHTMARE)
{
if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 80;
}
else
{
itemWeight = 5;
}
}
else
{
return 0;
}
break;
case ITEM_ID_CHESTO_BERRY:
if (pokemonData->sleepStatus != SLEEP_STATUS_SLEEPLESS)
{
itemWeight = 5;
}
else
{
return 0;
}
break;
case ITEM_ID_JOY_SEED:
if (pokemonData->level < 99)
{
itemWeight = 80;
}
else
{
itemWeight = 0;
}
break;
case ITEM_ID_GINSENG:
itemWeight = 80;
break;
case ITEM_ID_RAWST_BERRY:
if (pokemonData->nonVolatileStatus == NON_VOLATILE_STATUS_BURNED)
{
return 50;
}
else
{
itemWeight = 0;
}
break;
case ITEM_ID_HUNGER_SEED:
if (RoundUpFixedPoint(pokemonData->belly) > 0)
{
return 50;
}
else
{
itemWeight = 0;
}
break;
case ITEM_ID_DOOM_SEED:
if (pokemonData->level > 1)
{
itemWeight = 80;
}
else
{
itemWeight = 0;
}
break;
case ITEM_ID_STUN_SEED:
if (pokemonData->immobilizeStatus == IMMOBILIZE_STATUS_PETRIFIED)
{
return 0;
}
else if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 80;
}
else
{
itemWeight = 5;
}
break;
case ITEM_ID_BLAST_SEED:
if (CanTargetAdjacentPokemon(targetPokemon))
{
itemWeight = 80;
}
else
{
itemWeight = 30;
}
break;
case ITEM_ID_APPLE:
case ITEM_ID_BIG_APPLE:
case ITEM_ID_HUGE_APPLE:
if (RoundUpFixedPoint(pokemonData->belly) < 10)
{
return 100;
}
else
{
itemWeight = 0;
}
break;
case ITEM_ID_GRIMY_FOOD:
itemWeight = 30;
break;
case ITEM_ID_ROLLCALL_ORB:
move = pokemonData->moves; // Fixes a regswap.
if (targetOther)
{
itemWeight = 0;
}
else
{
itemWeight = 20;
}
break;
default:
itemWeight = 0;
}
return itemWeight;
}
bool8 CanTargetAdjacentPokemon(struct DungeonEntity *pokemon)
{
s32 facingDir;
for (facingDir = 0; facingDir < NUM_DIRECTIONS; facingDir++)
{
struct MapTile *mapTile = GetMapTileAtPosition(pokemon->posWorld.x + gAdjacentTileOffsets[facingDir].x, pokemon->posWorld.y + gAdjacentTileOffsets[facingDir].y);
struct DungeonEntity *adjacentPokemon = mapTile->pokemon;
if (adjacentPokemon != NULL && GetEntityType(adjacentPokemon) != ENTITY_NONE &&
CanTarget(pokemon, adjacentPokemon, FALSE, TRUE) == TARGET_CAPABILITY_CAN_TARGET)
{
return TRUE;
}
}
return FALSE;
}

View File

@ -8,6 +8,7 @@
#include "dungeon_action.h"
#include "dungeon_ai_1.h"
#include "dungeon_ai_attack.h"
#include "dungeon_ai_item_weight.h"
#include "dungeon_ai_items.h"
#include "dungeon_capabilities.h"
#include "dungeon_capabilities_1.h"
@ -35,7 +36,6 @@ enum ItemTargetFlag
};
extern s32 CalculateFacingDir(struct Position*, struct Position*);
extern u32 EvaluateItem(struct DungeonEntity*, struct ItemSlot*, u32);
extern void sub_8077274(struct DungeonEntity *, struct DungeonEntity *);
extern s32 gNumPotentialTargets;

21
src/dungeon_items.c Normal file
View File

@ -0,0 +1,21 @@
#include "global.h"
#include "dungeon_items.h"
bool8 HasItem(struct DungeonEntity *pokemon, u8 itemIndex)
{
// Weird assignment to fix a regswap.
struct DungeonEntityData *pokemonData = pokemonData = pokemon->entityData;
if (!(pokemonData->heldItem.itemFlags & ITEM_FLAG_EXISTS))
{
return FALSE;
}
if (pokemonData->heldItem.itemFlags & ITEM_FLAG_STICKY)
{
return FALSE;
}
if (pokemonData->heldItem.itemIndex != itemIndex)
{
return FALSE;
}
return TRUE;
}

View File

@ -1,19 +1,18 @@
#include "global.h"
#include "dungeon_global_data.h"
#include "dungeon_pokemon_attributes_1.h"
#include "dungeon_util.h"
#include "pokemon.h"
#include "constants/dungeon.h"
#include "constants/iq_skill.h"
#include "constants/move_id.h"
#include "constants/status.h"
#include "constants/tactic.h"
#include "dungeon_global_data.h"
#include "dungeon_items.h"
#include "dungeon_util.h"
#include "pokemon.h"
#include "pokemon_3.h"
extern s16 gItemMasterMinWildLevel;
extern u8 HasItem(struct DungeonEntity *, u32);
const s16 gItemMasterMinWildLevel[] = {16};
extern bool8 IsIQSkillSet(u8 *, u32);
extern void SetIQSkill(u8 *param_1, u32 skillIndex);
@ -73,7 +72,7 @@ void LoadIQSkills(struct DungeonEntity *pokemon)
SetIQSkill(iVar2, IQ_SKILL_ITEM_CATCHER);
if (pokemonData->isBoss)
SetIQSkill(iVar2, IQ_SKILL_SELF_CURER);
if (pokemonData->level >= gItemMasterMinWildLevel)
if (pokemonData->level >= *gItemMasterMinWildLevel)
SetIQSkill(iVar2, IQ_SKILL_ITEM_MASTER);
pokemonData->tactic = TACTIC_GO_AFTER_FOES;
}

View File

@ -3,6 +3,17 @@
#include "dungeon_map_access.h"
const struct Position gAdjacentTileOffsets[NUM_DIRECTIONS] = {
{0, 1},
{1, 1},
{1, 0},
{1, -1},
{0, -1},
{-1, -1},
{-1, 0},
{-1, 1}
};
extern struct MapTile* GetMapEntity(s16, s16);
bool8 EntityExists(struct DungeonEntity *entity)

View File

@ -1,6 +1,7 @@
#include "global.h"
#include "file_system.h"
#include "item.h"
#include "moves.h"
#include "team_inventory.h"
#include "random.h"
#include "pokemon.h"
@ -42,7 +43,6 @@ extern void InitPokemonMove(void*, u16); // first arg is some struct
extern void sub_80078A4(u32, u32, u32, u32, u32);
extern u32 GetMoveType(void*);
extern u8* GetUnformattedTypeString(s16);
extern u32 GetMoveMaxPP(void*);
extern void sub_80073E0(u32);
extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32);
extern s32 sub_8091E94(s32 a1, s32 a2, s32 a3);
@ -698,7 +698,7 @@ u32 sub_80913E0(struct ItemSlot* slot, u32 a2, struct subStruct_203B240 ** a3)
xxx_format_and_draw(8, 24, GetItemDescription(slot->itemIndex), a2, 0);
if (GetItemType(slot->itemIndex) == ITEM_TYPE_TM) {
u8* buffer8 = buffer88 + 0x50; // field in struct
struct PokemonMove *buffer8 = (struct PokemonMove*) (buffer88 + 0x50); // field in struct
u16 move = GetItemMove(slot->itemIndex);
u8 moves_data;
u8* typestring;

View File

@ -1,6 +1,7 @@
#include "global.h"
#include "moves.h"
#include "file_system.h"
#include "constants/move.h"
#include "constants/move_id.h"
struct MoveDataFile
@ -36,7 +37,6 @@ extern u8 gUnknown_810992C[];
extern void sub_8093F10(struct PokemonMove *, struct PokemonMove *);
extern void sub_80928C0(u8 *, struct PokemonMove *, struct unkStruct_80928C0 *);
extern u32 GetMoveMaxPP(struct PokemonMove*);
bool8 DoesMoveCharge(u16 move);
extern void ExpandPlaceholdersBuffer(u8 *, u8 *, ...);

22
src/number_util.c Normal file
View File

@ -0,0 +1,22 @@
#include "global.h"
#include "number_util.h"
s32 RoundUpFixedPoint(s32 fixedPointNumber)
{
if ((s16) fixedPointNumber == 0)
{
if (fixedPointNumber >> 16 == 0)
{
return 0;
}
return 1;
}
else if (fixedPointNumber >> 16 != 0)
{
return (s16) fixedPointNumber + 1;
}
else
{
return (s16) fixedPointNumber;
}
}