mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-03 01:00:09 -05:00
Merge pull request #234 from SethBarberee/oct_2024
Some checks failed
GithubCI / build (push) Has been cancelled
Some checks failed
GithubCI / build (push) Has been cancelled
Oct 2024
This commit is contained in:
commit
03126263bf
|
|
@ -1725,97 +1725,4 @@ _08015F34:
|
|||
_08015F40: .4byte gUnknown_80DB098
|
||||
thumb_func_end sub_8015EB4
|
||||
|
||||
thumb_func_start sub_8015F44
|
||||
sub_8015F44:
|
||||
push {r4,lr}
|
||||
movs r2, 0
|
||||
ldr r0, _08015F78
|
||||
ldr r0, [r0]
|
||||
ldrb r4, [r0, 0x1B]
|
||||
cmp r2, r4
|
||||
bge _08015F7C
|
||||
adds r3, r0, 0
|
||||
adds r3, 0xF8
|
||||
ldr r0, [r3]
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08015F7C
|
||||
movs r2, 0x1
|
||||
movs r1, 0x1
|
||||
_08015F62:
|
||||
cmp r1, r4
|
||||
bge _08015F7C
|
||||
ldr r0, [r3]
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08015F7C
|
||||
adds r2, r1, 0x1
|
||||
adds r1, r2, 0
|
||||
b _08015F62
|
||||
.align 2, 0
|
||||
_08015F78: .4byte gUnknown_203B1FC
|
||||
_08015F7C:
|
||||
adds r0, r2, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8015F44
|
||||
|
||||
thumb_func_start sub_8015F84
|
||||
sub_8015F84:
|
||||
push {r4-r7,lr}
|
||||
movs r6, 0
|
||||
movs r5, 0
|
||||
ldr r3, _08015FBC
|
||||
ldr r0, [r3]
|
||||
ldrb r0, [r0, 0x1B]
|
||||
cmp r5, r0
|
||||
bge _08015FE4
|
||||
adds r7, r3, 0
|
||||
_08015F96:
|
||||
ldr r1, [r7]
|
||||
lsls r4, r5, 1
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x1E
|
||||
adds r0, r4
|
||||
strh r6, [r0]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xF8
|
||||
ldr r0, [r0]
|
||||
adds r2, r0, r5
|
||||
ldrb r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _08015FC0
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8A
|
||||
adds r0, r4
|
||||
movs r1, 0x8
|
||||
strh r1, [r0]
|
||||
b _08015FE4
|
||||
.align 2, 0
|
||||
_08015FBC: .4byte gUnknown_203B1FC
|
||||
_08015FC0:
|
||||
ldrb r0, [r2]
|
||||
bl ReturnIntFromChar2
|
||||
bl GetCharacter
|
||||
ldr r3, [r7]
|
||||
adds r1, r3, 0
|
||||
adds r1, 0x8A
|
||||
adds r1, r4
|
||||
ldrh r2, [r0, 0x6]
|
||||
strh r2, [r1]
|
||||
movs r1, 0x6
|
||||
ldrsh r0, [r0, r1]
|
||||
adds r6, r0
|
||||
adds r5, 0x1
|
||||
ldrb r3, [r3, 0x1B]
|
||||
cmp r5, r3
|
||||
blt _08015F96
|
||||
_08015FE4:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8015F84
|
||||
|
||||
.align 2,0
|
||||
|
|
|
|||
|
|
@ -5,91 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_806A338
|
||||
sub_806A338:
|
||||
push {r4-r6,lr}
|
||||
movs r5, 0
|
||||
ldr r6, _0806A378
|
||||
_0806A33E:
|
||||
ldr r0, [r6]
|
||||
lsls r1, r5, 2
|
||||
ldr r2, _0806A37C
|
||||
adds r0, r2
|
||||
adds r0, r1
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806A384
|
||||
ldr r0, [r4, 0x70]
|
||||
adds r0, 0xC8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3
|
||||
bne _0806A384
|
||||
ldr r1, [r6]
|
||||
ldr r2, _0806A380
|
||||
adds r0, r1, r2
|
||||
str r4, [r0]
|
||||
ldr r0, [r4, 0x70]
|
||||
adds r2, 0xC
|
||||
adds r1, r2
|
||||
adds r0, 0x98
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
b _0806A38A
|
||||
.align 2, 0
|
||||
_0806A378: .4byte gDungeon
|
||||
_0806A37C: .4byte 0x000135cc
|
||||
_0806A380: .4byte 0x00017b30
|
||||
_0806A384:
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x13
|
||||
ble _0806A33E
|
||||
_0806A38A:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_806A338
|
||||
|
||||
thumb_func_start sub_806A390
|
||||
sub_806A390:
|
||||
push {r4-r7,lr}
|
||||
ldr r0, [r0, 0x70]
|
||||
movs r7, 0
|
||||
movs r1, 0x8C
|
||||
lsls r1, 1
|
||||
adds r4, r0, r1
|
||||
adds r5, r4, 0
|
||||
movs r6, 0x3
|
||||
_0806A3A0:
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0806A3C2
|
||||
ldrb r1, [r4, 0x1]
|
||||
movs r0, 0xF7
|
||||
ands r0, r1
|
||||
movs r1, 0xEF
|
||||
ands r0, r1
|
||||
movs r1, 0x4
|
||||
orrs r0, r1
|
||||
strb r0, [r4, 0x1]
|
||||
adds r0, r5, 0
|
||||
bl GetMoveBasePP
|
||||
strb r0, [r4, 0x4]
|
||||
_0806A3C2:
|
||||
adds r4, 0x8
|
||||
adds r5, 0x8
|
||||
subs r6, 0x1
|
||||
cmp r6, 0
|
||||
bge _0806A3A0
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_806A390
|
||||
|
||||
thumb_func_start sub_806A3D4
|
||||
sub_806A3D4:
|
||||
push {r4-r7,lr}
|
||||
|
|
|
|||
|
|
@ -1,253 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start ZapdosPreFightDialogue
|
||||
ZapdosPreFightDialogue:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x70
|
||||
bl xxx_call_GetLeader
|
||||
mov r9, r0
|
||||
bl GetPartnerEntity
|
||||
adds r6, r0, 0
|
||||
movs r0, 0x8
|
||||
bl GetEntityFromClientType
|
||||
str r0, [sp, 0x68]
|
||||
bl sub_8086448
|
||||
movs r0, 0xA
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
adds r0, r6, 0
|
||||
bl SpriteLookAroundEffect
|
||||
movs r0, 0xA
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x4
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl sub_80869E4
|
||||
mov r0, r9
|
||||
movs r1, 0x4
|
||||
movs r2, 0x2
|
||||
movs r3, 0x6
|
||||
bl sub_80869E4
|
||||
ldr r0, _08087470
|
||||
bl DisplayDungeonDialogue
|
||||
movs r0, 0xA
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x4
|
||||
movs r2, 0x2
|
||||
movs r3, 0x4
|
||||
bl sub_80869E4
|
||||
mov r0, r9
|
||||
movs r1, 0x4
|
||||
movs r2, 0x1
|
||||
movs r3, 0x4
|
||||
bl sub_80869E4
|
||||
ldr r0, _08087474
|
||||
bl DisplayDungeonDialogue
|
||||
movs r0, 0xA
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
movs r0, 0x3
|
||||
bl ZapdosScreenFlash
|
||||
bl DungeonStopBGM
|
||||
movs r0, 0xED
|
||||
lsls r0, 1
|
||||
bl PlaySoundEffect
|
||||
ldr r0, _08087478
|
||||
bl DisplayDungeonDialogue
|
||||
ldr r0, [sp, 0x68]
|
||||
bl ZapdosDropInEffect
|
||||
movs r0, 0x9
|
||||
bl DungeonStartNewBGM
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x6
|
||||
movs r2, 0x4
|
||||
bl sub_806CDD4
|
||||
ldr r0, _0808747C
|
||||
bl DisplayDungeonDialogue
|
||||
movs r0, 0xA
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x2
|
||||
movs r2, 0x1
|
||||
movs r3, 0x1
|
||||
bl sub_80869E4
|
||||
mov r1, sp
|
||||
ldr r0, _08087480
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
mov r0, sp
|
||||
str r0, [sp, 0x58]
|
||||
str r6, [sp, 0x5C]
|
||||
add r4, sp, 0x18
|
||||
add r1, sp, 0x58
|
||||
add r2, sp, 0x5C
|
||||
adds r0, r4, 0
|
||||
movs r3, 0x1
|
||||
bl sub_8085B4C
|
||||
ldr r0, [r6, 0x70]
|
||||
ldr r2, _08087484
|
||||
adds r1, r0, r2
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
add r7, sp, 0x28
|
||||
add r3, sp, 0x48
|
||||
mov r8, r3
|
||||
add r0, sp, 0x60
|
||||
mov r10, r0
|
||||
mov r1, sp
|
||||
adds r1, 0x64
|
||||
str r1, [sp, 0x6C]
|
||||
b _0808748E
|
||||
.align 2, 0
|
||||
_08087470: .4byte gUnknown_81014B0
|
||||
_08087474: .4byte gUnknown_8101504
|
||||
_08087478: .4byte gUnknown_81015A0
|
||||
_0808747C: .4byte gUnknown_81015D4
|
||||
_08087480: .4byte gUnknown_810744C
|
||||
_08087484: .4byte 0x0000015f
|
||||
_08087488:
|
||||
movs r0, 0x46
|
||||
bl sub_803E46C
|
||||
_0808748E:
|
||||
adds r0, r4, 0
|
||||
bl sub_8085B80
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0
|
||||
bne _08087488
|
||||
ldr r0, [r6, 0x70]
|
||||
ldr r2, _08087510
|
||||
adds r0, r2
|
||||
strb r5, [r0]
|
||||
ldr r0, [r6, 0x70]
|
||||
ldr r4, _08087514
|
||||
adds r0, r4
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x2
|
||||
movs r2, 0x2
|
||||
movs r3, 0x4
|
||||
bl sub_80869E4
|
||||
ldr r0, _08087518
|
||||
bl DisplayDungeonDialogue
|
||||
movs r0, 0x3C
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
ldr r0, _0808751C
|
||||
bl DisplayDungeonDialogue
|
||||
movs r0, 0xA
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
ldr r0, [r6, 0x70]
|
||||
adds r0, r4
|
||||
strb r5, [r0]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x2
|
||||
movs r2, 0x2
|
||||
movs r3, 0x5
|
||||
bl sub_80869E4
|
||||
adds r1, r7, 0
|
||||
ldr r0, _08087520
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r3,r4}
|
||||
stm r1!, {r3,r4}
|
||||
str r7, [sp, 0x60]
|
||||
str r6, [sp, 0x64]
|
||||
mov r0, r8
|
||||
mov r1, r10
|
||||
ldr r2, [sp, 0x6C]
|
||||
movs r3, 0x1
|
||||
bl sub_8085B4C
|
||||
mov r4, r9
|
||||
adds r4, 0xC
|
||||
b _0808752A
|
||||
.align 2, 0
|
||||
_08087510: .4byte 0x0000015f
|
||||
_08087514: .4byte 0x0000015d
|
||||
_08087518: .4byte gUnknown_81015E8
|
||||
_0808751C: .4byte gUnknown_8101624
|
||||
_08087520: .4byte gUnknown_8107464
|
||||
_08087524:
|
||||
movs r0, 0x46
|
||||
bl sub_803E46C
|
||||
_0808752A:
|
||||
mov r0, r8
|
||||
bl sub_8085B80
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08087524
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x2
|
||||
movs r2, 0x1
|
||||
movs r3, 0x3
|
||||
bl sub_80869E4
|
||||
ldr r0, _080875B0
|
||||
bl DisplayDungeonDialogue
|
||||
movs r0, 0xA
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
movs r0, 0x3
|
||||
bl ZapdosScreenFlash
|
||||
ldr r0, _080875B4
|
||||
bl DisplayDungeonDialogue
|
||||
movs r0, 0xA
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
movs r0, 0x1
|
||||
bl ZapdosScreenFlash
|
||||
ldr r0, _080875B8
|
||||
bl DisplayDungeonDialogue
|
||||
movs r0, 0xA
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
movs r0, 0x2
|
||||
bl ZapdosScreenFlash
|
||||
ldr r0, _080875BC
|
||||
bl DisplayDungeonDialogue
|
||||
movs r0, 0xA
|
||||
movs r1, 0x46
|
||||
bl sub_803E708
|
||||
movs r1, 0x96
|
||||
lsls r1, 1
|
||||
ldr r0, [sp, 0x68]
|
||||
movs r2, 0xB
|
||||
bl SetupBossFightHP
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x10
|
||||
bl ShiftCameraToPosition
|
||||
add sp, 0x70
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080875B0: .4byte gUnknown_810165C
|
||||
_080875B4: .4byte gUnknown_8101750
|
||||
_080875B8: .4byte gUnknown_810178C
|
||||
_080875BC: .4byte gUnknown_81017B4
|
||||
thumb_func_end ZapdosPreFightDialogue
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -5,51 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start GetAdjustedGroundMap
|
||||
GetAdjustedGroundMap:
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 16
|
||||
asrs r5, r0, 16
|
||||
cmp r5, 0x9
|
||||
beq _080A4D94
|
||||
cmp r5, 0x9
|
||||
bgt _080A4D90
|
||||
cmp r5, 0x2
|
||||
beq _080A4DB6
|
||||
b _080A4DC4
|
||||
_080A4D90:
|
||||
cmp r5, 0xC
|
||||
bne _080A4DC4
|
||||
_080A4D94:
|
||||
movs r0, 0
|
||||
movs r1, 0x27
|
||||
bl GetScriptVarValue
|
||||
adds r4, r0, 0
|
||||
movs r0, 0
|
||||
movs r1, 0x28
|
||||
bl GetScriptVarValue
|
||||
lsls r1, r4, 1
|
||||
adds r1, r4
|
||||
lsls r1, 1
|
||||
adds r1, r0
|
||||
adds r1, r5, r1
|
||||
lsls r1, 16
|
||||
asrs r5, r1, 16
|
||||
b _080A4DC4
|
||||
_080A4DB6:
|
||||
movs r0, 0x6
|
||||
bl sub_80023E4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080A4DC4
|
||||
movs r5, 0x3
|
||||
_080A4DC4:
|
||||
adds r0, r5, 0
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end GetAdjustedGroundMap
|
||||
|
||||
thumb_func_start GroundMap_Select
|
||||
GroundMap_Select:
|
||||
push {r4-r6,lr}
|
||||
|
|
|
|||
|
|
@ -1,137 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_802FBF4
|
||||
sub_802FBF4:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x4
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
_0802FC08:
|
||||
ldr r1, [sp]
|
||||
lsls r0, r1, 16
|
||||
asrs r4, r0, 16
|
||||
mov r10, r4
|
||||
adds r0, r4, 0
|
||||
bl sub_80A27CC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0802FCCE
|
||||
cmp r4, 0x13
|
||||
beq _0802FCCE
|
||||
cmp r4, 0x1D
|
||||
beq _0802FCCE
|
||||
ldr r7, _0802FC88
|
||||
ldr r1, [r7]
|
||||
mov r0, r8
|
||||
lsls r6, r0, 1
|
||||
adds r0, r1, r6
|
||||
strh r4, [r0]
|
||||
adds r1, 0x5C
|
||||
add r1, r8
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
ldr r0, [r7]
|
||||
adds r0, 0x8A
|
||||
add r0, r8
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r7]
|
||||
adds r0, 0xB8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0802FCCA
|
||||
cmp r4, 0xD
|
||||
beq _0802FCCA
|
||||
adds r0, r4, 0
|
||||
bl sub_80A270C
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r9, r0
|
||||
movs r5, 0
|
||||
cmp r4, 0x1E
|
||||
bgt _0802FCA8
|
||||
adds r0, r4, 0
|
||||
bl sub_8097384
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0802FCA6
|
||||
cmp r4, 0x6
|
||||
bne _0802FC8C
|
||||
movs r0, 0x13
|
||||
bl sub_8097384
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0802FCA8
|
||||
ldr r0, [r7]
|
||||
adds r0, r6
|
||||
movs r1, 0x13
|
||||
b _0802FCA4
|
||||
.align 2, 0
|
||||
_0802FC88: .4byte gUnknown_203B314
|
||||
_0802FC8C:
|
||||
mov r0, r10
|
||||
cmp r0, 0xA
|
||||
bne _0802FCA8
|
||||
movs r0, 0x1D
|
||||
bl sub_8097384
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0802FCA8
|
||||
ldr r0, [r7]
|
||||
adds r0, r6
|
||||
movs r1, 0x1D
|
||||
_0802FCA4:
|
||||
strh r1, [r0]
|
||||
_0802FCA6:
|
||||
movs r5, 0x1
|
||||
_0802FCA8:
|
||||
ldr r4, _0802FCEC
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x5C
|
||||
add r0, r8
|
||||
strb r5, [r0]
|
||||
cmp r5, 0
|
||||
bne _0802FCCA
|
||||
mov r0, r9
|
||||
bl CountJobsinDungeon
|
||||
cmp r0, 0
|
||||
ble _0802FCCA
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x8A
|
||||
add r0, r8
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
_0802FCCA:
|
||||
movs r1, 0x1
|
||||
add r8, r1
|
||||
_0802FCCE:
|
||||
ldr r0, [sp]
|
||||
adds r0, 0x1
|
||||
str r0, [sp]
|
||||
cmp r0, 0x2D
|
||||
ble _0802FC08
|
||||
mov r0, r8
|
||||
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
|
||||
_0802FCEC: .4byte gUnknown_203B314
|
||||
thumb_func_end sub_802FBF4
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -38,6 +38,6 @@ void sub_8086854(void);
|
|||
void sub_80868F4(Entity *entity);
|
||||
void sub_8086910(Entity *entity);
|
||||
void sub_808692C(void);
|
||||
void sub_80869E4(Entity *, s32, u8, s8);
|
||||
void sub_80869E4(Entity *, s32, u8, s8 direction);
|
||||
|
||||
#endif // GUARD_CODE_80869E4_H
|
||||
|
|
|
|||
142
include/dungeon_cutscenes.h
Normal file
142
include/dungeon_cutscenes.h
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
#ifndef GUARD_DUNGEON_CUTSCENE_H
|
||||
#define GUARD_DUNGEON_CUTSCENE_H
|
||||
|
||||
#include "structs/dungeon_entity.h"
|
||||
|
||||
void ArticunoPostStoryPreFightDialogue(void);
|
||||
void ArticunoPreFightDialogue(void);
|
||||
void ArticunoReFightDialogue(void);
|
||||
void CelebiJoinDialogue(void);
|
||||
void DeoxysPreFightDialogue(void);
|
||||
void DummyFightDialogue(void);
|
||||
void EnteiPostStoryPreFightDialogue(void);
|
||||
void EnteiPreFightDialogue(void);
|
||||
void EnteiReFightDialogue(void);
|
||||
void GroudonPostStoryPreFightDialogue(void);
|
||||
void GroudonPreFightDialogue(void);
|
||||
void GroudonReFightDialogue(void);
|
||||
void HoOhPreFightDialogue(void);
|
||||
void HoOhReFightDialogue(void);
|
||||
void JirachiPreFightDialogue(void);
|
||||
void JirachiReFightDialogue(void);
|
||||
void KyogrePreFightDialogue(void);
|
||||
void LatiosPreFightDialogue(void);
|
||||
void LatiosReFightDialogue(void);
|
||||
void LugiaPreFightDialogue(void);
|
||||
void MagmaCavernMidDialogue(void);
|
||||
void MedichamRescueDialogue(void);
|
||||
void MewtwoPreFightDialogue(void);
|
||||
void MewtwoReFightDialogue(void);
|
||||
void MoltresPostStoryPreFightDialogue(void);
|
||||
void MoltresPreFightDialogue(void);
|
||||
void MoltresReFightDialogue(void);
|
||||
void RaikouPostStoryPreFightDialogue(void);
|
||||
void RaikouPreFightDialogue(void);
|
||||
void RaikouReFightDialogue(void);
|
||||
void RayquazaPostStoryPreFightDialogue(void);
|
||||
void RayquazaPreFightDialogue(void);
|
||||
void RayquazaReFightDialogue(void);
|
||||
void RegicePreFightDialogue(void);
|
||||
void RegirockPreFightDialogue(void);
|
||||
void RegisteelPreFightDialogue(void);
|
||||
void SkarmoryPreFightDialogue(void);
|
||||
void SkarmoryReFightDialogue(void);
|
||||
void SmeargleRescueDialogue(void);
|
||||
void SuicunePostStoryPreFightDialogue(void);
|
||||
void SuicunePreFightDialogue(void);
|
||||
void SuicuneReFightDialogue(void);
|
||||
void TeamMeaniesPreFightDialogue(void);
|
||||
void TeamMeaniesReFightDialogue(void);
|
||||
void ZapdosPostStoryPreFightDialogue(void);
|
||||
void ZapdosPreFightDialogue(void);
|
||||
void ZapdosReFightDialogue(void);
|
||||
void nullsub_100(u8, u8, u8);
|
||||
void sub_8086B14(void);
|
||||
void sub_8086B94(void);
|
||||
void sub_8086BDC(u8, s32); // TODO: should be u8
|
||||
void sub_8086E40(void);
|
||||
void sub_8086E9C(void);
|
||||
void sub_8086F00(void);
|
||||
void sub_8086F54(u8, u8);
|
||||
void sub_8087130(void);
|
||||
void sub_8087230(void);
|
||||
void sub_808729C(void);
|
||||
void sub_8087334(u8, u8);
|
||||
void sub_80877E8(void);
|
||||
void sub_8087848(void);
|
||||
void sub_80878F4(u8, u8);
|
||||
void sub_8087F54(void);
|
||||
void sub_8087FB4(void);
|
||||
void sub_8087FF8(void);
|
||||
void sub_8088088(u8, u8);
|
||||
void sub_80885A0(void);
|
||||
void sub_80885C4(void);
|
||||
void sub_8088608(void);
|
||||
void sub_8088618(void);
|
||||
void sub_808862C(void);
|
||||
void sub_80886C4(void);
|
||||
void sub_808875C(void);
|
||||
void sub_8088818(u8, u8);
|
||||
void sub_8088DC0(void);
|
||||
void sub_8088E5C(void);
|
||||
void sub_8089168(void);
|
||||
void sub_80892C8(void);
|
||||
void sub_8089328(void);
|
||||
void sub_80893B4(u8, u8);
|
||||
void sub_808970C(void);
|
||||
void sub_808974C(void);
|
||||
void sub_8089788(Entity *entity, u8, u8);
|
||||
void sub_80897F0(void);
|
||||
void sub_8089878(void);
|
||||
void sub_80898E4(void);
|
||||
void sub_8089914(void);
|
||||
void sub_8089978(void);
|
||||
void sub_8089A00(u8, u8);
|
||||
void sub_8089C44(void);
|
||||
void sub_8089C90(void);
|
||||
void sub_8089CFC(u8, u8);
|
||||
void sub_8089EFC(void);
|
||||
void sub_8089F44(void);
|
||||
void sub_8089F8C(void);
|
||||
void sub_8089FF0(u8, u8);
|
||||
void sub_808A264(void);
|
||||
void sub_808A2C0(void);
|
||||
void sub_808A308(void);
|
||||
void sub_808A36C(u8, u8);
|
||||
void sub_808A608(void);
|
||||
void sub_808A668(void);
|
||||
void sub_808A6E8(u8, u8);
|
||||
void sub_808A9E4(void);
|
||||
void sub_808AA3C(void);
|
||||
void sub_808AA94(void);
|
||||
void sub_808AAF0(u8, u8);
|
||||
void sub_808AC3C(void);
|
||||
void sub_808ACC0(void);
|
||||
void sub_808AD48(void);
|
||||
void sub_808ADCC(void);
|
||||
void sub_808AE54(u8, u8, Position *pos);
|
||||
void sub_808AEC8(u8, u8, Position *pos);
|
||||
void sub_808AF3C(u8, u8, Position *pos);
|
||||
void sub_808AFB0(u8);
|
||||
void sub_808B030(u8);
|
||||
void sub_808B0B0(u8);
|
||||
void sub_808B2F4(void);
|
||||
void sub_808B35C(void);
|
||||
void sub_808B3E4(u8, u8, u8);
|
||||
void sub_808BDEC(void);
|
||||
void sub_808BE70(u8, u8, u8);
|
||||
void sub_808C10C(void);
|
||||
void sub_808C1A4(u8, u8, u8);
|
||||
void sub_808C3A0(void);
|
||||
void sub_808C414(u8, u8, u8);
|
||||
void sub_808C5C0(void);
|
||||
void sub_808C938(void);
|
||||
void sub_808C948(Entity *entity, u8);
|
||||
void sub_808C998(void);
|
||||
void sub_808C9C4(void);
|
||||
void sub_808CB5C(void);
|
||||
void sub_808CBB0(void);
|
||||
void sub_808CD44(void);
|
||||
void sub_808CD9C(void);
|
||||
|
||||
#endif /* ifndef GUARD_DUNGEON_CUTSCENE_H */
|
||||
|
|
@ -29,5 +29,6 @@ void sub_80859F0(s32 direction);
|
|||
bool8 IsMovingClient(Entity *entity);
|
||||
void sub_8085B0C(Entity *pokemon);
|
||||
void sub_8085B4C(struct_8085B80 a0[], s16 *a1[], Entity *a2[], s32 a3);
|
||||
void sub_80857B8(void);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -166,8 +166,6 @@ SECTIONS {
|
|||
src/wonder_mail_3_mid.o(.text);
|
||||
src/mission_reward.o(.text);
|
||||
src/code_8072F3C.o(.text);
|
||||
asm/wonder_mail_3_mid.o(.text);
|
||||
src/wonder_mail_3_1.o(.text);
|
||||
src/makuhita_dojo1.o(.text);
|
||||
src/makuhita_dojo2.o(.text);
|
||||
src/wonder_mail_4.o(.text);
|
||||
|
|
@ -302,9 +300,7 @@ SECTIONS {
|
|||
src/code_8085E98.o(.text);
|
||||
src/code_80861A8.o(.text);
|
||||
src/code_80869E4.o(.text);
|
||||
src/code_8086A3C.o(.text);
|
||||
asm/code_8086A3C.o(.text);
|
||||
src/code_8057824_1.o(.text);
|
||||
src/dungeon_cutscenes.o(.text);
|
||||
src/pokemon.o(.text);
|
||||
asm/pokemon.o(.text);
|
||||
src/pokemon_mid.o(.text);
|
||||
|
|
|
|||
|
|
@ -1,8 +1,84 @@
|
|||
#include "global.h"
|
||||
#include "code_8012A18_1.h"
|
||||
#include "sprite_oam.h"
|
||||
#include "text_util.h"
|
||||
#include "text2.h"
|
||||
|
||||
struct unkStruct_203B1FC
|
||||
{
|
||||
// size: 0x198
|
||||
u32 unk0;
|
||||
u8 unk4;
|
||||
SpriteOAM unk6;
|
||||
SpriteOAM unkE;
|
||||
u8 unk16;
|
||||
u8 unk17;
|
||||
u8 unk18;
|
||||
u8 unk1B;
|
||||
u8 unk1C;
|
||||
s16 unk1E[1];
|
||||
u8 fill20[0x8A - 0x20];
|
||||
s16 unk8A[2];
|
||||
u8 fill8E[0xF8 - 0x8E];
|
||||
u8 *unkF8;
|
||||
u8 unkFC[54];
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B1FC *gUnknown_203B1FC;
|
||||
|
||||
// https://decomp.me/scratch/6BUMI - Seth
|
||||
s32 sub_8015F44(void)
|
||||
{
|
||||
|
||||
#ifndef NONMATCHING
|
||||
register s32 index asm("r2");
|
||||
#else
|
||||
s32 index;
|
||||
#endif
|
||||
s32 counter;
|
||||
index = 0;
|
||||
|
||||
if(index < gUnknown_203B1FC->unk1B)
|
||||
{
|
||||
if(gUnknown_203B1FC->unkF8[0] == '\0')
|
||||
return index;
|
||||
index = 1;
|
||||
counter = 1;
|
||||
while (1) {
|
||||
|
||||
if(counter >= gUnknown_203B1FC->unk1B)
|
||||
return index;
|
||||
if(gUnknown_203B1FC->unkF8[counter] == '\0')
|
||||
return index;
|
||||
index = counter + 1;
|
||||
counter = index;
|
||||
}
|
||||
}
|
||||
return index;
|
||||
}
|
||||
|
||||
void sub_8015F84(void)
|
||||
{
|
||||
u32 uVar2;
|
||||
const struct unkChar *puVar3;
|
||||
s32 index;
|
||||
s32 total;
|
||||
|
||||
total = 0;
|
||||
for(index = 0; index < gUnknown_203B1FC->unk1B; index++)
|
||||
{
|
||||
gUnknown_203B1FC->unk1E[index] = total;
|
||||
if (gUnknown_203B1FC->unkF8[index] == 0) {
|
||||
gUnknown_203B1FC->unk8A[index] = 8;
|
||||
return;
|
||||
}
|
||||
uVar2 = ReturnIntFromChar2(gUnknown_203B1FC->unkF8[index]);
|
||||
puVar3 = GetCharacter(uVar2);
|
||||
gUnknown_203B1FC->unk8A[index] = puVar3->unk6;
|
||||
total += puVar3->unk6;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Above code is in code_80130A8.s
|
||||
|
||||
s32 sub_8015FEC(u8 *buffer, s32 size)
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include "dungeon_util.h"
|
||||
#include "game_options.h"
|
||||
#include "move_effects_target.h"
|
||||
#include "moves.h"
|
||||
#include "pokemon.h"
|
||||
#include "structs/dungeon_entity.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
|
|
@ -294,3 +295,42 @@ void sub_806A2BC(Entity *pokemon, u8 param_2)
|
|||
|
||||
void nullsub_95(void)
|
||||
{}
|
||||
|
||||
void sub_806A338(void)
|
||||
{
|
||||
Entity *entity;
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < DUNGEON_MAX_POKEMON; index++)
|
||||
{
|
||||
entity = gDungeon->allPokemon[index];
|
||||
if (EntityExists(entity) && (GetEntInfo(entity)->waitingStruct.waitingStatus == STATUS_SNATCH))
|
||||
{
|
||||
gDungeon->snatchPokemon = entity;
|
||||
ASM_MATCH_TRICK(entity);
|
||||
gDungeon->unk17B3C = GetEntInfo(entity)->unk98;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_806A390(Entity *pokemon)
|
||||
{
|
||||
s32 index;
|
||||
EntityInfo *info;
|
||||
Move *move;
|
||||
|
||||
info = pokemon->info;
|
||||
for(index = 0; index < MAX_MON_MOVES; index++)
|
||||
{
|
||||
move = &info->moves.moves[index];
|
||||
|
||||
if(move->moveFlags & MOVE_FLAG_EXISTS)
|
||||
{
|
||||
move->moveFlags2 &= 0xF7;
|
||||
move->moveFlags2 &= 0xEF;
|
||||
move->moveFlags2 |= MOVE_FLAG2_UNK4;
|
||||
move->PP = GetMoveBasePP(move);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
#include "globaldata.h"
|
||||
#include "constants/input.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "code_80958E8.h"
|
||||
#include "code_80A26CC.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
|
|
@ -61,12 +63,13 @@ ALIGNED(4) const u8 gUnknown_80E0754[] = {0x83, 0xC0};
|
|||
void sub_802F9C0(void);
|
||||
void sub_802FA50(void);
|
||||
const u8 *sub_80974A0(s16 index);
|
||||
extern bool8 sub_802FCF0(u32);
|
||||
extern s32 sub_802FBF4(void);
|
||||
extern bool8 sub_802FCF0(void);
|
||||
s32 sub_802FBF4(void);
|
||||
extern u8 sub_8097384(s16);
|
||||
|
||||
u32 sub_802F73C(u32 r0, UnkTextStruct2_sub *r1, u32 r2, u8 r3)
|
||||
{
|
||||
if (sub_802FCF0(r0))
|
||||
if (sub_802FCF0())
|
||||
return 0;
|
||||
|
||||
if (gUnknown_203B314 == NULL)
|
||||
|
|
@ -223,3 +226,69 @@ void sub_802FA50(void)
|
|||
}
|
||||
sub_80073E0(gUnknown_203B314->sBC.s0.unk34);
|
||||
}
|
||||
|
||||
static inline void sub_802FBF4_sub(u8 *test, s32 counter)
|
||||
{
|
||||
test[counter] = 0;
|
||||
}
|
||||
|
||||
s32 sub_802FBF4(void)
|
||||
{
|
||||
bool8 bVar1;
|
||||
u32 dungeonIndex;
|
||||
s32 iVar6;
|
||||
s32 counter;
|
||||
s32 index;
|
||||
|
||||
counter = 0;
|
||||
for(index = 0; index < 0x2E; index++)
|
||||
{
|
||||
iVar6 = iVar6 = (s16)index; // NOTE: LOLOL
|
||||
if (((sub_80A27CC(index) != 0) && (iVar6 != 0x13)) && (iVar6 != 0x1d)) {
|
||||
gUnknown_203B314->unk0[counter] = iVar6;
|
||||
sub_802FBF4_sub(gUnknown_203B314->unk5C, counter);
|
||||
sub_802FBF4_sub(gUnknown_203B314->unk8A, counter);
|
||||
if ((gUnknown_203B314->unkB8 != 0) && (iVar6 != 0xd)) {
|
||||
dungeonIndex = sub_80A270C(index);
|
||||
bVar1 = FALSE;
|
||||
if (0x1e >= iVar6)
|
||||
{
|
||||
if (sub_8097384(iVar6) == 0) {
|
||||
if (iVar6 == 6) {
|
||||
if (sub_8097384(0x13) != 0) {
|
||||
gUnknown_203B314->unk0[counter] = 0x13;
|
||||
bVar1 = TRUE;
|
||||
}
|
||||
}
|
||||
else if ((iVar6 == 10) && (sub_8097384(0x1d) != 0)) {
|
||||
gUnknown_203B314->unk0[counter] = 0x1d;
|
||||
bVar1 = TRUE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
bVar1 = TRUE;
|
||||
}
|
||||
}
|
||||
gUnknown_203B314->unk5C[counter] = bVar1;
|
||||
if ((!bVar1) && (0 < CountJobsinDungeon(dungeonIndex))) {
|
||||
gUnknown_203B314->unk8A[counter] = 1;
|
||||
}
|
||||
}
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
return counter;
|
||||
}
|
||||
|
||||
bool8 sub_802FCF0(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 0x2E; i++) {
|
||||
if (sub_80A27CC(i))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,150 +1,12 @@
|
|||
#include "global.h"
|
||||
#include "constants/weather.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "dungeon_cutscenes.h"
|
||||
#include "dungeon_music.h"
|
||||
#include "dungeon_util_1.h"
|
||||
#include "exclusive_pokemon.h"
|
||||
#include "weather.h"
|
||||
|
||||
extern void SkarmoryPreFightDialogue();
|
||||
extern void SkarmoryReFightDialogue();
|
||||
extern void sub_8086E40();
|
||||
extern void TeamMeaniesPreFightDialogue();
|
||||
extern void TeamMeaniesReFightDialogue();
|
||||
extern void sub_8087130();
|
||||
extern void ZapdosPreFightDialogue();
|
||||
extern void ZapdosReFightDialogue();
|
||||
extern void ZapdosPostStoryPreFightDialogue();
|
||||
extern void MoltresPreFightDialogue();
|
||||
extern void MoltresReFightDialogue();
|
||||
extern void MoltresPostStoryPreFightDialogue();
|
||||
extern void ArticunoPreFightDialogue();
|
||||
extern void ArticunoReFightDialogue();
|
||||
extern void ArticunoPostStoryPreFightDialogue();
|
||||
extern void sub_8088608();
|
||||
extern void sub_8088618();
|
||||
extern void GroudonPreFightDialogue();
|
||||
extern void GroudonReFightDialogue();
|
||||
extern void GroudonPostStoryPreFightDialogue();
|
||||
extern void MagmaCavernMidDialogue();
|
||||
extern void sub_8089168();
|
||||
extern void RayquazaPreFightDialogue();
|
||||
extern void RayquazaReFightDialogue();
|
||||
extern void RayquazaPostStoryPreFightDialogue();
|
||||
extern void sub_80897F0();
|
||||
extern void sub_8089878();
|
||||
extern void sub_80898E4();
|
||||
extern void MewtwoPreFightDialogue();
|
||||
extern void MewtwoReFightDialogue();
|
||||
extern void EnteiPreFightDialogue();
|
||||
extern void EnteiReFightDialogue();
|
||||
extern void EnteiPostStoryPreFightDialogue();
|
||||
extern void RaikouPreFightDialogue();
|
||||
extern void RaikouReFightDialogue();
|
||||
extern void RaikouPostStoryPreFightDialogue();
|
||||
extern void SuicunePreFightDialogue();
|
||||
extern void SuicuneReFightDialogue();
|
||||
extern void SuicunePostStoryPreFightDialogue();
|
||||
extern void HoOhPreFightDialogue();
|
||||
extern void HoOhReFightDialogue();
|
||||
extern void LatiosPreFightDialogue();
|
||||
extern void LatiosReFightDialogue();
|
||||
extern void sub_808AC3C();
|
||||
extern void RegirockPreFightDialogue();
|
||||
extern void RegicePreFightDialogue();
|
||||
extern void RegisteelPreFightDialogue();
|
||||
extern void JirachiPreFightDialogue();
|
||||
extern void JirachiReFightDialogue();
|
||||
extern void LugiaPreFightDialogue();
|
||||
extern void KyogrePreFightDialogue();
|
||||
extern void DeoxysPreFightDialogue();
|
||||
extern void CelebiJoinDialogue();
|
||||
extern void sub_808C998();
|
||||
extern void MedichamRescueDialogue();
|
||||
extern void DummyFightDialogue();
|
||||
extern void SmeargleRescueDialogue();
|
||||
extern void sub_808CD9C();
|
||||
extern void sub_8085764();
|
||||
extern void sub_80857B8();
|
||||
|
||||
extern void sub_8086BDC(u32,u8);
|
||||
extern void sub_8086F54(u32,u8);
|
||||
extern void sub_8087334(u32,u8);
|
||||
extern void sub_80878F4(u32,u8);
|
||||
extern void sub_8088088(u32,u8);
|
||||
extern void sub_8088818(u32,u8);
|
||||
extern void sub_80893B4(u32,u8);
|
||||
extern void sub_8089788(Entity *,u32,u8);
|
||||
extern void sub_8089A00(u32,u8);
|
||||
extern void sub_8089CFC(u32,u8);
|
||||
extern void sub_8089FF0(u32,u8);
|
||||
extern void sub_808A36C(u32,u8);
|
||||
extern void sub_808A6E8(u32,u8);
|
||||
extern void sub_808AAF0(u32,u8);
|
||||
extern void sub_808AE54(u32,u8,s16 *);
|
||||
extern void sub_808AEC8(u32,u8,s16 *);
|
||||
extern void sub_808AF3C(u32,u8,s16 *);
|
||||
extern void sub_808B3E4(u32,u8,u8);
|
||||
extern void sub_808BE70(u32,u8,u8);
|
||||
extern void sub_808C1A4(u32,u8,u8);
|
||||
extern void sub_808C414(u32,u8,u8);
|
||||
extern void nullsub_100(u32,u8,u8);
|
||||
extern void sub_808C948(Entity *,u8);
|
||||
|
||||
extern void sub_808AFB0(u8);
|
||||
extern void sub_808B030(u8);
|
||||
extern void sub_808B0B0(u8);
|
||||
|
||||
extern void sub_8086B14(void);
|
||||
extern void sub_8086B94(void);
|
||||
extern void sub_8086E9C(void);
|
||||
extern void sub_8086F00(void);
|
||||
extern void sub_8087230(void);
|
||||
extern void sub_808729C(void);
|
||||
extern void sub_80877E8(void);
|
||||
extern void sub_8087848(void);
|
||||
extern void sub_8087F54(void);
|
||||
extern void sub_8087FB4(void);
|
||||
extern void sub_8087FF8(void);
|
||||
extern void sub_80885A0(void);
|
||||
extern void sub_80885C4(void);
|
||||
extern void sub_808862C(void);
|
||||
extern void sub_80886C4(void);
|
||||
extern void sub_808875C(void);
|
||||
extern void sub_8088DC0(void);
|
||||
extern void sub_8088E5C(void);
|
||||
extern void sub_80892C8(void);
|
||||
extern void sub_8089328(void);
|
||||
extern void sub_808970C(void);
|
||||
extern void sub_808974C(void);
|
||||
extern void sub_8089914(void);
|
||||
extern void sub_8089978(void);
|
||||
extern void sub_8089C44(void);
|
||||
extern void sub_8089C90(void);
|
||||
extern void sub_8089EFC(void);
|
||||
extern void sub_8089F44(void);
|
||||
extern void sub_8089F8C(void);
|
||||
extern void sub_808A264(void);
|
||||
extern void sub_808A2C0(void);
|
||||
extern void sub_808A308(void);
|
||||
extern void sub_808A608(void);
|
||||
extern void sub_808A668(void);
|
||||
extern void sub_808A9E4(void);
|
||||
extern void sub_808AA3C(void);
|
||||
extern void sub_808AA94(void);
|
||||
extern void sub_808ACC0(void);
|
||||
extern void sub_808AD48(void);
|
||||
extern void sub_808ADCC(void);
|
||||
extern void sub_808B2F4(void);
|
||||
extern void sub_808B35C(void);
|
||||
extern void sub_808BDEC(void);
|
||||
extern void sub_808C10C(void);
|
||||
extern void sub_808C3A0(void);
|
||||
extern void sub_808C5C0(void);
|
||||
extern void sub_808C938(void);
|
||||
extern void sub_808C9C4(void);
|
||||
extern void sub_808CB5C(void);
|
||||
extern void sub_808CBB0(void);
|
||||
extern void sub_808CD44(void);
|
||||
extern void sub_8040A84(void);
|
||||
|
||||
struct unkData_8107234
|
||||
|
|
@ -156,7 +18,6 @@ extern struct unkData_8107234 gUnknown_8107234[];
|
|||
|
||||
void sub_8084854(struct unkData_8107234 *);
|
||||
|
||||
|
||||
void sub_80847D4(void)
|
||||
{
|
||||
u32 bossBattleIndex;
|
||||
|
|
@ -647,13 +508,13 @@ void sub_8084E00(Entity *entity, u8 param_2, u8 param_3)
|
|||
sub_808AAF0(param_2,gDungeon->unk3A0D);
|
||||
break;
|
||||
case 0x2e:
|
||||
sub_808AE54(param_2,gDungeon->unk3A0D,&entity->pos.x);
|
||||
sub_808AE54(param_2,gDungeon->unk3A0D,&entity->pos);
|
||||
break;
|
||||
case 0x2f:
|
||||
sub_808AEC8(param_2,gDungeon->unk3A0D,&entity->pos.x);
|
||||
sub_808AEC8(param_2,gDungeon->unk3A0D,&entity->pos);
|
||||
break;
|
||||
case 0x30:
|
||||
sub_808AF3C(param_2,gDungeon->unk3A0D,&entity->pos.x);
|
||||
sub_808AF3C(param_2,gDungeon->unk3A0D,&entity->pos);
|
||||
break;
|
||||
case 0x31:
|
||||
case 0x32:
|
||||
|
|
|
|||
|
|
@ -1,474 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "code_8086A3C.h"
|
||||
|
||||
#include "code_803E46C.h"
|
||||
#include "code_803E668.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "code_80869E4.h"
|
||||
#include "constants/bg_music.h"
|
||||
#include "constants/direction.h"
|
||||
#include "constants/monster.h"
|
||||
#include "dungeon_music.h"
|
||||
#include "dungeon_pokemon_attributes.h"
|
||||
#include "dungeon_util_1.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "exclusive_pokemon.h"
|
||||
#include "pokemon_3.h"
|
||||
#include "pokemon.h"
|
||||
#include "structs/dungeon_entity.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
|
||||
extern u8 sub_8044B28(void);
|
||||
extern u8 gUnknown_202E038[];
|
||||
extern void sub_8085374();
|
||||
extern void sub_8068FE0(Entity *, u32, u32);
|
||||
extern void sub_8086448(void);
|
||||
extern void SkarmoryEntry(Entity *);
|
||||
extern void sub_8086A54(Entity *);
|
||||
extern void sub_8087144();
|
||||
extern void sub_8072008(Entity *pokemon, Entity *r1, u32 r2, u8 r3, u32);
|
||||
extern bool8 sub_8085B80(struct_8085B80 *);
|
||||
|
||||
extern const u8 gUnknown_810739C[];
|
||||
extern const u8 gUnknown_81073D4[];
|
||||
extern const u8 gUnknown_810740C[];
|
||||
extern const s16 gUnknown_80F57CC;
|
||||
extern const struct DungeonDialogueStruct gUnknown_8101440;
|
||||
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_1;
|
||||
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_2;
|
||||
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_3;
|
||||
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_4;
|
||||
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_5;
|
||||
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_6;
|
||||
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_7;
|
||||
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_8;
|
||||
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_9;
|
||||
extern const struct DungeonDialogueStruct gSkarmoryReFightDialogue_1;
|
||||
extern const struct DungeonDialogueStruct gSkarmoryReFightDialogue_2;
|
||||
extern const struct DungeonDialogueStruct gSkarmoryReFightDialogue_3;
|
||||
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_1;
|
||||
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_2;
|
||||
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_3;
|
||||
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_4;
|
||||
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_5;
|
||||
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_6;
|
||||
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_7;
|
||||
extern const struct DungeonDialogueStruct gTeamMeaniesReFightDialogue_1;
|
||||
extern const struct DungeonDialogueStruct gTeamMeaniesReFightDialogue_2;
|
||||
extern const struct DungeonDialogueStruct gTeamMeaniesReFightDialogue_3;
|
||||
extern const struct DungeonDialogueStruct gTeamMeaniesReFightDialogue_4;
|
||||
extern const struct DungeonDialogueStruct gTeamMeaniesReFightDialogue_5;
|
||||
|
||||
extern const struct DungeonDialogueStruct gUnknown_8100D3C;
|
||||
|
||||
void sub_8086A3C(Entity *pokemon)
|
||||
{
|
||||
pokemon->info->unk15C = 1;
|
||||
pokemon->info->unk15E = 1;
|
||||
}
|
||||
|
||||
void sub_8086A54(Entity *pokemon)
|
||||
{
|
||||
pokemon->info->unk15C = 1;
|
||||
pokemon->info->unk15E = 0;
|
||||
}
|
||||
|
||||
void SetupBossFightHP(Entity *pokemon, s32 newHP, u16 songIndex)
|
||||
{
|
||||
EntityInfo *entityInfo = GetEntInfo(pokemon);
|
||||
|
||||
entityInfo->bossFlag = TRUE;
|
||||
|
||||
// BUG: Source of the Reviver Seed Boss Glitch
|
||||
//
|
||||
// Video to demonstration:
|
||||
// https://www.youtube.com/watch?v=rHu7EehrZ68
|
||||
entityInfo->originalHP = entityInfo->maxHPStat;
|
||||
if (newHP != 0) {
|
||||
entityInfo->maxHPStat = newHP;
|
||||
entityInfo->HP = newHP;
|
||||
}
|
||||
|
||||
gDungeon->bossSongIndex = songIndex;
|
||||
SetDefaultIQSkills(entityInfo->IQSkillMenuFlags, entityInfo->bossFlag);
|
||||
LoadIQSkills(pokemon);
|
||||
}
|
||||
|
||||
void sub_8086AC0(void)
|
||||
{
|
||||
if(!sub_8044B28())
|
||||
if(gDungeon->unk2 == 0)
|
||||
sub_8097FF8();
|
||||
}
|
||||
|
||||
u8 sub_8086AE4(s16 _index)
|
||||
{
|
||||
s32 pokeIndex = _index;
|
||||
|
||||
if(gDungeon->unk65C == 0)
|
||||
return 1;
|
||||
else
|
||||
return HasRecruitedMon(pokeIndex);
|
||||
}
|
||||
|
||||
void sub_8086B14(void)
|
||||
{
|
||||
Entity * LeaderEntity;
|
||||
Entity * DiglettEntity;
|
||||
Entity * SkarmoryEntity;
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
DiglettEntity = GetEntityFromClientType(4);
|
||||
SkarmoryEntity = GetEntityFromClientType(3);
|
||||
DungeonStartNewBGM(MUS_IN_THE_DEPTHS_OF_THE_PIT);
|
||||
sub_8085374();
|
||||
sub_80854D4();
|
||||
sub_8085930(DIRECTION_NORTH);
|
||||
sub_80855E4(sub_8086A3C);
|
||||
sub_8086A3C(SkarmoryEntity);
|
||||
DiglettEntity->info->unk15C = 1;
|
||||
sub_8085860(LeaderEntity->pos.x,LeaderEntity->pos.y - 2);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038,MONSTER_DIGLETT);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038 + 0x50, MONSTER_SKARMORY);
|
||||
}
|
||||
|
||||
void sub_8086B94(void)
|
||||
{
|
||||
Entity * LeaderEntity;
|
||||
Entity * DiglettEntity;
|
||||
Entity * SkarmoryEntity;
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
DiglettEntity = GetEntityFromClientType(4);
|
||||
SkarmoryEntity = GetEntityFromClientType(3);
|
||||
|
||||
sub_8068FE0(SkarmoryEntity,0x21c,0);
|
||||
sub_8068FE0(DiglettEntity,0x21c,0);
|
||||
sub_80854D4();
|
||||
sub_8085930(DIRECTION_NORTH);
|
||||
sub_8085860(LeaderEntity->pos.x,LeaderEntity->pos.y);
|
||||
}
|
||||
|
||||
void sub_8086BDC(char param_1, s32 param_2)
|
||||
{
|
||||
if ((((param_2 * 0x1000000) - 0x1000000U) >> 0x18 < 2) && (param_1 == 3)) {
|
||||
sub_8097FA8(1);
|
||||
gDungeon->unk2 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void SkarmoryPreFightDialogue(void)
|
||||
{
|
||||
Entity *LeaderEntity;
|
||||
Entity *PartnerEntity;
|
||||
Entity * DiglettEntity;
|
||||
Entity * SkarmoryEntity;
|
||||
|
||||
Position32 pos1;
|
||||
Position32 pos2;
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader(); // Player
|
||||
PartnerEntity = GetPartnerEntity(); // Partner
|
||||
DiglettEntity = GetEntityFromClientType(4); // Diglett
|
||||
SkarmoryEntity = GetEntityFromClientType(3); // Skarmory
|
||||
|
||||
pos1.x = DiglettEntity->pixelPos.x;
|
||||
pos1.y = DiglettEntity->pixelPos.y + 0x3000;
|
||||
|
||||
pos2.x = SkarmoryEntity->pixelPos.x;
|
||||
pos2.y = SkarmoryEntity->pixelPos.y + 0x2000;
|
||||
|
||||
sub_8086448();
|
||||
sub_803E708(10,0x46);
|
||||
SpriteShockEffect(PartnerEntity);
|
||||
sub_803E708(0x20,0x46);
|
||||
sub_803E708(10,0x46);
|
||||
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_1);
|
||||
ShiftCameraToPosition(&pos1,0x40);
|
||||
sub_803E708(0x40,0x46);
|
||||
ShiftCameraToPosition(&pos2,0x30);
|
||||
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_2);
|
||||
sub_803E708(10,0x46);
|
||||
DiglettEntity->info->unk15D = 1;
|
||||
ShiftCameraToPosition(&pos1,0x30);
|
||||
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_3); // Diglett: ...I...\nI'm scared.
|
||||
sub_803E708(10,0x46);
|
||||
ShiftCameraToPosition(&pos2,0x20);
|
||||
sub_803E708(0x20,0x46);
|
||||
SkarmoryEntry(SkarmoryEntity);
|
||||
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_4); // Skarmory: You!\nWhat do you think you're doing here?!
|
||||
sub_803E708(10,0x46);
|
||||
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_5);
|
||||
sub_803E708(10,0x46);
|
||||
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_6);
|
||||
sub_803E708(10,0x46);
|
||||
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_7);
|
||||
sub_803E708(10,0x46);
|
||||
sub_806CDD4(SkarmoryEntity,0xd,0);
|
||||
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_8);
|
||||
sub_803E708(10,0x46);
|
||||
sub_80869E4(PartnerEntity,4,1,2);
|
||||
sub_80869E4(LeaderEntity,4,2,6);
|
||||
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_9);
|
||||
sub_80869E4(PartnerEntity,4,2,4);
|
||||
sub_80869E4(LeaderEntity,4,1,4);
|
||||
sub_803E708(10,0x46);
|
||||
DungeonStartNewBGM(MUS_BOSS_BATTLE);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
}
|
||||
|
||||
void SkarmoryReFightDialogue(void)
|
||||
{
|
||||
Entity * LeaderEntity;
|
||||
Entity * SkarmoryEntity;
|
||||
Position32 pos;
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
SkarmoryEntity = GetEntityFromClientType(3);
|
||||
pos.x = SkarmoryEntity->pixelPos.x;
|
||||
pos.y = SkarmoryEntity->pixelPos.y + 0x2000;
|
||||
sub_8086448();
|
||||
sub_803E708(10,0x46);
|
||||
SkarmoryEntry(SkarmoryEntity);
|
||||
ShiftCameraToPosition(&pos,0x10);
|
||||
DisplayDungeonDialogue(&gSkarmoryReFightDialogue_1);
|
||||
sub_803E708(10,0x46);
|
||||
DisplayDungeonDialogue(&gSkarmoryReFightDialogue_2);
|
||||
sub_803E708(10,0x46);
|
||||
sub_806CDD4(SkarmoryEntity,0xd,0);
|
||||
DisplayDungeonDialogue(&gSkarmoryReFightDialogue_3);
|
||||
sub_803E708(10,0x46);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
|
||||
DungeonStartNewBGM(MUS_BOSS_BATTLE);
|
||||
}
|
||||
|
||||
void sub_8086E40(void)
|
||||
{
|
||||
SpriteLookAroundEffect(xxx_call_GetLeader());
|
||||
sub_803E708(10,0x46);
|
||||
DisplayDungeonDialogue(&gUnknown_8100D3C);
|
||||
sub_803E708(10,0x46);
|
||||
gDungeon->unk2 = 1;
|
||||
}
|
||||
|
||||
void SkarmoryEntry(Entity * skarmoryEntity)
|
||||
{
|
||||
sub_806CDD4(skarmoryEntity,0xf,0);
|
||||
sub_8086A54(skarmoryEntity);
|
||||
PlaySoundEffect(0x1f8);
|
||||
sub_803E708(0x44,0x46);
|
||||
}
|
||||
|
||||
void sub_8086E9C(void)
|
||||
{
|
||||
Entity * LeaderEntity;
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
DungeonStartNewBGM(MUS_IN_THE_DEPTHS_OF_THE_PIT);
|
||||
sub_8085374();
|
||||
sub_80854D4();
|
||||
sub_8085930(DIRECTION_NORTH);
|
||||
sub_80855E4(sub_8086A3C);
|
||||
sub_808563C(sub_8086A3C);
|
||||
sub_8085860(LeaderEntity->pos.x,LeaderEntity->pos.y - 3);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038, MONSTER_METAPOD);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038 + 0x50, MONSTER_GENGAR);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038 + 0xA0, MONSTER_CATERPIE);
|
||||
}
|
||||
|
||||
void sub_8086F00(void)
|
||||
{
|
||||
Entity * LeaderEntity;
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
sub_80854D4();
|
||||
sub_8085930(DIRECTION_NORTH);
|
||||
sub_80855E4(sub_8086A3C);
|
||||
sub_8085860(LeaderEntity->pos.x,LeaderEntity->pos.y - 3);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038, MONSTER_METAPOD);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038 + 0x50, MONSTER_GENGAR);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038 + 0xA0, MONSTER_CATERPIE);
|
||||
}
|
||||
|
||||
// From @jiangzhengwenjz:
|
||||
// Matches this way for -O2 but can match w/o this hack on -O1
|
||||
// https://decomp.me/scratch/BTqWo
|
||||
void sub_8086F54(u8 param_1, u8 param_2)
|
||||
{
|
||||
Entity *entity;
|
||||
s32 index;
|
||||
u32 unk1 = 0;
|
||||
|
||||
|
||||
if (param_2 == 4 || param_2 == 5) {
|
||||
void *labels[2];
|
||||
labels[0] = labels[1] = &&label;
|
||||
|
||||
for(index = 0; index < 0x10; index++)
|
||||
{
|
||||
entity = gDungeon->wildPokemon[index];
|
||||
if ((EntityExists(entity)) && (entity->info->clientType != param_1)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(!unk1)
|
||||
{
|
||||
sub_8097FA8(3);
|
||||
label:
|
||||
gDungeon->unk2 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TeamMeaniesPreFightDialogue(void)
|
||||
{
|
||||
Entity *LeaderEntity;
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
sub_8086448();
|
||||
sub_803E708(10, 0x46);
|
||||
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_1);
|
||||
sub_803E708(10, 0x46);
|
||||
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_2);
|
||||
sub_803E708(10, 0x46);
|
||||
sub_8087144();
|
||||
DungeonStartNewBGM(MUS_THERES_TROUBLE);
|
||||
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_3);
|
||||
sub_803E708(10, 0x46);
|
||||
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_4);
|
||||
sub_803E708(10, 0x46);
|
||||
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_5);
|
||||
sub_803E708(10, 0x46);
|
||||
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_6);
|
||||
sub_803E708(10, 0x46);
|
||||
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_7);
|
||||
sub_803E708(10, 0x46);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos, 0x10);
|
||||
}
|
||||
|
||||
void TeamMeaniesReFightDialogue(void)
|
||||
{
|
||||
Entity *LeaderEntity;
|
||||
Entity *PartnerEntity;
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
PartnerEntity = GetPartnerEntity();
|
||||
sub_8086448();
|
||||
DisplayDungeonDialogue(&gTeamMeaniesReFightDialogue_1);
|
||||
sub_803E708(10, 0x46);
|
||||
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_2);
|
||||
sub_803E708(10, 0x46);
|
||||
sub_8087144();
|
||||
sub_803E708(10, 0x46);
|
||||
DisplayDungeonDialogue(&gTeamMeaniesReFightDialogue_2);
|
||||
sub_803E708(10, 0x46);
|
||||
DisplayDungeonDialogue(&gTeamMeaniesReFightDialogue_3);
|
||||
sub_803E708(10, 0x46);
|
||||
sub_806CDD4(LeaderEntity, 6, 4);
|
||||
sub_806CDD4(PartnerEntity, 6, 4);
|
||||
sub_803E708(10, 0x46);
|
||||
sub_806CDD4(LeaderEntity, 7, 4);
|
||||
sub_806CDD4(PartnerEntity, 7, 4);
|
||||
sub_803E708(10, 0x46);
|
||||
DisplayDungeonDialogue(&gTeamMeaniesReFightDialogue_4);
|
||||
DisplayDungeonDialogue(&gTeamMeaniesReFightDialogue_5);
|
||||
sub_803E708(10, 0x46);
|
||||
ShiftCameraToPosition(&LeaderEntity->pixelPos, 0x10);
|
||||
}
|
||||
|
||||
void sub_8087130(void)
|
||||
{
|
||||
sub_8086448();
|
||||
sub_80866C4(&gUnknown_8101440);
|
||||
}
|
||||
|
||||
void sub_8087144(void)
|
||||
{
|
||||
Entity *iVar2;
|
||||
Entity *iVar3;
|
||||
Entity *iVar4;
|
||||
s16 auStack_10c[28];
|
||||
s16 puStack_60[28];
|
||||
s16 puStack_5c[28];
|
||||
s16 *puStack_64[3];
|
||||
Entity *pEStack_58[3];
|
||||
struct_8085B80 auStack_4c[3];
|
||||
|
||||
iVar2 = GetEntityFromClientType(5);
|
||||
iVar3 = GetEntityFromClientType(6);
|
||||
iVar4 = GetEntityFromClientType(7);
|
||||
memcpy(auStack_10c,gUnknown_810739C, 0x38);
|
||||
memcpy(puStack_60, gUnknown_81073D4, 0x38);
|
||||
memcpy(puStack_5c, gUnknown_810740C, 0x38);
|
||||
puStack_64[0] = auStack_10c;
|
||||
puStack_64[1] = puStack_60;
|
||||
puStack_64[2] = puStack_5c;
|
||||
pEStack_58[0] = iVar2;
|
||||
pEStack_58[1] = iVar3;
|
||||
pEStack_58[2] = iVar4;
|
||||
DungeonStartNewBGM(MUS_THERES_TROUBLE);
|
||||
sub_8086A54(iVar2);
|
||||
sub_8086A54(iVar3);
|
||||
sub_8086A54(iVar4);
|
||||
sub_8085B4C(auStack_4c,puStack_64,pEStack_58,3);
|
||||
iVar2->info->unk15F = 1;
|
||||
iVar3->info->unk15F = 1;
|
||||
iVar4->info->unk15F = 1;
|
||||
while( TRUE ) {
|
||||
if (!sub_8085B80(auStack_4c)) break;
|
||||
sub_803E46C(0x46);
|
||||
}
|
||||
iVar2->info->unk15F = 0;
|
||||
iVar3->info->unk15F = 0;
|
||||
iVar4->info->unk15F = 0;
|
||||
}
|
||||
|
||||
void sub_8087230(void)
|
||||
{
|
||||
Entity *LeaderEntity;
|
||||
Entity *ZapdosEntity;
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
ZapdosEntity = GetEntityFromClientType(0x8);
|
||||
DungeonStartNewBGM(MUS_IN_THE_DEPTHS_OF_THE_PIT);
|
||||
sub_8085374();
|
||||
sub_80854D4();
|
||||
sub_8085930(4);
|
||||
sub_80855E4(sub_8086A3C);
|
||||
SetFacingDirection(ZapdosEntity, 0);
|
||||
sub_8086A3C(ZapdosEntity);
|
||||
sub_8085860(LeaderEntity->pos.x, LeaderEntity->pos.y - 3);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038, MONSTER_SHIFTRY);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038 + 0x50, MONSTER_ZAPDOS);
|
||||
}
|
||||
|
||||
void sub_808729C(void)
|
||||
{
|
||||
Entity *LeaderEntity;
|
||||
Entity *ZapdosEntity;
|
||||
|
||||
LeaderEntity = xxx_call_GetLeader();
|
||||
ZapdosEntity = GetEntityFromClientType(8);
|
||||
sub_80854D4();
|
||||
sub_8085930(4);
|
||||
sub_80855E4(sub_8086A3C);
|
||||
if (sub_8086AE4(0x91) != 0) {
|
||||
sub_8068FE0(ZapdosEntity,0x21c,0);
|
||||
}
|
||||
else {
|
||||
sub_8072008(ZapdosEntity,ZapdosEntity,gUnknown_80F57CC,0,0);
|
||||
SetFacingDirection(ZapdosEntity,0);
|
||||
sub_8086A3C(ZapdosEntity);
|
||||
}
|
||||
sub_8085860(LeaderEntity->pos.x,LeaderEntity->pos.y - 3);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038, MONSTER_SHIFTRY);
|
||||
CopyMonsterNametoBuffer(gUnknown_202E038 + 0x50, MONSTER_ZAPDOS);
|
||||
}
|
||||
|
||||
void sub_8087334(u8 param_1, u8 param_2)
|
||||
{
|
||||
if ((param_2 == 7 || param_2 == 8 || param_2 == 9) && (param_1 == 8)) {
|
||||
sub_8097FA8(5);
|
||||
gDungeon->unk2 = 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "dungeon.h"
|
||||
#include "memory.h"
|
||||
#include "pokemon.h"
|
||||
#include "random.h"
|
||||
#include "save.h"
|
||||
#include "text_util.h"
|
||||
#include "code_8094F88.h"
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "debug.h"
|
||||
#include "event_flag.h"
|
||||
#include "ground_main.h"
|
||||
#include "ground_map_1.h"
|
||||
#include "ground_script.h"
|
||||
|
|
@ -94,3 +95,27 @@ bool8 sub_80A4D48(s16 index)
|
|||
if (gGroundConversion_811BAF4[index].unk0 != 8) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
s32 GetAdjustedGroundMap(s16 param_1)
|
||||
{
|
||||
s32 iVar5;
|
||||
|
||||
iVar5 = param_1;
|
||||
|
||||
switch(iVar5)
|
||||
{
|
||||
case 9:
|
||||
case 0xC:
|
||||
iVar5 = (s16)(iVar5 + ((GetScriptVarValue(NULL, BASE_KIND) * 6) + GetScriptVarValue(NULL, BASE_LEVEL)));
|
||||
break;
|
||||
case 2:
|
||||
if (sub_80023E4(6)) {
|
||||
iVar5 = 3;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return iVar5;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "code_80A26CC.h"
|
||||
|
||||
bool8 sub_802FCF0(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 0x2E; i++) {
|
||||
if (sub_80A27CC(i))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
@ -141,7 +141,7 @@ void sub_8030E48(void)
|
|||
case WONDER_MAIL_TYPE_AOK:
|
||||
stack.mailDescriptionType = 10;
|
||||
break;
|
||||
case 5:
|
||||
case WONDER_MAIL_TYPE_THANK_YOU:
|
||||
stack.mailDescriptionType = 11;
|
||||
break;
|
||||
case WONDER_MAIL_TYPE_NONE:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user