mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-27 11:28:33 -05:00
Merge pull request #173 from SethBarberee/feb_2024
Feb and Early Mar 2024
This commit is contained in:
@@ -5,424 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_801EF38
|
||||
sub_801EF38:
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 24
|
||||
movs r7, 0
|
||||
cmp r0, 0
|
||||
bne _0801EF54
|
||||
ldr r0, _0801EF50
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x1C
|
||||
bl sub_8013660
|
||||
b _0801F18C
|
||||
.align 2, 0
|
||||
_0801EF50: .4byte gUnknown_203B270
|
||||
_0801EF54:
|
||||
ldr r0, _0801EF70
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x1C
|
||||
bl GetKeyPress
|
||||
subs r0, 0x1
|
||||
cmp r0, 0xC
|
||||
bls _0801EF66
|
||||
b _0801F12E
|
||||
_0801EF66:
|
||||
lsls r0, 2
|
||||
ldr r1, _0801EF74
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0801EF70: .4byte gUnknown_203B270
|
||||
_0801EF74: .4byte _0801EF78
|
||||
.align 2, 0
|
||||
_0801EF78:
|
||||
.4byte _0801EFB6
|
||||
.4byte _0801EFAC
|
||||
.4byte _0801F0E4
|
||||
.4byte _0801EFC0
|
||||
.4byte _0801F12E
|
||||
.4byte _0801F12E
|
||||
.4byte _0801EFE4
|
||||
.4byte _0801EFCA
|
||||
.4byte _0801F12E
|
||||
.4byte _0801F12E
|
||||
.4byte _0801F074
|
||||
.4byte _0801F04C
|
||||
.4byte _0801F018
|
||||
_0801EFAC:
|
||||
movs r0, 0x1
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x2
|
||||
b _0801F18E
|
||||
_0801EFB6:
|
||||
movs r0, 0
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x3
|
||||
b _0801F18E
|
||||
_0801EFC0:
|
||||
movs r0, 0x4
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x4
|
||||
b _0801F18E
|
||||
_0801EFCA:
|
||||
ldr r5, _0801EFE0
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x34
|
||||
ldrsh r6, [r0, r1]
|
||||
adds r4, r0, 0
|
||||
adds r4, 0x1C
|
||||
ldr r0, [r0, 0x10]
|
||||
adds r1, r6, 0
|
||||
bl unk_FindMoveEnabledForAIAfter8_v2
|
||||
b _0801EFF8
|
||||
.align 2, 0
|
||||
_0801EFE0: .4byte gUnknown_203B270
|
||||
_0801EFE4:
|
||||
ldr r5, _0801F014
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x34
|
||||
ldrsh r6, [r0, r1]
|
||||
adds r4, r0, 0
|
||||
adds r4, 0x1C
|
||||
ldr r0, [r0, 0x10]
|
||||
adds r1, r6, 0
|
||||
bl unk_FindMoveEnabledForAIBefore8_v2
|
||||
_0801EFF8:
|
||||
adds r1, r0, 0
|
||||
adds r0, r4, 0
|
||||
bl sub_8013780
|
||||
ldr r0, [r5]
|
||||
movs r2, 0x34
|
||||
ldrsh r0, [r0, r2]
|
||||
cmp r6, r0
|
||||
bne _0801F00C
|
||||
b _0801F12E
|
||||
_0801F00C:
|
||||
movs r0, 0x3
|
||||
bl PlayMenuSoundEffect
|
||||
b _0801F12E
|
||||
.align 2, 0
|
||||
_0801F014: .4byte gUnknown_203B270
|
||||
_0801F018:
|
||||
ldr r0, _0801F048
|
||||
ldr r2, [r0]
|
||||
ldrb r1, [r2, 0x5]
|
||||
adds r5, r0, 0
|
||||
cmp r1, 0
|
||||
bne _0801F026
|
||||
b _0801F12E
|
||||
_0801F026:
|
||||
movs r0, 0x34
|
||||
ldrsh r4, [r2, r0]
|
||||
ldr r0, [r2, 0x10]
|
||||
adds r1, r4, 0
|
||||
bl unk_SetMoveToLastInLinkedSequence8_v2
|
||||
_0801F032:
|
||||
ldr r1, [r5]
|
||||
strh r0, [r1, 0x34]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r4, r0
|
||||
beq _0801F06C
|
||||
movs r0, 0x3
|
||||
bl PlayMenuSoundEffect
|
||||
b _0801F182
|
||||
.align 2, 0
|
||||
_0801F048: .4byte gUnknown_203B270
|
||||
_0801F04C:
|
||||
ldr r0, _0801F068
|
||||
ldr r2, [r0]
|
||||
ldrb r1, [r2, 0x5]
|
||||
adds r5, r0, 0
|
||||
cmp r1, 0
|
||||
beq _0801F12E
|
||||
movs r1, 0x34
|
||||
ldrsh r4, [r2, r1]
|
||||
ldr r0, [r2, 0x10]
|
||||
adds r1, r4, 0
|
||||
bl unk_SetMoveToFirstInLinkedSequence8_v2
|
||||
b _0801F032
|
||||
.align 2, 0
|
||||
_0801F068: .4byte gUnknown_203B270
|
||||
_0801F06C:
|
||||
movs r0, 0x2
|
||||
bl PlayMenuSoundEffect
|
||||
b _0801F182
|
||||
_0801F074:
|
||||
ldr r0, _0801F0C8
|
||||
ldr r2, [r0]
|
||||
ldrb r1, [r2, 0x6]
|
||||
adds r5, r0, 0
|
||||
cmp r1, 0
|
||||
beq _0801F12E
|
||||
ldr r0, _0801F0CC
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x98
|
||||
lsls r1, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0x95
|
||||
ble _0801F0D0
|
||||
movs r1, 0x34
|
||||
ldrsh r0, [r2, r1]
|
||||
ldr r1, [r2, 0x10]
|
||||
bl sub_8093318
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0801F0D0
|
||||
ldr r1, [r5]
|
||||
movs r2, 0x34
|
||||
ldrsh r0, [r1, r2]
|
||||
ldr r1, [r1, 0x10]
|
||||
bl TryLinkMovesAfter
|
||||
movs r0, 0x6
|
||||
bl PlayMenuSoundEffect
|
||||
movs r7, 0x1
|
||||
ldr r1, [r5]
|
||||
ldrb r0, [r1, 0x4]
|
||||
cmp r0, 0
|
||||
bne _0801F12E
|
||||
strb r7, [r1, 0x4]
|
||||
movs r0, 0xA6
|
||||
lsls r0, 1
|
||||
bl PlaySound
|
||||
b _0801F12E
|
||||
.align 2, 0
|
||||
_0801F0C8: .4byte gUnknown_203B270
|
||||
_0801F0CC: .4byte gTeamInventoryRef
|
||||
_0801F0D0:
|
||||
ldr r0, _0801F0E0
|
||||
ldr r1, [r0]
|
||||
movs r2, 0x34
|
||||
ldrsh r0, [r1, r2]
|
||||
ldr r1, [r1, 0x10]
|
||||
bl UnlinkMovesAfter
|
||||
b _0801F0FE
|
||||
.align 2, 0
|
||||
_0801F0E0: .4byte gUnknown_203B270
|
||||
_0801F0E4:
|
||||
ldr r0, _0801F10C
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r1, 0x7]
|
||||
cmp r0, 0
|
||||
beq _0801F12E
|
||||
ldrb r0, [r1, 0xC]
|
||||
cmp r0, 0
|
||||
beq _0801F110
|
||||
movs r2, 0x34
|
||||
ldrsh r0, [r1, r2]
|
||||
ldr r1, [r1, 0x10]
|
||||
bl ToggleSetMove
|
||||
_0801F0FE:
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0801F120
|
||||
movs r0, 0x2
|
||||
bl PlayMenuSoundEffect
|
||||
b _0801F12E
|
||||
.align 2, 0
|
||||
_0801F10C: .4byte gUnknown_203B270
|
||||
_0801F110:
|
||||
movs r2, 0x34
|
||||
ldrsh r0, [r1, r2]
|
||||
ldr r1, [r1, 0x10]
|
||||
bl ToggleMoveEnabled
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0801F128
|
||||
_0801F120:
|
||||
movs r0, 0x6
|
||||
bl PlayMenuSoundEffect
|
||||
b _0801F182
|
||||
_0801F128:
|
||||
movs r0, 0x2
|
||||
bl PlayMenuSoundEffect
|
||||
_0801F12E:
|
||||
cmp r7, 0
|
||||
bne _0801F182
|
||||
movs r3, 0
|
||||
ldr r5, _0801F160
|
||||
movs r4, 0x1
|
||||
_0801F138:
|
||||
ldr r2, [r5]
|
||||
lsls r0, r3, 3
|
||||
ldr r1, [r2, 0x10]
|
||||
adds r1, r0
|
||||
ldrb r1, [r1]
|
||||
adds r0, r4, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0801F16C
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, 0
|
||||
beq _0801F164
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x14
|
||||
adds r0, r3
|
||||
strb r4, [r0]
|
||||
b _0801F16C
|
||||
.align 2, 0
|
||||
_0801F160: .4byte gUnknown_203B270
|
||||
_0801F164:
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x14
|
||||
adds r0, r3
|
||||
strb r1, [r0]
|
||||
_0801F16C:
|
||||
adds r3, 0x1
|
||||
cmp r3, 0x7
|
||||
ble _0801F138
|
||||
ldr r1, [r5]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x1C
|
||||
adds r1, 0x14
|
||||
bl AddMenuCursorSprite_
|
||||
cmp r7, 0
|
||||
beq _0801F18C
|
||||
_0801F182:
|
||||
movs r0, 0x1
|
||||
bl sub_801F280
|
||||
movs r0, 0x1
|
||||
b _0801F18E
|
||||
_0801F18C:
|
||||
movs r0, 0
|
||||
_0801F18E:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_801EF38
|
||||
|
||||
thumb_func_start sub_801F194
|
||||
sub_801F194:
|
||||
ldr r0, _0801F1A0
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x34
|
||||
ldrsh r0, [r0, r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0801F1A0: .4byte gUnknown_203B270
|
||||
thumb_func_end sub_801F194
|
||||
|
||||
thumb_func_start sub_801F1A4
|
||||
sub_801F1A4:
|
||||
ldr r0, _0801F1AC
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0801F1AC: .4byte gUnknown_203B270
|
||||
thumb_func_end sub_801F1A4
|
||||
|
||||
thumb_func_start sub_801F1B0
|
||||
sub_801F1B0:
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
ldr r4, _0801F210
|
||||
ldr r2, [r4]
|
||||
ldrb r0, [r2, 0x4]
|
||||
cmp r0, 0
|
||||
bne _0801F1C6
|
||||
strb r1, [r2, 0x4]
|
||||
_0801F1C6:
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x58
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
bl sub_801F3F8
|
||||
adds r1, r0, 0
|
||||
ldr r0, [r4]
|
||||
strh r1, [r0, 0x3E]
|
||||
adds r0, 0x1C
|
||||
bl sub_8013984
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, 0x10]
|
||||
movs r2, 0x34
|
||||
ldrsh r1, [r1, r2]
|
||||
bl sub_8092F4C
|
||||
ldr r1, [r4]
|
||||
strh r0, [r1, 0x34]
|
||||
movs r0, 0x1
|
||||
bl sub_801F280
|
||||
cmp r5, 0
|
||||
beq _0801F208
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x1C
|
||||
bl AddMenuCursorSprite
|
||||
_0801F208:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801F210: .4byte gUnknown_203B270
|
||||
thumb_func_end sub_801F1B0
|
||||
|
||||
thumb_func_start sub_801F214
|
||||
sub_801F214:
|
||||
push {r4-r6,lr}
|
||||
ldr r4, _0801F278
|
||||
ldr r2, [r4]
|
||||
cmp r2, 0
|
||||
beq _0801F272
|
||||
ldr r0, [r2, 0x50]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
ldr r3, _0801F27C
|
||||
adds r1, 0x58
|
||||
adds r0, r3, 0
|
||||
ldm r0!, {r2,r5,r6}
|
||||
stm r1!, {r2,r5,r6}
|
||||
ldm r0!, {r2,r5,r6}
|
||||
stm r1!, {r2,r5,r6}
|
||||
ldr r2, [r4]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xB8
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0801F258
|
||||
ldr r0, [r2, 0x54]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x58
|
||||
adds r0, r3, 0
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
_0801F258:
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x58
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_0801F272:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801F278: .4byte gUnknown_203B270
|
||||
_0801F27C: .4byte gUnknown_80DC240
|
||||
thumb_func_end sub_801F214
|
||||
|
||||
thumb_func_start sub_801F280
|
||||
sub_801F280:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -1,126 +0,0 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start SketchMoveAction
|
||||
SketchMoveAction:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x4
|
||||
adds r6, r0, 0
|
||||
adds r7, r1, 0
|
||||
adds r5, r2, 0
|
||||
movs r0, 0
|
||||
mov r10, r0
|
||||
ldr r1, [r6, 0x70]
|
||||
str r1, [sp]
|
||||
ldr r0, [r7, 0x70]
|
||||
movs r2, 0
|
||||
mov r12, r2
|
||||
movs r4, 0
|
||||
movs r1, 0x8C
|
||||
lsls r1, 1
|
||||
adds r3, r0, r1
|
||||
adds r1, r0, 0
|
||||
movs r2, 0x1
|
||||
mov r9, r2
|
||||
movs r0, 0x10
|
||||
mov r8, r0
|
||||
_08059372:
|
||||
ldrb r2, [r3]
|
||||
mov r0, r9
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
beq _08059384
|
||||
mov r0, r8
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
bne _080593A8
|
||||
_08059384:
|
||||
adds r3, 0x8
|
||||
adds r1, 0x8
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x3
|
||||
ble _08059372
|
||||
movs r0, 0
|
||||
cmp r0, 0
|
||||
bne _080593B2
|
||||
ldr r0, _080593A4
|
||||
ldr r2, [r0]
|
||||
adds r0, r6, 0
|
||||
adds r1, r7, 0
|
||||
bl sub_80522F4
|
||||
movs r0, 0
|
||||
b _0805940A
|
||||
.align 2, 0
|
||||
_080593A4: .4byte gUnknown_80FE3BC
|
||||
_080593A8:
|
||||
movs r2, 0x8D
|
||||
lsls r2, 1
|
||||
adds r0, r1, r2
|
||||
ldrh r0, [r0]
|
||||
mov r12, r0
|
||||
_080593B2:
|
||||
mov r0, r12
|
||||
cmp r0, 0
|
||||
bne _080593CC
|
||||
ldr r0, _080593C8
|
||||
ldr r2, [r0]
|
||||
adds r0, r6, 0
|
||||
adds r1, r7, 0
|
||||
bl sub_80522F4
|
||||
b _08059408
|
||||
.align 2, 0
|
||||
_080593C8: .4byte gUnknown_80FE3BC
|
||||
_080593CC:
|
||||
adds r0, r5, 0
|
||||
mov r1, r12
|
||||
bl InitPokemonMove
|
||||
ldr r0, _0805941C
|
||||
adds r1, r5, 0
|
||||
movs r2, 0
|
||||
bl sub_80928C0
|
||||
ldrb r1, [r5, 0x1]
|
||||
movs r0, 0x4
|
||||
orrs r0, r1
|
||||
movs r1, 0x20
|
||||
orrs r0, r1
|
||||
strb r0, [r5, 0x1]
|
||||
ldr r0, _08059420
|
||||
ldr r2, [r0]
|
||||
adds r0, r6, 0
|
||||
adds r1, r7, 0
|
||||
bl sub_80522F4
|
||||
ldr r1, [sp]
|
||||
adds r1, 0xFB
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _08059404
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
_08059404:
|
||||
movs r1, 0x1
|
||||
mov r10, r1
|
||||
_08059408:
|
||||
mov r0, r10
|
||||
_0805940A:
|
||||
add sp, 0x4
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0805941C: .4byte gUnknown_202DE58
|
||||
_08059420: .4byte gUnknown_80FE38C
|
||||
thumb_func_end SketchMoveAction
|
||||
|
||||
.align 2, 0
|
||||
4684
asm/code_807FCD4.s
4684
asm/code_807FCD4.s
File diff suppressed because it is too large
Load Diff
3369
asm/code_8080CF0.s
Normal file
3369
asm/code_8080CF0.s
Normal file
File diff suppressed because it is too large
Load Diff
@@ -5,65 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_809A83C
|
||||
sub_809A83C:
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
ldr r2, _0809A8A0
|
||||
lsls r1, r0, 3
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r3, _0809A8A4
|
||||
adds r1, r3
|
||||
ldr r2, [r2]
|
||||
adds r6, r2, r1
|
||||
ldr r1, _0809A8A8
|
||||
strh r1, [r6]
|
||||
movs r2, 0
|
||||
movs r7, 0
|
||||
strh r7, [r6, 0x2]
|
||||
strb r2, [r6, 0x4]
|
||||
strb r2, [r6, 0x5]
|
||||
movs r1, 0xFF
|
||||
strb r1, [r6, 0x6]
|
||||
strb r2, [r6, 0x7]
|
||||
str r7, [r6, 0x8]
|
||||
str r7, [r6, 0xC]
|
||||
str r7, [r6, 0x10]
|
||||
str r7, [r6, 0x14]
|
||||
strb r2, [r6, 0x1C]
|
||||
lsls r4, r0, 2
|
||||
adds r4, r0
|
||||
lsls r4, 4
|
||||
ldr r0, _0809A8AC
|
||||
adds r0, r4, r0
|
||||
ldr r5, _0809A8B0
|
||||
adds r1, r5, 0
|
||||
bl strcpy
|
||||
ldr r0, _0809A8B4
|
||||
adds r4, r0
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl strcpy
|
||||
ldr r0, [r6, 0x20]
|
||||
cmp r0, 0
|
||||
beq _0809A89A
|
||||
bl CloseFile
|
||||
str r7, [r6, 0x20]
|
||||
_0809A89A:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809A8A0: .4byte gUnknown_3001B64
|
||||
_0809A8A4: .4byte 0x0000043c
|
||||
_0809A8A8: .4byte 0x0000ffff
|
||||
_0809A8AC: .4byte gAvailablePokemonNames
|
||||
_0809A8B0: .4byte gInvalidityText
|
||||
_0809A8B4: .4byte gPlayerName
|
||||
thumb_func_end sub_809A83C
|
||||
|
||||
thumb_func_start sub_809A8B8
|
||||
sub_809A8B8:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -1,103 +0,0 @@
|
||||
.section .rodata
|
||||
|
||||
@ code_801EE10
|
||||
.align 2,0
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DC240
|
||||
gUnknown_80DC240: @ 80DC240
|
||||
.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 Data_80DC258
|
||||
Data_80DC258:
|
||||
.byte 0x01, 0x00, 0x0f, 0x00
|
||||
|
||||
.global gUnknown_80DC25C
|
||||
gUnknown_80DC25C: @ 80DC25C
|
||||
.byte 0x00, 0x00
|
||||
.byte 0x00, 0x00
|
||||
.byte 0x06, 0x00
|
||||
.byte 0x00, 0x00
|
||||
.byte 0x02, 0x00
|
||||
.byte 0x02, 0x00
|
||||
.byte 0x12, 0x00
|
||||
.byte 0x08, 0x00
|
||||
.byte 0x08, 0x00
|
||||
.byte 0x00, 0x00
|
||||
|
||||
.4byte Data_80DC258
|
||||
|
||||
.global gUnknown_80DC274
|
||||
gUnknown_80DC274: @ 80DC274
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x0f, 0x00
|
||||
.byte 0x1a, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnknown_80DC28C
|
||||
gUnknown_80DC28C: @ 80DC28C
|
||||
.string "Moves: {COLOR_1 YELLOW}{ARG_POKEMON_0}{END_COLOR_TEXT_1} \0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DC2A0
|
||||
gUnknown_80DC2A0: @ 80DC2A0
|
||||
.string "{ARG_MOVE_ITEM_0}\0"
|
||||
|
||||
@ code_801EE10_mid #1
|
||||
.align 2,0
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DC2AC
|
||||
gUnknown_80DC2AC: @ 80DC2AC
|
||||
.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_80DC2C4
|
||||
gUnknown_80DC2C4: @ 80DC2C4
|
||||
.byte 0x00, 0x00
|
||||
.byte 0x00, 0x00
|
||||
.byte 0x06, 0x00
|
||||
.byte 0x00, 0x00
|
||||
.byte 0x02, 0x00
|
||||
.byte 0x02, 0x00
|
||||
.byte 0x0f, 0x00
|
||||
.byte 0x04, 0x00
|
||||
.byte 0x06, 0x00
|
||||
.byte 0x00, 0x00
|
||||
.byte 0x00, 0x00
|
||||
.byte 0x00, 0x00
|
||||
|
||||
.global gUnknown_80DC2DC
|
||||
gUnknown_80DC2DC: @ 80DC2DC
|
||||
.string "Moves Page: %d/%d \0"
|
||||
|
||||
.align 2,0
|
||||
@ code_801EE10_mid #2
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80DC2F8
|
||||
gUnknown_80DC2F8: @ 80DC2F8
|
||||
.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_80DC310
|
||||
gUnknown_80DC310: @ 80DC310
|
||||
.string "{ARG_POKEMON_0}\0"
|
||||
@@ -1890,176 +1890,5 @@ gFinalScenarioText: @ 8109CF4
|
||||
@ 8109D30
|
||||
#include "dungeon/dungeon_data.inc"
|
||||
|
||||
.global gUnknown_810A350
|
||||
gUnknown_810A350: @ 810A350
|
||||
@ replacing .incbin "baserom.gba", 0x0010a350, 0xb
|
||||
.byte 0x18, 0x19, 0x1e, 0x27, 0x31, 0x32, 0x33, 0x36, 0x37, 0x3d, 0x3f
|
||||
.align 2,0
|
||||
|
||||
.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
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x01, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x07, 0x00, 0x04, 0x00
|
||||
.byte 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00
|
||||
.byte 0x02, 0x00, 0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00
|
||||
.byte 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, 0x07, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x00
|
||||
.byte 0x04, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x07, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00
|
||||
.byte 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00
|
||||
.byte 0x07, 0x00, 0x04, 0x00, 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00
|
||||
.byte 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x07, 0x00, 0x03, 0x00
|
||||
.byte 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x07, 0x00, 0x04, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00
|
||||
.byte 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00
|
||||
.byte 0x03, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x07, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00
|
||||
.byte 0x02, 0x00, 0x03, 0x00, 0x07, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00
|
||||
.byte 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00, 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00
|
||||
.byte 0x07, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00
|
||||
.byte 0x02, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00
|
||||
.byte 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x07, 0x00
|
||||
|
||||
.global gUnknown_810A808
|
||||
gUnknown_810A808: @ 810A808
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x05, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x3c, 0x00, 0x1e, 0x00
|
||||
.byte 0x14, 0x00, 0x19, 0x00, 0x14, 0x00, 0x19, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x14, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x14, 0x00, 0x00, 0x00, 0x19, 0x00
|
||||
.byte 0x14, 0x00, 0x3c, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x14, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x14, 0x00
|
||||
.byte 0x00, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x14, 0x00, 0x3c, 0x00, 0x14, 0x00, 0x1e, 0x00, 0x19, 0x00
|
||||
.byte 0x1e, 0x00, 0x14, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x3c, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x14, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x14, 0x00, 0x00, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x3c, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x3c, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x1e, 0x00, 0x1e, 0x00, 0x14, 0x00, 0x14, 0x00, 0x19, 0x00, 0x19, 0x00, 0x14, 0x00, 0x19, 0x00
|
||||
.byte 0x00, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x14, 0x00, 0x19, 0x00, 0x19, 0x00, 0x14, 0x00
|
||||
.byte 0x3c, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x14, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x05, 0x00
|
||||
.byte 0x1e, 0x00, 0x19, 0x00, 0x14, 0x00, 0x3c, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x14, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x14, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x14, 0x00, 0x19, 0x00, 0x05, 0x00, 0x3c, 0x00, 0x19, 0x00
|
||||
.byte 0x14, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x14, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x3c, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x19, 0x00
|
||||
.byte 0x00, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x14, 0x00, 0x19, 0x00, 0x19, 0x00, 0x14, 0x00
|
||||
.byte 0x19, 0x00, 0x14, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x3c, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x1e, 0x00, 0x14, 0x00, 0x1e, 0x00, 0x14, 0x00, 0x19, 0x00, 0x19, 0x00, 0x3c, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x05, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x05, 0x00, 0x14, 0x00, 0x19, 0x00, 0x19, 0x00, 0x1e, 0x00
|
||||
.byte 0x14, 0x00, 0x19, 0x00, 0x3c, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00
|
||||
.byte 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x3c, 0x00, 0x19, 0x00, 0x19, 0x00
|
||||
.byte 0x00, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x1e, 0x00
|
||||
.byte 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x14, 0x00, 0x19, 0x00
|
||||
.byte 0x3c, 0x00, 0x19, 0x00, 0x00, 0x00, 0x14, 0x00, 0x1e, 0x00, 0x19, 0x00, 0x14, 0x00, 0x19, 0x00
|
||||
.byte 0x14, 0x00, 0x1e, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00
|
||||
.byte 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x3c, 0x00
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
typedef struct unkStruct_203B270
|
||||
{
|
||||
u32 unk0;
|
||||
u8 unk4;
|
||||
bool8 unk4;
|
||||
u8 unk5;
|
||||
u8 unk6;
|
||||
u8 unk7;
|
||||
@@ -18,7 +18,7 @@ typedef struct unkStruct_203B270
|
||||
/* 0xC */ u8 isTeamLeader;
|
||||
/* 0x10 */ Move *moves;
|
||||
u8 fill14[0x1C - 0x14];
|
||||
MenuInputStruct input;
|
||||
/* 0x1C */ MenuInputStruct input;
|
||||
u32 unk50;
|
||||
u32 unk54;
|
||||
UnkTextStruct2 unk58[4];
|
||||
@@ -26,13 +26,13 @@ typedef struct unkStruct_203B270
|
||||
} unkStruct_203B270;
|
||||
|
||||
u8 sub_801EE10(u32, s16 species, Move *moves, u32, const u8 *text, u32);
|
||||
u32 sub_801EF38(char);
|
||||
s32 sub_801F194(void);
|
||||
bool8 sub_801F1A4(void);
|
||||
void sub_801F1B0(bool8, bool8);
|
||||
void sub_801F214(void);
|
||||
|
||||
// code_801EE10.s
|
||||
extern u32 sub_801EF38(u32);
|
||||
extern u32 sub_801F194(void);
|
||||
extern bool8 sub_801F1A4(void);
|
||||
extern void sub_801F1B0(bool8, bool8);
|
||||
extern void sub_801F214(void);
|
||||
extern void sub_801F280(u32); // Probably bool
|
||||
|
||||
#endif // CODE_801EE10_H
|
||||
#endif // CODE_801EE10_H
|
||||
|
||||
@@ -47,6 +47,6 @@ void PrintDungeonLocationtoBuffer(u8 *buffer, DungeonLocation *dungeonLocation);
|
||||
|
||||
u32 sub_80908D8(DungeonLocation *dungeon);
|
||||
u8 sub_8090910(DungeonLocation *dungeon, u32 param_2);
|
||||
bool8 sub_809095C(u8 dungeon);
|
||||
bool8 IsNotValidDungeon(u8 dungeon);
|
||||
|
||||
#endif // GUARD_DUNGEON_H
|
||||
|
||||
@@ -40,7 +40,7 @@ bool8 sub_8013938(MenuInputStruct *param_1);
|
||||
void sub_8013984(MenuInputStruct * param_1);
|
||||
void sub_8013A54(MenuInputStruct *param_1);
|
||||
void sub_8013A7C(MenuInputStruct *param_1);
|
||||
void AddMenuCursorSprite_(MenuInputStruct *, u32);
|
||||
void AddMenuCursorSprite_(MenuInputStruct *, u8 *);
|
||||
void nullsub_34(MenuInputStructSub *);
|
||||
|
||||
void sub_8013AA0(unkStructFor8013AA0 *);
|
||||
@@ -48,4 +48,4 @@ u32 sub_8013BBC(unkStructFor8013AA0 *);
|
||||
void sub_8013C68(unkStructFor8013AA0 *);
|
||||
void sub_8013D10(unkStructFor8013AA0 *);
|
||||
|
||||
#endif // GUARD_MENU_INPUT_H
|
||||
#endif // GUARD_MENU_INPUT_H
|
||||
|
||||
@@ -245,7 +245,7 @@ typedef struct EntityInfo
|
||||
/* 0x1F4 */ u8 numMoveTiles; // Number of tiles to move in a turn. Can be greater than 1 if the user's movement speed is boosted.
|
||||
u8 fill1F5;
|
||||
/* 0x1F6 */ bool8 notMoving;
|
||||
u8 fill1F7[0x1FA - 0x1F7];
|
||||
/* 0x1F8 */ s16 unk1F8;
|
||||
/* 0x1FA */ s16 mobileTurnTimer; // When a Pokémon can pass through walls in a hallway, this counts up to 200 before the Pokémon turns in a random direction.
|
||||
/* 0x1FC */ u32 expGainedInTurn; // Used to accumulate experience when multiple enemies are defeated in one turn.
|
||||
/* 0x200 */ u32 statusIcons;
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
#define DUNGEON_MAX_SIZE_Y 32
|
||||
#define DUNGEON_MAX_WILD_POKEMON 16
|
||||
#define DUNGEON_MAX_POKEMON MAX_TEAM_MEMBERS + DUNGEON_MAX_WILD_POKEMON
|
||||
#define DUNGEON_MAX_TRAPS 64
|
||||
#define DUNGEON_MAX_ITEMS 64
|
||||
|
||||
// size: 0x4
|
||||
typedef struct DungeonLocation
|
||||
@@ -196,12 +198,12 @@ typedef struct Dungeon
|
||||
/* 0x1357C */ Entity *teamPokemon[MAX_TEAM_MEMBERS];
|
||||
/* 0x1358C */ Entity *wildPokemon[DUNGEON_MAX_WILD_POKEMON];
|
||||
/* 0x135CC */ Entity *allPokemon[DUNGEON_MAX_POKEMON]; // Contains both team and wild Pokémon
|
||||
/* 0x1361C */ Entity *clientPokemon[0x40];
|
||||
/* 0x1371C */ Entity *unk1371C[0x40];
|
||||
/* 0x1361C */ Entity *items[DUNGEON_MAX_ITEMS];
|
||||
/* 0x1371C */ Entity *traps[DUNGEON_MAX_TRAPS];
|
||||
/* 0x1381C */ Entity teamPokemonEntities[MAX_TEAM_MEMBERS];
|
||||
/* 0x139EC */ Entity wildPokemonEntities[DUNGEON_MAX_WILD_POKEMON];
|
||||
/* 0x1412C */ Entity clientPokemonEntities[0x40];
|
||||
/* 0x15E2C */ Entity unk15E2C[0x40];
|
||||
/* 0x1412C */ Entity itemEntities[DUNGEON_MAX_ITEMS];
|
||||
/* 0x15E2C */ Entity trapEntites[DUNGEON_MAX_TRAPS];
|
||||
/* 0x17B2C */ Entity *lightningRodPokemon;
|
||||
/* 0x17B30 */ Entity *snatchPokemon;
|
||||
/* 0x17B34 */ Entity *unk17B34;
|
||||
|
||||
@@ -123,6 +123,8 @@ SECTIONS {
|
||||
src/code_801EE10.o(.text);
|
||||
asm/code_801EE10.o(.text);
|
||||
src/code_801EE10_mid.o(.text);
|
||||
src/code_801F428.o(.text);
|
||||
src/code_801F808.o(.text);
|
||||
src/gulpin_shop_801FB50.o(.text);
|
||||
src/wigglytuff_shop1.o(.text);
|
||||
src/wigglytuff_shop2.o(.text);
|
||||
@@ -223,9 +225,7 @@ SECTIONS {
|
||||
asm/code_80521D0.o(.text);
|
||||
src/charge_move.o(.text);
|
||||
src/move_util.o(.text);
|
||||
src/code_8057824.o(.text);
|
||||
asm/code_8057824.o(.text);
|
||||
src/code_805A120.o(.text);
|
||||
src/move_actions.o(.text);
|
||||
src/status_actions.o(.text);
|
||||
src/move_checks.o(.text);
|
||||
asm/code_805D8C8.o(.text);
|
||||
@@ -272,6 +272,8 @@ SECTIONS {
|
||||
src/code_807E5AC.o(.text);
|
||||
src/trap.o(.text);
|
||||
asm/code_807FCD4.o(.text);
|
||||
src/trap_1.o(.text);
|
||||
asm/code_8080CF0.o(.text);
|
||||
src/code_8083288.o(.text);
|
||||
src/dungeon_range.o(.text);
|
||||
src/code_808333C.o(.text);
|
||||
@@ -458,7 +460,9 @@ SECTIONS {
|
||||
src/hints_menu1.o(.rodata);
|
||||
src/hints_menu2.o(.rodata);
|
||||
src/gulpin_shop.o(.rodata);
|
||||
data/data_80DC240.o(.rodata);
|
||||
src/code_801EE10.o(.rodata);
|
||||
src/code_801F428.o(.rodata);
|
||||
src/code_801F808.o(.rodata);
|
||||
src/gulpin_shop_801FB50.o(.rodata);
|
||||
src/wigglytuff_shop1.o(.rodata);
|
||||
src/wigglytuff_shop2.o(.rodata);
|
||||
@@ -541,6 +545,9 @@ SECTIONS {
|
||||
src/dungeon_capabilities.o(.rodata);
|
||||
src/dungeon_ai_targeting.o(.rodata);
|
||||
data/data_8107010.o(.rodata);
|
||||
src/pokemon_3.o(.rodata);
|
||||
src/items.o(.rodata);
|
||||
src/code_8048480.o(.rodata);
|
||||
src/friend_area.o(.rodata);
|
||||
data/data_810AC60.o(.rodata);
|
||||
src/tile_types.o(.rodata);
|
||||
|
||||
@@ -1,67 +1,277 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "constants/input.h"
|
||||
#include "input.h"
|
||||
#include "items.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "memory.h"
|
||||
#include "moves.h"
|
||||
#include "code_801EE10.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern unkStruct_203B270 *gUnknown_203B270;
|
||||
extern UnkTextStruct2 gUnknown_80DC25C;
|
||||
extern UnkTextStruct2 gUnknown_80DC274;
|
||||
|
||||
const UnkTextStruct2 gUnknown_80DC240 = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
NULL
|
||||
};
|
||||
|
||||
const u8 gUnkData_80DC258[4] = {0x01, 0x00, 0x0F, 0x00};
|
||||
|
||||
const UnkTextStruct2 gUnknown_80DC25C = {
|
||||
0, 0, 0, 0,
|
||||
6,
|
||||
0x2, 0x2,
|
||||
0x12, 0x8,
|
||||
0x8, 0,
|
||||
gUnkData_80DC258
|
||||
};
|
||||
|
||||
const UnkTextStruct2 gUnknown_80DC274 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
0x2, 0xF,
|
||||
0x1A, 0x3,
|
||||
0x3, 0,
|
||||
NULL,
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80DC28C[] = _("Moves: {COLOR_1 YELLOW}{ARG_POKEMON_0}{END_COLOR_TEXT_1} ");
|
||||
ALIGNED(4) const u8 gUnknown_80DC2A0[] = _("{ARG_MOVE_ITEM_0}");
|
||||
|
||||
u32 sub_8006544(u32 index);
|
||||
s32 sub_801F3F8(void);
|
||||
|
||||
u8 sub_801EE10(u32 param_1, s16 species, Move *moves, u32 param_4, const u8 *text, u32 param_6)
|
||||
{
|
||||
s32 iVar5;
|
||||
s32 iVar8;
|
||||
s32 species_s32;
|
||||
u8 param_4_u8;
|
||||
s32 four;
|
||||
|
||||
species_s32 = species;
|
||||
param_4_u8 = param_4;
|
||||
gUnknown_203B270 = MemoryAlloc(sizeof(unkStruct_203B270), 8);
|
||||
gUnknown_203B270->unk4 = param_4_u8;
|
||||
gUnknown_203B270->unk5 = 1;
|
||||
gUnknown_203B270->unk6 = 1;
|
||||
gUnknown_203B270->unk7 = 1;
|
||||
gUnknown_203B270->unk0 = param_1;
|
||||
switch(param_1)
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
gUnknown_203B270->unk5 = 0;
|
||||
gUnknown_203B270->unk6 = 0;
|
||||
gUnknown_203B270->unk7 = 0;
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
gUnknown_203B270->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32];
|
||||
gUnknown_203B270->isTeamLeader = gUnknown_203B270->pokeStruct->isTeamLeader;
|
||||
gUnknown_203B270->moves = moves;
|
||||
gUnknown_203B270->text = text;
|
||||
iVar8 = iVar5 = sub_801F3F8();
|
||||
four = 4;
|
||||
if (iVar8 < four) {
|
||||
iVar8 = 4;
|
||||
}
|
||||
sub_8006518(gUnknown_203B270->unk58);
|
||||
gUnknown_203B270->unk50 = param_6;
|
||||
gUnknown_203B270->unk58[param_6] = gUnknown_80DC25C;
|
||||
if (gUnknown_203B270->text != NULL) {
|
||||
gUnknown_203B270->unk54 = sub_8006544(param_6);
|
||||
gUnknown_203B270->unk58[gUnknown_203B270->unk54] = gUnknown_80DC274;
|
||||
}
|
||||
sub_8012D08(&gUnknown_203B270->unk58[gUnknown_203B270->unk50],iVar8);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B270->unk58, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B270->input,iVar5,iVar5,param_6);
|
||||
sub_8013780(&gUnknown_203B270->input,0);
|
||||
sub_801F280(1);
|
||||
return 1;
|
||||
s32 iVar5;
|
||||
s32 iVar8;
|
||||
s32 species_s32;
|
||||
u8 param_4_u8;
|
||||
s32 four;
|
||||
|
||||
species_s32 = species;
|
||||
param_4_u8 = param_4;
|
||||
gUnknown_203B270 = MemoryAlloc(sizeof(unkStruct_203B270), 8);
|
||||
gUnknown_203B270->unk4 = param_4_u8;
|
||||
gUnknown_203B270->unk5 = 1;
|
||||
gUnknown_203B270->unk6 = 1;
|
||||
gUnknown_203B270->unk7 = 1;
|
||||
gUnknown_203B270->unk0 = param_1;
|
||||
switch(param_1)
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
gUnknown_203B270->unk5 = 0;
|
||||
gUnknown_203B270->unk6 = 0;
|
||||
gUnknown_203B270->unk7 = 0;
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
gUnknown_203B270->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32];
|
||||
gUnknown_203B270->isTeamLeader = gUnknown_203B270->pokeStruct->isTeamLeader;
|
||||
gUnknown_203B270->moves = moves;
|
||||
gUnknown_203B270->text = text;
|
||||
iVar8 = iVar5 = sub_801F3F8();
|
||||
four = 4;
|
||||
if (iVar8 < four) {
|
||||
iVar8 = 4;
|
||||
}
|
||||
sub_8006518(gUnknown_203B270->unk58);
|
||||
gUnknown_203B270->unk50 = param_6;
|
||||
gUnknown_203B270->unk58[param_6] = gUnknown_80DC25C;
|
||||
if (gUnknown_203B270->text != NULL) {
|
||||
gUnknown_203B270->unk54 = sub_8006544(param_6);
|
||||
gUnknown_203B270->unk58[gUnknown_203B270->unk54] = gUnknown_80DC274;
|
||||
}
|
||||
sub_8012D08(&gUnknown_203B270->unk58[gUnknown_203B270->unk50],iVar8);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B270->unk58, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B270->input,iVar5,iVar5,param_6);
|
||||
sub_8013780(&gUnknown_203B270->input,0);
|
||||
sub_801F280(1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_801EF38(char param_1)
|
||||
{
|
||||
bool8 flag;
|
||||
s32 index;
|
||||
s32 index2;
|
||||
s32 moveIndex;
|
||||
s32 newIndex;
|
||||
struct Move *move;
|
||||
|
||||
flag = FALSE;
|
||||
if (param_1 == 0) {
|
||||
sub_8013660(&gUnknown_203B270->input);
|
||||
return 0;
|
||||
}
|
||||
switch(GetKeyPress(&gUnknown_203B270->input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case INPUT_A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
case INPUT_START_BUTTON:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
case INPUT_DPAD_DOWN:
|
||||
index = gUnknown_203B270->input.menuIndex;
|
||||
sub_8013780(&gUnknown_203B270->input, unk_FindMoveEnabledForAIAfter8_v2(gUnknown_203B270->moves, index));
|
||||
if (index != gUnknown_203B270->input.menuIndex) {
|
||||
PlayMenuSoundEffect(3);
|
||||
}
|
||||
break;
|
||||
case INPUT_DPAD_UP:
|
||||
index = gUnknown_203B270->input.menuIndex;
|
||||
sub_8013780(&gUnknown_203B270->input,unk_FindMoveEnabledForAIBefore8_v2(gUnknown_203B270->moves,index));
|
||||
if (index != gUnknown_203B270->input.menuIndex) {
|
||||
PlayMenuSoundEffect(3);
|
||||
}
|
||||
break;
|
||||
case INPUT_R_DPAD_DOWN_BUTTONS:
|
||||
if (gUnknown_203B270->unk5 == 0) break;
|
||||
moveIndex = gUnknown_203B270->input.menuIndex;
|
||||
newIndex = gUnknown_203B270->input.menuIndex = unk_SetMoveToLastInLinkedSequence8_v2(gUnknown_203B270->moves, moveIndex);
|
||||
if (moveIndex != newIndex) {
|
||||
PlayMenuSoundEffect(3);
|
||||
}
|
||||
else {
|
||||
goto _134;
|
||||
}
|
||||
sub_801F280(1);
|
||||
return 1;
|
||||
case INPUT_R_DPAD_UP_BUTTONS:
|
||||
if (gUnknown_203B270->unk5 == 0) break;
|
||||
moveIndex = gUnknown_203B270->input.menuIndex;
|
||||
newIndex = gUnknown_203B270->input.menuIndex = unk_SetMoveToFirstInLinkedSequence8_v2(gUnknown_203B270->moves,moveIndex);
|
||||
if (moveIndex != newIndex) {
|
||||
PlayMenuSoundEffect(3);
|
||||
}
|
||||
else {
|
||||
_134:
|
||||
PlayMenuSoundEffect(2);
|
||||
}
|
||||
sub_801F280(1);
|
||||
return 1;
|
||||
case INPUT_R_A_BUTTONS:
|
||||
if (gUnknown_203B270->unk6 != 0) {
|
||||
if ((gTeamInventoryRef->teamMoney > 0x95) && (sub_8093318(gUnknown_203B270->input.menuIndex,gUnknown_203B270->moves)))
|
||||
{
|
||||
TryLinkMovesAfter(gUnknown_203B270->input.menuIndex,gUnknown_203B270->moves);
|
||||
PlayMenuSoundEffect(6);
|
||||
flag = TRUE;
|
||||
if (!gUnknown_203B270->unk4) {
|
||||
gUnknown_203B270->unk4 = TRUE;
|
||||
PlaySound(0x14c);
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if (UnlinkMovesAfter(gUnknown_203B270->input.menuIndex,gUnknown_203B270->moves)) {
|
||||
PlayMenuSoundEffect(6);
|
||||
goto _ret;
|
||||
}
|
||||
else {
|
||||
PlayMenuSoundEffect(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case INPUT_SELECT_BUTTON:
|
||||
if (gUnknown_203B270->unk7 != 0) {
|
||||
if (gUnknown_203B270->isTeamLeader) {
|
||||
if (!ToggleSetMove(gUnknown_203B270->input.menuIndex,gUnknown_203B270->moves)) {
|
||||
PlayMenuSoundEffect(2);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
PlayMenuSoundEffect(6);
|
||||
goto _ret;
|
||||
}
|
||||
}
|
||||
else if (ToggleMoveEnabled(gUnknown_203B270->input.menuIndex,gUnknown_203B270->moves)) {
|
||||
PlayMenuSoundEffect(6);
|
||||
goto _ret;
|
||||
}
|
||||
else {
|
||||
PlayMenuSoundEffect(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (!flag) {
|
||||
for(index2 = 0; index2 < 8; index2++)
|
||||
{
|
||||
move = &gUnknown_203B270->moves[index2];
|
||||
if ((move->moveFlags & MOVE_FLAG_EXISTS)) {
|
||||
if ((move->moveFlags & MOVE_FLAG_SUBSEQUENT_IN_LINK_CHAIN)) {
|
||||
gUnknown_203B270->fill14[index2] = 1;
|
||||
}
|
||||
else {
|
||||
gUnknown_203B270->fill14[index2] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
AddMenuCursorSprite_(&gUnknown_203B270->input, gUnknown_203B270->fill14);
|
||||
}
|
||||
if (flag) {
|
||||
_ret:
|
||||
sub_801F280(1);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_801F194 (void)
|
||||
{
|
||||
return gUnknown_203B270->input.menuIndex;
|
||||
}
|
||||
|
||||
bool8 sub_801F1A4(void)
|
||||
{
|
||||
return gUnknown_203B270->unk4;
|
||||
}
|
||||
|
||||
void sub_801F1B0(bool8 param_1, bool8 param_2)
|
||||
{
|
||||
if(!gUnknown_203B270->unk4)
|
||||
gUnknown_203B270->unk4 = param_2;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B270->unk58, TRUE, TRUE);
|
||||
gUnknown_203B270->input.unk22 = sub_801F3F8();
|
||||
sub_8013984(&gUnknown_203B270->input);
|
||||
gUnknown_203B270->input.menuIndex = sub_8092F4C(gUnknown_203B270->moves, gUnknown_203B270->input.menuIndex);
|
||||
sub_801F280(1);
|
||||
if(param_1)
|
||||
AddMenuCursorSprite(&gUnknown_203B270->input);
|
||||
}
|
||||
|
||||
void sub_801F214(void)
|
||||
{
|
||||
if(gUnknown_203B270)
|
||||
{
|
||||
gUnknown_203B270->unk58[gUnknown_203B270->unk50] = gUnknown_80DC240;
|
||||
if(gUnknown_203B270->text)
|
||||
{
|
||||
gUnknown_203B270->unk58[gUnknown_203B270->unk54] = gUnknown_80DC240;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B270->unk58, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B270);
|
||||
gUnknown_203B270 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,72 +1,8 @@
|
||||
#include "global.h"
|
||||
#include "memory.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "pokemon.h"
|
||||
#include "code_800D090.h"
|
||||
#include "moves.h"
|
||||
#include "code_801EE10.h"
|
||||
#include "menu_input.h"
|
||||
#include "structs/subStruct_203B240.h"
|
||||
#include "sprite.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "code_801EE10_mid.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "input.h"
|
||||
|
||||
extern unkStruct_203B270 *gUnknown_203B270;
|
||||
|
||||
struct unkStruct_203B274
|
||||
{
|
||||
// size: 0x3e8
|
||||
PokemonStruct1 *pokeStruct;
|
||||
unkStruct_808E218_arg *unk4;
|
||||
unkStruct_808E218_arg unk8;
|
||||
MenuInputStruct input;
|
||||
s32 unk37C;
|
||||
UnkTextStruct2 *unk380;
|
||||
UnkTextStruct2 unk384[4];
|
||||
u8 unk3E4[4];
|
||||
};
|
||||
extern struct unkStruct_203B274 *gUnknown_203B274;
|
||||
|
||||
struct unkStruct_203B278
|
||||
{
|
||||
s32 state;
|
||||
u16 *moveIDs;
|
||||
u16 unk8;
|
||||
u16 fillA;
|
||||
s32 unkC;
|
||||
s32 unk10;
|
||||
struct subStruct_203B240 *unk14[4];
|
||||
u32 unk24;
|
||||
MenuInputStruct unk28;
|
||||
u32 unk5C;
|
||||
UnkTextStruct2 *unk60;
|
||||
UnkTextStruct2 unk64[4];
|
||||
u8 unkC4[4];
|
||||
MenuInputStructSub unkC8;
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B278 *gUnknown_203B278;
|
||||
|
||||
extern UnkTextStruct2 gUnknown_80DC2C4;
|
||||
extern UnkTextStruct2 gUnknown_80DC2AC;
|
||||
extern UnkTextStruct2 gUnknown_80DC2F8;
|
||||
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
extern u8 gUnknown_80DC310[];
|
||||
extern u8 gUnknown_80DC2DC[];
|
||||
|
||||
extern void sub_801F918(s32);
|
||||
extern void sub_801FA58(void);
|
||||
extern void sub_801FAD4(void);
|
||||
extern void sub_801F930(void);
|
||||
extern void sub_801F9A4(void);
|
||||
|
||||
u32 sub_801F7E4(void);
|
||||
void sub_801F690(void);
|
||||
|
||||
s32 sub_801F3F8(void)
|
||||
{
|
||||
Move *move;
|
||||
@@ -83,355 +19,3 @@ s32 sub_801F3F8(void)
|
||||
}
|
||||
return counter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// THIS IS A NEW FILE
|
||||
|
||||
bool8 sub_801F428(s16 index, s32 param_2)
|
||||
{
|
||||
s32 index_s32 = index;
|
||||
gUnknown_203B274 = MemoryAlloc(sizeof(struct unkStruct_203B274), 0x8);
|
||||
gUnknown_203B274->pokeStruct = &gRecruitedPokemonRef->pokemon[index_s32];
|
||||
gUnknown_203B274->unk4 = &gUnknown_203B274->unk8;
|
||||
gUnknown_203B274->unk37C = param_2;
|
||||
gUnknown_203B274->unk380 = &gUnknown_203B274->unk384[gUnknown_203B274->unk37C];
|
||||
sub_8006518(gUnknown_203B274->unk384);
|
||||
gUnknown_203B274->unk384[gUnknown_203B274->unk37C] = gUnknown_80DC2C4;
|
||||
gUnknown_203B274->unk380->unk14 = gUnknown_203B274->unk3E4;
|
||||
gUnknown_203B274->unk3E4[0] = 1;
|
||||
gUnknown_203B274->unk3E4[1] = 0;
|
||||
gUnknown_203B274->unk3E4[2] = 0xC;
|
||||
gUnknown_203B274->unk3E4[3] = 0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B274->unk384, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B274->input, sub_801F7E4(), 4, param_2);
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 sub_801F520(u8 param_1)
|
||||
{
|
||||
if (param_1 == 0) {
|
||||
sub_8013660(&gUnknown_203B274->input);
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
switch(GetKeyPress(&gUnknown_203B274->input))
|
||||
{
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
case 4:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (sub_80138B8(&gUnknown_203B274->input,1) != 0) {
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u16 sub_801F5B4(void)
|
||||
{
|
||||
return gUnknown_203B274->unk4->unk0[gUnknown_203B274->input.unk1E * gUnknown_203B274->input.unk1C + gUnknown_203B274->input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_801F5F0(bool8 r0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B274->unk384, FALSE, FALSE);
|
||||
sub_8013984(&gUnknown_203B274->input);
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
if(r0)
|
||||
AddMenuCursorSprite(&gUnknown_203B274->input);
|
||||
}
|
||||
|
||||
void sub_801F63C(void)
|
||||
{
|
||||
if(gUnknown_203B274 != NULL)
|
||||
{
|
||||
gUnknown_203B274->unk384[gUnknown_203B274->unk37C] = gUnknown_80DC2AC;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B274->unk384, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B274);
|
||||
gUnknown_203B274 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
NAKED // sub_80095E4 memes
|
||||
void sub_801F690(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,r5,lr}\n"
|
||||
"\tldr r5, _0801F6F4\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldr r1, _0801F6F8\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tldrsh r0, [r0, r2]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r3, [r5]\n"
|
||||
"\tmovs r1, 0xDF\n"
|
||||
"\tlsls r1, 2\n"
|
||||
"\tadds r4, r3, r1\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tlsls r1, r2, 1\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r3, r1\n"
|
||||
"\tldr r2, _0801F6FC\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tasrs r2, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r4]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r3, r0\n"
|
||||
"\tadds r2, 0x2\n"
|
||||
"\tmovs r0, 0xE5\n"
|
||||
"\tlsls r0, 2\n"
|
||||
"\tadds r3, r0\n"
|
||||
"\tstrh r2, [r3]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tmovs r1, 0xE1\n"
|
||||
"\tlsls r1, 2\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4,r5}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0801F6F4: .4byte gUnknown_203B274\n"
|
||||
"_0801F6F8: .4byte 0x00000362\n"
|
||||
"_0801F6FC: .4byte 0x00000392");
|
||||
}
|
||||
|
||||
void sub_801F700(void)
|
||||
{
|
||||
u32 y;
|
||||
int index;
|
||||
u8 buffer2 [48];
|
||||
u8 buffer1 [128];
|
||||
|
||||
sub_8008C54(gUnknown_203B274->unk37C);
|
||||
sub_80073B8(gUnknown_203B274->unk37C);
|
||||
sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->input.unk1E + 1,gUnknown_203B274->input.unk20); // Moves Page: %d/%d
|
||||
xxx_call_draw_string(0x10,0,buffer1,gUnknown_203B274->unk37C,0);
|
||||
for(index = 0; index < gUnknown_203B274->input.unk1A; index++)
|
||||
{
|
||||
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->input.unk1E * gUnknown_203B274->input.unk1C + index]);
|
||||
y = sub_8013800(&gUnknown_203B274->input, index);
|
||||
xxx_call_draw_string(8,y,buffer2,gUnknown_203B274->unk37C,0);
|
||||
}
|
||||
sub_80073E0(gUnknown_203B274->unk37C);
|
||||
}
|
||||
|
||||
u32 sub_801F7E4(void)
|
||||
{
|
||||
sub_808E218(gUnknown_203B274->unk4, gUnknown_203B274->pokeStruct);
|
||||
return gUnknown_203B274->unk4->count;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// THIS IS A NEW FILE
|
||||
|
||||
|
||||
|
||||
|
||||
bool8 sub_801F808(u16 *moveIDs)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
ResetSprites(TRUE);
|
||||
gUnknown_203B278 = MemoryAlloc(sizeof(struct unkStruct_203B278), 8);
|
||||
gUnknown_203B278->unk5C = 0;
|
||||
gUnknown_203B278->unk60 = gUnknown_203B278->unk64;
|
||||
sub_80140B4(gUnknown_203B278->unk64);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B278->unk64, TRUE, TRUE);
|
||||
gUnknown_203B278->moveIDs = moveIDs;
|
||||
|
||||
for(index = 4; index > 1; index--)
|
||||
{
|
||||
if(gUnknown_203B278->moveIDs[index - 1] != 0) break;
|
||||
}
|
||||
sub_8013818(&gUnknown_203B278->unk28,index,1,gUnknown_203B278->unk5C);
|
||||
sub_801317C(&gUnknown_203B278->unkC8);
|
||||
sub_801F918(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_801F890(void)
|
||||
{
|
||||
switch (gUnknown_203B278->state) {
|
||||
case 0:
|
||||
sub_801FA58();
|
||||
break;
|
||||
case 1:
|
||||
sub_801FAD4();
|
||||
break;
|
||||
case 3:
|
||||
return 3;
|
||||
default:
|
||||
case 2:
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_801F8D0(void)
|
||||
{
|
||||
if(gUnknown_203B278)
|
||||
{
|
||||
gUnknown_203B278->unk64[gUnknown_203B278->unk5C] = gUnknown_80DC2F8;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B278->unk64, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B278);
|
||||
gUnknown_203B278 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801F918(s32 newState)
|
||||
{
|
||||
gUnknown_203B278->state = newState;
|
||||
sub_801F930();
|
||||
sub_801F9A4();
|
||||
}
|
||||
|
||||
void sub_801F930(void)
|
||||
{
|
||||
sub_80140B4(gUnknown_203B278->unk64);
|
||||
switch(gUnknown_203B278->state)
|
||||
{
|
||||
case 0:
|
||||
gUnknown_203B278->unk60->unk14 = gUnknown_203B278->unkC4;
|
||||
gUnknown_203B278->unkC4[0] = gUnknown_203B278->unk28.unk20;
|
||||
gUnknown_203B278->unkC4[1] = gUnknown_203B278->unk28.unk1E;
|
||||
gUnknown_203B278->unkC4[2] = 0x10;
|
||||
gUnknown_203B278->unkC4[3] = 0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B278->unk64, TRUE, TRUE);
|
||||
break;
|
||||
case 1:
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B278->unk64, TRUE, TRUE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801F9A4(void)
|
||||
{
|
||||
u8 **name;
|
||||
|
||||
switch (gUnknown_203B278->state) {
|
||||
case 0:
|
||||
sub_8008C54(gUnknown_203B278->unk5C);
|
||||
gUnknown_203B278->unk8 = gUnknown_203B278->moveIDs[gUnknown_203B278->unk28.unk1E];
|
||||
gUnknown_203B278->unk10 = unk_MoveIDPrintMoveDescription(gUnknown_203B278->unk28.unk1E,gUnknown_203B278->unk8,gUnknown_203B278->unk5C,gUnknown_203B278->unk14);
|
||||
gUnknown_203B278->unk24 = 0;
|
||||
break;
|
||||
case 1:
|
||||
sub_8008C54(gUnknown_203B278->unk5C);
|
||||
sub_80073B8(gUnknown_203B278->unk5C);
|
||||
name = &(gUnknown_203B278->unk14[gUnknown_203B278->unkC]->pokeName);
|
||||
strcpy(gAvailablePokemonNames, *name);
|
||||
xxx_format_and_draw(0x10,0,gUnknown_80DC310,gUnknown_203B278->unk5C,0); // $m0
|
||||
xxx_format_and_draw(4,0x10,gUnknown_203B278->unk14[gUnknown_203B278->unkC]->unk4,gUnknown_203B278->unk5C,0);
|
||||
sub_80073E0(gUnknown_203B278->unk5C);
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801FA58(void)
|
||||
{
|
||||
if(gUnknown_203B278->unk10 != 0)
|
||||
{
|
||||
if(gUnknown_203B278->unk24 & 8)
|
||||
{
|
||||
sub_8013F84();
|
||||
}
|
||||
gUnknown_203B278->unk24++;
|
||||
}
|
||||
switch(sub_8012A64(&gUnknown_203B278->unkC8, gUnknown_203B278->unk5C))
|
||||
{
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
if(gUnknown_203B278->unk10 != 0)
|
||||
{
|
||||
gUnknown_203B278->unkC = 0;
|
||||
sub_801F918(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_801F918(3);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
sub_801F918(2);
|
||||
break;
|
||||
default:
|
||||
if(sub_8013938(&gUnknown_203B278->unk28))
|
||||
{
|
||||
sub_801F918(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801FAD4(void)
|
||||
{
|
||||
if(gUnknown_203B278->unkC < gUnknown_203B278->unk10 - 1)
|
||||
{
|
||||
if(gUnknown_203B278->unk24 & 8)
|
||||
{
|
||||
sub_8013F84();
|
||||
}
|
||||
gUnknown_203B278->unk24++;
|
||||
}
|
||||
switch(sub_8012A64(&gUnknown_203B278->unkC8, gUnknown_203B278->unk5C))
|
||||
{
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
gUnknown_203B278->unkC++;
|
||||
if(gUnknown_203B278->unkC < gUnknown_203B278->unk10)
|
||||
{
|
||||
sub_801F918(1);
|
||||
}
|
||||
else {
|
||||
sub_801F918(0);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
sub_801F918(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
218
src/code_801F428.c
Normal file
218
src/code_801F428.c
Normal file
@@ -0,0 +1,218 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "code_800D090.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "moves.h"
|
||||
#include "pokemon.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
|
||||
struct unkStruct_203B274
|
||||
{
|
||||
// size: 0x3e8
|
||||
PokemonStruct1 *pokeStruct;
|
||||
unkStruct_808E218_arg *unk4;
|
||||
unkStruct_808E218_arg unk8;
|
||||
MenuInputStruct input;
|
||||
s32 unk37C;
|
||||
UnkTextStruct2 *unk380;
|
||||
UnkTextStruct2 unk384[4];
|
||||
u8 unk3E4[4];
|
||||
};
|
||||
extern struct unkStruct_203B274 *gUnknown_203B274;
|
||||
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
|
||||
static const UnkTextStruct2 sUnknown_80DC2AC = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
0, 0,
|
||||
0, 0,
|
||||
0, 0,
|
||||
NULL
|
||||
};
|
||||
static const UnkTextStruct2 sUnknown_80DC2C4 = {
|
||||
0, 0, 0, 0,
|
||||
6,
|
||||
2, 2,
|
||||
0xF, 4,
|
||||
6, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80DC2DC[] = _("Moves Page: %d/%d ");
|
||||
|
||||
u32 sub_801F7E4(void);
|
||||
void sub_801F690(void);
|
||||
void sub_801F700(void);
|
||||
|
||||
|
||||
bool8 sub_801F428(s16 index, s32 param_2)
|
||||
{
|
||||
s32 index_s32 = index;
|
||||
gUnknown_203B274 = MemoryAlloc(sizeof(struct unkStruct_203B274), 0x8);
|
||||
gUnknown_203B274->pokeStruct = &gRecruitedPokemonRef->pokemon[index_s32];
|
||||
gUnknown_203B274->unk4 = &gUnknown_203B274->unk8;
|
||||
gUnknown_203B274->unk37C = param_2;
|
||||
gUnknown_203B274->unk380 = &gUnknown_203B274->unk384[gUnknown_203B274->unk37C];
|
||||
sub_8006518(gUnknown_203B274->unk384);
|
||||
gUnknown_203B274->unk384[gUnknown_203B274->unk37C] = sUnknown_80DC2C4;
|
||||
gUnknown_203B274->unk380->unk14 = gUnknown_203B274->unk3E4;
|
||||
gUnknown_203B274->unk3E4[0] = 1;
|
||||
gUnknown_203B274->unk3E4[1] = 0;
|
||||
gUnknown_203B274->unk3E4[2] = 0xC;
|
||||
gUnknown_203B274->unk3E4[3] = 0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B274->unk384, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B274->input, sub_801F7E4(), 4, param_2);
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 sub_801F520(u8 param_1)
|
||||
{
|
||||
if (param_1 == 0) {
|
||||
sub_8013660(&gUnknown_203B274->input);
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
switch(GetKeyPress(&gUnknown_203B274->input))
|
||||
{
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
case 4:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (sub_80138B8(&gUnknown_203B274->input,1) != 0) {
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u16 sub_801F5B4(void)
|
||||
{
|
||||
return gUnknown_203B274->unk4->unk0[gUnknown_203B274->input.unk1E * gUnknown_203B274->input.unk1C + gUnknown_203B274->input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_801F5F0(bool8 r0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B274->unk384, FALSE, FALSE);
|
||||
sub_8013984(&gUnknown_203B274->input);
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
if(r0)
|
||||
AddMenuCursorSprite(&gUnknown_203B274->input);
|
||||
}
|
||||
|
||||
void sub_801F63C(void)
|
||||
{
|
||||
if(gUnknown_203B274 != NULL)
|
||||
{
|
||||
gUnknown_203B274->unk384[gUnknown_203B274->unk37C] = sUnknown_80DC2AC;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B274->unk384, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B274);
|
||||
gUnknown_203B274 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
NAKED // sub_80095E4 memes
|
||||
void sub_801F690(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,r5,lr}\n"
|
||||
"\tldr r5, _0801F6F4\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldr r1, _0801F6F8\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tldrsh r0, [r0, r2]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r3, [r5]\n"
|
||||
"\tmovs r1, 0xDF\n"
|
||||
"\tlsls r1, 2\n"
|
||||
"\tadds r4, r3, r1\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tlsls r1, r2, 1\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r3, r1\n"
|
||||
"\tldr r2, _0801F6FC\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tasrs r2, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r4]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r3, r0\n"
|
||||
"\tadds r2, 0x2\n"
|
||||
"\tmovs r0, 0xE5\n"
|
||||
"\tlsls r0, 2\n"
|
||||
"\tadds r3, r0\n"
|
||||
"\tstrh r2, [r3]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tmovs r1, 0xE1\n"
|
||||
"\tlsls r1, 2\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4,r5}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0801F6F4: .4byte gUnknown_203B274\n"
|
||||
"_0801F6F8: .4byte 0x00000362\n"
|
||||
"_0801F6FC: .4byte 0x00000392");
|
||||
}
|
||||
|
||||
void sub_801F700(void)
|
||||
{
|
||||
u32 y;
|
||||
int index;
|
||||
u8 buffer2 [48];
|
||||
u8 buffer1 [128];
|
||||
|
||||
sub_8008C54(gUnknown_203B274->unk37C);
|
||||
sub_80073B8(gUnknown_203B274->unk37C);
|
||||
sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->input.unk1E + 1,gUnknown_203B274->input.unk20); // Moves Page: %d/%d
|
||||
xxx_call_draw_string(0x10,0,buffer1,gUnknown_203B274->unk37C,0);
|
||||
for(index = 0; index < gUnknown_203B274->input.unk1A; index++)
|
||||
{
|
||||
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->input.unk1E * gUnknown_203B274->input.unk1C + index]);
|
||||
y = sub_8013800(&gUnknown_203B274->input, index);
|
||||
xxx_call_draw_string(8,y,buffer2,gUnknown_203B274->unk37C,0);
|
||||
}
|
||||
sub_80073E0(gUnknown_203B274->unk37C);
|
||||
}
|
||||
|
||||
u32 sub_801F7E4(void)
|
||||
{
|
||||
sub_808E218(gUnknown_203B274->unk4, gUnknown_203B274->pokeStruct);
|
||||
return gUnknown_203B274->unk4->count;
|
||||
}
|
||||
|
||||
227
src/code_801F808.c
Normal file
227
src/code_801F808.c
Normal file
@@ -0,0 +1,227 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "code_80130A8.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "moves.h"
|
||||
#include "sprite.h"
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
|
||||
struct unkStruct_203B278
|
||||
{
|
||||
s32 state;
|
||||
u16 *moveIDs;
|
||||
u16 unk8;
|
||||
u16 fillA;
|
||||
s32 unkC;
|
||||
s32 unk10;
|
||||
struct subStruct_203B240 *unk14[4];
|
||||
u32 unk24;
|
||||
MenuInputStruct unk28;
|
||||
u32 unk5C;
|
||||
UnkTextStruct2 *unk60;
|
||||
UnkTextStruct2 unk64[4];
|
||||
u8 unkC4[4];
|
||||
MenuInputStructSub unkC8;
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B278 *gUnknown_203B278;
|
||||
|
||||
static const UnkTextStruct2 sUnknown_80DC2F8 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
0, 0,
|
||||
0, 0,
|
||||
0, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
const u8 gUnknown_80DC310[] = _("{ARG_POKEMON_0}");
|
||||
|
||||
extern void sub_801F918(s32);
|
||||
extern void sub_801FA58(void);
|
||||
extern void sub_801FAD4(void);
|
||||
extern void sub_801F930(void);
|
||||
extern void sub_801F9A4(void);
|
||||
|
||||
bool8 sub_801F808(u16 *moveIDs)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
ResetSprites(TRUE);
|
||||
gUnknown_203B278 = MemoryAlloc(sizeof(struct unkStruct_203B278), 8);
|
||||
gUnknown_203B278->unk5C = 0;
|
||||
gUnknown_203B278->unk60 = gUnknown_203B278->unk64;
|
||||
sub_80140B4(gUnknown_203B278->unk64);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B278->unk64, TRUE, TRUE);
|
||||
gUnknown_203B278->moveIDs = moveIDs;
|
||||
|
||||
for(index = 4; index > 1; index--)
|
||||
{
|
||||
if(gUnknown_203B278->moveIDs[index - 1] != 0) break;
|
||||
}
|
||||
sub_8013818(&gUnknown_203B278->unk28,index,1,gUnknown_203B278->unk5C);
|
||||
sub_801317C(&gUnknown_203B278->unkC8);
|
||||
sub_801F918(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_801F890(void)
|
||||
{
|
||||
switch (gUnknown_203B278->state) {
|
||||
case 0:
|
||||
sub_801FA58();
|
||||
break;
|
||||
case 1:
|
||||
sub_801FAD4();
|
||||
break;
|
||||
case 3:
|
||||
return 3;
|
||||
default:
|
||||
case 2:
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_801F8D0(void)
|
||||
{
|
||||
if(gUnknown_203B278)
|
||||
{
|
||||
gUnknown_203B278->unk64[gUnknown_203B278->unk5C] = sUnknown_80DC2F8;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B278->unk64, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B278);
|
||||
gUnknown_203B278 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801F918(s32 newState)
|
||||
{
|
||||
gUnknown_203B278->state = newState;
|
||||
sub_801F930();
|
||||
sub_801F9A4();
|
||||
}
|
||||
|
||||
void sub_801F930(void)
|
||||
{
|
||||
sub_80140B4(gUnknown_203B278->unk64);
|
||||
switch(gUnknown_203B278->state)
|
||||
{
|
||||
case 0:
|
||||
gUnknown_203B278->unk60->unk14 = gUnknown_203B278->unkC4;
|
||||
gUnknown_203B278->unkC4[0] = gUnknown_203B278->unk28.unk20;
|
||||
gUnknown_203B278->unkC4[1] = gUnknown_203B278->unk28.unk1E;
|
||||
gUnknown_203B278->unkC4[2] = 0x10;
|
||||
gUnknown_203B278->unkC4[3] = 0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B278->unk64, TRUE, TRUE);
|
||||
break;
|
||||
case 1:
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B278->unk64, TRUE, TRUE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801F9A4(void)
|
||||
{
|
||||
u8 **name;
|
||||
|
||||
switch (gUnknown_203B278->state) {
|
||||
case 0:
|
||||
sub_8008C54(gUnknown_203B278->unk5C);
|
||||
gUnknown_203B278->unk8 = gUnknown_203B278->moveIDs[gUnknown_203B278->unk28.unk1E];
|
||||
gUnknown_203B278->unk10 = unk_MoveIDPrintMoveDescription(gUnknown_203B278->unk28.unk1E,gUnknown_203B278->unk8,gUnknown_203B278->unk5C,gUnknown_203B278->unk14);
|
||||
gUnknown_203B278->unk24 = 0;
|
||||
break;
|
||||
case 1:
|
||||
sub_8008C54(gUnknown_203B278->unk5C);
|
||||
sub_80073B8(gUnknown_203B278->unk5C);
|
||||
name = &(gUnknown_203B278->unk14[gUnknown_203B278->unkC]->pokeName);
|
||||
strcpy(gAvailablePokemonNames, *name);
|
||||
xxx_format_and_draw(0x10,0,gUnknown_80DC310,gUnknown_203B278->unk5C,0); // $m0
|
||||
xxx_format_and_draw(4,0x10,gUnknown_203B278->unk14[gUnknown_203B278->unkC]->unk4,gUnknown_203B278->unk5C,0);
|
||||
sub_80073E0(gUnknown_203B278->unk5C);
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801FA58(void)
|
||||
{
|
||||
if(gUnknown_203B278->unk10 != 0)
|
||||
{
|
||||
if(gUnknown_203B278->unk24 & 8)
|
||||
{
|
||||
sub_8013F84();
|
||||
}
|
||||
gUnknown_203B278->unk24++;
|
||||
}
|
||||
switch(sub_8012A64(&gUnknown_203B278->unkC8, gUnknown_203B278->unk5C))
|
||||
{
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
if(gUnknown_203B278->unk10 != 0)
|
||||
{
|
||||
gUnknown_203B278->unkC = 0;
|
||||
sub_801F918(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_801F918(3);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
sub_801F918(2);
|
||||
break;
|
||||
default:
|
||||
if(sub_8013938(&gUnknown_203B278->unk28))
|
||||
{
|
||||
sub_801F918(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801FAD4(void)
|
||||
{
|
||||
if(gUnknown_203B278->unkC < gUnknown_203B278->unk10 - 1)
|
||||
{
|
||||
if(gUnknown_203B278->unk24 & 8)
|
||||
{
|
||||
sub_8013F84();
|
||||
}
|
||||
gUnknown_203B278->unk24++;
|
||||
}
|
||||
switch(sub_8012A64(&gUnknown_203B278->unkC8, gUnknown_203B278->unk5C))
|
||||
{
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
gUnknown_203B278->unkC++;
|
||||
if(gUnknown_203B278->unkC < gUnknown_203B278->unk10)
|
||||
{
|
||||
sub_801F918(1);
|
||||
}
|
||||
else {
|
||||
sub_801F918(0);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
sub_801F918(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ extern u8 gAvailablePokemonNames[];
|
||||
extern u8 gUnknown_202DE58[];
|
||||
|
||||
extern s16 gTypeGummiIQBoost[NUM_TYPES][NUMBER_OF_GUMMIS];
|
||||
extern s16 gUnknown_810A808[NUM_TYPES][NUMBER_OF_GUMMIS];
|
||||
|
||||
extern u8 *gUnknown_80F89F4[];
|
||||
extern u8 *gUnknown_80FB580[];
|
||||
@@ -66,6 +65,8 @@ extern u8 *gUnknown_80FECA0[];
|
||||
extern u8 *gUnknown_80FE3E8[];
|
||||
extern u8 *gUnknown_80F9BD8[];
|
||||
|
||||
#include "data/code_8048480.h"
|
||||
|
||||
extern void sub_80421C0(Entity *r0, u16 r1);
|
||||
extern void sub_8078B5C(Entity *, Entity *, u32, u32, u32);
|
||||
extern u8 sub_806A538(s32);
|
||||
|
||||
1466
src/code_805A120.c
1466
src/code_805A120.c
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "structs/str_position.h"
|
||||
|
||||
extern void sub_8082FE0(u32, void *, u32);
|
||||
extern void sub_8082FA8(void *, void *, u32);
|
||||
@@ -76,10 +77,10 @@ void sub_80830B4(u32 *param_1, u8 param_2)
|
||||
sub_8082FA8(param_1,&local_8,1);
|
||||
}
|
||||
|
||||
void sub_80830D8(u32 *param_1, u16 *param_2)
|
||||
void SavePosition(u32 *param_1, Position *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2[0], 1);
|
||||
sub_8082FA8(param_1, ¶m_2[1], 1);
|
||||
sub_8082FA8(param_1, ¶m_2->x, 1);
|
||||
sub_8082FA8(param_1, ¶m_2->y, 1);
|
||||
}
|
||||
|
||||
void sub_80830F8(u32 *param_1, u32 *param_2)
|
||||
@@ -96,9 +97,9 @@ void sub_808312C(u32 *param_1, u16 *param_2)
|
||||
sub_8082FA8(param_1, ¶m_2[1], 1);
|
||||
}
|
||||
|
||||
void sub_808314C(u32 *param_1, u32 *param_2, u32 param_3)
|
||||
void SaveSpeedCounters(u32 *param_1, u32 *speedCounters, u32 numCounters)
|
||||
{
|
||||
sub_8082FA8(param_1, param_2, param_3);
|
||||
sub_8082FA8(param_1, speedCounters, numCounters);
|
||||
}
|
||||
|
||||
u16 sub_8083158(u32 param_1)
|
||||
|
||||
@@ -90,7 +90,7 @@ bool8 ValidateWonderMail(WonderMail *data)
|
||||
if(data->unk2 > 9)
|
||||
return FALSE;
|
||||
|
||||
if(sub_809095C(data->unk4.dungeon.id))
|
||||
if(IsNotValidDungeon(data->unk4.dungeon.id))
|
||||
return FALSE;
|
||||
if(data->unk4.dungeon.floor >= GetDungeonFloorCount(data->unk4.dungeon.id))
|
||||
return FALSE;
|
||||
|
||||
@@ -15,7 +15,7 @@ struct unkStruct_3001B64_sub
|
||||
u32 unk8;
|
||||
u32 unkC;
|
||||
u32 unk10;
|
||||
/* 0x14 */ u32 faceData;
|
||||
/* 0x14 */ u8 *faceData;
|
||||
u32 fill18;
|
||||
u8 unk1C;
|
||||
u8 fill1D[0x20 - 0x1D];
|
||||
@@ -237,29 +237,32 @@ void sub_809A7EC(void)
|
||||
}
|
||||
}
|
||||
|
||||
// https://decomp.me/scratch/4MpWc (96.23% matching - Seth)
|
||||
// void sub_809A83C(s16 index)
|
||||
// {
|
||||
// struct unkStruct_3001B64_sub *temp;
|
||||
//
|
||||
// temp = &gUnknown_3001B64->unk43C[index];
|
||||
//
|
||||
// temp->unk0 = -1;
|
||||
// temp->speciesID = MONSTER_NONE;
|
||||
// temp->unk4 = 0;
|
||||
// temp->unk5 = 0;
|
||||
// temp->unk6 = -1;
|
||||
// temp->unk7 = 0;
|
||||
// temp->unk8 = 0;
|
||||
// temp->unkC = 0;
|
||||
// temp->unk10 = 0;
|
||||
// temp->faceData = NULL;
|
||||
// temp->unk1C = 0;
|
||||
// strcpy(gAvailablePokemonNames + (index * 0x50), gInvalidityText);
|
||||
// strcpy(gPlayerName + (index * 0x50), gInvalidityText);
|
||||
// if(temp->faceFile)
|
||||
// {
|
||||
// CloseFile(temp->faceFile);
|
||||
// temp->faceFile = NULL;
|
||||
// }
|
||||
// }
|
||||
static inline struct unkStruct_3001B64_sub *sub_809A83C_inline(s16 p, struct unkStruct_3001B64 **thing) {
|
||||
return &thing[0]->unk43C[p];
|
||||
}
|
||||
|
||||
void sub_809A83C(s16 param_1)
|
||||
{
|
||||
struct unkStruct_3001B64_sub *temp;
|
||||
|
||||
temp = sub_809A83C_inline(param_1, &gUnknown_3001B64);
|
||||
|
||||
temp->unk0 = -1;
|
||||
temp->speciesID = 0;
|
||||
temp->unk4 = 0;
|
||||
temp->unk5 = 0;
|
||||
temp->unk6 = -1;
|
||||
temp->unk7 = 0;
|
||||
temp->unk8 = 0;
|
||||
temp->unkC = 0;
|
||||
temp->unk10 = 0;
|
||||
temp->faceData = NULL;
|
||||
temp->unk1C = 0;
|
||||
strcpy(gAvailablePokemonNames + (param_1 * 0x50), gInvalidityText);
|
||||
strcpy(gPlayerName + (param_1 * 0x50), gInvalidityText);
|
||||
if(temp->faceFile)
|
||||
{
|
||||
CloseFile(temp->faceFile);
|
||||
temp->faceFile = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
21
src/data/code_8048480.h
Normal file
21
src/data/code_8048480.h
Normal file
@@ -0,0 +1,21 @@
|
||||
const s16 gUnknown_810A808[NUM_TYPES][NUMBER_OF_GUMMIS] =
|
||||
{
|
||||
[TYPE_NONE] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
|
||||
[TYPE_NORMAL] = {0x00, 0x3c, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1e, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x05, 0x19, 0x19, 0x19},
|
||||
[TYPE_FIRE] = {0x00, 0x19, 0x3c, 0x1e, 0x14, 0x19, 0x14, 0x19, 0x19, 0x1e, 0x19, 0x19, 0x14, 0x1e, 0x19, 0x19, 0x19, 0x14},
|
||||
[TYPE_WATER] = {0x00, 0x19, 0x14, 0x3c, 0x1e, 0x1e, 0x14, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x14},
|
||||
[TYPE_GRASS] = {0x00, 0x19, 0x1e, 0x14, 0x3c, 0x14, 0x1e, 0x19, 0x1e, 0x14, 0x1e, 0x19, 0x1e, 0x19, 0x19, 0x19, 0x19, 0x19},
|
||||
[TYPE_ELECTRIC] = {0x00, 0x19, 0x19, 0x19, 0x19, 0x3c, 0x19, 0x19, 0x19, 0x1e, 0x14, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x14},
|
||||
[TYPE_ICE] = {0x00, 0x19, 0x1e, 0x19, 0x19, 0x19, 0x3c, 0x1e, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1e, 0x19, 0x19, 0x19, 0x1e},
|
||||
[TYPE_FIGHTING] = {0x00, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x3c, 0x19, 0x19, 0x1e, 0x1e, 0x14, 0x14, 0x19, 0x19, 0x14, 0x19},
|
||||
[TYPE_POISON] = {0x00, 0x19, 0x19, 0x19, 0x14, 0x19, 0x19, 0x14, 0x3c, 0x1e, 0x19, 0x1e, 0x14, 0x19, 0x19, 0x19, 0x19, 0x19},
|
||||
[TYPE_GROUND] = {0x00, 0x19, 0x19, 0x1e, 0x1e, 0x05, 0x1e, 0x19, 0x14, 0x3c, 0x19, 0x19, 0x19, 0x14, 0x19, 0x19, 0x19, 0x19},
|
||||
[TYPE_FLYING] = {0x00, 0x19, 0x19, 0x19, 0x14, 0x1e, 0x1e, 0x14, 0x19, 0x05, 0x3c, 0x19, 0x14, 0x1e, 0x19, 0x19, 0x19, 0x19},
|
||||
[TYPE_PSYCHIC] = {0x00, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x14, 0x19, 0x19, 0x19, 0x3c, 0x1e, 0x19, 0x1e, 0x19, 0x1e, 0x19},
|
||||
[TYPE_BUG] = {0x00, 0x19, 0x1e, 0x19, 0x14, 0x19, 0x19, 0x14, 0x19, 0x14, 0x1e, 0x19, 0x3c, 0x1e, 0x19, 0x19, 0x19, 0x19},
|
||||
[TYPE_ROCK] = {0x00, 0x14, 0x14, 0x1e, 0x1e, 0x19, 0x19, 0x1e, 0x14, 0x1e, 0x14, 0x19, 0x19, 0x3c, 0x19, 0x19, 0x19, 0x1e},
|
||||
[TYPE_GHOST] = {0x00, 0x05, 0x19, 0x19, 0x19, 0x19, 0x19, 0x05, 0x14, 0x19, 0x19, 0x1e, 0x14, 0x19, 0x3c, 0x19, 0x1e, 0x19},
|
||||
[TYPE_DRAGON] = {0x00, 0x19, 0x14, 0x14, 0x14, 0x14, 0x1e, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x3c, 0x19, 0x19},
|
||||
[TYPE_DARK] = {0x00, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1e, 0x19, 0x19, 0x19, 0x05, 0x1e, 0x19, 0x14, 0x19, 0x3c, 0x19},
|
||||
[TYPE_STEEL] = {0x00, 0x14, 0x1e, 0x19, 0x14, 0x19, 0x14, 0x1e, 0x05, 0x1e, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x3c},
|
||||
};
|
||||
36
src/data/items.h
Normal file
36
src/data/items.h
Normal file
@@ -0,0 +1,36 @@
|
||||
// LUT for money item stack size -> money amount
|
||||
const s32 gUnknown_810A3F0[100] = {
|
||||
4, 6, 10, 14, 22, 26, 34, 38, 46, 58,
|
||||
62, 74, 82, 86, 94, 106, 118, 122, 134, 142,
|
||||
146, 158, 166, 178, 194, 202, 206, 214, 218, 226,
|
||||
254, 262, 274, 278, 298, 302, 314, 326, 334, 346,
|
||||
358, 362, 382, 386, 394, 398, 422, 446, 454, 458,
|
||||
466, 478, 482, 502, 514, 526, 538, 542, 554, 562,
|
||||
566, 586, 614, 622, 626, 634, 662, 674, 694, 698,
|
||||
706, 718, 734, 746, 758, 768, 778, 794, 802, 818,
|
||||
838, 842, 862, 866, 878, 886, 898, 914, 922, 926,
|
||||
934, 958, 974, 982, 998, 1000, 1100, 1300, 1500, 20000};
|
||||
|
||||
|
||||
const s16 gTypeGummiIQBoost[NUM_TYPES][NUMBER_OF_GUMMIS] =
|
||||
{
|
||||
[TYPE_NONE] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
|
||||
[TYPE_NORMAL] = {0x00, 0x07, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03},
|
||||
[TYPE_FIRE] = {0x00, 0x03, 0x07, 0x04, 0x02, 0x03, 0x02, 0x03, 0x03, 0x04, 0x03, 0x03, 0x02, 0x04, 0x03, 0x03, 0x03, 0x02},
|
||||
[TYPE_WATER] = {0x00, 0x03, 0x02, 0x07, 0x04, 0x04, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02},
|
||||
[TYPE_GRASS] = {0x00, 0x03, 0x04, 0x02, 0x07, 0x02, 0x04, 0x03, 0x04, 0x02, 0x04, 0x03, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03},
|
||||
[TYPE_ELECTRIC] = {0x00, 0x03, 0x03, 0x03, 0x03, 0x07, 0x03, 0x03, 0x03, 0x04, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02},
|
||||
[TYPE_ICE] = {0x00, 0x03, 0x04, 0x03, 0x03, 0x03, 0x07, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x03, 0x04},
|
||||
[TYPE_FIGHTING] = {0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x03, 0x03, 0x04, 0x04, 0x02, 0x02, 0x03, 0x03, 0x02, 0x03},
|
||||
[TYPE_POISON] = {0x00, 0x03, 0x03, 0x03, 0x02, 0x03, 0x03, 0x02, 0x07, 0x04, 0x03, 0x04, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03},
|
||||
[TYPE_GROUND] = {0x00, 0x03, 0x03, 0x04, 0x04, 0x01, 0x04, 0x03, 0x02, 0x07, 0x03, 0x03, 0x03, 0x02, 0x03, 0x03, 0x03, 0x03},
|
||||
[TYPE_FLYING] = {0x00, 0x03, 0x03, 0x03, 0x02, 0x04, 0x04, 0x02, 0x03, 0x01, 0x07, 0x03, 0x02, 0x04, 0x03, 0x03, 0x03, 0x03},
|
||||
[TYPE_PSYCHIC] = {0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x03, 0x03, 0x03, 0x07, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03},
|
||||
[TYPE_BUG] = {0x00, 0x03, 0x04, 0x03, 0x02, 0x03, 0x03, 0x02, 0x03, 0x02, 0x04, 0x03, 0x07, 0x04, 0x03, 0x03, 0x03, 0x03},
|
||||
[TYPE_ROCK] = {0x00, 0x02, 0x02, 0x04, 0x04, 0x03, 0x03, 0x04, 0x02, 0x04, 0x02, 0x03, 0x03, 0x07, 0x03, 0x03, 0x03, 0x04},
|
||||
[TYPE_GHOST] = {0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x02, 0x03, 0x03, 0x04, 0x02, 0x03, 0x07, 0x03, 0x04, 0x03},
|
||||
[TYPE_DRAGON] = {0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x03, 0x03},
|
||||
[TYPE_DARK] = {0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x03, 0x01, 0x04, 0x03, 0x02, 0x03, 0x07, 0x03},
|
||||
[TYPE_STEEL] = {0x00, 0x02, 0x04, 0x03, 0x02, 0x03, 0x02, 0x04, 0x01, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x07},
|
||||
|
||||
};
|
||||
96
src/data/pokemon_3.h
Normal file
96
src/data/pokemon_3.h
Normal file
@@ -0,0 +1,96 @@
|
||||
const u8 gInvalidDungeonIDs[11] =
|
||||
{
|
||||
DUNGEON_BOSS_3,
|
||||
DUNGEON_BOSS_4,
|
||||
DUNGEON_BOSS_9,
|
||||
DUNGEON_WONDROUS_SEA,
|
||||
DUNGEON_AUTOPILOT,
|
||||
DUNGEON_D50,
|
||||
DUNGEON_D51,
|
||||
DUNGEON_D54,
|
||||
DUNGEON_POISON_MAZE,
|
||||
DUNGEON_D61,
|
||||
DUNGEON_OUT_ON_RESCUE
|
||||
};
|
||||
|
||||
const u8 gInvalidItemIDs[0x10] =
|
||||
{
|
||||
ITEM_G_MACHINE_6,
|
||||
ITEM_G_MACHINE_7,
|
||||
ITEM_G_MACHINE_8,
|
||||
ITEM_TM_SPIN_SLASH,
|
||||
ITEM_SWITCH_BOX,
|
||||
ITEM_ALERT_SPECS,
|
||||
ITEM_POSSESS_ORB,
|
||||
ITEM_REVIVER_ORB,
|
||||
ITEM_TM_EXCAVATE,
|
||||
ITEM_TOSS_ORB,
|
||||
ITEM_RING_D,
|
||||
ITEM_RING_E,
|
||||
ITEM_RING_F,
|
||||
ITEM_OBSERVER_ORB,
|
||||
ITEM_BEATUP_ORB,
|
||||
NUMBER_OF_ITEM_IDS
|
||||
};
|
||||
|
||||
const bool8 gTacticsTargetLeader[NUM_TACTICS] =
|
||||
{
|
||||
[TACTIC_LETS_GO_TOGETHER] = TRUE,
|
||||
[TACTIC_GO_THE_OTHER_WAY] = FALSE,
|
||||
[TACTIC_GO_AFTER_FOES] = FALSE,
|
||||
[TACTIC_AVOID_THE_FIRST_HIT] = FALSE,
|
||||
[TACTIC_ALL_FOR_ONE] = TRUE,
|
||||
[TACTIC_GROUP_SAFETY] = TRUE,
|
||||
[TACTIC_AVOID_TROUBLE] = TRUE,
|
||||
[TACTIC_BE_PATIENT] = TRUE,
|
||||
[TACTIC_KEEP_YOUR_DISTANCE] = TRUE,
|
||||
[TACTIC_WAIT_THERE] = FALSE,
|
||||
[TACTIC_GET_AWAY] = TRUE,
|
||||
[TACTIC_UNUSED] = FALSE
|
||||
};
|
||||
|
||||
|
||||
const s16 gReqTacticLvls[NUM_TACTICS] =
|
||||
{
|
||||
[TACTIC_LETS_GO_TOGETHER] = 1,
|
||||
[TACTIC_GO_THE_OTHER_WAY] = 25,
|
||||
[TACTIC_GO_AFTER_FOES] = 1,
|
||||
[TACTIC_AVOID_THE_FIRST_HIT] = 1,
|
||||
[TACTIC_ALL_FOR_ONE] = 999,
|
||||
[TACTIC_GROUP_SAFETY] = 999,
|
||||
[TACTIC_AVOID_TROUBLE] = 35,
|
||||
[TACTIC_BE_PATIENT] = 40,
|
||||
[TACTIC_KEEP_YOUR_DISTANCE] = 20,
|
||||
[TACTIC_WAIT_THERE] = 15,
|
||||
[TACTIC_GET_AWAY] = 10,
|
||||
[TACTIC_UNUSED] = 999,
|
||||
};
|
||||
|
||||
|
||||
const s32 gReqIQSkillPts[NUM_IQ_SKILLS] =
|
||||
{
|
||||
[IQ_NONE] = 9999,
|
||||
[IQ_TYPE_ADVANTAGE_MASTER] = 105,
|
||||
[IQ_ITEM_CATCHER] = 1,
|
||||
[IQ_COURSE_CHECKER] = 1,
|
||||
[IQ_SURE_HIT_ATTACKER] = 500,
|
||||
[IQ_QUICK_DODGER] = 100,
|
||||
[IQ_PP_CHECKER] = 2,
|
||||
[IQ_NONTRAITOR] = 40,
|
||||
[IQ_STATUS_CHECKER] = 25,
|
||||
[IQ_EXP_GO_GETTER] = 200,
|
||||
[IQ_EFFICIENCY_EXPERT] = 10,
|
||||
[IQ_WEAK_TYPE_PICKER] = 125,
|
||||
[IQ_ALL_TERRAIN_HIKER] = 400,
|
||||
[IQ_SUPER_MOBILE] = 990,
|
||||
[IQ_TRAP_AVOIDER] = 140,
|
||||
[IQ_HOUSE_AVOIDER] = 800,
|
||||
[IQ_ENERGY_SAVER] = 250,
|
||||
[IQ_NONSLEEPER] = 160,
|
||||
[IQ_SELF_CURER] = 70,
|
||||
[IQ_TRAP_SEER] = 600,
|
||||
[IQ_LAVA_EVADER] = 300,
|
||||
[IQ_DEDICATED_TRAVELER] = 1,
|
||||
[IQ_ITEM_MASTER] = 1,
|
||||
[IQ_EXCLUSIVE_MOVE_USER] = 1,
|
||||
};
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "random.h"
|
||||
#include "code_8092334.h"
|
||||
|
||||
extern u8 gUnknown_810A350[];
|
||||
extern u8 gInvalidDungeonIDs[];
|
||||
extern u8 gDungeonFloorCount[];
|
||||
extern u8 *gUnknown_8108084[];
|
||||
|
||||
@@ -97,7 +97,7 @@ u8 sub_8090910(DungeonLocation *dungeon, u32 param_2)
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_809095C(u8 dungeon)
|
||||
bool8 IsNotValidDungeon(u8 dungeon)
|
||||
{
|
||||
s32 counter;
|
||||
|
||||
@@ -107,10 +107,10 @@ bool8 sub_809095C(u8 dungeon)
|
||||
else
|
||||
{
|
||||
counter = 0;
|
||||
if (gUnknown_810A350[0] != DUNGEON_OUT_ON_RESCUE) {
|
||||
for(; gUnknown_810A350[counter] != DUNGEON_OUT_ON_RESCUE; counter++)
|
||||
if (gInvalidDungeonIDs[0] != DUNGEON_OUT_ON_RESCUE) {
|
||||
for(; gInvalidDungeonIDs[counter] != DUNGEON_OUT_ON_RESCUE; counter++)
|
||||
{
|
||||
if (gUnknown_810A350[counter] == dungeon) return TRUE;
|
||||
if (gInvalidDungeonIDs[counter] == dungeon) return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
@@ -105,16 +105,16 @@ void sub_804513C(void)
|
||||
gDungeon->allPokemon[index] = NULL;
|
||||
}
|
||||
|
||||
for (index = 0; index < 0x40; index++)
|
||||
for (index = 0; index < DUNGEON_MAX_ITEMS; index++)
|
||||
{
|
||||
gDungeon->clientPokemon[index] = &gDungeon->clientPokemonEntities[index];
|
||||
gDungeon->clientPokemon[index]->type = ENTITY_NOTHING;
|
||||
gDungeon->items[index] = &gDungeon->itemEntities[index];
|
||||
gDungeon->items[index]->type = ENTITY_NOTHING;
|
||||
}
|
||||
|
||||
for(index = 0; index < 0x40; index++)
|
||||
for(index = 0; index < DUNGEON_MAX_TRAPS; index++)
|
||||
{
|
||||
gDungeon->unk1371C[index] = &gDungeon->unk15E2C[index];
|
||||
gDungeon->unk1371C[index]->type = ENTITY_NOTHING;
|
||||
gDungeon->traps[index] = &gDungeon->trapEntites[index];
|
||||
gDungeon->traps[index]->type = ENTITY_NOTHING;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,7 +168,7 @@ void sub_804522C(void) {
|
||||
|
||||
for(index = 0; index < gDungeon->unk3904; index++)
|
||||
{
|
||||
sub_80462AC(gDungeon->clientPokemon[index], crossEyed, 1, 0xFF, 0);
|
||||
sub_80462AC(gDungeon->items[index], crossEyed, 1, 0xFF, 0);
|
||||
}
|
||||
|
||||
if(crossEyed)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "code_8097DD0.h"
|
||||
#include "constants/colors.h"
|
||||
#include "constants/type.h"
|
||||
#include "items.h"
|
||||
#include "moves.h"
|
||||
#include "random.h"
|
||||
@@ -23,12 +24,10 @@ extern u8 gUnknown_202DE58[];
|
||||
extern u32 gUnknown_202DE30;
|
||||
extern u8* gPtrTypeText; // ptr to "Type\0"
|
||||
extern u8* gPtrPPD0Text; // ptr to "PP {ARG_VALUE_0} \0"
|
||||
extern u32 gUnknown_810A3F0[100];
|
||||
extern u32 gUnknown_81097E8[4]; // some sort of lookup table (16, 18, 20, 22)
|
||||
extern u32 gUnknown_81097F8[4]; // some sort of lookup table (17, 19, 21, 23)
|
||||
extern const char *gUnknown_810AF50[];
|
||||
extern u8 gUnknown_8108F64[0x3f][32]; // some sort of bit lookup table
|
||||
extern s16 gTypeGummiIQBoost[0x12][NUMBER_OF_GUMMIS];
|
||||
extern u8 gInvalidItemIDs[0x10];
|
||||
|
||||
EWRAM_DATA OpenedFile *gItemParametersFile = {0};
|
||||
@@ -40,6 +39,7 @@ extern s32 sub_8091E94(s32 a1, s32 a2, s32 a3);
|
||||
extern void SortKecleonShopInventory();
|
||||
bool8 AddKecleonWareItem(u8);
|
||||
|
||||
#include "data/items.h"
|
||||
|
||||
static void sub_8090F58(u8 *, u8 *, Item *, unkStruct_8090F58 *);
|
||||
|
||||
|
||||
@@ -587,7 +587,7 @@ void AddMenuCursorSprite(MenuInputStruct *param_1)
|
||||
AddMenuCursorSprite_(param_1, 0);
|
||||
}
|
||||
|
||||
void AddMenuCursorSprite_(MenuInputStruct *a0, u32 a1)
|
||||
void AddMenuCursorSprite_(MenuInputStruct *a0, u8 *a1)
|
||||
{
|
||||
SpriteOAM sp = {};
|
||||
SpriteOAM* ptr;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,7 @@
|
||||
#include "pokemon.h"
|
||||
#include "pokemon_3.h"
|
||||
#include "random.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "constants/evolve_type.h"
|
||||
#include "constants/evolution_status.h"
|
||||
#include "constants/iq_skill.h"
|
||||
@@ -17,10 +18,6 @@ extern u8 *gIQSkillNames[];
|
||||
extern u8 *gIQSkillDescriptions[];
|
||||
extern u8 *gTacticsDescriptions[];
|
||||
extern u8 *gTactics[];
|
||||
extern bool8 gTacticsTargetLeader[];
|
||||
|
||||
extern s16 gReqTacticLvls[];
|
||||
extern s32 gReqIQSkillPts[];
|
||||
extern u32 gIQSkillGroups[];
|
||||
|
||||
struct unkStruct_808E9EC
|
||||
@@ -46,6 +43,8 @@ extern s16 gUnknown_810AC66; // 0x8
|
||||
// 2, 4, 6, 7, 8, 9, 0xA, 0xD, 0xF, 0x11
|
||||
extern s32 gUnknown_810AC90[10];
|
||||
|
||||
#include "data/pokemon_3.h"
|
||||
|
||||
extern void SaveDungeonLocation(struct unkStruct_8094924*, DungeonLocation*);
|
||||
extern void xxx_save_poke_sub_c_808F41C(struct unkStruct_8094924*, struct unkPokeSubStruct_C*);
|
||||
void RestoreDungeonLocation(struct unkStruct_8094924*, DungeonLocation*);
|
||||
|
||||
@@ -20,8 +20,9 @@
|
||||
#include "dungeon_visibility.h"
|
||||
#include "structs/map.h"
|
||||
#include "moves.h"
|
||||
#include "move_util.h"
|
||||
#include "number_util.h"
|
||||
//#include "pokemon.h" // NOTE: overriding some of the funcs below... when fixed, uncomment this
|
||||
#include "pokemon.h"
|
||||
#include "status.h"
|
||||
#include "status_checks_1.h"
|
||||
|
||||
@@ -31,7 +32,6 @@
|
||||
#include "weather.h"
|
||||
|
||||
extern void sub_807F43C(Entity *, Entity *);
|
||||
extern void MobileStatusTarget(Entity *, Entity *);
|
||||
extern void sub_807DC68(Entity *, Entity *);
|
||||
extern void sub_8078A58(Entity *, Entity *, s16, u32);
|
||||
extern u32 sub_803D73C(u32);
|
||||
@@ -59,16 +59,12 @@ extern void sub_807DA14(Entity *, Entity *, s32);
|
||||
extern s16 sub_803D970(u32);
|
||||
extern u8 sub_806AA0C(s32, u32);
|
||||
extern void sub_806BB6C(Entity *, s32);
|
||||
extern void sub_8075C58(Entity *, Entity *, s32, s32);
|
||||
extern void sub_807E254(Entity *, Entity *, u32);
|
||||
extern bool8 sub_805727C(Entity * pokemon, Entity * target, s32 chance);
|
||||
extern u32 sub_8055640(Entity *, Entity *, Move *, u32, u32);
|
||||
extern void sub_806A6E8(Entity *);
|
||||
extern void sub_807D3CC(Entity *, Entity *);
|
||||
extern u8 sub_8069D18(Position *);
|
||||
extern u8 sub_804AD34(Position *);
|
||||
extern u8 sub_8057308(Entity *, u32);
|
||||
|
||||
|
||||
// TODO include dungeon_ai.h when SqueezedStatusTarget is figured out
|
||||
extern void LowerDefenseStageTarget(Entity *, Entity *, s32, s32, u8, bool8);
|
||||
@@ -80,8 +76,9 @@ extern void LowerAttackStageTarget(Entity *, Entity *, s32, s32, u8, bool8);
|
||||
extern void PetrifiedStatusTarget(Entity *, Entity *);
|
||||
extern void WrapTarget(Entity *, Entity *);
|
||||
|
||||
// TODO having matching issues when this isn't s32..
|
||||
// TODO having matching issues when this isn't s32.. (move_effects_target.h)
|
||||
extern void SqueezedStatusTarget(Entity *, Entity *, s32, bool32);
|
||||
extern void sub_8075C58(Entity *, Entity *, s32, s32);
|
||||
|
||||
extern void sub_806F324(Entity *, s32, u32, u32);
|
||||
extern bool8 sub_805755C(Entity* pokemon,u16 moveID);
|
||||
|
||||
123
src/trap.c
123
src/trap.c
@@ -6,6 +6,7 @@
|
||||
#include "status.h"
|
||||
#include "code_80521D0.h"
|
||||
#include "items.h"
|
||||
#include "moves.h"
|
||||
#include "code_808417C.h"
|
||||
|
||||
#include "dungeon_engine.h"
|
||||
@@ -35,7 +36,11 @@ extern u8 *gUnknown_80FD788[];
|
||||
extern u8 *gUnknown_80FD7D4[];
|
||||
extern u8 *gUnknown_80F970C[];
|
||||
extern u8 *gUnknown_80F9728[];
|
||||
extern u8 *gUnknown_80FED00[];
|
||||
extern u8 *gUnknown_80FED04[];
|
||||
extern u8 *gUnknown_80FED0C[];
|
||||
extern u8 *gUnknown_80FDAA0[];
|
||||
extern u8 *gUnknown_80FDA80[];
|
||||
|
||||
extern s16 gUnknown_80F4E0E;
|
||||
extern s16 gUnknown_80F4F84;
|
||||
@@ -44,8 +49,27 @@ extern u32 gUnknown_8106A4C;
|
||||
extern u32 gUnknown_8106A50;
|
||||
extern s16 gUnknown_80F4F8A;
|
||||
|
||||
struct unkStruct_806B7F8
|
||||
{
|
||||
s16 species;
|
||||
u8 unk2;
|
||||
u32 unk4;
|
||||
u16 level;
|
||||
u8 fillA[2];
|
||||
struct Position pos;
|
||||
u8 unk10;
|
||||
};
|
||||
extern u32 sub_806B7F8(struct unkStruct_806B7F8 *, u32);
|
||||
|
||||
void sub_806A9B4(Entity *, u32);
|
||||
|
||||
void sub_8079E34(Entity *param_1, Entity *param_2, u32);
|
||||
s16 sub_803D970(u32);
|
||||
u8 sub_806AA0C(s32, s32);
|
||||
void sub_80421EC(Position *, u32);
|
||||
|
||||
bool8 sub_8045888(Entity *);
|
||||
void sub_8080B00(Tile *, u32);
|
||||
void SetTrap(Tile *, u32);
|
||||
void sub_803E708(u32, u32);
|
||||
u8 sub_8043D10(void);
|
||||
void SetMessageArgument(u8 *, Entity *, u32);
|
||||
@@ -686,7 +710,7 @@ void HandlePitfallTrap(Entity *pokemon, Entity *target, Tile *tile)
|
||||
{
|
||||
info = target->info;
|
||||
if (sub_8045888(target)) {
|
||||
sub_8080B00(tile, 0x1B);
|
||||
SetTrap(tile, 0x1B);
|
||||
flag = TRUE;
|
||||
sub_80421C0(target,0x193);
|
||||
sub_803E708(0x1e,0x48);
|
||||
@@ -714,8 +738,101 @@ void HandlePitfallTrap(Entity *pokemon, Entity *target, Tile *tile)
|
||||
sub_8068FE0(target,0x215,pokemon);
|
||||
}
|
||||
if (flag) {
|
||||
sub_8080B00(tile, 5);
|
||||
SetTrap(tile, TRAP_PITFALL_TRAP);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void HandleSummonTrap(Entity *pokemon,Position *pos)
|
||||
{
|
||||
s32 r4;
|
||||
u32 direction;
|
||||
int pokemonSummonCount;
|
||||
s16 species;
|
||||
struct unkStruct_806B7F8 stack;
|
||||
s32 i;
|
||||
|
||||
|
||||
r4 = DungeonRandInt(3) + 2;
|
||||
direction = DungeonRandInt(NUM_DIRECTIONS);
|
||||
if (IsBossFight()) {
|
||||
goto _ret;
|
||||
}
|
||||
else
|
||||
{
|
||||
pokemonSummonCount = 0;
|
||||
if (pokemonSummonCount < r4) {
|
||||
for (i = 0; i < r4; i++)
|
||||
{
|
||||
species = sub_803D970(0);
|
||||
direction &= DIRECTION_MASK;
|
||||
stack.species = species;
|
||||
if (sub_806AA0C(stack.species,0) != 0) {
|
||||
stack.level = 0;
|
||||
stack.unk2 = 0;
|
||||
stack.pos.x = pos->x + gAdjacentTileOffsets[direction].x;
|
||||
stack.pos.y = pos->y + gAdjacentTileOffsets[direction].y;
|
||||
stack.unk4 = 0;
|
||||
stack.unk10 = 0;
|
||||
if (sub_806B7F8(&stack,1) != 0) {
|
||||
pokemonSummonCount++;
|
||||
}
|
||||
}
|
||||
direction++;
|
||||
}
|
||||
}
|
||||
sub_80421EC(pos,0x194);
|
||||
if (pokemonSummonCount == 0) {
|
||||
_ret:
|
||||
SendMessage(pokemon,*gUnknown_80FED04);
|
||||
}
|
||||
else
|
||||
{
|
||||
SendMessage(pokemon,*gUnknown_80FED00);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void HandlePPZeroTrap(Entity *param_1,Entity *param_2)
|
||||
{
|
||||
Move *move;
|
||||
s32 moveIndex;
|
||||
s32 i;
|
||||
s32 counter;
|
||||
EntityInfo *info;
|
||||
Move *moveStack [MAX_MON_MOVES];
|
||||
s32 indexStack [MAX_MON_MOVES];
|
||||
bool8 flag = FALSE;
|
||||
|
||||
|
||||
if (param_2 != NULL) {
|
||||
info = param_2->info;
|
||||
counter = 0;
|
||||
for(i = 0; i < MAX_MON_MOVES; move++, i++)
|
||||
{
|
||||
move = &info->moves[i];
|
||||
if (((move->moveFlags & MOVE_FLAG_EXISTS) != 0) && (move->PP != 0)) {
|
||||
moveStack[counter] = move;
|
||||
indexStack[counter] = i;
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
if (counter != 0) {
|
||||
moveIndex = DungeonRandInt(counter);
|
||||
moveStack[moveIndex]->PP = 0;
|
||||
sub_80928C0(gUnknown_202DE58,moveStack[moveIndex],0);
|
||||
sub_806A9B4(param_2, indexStack[moveIndex]);
|
||||
flag = TRUE;
|
||||
}
|
||||
if(flag)
|
||||
sub_80522F4(param_1,param_2,*gUnknown_80FDA80);
|
||||
else
|
||||
sub_80522F4(param_1,param_2,*gUnknown_80FDAA0);
|
||||
}
|
||||
}
|
||||
|
||||
void HandleWonderTile(Entity *param_1, Entity *param_2)
|
||||
{
|
||||
sub_8079E34(param_1, param_2, 0);
|
||||
}
|
||||
|
||||
444
src/trap_1.c
Normal file
444
src/trap_1.c
Normal file
@@ -0,0 +1,444 @@
|
||||
#include "global.h"
|
||||
#include "trap.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8092334.h"
|
||||
#include "items.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "structs/str_traps.h"
|
||||
|
||||
extern u8 gUnknown_81071E0[];
|
||||
extern u8 gUnknown_81071D4[];
|
||||
|
||||
extern void sub_8082FA8(void *, void *, u32);
|
||||
|
||||
void sub_8083078(void *, u32);
|
||||
void sub_80830B4(void *, u8);
|
||||
void sub_8083030(void *, u16);
|
||||
void sub_8080E0C(unkStruct_8094924 *, Entity *);
|
||||
void sub_808300C(void *, u8 *);
|
||||
void sub_8081788(void *, Item *);
|
||||
void sub_8080B90(unkStruct_8094924 *param_1);
|
||||
void SaveItemData(unkStruct_8094924 *param_1);
|
||||
void sub_8081454(unkStruct_8094924 *param_1);
|
||||
void sub_808165C(unkStruct_8094924 *param_1);
|
||||
void sub_808173C(unkStruct_8094924 *param_1);
|
||||
void SaveTrapData(unkStruct_8094924 *param_1);
|
||||
void sub_8080CF0(unkStruct_8094924 *param_1);
|
||||
void nullsub_98(unkStruct_8094924 *param_1);
|
||||
void sub_8082F9C(unkStruct_8094924 *param_1, u32, u32);
|
||||
void sub_8049ED4(void);
|
||||
void sub_8083060(void *, u32);
|
||||
void sub_80817F4(void *, u32);
|
||||
void sub_80830A0(void *, u32);
|
||||
void sub_808180C(void *, u32);
|
||||
void sub_8083048(void *, u32);
|
||||
void sub_80818C8(void *, bool8 *);
|
||||
void sub_80817C8(void *, void *);
|
||||
void sub_8081B34(void *, void *);
|
||||
void sub_8081B08(void *, Move *);
|
||||
void sub_8081824(void *, u32);
|
||||
void sub_80817B0(void *, u32);
|
||||
void SavePosition(void*, Position *);
|
||||
void sub_80818E4(void *, u8 *);
|
||||
void sub_8081B54(void *, u8 *);
|
||||
void sub_808186C(void *, s32);
|
||||
void sub_8081854(void *, s32);
|
||||
void sub_808183C(void *, s32);
|
||||
void sub_8081AB8(void *, bool8 *);
|
||||
void sub_8081A9C(void *, u8*);
|
||||
void sub_8081A80(void *, u8*);
|
||||
void sub_8081A74(void *, u8*);
|
||||
void sub_8081A58(void *, u8*);
|
||||
void sub_8081A24(void *, u8*);
|
||||
void sub_8081994(void *, u8*);
|
||||
void sub_8081968(void *, u8*);
|
||||
void sub_808193C(void *, u8*);
|
||||
void sub_8081920(void *, u8*);
|
||||
void sub_8081880(void *, u8);
|
||||
void sub_8081898(void *, s16 *);
|
||||
void sub_80819B0(void *, u8 *);
|
||||
void sub_80819D4(void *, u8 *);
|
||||
void sub_80819F0(void *, u8 *);
|
||||
void SaveSpeedCounters(void *, u8 *, u32);
|
||||
void sub_80818B8(void *, u32);
|
||||
void sub_803E708(u32, u32);
|
||||
void sub_80421C0(Entity *, u32);
|
||||
void sub_804687C(Entity *, Position *, Position *, Item *, u32);
|
||||
|
||||
void HandleTripTrap(Entity *param_1, Entity *param_2)
|
||||
{
|
||||
u32 direction;
|
||||
EntityInfo *info;
|
||||
Position pos;
|
||||
Item item;
|
||||
|
||||
if (param_2 != NULL) {
|
||||
sub_806CDD4(param_2, 6, NUM_DIRECTIONS);
|
||||
sub_803E708(0x10, 0x55);
|
||||
sub_806CE68(param_2, NUM_DIRECTIONS);
|
||||
info = param_2->info;
|
||||
if ((info->heldItem).flags & ITEM_FLAG_EXISTS) {
|
||||
item = (info->heldItem);
|
||||
(info->heldItem).flags = 0;
|
||||
FillInventoryGaps();
|
||||
sub_80421C0(param_2, 400);
|
||||
direction = (info->action).direction & DIRECTION_MASK;
|
||||
pos.x = (param_2->pos).x + gAdjacentTileOffsets[direction].x;
|
||||
pos.y = (param_2->pos).y + gAdjacentTileOffsets[direction].y;
|
||||
sub_804687C(param_1, ¶m_2->pos, &pos, &item, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SetTrap(Tile *tile, u8 id)
|
||||
{
|
||||
Trap *trapData;
|
||||
Entity *entity;
|
||||
|
||||
entity = tile->object;
|
||||
if (EntityExists(entity)) {
|
||||
if (GetEntityType(entity) == ENTITY_TRAP) {
|
||||
trapData = GetTrapData(entity);
|
||||
trapData->id = id;
|
||||
}
|
||||
sub_8049ED4();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8080B30(u32 param_1,u32 param_2)
|
||||
{
|
||||
unkStruct_8094924 uStack_14;
|
||||
|
||||
sub_8082F9C(&uStack_14,param_1,param_2);
|
||||
uStack_14.unkC = 0;
|
||||
sub_8082FA8(&uStack_14,&uStack_14.unkC,4);
|
||||
sub_8080B90(&uStack_14);
|
||||
sub_8081454(&uStack_14);
|
||||
sub_808165C(&uStack_14);
|
||||
sub_808173C(&uStack_14);
|
||||
SaveItemData(&uStack_14);
|
||||
SaveTrapData(&uStack_14);
|
||||
sub_8080CF0(&uStack_14);
|
||||
sub_808300C(&uStack_14,gUnknown_81071D4);
|
||||
nullsub_98(&uStack_14);
|
||||
}
|
||||
|
||||
void sub_8080B90(unkStruct_8094924 *param_1)
|
||||
{
|
||||
sub_808300C(param_1,gUnknown_81071E0);
|
||||
sub_8082FA8(param_1,&gDungeon->dungeonLocation,0x58);
|
||||
}
|
||||
|
||||
void SaveItemData(unkStruct_8094924 *param_1)
|
||||
{
|
||||
bool8 flag;
|
||||
Item *item;
|
||||
Entity *entity;
|
||||
int counter;
|
||||
u8 local_1c [5];
|
||||
|
||||
for(counter = 0; counter < 5; counter++)
|
||||
{
|
||||
local_1c[counter] = 0;
|
||||
}
|
||||
sub_808300C(param_1,gUnknown_81071E0);
|
||||
|
||||
for(counter = 0; counter < DUNGEON_MAX_ITEMS; counter++)
|
||||
{
|
||||
entity = gDungeon->items[counter];
|
||||
flag = FALSE;
|
||||
if ((entity != NULL) && (GetEntityType(entity) == ENTITY_ITEM)) {
|
||||
item = GetItemData(entity);
|
||||
sub_8081788(param_1,item);
|
||||
sub_8082FA8(param_1,&entity->pos.x,1);
|
||||
sub_8082FA8(param_1,&entity->pos.y,1);
|
||||
flag = TRUE;
|
||||
}
|
||||
if (!flag) {
|
||||
sub_8082FA8(param_1,local_1c,5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SaveTrapData(unkStruct_8094924 *param_1)
|
||||
{
|
||||
bool8 flag;
|
||||
Trap *trap;
|
||||
Entity *entity;
|
||||
int counter;
|
||||
u8 local_1c [5];
|
||||
|
||||
for(counter = 0; counter < 5; counter++)
|
||||
{
|
||||
local_1c[counter] = -1;
|
||||
}
|
||||
sub_808300C(param_1,gUnknown_81071E0);
|
||||
|
||||
for(counter = 0; counter < DUNGEON_MAX_TRAPS; counter++)
|
||||
{
|
||||
entity = gDungeon->traps[counter];
|
||||
flag = FALSE;
|
||||
if ((entity != NULL) && (GetEntityType(entity) == ENTITY_TRAP)) {
|
||||
trap = GetTrapData(entity);
|
||||
sub_8082FA8(param_1,&trap->id,1);
|
||||
sub_8082FA8(param_1,&trap->unk1,1);
|
||||
sub_8082FA8(param_1,&entity->isVisible,1);
|
||||
sub_8082FA8(param_1,&entity->pos.x,1);
|
||||
sub_8082FA8(param_1,&entity->pos.y,1);
|
||||
flag = TRUE;
|
||||
}
|
||||
if (!flag) {
|
||||
sub_8082FA8(param_1,local_1c,5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8080CF0(unkStruct_8094924 *param_1)
|
||||
{
|
||||
s32 counter;
|
||||
|
||||
sub_808300C(param_1,gUnknown_81071E0);
|
||||
sub_8083078(param_1,gDungeon->unk37F0);
|
||||
sub_8083078(param_1,gDungeon->unk37F4);
|
||||
sub_80830B4(param_1,gDungeon->plusIsActive[0]);
|
||||
sub_80830B4(param_1,gDungeon->plusIsActive[1]);
|
||||
sub_80830B4(param_1,gDungeon->minusIsActive[0]);
|
||||
sub_80830B4(param_1,gDungeon->minusIsActive[1]);
|
||||
sub_80830B4(param_1,gDungeon->decoyActive);
|
||||
sub_80830B4(param_1,gDungeon->fill37FD);
|
||||
sub_80830B4(param_1,gDungeon->deoxysDefeat);
|
||||
sub_80830B4(param_1,gDungeon->fill37FF);
|
||||
sub_8083030(param_1,gDungeon->unk3800);
|
||||
for(counter = 0; counter < MAX_TEAM_MEMBERS; counter++)
|
||||
{
|
||||
sub_8080E0C(param_1,gDungeon->teamPokemon[counter]);
|
||||
}
|
||||
for(counter = 0; counter < DUNGEON_MAX_WILD_POKEMON; counter++)
|
||||
{
|
||||
sub_8080E0C(param_1,gDungeon->wildPokemon[counter]);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8080E0C(unkStruct_8094924 *param_1,Entity *param_2)
|
||||
{
|
||||
Position *pos;
|
||||
EntityInfo *info;
|
||||
int counter;
|
||||
EntityInfo info2;
|
||||
u32 uStack_ac;
|
||||
u32 uStack_a8;
|
||||
s16 *psStack_a4;
|
||||
u8 *temp1;
|
||||
u8 *temp2;
|
||||
u8 *temp3;
|
||||
u8 *puStack_a0;
|
||||
u32 *puStack_9c;
|
||||
u32 *puStack_98;
|
||||
u32 *puStack_94;
|
||||
u8 *puStack_90;
|
||||
u8 *puStack_8c;
|
||||
u8 *puStack_88;
|
||||
u8 *puStack_84;
|
||||
u8 *puStack_80;
|
||||
u8 *puStack_7c;
|
||||
u8 *puStack_78;
|
||||
u8 *puStack_74;
|
||||
u8 *puStack_70;
|
||||
u8 *puStack_6c;
|
||||
u8 *puStack_68;
|
||||
u8 *puStack_64;
|
||||
u8 *puStack_60;
|
||||
bool8 *pbStack_5c;
|
||||
bool8 *pbStack_58;
|
||||
bool8 *pbStack_54;
|
||||
bool8 *pbStack_50;
|
||||
u8 *puStack_4c;
|
||||
bool8 *pbStack_48;
|
||||
bool8 *pbStack_44;
|
||||
bool8 *pbStack_40;
|
||||
bool8 *pbStack_3c;
|
||||
u8 *puStack_38;
|
||||
u8 *puStack_34;
|
||||
bool8 *pbStack_30;
|
||||
u8 *puStack_2c;
|
||||
u8 *puStack_28;
|
||||
u8 *puStack_24;
|
||||
|
||||
|
||||
uStack_a8 = 0;
|
||||
uStack_ac = 1;
|
||||
sub_8083060(param_1,0xaa);
|
||||
sub_8083060(param_1,0x55);
|
||||
if (EntityExists(param_2)) {
|
||||
info = param_2->info;
|
||||
sub_8082FA8(param_1,&uStack_ac,1);
|
||||
sub_8082FA8(param_1,¶m_2->pos.x,1);
|
||||
sub_8082FA8(param_1,¶m_2->pos.y,1);
|
||||
sub_8082FA8(param_1,¶m_2->isVisible,1);
|
||||
sub_8082FA8(param_1,¶m_2->spawnGenID,2);
|
||||
}
|
||||
else {
|
||||
memset(&info2,0,sizeof(EntityInfo));
|
||||
info = &info2;
|
||||
sub_8082FA8(param_1,&uStack_a8,1);
|
||||
sub_8082FA8(param_1,&uStack_a8,1);
|
||||
sub_8082FA8(param_1,&uStack_a8,1);
|
||||
sub_8082FA8(param_1,&uStack_a8,1);
|
||||
sub_8082FA8(param_1,&uStack_a8,2);
|
||||
}
|
||||
sub_8083030(param_1,info->flags);
|
||||
sub_80817F4(param_1,info->apparentID);
|
||||
sub_80817F4(param_1,info->id);
|
||||
sub_80830B4(param_1,info->isNotTeamMember);
|
||||
sub_80830B4(param_1,info->isTeamLeader);
|
||||
sub_8083060(param_1,info->shopkeeper);
|
||||
sub_8083060(param_1,info->level);
|
||||
sub_8083060(param_1,info->teamIndex);
|
||||
sub_80818C8(param_1,&info->joinedAt);
|
||||
sub_8083048(param_1,info->IQ);
|
||||
sub_8083048(param_1,info->HP);
|
||||
sub_8083048(param_1,info->maxHPStat);
|
||||
sub_8083048(param_1,info->originalHP);
|
||||
sub_8083060(param_1,info->atk);
|
||||
sub_8083060(param_1,info->spAtk);
|
||||
sub_8083060(param_1,info->def);
|
||||
sub_8083060(param_1,info->spDef);
|
||||
sub_8083078(param_1,info->exp);
|
||||
sub_8083048(param_1,info->offensiveStages[0]);
|
||||
sub_8083048(param_1,info->offensiveStages[1]);
|
||||
sub_8083048(param_1,info->defensiveStages[0]);
|
||||
sub_8083048(param_1,info->defensiveStages[1]);
|
||||
sub_8083048(param_1,info->hitChanceStages[0]);
|
||||
sub_8083048(param_1,info->hitChanceStages[1]);
|
||||
sub_8083048(param_1,info->flashFireBoost);
|
||||
sub_80830A0(param_1,info->offensiveMultipliers[0]);
|
||||
sub_80830A0(param_1,info->offensiveMultipliers[1]);
|
||||
sub_80830A0(param_1,info->defensiveMultipliers[0]);
|
||||
sub_80830A0(param_1,info->defensiveMultipliers[1]);
|
||||
sub_80817C8(param_1,&info->action);
|
||||
sub_808180C(param_1,info->types[0]);
|
||||
sub_808180C(param_1,info->types[1]);
|
||||
sub_8081824(param_1,info->abilities[0]);
|
||||
sub_8081824(param_1,info->abilities[1]);
|
||||
sub_8081788(param_1,&info->heldItem);
|
||||
sub_80817B0(param_1,info->fill64[0]);
|
||||
temp3 = &info->aiObjective;
|
||||
temp2 = info->IQSkillMenuFlags;
|
||||
temp1 = info->IQSkillFlags;
|
||||
puStack_a0 = &info->tactic;
|
||||
psStack_a4 = &info->hiddenPowerBasePower;
|
||||
puStack_9c = &info->unk98;
|
||||
puStack_98 = &info->unk9C;
|
||||
puStack_94 = &info->unkA0;
|
||||
puStack_8c = &info->sleep;
|
||||
puStack_88 = &info->nonVolatileStatus;
|
||||
puStack_84 = &info->immobilizeStatus;
|
||||
puStack_80 = &info->volatileStatus;
|
||||
puStack_7c = &info->chargingStatus;
|
||||
puStack_78 = &info->protectionStatus;
|
||||
puStack_74 = &info->waitingStatus;
|
||||
puStack_70 = &info->linkedStatus;
|
||||
puStack_6c = &info->moveStatus;
|
||||
puStack_68 = &info->itemStatus;
|
||||
puStack_64 = &info->transformStatus;
|
||||
puStack_60 = &info->eyesightStatus;
|
||||
pbStack_5c = &info->muzzled;
|
||||
pbStack_58 = &info->powerEars;
|
||||
pbStack_54 = &info->scanning;
|
||||
pbStack_50 = &info->stairSpotter;
|
||||
puStack_4c = &info->fillF3;
|
||||
pbStack_48 = &info->grudge;
|
||||
puStack_34 = &info->unkFB;
|
||||
pbStack_44 = &info->exposed;
|
||||
pbStack_40 = &info->isColorChanged;
|
||||
pbStack_3c = &info->bossFlag;
|
||||
puStack_38 = &info->terrifiedTurns;
|
||||
pbStack_30 = &info->useHeldItem;
|
||||
puStack_2c = &info->perishSongTurns;
|
||||
puStack_28 = &info->unkFE;
|
||||
puStack_24 = &info->unkFF;
|
||||
puStack_90 = &info->clientType;
|
||||
|
||||
pos = info->prevPos;
|
||||
for(counter = 0; counter < NUM_PREV_POS; counter++)
|
||||
{
|
||||
SavePosition(param_1,pos);
|
||||
pos++;
|
||||
}
|
||||
|
||||
sub_80818E4(param_1,temp3);
|
||||
sub_8081B54(param_1,temp2);
|
||||
sub_8081B54(param_1,temp1);
|
||||
sub_8081880(param_1,*puStack_a0);
|
||||
sub_8081898(param_1,psStack_a4);
|
||||
sub_8083078(param_1,*puStack_9c);
|
||||
sub_8083078(param_1,*puStack_98);
|
||||
sub_8083078(param_1,*puStack_94);
|
||||
sub_8081920(param_1,puStack_8c);
|
||||
sub_808193C(param_1,puStack_88);
|
||||
sub_8081968(param_1,puStack_84);
|
||||
sub_8081994(param_1,puStack_80);
|
||||
sub_80819B0(param_1,puStack_7c);
|
||||
sub_80819D4(param_1,puStack_78);
|
||||
sub_80819F0(param_1,puStack_74);
|
||||
sub_8081A24(param_1,puStack_70);
|
||||
sub_8081A58(param_1,puStack_6c);
|
||||
sub_8081A74(param_1,puStack_68);
|
||||
sub_8081A80(param_1,puStack_64);
|
||||
sub_8081A9C(param_1,puStack_60);
|
||||
sub_8081AB8(param_1,pbStack_5c);
|
||||
sub_80830B4(param_1,*pbStack_58);
|
||||
sub_80830B4(param_1,*pbStack_54);
|
||||
sub_80830B4(param_1,*pbStack_50);
|
||||
sub_80830B4(param_1,*puStack_4c);
|
||||
sub_80830B4(param_1,*pbStack_48);
|
||||
sub_8083060(param_1,*puStack_34);
|
||||
sub_80830B4(param_1,*pbStack_44);
|
||||
sub_80830B4(param_1,*pbStack_40);
|
||||
sub_80830B4(param_1,*pbStack_3c);
|
||||
sub_8083060(param_1,*puStack_38);
|
||||
sub_80830B4(param_1,*pbStack_30);
|
||||
sub_8083060(param_1,*puStack_2c);
|
||||
sub_8083060(param_1,*puStack_28);
|
||||
sub_808183C(param_1,*puStack_24);
|
||||
sub_8081854(param_1,info->targetingDecoy);
|
||||
sub_808186C(param_1,info->speedStage);
|
||||
SaveSpeedCounters(param_1,info->speedUpCounters,NUM_SPEED_COUNTERS);
|
||||
SaveSpeedCounters(param_1,info->speedDownCounters,NUM_SPEED_COUNTERS);
|
||||
sub_8083060(param_1,info->stockpileStage);
|
||||
sub_8083060(param_1,info->fill113);
|
||||
sub_8083060(param_1,(u8)info->moveRandomly);
|
||||
sub_8081B08(param_1,info->moves);
|
||||
sub_8081B34(param_1,&info->belly);
|
||||
sub_8081B34(param_1,&info->maxBelly);
|
||||
sub_80830B4(param_1,info->aiNextToTarget);
|
||||
sub_80830B4(param_1,info->recalculateFollow);
|
||||
sub_80830B4(param_1,info->waiting);
|
||||
sub_80830B4(param_1,info->fill146);
|
||||
sub_80830B4(param_1,info->attacking);
|
||||
sub_80830B4(param_1,info->unk149);
|
||||
sub_80830B4(param_1,info->unk14A);
|
||||
sub_80830B4(param_1,info->unk14B);
|
||||
sub_80830B4(param_1,info->unk14C);
|
||||
sub_8083030(param_1,info->visualFlags);
|
||||
sub_8083030(param_1,info->previousVisualFlags);
|
||||
sub_80830B4(param_1,info->unk152);
|
||||
sub_8083060(param_1,info->unk153);
|
||||
sub_80830B4(param_1,info->unk154);
|
||||
sub_80830B4(param_1,info->unk155);
|
||||
sub_80830B4(param_1,info->unk156);
|
||||
sub_8083060(param_1,info->unk164);
|
||||
sub_8083060(param_1,info->unk165);
|
||||
sub_8083060(param_1,info->unk166);
|
||||
sub_8083060(param_1,info->unk167);
|
||||
sub_8083060(param_1,info->unk168);
|
||||
sub_8083060(param_1,info->turnsSinceWarpScarfActivation);
|
||||
SavePosition(param_1,&(info->targetPos));
|
||||
sub_80830A0(param_1,info->unk174);
|
||||
sub_8083030(param_1,info->unk178);
|
||||
sub_8083048(param_1,info->unk1F8);
|
||||
sub_8083048(param_1,info->mobileTurnTimer);
|
||||
sub_8083078(param_1,info->expGainedInTurn);
|
||||
sub_80818B8(param_1,*puStack_90);
|
||||
}
|
||||
Reference in New Issue
Block a user