mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-30 12:58:10 -05:00
@@ -5,287 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_803C1D0
|
||||
sub_803C1D0:
|
||||
push {lr}
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
bl sub_803C1B4
|
||||
adds r1, r0, 0
|
||||
lsrs r0, r1, 31
|
||||
adds r0, r1, r0
|
||||
asrs r1, r0, 1
|
||||
lsls r0, r1, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x6
|
||||
bls _0803C1EC
|
||||
movs r0, 0x6
|
||||
_0803C1EC:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_803C1D0
|
||||
|
||||
thumb_func_start sub_803C1F0
|
||||
sub_803C1F0:
|
||||
lsls r0, 24
|
||||
ldr r1, _0803C1FC
|
||||
lsrs r0, 22
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0803C1FC: .4byte gUnknown_80E8BF8
|
||||
thumb_func_end sub_803C1F0
|
||||
|
||||
thumb_func_start GetDungeonTeamRankPts
|
||||
GetDungeonTeamRankPts:
|
||||
push {lr}
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
bl sub_803C1B4
|
||||
ldr r1, _0803C218
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0803C218: .4byte gUnknown_80E80A0
|
||||
thumb_func_end GetDungeonTeamRankPts
|
||||
|
||||
thumb_func_start sub_803C21C
|
||||
sub_803C21C:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, 0
|
||||
adds r4, r1, 0
|
||||
adds r0, r6, 0x4
|
||||
ldrb r1, [r6, 0x1]
|
||||
bl sub_803C1D0
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
movs r0, 0
|
||||
str r0, [r4, 0x18]
|
||||
movs r3, 0
|
||||
movs r1, 0x2
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x1E
|
||||
_0803C23E:
|
||||
strb r3, [r0]
|
||||
subs r0, 0x1
|
||||
subs r1, 0x1
|
||||
cmp r1, 0
|
||||
bge _0803C23E
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x20
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
movs r1, 0xA
|
||||
strb r1, [r4, 0x1F]
|
||||
ldrb r1, [r6, 0x11]
|
||||
adds r3, r0, 0
|
||||
cmp r1, 0x9
|
||||
bhi _0803C354
|
||||
lsls r0, r1, 2
|
||||
ldr r1, _0803C268
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0803C268: .4byte _0803C26C
|
||||
.align 2, 0
|
||||
_0803C26C:
|
||||
.4byte _0803C294
|
||||
.4byte _0803C2A2
|
||||
.4byte _0803C2B4
|
||||
.4byte _0803C2BE
|
||||
.4byte _0803C354
|
||||
.4byte _0803C2E0
|
||||
.4byte _0803C2EE
|
||||
.4byte _0803C300
|
||||
.4byte _0803C30A
|
||||
.4byte _0803C34A
|
||||
_0803C294:
|
||||
movs r0, 0
|
||||
strb r0, [r4, 0x16]
|
||||
adds r1, r2, 0x1
|
||||
movs r0, 0x64
|
||||
muls r0, r1
|
||||
str r0, [r4, 0x18]
|
||||
b _0803C358
|
||||
_0803C2A2:
|
||||
movs r0, 0x1
|
||||
strb r0, [r4, 0x16]
|
||||
adds r1, r2, 0x1
|
||||
movs r0, 0x64
|
||||
muls r0, r1
|
||||
str r0, [r4, 0x18]
|
||||
ldrb r0, [r6, 0x12]
|
||||
strb r0, [r4, 0x1C]
|
||||
b _0803C358
|
||||
_0803C2B4:
|
||||
movs r0, 0x2
|
||||
strb r0, [r4, 0x16]
|
||||
ldrb r0, [r6, 0x12]
|
||||
strb r0, [r4, 0x1C]
|
||||
b _0803C358
|
||||
_0803C2BE:
|
||||
movs r0, 0x3
|
||||
strb r0, [r4, 0x16]
|
||||
ldrb r0, [r6, 0x12]
|
||||
strb r0, [r4, 0x1C]
|
||||
adds r5, r6, 0x4
|
||||
adds r7, r4, 0
|
||||
adds r7, 0x1D
|
||||
_0803C2CC:
|
||||
ldrb r1, [r6, 0x1]
|
||||
adds r0, r5, 0
|
||||
adds r2, r7, 0
|
||||
bl sub_803C37C
|
||||
ldrb r0, [r4, 0x1C]
|
||||
ldrb r1, [r4, 0x1D]
|
||||
cmp r0, r1
|
||||
beq _0803C2CC
|
||||
b _0803C35A
|
||||
_0803C2E0:
|
||||
movs r0, 0
|
||||
strb r0, [r4, 0x16]
|
||||
adds r1, r2, 0x1
|
||||
movs r0, 0xC8
|
||||
muls r0, r1
|
||||
str r0, [r4, 0x18]
|
||||
b _0803C358
|
||||
_0803C2EE:
|
||||
movs r0, 0x1
|
||||
strb r0, [r4, 0x16]
|
||||
adds r1, r2, 0x1
|
||||
movs r0, 0xC8
|
||||
muls r0, r1
|
||||
str r0, [r4, 0x18]
|
||||
ldrb r0, [r6, 0x12]
|
||||
strb r0, [r4, 0x1C]
|
||||
b _0803C358
|
||||
_0803C300:
|
||||
movs r0, 0x2
|
||||
strb r0, [r4, 0x16]
|
||||
ldrb r0, [r6, 0x12]
|
||||
strb r0, [r4, 0x1C]
|
||||
b _0803C358
|
||||
_0803C30A:
|
||||
movs r0, 0x3
|
||||
strb r0, [r4, 0x16]
|
||||
ldrb r0, [r6, 0x12]
|
||||
strb r0, [r4, 0x1C]
|
||||
adds r5, r6, 0x4
|
||||
adds r7, r4, 0
|
||||
adds r7, 0x1D
|
||||
movs r0, 0x1E
|
||||
adds r0, r4
|
||||
mov r8, r0
|
||||
_0803C31E:
|
||||
ldrb r1, [r6, 0x1]
|
||||
adds r0, r5, 0
|
||||
adds r2, r7, 0
|
||||
bl sub_803C37C
|
||||
ldrb r0, [r4, 0x1C]
|
||||
ldrb r1, [r4, 0x1D]
|
||||
cmp r0, r1
|
||||
beq _0803C31E
|
||||
_0803C330:
|
||||
ldrb r1, [r6, 0x1]
|
||||
adds r0, r5, 0
|
||||
mov r2, r8
|
||||
bl sub_803C37C
|
||||
ldrb r0, [r4, 0x1C]
|
||||
ldrb r1, [r4, 0x1E]
|
||||
cmp r0, r1
|
||||
beq _0803C330
|
||||
ldrb r0, [r4, 0x1D]
|
||||
cmp r0, r1
|
||||
beq _0803C330
|
||||
b _0803C35A
|
||||
_0803C34A:
|
||||
movs r0, 0x4
|
||||
strb r0, [r4, 0x16]
|
||||
ldrb r0, [r6, 0x13]
|
||||
strb r0, [r3]
|
||||
b _0803C358
|
||||
_0803C354:
|
||||
movs r0, 0x5
|
||||
strb r0, [r4, 0x16]
|
||||
_0803C358:
|
||||
adds r5, r6, 0x4
|
||||
_0803C35A:
|
||||
movs r0, 0xC
|
||||
ldrsh r1, [r6, r0]
|
||||
adds r0, r4, 0
|
||||
bl CopyYellowMonsterNametoBuffer
|
||||
ldrh r0, [r6, 0xC]
|
||||
strh r0, [r4, 0x14]
|
||||
ldrb r1, [r6, 0x1]
|
||||
adds r0, r5, 0
|
||||
bl GetDungeonTeamRankPts
|
||||
str r0, [r4, 0x24]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_803C21C
|
||||
|
||||
thumb_func_start sub_803C37C
|
||||
sub_803C37C:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, 0
|
||||
mov r8, r2
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
bl sub_803C1B4
|
||||
adds r7, r0, 0
|
||||
adds r0, r6, 0
|
||||
adds r1, r7, 0
|
||||
bl sub_8090910
|
||||
_0803C398:
|
||||
movs r5, 0
|
||||
adds r0, r6, 0
|
||||
adds r1, r7, 0
|
||||
bl sub_8090910
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
cmp r4, 0xEA
|
||||
bne _0803C3BA
|
||||
movs r0, 0
|
||||
movs r1, 0x47
|
||||
movs r2, 0x1
|
||||
bl GetScriptVarArrayValue
|
||||
negs r1, r0
|
||||
orrs r1, r0
|
||||
lsrs r5, r1, 31
|
||||
_0803C3BA:
|
||||
cmp r4, 0xEB
|
||||
bne _0803C3CE
|
||||
movs r0, 0
|
||||
movs r1, 0x47
|
||||
movs r2, 0
|
||||
bl GetScriptVarArrayValue
|
||||
cmp r0, 0
|
||||
beq _0803C3CE
|
||||
movs r5, 0x1
|
||||
_0803C3CE:
|
||||
cmp r5, 0
|
||||
bne _0803C398
|
||||
mov r0, r8
|
||||
strb r4, [r0]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_803C37C
|
||||
|
||||
thumb_func_start sub_803C3E0
|
||||
sub_803C3E0:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -5,65 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8099690
|
||||
sub_8099690:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r0, _080996BC
|
||||
ldr r1, _080996C0
|
||||
bl OpenFileAndGetFileDataPtr
|
||||
adds r6, r0, 0
|
||||
cmp r4, 0x1
|
||||
beq _080996CC
|
||||
cmp r4, 0x2
|
||||
beq _080996D4
|
||||
ldr r0, _080996C4
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0xB]
|
||||
ldr r4, _080996C8
|
||||
cmp r0, 0
|
||||
beq _080996D6
|
||||
movs r0, 0x80
|
||||
lsls r0, 1
|
||||
adds r4, r0
|
||||
b _080996D6
|
||||
.align 2, 0
|
||||
_080996BC: .4byte gUnknown_8116028
|
||||
_080996C0: .4byte gSystemFileArchive
|
||||
_080996C4: .4byte gGameOptionsRef
|
||||
_080996C8: .4byte gFontPalette + 0x40
|
||||
_080996CC:
|
||||
ldr r4, _080996D0
|
||||
b _080996D6
|
||||
.align 2, 0
|
||||
_080996D0: .4byte gFontPalette + 0x180
|
||||
_080996D4:
|
||||
ldr r4, _08099704
|
||||
_080996D6:
|
||||
movs r0, 0xF0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x10
|
||||
bl sub_800388C
|
||||
adds r5, r4, 0
|
||||
movs r4, 0
|
||||
_080996E4:
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xF0
|
||||
adds r1, r5, 0
|
||||
adds r5, 0x4
|
||||
bl nullsub_5
|
||||
adds r4, 0x1
|
||||
cmp r4, 0xF
|
||||
ble _080996E4
|
||||
adds r0, r6, 0
|
||||
bl CloseFile
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08099704: .4byte gFontPalette + 0x1C0
|
||||
thumb_func_end sub_8099690
|
||||
|
||||
thumb_func_start sub_8099708
|
||||
sub_8099708:
|
||||
push {lr}
|
||||
|
||||
615
asm/code_80A59DC.s
Normal file
615
asm/code_80A59DC.s
Normal file
@@ -0,0 +1,615 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80A59DC
|
||||
sub_80A59DC:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x58
|
||||
ldr r7, _080A5A34
|
||||
ldr r0, [r7]
|
||||
cmp r0, 0
|
||||
bne _080A59F0
|
||||
b _080A5E5A
|
||||
_080A59F0:
|
||||
mov r9, sp
|
||||
mov r0, sp
|
||||
bl sub_809D248
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
bne _080A5A04
|
||||
str r0, [sp]
|
||||
str r0, [sp, 0x4]
|
||||
_080A5A04:
|
||||
ldr r0, _080A5A38
|
||||
mov r8, r0
|
||||
ldr r3, [r0]
|
||||
adds r0, r3, 0
|
||||
adds r0, 0xE4
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
mov r6, r8
|
||||
cmp r0, 0xAB
|
||||
bne _080A5A1A
|
||||
b _080A5BBE
|
||||
_080A5A1A:
|
||||
cmp r0, 0xAB
|
||||
bgt _080A5A46
|
||||
cmp r0, 0xA3
|
||||
bgt _080A5A3C
|
||||
cmp r0, 0xA2
|
||||
bge _080A5A76
|
||||
cmp r0, 0x4
|
||||
bne _080A5A2C
|
||||
b _080A5D76
|
||||
_080A5A2C:
|
||||
cmp r0, 0xA1
|
||||
bne _080A5A32
|
||||
b _080A5E28
|
||||
_080A5A32:
|
||||
b _080A5E46
|
||||
.align 2, 0
|
||||
_080A5A34: .4byte gGroundMapDungeon_3001B70
|
||||
_080A5A38: .4byte gGroundMapAction
|
||||
_080A5A3C:
|
||||
cmp r0, 0xA8
|
||||
beq _080A5AF4
|
||||
cmp r0, 0xAA
|
||||
beq _080A5AF4
|
||||
b _080A5E46
|
||||
_080A5A46:
|
||||
cmp r0, 0xB0
|
||||
bne _080A5A4C
|
||||
b _080A5C76
|
||||
_080A5A4C:
|
||||
cmp r0, 0xB0
|
||||
bgt _080A5A5E
|
||||
cmp r0, 0xAE
|
||||
bne _080A5A56
|
||||
b _080A5B58
|
||||
_080A5A56:
|
||||
cmp r0, 0xAF
|
||||
bne _080A5A5C
|
||||
b _080A5BD8
|
||||
_080A5A5C:
|
||||
b _080A5E46
|
||||
_080A5A5E:
|
||||
cmp r0, 0xDF
|
||||
beq _080A5A76
|
||||
cmp r0, 0xDF
|
||||
bgt _080A5A6E
|
||||
cmp r0, 0xBA
|
||||
bne _080A5A6C
|
||||
b _080A5D18
|
||||
_080A5A6C:
|
||||
b _080A5E46
|
||||
_080A5A6E:
|
||||
cmp r0, 0xE0
|
||||
bne _080A5A74
|
||||
b _080A5DDA
|
||||
_080A5A74:
|
||||
b _080A5E46
|
||||
_080A5A76:
|
||||
ldr r3, [r6]
|
||||
adds r2, r3, 0
|
||||
adds r2, 0xF4
|
||||
ldr r1, [r2]
|
||||
adds r0, r1, 0x2
|
||||
str r0, [r2]
|
||||
adds r4, r3, 0
|
||||
adds r4, 0xFC
|
||||
cmp r0, 0
|
||||
bge _080A5A8C
|
||||
adds r0, r1, 0x5
|
||||
_080A5A8C:
|
||||
asrs r1, r0, 2
|
||||
ldr r0, [r4]
|
||||
adds r0, r1
|
||||
str r0, [r4]
|
||||
ldr r0, [r2]
|
||||
movs r1, 0x3
|
||||
ands r0, r1
|
||||
str r0, [r2]
|
||||
ldr r5, _080A5AF0
|
||||
ldr r0, [r5]
|
||||
adds r2, r3, 0
|
||||
adds r2, 0xF8
|
||||
movs r1, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [sp]
|
||||
str r0, [sp, 0x8]
|
||||
ldr r0, [r6]
|
||||
adds r0, 0xFC
|
||||
ldr r1, [sp, 0x4]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
add r4, sp, 0x8
|
||||
str r1, [r4, 0x4]
|
||||
ldr r0, [r5]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r5]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A456C
|
||||
ldr r0, [sp]
|
||||
str r0, [sp, 0x8]
|
||||
ldr r0, [r6]
|
||||
adds r0, 0xFC
|
||||
ldr r1, [sp, 0x4]
|
||||
ldr r0, [r0]
|
||||
subs r1, r0
|
||||
str r1, [r4, 0x4]
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x1
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r5]
|
||||
b _080A5DD0
|
||||
.align 2, 0
|
||||
_080A5AF0: .4byte gGroundMapDungeon_3001B70
|
||||
_080A5AF4:
|
||||
ldr r2, [r6]
|
||||
adds r3, r2, 0
|
||||
adds r3, 0xF0
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xE8
|
||||
ldr r1, [r3]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [r3]
|
||||
adds r2, 0xF8
|
||||
cmp r1, 0
|
||||
bge _080A5B0E
|
||||
adds r1, 0x7
|
||||
_080A5B0E:
|
||||
asrs r1, 3
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
ldr r1, [r3]
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080A5B20
|
||||
adds r0, r1, 0x7
|
||||
_080A5B20:
|
||||
asrs r0, 3
|
||||
lsls r0, 3
|
||||
subs r0, r1, r0
|
||||
str r0, [r3]
|
||||
ldr r5, _080A5B54
|
||||
ldr r0, [r5]
|
||||
movs r1, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r6]
|
||||
adds r0, 0xF8
|
||||
ldr r1, [sp]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [sp, 0x10]
|
||||
ldr r0, [sp, 0x4]
|
||||
add r4, sp, 0x10
|
||||
str r0, [r4, 0x4]
|
||||
ldr r0, [r5]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r5]
|
||||
movs r1, 0
|
||||
b _080A5DD2
|
||||
.align 2, 0
|
||||
_080A5B54: .4byte gGroundMapDungeon_3001B70
|
||||
_080A5B58:
|
||||
adds r4, r3, 0
|
||||
adds r4, 0xF0
|
||||
adds r0, r3, 0
|
||||
adds r0, 0xE8
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [r4]
|
||||
adds r2, r3, 0
|
||||
adds r2, 0xF8
|
||||
cmp r1, 0
|
||||
bge _080A5B72
|
||||
adds r1, 0x7
|
||||
_080A5B72:
|
||||
asrs r1, 3
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080A5B84
|
||||
adds r0, r1, 0x7
|
||||
_080A5B84:
|
||||
asrs r0, 3
|
||||
lsls r0, 3
|
||||
subs r0, r1, r0
|
||||
str r0, [r4]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
bl sub_80A4580
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r0, 0xF8
|
||||
ldr r1, [sp]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [sp, 0x18]
|
||||
ldr r0, [sp, 0x4]
|
||||
add r4, sp, 0x18
|
||||
str r0, [r4, 0x4]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A456C
|
||||
b _080A5DCE
|
||||
_080A5BBE:
|
||||
ldr r0, [sp]
|
||||
ldr r1, [sp, 0x4]
|
||||
str r0, [sp, 0x20]
|
||||
str r1, [sp, 0x24]
|
||||
ldr r0, [r7]
|
||||
add r4, sp, 0x20
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
b _080A5DD2
|
||||
_080A5BD8:
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
mov r2, sp
|
||||
bl sub_80A456C
|
||||
mov r0, r8
|
||||
ldr r3, [r0]
|
||||
adds r4, r3, 0
|
||||
adds r4, 0xF0
|
||||
adds r1, r3, 0
|
||||
adds r1, 0xE8
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
str r0, [r4]
|
||||
adds r5, r3, 0
|
||||
adds r5, 0xF4
|
||||
adds r1, r3, 0
|
||||
adds r1, 0xEC
|
||||
ldr r0, [r5]
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
str r0, [r5]
|
||||
adds r2, r3, 0
|
||||
adds r2, 0xF8
|
||||
ldr r1, [r4]
|
||||
cmp r1, 0
|
||||
bge _080A5C12
|
||||
adds r1, 0x7
|
||||
_080A5C12:
|
||||
asrs r1, 3
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
adds r3, 0xFC
|
||||
ldr r1, [r5]
|
||||
cmp r1, 0
|
||||
bge _080A5C24
|
||||
adds r1, 0x7
|
||||
_080A5C24:
|
||||
asrs r1, 3
|
||||
ldr r0, [r3]
|
||||
adds r0, r1
|
||||
str r0, [r3]
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080A5C36
|
||||
adds r0, r1, 0x7
|
||||
_080A5C36:
|
||||
asrs r0, 3
|
||||
lsls r0, 3
|
||||
subs r0, r1, r0
|
||||
str r0, [r4]
|
||||
ldr r1, [r5]
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080A5C48
|
||||
adds r0, r1, 0x7
|
||||
_080A5C48:
|
||||
asrs r0, 3
|
||||
lsls r0, 3
|
||||
subs r0, r1, r0
|
||||
str r0, [r5]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
bl sub_80A4580
|
||||
mov r1, r8
|
||||
ldr r2, [r1]
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xF8
|
||||
ldr r0, [sp]
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
str r0, [sp, 0x28]
|
||||
adds r2, 0xFC
|
||||
mov r1, r9
|
||||
ldr r0, [r1, 0x4]
|
||||
ldr r1, [r2]
|
||||
adds r0, r1
|
||||
add r4, sp, 0x28
|
||||
b _080A5DC2
|
||||
_080A5C76:
|
||||
adds r4, r3, 0
|
||||
adds r4, 0xF0
|
||||
adds r1, r3, 0
|
||||
adds r1, 0xE8
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
str r0, [r4]
|
||||
adds r5, r3, 0
|
||||
adds r5, 0xF4
|
||||
adds r1, r3, 0
|
||||
adds r1, 0xEC
|
||||
ldr r0, [r5]
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
str r0, [r5]
|
||||
adds r6, r3, 0
|
||||
adds r6, 0xF8
|
||||
ldr r1, [r4]
|
||||
cmp r1, 0
|
||||
bge _080A5CA2
|
||||
adds r1, 0x7
|
||||
_080A5CA2:
|
||||
asrs r1, 3
|
||||
ldr r0, [r6]
|
||||
adds r0, r1
|
||||
str r0, [r6]
|
||||
adds r2, r3, 0
|
||||
adds r2, 0xFC
|
||||
ldr r1, [r5]
|
||||
cmp r1, 0
|
||||
bge _080A5CB6
|
||||
adds r1, 0x7
|
||||
_080A5CB6:
|
||||
asrs r1, 3
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080A5CC8
|
||||
adds r0, r1, 0x7
|
||||
_080A5CC8:
|
||||
asrs r0, 3
|
||||
lsls r0, 3
|
||||
subs r0, r1, r0
|
||||
str r0, [r4]
|
||||
ldr r1, [r5]
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080A5CDA
|
||||
adds r0, r1, 0x7
|
||||
_080A5CDA:
|
||||
asrs r0, 3
|
||||
lsls r0, 3
|
||||
subs r0, r1, r0
|
||||
str r0, [r5]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
adds r2, r6, 0
|
||||
bl sub_80A4580
|
||||
mov r0, r8
|
||||
ldr r2, [r0]
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xF8
|
||||
ldr r0, [sp]
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
str r0, [sp, 0x30]
|
||||
adds r2, 0xFC
|
||||
ldr r0, [sp, 0x4]
|
||||
ldr r1, [r2]
|
||||
adds r0, r1
|
||||
add r4, sp, 0x30
|
||||
str r0, [r4, 0x4]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
b _080A5DD2
|
||||
_080A5D18:
|
||||
ldr r0, [r7]
|
||||
movs r1, 0x1
|
||||
mov r2, sp
|
||||
bl sub_80A456C
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r3, r1, 0
|
||||
adds r3, 0xF0
|
||||
ldr r4, [r3]
|
||||
adds r0, r4, 0x1
|
||||
str r0, [r3]
|
||||
adds r2, r1, 0
|
||||
adds r2, 0xF8
|
||||
cmp r0, 0
|
||||
bge _080A5D3A
|
||||
adds r0, r4, 0x4
|
||||
_080A5D3A:
|
||||
asrs r1, r0, 2
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
ldr r0, [r3]
|
||||
movs r1, 0x3
|
||||
ands r0, r1
|
||||
str r0, [r3]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0x1
|
||||
bl sub_80A4580
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r0, 0xF8
|
||||
ldr r1, [sp]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [sp, 0x38]
|
||||
ldr r0, [sp, 0x4]
|
||||
add r4, sp, 0x38
|
||||
str r0, [r4, 0x4]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
b _080A5DD2
|
||||
_080A5D76:
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
mov r2, sp
|
||||
bl sub_80A456C
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r3, r1, 0
|
||||
adds r3, 0xF0
|
||||
ldr r4, [r3]
|
||||
adds r0, r4, 0x1
|
||||
str r0, [r3]
|
||||
adds r2, r1, 0
|
||||
adds r2, 0xF8
|
||||
cmp r0, 0
|
||||
bge _080A5D98
|
||||
adds r0, 0x7
|
||||
_080A5D98:
|
||||
asrs r1, r0, 3
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
ldr r0, [r3]
|
||||
movs r1, 0x7
|
||||
ands r0, r1
|
||||
str r0, [r3]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0x1
|
||||
bl sub_80A4580
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r0, 0xF8
|
||||
ldr r1, [sp]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [sp, 0x40]
|
||||
ldr r0, [sp, 0x4]
|
||||
add r4, sp, 0x40
|
||||
_080A5DC2:
|
||||
str r0, [r4, 0x4]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0x1
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
_080A5DCE:
|
||||
ldr r0, [r7]
|
||||
_080A5DD0:
|
||||
movs r1, 0x1
|
||||
_080A5DD2:
|
||||
adds r2, r4, 0
|
||||
bl sub_80A456C
|
||||
b _080A5E52
|
||||
_080A5DDA:
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
mov r2, sp
|
||||
bl sub_80A456C
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r3, r1, 0
|
||||
adds r3, 0xF0
|
||||
ldr r4, [r3]
|
||||
adds r0, r4, 0x1
|
||||
str r0, [r3]
|
||||
adds r2, r1, 0
|
||||
adds r2, 0xF8
|
||||
cmp r0, 0
|
||||
bge _080A5DFC
|
||||
adds r0, 0x7
|
||||
_080A5DFC:
|
||||
asrs r1, r0, 3
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
ldr r0, [r3]
|
||||
movs r1, 0x7
|
||||
ands r0, r1
|
||||
str r0, [r3]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0x1
|
||||
bl sub_80A4580
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r0, 0xF8
|
||||
ldr r0, [r0]
|
||||
str r0, [sp, 0x48]
|
||||
ldr r0, [sp, 0x4]
|
||||
add r2, sp, 0x48
|
||||
str r0, [r2, 0x4]
|
||||
ldr r0, [r7]
|
||||
b _080A5E3E
|
||||
_080A5E28:
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
mov r2, sp
|
||||
bl sub_80A456C
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
str r0, [sp, 0x50]
|
||||
str r1, [sp, 0x54]
|
||||
ldr r0, [r7]
|
||||
add r2, sp, 0x50
|
||||
_080A5E3E:
|
||||
movs r1, 0x1
|
||||
bl sub_80A456C
|
||||
b _080A5E52
|
||||
_080A5E46:
|
||||
ldr r0, _080A5E6C
|
||||
ldr r0, [r0]
|
||||
movs r1, 0
|
||||
mov r2, sp
|
||||
bl sub_80A456C
|
||||
_080A5E52:
|
||||
ldr r0, _080A5E6C
|
||||
ldr r0, [r0]
|
||||
bl sub_80A4764
|
||||
_080A5E5A:
|
||||
bl sub_80A60D8
|
||||
add sp, 0x58
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A5E6C: .4byte gGroundMapDungeon_3001B70
|
||||
thumb_func_end sub_80A59DC
|
||||
|
||||
.align 2,0
|
||||
@@ -5,208 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start AllocGroundEffects
|
||||
AllocGroundEffects:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _080ACBCC
|
||||
movs r0, 0xE2
|
||||
lsls r0, 5
|
||||
movs r1, 0x6
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
adds r1, r0, 0
|
||||
ldr r0, _080ACBD0
|
||||
adds r5, r0, 0
|
||||
movs r4, 0xE2
|
||||
lsls r4, 1
|
||||
movs r2, 0x80
|
||||
lsls r2, 9
|
||||
adds r3, r2, 0
|
||||
_080ACBB0:
|
||||
ldrh r0, [r1, 0x6]
|
||||
orrs r0, r5
|
||||
strh r0, [r1, 0x6]
|
||||
adds r0, r2, 0
|
||||
adds r2, r3
|
||||
asrs r0, 16
|
||||
adds r1, r4
|
||||
cmp r0, 0xF
|
||||
ble _080ACBB0
|
||||
bl DeleteGroundEffects
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ACBCC: .4byte gGroundEffects
|
||||
_080ACBD0: .4byte 0x0000ffff
|
||||
thumb_func_end AllocGroundEffects
|
||||
|
||||
thumb_func_start DeleteGroundEffects
|
||||
DeleteGroundEffects:
|
||||
push {r4-r6,lr}
|
||||
ldr r0, _080ACC0C
|
||||
ldr r4, [r0]
|
||||
movs r1, 0
|
||||
movs r6, 0x1
|
||||
negs r6, r6
|
||||
movs r5, 0x80
|
||||
lsls r5, 9
|
||||
_080ACBE4:
|
||||
movs r2, 0x6
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, r6
|
||||
beq _080ACBF2
|
||||
adds r0, r1, 0
|
||||
bl GroundEffect_Delete
|
||||
_080ACBF2:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x80
|
||||
lsls r1, 9
|
||||
adds r5, r1
|
||||
asrs r1, r0, 16
|
||||
movs r2, 0xE2
|
||||
lsls r2, 1
|
||||
adds r4, r2
|
||||
cmp r1, 0xF
|
||||
ble _080ACBE4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ACC0C: .4byte gGroundEffects
|
||||
thumb_func_end DeleteGroundEffects
|
||||
|
||||
thumb_func_start FreeGroundEffects
|
||||
FreeGroundEffects:
|
||||
push {r4,lr}
|
||||
bl DeleteGroundEffects
|
||||
ldr r4, _080ACC28
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ACC28: .4byte gGroundEffects
|
||||
thumb_func_end FreeGroundEffects
|
||||
|
||||
thumb_func_start GroundEffect_Select
|
||||
GroundEffect_Select:
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
lsls r4, 16
|
||||
asrs r4, 16
|
||||
lsls r1, 16
|
||||
asrs r7, r1, 16
|
||||
lsls r2, 24
|
||||
asrs r6, r2, 24
|
||||
ldr r1, _080ACC90
|
||||
adds r0, r4, 0
|
||||
bl GetGroundScript
|
||||
adds r5, r0, 0
|
||||
ldr r1, _080ACC94
|
||||
str r6, [sp]
|
||||
movs r0, 0
|
||||
adds r2, r4, 0
|
||||
adds r3, r7, 0
|
||||
bl Log
|
||||
lsls r1, r7, 3
|
||||
ldr r0, [r5, 0x4]
|
||||
adds r0, r1
|
||||
lsls r1, r6, 2
|
||||
adds r1, r6
|
||||
lsls r1, 3
|
||||
ldr r0, [r0, 0x4]
|
||||
adds r0, r1
|
||||
ldr r5, [r0, 0x14]
|
||||
ldr r0, [r0, 0x10]
|
||||
cmp r0, 0
|
||||
ble _080ACC86
|
||||
adds r4, r0, 0
|
||||
_080ACC70:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
adds r1, r5, 0
|
||||
adds r2, r7, 0
|
||||
adds r3, r6, 0
|
||||
bl GroundEffect_Add
|
||||
subs r4, 0x1
|
||||
adds r5, 0xC
|
||||
cmp r4, 0
|
||||
bne _080ACC70
|
||||
_080ACC86:
|
||||
add sp, 0x4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ACC90: .4byte gUnknown_8118610
|
||||
_080ACC94: .4byte gUnknown_811861C
|
||||
thumb_func_end GroundEffect_Select
|
||||
|
||||
thumb_func_start GroundEffect_Cancel
|
||||
GroundEffect_Cancel:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
lsls r0, 16
|
||||
asrs r7, r0, 16
|
||||
lsls r1, 24
|
||||
asrs r5, r1, 24
|
||||
ldr r1, _080ACD00
|
||||
movs r0, 0
|
||||
adds r2, r7, 0
|
||||
bl Log
|
||||
movs r1, 0
|
||||
ldr r0, _080ACD04
|
||||
ldr r4, [r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
mov r8, r0
|
||||
movs r6, 0x80
|
||||
lsls r6, 9
|
||||
_080ACCC0:
|
||||
movs r2, 0x6
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, r8
|
||||
beq _080ACCE2
|
||||
movs r2, 0x8
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, r7
|
||||
bne _080ACCE2
|
||||
cmp r5, 0
|
||||
blt _080ACCDC
|
||||
movs r0, 0xA
|
||||
ldrsb r0, [r4, r0]
|
||||
cmp r0, r5
|
||||
bne _080ACCE2
|
||||
_080ACCDC:
|
||||
adds r0, r1, 0
|
||||
bl GroundEffect_Delete
|
||||
_080ACCE2:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x80
|
||||
lsls r1, 9
|
||||
adds r6, r1
|
||||
asrs r1, r0, 16
|
||||
movs r2, 0xE2
|
||||
lsls r2, 1
|
||||
adds r4, r2
|
||||
cmp r1, 0xF
|
||||
ble _080ACCC0
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ACD00: .4byte gUnknown_8118640
|
||||
_080ACD04: .4byte gGroundEffects
|
||||
thumb_func_end GroundEffect_Cancel
|
||||
|
||||
thumb_func_start GroundEffect_CancelBlank
|
||||
GroundEffect_CancelBlank:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -5,203 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start AllocGroundEvents
|
||||
AllocGroundEvents:
|
||||
push {r4,lr}
|
||||
ldr r4, _080AD9C8
|
||||
movs r0, 0x80
|
||||
lsls r0, 3
|
||||
movs r1, 0x6
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
adds r1, r0, 0
|
||||
ldr r0, _080AD9CC
|
||||
adds r4, r0, 0
|
||||
movs r2, 0x80
|
||||
lsls r2, 9
|
||||
adds r3, r2, 0
|
||||
_080AD9AC:
|
||||
ldrh r0, [r1, 0x2]
|
||||
orrs r0, r4
|
||||
strh r0, [r1, 0x2]
|
||||
adds r0, r2, 0
|
||||
adds r2, r3
|
||||
asrs r0, 16
|
||||
adds r1, 0x20
|
||||
cmp r0, 0x1F
|
||||
ble _080AD9AC
|
||||
bl DeleteGroundEvents
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080AD9C8: .4byte gGroundEvents
|
||||
_080AD9CC: .4byte 0x0000ffff
|
||||
thumb_func_end AllocGroundEvents
|
||||
|
||||
thumb_func_start DeleteGroundEvents
|
||||
DeleteGroundEvents:
|
||||
push {r4-r6,lr}
|
||||
ldr r0, _080ADA04
|
||||
ldr r4, [r0]
|
||||
movs r1, 0
|
||||
movs r6, 0x1
|
||||
negs r6, r6
|
||||
movs r5, 0x80
|
||||
lsls r5, 9
|
||||
_080AD9E0:
|
||||
movs r2, 0x2
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, r6
|
||||
beq _080AD9EE
|
||||
adds r0, r1, 0
|
||||
bl GroundEvent_Delete
|
||||
_080AD9EE:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x80
|
||||
lsls r1, 9
|
||||
adds r5, r1
|
||||
asrs r1, r0, 16
|
||||
adds r4, 0x20
|
||||
cmp r1, 0x1F
|
||||
ble _080AD9E0
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ADA04: .4byte gGroundEvents
|
||||
thumb_func_end DeleteGroundEvents
|
||||
|
||||
thumb_func_start FreeGroundEvents
|
||||
FreeGroundEvents:
|
||||
push {r4,lr}
|
||||
bl DeleteGroundEvents
|
||||
ldr r4, _080ADA20
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ADA20: .4byte gGroundEvents
|
||||
thumb_func_end FreeGroundEvents
|
||||
|
||||
thumb_func_start GroundEvent_Select
|
||||
GroundEvent_Select:
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
lsls r4, 16
|
||||
asrs r4, 16
|
||||
lsls r1, 16
|
||||
asrs r7, r1, 16
|
||||
lsls r2, 24
|
||||
asrs r6, r2, 24
|
||||
ldr r1, _080ADA88
|
||||
adds r0, r4, 0
|
||||
bl GetGroundScript
|
||||
adds r5, r0, 0
|
||||
ldr r1, _080ADA8C
|
||||
str r6, [sp]
|
||||
movs r0, 0
|
||||
adds r2, r4, 0
|
||||
adds r3, r7, 0
|
||||
bl Log
|
||||
lsls r1, r7, 3
|
||||
ldr r0, [r5, 0x4]
|
||||
adds r0, r1
|
||||
lsls r1, r6, 2
|
||||
adds r1, r6
|
||||
lsls r1, 3
|
||||
ldr r0, [r0, 0x4]
|
||||
adds r0, r1
|
||||
ldr r5, [r0, 0x1C]
|
||||
ldr r0, [r0, 0x18]
|
||||
cmp r0, 0
|
||||
ble _080ADA7E
|
||||
adds r4, r0, 0
|
||||
_080ADA68:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
adds r1, r5, 0
|
||||
adds r2, r7, 0
|
||||
adds r3, r6, 0
|
||||
bl GroundEvent_Add
|
||||
subs r4, 0x1
|
||||
adds r5, 0xC
|
||||
cmp r4, 0
|
||||
bne _080ADA68
|
||||
_080ADA7E:
|
||||
add sp, 0x4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ADA88: .4byte gUnknown_81187DC
|
||||
_080ADA8C: .4byte gGroundEventSelectText
|
||||
thumb_func_end GroundEvent_Select
|
||||
|
||||
thumb_func_start GroundEvent_Cancel
|
||||
GroundEvent_Cancel:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
lsls r0, 16
|
||||
asrs r7, r0, 16
|
||||
lsls r1, 24
|
||||
asrs r5, r1, 24
|
||||
ldr r1, _080ADAF8
|
||||
movs r0, 0
|
||||
adds r2, r7, 0
|
||||
adds r3, r5, 0
|
||||
bl Log
|
||||
movs r1, 0
|
||||
ldr r0, _080ADAFC
|
||||
ldr r4, [r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
mov r8, r0
|
||||
movs r6, 0x80
|
||||
lsls r6, 9
|
||||
_080ADABA:
|
||||
movs r2, 0x2
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, r8
|
||||
beq _080ADADC
|
||||
movs r2, 0x4
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, r7
|
||||
bne _080ADADC
|
||||
cmp r5, 0
|
||||
blt _080ADAD6
|
||||
movs r0, 0x6
|
||||
ldrsb r0, [r4, r0]
|
||||
cmp r0, r5
|
||||
bne _080ADADC
|
||||
_080ADAD6:
|
||||
adds r0, r1, 0
|
||||
bl GroundEvent_Delete
|
||||
_080ADADC:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x80
|
||||
lsls r1, 9
|
||||
adds r6, r1
|
||||
asrs r1, r0, 16
|
||||
adds r4, 0x20
|
||||
cmp r1, 0x1F
|
||||
ble _080ADABA
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ADAF8: .4byte gGroundEventCancelText
|
||||
_080ADAFC: .4byte gGroundEvents
|
||||
thumb_func_end GroundEvent_Cancel
|
||||
|
||||
thumb_func_start GroundEvent_Add
|
||||
GroundEvent_Add:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -5,271 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start AllocGroundLives
|
||||
AllocGroundLives:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _080A7860
|
||||
movs r0, 0xCE
|
||||
lsls r0, 2
|
||||
movs r1, 0x6
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
ldr r4, _080A7864
|
||||
movs r0, 0xBA
|
||||
lsls r0, 6
|
||||
movs r1, 0x6
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
adds r1, r0, 0
|
||||
ldr r0, _080A7868
|
||||
adds r5, r0, 0
|
||||
movs r4, 0xF8
|
||||
lsls r4, 1
|
||||
movs r2, 0x80
|
||||
lsls r2, 9
|
||||
adds r3, r2, 0
|
||||
_080A7826:
|
||||
ldrh r0, [r1, 0x2]
|
||||
orrs r0, r5
|
||||
strh r0, [r1, 0x2]
|
||||
adds r0, r2, 0
|
||||
adds r2, r3
|
||||
asrs r0, 16
|
||||
adds r1, r4
|
||||
cmp r0, 0x17
|
||||
ble _080A7826
|
||||
ldr r4, _080A7860
|
||||
ldr r1, [r4]
|
||||
movs r0, 0xCB
|
||||
lsls r0, 2
|
||||
adds r1, r0
|
||||
movs r0, 0
|
||||
movs r2, 0x19
|
||||
bl GetFunctionScript
|
||||
ldr r0, [r4]
|
||||
movs r1, 0xCC
|
||||
lsls r1, 2
|
||||
adds r0, r1
|
||||
movs r1, 0x1
|
||||
strh r1, [r0]
|
||||
bl DeleteGroundLives
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A7860: .4byte gGroundLivesMeta
|
||||
_080A7864: .4byte gGroundLives
|
||||
_080A7868: .4byte 0x0000ffff
|
||||
thumb_func_end AllocGroundLives
|
||||
|
||||
thumb_func_start DeleteGroundLives
|
||||
DeleteGroundLives:
|
||||
push {r4-r6,lr}
|
||||
ldr r0, _080A78E8
|
||||
ldr r4, [r0]
|
||||
movs r1, 0
|
||||
movs r6, 0x1
|
||||
negs r6, r6
|
||||
movs r5, 0x80
|
||||
lsls r5, 9
|
||||
_080A787C:
|
||||
movs r2, 0x2
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, r6
|
||||
beq _080A788A
|
||||
adds r0, r1, 0
|
||||
bl GroundLives_Delete
|
||||
_080A788A:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x80
|
||||
lsls r1, 9
|
||||
adds r5, r1
|
||||
asrs r1, r0, 16
|
||||
movs r2, 0xF8
|
||||
lsls r2, 1
|
||||
adds r4, r2
|
||||
cmp r1, 0x17
|
||||
ble _080A787C
|
||||
ldr r3, _080A78EC
|
||||
ldr r0, [r3]
|
||||
movs r2, 0x1
|
||||
negs r2, r2
|
||||
str r2, [r0, 0x24]
|
||||
adds r0, 0x28
|
||||
movs r1, 0xFF
|
||||
strb r1, [r0]
|
||||
movs r5, 0
|
||||
movs r4, 0
|
||||
movs r1, 0x2
|
||||
_080A78B4:
|
||||
ldr r0, [r3]
|
||||
adds r0, r4
|
||||
str r2, [r0, 0x8]
|
||||
str r5, [r0]
|
||||
str r5, [r0, 0x4]
|
||||
adds r4, 0xC
|
||||
subs r1, 0x1
|
||||
cmp r1, 0
|
||||
bge _080A78B4
|
||||
ldr r4, _080A78EC
|
||||
movs r2, 0
|
||||
movs r3, 0x2C
|
||||
movs r1, 0x3F
|
||||
_080A78CE:
|
||||
ldr r0, [r4]
|
||||
adds r0, r3
|
||||
str r2, [r0]
|
||||
str r2, [r0, 0x4]
|
||||
str r2, [r0, 0x8]
|
||||
adds r3, 0xC
|
||||
subs r1, 0x1
|
||||
cmp r1, 0
|
||||
bge _080A78CE
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A78E8: .4byte gGroundLives
|
||||
_080A78EC: .4byte gGroundLivesMeta
|
||||
thumb_func_end DeleteGroundLives
|
||||
|
||||
thumb_func_start FreeGroundLives
|
||||
FreeGroundLives:
|
||||
push {r4,r5,lr}
|
||||
bl DeleteGroundLives
|
||||
ldr r4, _080A7914
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r5, 0
|
||||
str r5, [r4]
|
||||
ldr r4, _080A7918
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
str r5, [r4]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A7914: .4byte gGroundLives
|
||||
_080A7918: .4byte gGroundLivesMeta
|
||||
thumb_func_end FreeGroundLives
|
||||
|
||||
thumb_func_start GroundLives_Select
|
||||
GroundLives_Select:
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
lsls r4, 16
|
||||
asrs r4, 16
|
||||
lsls r1, 16
|
||||
asrs r7, r1, 16
|
||||
lsls r2, 24
|
||||
asrs r6, r2, 24
|
||||
ldr r1, _080A7980
|
||||
adds r0, r4, 0
|
||||
bl GetGroundScript
|
||||
adds r5, r0, 0
|
||||
ldr r1, _080A7984
|
||||
str r6, [sp]
|
||||
movs r0, 0
|
||||
adds r2, r4, 0
|
||||
adds r3, r7, 0
|
||||
bl Log
|
||||
lsls r1, r7, 3
|
||||
ldr r0, [r5, 0x4]
|
||||
adds r0, r1
|
||||
lsls r1, r6, 2
|
||||
adds r1, r6
|
||||
lsls r1, 3
|
||||
ldr r0, [r0, 0x4]
|
||||
adds r0, r1
|
||||
ldr r5, [r0, 0x4]
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
ble _080A7976
|
||||
adds r4, r0, 0
|
||||
_080A7960:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
adds r1, r5, 0
|
||||
adds r2, r7, 0
|
||||
adds r3, r6, 0
|
||||
bl GroundLives_Add
|
||||
subs r4, 0x1
|
||||
adds r5, 0x18
|
||||
cmp r4, 0
|
||||
bne _080A7960
|
||||
_080A7976:
|
||||
add sp, 0x4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A7980: .4byte gUnknown_811808C
|
||||
_080A7984: .4byte gUnknown_8118098
|
||||
thumb_func_end GroundLives_Select
|
||||
|
||||
thumb_func_start GroundLives_Cancel
|
||||
GroundLives_Cancel:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
lsls r0, 16
|
||||
asrs r7, r0, 16
|
||||
lsls r1, 24
|
||||
asrs r5, r1, 24
|
||||
ldr r1, _080A79F4
|
||||
movs r0, 0
|
||||
adds r2, r7, 0
|
||||
adds r3, r5, 0
|
||||
bl Log
|
||||
movs r1, 0
|
||||
ldr r0, _080A79F8
|
||||
ldr r4, [r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
mov r8, r0
|
||||
movs r6, 0x80
|
||||
lsls r6, 9
|
||||
_080A79B2:
|
||||
movs r2, 0x2
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, r8
|
||||
beq _080A79D4
|
||||
movs r2, 0x4
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, r7
|
||||
bne _080A79D4
|
||||
cmp r5, 0
|
||||
blt _080A79CE
|
||||
movs r0, 0x6
|
||||
ldrsb r0, [r4, r0]
|
||||
cmp r0, r5
|
||||
bne _080A79D4
|
||||
_080A79CE:
|
||||
adds r0, r1, 0
|
||||
bl GroundLives_Delete
|
||||
_080A79D4:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x80
|
||||
lsls r1, 9
|
||||
adds r6, r1
|
||||
asrs r1, r0, 16
|
||||
movs r2, 0xF8
|
||||
lsls r2, 1
|
||||
adds r4, r2
|
||||
cmp r1, 0x17
|
||||
ble _080A79B2
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A79F4: .4byte gUnknown_81180BC
|
||||
_080A79F8: .4byte gGroundLives
|
||||
thumb_func_end GroundLives_Cancel
|
||||
|
||||
thumb_func_start GroundLives_CancelBlank_1
|
||||
GroundLives_CancelBlank_1:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -1542,706 +1542,4 @@ _080A592C:
|
||||
bx r1
|
||||
thumb_func_end sub_80A58C8
|
||||
|
||||
thumb_func_start sub_80A5934
|
||||
sub_80A5934:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
adds r3, r2, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r0, _080A5958
|
||||
ldr r0, [r0]
|
||||
adds r1, r4, 0
|
||||
adds r2, r5, 0
|
||||
bl sub_80A4660
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080A5958: .4byte gGroundMapDungeon_3001B70
|
||||
thumb_func_end sub_80A5934
|
||||
|
||||
thumb_func_start sub_80A595C
|
||||
sub_80A595C:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
adds r3, r2, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r0, _080A5980
|
||||
ldr r0, [r0]
|
||||
adds r1, r4, 0
|
||||
adds r2, r5, 0
|
||||
bl sub_80A46C0
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080A5980: .4byte gGroundMapDungeon_3001B70
|
||||
thumb_func_end sub_80A595C
|
||||
|
||||
thumb_func_start sub_80A5984
|
||||
sub_80A5984:
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
adds r2, r1, 0
|
||||
ldr r0, _080A599C
|
||||
ldr r0, [r0]
|
||||
adds r1, r3, 0
|
||||
bl sub_80A4720
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080A599C: .4byte gGroundMapDungeon_3001B70
|
||||
thumb_func_end sub_80A5984
|
||||
|
||||
thumb_func_start sub_80A59A0
|
||||
sub_80A59A0:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
lsls r3, r2, 16
|
||||
lsrs r3, 16
|
||||
ldr r0, _080A59BC
|
||||
ldr r0, [r0]
|
||||
adds r1, r4, 0
|
||||
adds r2, r5, 0
|
||||
bl sub_80A4740
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A59BC: .4byte gGroundMapDungeon_3001B70
|
||||
thumb_func_end sub_80A59A0
|
||||
|
||||
thumb_func_start GroundMap_Action
|
||||
GroundMap_Action:
|
||||
push {lr}
|
||||
bl nullsub_123
|
||||
ldr r0, _080A59D4
|
||||
ldr r0, [r0]
|
||||
ldr r1, _080A59D8
|
||||
bl HandleAction
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A59D4: .4byte gGroundMapAction
|
||||
_080A59D8: .4byte gUnknown_8117770
|
||||
thumb_func_end GroundMap_Action
|
||||
|
||||
thumb_func_start sub_80A59DC
|
||||
sub_80A59DC:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x58
|
||||
ldr r7, _080A5A34
|
||||
ldr r0, [r7]
|
||||
cmp r0, 0
|
||||
bne _080A59F0
|
||||
b _080A5E5A
|
||||
_080A59F0:
|
||||
mov r9, sp
|
||||
mov r0, sp
|
||||
bl sub_809D248
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
bne _080A5A04
|
||||
str r0, [sp]
|
||||
str r0, [sp, 0x4]
|
||||
_080A5A04:
|
||||
ldr r0, _080A5A38
|
||||
mov r8, r0
|
||||
ldr r3, [r0]
|
||||
adds r0, r3, 0
|
||||
adds r0, 0xE4
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
mov r6, r8
|
||||
cmp r0, 0xAB
|
||||
bne _080A5A1A
|
||||
b _080A5BBE
|
||||
_080A5A1A:
|
||||
cmp r0, 0xAB
|
||||
bgt _080A5A46
|
||||
cmp r0, 0xA3
|
||||
bgt _080A5A3C
|
||||
cmp r0, 0xA2
|
||||
bge _080A5A76
|
||||
cmp r0, 0x4
|
||||
bne _080A5A2C
|
||||
b _080A5D76
|
||||
_080A5A2C:
|
||||
cmp r0, 0xA1
|
||||
bne _080A5A32
|
||||
b _080A5E28
|
||||
_080A5A32:
|
||||
b _080A5E46
|
||||
.align 2, 0
|
||||
_080A5A34: .4byte gGroundMapDungeon_3001B70
|
||||
_080A5A38: .4byte gGroundMapAction
|
||||
_080A5A3C:
|
||||
cmp r0, 0xA8
|
||||
beq _080A5AF4
|
||||
cmp r0, 0xAA
|
||||
beq _080A5AF4
|
||||
b _080A5E46
|
||||
_080A5A46:
|
||||
cmp r0, 0xB0
|
||||
bne _080A5A4C
|
||||
b _080A5C76
|
||||
_080A5A4C:
|
||||
cmp r0, 0xB0
|
||||
bgt _080A5A5E
|
||||
cmp r0, 0xAE
|
||||
bne _080A5A56
|
||||
b _080A5B58
|
||||
_080A5A56:
|
||||
cmp r0, 0xAF
|
||||
bne _080A5A5C
|
||||
b _080A5BD8
|
||||
_080A5A5C:
|
||||
b _080A5E46
|
||||
_080A5A5E:
|
||||
cmp r0, 0xDF
|
||||
beq _080A5A76
|
||||
cmp r0, 0xDF
|
||||
bgt _080A5A6E
|
||||
cmp r0, 0xBA
|
||||
bne _080A5A6C
|
||||
b _080A5D18
|
||||
_080A5A6C:
|
||||
b _080A5E46
|
||||
_080A5A6E:
|
||||
cmp r0, 0xE0
|
||||
bne _080A5A74
|
||||
b _080A5DDA
|
||||
_080A5A74:
|
||||
b _080A5E46
|
||||
_080A5A76:
|
||||
ldr r3, [r6]
|
||||
adds r2, r3, 0
|
||||
adds r2, 0xF4
|
||||
ldr r1, [r2]
|
||||
adds r0, r1, 0x2
|
||||
str r0, [r2]
|
||||
adds r4, r3, 0
|
||||
adds r4, 0xFC
|
||||
cmp r0, 0
|
||||
bge _080A5A8C
|
||||
adds r0, r1, 0x5
|
||||
_080A5A8C:
|
||||
asrs r1, r0, 2
|
||||
ldr r0, [r4]
|
||||
adds r0, r1
|
||||
str r0, [r4]
|
||||
ldr r0, [r2]
|
||||
movs r1, 0x3
|
||||
ands r0, r1
|
||||
str r0, [r2]
|
||||
ldr r5, _080A5AF0
|
||||
ldr r0, [r5]
|
||||
adds r2, r3, 0
|
||||
adds r2, 0xF8
|
||||
movs r1, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [sp]
|
||||
str r0, [sp, 0x8]
|
||||
ldr r0, [r6]
|
||||
adds r0, 0xFC
|
||||
ldr r1, [sp, 0x4]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
add r4, sp, 0x8
|
||||
str r1, [r4, 0x4]
|
||||
ldr r0, [r5]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r5]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A456C
|
||||
ldr r0, [sp]
|
||||
str r0, [sp, 0x8]
|
||||
ldr r0, [r6]
|
||||
adds r0, 0xFC
|
||||
ldr r1, [sp, 0x4]
|
||||
ldr r0, [r0]
|
||||
subs r1, r0
|
||||
str r1, [r4, 0x4]
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x1
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r5]
|
||||
b _080A5DD0
|
||||
.align 2, 0
|
||||
_080A5AF0: .4byte gGroundMapDungeon_3001B70
|
||||
_080A5AF4:
|
||||
ldr r2, [r6]
|
||||
adds r3, r2, 0
|
||||
adds r3, 0xF0
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xE8
|
||||
ldr r1, [r3]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [r3]
|
||||
adds r2, 0xF8
|
||||
cmp r1, 0
|
||||
bge _080A5B0E
|
||||
adds r1, 0x7
|
||||
_080A5B0E:
|
||||
asrs r1, 3
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
ldr r1, [r3]
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080A5B20
|
||||
adds r0, r1, 0x7
|
||||
_080A5B20:
|
||||
asrs r0, 3
|
||||
lsls r0, 3
|
||||
subs r0, r1, r0
|
||||
str r0, [r3]
|
||||
ldr r5, _080A5B54
|
||||
ldr r0, [r5]
|
||||
movs r1, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r6]
|
||||
adds r0, 0xF8
|
||||
ldr r1, [sp]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [sp, 0x10]
|
||||
ldr r0, [sp, 0x4]
|
||||
add r4, sp, 0x10
|
||||
str r0, [r4, 0x4]
|
||||
ldr r0, [r5]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r5]
|
||||
movs r1, 0
|
||||
b _080A5DD2
|
||||
.align 2, 0
|
||||
_080A5B54: .4byte gGroundMapDungeon_3001B70
|
||||
_080A5B58:
|
||||
adds r4, r3, 0
|
||||
adds r4, 0xF0
|
||||
adds r0, r3, 0
|
||||
adds r0, 0xE8
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [r4]
|
||||
adds r2, r3, 0
|
||||
adds r2, 0xF8
|
||||
cmp r1, 0
|
||||
bge _080A5B72
|
||||
adds r1, 0x7
|
||||
_080A5B72:
|
||||
asrs r1, 3
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080A5B84
|
||||
adds r0, r1, 0x7
|
||||
_080A5B84:
|
||||
asrs r0, 3
|
||||
lsls r0, 3
|
||||
subs r0, r1, r0
|
||||
str r0, [r4]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
bl sub_80A4580
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r0, 0xF8
|
||||
ldr r1, [sp]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [sp, 0x18]
|
||||
ldr r0, [sp, 0x4]
|
||||
add r4, sp, 0x18
|
||||
str r0, [r4, 0x4]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A456C
|
||||
b _080A5DCE
|
||||
_080A5BBE:
|
||||
ldr r0, [sp]
|
||||
ldr r1, [sp, 0x4]
|
||||
str r0, [sp, 0x20]
|
||||
str r1, [sp, 0x24]
|
||||
ldr r0, [r7]
|
||||
add r4, sp, 0x20
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
b _080A5DD2
|
||||
_080A5BD8:
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
mov r2, sp
|
||||
bl sub_80A456C
|
||||
mov r0, r8
|
||||
ldr r3, [r0]
|
||||
adds r4, r3, 0
|
||||
adds r4, 0xF0
|
||||
adds r1, r3, 0
|
||||
adds r1, 0xE8
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
str r0, [r4]
|
||||
adds r5, r3, 0
|
||||
adds r5, 0xF4
|
||||
adds r1, r3, 0
|
||||
adds r1, 0xEC
|
||||
ldr r0, [r5]
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
str r0, [r5]
|
||||
adds r2, r3, 0
|
||||
adds r2, 0xF8
|
||||
ldr r1, [r4]
|
||||
cmp r1, 0
|
||||
bge _080A5C12
|
||||
adds r1, 0x7
|
||||
_080A5C12:
|
||||
asrs r1, 3
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
adds r3, 0xFC
|
||||
ldr r1, [r5]
|
||||
cmp r1, 0
|
||||
bge _080A5C24
|
||||
adds r1, 0x7
|
||||
_080A5C24:
|
||||
asrs r1, 3
|
||||
ldr r0, [r3]
|
||||
adds r0, r1
|
||||
str r0, [r3]
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080A5C36
|
||||
adds r0, r1, 0x7
|
||||
_080A5C36:
|
||||
asrs r0, 3
|
||||
lsls r0, 3
|
||||
subs r0, r1, r0
|
||||
str r0, [r4]
|
||||
ldr r1, [r5]
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080A5C48
|
||||
adds r0, r1, 0x7
|
||||
_080A5C48:
|
||||
asrs r0, 3
|
||||
lsls r0, 3
|
||||
subs r0, r1, r0
|
||||
str r0, [r5]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
bl sub_80A4580
|
||||
mov r1, r8
|
||||
ldr r2, [r1]
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xF8
|
||||
ldr r0, [sp]
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
str r0, [sp, 0x28]
|
||||
adds r2, 0xFC
|
||||
mov r1, r9
|
||||
ldr r0, [r1, 0x4]
|
||||
ldr r1, [r2]
|
||||
adds r0, r1
|
||||
add r4, sp, 0x28
|
||||
b _080A5DC2
|
||||
_080A5C76:
|
||||
adds r4, r3, 0
|
||||
adds r4, 0xF0
|
||||
adds r1, r3, 0
|
||||
adds r1, 0xE8
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
str r0, [r4]
|
||||
adds r5, r3, 0
|
||||
adds r5, 0xF4
|
||||
adds r1, r3, 0
|
||||
adds r1, 0xEC
|
||||
ldr r0, [r5]
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
str r0, [r5]
|
||||
adds r6, r3, 0
|
||||
adds r6, 0xF8
|
||||
ldr r1, [r4]
|
||||
cmp r1, 0
|
||||
bge _080A5CA2
|
||||
adds r1, 0x7
|
||||
_080A5CA2:
|
||||
asrs r1, 3
|
||||
ldr r0, [r6]
|
||||
adds r0, r1
|
||||
str r0, [r6]
|
||||
adds r2, r3, 0
|
||||
adds r2, 0xFC
|
||||
ldr r1, [r5]
|
||||
cmp r1, 0
|
||||
bge _080A5CB6
|
||||
adds r1, 0x7
|
||||
_080A5CB6:
|
||||
asrs r1, 3
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080A5CC8
|
||||
adds r0, r1, 0x7
|
||||
_080A5CC8:
|
||||
asrs r0, 3
|
||||
lsls r0, 3
|
||||
subs r0, r1, r0
|
||||
str r0, [r4]
|
||||
ldr r1, [r5]
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080A5CDA
|
||||
adds r0, r1, 0x7
|
||||
_080A5CDA:
|
||||
asrs r0, 3
|
||||
lsls r0, 3
|
||||
subs r0, r1, r0
|
||||
str r0, [r5]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
adds r2, r6, 0
|
||||
bl sub_80A4580
|
||||
mov r0, r8
|
||||
ldr r2, [r0]
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xF8
|
||||
ldr r0, [sp]
|
||||
ldr r1, [r1]
|
||||
adds r0, r1
|
||||
str r0, [sp, 0x30]
|
||||
adds r2, 0xFC
|
||||
ldr r0, [sp, 0x4]
|
||||
ldr r1, [r2]
|
||||
adds r0, r1
|
||||
add r4, sp, 0x30
|
||||
str r0, [r4, 0x4]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
b _080A5DD2
|
||||
_080A5D18:
|
||||
ldr r0, [r7]
|
||||
movs r1, 0x1
|
||||
mov r2, sp
|
||||
bl sub_80A456C
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r3, r1, 0
|
||||
adds r3, 0xF0
|
||||
ldr r4, [r3]
|
||||
adds r0, r4, 0x1
|
||||
str r0, [r3]
|
||||
adds r2, r1, 0
|
||||
adds r2, 0xF8
|
||||
cmp r0, 0
|
||||
bge _080A5D3A
|
||||
adds r0, r4, 0x4
|
||||
_080A5D3A:
|
||||
asrs r1, r0, 2
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
ldr r0, [r3]
|
||||
movs r1, 0x3
|
||||
ands r0, r1
|
||||
str r0, [r3]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0x1
|
||||
bl sub_80A4580
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r0, 0xF8
|
||||
ldr r1, [sp]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [sp, 0x38]
|
||||
ldr r0, [sp, 0x4]
|
||||
add r4, sp, 0x38
|
||||
str r0, [r4, 0x4]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
b _080A5DD2
|
||||
_080A5D76:
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
mov r2, sp
|
||||
bl sub_80A456C
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r3, r1, 0
|
||||
adds r3, 0xF0
|
||||
ldr r4, [r3]
|
||||
adds r0, r4, 0x1
|
||||
str r0, [r3]
|
||||
adds r2, r1, 0
|
||||
adds r2, 0xF8
|
||||
cmp r0, 0
|
||||
bge _080A5D98
|
||||
adds r0, 0x7
|
||||
_080A5D98:
|
||||
asrs r1, r0, 3
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
ldr r0, [r3]
|
||||
movs r1, 0x7
|
||||
ands r0, r1
|
||||
str r0, [r3]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0x1
|
||||
bl sub_80A4580
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r0, 0xF8
|
||||
ldr r1, [sp]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [sp, 0x40]
|
||||
ldr r0, [sp, 0x4]
|
||||
add r4, sp, 0x40
|
||||
_080A5DC2:
|
||||
str r0, [r4, 0x4]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0x1
|
||||
adds r2, r4, 0
|
||||
bl sub_80A4580
|
||||
_080A5DCE:
|
||||
ldr r0, [r7]
|
||||
_080A5DD0:
|
||||
movs r1, 0x1
|
||||
_080A5DD2:
|
||||
adds r2, r4, 0
|
||||
bl sub_80A456C
|
||||
b _080A5E52
|
||||
_080A5DDA:
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
mov r2, sp
|
||||
bl sub_80A456C
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r3, r1, 0
|
||||
adds r3, 0xF0
|
||||
ldr r4, [r3]
|
||||
adds r0, r4, 0x1
|
||||
str r0, [r3]
|
||||
adds r2, r1, 0
|
||||
adds r2, 0xF8
|
||||
cmp r0, 0
|
||||
bge _080A5DFC
|
||||
adds r0, 0x7
|
||||
_080A5DFC:
|
||||
asrs r1, r0, 3
|
||||
ldr r0, [r2]
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
ldr r0, [r3]
|
||||
movs r1, 0x7
|
||||
ands r0, r1
|
||||
str r0, [r3]
|
||||
ldr r0, [r7]
|
||||
movs r1, 0x1
|
||||
bl sub_80A4580
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r0, 0xF8
|
||||
ldr r0, [r0]
|
||||
str r0, [sp, 0x48]
|
||||
ldr r0, [sp, 0x4]
|
||||
add r2, sp, 0x48
|
||||
str r0, [r2, 0x4]
|
||||
ldr r0, [r7]
|
||||
b _080A5E3E
|
||||
_080A5E28:
|
||||
ldr r0, [r7]
|
||||
movs r1, 0
|
||||
mov r2, sp
|
||||
bl sub_80A456C
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
str r0, [sp, 0x50]
|
||||
str r1, [sp, 0x54]
|
||||
ldr r0, [r7]
|
||||
add r2, sp, 0x50
|
||||
_080A5E3E:
|
||||
movs r1, 0x1
|
||||
bl sub_80A456C
|
||||
b _080A5E52
|
||||
_080A5E46:
|
||||
ldr r0, _080A5E6C
|
||||
ldr r0, [r0]
|
||||
movs r1, 0
|
||||
mov r2, sp
|
||||
bl sub_80A456C
|
||||
_080A5E52:
|
||||
ldr r0, _080A5E6C
|
||||
ldr r0, [r0]
|
||||
bl sub_80A4764
|
||||
_080A5E5A:
|
||||
bl sub_80A60D8
|
||||
add sp, 0x58
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080A5E6C: .4byte gGroundMapDungeon_3001B70
|
||||
thumb_func_end sub_80A59DC
|
||||
|
||||
.align 2,0
|
||||
|
||||
@@ -5,308 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start AllocGroundObjects
|
||||
AllocGroundObjects:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _080ABB90
|
||||
movs r0, 0xE2
|
||||
lsls r0, 5
|
||||
movs r1, 0x6
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
adds r1, r0, 0
|
||||
ldr r0, _080ABB94
|
||||
adds r5, r0, 0
|
||||
movs r4, 0xE2
|
||||
lsls r4, 1
|
||||
movs r2, 0x80
|
||||
lsls r2, 9
|
||||
adds r3, r2, 0
|
||||
_080ABB74:
|
||||
ldrh r0, [r1, 0x6]
|
||||
orrs r0, r5
|
||||
strh r0, [r1, 0x6]
|
||||
adds r0, r2, 0
|
||||
adds r2, r3
|
||||
asrs r0, 16
|
||||
adds r1, r4
|
||||
cmp r0, 0xF
|
||||
ble _080ABB74
|
||||
bl DeleteGroundObjects
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ABB90: .4byte gGroundObjects
|
||||
_080ABB94: .4byte 0x0000ffff
|
||||
thumb_func_end AllocGroundObjects
|
||||
|
||||
thumb_func_start DeleteGroundObjects
|
||||
DeleteGroundObjects:
|
||||
push {r4-r6,lr}
|
||||
ldr r0, _080ABBD0
|
||||
ldr r4, [r0]
|
||||
movs r1, 0
|
||||
movs r6, 0x1
|
||||
negs r6, r6
|
||||
movs r5, 0x80
|
||||
lsls r5, 9
|
||||
_080ABBA8:
|
||||
movs r2, 0x6
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, r6
|
||||
beq _080ABBB6
|
||||
adds r0, r1, 0
|
||||
bl GroundObject_Delete
|
||||
_080ABBB6:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x80
|
||||
lsls r1, 9
|
||||
adds r5, r1
|
||||
asrs r1, r0, 16
|
||||
movs r2, 0xE2
|
||||
lsls r2, 1
|
||||
adds r4, r2
|
||||
cmp r1, 0xF
|
||||
ble _080ABBA8
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ABBD0: .4byte gGroundObjects
|
||||
thumb_func_end DeleteGroundObjects
|
||||
|
||||
thumb_func_start FreeGroundObjects
|
||||
FreeGroundObjects:
|
||||
push {r4,lr}
|
||||
bl DeleteGroundObjects
|
||||
ldr r4, _080ABBEC
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ABBEC: .4byte gGroundObjects
|
||||
thumb_func_end FreeGroundObjects
|
||||
|
||||
thumb_func_start GroundObject_Select
|
||||
GroundObject_Select:
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
lsls r4, 16
|
||||
asrs r4, 16
|
||||
lsls r1, 16
|
||||
asrs r7, r1, 16
|
||||
lsls r2, 24
|
||||
asrs r6, r2, 24
|
||||
ldr r1, _080ABC54
|
||||
adds r0, r4, 0
|
||||
bl GetGroundScript
|
||||
adds r5, r0, 0
|
||||
ldr r1, _080ABC58
|
||||
str r6, [sp]
|
||||
movs r0, 0
|
||||
adds r2, r4, 0
|
||||
adds r3, r7, 0
|
||||
bl Log
|
||||
lsls r1, r7, 3
|
||||
ldr r0, [r5, 0x4]
|
||||
adds r0, r1
|
||||
lsls r1, r6, 2
|
||||
adds r1, r6
|
||||
lsls r1, 3
|
||||
ldr r0, [r0, 0x4]
|
||||
adds r0, r1
|
||||
ldr r5, [r0, 0xC]
|
||||
ldr r0, [r0, 0x8]
|
||||
cmp r0, 0
|
||||
ble _080ABC4A
|
||||
adds r4, r0, 0
|
||||
_080ABC34:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
adds r1, r5, 0
|
||||
adds r2, r7, 0
|
||||
adds r3, r6, 0
|
||||
bl GroundObject_Add
|
||||
subs r4, 0x1
|
||||
adds r5, 0x18
|
||||
cmp r4, 0
|
||||
bne _080ABC34
|
||||
_080ABC4A:
|
||||
add sp, 0x4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ABC54: .4byte gUnknown_81183E4
|
||||
_080ABC58: .4byte gUnknown_81183F0
|
||||
thumb_func_end GroundObject_Select
|
||||
|
||||
thumb_func_start GroundObject_Cancel
|
||||
GroundObject_Cancel:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
lsls r0, 16
|
||||
asrs r7, r0, 16
|
||||
lsls r1, 24
|
||||
asrs r5, r1, 24
|
||||
ldr r1, _080ABCC4
|
||||
movs r0, 0
|
||||
adds r2, r7, 0
|
||||
bl Log
|
||||
movs r1, 0
|
||||
ldr r0, _080ABCC8
|
||||
ldr r4, [r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
mov r8, r0
|
||||
movs r6, 0x80
|
||||
lsls r6, 9
|
||||
_080ABC84:
|
||||
movs r2, 0x6
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, r8
|
||||
beq _080ABCA6
|
||||
movs r2, 0x8
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, r7
|
||||
bne _080ABCA6
|
||||
cmp r5, 0
|
||||
blt _080ABCA0
|
||||
movs r0, 0xA
|
||||
ldrsb r0, [r4, r0]
|
||||
cmp r0, r5
|
||||
bne _080ABCA6
|
||||
_080ABCA0:
|
||||
adds r0, r1, 0
|
||||
bl GroundObject_Delete
|
||||
_080ABCA6:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x80
|
||||
lsls r1, 9
|
||||
adds r6, r1
|
||||
asrs r1, r0, 16
|
||||
movs r2, 0xE2
|
||||
lsls r2, 1
|
||||
adds r4, r2
|
||||
cmp r1, 0xF
|
||||
ble _080ABC84
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ABCC4: .4byte gUnknown_8118414
|
||||
_080ABCC8: .4byte gGroundObjects
|
||||
thumb_func_end GroundObject_Cancel
|
||||
|
||||
thumb_func_start GroundObject_CancelBlank
|
||||
GroundObject_CancelBlank:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x8
|
||||
ldr r1, _080ABD40
|
||||
movs r0, 0
|
||||
bl Log
|
||||
movs r6, 0
|
||||
ldr r0, _080ABD44
|
||||
ldr r4, [r0]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
mov r8, r0
|
||||
movs r1, 0x92
|
||||
lsls r1, 1
|
||||
adds r5, r4, r1
|
||||
mov r7, sp
|
||||
_080ABCF0:
|
||||
movs r1, 0x6
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, r8
|
||||
beq _080ABD20
|
||||
ldr r0, [r5]
|
||||
ldr r1, [r4, 0x14]
|
||||
adds r0, r1
|
||||
str r0, [sp]
|
||||
ldr r0, [r5, 0x4]
|
||||
ldr r1, [r4, 0x18]
|
||||
adds r0, r1
|
||||
str r0, [r7, 0x4]
|
||||
movs r1, 0xA2
|
||||
lsls r1, 1
|
||||
adds r0, r4, r1
|
||||
mov r1, sp
|
||||
bl IsOnscreen_80A675C
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080ABD20
|
||||
adds r0, r6, 0
|
||||
bl GroundObject_Delete
|
||||
_080ABD20:
|
||||
adds r0, r6, 0x1
|
||||
lsls r0, 16
|
||||
asrs r6, r0, 16
|
||||
movs r0, 0xE2
|
||||
lsls r0, 1
|
||||
adds r5, r0
|
||||
adds r4, r0
|
||||
cmp r6, 0xF
|
||||
ble _080ABCF0
|
||||
add sp, 0x8
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ABD40: .4byte gUnknown_811842C
|
||||
_080ABD44: .4byte gGroundObjects
|
||||
thumb_func_end GroundObject_CancelBlank
|
||||
|
||||
thumb_func_start sub_80ABD48
|
||||
sub_80ABD48:
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 16
|
||||
asrs r4, r0, 16
|
||||
movs r3, 0
|
||||
ldr r0, _080ABD6C
|
||||
ldr r1, [r0]
|
||||
movs r6, 0xE2
|
||||
lsls r6, 1
|
||||
movs r2, 0x80
|
||||
lsls r2, 9
|
||||
adds r5, r2, 0
|
||||
_080ABD5E:
|
||||
movs r7, 0x6
|
||||
ldrsh r0, [r1, r7]
|
||||
cmp r0, r4
|
||||
bne _080ABD70
|
||||
adds r0, r3, 0
|
||||
b _080ABD80
|
||||
.align 2, 0
|
||||
_080ABD6C: .4byte gGroundObjects
|
||||
_080ABD70:
|
||||
adds r0, r2, 0
|
||||
adds r2, r5
|
||||
asrs r3, r0, 16
|
||||
adds r1, r6
|
||||
cmp r3, 0xF
|
||||
ble _080ABD5E
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
_080ABD80:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80ABD48
|
||||
|
||||
thumb_func_start GroundObject_Add
|
||||
GroundObject_Add:
|
||||
push {r4-r7,lr}
|
||||
|
||||
601
data/data.s
601
data/data.s
@@ -1,588 +1,6 @@
|
||||
.section .rodata
|
||||
|
||||
.align 2, 0
|
||||
@ event_flag.c
|
||||
.string "pksdir0\0"
|
||||
|
||||
.align 2, 0
|
||||
.global gLocalScriptVarInfo
|
||||
gLocalScriptVarInfo:
|
||||
.2byte 5, 7, 0, 0, 1, 0; .4byte gUnknown_80B6D88
|
||||
.2byte 5, 7, 2, 0, 1, 0; .4byte gUnknown_80B6D80
|
||||
.2byte 5, 7, 4, 0, 1, 0; .4byte gUnknown_80B6D78
|
||||
.2byte 5, 7, 6, 0, 1, 0; .4byte gUnknown_80B6D70
|
||||
|
||||
gUnknown_80B6D70:
|
||||
.string "LOCAL3\0"
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_80B6D78:
|
||||
.string "LOCAL2\0"
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_80B6D80:
|
||||
.string "LOCAL1\0"
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_80B6D88:
|
||||
.string "LOCAL0\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80B6D90
|
||||
gUnknown_80B6D90: @ 80B6D90
|
||||
.4byte gUnknown_80B7144
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B713C
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B7134
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B712C
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B7124
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B711C
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B7114
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B710C
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B7104
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B70FC
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B70F4
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B70EC
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B70E4
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B70DC
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B70D4
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B70CC
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B70C4
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B70BC
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B70B4
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B70AC
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B70A4
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B709C
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B7094
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B708C
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B7084
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B707C
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B7074
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B706C
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B7064
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B705C
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B7054
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B704C
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B7044
|
||||
.byte 0x02, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B703C
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B7034
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B702C
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B7024
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B701C
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B7014
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B700C
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B7004
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6FFC
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6FF4
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6FEC
|
||||
.byte 0x02, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6FE4
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6FDC
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6FD4
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6FCC
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6FC4
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6FBC
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6FB4
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6FAC
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6FA4
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6F9C
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6F94
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6F8C
|
||||
.byte 0x02, 0x00, 0x00, 0x00
|
||||
.4byte gUnknown_80B6F84
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B6F78
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
.4byte gUnknown_80B6F68
|
||||
.byte 0xff, 0xff, 0xff, 0xff
|
||||
|
||||
.global gUnknown_80B6F68
|
||||
gUnknown_80B6F68:
|
||||
.string "DEBUG GROUND\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6F78
|
||||
gUnknown_80B6F78:
|
||||
.string "NEXT DAY\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6F84
|
||||
gUnknown_80B6F84:
|
||||
.string "R00E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6F8C
|
||||
gUnknown_80B6F8C:
|
||||
.string "S09E01C\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6F94
|
||||
gUnknown_80B6F94:
|
||||
.string "S09E01B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6F9C
|
||||
gUnknown_80B6F9C:
|
||||
.string "S09E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6FA4
|
||||
gUnknown_80B6FA4:
|
||||
.string "S08E01B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6FAC
|
||||
gUnknown_80B6FAC:
|
||||
.string "S08E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6FB4
|
||||
gUnknown_80B6FB4:
|
||||
.string "S07E01B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6FBC
|
||||
gUnknown_80B6FBC:
|
||||
.string "S07E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6FC4
|
||||
gUnknown_80B6FC4:
|
||||
.string "S06E01C\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6FCC
|
||||
gUnknown_80B6FCC:
|
||||
.string "S06E01B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6FD4
|
||||
gUnknown_80B6FD4:
|
||||
.string "S06E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6FDC
|
||||
gUnknown_80B6FDC:
|
||||
.string "S05E01B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6FE4
|
||||
gUnknown_80B6FE4:
|
||||
.string "S05E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6FEC
|
||||
gUnknown_80B6FEC:
|
||||
.string "S04E01F\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6FF4
|
||||
gUnknown_80B6FF4:
|
||||
.string "S04E01E\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B6FFC
|
||||
gUnknown_80B6FFC:
|
||||
.string "S04E01D\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7004
|
||||
gUnknown_80B7004:
|
||||
.string "S04E01C\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B700C
|
||||
gUnknown_80B700C:
|
||||
.string "S04E01B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7014
|
||||
gUnknown_80B7014:
|
||||
.string "S04E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B701C
|
||||
gUnknown_80B701C:
|
||||
.string "S03E01B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7024
|
||||
gUnknown_80B7024:
|
||||
.string "S03E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B702C
|
||||
gUnknown_80B702C:
|
||||
.string "S02E02B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7034
|
||||
gUnknown_80B7034:
|
||||
.string "S02E02A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B703C
|
||||
gUnknown_80B703C:
|
||||
.string "S02E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7044
|
||||
gUnknown_80B7044:
|
||||
.string "S01E02B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B704C
|
||||
gUnknown_80B704C:
|
||||
.string "S01E02A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7054
|
||||
gUnknown_80B7054:
|
||||
.string "S01E01B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B705C
|
||||
gUnknown_80B705C:
|
||||
.string "S01E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7064
|
||||
gUnknown_80B7064:
|
||||
.string "S00E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B706C
|
||||
gUnknown_80B706C:
|
||||
.string "M02END\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7074
|
||||
gUnknown_80B7074:
|
||||
.string "M02E02H\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B707C
|
||||
gUnknown_80B707C:
|
||||
.string "M02E02G\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7084
|
||||
gUnknown_80B7084:
|
||||
.string "M02E02F\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B708C
|
||||
gUnknown_80B708C:
|
||||
.string "M02E02E\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7094
|
||||
gUnknown_80B7094:
|
||||
.string "M02E02D\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B709C
|
||||
gUnknown_80B709C:
|
||||
.string "M02E02C\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B70A4
|
||||
gUnknown_80B70A4:
|
||||
.string "M02E02B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B70AC
|
||||
gUnknown_80B70AC:
|
||||
.string "M02E02A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B70B4
|
||||
gUnknown_80B70B4:
|
||||
.string "M02E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B70BC
|
||||
gUnknown_80B70BC:
|
||||
.string "M01END\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B70C4
|
||||
gUnknown_80B70C4:
|
||||
.string "M01E10A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B70CC
|
||||
gUnknown_80B70CC:
|
||||
.string "M01E09A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B70D4
|
||||
gUnknown_80B70D4:
|
||||
.string "M01E08B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B70DC
|
||||
gUnknown_80B70DC:
|
||||
.string "M01E08A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B70E4
|
||||
gUnknown_80B70E4:
|
||||
.string "M01E07B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B70EC
|
||||
gUnknown_80B70EC:
|
||||
.string "M01E07A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B70F4
|
||||
gUnknown_80B70F4:
|
||||
.string "M01E06A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B70FC
|
||||
gUnknown_80B70FC:
|
||||
.string "M01E05B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7104
|
||||
gUnknown_80B7104:
|
||||
.string "M01E05A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B710C
|
||||
gUnknown_80B710C:
|
||||
.string "M01E04B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7114
|
||||
gUnknown_80B7114:
|
||||
.string "M01E04A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B711C
|
||||
gUnknown_80B711C:
|
||||
.string "M01E03A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7124
|
||||
gUnknown_80B7124:
|
||||
.string "M01E02B\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B712C
|
||||
gUnknown_80B712C:
|
||||
.string "M01E02A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B7134
|
||||
gUnknown_80B7134:
|
||||
.string "M01E01A\0"
|
||||
.align 2,0
|
||||
.global gUnknown_80B713C
|
||||
gUnknown_80B713C:
|
||||
.string "M00E01A\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80B7144
|
||||
gUnknown_80B7144: @ 80B7144
|
||||
.string "NONE\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80B714C
|
||||
gUnknown_80B714C: @ 80B714C
|
||||
.4byte TwoOneText
|
||||
.4byte TwoOneText
|
||||
.4byte OneTwoSevenText
|
||||
.4byte FourText
|
||||
.4byte FiveText
|
||||
.4byte SixText
|
||||
.4byte TwoTwoEightText
|
||||
.4byte ThreeText
|
||||
.4byte NineText
|
||||
.4byte EndText
|
||||
|
||||
.global EndText
|
||||
EndText:
|
||||
.string "END\0"
|
||||
|
||||
.global NineText
|
||||
NineText:
|
||||
.string "9\0"
|
||||
.align 2,0
|
||||
|
||||
.global ThreeText
|
||||
ThreeText:
|
||||
.string "3\0"
|
||||
.align 2,0
|
||||
|
||||
.global TwoTwoEightText
|
||||
TwoTwoEightText:
|
||||
.string "2-2 8\0"
|
||||
.align 2,0
|
||||
|
||||
.global SixText
|
||||
SixText:
|
||||
.string "6\0"
|
||||
.align 2,0
|
||||
|
||||
.global FiveText
|
||||
FiveText:
|
||||
.string "5\0"
|
||||
.align 2,0
|
||||
|
||||
.global FourText
|
||||
FourText:
|
||||
.string "4\0"
|
||||
.align 2,0
|
||||
|
||||
.global OneTwoSevenText
|
||||
OneTwoSevenText:
|
||||
.string "1-2 7\0"
|
||||
.align 2,0
|
||||
|
||||
.global TwoOneText
|
||||
TwoOneText:
|
||||
.string "2-1\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80B71A0
|
||||
gUnknown_80B71A0: @ 80B71A0
|
||||
.4byte CISTART_text
|
||||
.4byte CECONTINUE_text
|
||||
.4byte CNLAST_text
|
||||
.4byte CWEND_text
|
||||
|
||||
.global CWEND_text
|
||||
CWEND_text:
|
||||
.string "{COLOR RED_W}END{RESET}\0"
|
||||
.align 2,0
|
||||
|
||||
.global CNLAST_text
|
||||
CNLAST_text:
|
||||
.string "{COLOR YELLOW_N}LAST{RESET}\0"
|
||||
.align 2,0
|
||||
|
||||
.global CECONTINUE_text
|
||||
CECONTINUE_text:
|
||||
.string "{COLOR GENDER_COLOR}CONTINUE{RESET}\0"
|
||||
.align 2,0
|
||||
|
||||
.global CISTART_text
|
||||
CISTART_text:
|
||||
.string "{COLOR GREEN_I}START{RESET}\0"
|
||||
.align 2,0
|
||||
|
||||
.global gGroundEnterLookupTable
|
||||
gGroundEnterLookupTable: @ 80B71E4
|
||||
@ [struct unkEventStruct]
|
||||
.2byte 105, 1
|
||||
.2byte 106, 2
|
||||
.2byte 107, 3
|
||||
.2byte 108, 4
|
||||
.2byte 109, 5
|
||||
.2byte 110, 6
|
||||
.2byte 111, 7
|
||||
.2byte 112, 8
|
||||
.2byte 113, 9
|
||||
.2byte 114, 10
|
||||
.2byte 115, 11
|
||||
.2byte 116, 12
|
||||
.2byte 117, 13
|
||||
.2byte 118, 14
|
||||
.2byte 119, 15
|
||||
.2byte 120, 16
|
||||
.2byte 121, 17
|
||||
.2byte 122, 18
|
||||
.2byte 123, 19
|
||||
.2byte 124, 20
|
||||
.2byte 125, 21
|
||||
.2byte 126, 22
|
||||
.2byte 127, 23
|
||||
.2byte 128, 24
|
||||
.2byte 129, 25
|
||||
.2byte 130, 26
|
||||
.2byte 131, 27
|
||||
.2byte 132, 28
|
||||
.2byte 133, 29
|
||||
.2byte 134, 30
|
||||
.2byte 135, 31
|
||||
.2byte 136, 32
|
||||
.2byte 137, 33
|
||||
.2byte 138, 34
|
||||
.2byte 139, 35
|
||||
.2byte 140, 36
|
||||
.2byte 141, 37
|
||||
.2byte 142, 38
|
||||
.2byte 143, 39
|
||||
.2byte 144, 40
|
||||
.2byte 145, 41
|
||||
.2byte 146, 42
|
||||
.2byte 147, 43
|
||||
.2byte 148, 44
|
||||
.2byte 149, 45
|
||||
.2byte 150, 46
|
||||
.2byte 151, 47
|
||||
.2byte 152, 48
|
||||
.2byte 153, 49
|
||||
.2byte 154, 50
|
||||
.2byte 155, 51
|
||||
.2byte 156, 52
|
||||
.2byte 157, 53
|
||||
.2byte 158, 54
|
||||
.2byte 159, 55
|
||||
.2byte 160, 56
|
||||
.2byte 161, 57
|
||||
.2byte -1, 0
|
||||
|
||||
.global gUnknown_80B72CC
|
||||
gUnknown_80B72CC: @ 80B72CC
|
||||
.string "SCENARIO CALC [%3d] %4d %4d -> %4d %4d\0"
|
||||
.align 2,0
|
||||
|
||||
.global EventFlagFile_Text
|
||||
EventFlagFile_Text:
|
||||
.string "../main/event_flag.c\0"
|
||||
.align 2,0
|
||||
|
||||
.global FlagCalc_Text
|
||||
FlagCalc_Text:
|
||||
.string "_FlagCalc\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80B7318
|
||||
gUnknown_80B7318: @ 80B7318
|
||||
.4byte EventFlagFile_Text
|
||||
.byte 0x51, 0x05, 0x00, 0x00
|
||||
.4byte FlagCalc_Text
|
||||
|
||||
.global gUnknown_80B7324
|
||||
gUnknown_80B7324: @ 80B7324
|
||||
.string "event flag expansion error %d\0"
|
||||
.align 2,0
|
||||
|
||||
.global FlagJudge_Text
|
||||
FlagJudge_Text:
|
||||
.string "_FlagJudge\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80B7350
|
||||
gUnknown_80B7350: @ 80B7350
|
||||
.4byte EventFlagFile_Text
|
||||
.byte 0x7C, 0x05, 0x00, 0x00
|
||||
.4byte FlagJudge_Text
|
||||
|
||||
.global gUnknown_80B735C
|
||||
gUnknown_80B735C: @ 80B735C
|
||||
.string "event flag rule error %d\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80B7378
|
||||
gUnknown_80B7378: @ 80B7378
|
||||
.string "error number\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80B7388
|
||||
gUnknown_80B7388: @ 80B7388
|
||||
.string "1-1\0"
|
||||
|
||||
@ code.c
|
||||
.string "pksdir0\0"
|
||||
@@ -1005,22 +423,3 @@ gUnknown_80B7DF8:
|
||||
@ ???
|
||||
.string "pksdir0\0"
|
||||
.fill 28, 1, 0
|
||||
|
||||
@ code_8002774.s
|
||||
.string "pksdir0\0"
|
||||
.fill 8, 1, 0
|
||||
|
||||
.global gVectorDirections
|
||||
gVectorDirections: @ R=080B7E3C | B=0208772C
|
||||
.4byte 0, 1 @N
|
||||
.4byte 1, 1 @NE
|
||||
.4byte 1, 0 @E
|
||||
.4byte 1, -1 @SE
|
||||
.4byte 0, -1 @S
|
||||
.4byte -1, -1 @SW
|
||||
.4byte -1, 0 @W
|
||||
.4byte -1, 1 @NW
|
||||
|
||||
@ ???
|
||||
.string "pksdir0\0"
|
||||
|
||||
|
||||
@@ -1,14 +1,7 @@
|
||||
.section .rodata
|
||||
|
||||
.global gGroundFileArchive
|
||||
gGroundFileArchive: @ 9890000
|
||||
@ replacing .incbin "baserom.gba", 0x1890000, 0x5D0000
|
||||
.string "pksdir0\0"
|
||||
.incbin "baserom.gba", 0x1890008, 0x4
|
||||
.4byte gUnknown_9890018
|
||||
.string "pksdir0\0"
|
||||
.global gUnknown_9890018
|
||||
gUnknown_9890018:
|
||||
.global gGroundFiles
|
||||
gGroundFiles:
|
||||
.4byte gUnknown_9892C68
|
||||
.4byte gUnknown_9892C78
|
||||
.4byte gUnknown_9892C60
|
||||
|
||||
9
data/pksdir_5.s
Normal file
9
data/pksdir_5.s
Normal file
@@ -0,0 +1,9 @@
|
||||
.section .rodata
|
||||
|
||||
.align 2, 0
|
||||
|
||||
|
||||
@ ???
|
||||
.string "pksdir0\0"
|
||||
.align 2, 0
|
||||
|
||||
@@ -1,125 +1,5 @@
|
||||
.section .rodata
|
||||
|
||||
.global gTitleMenuFileArchive
|
||||
gTitleMenuFileArchive: @ 8380000
|
||||
@ replacing .incbin "baserom.gba", 0x380000, 0x22E74
|
||||
.string "pksdir0\0"
|
||||
.incbin "baserom.gba", 0x380008, 0x4
|
||||
.4byte gUnknown_8380018
|
||||
.string "pksdir0\0"
|
||||
.global gUnknown_8380018
|
||||
gUnknown_8380018:
|
||||
.4byte gUnknown_8380190
|
||||
.4byte gUnknown_83801A0
|
||||
.4byte gUnknown_8380188
|
||||
.4byte gUnknown_8380AB8
|
||||
.4byte gUnknown_838017C
|
||||
.4byte gUnknown_8382884
|
||||
.4byte gUnknown_8380174
|
||||
.4byte gUnknown_8382C04
|
||||
.4byte gUnknown_838016C
|
||||
.4byte gUnknown_8384914
|
||||
.4byte gUnknown_8380164
|
||||
.4byte gUnknown_8384C9C
|
||||
.4byte gUnknown_8380158
|
||||
.4byte gUnknown_8388AD0
|
||||
.4byte gUnknown_8380150
|
||||
.4byte gUnknown_8388E50
|
||||
.4byte gUnknown_8380144
|
||||
.4byte gUnknown_838CF98
|
||||
.4byte gUnknown_838013C
|
||||
.4byte gUnknown_838D318
|
||||
.4byte gUnknown_8380130
|
||||
.4byte gUnknown_8391C48
|
||||
.4byte gUnknown_8380128
|
||||
.4byte gUnknown_8391FC8
|
||||
.4byte gUnknown_8380120
|
||||
.4byte gUnknown_83923A0
|
||||
.4byte gUnknown_8380114
|
||||
.4byte gUnknown_8392638
|
||||
.4byte gUnknown_8380108
|
||||
.4byte gUnknown_8392B88
|
||||
.4byte gUnknown_8380100
|
||||
.4byte gUnknown_8398A9C
|
||||
.4byte gUnknown_83800F8
|
||||
.4byte gUnknown_8399F84
|
||||
.4byte gUnknown_83800F0
|
||||
.4byte gUnknown_839A304
|
||||
.4byte gUnknown_83800E4
|
||||
.4byte gUnknown_839B584
|
||||
.4byte gUnknown_83800D8
|
||||
.4byte gUnknown_839B814
|
||||
.4byte gUnknown_83800D0
|
||||
.4byte gUnknown_83A1574
|
||||
.4byte gUnknown_83800C8
|
||||
.4byte gUnknown_83A2AF4
|
||||
.global gUnknown_83800C8
|
||||
gUnknown_83800C8:
|
||||
.incbin "baserom.gba", 0x3800C8, 0x8
|
||||
.global gUnknown_83800D0
|
||||
gUnknown_83800D0:
|
||||
.incbin "baserom.gba", 0x3800D0, 0x8
|
||||
.global gUnknown_83800D8
|
||||
gUnknown_83800D8:
|
||||
.incbin "baserom.gba", 0x3800D8, 0xC
|
||||
.global gUnknown_83800E4
|
||||
gUnknown_83800E4:
|
||||
.incbin "baserom.gba", 0x3800E4, 0xC
|
||||
.global gUnknown_83800F0
|
||||
gUnknown_83800F0:
|
||||
.incbin "baserom.gba", 0x3800F0, 0x8
|
||||
.global gUnknown_83800F8
|
||||
gUnknown_83800F8:
|
||||
.incbin "baserom.gba", 0x3800F8, 0x8
|
||||
.global gUnknown_8380100
|
||||
gUnknown_8380100:
|
||||
.incbin "baserom.gba", 0x380100, 0x8
|
||||
.global gUnknown_8380108
|
||||
gUnknown_8380108:
|
||||
.incbin "baserom.gba", 0x380108, 0xC
|
||||
.global gUnknown_8380114
|
||||
gUnknown_8380114:
|
||||
.incbin "baserom.gba", 0x380114, 0xC
|
||||
.global gUnknown_8380120
|
||||
gUnknown_8380120:
|
||||
.incbin "baserom.gba", 0x380120, 0x8
|
||||
.global gUnknown_8380128
|
||||
gUnknown_8380128:
|
||||
.incbin "baserom.gba", 0x380128, 0x8
|
||||
.global gUnknown_8380130
|
||||
gUnknown_8380130:
|
||||
.incbin "baserom.gba", 0x380130, 0xC
|
||||
.global gUnknown_838013C
|
||||
gUnknown_838013C:
|
||||
.incbin "baserom.gba", 0x38013C, 0x8
|
||||
.global gUnknown_8380144
|
||||
gUnknown_8380144:
|
||||
.incbin "baserom.gba", 0x380144, 0xC
|
||||
.global gUnknown_8380150
|
||||
gUnknown_8380150:
|
||||
.incbin "baserom.gba", 0x380150, 0x8
|
||||
.global gUnknown_8380158
|
||||
gUnknown_8380158:
|
||||
.incbin "baserom.gba", 0x380158, 0xC
|
||||
.global gUnknown_8380164
|
||||
gUnknown_8380164:
|
||||
.incbin "baserom.gba", 0x380164, 0x8
|
||||
.global gUnknown_838016C
|
||||
gUnknown_838016C:
|
||||
.incbin "baserom.gba", 0x38016C, 0x8
|
||||
.global gUnknown_8380174
|
||||
gUnknown_8380174:
|
||||
.incbin "baserom.gba", 0x380174, 0x8
|
||||
.global gUnknown_838017C
|
||||
gUnknown_838017C:
|
||||
.incbin "baserom.gba", 0x38017C, 0xC
|
||||
.global gUnknown_8380188
|
||||
gUnknown_8380188:
|
||||
.incbin "baserom.gba", 0x380188, 0x8
|
||||
.global gUnknown_8380190
|
||||
gUnknown_8380190:
|
||||
.incbin "baserom.gba", 0x380190, 0x8
|
||||
.string "pksdir0\0"
|
||||
.global gUnknown_83801A0
|
||||
gUnknown_83801A0:
|
||||
.string "SIRO"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
// code_803C1D0.s
|
||||
extern u8 sub_803C1D0(DungeonLocation *, u8);
|
||||
extern u8 *sub_803C1F0(u8);
|
||||
extern u8 *GetMissionRankText(u8);
|
||||
extern void sub_803C21C(WonderMail *, unkStruct_802F204 *);
|
||||
|
||||
#endif // GUARD_CODE_803C1D0_H
|
||||
#endif // GUARD_CODE_803C1D0_H
|
||||
|
||||
@@ -22,7 +22,7 @@ extern s32 gUnknown_202F224;
|
||||
extern s32 gMetronomeCalledArrayId;
|
||||
|
||||
void UseMoveAgainstTargets(Entity **targetsArray, Entity *attacker, Move *move, s32 itemId, bool32 isLinkedMove);
|
||||
bool32 HandleRegularDamagingMove(Entity *attacker, Entity *target, Move *move, s32 itemId);
|
||||
bool8 HandleRegularDamagingMove(Entity *attacker, Entity *target, Move *move, s32 itemId);
|
||||
s32 HandleDamagingMove(Entity *attacker, Entity *target, Move *move, s24_8 modifier, s32 itemId);
|
||||
s32 sub_80556BC(Entity *attacker, Entity *target, u8 moveType, Move *move, s24_8 modifier, s32 itemId);
|
||||
s32 sub_8055864(Entity *attacker, Entity *target, Move *move, s32 param_4, s32 itemId);
|
||||
|
||||
@@ -115,8 +115,18 @@ typedef struct GroundMapAction
|
||||
{
|
||||
// size: 0x110
|
||||
/* 0x00 */ Action action;
|
||||
/* 0xE4 */ u16 groundMapId;
|
||||
/* .... */ u8 fillE8[0x110 - 0xE6];
|
||||
/* 0xE4 */ s16 groundMapId;
|
||||
u16 fillE6;
|
||||
u32 unkE8;
|
||||
u32 unkEC;
|
||||
u32 unkF0;
|
||||
u32 unkF4;
|
||||
u32 unkF8;
|
||||
u32 unkFC;
|
||||
u32 unk100;
|
||||
u32 unk104;
|
||||
u32 unk108;
|
||||
u32 unk10C;
|
||||
} GroundMapAction;
|
||||
|
||||
typedef struct ScriptRef
|
||||
|
||||
83
include/move_orb_actions_1.h
Normal file
83
include/move_orb_actions_1.h
Normal file
@@ -0,0 +1,83 @@
|
||||
#ifndef GUARD_MOVE_ORB_ACTIONS_1_H
|
||||
#define GUARD_MOVE_ORB_ACTIONS_1_H
|
||||
|
||||
#include "structs/dungeon_entity.h"
|
||||
|
||||
bool8 IronTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_805768C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 YawnMoveAction(Entity * pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BasicSleepMoveAction(Entity * pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 NightmareMoveAction(Entity * pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MorningSunMoveAction(Entity * pokemon,Entity * target, Move *move, s32 param_4);
|
||||
bool8 VitalThrowMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4);
|
||||
bool8 DigMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4);
|
||||
bool8 SweetScentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 CharmMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 RainDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 HailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_80578EC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BubbleMoveAction(Entity *pokemon, Entity *target, Move * move, s32 param_4);
|
||||
bool8 EncoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 RageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SuperFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 PainSplitMoveAction(Entity *attacker, Entity *target, Move *move, s32 param_4);
|
||||
bool8 TormentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 StringShotMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SwaggerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SnoreMoveAction(Entity *pokemon, Entity *target, Move * move, s32 param_4);
|
||||
bool8 ScreechMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move * move, s32 param_4);
|
||||
bool32 WeatherBallMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4);
|
||||
bool8 WhirlpoolMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4);
|
||||
bool8 FakeTearsMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4);
|
||||
bool8 SpiteMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4);
|
||||
bool8 FocusEnergyMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4);
|
||||
bool8 SmokescreenMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MirrorMoveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 OverheatMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 AuroraBeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MementoMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 OctazookaMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 FlatterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 WillOWispMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ReturnMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4);
|
||||
bool8 GrudgeMoveAction(Entity *pokemon, Entity * target, Move *move, s32 param_4);
|
||||
bool8 CounterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BasicFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ExposeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 DoubleTeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BasicRaiseDefenseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 DisableMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BasicRaiseAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 RazorWindMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4);
|
||||
bool8 BideMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 Bide2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 FocusPunchMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4);
|
||||
bool8 GigaDrainMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4);
|
||||
bool8 ReversalMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4);
|
||||
bool8 SmellingSaltMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4);
|
||||
bool8 MetalSoundMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_805889C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 HazeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SynthesisMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 AgilityMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SureShotMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 CosmicPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
|
||||
|
||||
#endif /* ifndef GUARD_MOVE_ORB_ACTIONS_1_H */
|
||||
74
include/move_orb_actions_2.h
Normal file
74
include/move_orb_actions_2.h
Normal file
@@ -0,0 +1,74 @@
|
||||
#ifndef GUARD_MOVE_ORB_ACTIONS_2_H
|
||||
#define GUARD_MOVE_ORB_ACTIONS_2_H
|
||||
|
||||
#include "structs/dungeon_entity.h"
|
||||
|
||||
bool8 SkyAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BasicIceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MeteorMashMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ScaryFaceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_8058E5C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 FissureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 AbsorbMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SkillSwapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 DoubleEdgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_8059528(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_80595EC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 TwisterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 TwineedleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_8059A2C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SupersonicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 TauntMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 HornDrillMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ThunderWaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BlockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 PoisonGasMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ToxicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 PoisonFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool32 EarthquakeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 UproarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SandstormMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 Conversion2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 PsychUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ConversionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SketchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 NaturePowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 HelpingHandMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 EndureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_8058C98(Entity *pokemon, Entity *target, Move *move, s32 param_4, u32 param_5);
|
||||
bool8 SonicboomMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SelfDestructMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ExplosionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ChargeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 WaterSpoutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 StockpileMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
void sub_80783C4(Entity * pokemon, Entity * target, bool8 param_3);
|
||||
bool8 StunSporeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_8058C00(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_8059CD8(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ThunderboltMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ZapCannonMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MinimizeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SwordsDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 GrowthMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 PsychoBoostMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SafeguardMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MistMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MoonlightMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SolarBeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_80599EC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_8058EE0(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 PsywaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 WarpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 FlyMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 DiveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
|
||||
#endif /* ifndef GUARD_MOVE_ORB_ACTIONS_2_H */
|
||||
|
||||
65
include/move_orb_actions_3.h
Normal file
65
include/move_orb_actions_3.h
Normal file
@@ -0,0 +1,65 @@
|
||||
#ifndef GUARD_MOVE_ORB_ACTIONS_3_H
|
||||
#define GUARD_MOVE_ORB_ACTIONS_3_H
|
||||
|
||||
#include "structs/dungeon_entity.h"
|
||||
|
||||
bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 TriAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 TrickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 TripleKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ThiefMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 LeerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 CurseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_805A568(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 KnockOffMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SecretPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_805AC90(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ObserverOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 FeatherDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BeatUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 CrushClawMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BlazeKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 PresentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 EruptionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 GlareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 PoisonTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 RoarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_805B17C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 WrapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MagnitudeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 TailGlowMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SurfMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 PerishSongMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SunnyDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BellyDrumMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 HiJumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4,u8 param_5);
|
||||
bool8 JumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4,u8 param_5);
|
||||
bool8 SteelWingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4, u32 param_5);
|
||||
bool8 BulkUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 AmnesiaMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 HandleColorChange(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 TransformMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SplashMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SpitUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SwallowMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 GrowlMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 LightScreenMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 RestMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_805A450(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MudWaterSportMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 IngrainMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MagicCoatMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SpikesMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 WishMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 BounceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 AssistMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_805AAD0(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
|
||||
#endif /* ifndef GUARD_MOVE_ORB_ACTIONS_3_H */
|
||||
@@ -1,7 +1,6 @@
|
||||
#ifndef GUARD_STATUS_ACTIONS_H
|
||||
#define GUARD_STATUS_ACTIONS_H
|
||||
#ifndef GUARD_MOVE_ORB_ACTIONS_4_H
|
||||
#define GUARD_MOVE_ORB_ACTIONS_4_H
|
||||
|
||||
#include "constants/move.h"
|
||||
#include "structs/dungeon_entity.h"
|
||||
|
||||
bool8 DreamEaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
@@ -43,13 +42,25 @@ bool8 ShockerOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
bool8 sub_805C208(Entity *pokemon, Entity *target, Move *move, u32 param_4);
|
||||
bool8 sub_805C288(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 OneRoomOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 FillInOrbAction(Entity *pokemon,Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_805C3DC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ItemizeOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 HurlOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MobileOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 StairsOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 LongtossOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 PierceOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MistBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 DestinyBondMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 FalseSwipeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 HiddenPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 AttractMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MimicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 FrustrationMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 LeechSeedMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MetalClawMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4, s32 param_5);
|
||||
bool8 InvisifyOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 CalmMindMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 DefenseCurlMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 SnatchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MetronomeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ReboundOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 sub_805B314(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 ProtectMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MirrorCoatMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
|
||||
|
||||
#endif /* ifndef MOVE_ORB_ACTIONS_4_H */
|
||||
|
||||
#endif
|
||||
15
include/move_orb_actions_5.h
Normal file
15
include/move_orb_actions_5.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#ifndef GUARD_MOVE_ORB_ACTIONS_5_H
|
||||
#define GUARD_MOVE_ORB_ACTIONS_5_H
|
||||
|
||||
#include "structs/dungeon_entity.h"
|
||||
|
||||
bool8 FillInOrbAction(Entity *pokemon,Entity *target, Move *move, s32 param_4);
|
||||
bool8 ItemizeOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 HurlOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 MobileOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 StairsOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 LongtossOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 PierceOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
bool8 TrapperOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
|
||||
#endif /* ifndef MOVE_ORB_ACTIONS_5_H */
|
||||
@@ -33,7 +33,7 @@ typedef struct unkStruct_802F204
|
||||
/* 0x0 */ u8 clientName[POKEMON_NAME_LENGTH];
|
||||
/* 0xA */ u8 name2[POKEMON_NAME_LENGTH]; // target name?
|
||||
/* 0x14 */ s16 clientSpecies;
|
||||
u8 unk16;
|
||||
u8 rewardType;
|
||||
/* 0x18 */ s32 moneyReward;
|
||||
/* 0x1C */ u8 itemRewards[MAX_ITEM_REWARDS];
|
||||
/* 0x1F */ u8 quantity;
|
||||
|
||||
@@ -344,6 +344,8 @@ SECTIONS {
|
||||
asm/code_80A26CC_1.o(.text);
|
||||
src/ground_map.o(.text);
|
||||
asm/ground_map_1.o(.text);
|
||||
src/ground_map_1.o(.text);
|
||||
asm/code_80A59DC.o(.text);
|
||||
src/ground_map_2.o(.text);
|
||||
src/ground_sprite.o(.text);
|
||||
asm/ground_sprite.o(.text);
|
||||
@@ -424,7 +426,10 @@ SECTIONS {
|
||||
ALIGN(4)
|
||||
{
|
||||
src/main_loops.o(.rodata);
|
||||
src/event_flag.o(.rodata);
|
||||
data/data.o(.rodata);
|
||||
src/code_8002774.o(.rodata);
|
||||
data/pksdir_5.o(.rodata);
|
||||
src/memory.o(.rodata);
|
||||
data/data1.o(.rodata);
|
||||
src/random.o(.rodata);
|
||||
@@ -895,6 +900,7 @@ SECTIONS {
|
||||
titlemenu_sbin_section 0x8380000 :
|
||||
ALIGN(4)
|
||||
{
|
||||
src/titlemenu_sbin.o(.rodata);
|
||||
data/titlemenu_sbin.o(.rodata);
|
||||
} > ROM =0
|
||||
|
||||
@@ -927,6 +933,7 @@ SECTIONS {
|
||||
ground_sbin_section :
|
||||
ALIGN(4)
|
||||
{
|
||||
src/ground_sbin.o(.rodata);
|
||||
data/ground_sbin.o(.rodata);
|
||||
} > ROM =0
|
||||
|
||||
|
||||
@@ -29,9 +29,6 @@
|
||||
|
||||
void sub_804EB30();
|
||||
bool8 ExposeTrap(s32 x, s32 y);
|
||||
void ShowWholeRevealedDungeonMap();
|
||||
void sub_8049ED4();
|
||||
void sub_806A5B8(Entity *);
|
||||
u8 sub_8045888(Entity *);
|
||||
void sub_807EC28(u32);
|
||||
u8 sub_8044B28(void);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "code_8002774.h"
|
||||
#include "constants/direction.h"
|
||||
#include "structs/str_position.h"
|
||||
@@ -11,7 +12,18 @@ struct S
|
||||
u8 x0[UNK_STRUCT_ARR_COUNT];
|
||||
};
|
||||
|
||||
extern const PixelPos gVectorDirections[8];
|
||||
const u8 sUnknown_8002774[] = {0, 0, 0, 0, 0, 0, 0, 0};
|
||||
|
||||
const PixelPos gVectorDirections[NUM_DIRECTIONS] = {
|
||||
{0, 1}, // N
|
||||
{1, 1}, // NE
|
||||
{1, 0}, // E
|
||||
{1, -1}, // SE
|
||||
{0, -1}, // S
|
||||
{-1, -1}, // SW
|
||||
{-1, 0}, // W
|
||||
{-1, 1}, // NW
|
||||
};
|
||||
|
||||
static s8 VecDirection4Radial(PixelPos *pixelPos);
|
||||
|
||||
|
||||
@@ -1,11 +1,18 @@
|
||||
#include "global.h"
|
||||
#include "structs/str_wonder_mail.h"
|
||||
#include "dungeon.h"
|
||||
#include "event_flag.h"
|
||||
#include "pokemon.h"
|
||||
|
||||
u32 sub_803C1B4(DungeonLocation *dungeon, u8 r1)
|
||||
extern u8 *gMissionRankText[];
|
||||
extern s32 gUnknown_80E80A0[];
|
||||
void sub_803C37C(DungeonLocation *, u8, u8 *);
|
||||
|
||||
s32 sub_803C1B4(DungeonLocation *dungeon, u8 missionType)
|
||||
{
|
||||
s32 temp;
|
||||
temp = sub_80908D8(dungeon);
|
||||
if(r1 == 2)
|
||||
if(missionType == 2)
|
||||
{
|
||||
temp += 2;
|
||||
}
|
||||
@@ -14,3 +21,117 @@ u32 sub_803C1B4(DungeonLocation *dungeon, u8 r1)
|
||||
return temp;
|
||||
}
|
||||
|
||||
u8 sub_803C1D0(struct DungeonLocation *dungeon, u8 missionType)
|
||||
{
|
||||
s32 a = sub_803C1B4(dungeon, missionType);
|
||||
a /= 2;
|
||||
if ((u8)a >= 7) {
|
||||
a = 6;
|
||||
return a;
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
u8 *GetMissionRankText(u8 index)
|
||||
{
|
||||
return gMissionRankText[index];
|
||||
}
|
||||
|
||||
u32 GetDungeonTeamRankPts(DungeonLocation *dungeon, u8 r1)
|
||||
{
|
||||
u32 index = sub_803C1B4(dungeon, r1);
|
||||
return gUnknown_80E80A0[index];
|
||||
}
|
||||
|
||||
void sub_803C21C(WonderMail *param_1, unkStruct_802F204 *param_2)
|
||||
{
|
||||
int index;
|
||||
u32 uVar2;
|
||||
|
||||
uVar2 = sub_803C1D0(¶m_1->unk4.dungeon,param_1->missionType);
|
||||
param_2->moneyReward = 0;
|
||||
|
||||
for(index = 0; index < MAX_ITEM_REWARDS; index++)
|
||||
{
|
||||
param_2->itemRewards[index] = ITEM_NOTHING;
|
||||
}
|
||||
param_2->friendAreaReward = 0;
|
||||
param_2->quantity = 10;
|
||||
switch(param_1->rewardType) {
|
||||
case MONEY:
|
||||
param_2->rewardType = 0;
|
||||
param_2->moneyReward = (uVar2 + 1) * 100;
|
||||
break;
|
||||
case MONEY_EXTRA:
|
||||
param_2->rewardType = 1;
|
||||
param_2->moneyReward = (uVar2 + 1) * 100;
|
||||
param_2->itemRewards[0] = param_1->itemReward;
|
||||
break;
|
||||
case ITEM:
|
||||
param_2->rewardType = 2;
|
||||
param_2->itemRewards[0] = param_1->itemReward;
|
||||
break;
|
||||
case ITEM_EXTRA:
|
||||
param_2->rewardType = 3;
|
||||
param_2->itemRewards[0] = param_1->itemReward;
|
||||
do {
|
||||
sub_803C37C(¶m_1->unk4.dungeon,param_1->missionType,¶m_2->itemRewards[1]);
|
||||
} while (param_2->itemRewards[0] == param_2->itemRewards[1]);
|
||||
break;
|
||||
case MONEY1:
|
||||
param_2->rewardType = 0;
|
||||
param_2->moneyReward = (uVar2 + 1) * 200;
|
||||
break;
|
||||
case MONEY1_EXTRA:
|
||||
param_2->rewardType = 1;
|
||||
param_2->moneyReward = (uVar2 + 1) * 200;
|
||||
param_2->itemRewards[0] = param_1->itemReward;
|
||||
break;
|
||||
case ITEM1: // ITEM1
|
||||
param_2->rewardType = 2;
|
||||
param_2->itemRewards[0] = param_1->itemReward;
|
||||
break;
|
||||
case ITEM1_EXTRA:
|
||||
param_2->rewardType = 3;
|
||||
param_2->itemRewards[0] = param_1->itemReward;
|
||||
do {
|
||||
sub_803C37C(¶m_1->unk4.dungeon,param_1->missionType,¶m_2->itemRewards[1]);
|
||||
} while (param_2->itemRewards[0] == param_2->itemRewards[1]);
|
||||
do {
|
||||
do {
|
||||
sub_803C37C(¶m_1->unk4.dungeon,param_1->missionType,¶m_2->itemRewards[2]);
|
||||
} while (param_2->itemRewards[0] == param_2->itemRewards[2]);
|
||||
} while (param_2->itemRewards[1] == param_2->itemRewards[2]);
|
||||
break;
|
||||
case FRIEND_AREA:
|
||||
param_2->rewardType = 4;
|
||||
param_2->friendAreaReward = param_1->friendAreaReward;
|
||||
break;
|
||||
default:
|
||||
param_2->rewardType = 5;
|
||||
break;
|
||||
}
|
||||
CopyYellowMonsterNametoBuffer(param_2->clientName, param_1->clientSpecies);
|
||||
param_2->clientSpecies = param_1->clientSpecies;
|
||||
param_2->teamRankPtsReward = GetDungeonTeamRankPts(¶m_1->unk4.dungeon,param_1->missionType);
|
||||
}
|
||||
|
||||
void sub_803C37C(DungeonLocation *location, u8 r1, u8 *itemReward) {
|
||||
s32 r7;
|
||||
bool8 flag;
|
||||
u8 r4;
|
||||
|
||||
r7 = sub_803C1B4(location, r1);
|
||||
sub_8090910(location, r7);
|
||||
|
||||
do {
|
||||
flag = FALSE;
|
||||
r4 = sub_8090910(location, r7);
|
||||
if(r4 == ITEM_WEAVILE_FIG)
|
||||
flag = GetScriptVarArrayValue(0, EVENT_B01P01, 1) ? TRUE : FALSE;
|
||||
if(r4 == ITEM_MIME_JR_FIG)
|
||||
if(GetScriptVarArrayValue(0, EVENT_B01P01, 0)) flag = TRUE;
|
||||
} while(flag != FALSE);
|
||||
|
||||
*itemReward = r4;
|
||||
}
|
||||
|
||||
@@ -55,10 +55,7 @@ extern void sub_80429A0(Entity *);
|
||||
void sub_8042B34(s32 a0, s32 a1, s32 a2);
|
||||
extern bool8 sub_8042CC0(void);
|
||||
extern void sub_8042D7C(void);
|
||||
extern u8 GetFloorType(void);
|
||||
extern bool8 sub_8045888(Entity *);
|
||||
extern s32 sub_80416E0(PixelPos*, u32, bool8);
|
||||
extern u32 sub_8041764(unkStruct_80416E0 *, bool8);
|
||||
extern u32 sub_800E49C();
|
||||
extern void sub_800F15C(s32);
|
||||
extern void sub_800EF40(u8 r0, u8 r1);
|
||||
|
||||
@@ -39,24 +39,16 @@
|
||||
#include "trap.h"
|
||||
|
||||
extern void sub_8071DA4(Entity *);
|
||||
extern void sub_806A1B0(Entity *);
|
||||
extern void sub_8057588(Entity * pokemon, u8 param_2);
|
||||
extern bool8 sub_806A58C(s16 a0);
|
||||
extern bool8 sub_806A564(s16 r0);
|
||||
extern void sub_8045C08(u8 *buffer, Item *item);
|
||||
extern bool8 sub_8045888(Entity *);
|
||||
extern Item *sub_8044D90(Entity *, s32, u32);
|
||||
void sub_8045BF8(u8 *, Item *);
|
||||
u8 sub_8048D50();
|
||||
void sub_8044DF0();
|
||||
void sub_8042208(Entity *pokemon, u8 r1);
|
||||
void sub_803E708();
|
||||
void sub_80479B8();
|
||||
extern void sub_807AB38(Entity *, u32);
|
||||
extern Entity * sub_8044DA4(Entity *param_1,int param_2);
|
||||
extern void sub_806A6E8(Entity *);
|
||||
extern void sub_8044DF0(Entity *, u32, u32);
|
||||
extern bool32 sub_8055A00(Entity *attacker, s32 firstMoveId, s32 var_34, s32 itemId, s32 arg_0);
|
||||
extern bool8 sub_8044B28(void);
|
||||
Entity *sub_806773C(Entity *entity);
|
||||
void sub_8067558(Entity *entity, Entity *targetEntity, s32 a2);
|
||||
@@ -64,8 +56,6 @@ void sub_8067794(Entity *entity, Entity *targetEntity, s32 a2);
|
||||
extern void sub_807EF84(void);
|
||||
extern void sub_80845E0(Entity *entity);
|
||||
extern void sub_8084448(Entity *entity);
|
||||
extern void sub_806A3D4(u8 *dst, s32 _a1, s32 id, bool32 _a3);
|
||||
extern Entity * sub_80696A8(Entity *target);
|
||||
|
||||
void HandlePickUpPlayerAction(Entity *entity)
|
||||
{
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "code_8077274_1.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "dungeon_map_access.h"
|
||||
#include "dungeon_misc.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "dungeon.h"
|
||||
@@ -30,18 +31,14 @@ EWRAM_DATA s32 gUnknown_202F31C[2] = {0, 0};
|
||||
EWRAM_DATA s32 gUnknown_202F324[2] = {0, 0};
|
||||
|
||||
extern void ResetMonEntityData(EntityInfo *, u32);
|
||||
void sub_8069E0C(Entity *pokemon);
|
||||
void sub_8042A44(Entity *r0);
|
||||
void sub_8083D78(void);
|
||||
extern bool8 sub_803D930(u32);
|
||||
void sub_8083D58(void);
|
||||
void sub_8072778(Entity *, Entity *, u8, u8);
|
||||
bool8 sub_80725A4(Entity *, Entity *);
|
||||
void GetAvailTacticsforLvl_Bool(u8 *tacticsBuffer, s32 pokeLevel);
|
||||
bool8 sub_80723D0(Entity *, Entity *, u8, u8);
|
||||
void sub_807218C(Entity *);
|
||||
void sub_806A2BC(Entity *, u32);
|
||||
void sub_806A3D4(u8 *, s32, s32, s32);
|
||||
|
||||
extern bool8 sub_803D930(u32);
|
||||
extern void sub_8072B78(Entity *pokemon, Entity *target, s16 id);
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
#include "dungeon_strings.h"
|
||||
|
||||
extern bool8 sub_8044B28(void);
|
||||
extern void sub_8075708(Entity *entity);
|
||||
extern void DealDamageToEntity(Entity *, s32, u32, u32);
|
||||
extern void sub_805229C(void);
|
||||
extern void sub_807E8F0(Entity *);
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "bg_palette_buffer.h"
|
||||
#include "code_8009804.h"
|
||||
#include "game_options.h"
|
||||
#include "code_800558C.h"
|
||||
#include "code_80A26CC.h"
|
||||
#include "def_filearchives.h"
|
||||
@@ -348,3 +351,41 @@ void sub_809965C(void)
|
||||
sub_800388C(0x1f0, temp->data, 0x10);
|
||||
CloseFile(temp);
|
||||
}
|
||||
|
||||
extern const u8 gUnknown_8116028[];
|
||||
|
||||
void sub_8099690(u32 param_1)
|
||||
{
|
||||
OpenedFile *temp;
|
||||
RGB *pal;
|
||||
RGB *var2;
|
||||
u8 gender;
|
||||
|
||||
s32 index;
|
||||
|
||||
temp = OpenFileAndGetFileDataPtr(gUnknown_8116028, &gSystemFileArchive);
|
||||
|
||||
switch(param_1)
|
||||
{
|
||||
default:
|
||||
gender = gGameOptionsRef->playerGender;
|
||||
pal = &gFontPalette[0x10];
|
||||
if(gender != 0)
|
||||
pal += 0x40;
|
||||
break;
|
||||
case 1:
|
||||
pal = &gFontPalette[0x60];
|
||||
break;
|
||||
case 2:
|
||||
pal = &gFontPalette[0x70];
|
||||
break;
|
||||
}
|
||||
|
||||
sub_800388C(0xF0, (u8 *)pal, 0x10);
|
||||
var2 = pal;
|
||||
for(index = 0; index < 0x10; index++)
|
||||
{
|
||||
nullsub_5(index + 0xF0, var2++);
|
||||
}
|
||||
CloseFile(temp);
|
||||
}
|
||||
|
||||
@@ -41,7 +41,6 @@ extern u16 gUnknown_20399DE;
|
||||
extern bool8 sub_802FCF0(void);
|
||||
u8 ScriptPrintText_809B2B8(struct unkStruct_3001B64_unkC *, s32, s32, const char *);
|
||||
bool8 IsTextboxOpen_809B40C(struct unkStruct_3001B64_unkC *);
|
||||
extern void sub_801416C(s32, s32);
|
||||
extern void ResetTextbox_809B294(void);
|
||||
extern s32 sub_803B168(void);
|
||||
extern void sub_803B1BC(void);
|
||||
|
||||
181
src/data/event_flag.h
Normal file
181
src/data/event_flag.h
Normal file
@@ -0,0 +1,181 @@
|
||||
struct LocalScriptVarInfo
|
||||
{
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
s16 unk8;
|
||||
s16 unkA;
|
||||
const u8 *text;
|
||||
};
|
||||
|
||||
const struct LocalScriptVarInfo sLocalScriptVarInfo[4] = {
|
||||
5, 7, 0, 0, 1, 0, "LOCAL0",
|
||||
5, 7, 2, 0, 1, 0, "LOCAL1",
|
||||
5, 7, 4, 0, 1, 0, "LOCAL2",
|
||||
5, 7, 6, 0, 1, 0, "LOCAL3",
|
||||
};
|
||||
|
||||
struct unkStruct_80B6D90
|
||||
{
|
||||
const u8 *text;
|
||||
s32 num;
|
||||
};
|
||||
|
||||
const u8 gUnknown_80B7144[];
|
||||
|
||||
const struct unkStruct_80B6D90 gUnknown_80B6D90[59] = {
|
||||
{gUnknown_80B7144, 0},
|
||||
{"M00E01A", -1},
|
||||
{"M01E01A", -1},
|
||||
{"M01E02A", -1},
|
||||
{"M01E02B", -1},
|
||||
{"M01E03A", -1},
|
||||
{"M01E04A", -1},
|
||||
{"M01E04B", -1},
|
||||
{"M01E05A", -1},
|
||||
{"M01E05B", -1},
|
||||
{"M01E06A", -1},
|
||||
{"M01E07A", -1},
|
||||
{"M01E07B", -1},
|
||||
{"M01E08A", -1},
|
||||
{"M01E08B", -1},
|
||||
{"M01E09A", -1},
|
||||
{"M01E10A", -1},
|
||||
{"M01END", -1},
|
||||
{"M02E01A", -1},
|
||||
{"M02E02A", -1},
|
||||
{"M02E02B", -1},
|
||||
{"M02E02C", -1},
|
||||
{"M02E02D", -1},
|
||||
{"M02E02E", -1},
|
||||
{"M02E02F", -1},
|
||||
{"M02E02G", -1},
|
||||
{"M02E02H", -1},
|
||||
{"M02END", -1},
|
||||
{"S00E01A", -1},
|
||||
{"S01E01A", 1},
|
||||
{"S01E01B", 1},
|
||||
{"S01E02A", 1},
|
||||
{"S01E02B", 2},
|
||||
{"S02E01A", -1},
|
||||
{"S02E02A", -1},
|
||||
{"S02E02B", 3},
|
||||
{"S03E01A", 1},
|
||||
{"S03E01B", 3},
|
||||
{"S04E01A", 1},
|
||||
{"S04E01B", 1},
|
||||
{"S04E01C", 1},
|
||||
{"S04E01D", 1},
|
||||
{"S04E01E", 1},
|
||||
{"S04E01F", 2},
|
||||
{"S05E01A", 1},
|
||||
{"S05E01B", 3},
|
||||
{"S06E01A", 1},
|
||||
{"S06E01B", 1},
|
||||
{"S06E01C", 3},
|
||||
{"S07E01A", 1},
|
||||
{"S07E01B", 3},
|
||||
{"S08E01A", 1},
|
||||
{"S08E01B", 3},
|
||||
{"S09E01A", 1},
|
||||
{"S09E01B",1},
|
||||
{"S09E01C", 2},
|
||||
{"R00E01A", -1},
|
||||
{"NEXT DAY", -1},
|
||||
{"DEBUG GROUND", -1},
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80B7144[] = "NONE";
|
||||
|
||||
const u8 *const gUnknown_80B714C[10] = {
|
||||
"2-1",
|
||||
"2-1",
|
||||
"1-2 7",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"2-2 8",
|
||||
"3",
|
||||
"9",
|
||||
"END",
|
||||
};
|
||||
|
||||
const u8 *const gUnknown_80B71A0[4] = {
|
||||
_("{COLOR GREEN_I}START{RESET}"),
|
||||
_("{COLOR GENDER_COLOR}CONTINUE{RESET}"),
|
||||
_("{COLOR YELLOW_N}LAST{RESET}"),
|
||||
_("{COLOR RED_W}END{RESET}"),
|
||||
};
|
||||
|
||||
struct GroundEventTableEntry
|
||||
{
|
||||
// size: 0x4
|
||||
s16 groundEnterId;
|
||||
u8 value; // Seems like friend area number
|
||||
};
|
||||
|
||||
const struct GroundEventTableEntry gGroundEnterLookupTable[58] = {
|
||||
{105, 1 },
|
||||
{106, 2 },
|
||||
{107, 3 },
|
||||
{108, 4 },
|
||||
{109, 5 },
|
||||
{110, 6 },
|
||||
{111, 7 },
|
||||
{112, 8 },
|
||||
{113, 9 },
|
||||
{114, 10},
|
||||
{115, 11},
|
||||
{116, 12},
|
||||
{117, 13},
|
||||
{118, 14},
|
||||
{119, 15},
|
||||
{120, 16},
|
||||
{121, 17},
|
||||
{122, 18},
|
||||
{123, 19},
|
||||
{124, 20},
|
||||
{125, 21},
|
||||
{126, 22},
|
||||
{127, 23},
|
||||
{128, 24},
|
||||
{129, 25},
|
||||
{130, 26},
|
||||
{131, 27},
|
||||
{132, 28},
|
||||
{133, 29},
|
||||
{134, 30},
|
||||
{ 135, 31},
|
||||
{ 136, 32},
|
||||
{ 137, 33},
|
||||
{ 138, 34},
|
||||
{ 139, 35},
|
||||
{ 140, 36},
|
||||
{ 141, 37},
|
||||
{ 142, 38},
|
||||
{ 143, 39},
|
||||
{ 144, 40},
|
||||
{ 145, 41},
|
||||
{ 146, 42},
|
||||
{ 147, 43},
|
||||
{ 148, 44},
|
||||
{ 149, 45},
|
||||
{ 150, 46},
|
||||
{ 151, 47},
|
||||
{ 152, 48},
|
||||
{ 153, 49},
|
||||
{ 154, 50},
|
||||
{ 155, 51},
|
||||
{ 156, 52},
|
||||
{ 157, 53},
|
||||
{ 158, 54},
|
||||
{ 159, 55},
|
||||
{ 160, 56},
|
||||
{ 161, 57},
|
||||
{ -1, 0},
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gScenarioCalcLogString[] = "SCENARIO CALC [%3d] %4d %4d -> %4d %4d";
|
||||
|
||||
ALIGNED(4) const u8 EventFlagFile_Text[] = "../main/event_flag.c";
|
||||
@@ -1,3 +1,5 @@
|
||||
#include "rescue_team_info.h"
|
||||
|
||||
static const u8 * const sUnknown_80E8B94[7] = {
|
||||
_(" "),
|
||||
_("{ENVELOPE_CLOSED}"),
|
||||
@@ -16,7 +18,7 @@ static const u8 * const sUnknown_80E8BCC[4] = {
|
||||
};
|
||||
|
||||
// Used in sub_803C1F0 for some reason
|
||||
const u8 * const gUnknown_80E8BF8[7] = {
|
||||
const u8 * const gMissionRankText[MAX_TEAM_RANKS] = {
|
||||
_("{COLOR DEFAULT}E{RESET}"),
|
||||
_("{COLOR GREEN}D{RESET}"),
|
||||
_("{COLOR GREEN}C{RESET}"),
|
||||
|
||||
@@ -7,115 +7,11 @@
|
||||
#include "constants/monster.h"
|
||||
#include "constants/dungeon_action.h"
|
||||
#include "constants/move_id.h"
|
||||
|
||||
// TODO: move these to header files
|
||||
extern bool8 IronTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 YawnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 NightmareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 CharmMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 EncoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SuperFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PainSplitMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TormentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SwaggerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WhirlpoolMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FakeTearsMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SpiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SmokescreenMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FlatterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WillOWispMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ReturnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DisableMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 GigaDrainMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ReversalMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SmellingSaltMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MetalSoundMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ScaryFaceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8058E5C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FissureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AbsorbMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SkillSwapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DoubleEdgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8059528(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_80595EC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TwisterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TwineedleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8059A2C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SupersonicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TauntMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HornDrillMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThunderWaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BlockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PoisonGasMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ToxicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PoisonFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TriAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TrickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TripleKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThiefMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LeerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 CurseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805A568(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 KnockOffMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SecretPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805AC90(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ObserverOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FeatherDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BeatUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 CrushClawMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BlazeKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PresentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 EruptionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 GlareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PoisonTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RoarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805B17C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WrapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MagnitudeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MistBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DestinyBondMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FalseSwipeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HiddenPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AttractMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MimicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FrustrationMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LeechSeedMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DreamEaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LusterPurgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DragonRageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HandleRegularDamagingMove(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 StunSporeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
#include "dungeon_move.h"
|
||||
#include "move_orb_actions_1.h"
|
||||
#include "move_orb_actions_2.h"
|
||||
#include "move_orb_actions_3.h"
|
||||
#include "move_orb_actions_4.h"
|
||||
|
||||
// Huge list of various config variables for dungeon moves/music/abilities/items/etc. All in one file, because these are scattered all around the codebase with only one pksdir present.
|
||||
|
||||
|
||||
@@ -31,12 +31,16 @@
|
||||
#include "dungeon_util.h"
|
||||
#include "math.h"
|
||||
#include "move_effects_target.h"
|
||||
#include "move_orb_actions_1.h"
|
||||
#include "move_orb_actions_2.h"
|
||||
#include "move_orb_actions_3.h"
|
||||
#include "move_orb_actions_4.h"
|
||||
#include "move_orb_actions_5.h"
|
||||
#include "move_util.h"
|
||||
#include "moves.h"
|
||||
#include "position_util.h"
|
||||
#include "sprite.h"
|
||||
#include "status.h"
|
||||
#include "status_actions.h"
|
||||
#include "weather.h"
|
||||
#include "targeting_flags.h"
|
||||
#include "text_util.h"
|
||||
@@ -62,243 +66,14 @@ extern void sub_800E3AC(s32 a0, DungeonPos *pos, s32 a2);
|
||||
extern void sub_8041168(Entity *entity, Entity *entity2, Move *,DungeonPos *);
|
||||
extern Entity *sub_80696A8(Entity *a0);
|
||||
extern Entity *GetMonsterAtPos(DungeonPos *pos);
|
||||
extern Entity *sub_80696FC(Entity *);
|
||||
extern Entity *sub_806977C(Entity *);
|
||||
extern void sub_806F2BC(Entity *attacker, Entity *target, u8 moveType, s32 a2, struct DamageStruct *dmgStruct);
|
||||
extern void MarkLastUsedMonMove(Entity *entity, Move *move);
|
||||
extern s32 sub_8057070(Move *move);
|
||||
extern bool8 MoveRequiresCharging(Entity* pokemon,u16 param_2);
|
||||
extern s32 sub_800ED20(u16 param_1);
|
||||
extern bool32 EarthquakeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern void sub_8042930(Entity *r0);
|
||||
extern void sub_8041B48(Entity *pokemon);
|
||||
extern void sub_8041BA8(Entity *pokemon);
|
||||
extern void sub_8042950(Entity *r0);
|
||||
extern void sub_80421C0(Entity *pokemon, u16 r1);
|
||||
extern bool8 IronTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 YawnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 NightmareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 CharmMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 EncoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SuperFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PainSplitMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TormentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SwaggerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WhirlpoolMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SurfMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805889C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FakeTearsMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SpiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SmokescreenMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FlatterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WillOWispMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ReturnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BasicFireMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4);
|
||||
extern bool8 BasicIceMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4);
|
||||
extern bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DisableMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 GigaDrainMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ReversalMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SmellingSaltMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MetalSoundMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8058C00(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ScaryFaceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8058E5C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FissureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AbsorbMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SkillSwapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DoubleEdgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8059528(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_80595EC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 OneShotOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TwisterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TwineedleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8059A2C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SupersonicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TauntMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HornDrillMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThunderWaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BlockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PoisonGasMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ToxicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PoisonFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TriAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TrickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TripleKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThiefMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LeerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 CurseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805A568(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FocusEnergyMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 KnockOffMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SecretPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805AC90(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ObserverOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FeatherDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BeatUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 CrushClawMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BlazeKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PresentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 EruptionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 GlareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PoisonTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RoarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805B17C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WrapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MagnitudeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MistBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DestinyBondMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FalseSwipeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HiddenPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AttractMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MimicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FrustrationMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LeechSeedMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DreamEaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LusterPurgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DragonRageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 StunSporeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HiJumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4,u8 param_5);
|
||||
extern bool8 JumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4,u8 param_5);
|
||||
|
||||
extern void SetShopkeeperAggression(Entity *, Entity *);
|
||||
extern bool8 MoveCausesPaused(Move *move);
|
||||
extern void sub_8069F9C(Entity *pokemon,Entity * target,Move *move);
|
||||
extern void sub_806A120(Entity *pokemon,Entity * target,Move *move);
|
||||
extern bool8 sub_8058C98(Entity *pokemon, Entity *target, Move *move, u32 param_4, u32 param_5);
|
||||
extern bool8 MetalClawMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4, u32 param_5);
|
||||
extern bool8 SteelWingMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4, u32 param_5);
|
||||
extern bool8 MeteorMashMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SonicboomMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BasicSleepMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThunderboltMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ZapCannonMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TailGlowMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MinimizeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BulkUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BasicRaiseAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SwordsDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 CalmMindMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 GrowthMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AmnesiaMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DefenseCurlMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8059CD8(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 CosmicPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 OctazookaMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AuroraBeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PsychoBoostMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 GrowlMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ScreechMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SolarBeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SkyAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 UproarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SandstormMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SafeguardMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MistMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LightScreenMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805768C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MementoMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_80599EC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SynthesisMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MoonlightMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RestMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8058EE0(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AgilityMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 CounterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BideMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 Bide2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TrapperOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805A450(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RazorWindMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FocusPunchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MagicCoatMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MorningSunMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MudWaterSportMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 IngrainMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PsywaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SpikesMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_80578EC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HazeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WishMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 OverheatMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WarpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BasicRaiseDefenseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SureShotMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 VitalThrowMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FlyMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BounceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DiveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DigMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SweetScentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DoubleTeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 GrudgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AssistMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805AAD0(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805B314(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ProtectMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SelfDestructMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ExplosionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ChargeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WaterSpoutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 StockpileMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SpitUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SwallowMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RainDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 InvisifyOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MirrorCoatMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PerishSongMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WeatherBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SunnyDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 EndureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HelpingHandMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BellyDrumMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BubbleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 StringShotMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TransformMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ExposeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SplashMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ReboundOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 NaturePowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SketchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MirrorMoveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ConversionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SnatchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HandleColorChange(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PsychUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SnoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MetronomeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 Conversion2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
|
||||
extern const s32 gUnknown_8106A50;
|
||||
extern const s32 gUnknown_8106A4C;
|
||||
@@ -1586,7 +1361,7 @@ void UseMoveAgainstTargets(Entity **targetsArray, Entity *attacker, Move *move,
|
||||
}
|
||||
}
|
||||
|
||||
bool32 HandleRegularDamagingMove(Entity *attacker, Entity *target, Move *move, s32 itemId)
|
||||
bool8 HandleRegularDamagingMove(Entity *attacker, Entity *target, Move *move, s32 itemId)
|
||||
{
|
||||
return (HandleDamagingMove(attacker, target, move, IntToF248_2(1), itemId) != 0);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#include "position_util.h"
|
||||
#include "sprite.h"
|
||||
#include "status.h"
|
||||
#include "status_actions.h"
|
||||
#include "move_orb_actions_4.h"
|
||||
#include "weather.h"
|
||||
#include "targeting_flags.h"
|
||||
#include "text_util.h"
|
||||
@@ -45,9 +45,6 @@ extern void sub_80429C8(Entity *r0);
|
||||
extern bool8 sub_8045888(Entity *r0);
|
||||
extern void HandleDealingDamage(Entity *attacker, Entity *target, struct DamageStruct *dmgStruct, bool32 isFalseSwipe, bool32 giveExp, s16 arg4, bool32 arg8, s32 argC);
|
||||
extern void CalcDamage(Entity *, Entity *, u8, u32, u32, struct DamageStruct *dmgStruct, s24_8, u16, u32);
|
||||
extern s16 sub_8057600(Move *move, s32 itemID);
|
||||
extern void sub_803ED30(s32, Entity *r0, u8, s32);
|
||||
extern void sub_8042238(Entity *pokemon, Entity *target);
|
||||
extern void sub_806A1E8(Entity *pokemon);
|
||||
extern bool8 sub_8044B28(void);
|
||||
extern void sub_804178C(u32);
|
||||
@@ -60,21 +57,8 @@ extern void sub_800EF10(u16 r0);
|
||||
extern s32 sub_800E710(s16 a0, u16 a1);
|
||||
extern void sub_800E3AC(s32 a0, DungeonPos *pos, s32 a2);
|
||||
extern void sub_8041168(Entity *entity, Entity *entity2, Move *,DungeonPos *);
|
||||
extern Entity *sub_80696A8(Entity *a0);
|
||||
extern Entity *GetMonsterAtPos(DungeonPos *pos);
|
||||
extern Entity *sub_80696FC(Entity *);
|
||||
extern Entity *sub_806977C(Entity *);
|
||||
extern void sub_806F2BC(Entity *attacker, Entity *target, u8 moveType, s32 a2, struct DamageStruct *dmgStruct);
|
||||
extern void MarkLastUsedMonMove(Entity *entity, Move *move);
|
||||
extern s32 sub_8057070(Move *move);
|
||||
extern bool8 MoveRequiresCharging(Entity* pokemon,u16 param_2);
|
||||
extern s32 sub_800ED20(u16 param_1);
|
||||
extern bool32 EarthquakeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern void sub_8042930(Entity *r0);
|
||||
extern void sub_8041B48(Entity *pokemon);
|
||||
extern void sub_8041BA8(Entity *pokemon);
|
||||
extern void sub_8042950(Entity *r0);
|
||||
extern void sub_80421C0(Entity *pokemon, u16 r1);
|
||||
extern s16 sub_8094828(u16, u8);
|
||||
struct UnkStruct_sub_800E308_1
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "constants/friend_area.h"
|
||||
#include "constants/item.h"
|
||||
#include "items.h"
|
||||
@@ -16,32 +17,7 @@
|
||||
|
||||
EWRAM_DATA u8 gScriptVarBuffer[0x400] = {0}; // NDS=020876DC
|
||||
|
||||
struct GroundEventTableEntry
|
||||
{
|
||||
// size: 0x4
|
||||
s16 groundEnterId;
|
||||
u8 value; // Seems like friend area number
|
||||
};
|
||||
|
||||
extern struct GroundEventTableEntry gGroundEnterLookupTable[58];
|
||||
|
||||
struct unkStruct_80B6D90
|
||||
{
|
||||
u8 *text;
|
||||
s32 num;
|
||||
};
|
||||
extern struct unkStruct_80B6D90 gUnknown_80B6D90[];
|
||||
|
||||
extern u8 gUnknown_80B7144[];
|
||||
extern u8 *gUnknown_80B714C[];
|
||||
extern u8 *gUnknown_80B71A0[];
|
||||
extern u8 gUnknown_80B72CC[];
|
||||
extern DebugLocation gUnknown_80B7318;
|
||||
extern u8 gUnknown_80B7324[];
|
||||
extern DebugLocation gUnknown_80B7350;
|
||||
extern u8 gUnknown_80B735C[];
|
||||
extern u8 gUnknown_80B7378[];
|
||||
extern u8 gUnknown_80B7388[];
|
||||
#include "data/event_flag.h"
|
||||
|
||||
extern bool8 GetScriptMode(void);
|
||||
extern bool8 HasCompletedAllMazes(void);
|
||||
@@ -123,7 +99,7 @@ void ThoroughlyResetScriptVars(void)
|
||||
}
|
||||
|
||||
#if (GAME_VERSION == VERSION_RED)
|
||||
void sub_8001564(void)
|
||||
UNUSED void sub_8001564(void)
|
||||
{
|
||||
nullsub_128();
|
||||
}
|
||||
@@ -487,7 +463,7 @@ void ScenarioCalc(s16 param_1,s32 param_2,s32 param_3)
|
||||
|
||||
param_1_s32 = param_1;
|
||||
GetScriptVarScenario(param_1_s32,&local_18,&local_14);
|
||||
Log(6,gUnknown_80B72CC,param_1_s32,local_18,local_14,param_2,param_3); // SCENARIO CALC [%3d] %4d %4d -> %4d %4d
|
||||
Log(6,gScenarioCalcLogString,param_1_s32,local_18,local_14,param_2,param_3); // SCENARIO CALC [%3d] %4d %4d -> %4d %4d
|
||||
if ((param_1_s32 == 3) && ((param_2 != local_18 || (param_3 != local_14)))) {
|
||||
SetScriptVarValue(NULL,CLEAR_COUNT,0);
|
||||
}
|
||||
@@ -674,6 +650,14 @@ void sub_8001D88(void)
|
||||
}
|
||||
}
|
||||
|
||||
ALIGNED(4) static const u8 sFlagCalc_Text[] = "_FlagCalc";
|
||||
|
||||
static const DebugLocation sFlagCalcDebugLocation = {
|
||||
EventFlagFile_Text,
|
||||
0x551,
|
||||
sFlagCalc_Text
|
||||
};
|
||||
|
||||
// arm9.bin::0200EC08
|
||||
s32 _FlagCalc(s32 param_1, s32 param_2, enum FlagCalcOperation operation)
|
||||
{
|
||||
@@ -703,10 +687,18 @@ s32 _FlagCalc(s32 param_1, s32 param_2, enum FlagCalcOperation operation)
|
||||
case CALC_RANDOM:
|
||||
return OtherRandInt(param_2);
|
||||
default:
|
||||
FatalError(&gUnknown_80B7318,gUnknown_80B7324, operation); // event flag expansion error %d
|
||||
FatalError(&sFlagCalcDebugLocation,"event flag expansion error %d", operation); // event flag expansion error %d
|
||||
}
|
||||
}
|
||||
|
||||
ALIGNED(4) static const u8 sFlagJudge_Text[] = "_FlagJudge";
|
||||
|
||||
static const DebugLocation sFlagJudgeDebugLocation = {
|
||||
EventFlagFile_Text,
|
||||
0x57C,
|
||||
sFlagJudge_Text
|
||||
};
|
||||
|
||||
// arm9.bin::0200EAE4
|
||||
bool8 _FlagJudge(s32 param_1, s32 param_2, enum FlagJudgeOperation operation)
|
||||
{
|
||||
@@ -734,7 +726,7 @@ bool8 _FlagJudge(s32 param_1, s32 param_2, enum FlagJudgeOperation operation)
|
||||
case JUDGE_BIT_SET:
|
||||
return param_1 >> (param_2) & 1;
|
||||
default:
|
||||
FatalError(&gUnknown_80B7350,gUnknown_80B735C, operation); // event flag rule error %d
|
||||
FatalError(&sFlagJudgeDebugLocation,"event flag rule error %d", operation); // event flag rule error %d
|
||||
}
|
||||
}
|
||||
|
||||
@@ -812,30 +804,30 @@ UNUSED s32 sub_8002354(u32 param_1)
|
||||
}
|
||||
}
|
||||
|
||||
UNUSED u8 *sub_8002374(u32 param_1)
|
||||
UNUSED const u8 *sub_8002374(u32 param_1)
|
||||
{
|
||||
if (param_1 < 0x3b) {
|
||||
return gUnknown_80B6D90[param_1].text;
|
||||
}
|
||||
else {
|
||||
return gUnknown_80B7378; // error number
|
||||
return "error number"; // error number
|
||||
}
|
||||
}
|
||||
|
||||
UNUSED u8 *sub_8002394(u32 param_1)
|
||||
UNUSED const u8 *sub_8002394(u32 param_1)
|
||||
{
|
||||
if (param_1 - 0x12 < 9) {
|
||||
return gUnknown_80B714C[param_1 - 0x12];
|
||||
}
|
||||
else if (param_1 == 0xf) {
|
||||
return gUnknown_80B7388; // 1-1
|
||||
return "1-1"; // 1-1
|
||||
}
|
||||
else {
|
||||
return gUnknown_80B7144; // NONE
|
||||
}
|
||||
}
|
||||
|
||||
UNUSED u8 *sub_80023C4(u32 param_1)
|
||||
UNUSED const u8 *sub_80023C4(u32 param_1)
|
||||
{
|
||||
if (param_1 < 4) {
|
||||
return gUnknown_80B71A0[param_1]; // CISTART, CECONTINUE, CNLAST, CWEND
|
||||
@@ -921,7 +913,7 @@ u8 sub_8002658(s16 param_1)
|
||||
{
|
||||
short sVar1;
|
||||
s32 param_1_s32;
|
||||
struct GroundEventTableEntry *ptr;
|
||||
const struct GroundEventTableEntry *ptr;
|
||||
|
||||
param_1_s32 = param_1;
|
||||
|
||||
@@ -942,7 +934,7 @@ u8 sub_8002658(s16 param_1)
|
||||
// arm9.bin::0200E5E8
|
||||
s16 sub_8002694(u8 param_1)
|
||||
{
|
||||
struct GroundEventTableEntry *puVar2 = gGroundEnterLookupTable;
|
||||
const struct GroundEventTableEntry *puVar2 = gGroundEnterLookupTable;
|
||||
|
||||
while (puVar2->groundEnterId != -1) {
|
||||
if (puVar2->value == param_1) {
|
||||
|
||||
@@ -1174,7 +1174,7 @@ void sub_8032828(void)
|
||||
monName = GetMonSpecies(MONSTER_PELIPPER);
|
||||
strcpy(gUnknown_203B33C->unk53C.clientName, monName);
|
||||
gUnknown_203B33C->unk53C.clientSpecies = 0;
|
||||
gUnknown_203B33C->unk53C.unk16 = 2;
|
||||
gUnknown_203B33C->unk53C.rewardType = 2;
|
||||
gUnknown_203B33C->unk53C.moneyReward = 0;
|
||||
mail = GetMailatIndex(GetMailIndex(6, gUnknown_203B33C->unk420));
|
||||
// ABSOLUTELY GENIUS
|
||||
|
||||
@@ -1,3 +1,110 @@
|
||||
#include "global.h"
|
||||
#include "ground_script.h"
|
||||
#include "debug.h"
|
||||
#include "memory.h"
|
||||
|
||||
void DeleteGroundEffects(void);
|
||||
|
||||
// size must be 0x1c4
|
||||
typedef struct GroundEffect {
|
||||
u8 fill0[6];
|
||||
s16 unk6;
|
||||
s16 unk8;
|
||||
s8 unkA;
|
||||
u8 fillB[0x1c4 - 0xB];
|
||||
} GroundEffect;
|
||||
|
||||
IWRAM_INIT GroundEffect* gGroundEffects = NULL; // size 16 array
|
||||
void GroundEffect_Delete(s32);
|
||||
const struct GroundScriptHeader *GetGroundScript(s16 a0, DebugLocation *);
|
||||
extern DebugLocation gUnknown_8118610;
|
||||
extern u8 gUnknown_811861C[];
|
||||
extern u8 gUnknown_8118640[];
|
||||
s16 GroundEffect_Add(s32 id, const GroundEffectData*, s32 group, s32 sector);
|
||||
|
||||
void AllocGroundEffects()
|
||||
{
|
||||
s32 index;
|
||||
GroundEffect* current;
|
||||
|
||||
gGroundEffects = MemoryAlloc(16 * sizeof(GroundEffect), 6);
|
||||
current = gGroundEffects;
|
||||
for (index = 0; index < 16; index = (s16) (index + 0x1), current++) {
|
||||
current->unk6 = -1;
|
||||
}
|
||||
DeleteGroundEffects();
|
||||
}
|
||||
|
||||
|
||||
void DeleteGroundEffects(void)
|
||||
{
|
||||
s32 index;
|
||||
GroundEffect* current;
|
||||
|
||||
current = gGroundEffects;
|
||||
for (index = 0; index < 16; index = (s16) (index + 0x1), current++) {
|
||||
if(current->unk6 != -1)
|
||||
GroundEffect_Delete(index);
|
||||
}
|
||||
}
|
||||
|
||||
void FreeGroundEffects(void)
|
||||
{
|
||||
DeleteGroundEffects();
|
||||
MemoryFree(gGroundEffects);
|
||||
gGroundEffects = NULL;
|
||||
}
|
||||
|
||||
void GroundEffect_Select(s32 scriptID, s32 group, s32 sector)
|
||||
{
|
||||
const struct GroundScriptHeader *scriptPtr;
|
||||
const struct GroundScriptSector *sectorPtr;
|
||||
const struct GroundScriptGroup *groupPtr;
|
||||
|
||||
s32 i;
|
||||
s32 size;
|
||||
const GroundEffectData *effectData;
|
||||
s32 sector_s32;
|
||||
s32 group_s32;
|
||||
s32 scriptID_s32;
|
||||
|
||||
scriptID_s32 = (s16)scriptID;
|
||||
group_s32 = (s16)group;
|
||||
sector_s32 = (s8)sector;
|
||||
scriptPtr = GetGroundScript(scriptID_s32, &gUnknown_8118610);
|
||||
Log('\0',gUnknown_811861C, scriptID_s32, group_s32, sector_s32);
|
||||
|
||||
groupPtr = &scriptPtr->groups[group_s32];
|
||||
sectorPtr = &groupPtr->sectors[sector_s32];
|
||||
effectData = sectorPtr->effects;
|
||||
|
||||
size = sectorPtr->nEffects;
|
||||
for (i = 0; i < size; i++, effectData++)
|
||||
{
|
||||
GroundEffect_Add(-1,effectData,group_s32,sector_s32);
|
||||
}
|
||||
}
|
||||
|
||||
void GroundEffect_Cancel(s32 scriptID, s32 sector)
|
||||
{
|
||||
s32 index;
|
||||
GroundEffect *ptr;
|
||||
s32 sector_s32;
|
||||
s32 scriptID_s32;
|
||||
|
||||
scriptID_s32 = (s16)scriptID;
|
||||
sector_s32 = (s8) sector;
|
||||
|
||||
|
||||
Log('\0',gUnknown_8118640, scriptID_s32);
|
||||
|
||||
index = 0;
|
||||
ptr = &gGroundEffects[0];
|
||||
for(; index < 0x10; index = (s16)(index + 1), ptr++)
|
||||
{
|
||||
if((ptr->unk6 != -1) && (ptr->unk8 == scriptID_s32))
|
||||
if(sector_s32 < 0 || ptr->unkA == sector_s32)
|
||||
GroundEffect_Delete(index);
|
||||
}
|
||||
}
|
||||
|
||||
IWRAM_INIT void *gGroundEffects = NULL;
|
||||
|
||||
@@ -1,3 +1,107 @@
|
||||
#include "global.h"
|
||||
#include "ground_script.h"
|
||||
#include "debug.h"
|
||||
#include "memory.h"
|
||||
|
||||
typedef struct GroundEvent
|
||||
{
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s16 unk4; // scriptID
|
||||
s8 unk6; // sector
|
||||
u8 unk7[0x20 - 0x7];
|
||||
} GroundEvent;
|
||||
|
||||
IWRAM_INIT GroundEvent *gGroundEvents = NULL;
|
||||
|
||||
void DeleteGroundEvents(void);
|
||||
void GroundEvent_Delete(s32);
|
||||
const struct GroundScriptHeader *GetGroundScript(s16 a0, DebugLocation *);
|
||||
s16 GroundEvent_Add(s32 id, const GroundEventData*, s32 group, s32 sector);
|
||||
extern DebugLocation gUnknown_81187DC;
|
||||
extern u8 gGroundEventSelectText[];
|
||||
extern u8 gGroundEventCancelText[];
|
||||
|
||||
void AllocGroundEvents(void) {
|
||||
s32 ind;
|
||||
GroundEvent *ptr;
|
||||
gGroundEvents = MemoryAlloc(sizeof(GroundEvent) * 0x20, 0x6);
|
||||
|
||||
for(ind = 0, ptr = &gGroundEvents[ind]; ind < 0x20; ind = (s16)(ind + 1), ptr++)
|
||||
{
|
||||
ptr->unk2 |= -1;
|
||||
}
|
||||
DeleteGroundEvents();
|
||||
}
|
||||
|
||||
void DeleteGroundEvents(void) {
|
||||
s32 v1;
|
||||
GroundEvent* current;
|
||||
|
||||
current = &gGroundEvents[0];
|
||||
for (v1 = 0; v1 < 0x20; v1 = (s16) (v1 + 0x1), current++) {
|
||||
if(current->unk2 != -1)
|
||||
GroundEvent_Delete(v1);
|
||||
}
|
||||
}
|
||||
|
||||
void FreeGroundEvents(void)
|
||||
{
|
||||
DeleteGroundEvents();
|
||||
MemoryFree(gGroundEvents);
|
||||
gGroundEvents = NULL;
|
||||
}
|
||||
|
||||
void GroundEvent_Select(s32 scriptID, s32 group, s32 sector)
|
||||
{
|
||||
const struct GroundScriptHeader *scriptPtr;
|
||||
const struct GroundScriptSector *sectorPtr;
|
||||
const struct GroundScriptGroup *groupPtr;
|
||||
|
||||
s32 i;
|
||||
s32 size;
|
||||
const GroundEventData *eventData;
|
||||
s32 sector_s32;
|
||||
s32 group_s32;
|
||||
s32 scriptID_s32;
|
||||
|
||||
scriptID_s32 = (s16)scriptID;
|
||||
group_s32 = (s16)group;
|
||||
sector_s32 = (s8)sector;
|
||||
scriptPtr = GetGroundScript(scriptID_s32, &gUnknown_81187DC);
|
||||
Log('\0',gGroundEventSelectText, scriptID_s32, group_s32, sector_s32);
|
||||
|
||||
groupPtr = &scriptPtr->groups[group_s32];
|
||||
sectorPtr = &groupPtr->sectors[sector_s32];
|
||||
eventData = sectorPtr->events;
|
||||
|
||||
size = sectorPtr->nEvents;
|
||||
for (i = 0; i < size; i++, eventData++)
|
||||
{
|
||||
GroundEvent_Add(-1,eventData,group_s32,sector_s32);
|
||||
}
|
||||
}
|
||||
|
||||
void GroundEvent_Cancel(s32 scriptID, s32 sector)
|
||||
{
|
||||
s32 index;
|
||||
GroundEvent *ptr;
|
||||
s32 sector_s32;
|
||||
s32 scriptID_s32;
|
||||
|
||||
scriptID_s32 = (s16)scriptID;
|
||||
sector_s32 = (s8) sector;
|
||||
|
||||
|
||||
Log('\0',gGroundEventCancelText, scriptID_s32, sector_s32);
|
||||
|
||||
index = 0;
|
||||
ptr = &gGroundEvents[0];
|
||||
for(; index < 0x20; index = (s16)(index + 1), ptr++)
|
||||
{
|
||||
if((ptr->unk2 != -1) && (ptr->unk4 == scriptID_s32))
|
||||
if(sector_s32 < 0 || ptr->unk6 == sector_s32)
|
||||
GroundEvent_Delete(index);
|
||||
}
|
||||
}
|
||||
|
||||
IWRAM_INIT void *gGroundEvents = NULL;
|
||||
|
||||
@@ -1,4 +1,164 @@
|
||||
#include "global.h"
|
||||
#include "ground_script.h"
|
||||
#include "memory.h"
|
||||
|
||||
IWRAM_INIT void *gGroundLivesMeta = NULL;
|
||||
IWRAM_INIT void *gGroundLives = NULL;
|
||||
struct GroundLivesMeta_Sub1
|
||||
{
|
||||
// size: 0xC
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
u32 unk8;
|
||||
};
|
||||
|
||||
struct unkStruct_3001B80
|
||||
{
|
||||
// size: 0x338
|
||||
struct GroundLivesMeta_Sub1 unk0[3];
|
||||
u32 unk24;
|
||||
u8 unk28;
|
||||
struct GroundLivesMeta_Sub1 unk2C[0x40];
|
||||
ScriptInfoSmall unk32C;
|
||||
};
|
||||
IWRAM_INIT struct unkStruct_3001B80 *gGroundLivesMeta = NULL;
|
||||
|
||||
struct unkStruct_3001B84_sub
|
||||
{
|
||||
// size: 0x1F0
|
||||
u16 unk0;
|
||||
s16 unk2;
|
||||
s16 unk4;
|
||||
s8 unk6;
|
||||
u8 unk8[0x1F0 - 0x8];
|
||||
};
|
||||
|
||||
struct unkStruct_3001B84
|
||||
{
|
||||
struct unkStruct_3001B84_sub array[0x18];
|
||||
};
|
||||
|
||||
IWRAM_INIT struct unkStruct_3001B84 *gGroundLives = NULL;
|
||||
|
||||
extern void DeleteGroundLives(void);
|
||||
void GroundLives_Delete(s32);
|
||||
s16 GroundLives_Add(s32 id, const GroundLivesData*, s32 group, s32 sector);
|
||||
const struct GroundScriptHeader *GetGroundScript(s16 a0, DebugLocation *);
|
||||
extern DebugLocation gUnknown_811808C;
|
||||
extern u8 gUnknown_8118098[];
|
||||
extern u8 gUnknown_81180BC[];
|
||||
|
||||
void AllocGroundLives(void)
|
||||
{
|
||||
s32 index;
|
||||
struct unkStruct_3001B84_sub *ptr;
|
||||
|
||||
gGroundLivesMeta = MemoryAlloc(sizeof(struct unkStruct_3001B80),6);
|
||||
gGroundLives = MemoryAlloc(sizeof(struct unkStruct_3001B84),6);
|
||||
|
||||
for(index = 0, ptr = &gGroundLives->array[index]; index < 0x18; index = (s16)(index + 1), ptr++)
|
||||
{
|
||||
ptr->unk2 = -1;
|
||||
}
|
||||
GetFunctionScript(0,&gGroundLivesMeta->unk32C,0x19);
|
||||
gGroundLivesMeta->unk32C.state = 1;
|
||||
DeleteGroundLives();
|
||||
}
|
||||
|
||||
|
||||
void DeleteGroundLives(void)
|
||||
{
|
||||
int index;
|
||||
struct unkStruct_3001B84_sub *iVar4;
|
||||
struct GroundLivesMeta_Sub1 *ptr;
|
||||
|
||||
|
||||
iVar4 = &gGroundLives->array[0];
|
||||
for(index = 0; index < 0x18; index = (s16)(index + 1), iVar4++)
|
||||
{
|
||||
if (iVar4->unk2 != -1) {
|
||||
GroundLives_Delete(index);
|
||||
}
|
||||
}
|
||||
|
||||
gGroundLivesMeta->unk24 = -1;
|
||||
gGroundLivesMeta->unk28 = -1;
|
||||
|
||||
|
||||
for(index = 0; index < 3; ptr++, index++)
|
||||
{
|
||||
ptr = &gGroundLivesMeta->unk0[index];
|
||||
ptr->unk8 = -1;
|
||||
ptr->unk0 = 0;
|
||||
ptr->unk4 = 0;
|
||||
}
|
||||
|
||||
|
||||
for(index = 0; index < 0x40; ptr++, index++)
|
||||
{
|
||||
ptr = &gGroundLivesMeta->unk2C[index];
|
||||
ptr->unk0 = 0;
|
||||
ptr->unk4 = 0;
|
||||
ptr->unk8 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void FreeGroundLives(void)
|
||||
{
|
||||
DeleteGroundLives();
|
||||
MemoryFree(gGroundLives);
|
||||
gGroundLives = NULL;
|
||||
MemoryFree(gGroundLivesMeta);
|
||||
gGroundLivesMeta = NULL;
|
||||
}
|
||||
|
||||
void GroundLives_Select(s32 scriptID, s32 group, s32 sector)
|
||||
{
|
||||
const struct GroundScriptHeader *scriptPtr;
|
||||
const struct GroundScriptSector *sectorPtr;
|
||||
const struct GroundScriptGroup *groupPtr;
|
||||
|
||||
s32 i;
|
||||
s32 size;
|
||||
const GroundLivesData *livesData;
|
||||
s32 sector_s32;
|
||||
s32 group_s32;
|
||||
s32 scriptID_s32;
|
||||
|
||||
scriptID_s32 = (s16)scriptID;
|
||||
group_s32 = (s16)group;
|
||||
sector_s32 = (s8)sector;
|
||||
scriptPtr = GetGroundScript(scriptID_s32, &gUnknown_811808C);
|
||||
Log('\0',gUnknown_8118098, scriptID_s32, group_s32, sector_s32);
|
||||
|
||||
groupPtr = &scriptPtr->groups[group_s32];
|
||||
sectorPtr = &groupPtr->sectors[sector_s32];
|
||||
livesData = sectorPtr->lives;
|
||||
|
||||
size = sectorPtr->nLives;
|
||||
for (i = 0; i < size; i++, livesData++)
|
||||
{
|
||||
GroundLives_Add(-1,livesData,group_s32,sector_s32);
|
||||
}
|
||||
}
|
||||
|
||||
void GroundLives_Cancel(s32 scriptID, s32 sector)
|
||||
{
|
||||
s32 index;
|
||||
struct unkStruct_3001B84_sub *ptr;
|
||||
s32 sector_s32;
|
||||
s32 scriptID_s32;
|
||||
|
||||
scriptID_s32 = (s16)scriptID;
|
||||
sector_s32 = (s8) sector;
|
||||
|
||||
|
||||
Log('\0',gUnknown_81180BC, scriptID_s32, sector_s32);
|
||||
|
||||
index = 0;
|
||||
ptr = &gGroundLives->array[0];
|
||||
for(; index < 0x18; index = (s16)(index + 1), ptr++)
|
||||
{
|
||||
if((ptr->unk2 != -1) && (ptr->unk4 == scriptID_s32))
|
||||
if(sector_s32 < 0 || ptr->unk6 == sector_s32)
|
||||
GroundLives_Delete(index);
|
||||
}
|
||||
}
|
||||
|
||||
42
src/ground_map_1.c
Normal file
42
src/ground_map_1.c
Normal file
@@ -0,0 +1,42 @@
|
||||
#include "global.h"
|
||||
#include "ground_map.h"
|
||||
#include "ground_map_2.h"
|
||||
#include "ground_script.h"
|
||||
|
||||
extern GroundMapAction *gGroundMapAction;
|
||||
extern DebugLocation gUnknown_8117770;
|
||||
|
||||
extern s16 HandleAction(Action *action, DebugLocation *debug);
|
||||
extern void sub_80A4740(void *, s32, s32 *, u32);
|
||||
extern u32 sub_80A4720(void *, s32, s32 *);
|
||||
extern u8 sub_80A46C0(unkStruct_3001B70 *, u32, s32, s32);
|
||||
extern u8 sub_80A4660(unkStruct_3001B70 *, u32, s32, s32);
|
||||
|
||||
u8 sub_80A5934(s32 param_1, s32 param_2, s32 param_3)
|
||||
{
|
||||
u32 param_1_u32 = (u8)param_1;
|
||||
return sub_80A4660(gGroundMapDungeon_3001B70, param_1_u32, param_2, param_3);
|
||||
}
|
||||
|
||||
u8 sub_80A595C(s32 param_1, s32 param_2, s32 param_3)
|
||||
{
|
||||
u32 param_1_u32 = (u8)param_1;
|
||||
return sub_80A46C0(gGroundMapDungeon_3001B70, param_1_u32, param_2, param_3);
|
||||
}
|
||||
|
||||
u16 sub_80A5984(s32 param_1, s32 *param_2)
|
||||
{
|
||||
return sub_80A4720(gGroundMapDungeon_3001B70, param_1, param_2);
|
||||
}
|
||||
|
||||
void sub_80A59A0(s32 param_1, s32 *param_2, u32 param_3)
|
||||
{
|
||||
u32 param_3_u32 = (u16)param_3;
|
||||
sub_80A4740(gGroundMapDungeon_3001B70, param_1, param_2, param_3_u32);
|
||||
}
|
||||
|
||||
void GroundMap_Action(void)
|
||||
{
|
||||
nullsub_123();
|
||||
HandleAction((Action *)gGroundMapAction, &gUnknown_8117770);
|
||||
}
|
||||
@@ -1,3 +1,161 @@
|
||||
#include "global.h"
|
||||
#include "ground_script.h"
|
||||
#include "memory.h"
|
||||
|
||||
IWRAM_INIT void *gGroundObjects = NULL;
|
||||
typedef struct GroundObject {
|
||||
// size: 0x1C4
|
||||
u8 unk0[4];
|
||||
s16 unk4;
|
||||
s16 unk6; // kind
|
||||
s16 unk8; // scriptID / group
|
||||
s8 unkA; // sector
|
||||
u8 fillB[0x14 - 0xB];
|
||||
u32 unk14;
|
||||
u32 unk18;
|
||||
u8 fill1C[0x38 - 0x1C];
|
||||
Action unk38;
|
||||
u8 unk11C[0x124 - 0x11C];
|
||||
u32 unk124[2];
|
||||
u8 unk12C[0x144 - 0x12C];
|
||||
u8 unk144[0x1C4 - 0x144];
|
||||
} GroundObject;
|
||||
|
||||
IWRAM_INIT GroundObject *gGroundObjects = NULL;
|
||||
|
||||
void DeleteGroundObjects(void);
|
||||
void GroundObject_Delete(s32);
|
||||
|
||||
extern u8 gUnknown_811842C[];
|
||||
extern u8 gUnknown_8118414[];
|
||||
extern u8 gUnknown_81183F0[];
|
||||
s16 GroundObject_Add(s32 id, const GroundObjectData*, s32 group, s32 sector);
|
||||
extern DebugLocation gUnknown_81183E4;
|
||||
const struct GroundScriptHeader *GetGroundScript(s16 a0, DebugLocation *);
|
||||
bool8 IsOnscreen_80A675C(u8 *, u32 *);
|
||||
|
||||
void AllocGroundObjects(void)
|
||||
{
|
||||
|
||||
GroundObject *ptr;
|
||||
s32 index;
|
||||
|
||||
gGroundObjects = MemoryAlloc(sizeof(GroundObject) * 0x10, 6);
|
||||
|
||||
for(index = 0, ptr = &gGroundObjects[index]; index < 0x10; index = (s16)(index + 1), ptr++)
|
||||
{
|
||||
ptr->unk6 |= -1;
|
||||
}
|
||||
DeleteGroundObjects();
|
||||
}
|
||||
|
||||
void DeleteGroundObjects(void)
|
||||
{
|
||||
GroundObject *ptr;
|
||||
s32 index;
|
||||
|
||||
ptr = &gGroundObjects[0];
|
||||
for(index = 0; index < 0x10; index = (s16)(index + 1), ptr++)
|
||||
{
|
||||
if(ptr->unk6 != -1)
|
||||
GroundObject_Delete(index);
|
||||
}
|
||||
}
|
||||
|
||||
void FreeGroundObjects(void)
|
||||
{
|
||||
DeleteGroundObjects();
|
||||
MemoryFree(gGroundObjects);
|
||||
gGroundObjects = NULL;
|
||||
}
|
||||
|
||||
void GroundObject_Select(s32 scriptID, s32 group, s32 sector)
|
||||
{
|
||||
const struct GroundScriptHeader *scriptPtr;
|
||||
const struct GroundScriptSector *sectorPtr;
|
||||
const struct GroundScriptGroup *groupPtr;
|
||||
|
||||
s32 i;
|
||||
s32 size;
|
||||
const GroundObjectData *objectData;
|
||||
s32 sector_s32;
|
||||
s32 group_s32;
|
||||
s32 scriptID_s32;
|
||||
|
||||
scriptID_s32 = (s16)scriptID;
|
||||
group_s32 = (s16)group;
|
||||
sector_s32 = (s8)sector;
|
||||
scriptPtr = GetGroundScript(scriptID_s32, &gUnknown_81183E4);
|
||||
Log('\0',gUnknown_81183F0, scriptID_s32, group_s32, sector_s32);
|
||||
|
||||
groupPtr = &scriptPtr->groups[group_s32];
|
||||
sectorPtr = &groupPtr->sectors[sector_s32];
|
||||
objectData = sectorPtr->objects;
|
||||
|
||||
size = sectorPtr->nObjects;
|
||||
for (i = 0; i < size; i++, objectData++)
|
||||
{
|
||||
GroundObject_Add(-1,objectData,group_s32,sector_s32);
|
||||
}
|
||||
}
|
||||
|
||||
void GroundObject_Cancel(s32 scriptID, s32 sector)
|
||||
{
|
||||
s32 index;
|
||||
GroundObject *ptr;
|
||||
s32 sector_s32;
|
||||
s32 scriptID_s32;
|
||||
|
||||
scriptID_s32 = (s16)scriptID;
|
||||
sector_s32 = (s8) sector;
|
||||
|
||||
|
||||
Log('\0',gUnknown_8118414, scriptID_s32);
|
||||
|
||||
index = 0;
|
||||
ptr = &gGroundObjects[0];
|
||||
for(; index < 0x10; index = (s16)(index + 1), ptr++)
|
||||
{
|
||||
if((ptr->unk6 != -1) && (ptr->unk8 == scriptID_s32))
|
||||
if(sector_s32 < 0 || ptr->unkA == sector_s32)
|
||||
GroundObject_Delete(index);
|
||||
}
|
||||
}
|
||||
|
||||
void GroundObject_CancelBlank(void)
|
||||
{
|
||||
s32 index;
|
||||
GroundObject *ptr;
|
||||
u32 stack[2];
|
||||
|
||||
Log('\0',gUnknown_811842C);
|
||||
|
||||
index = 0;
|
||||
ptr = &gGroundObjects[0];
|
||||
for(; index < 0x10; index = (s16)(index + 1), ptr++)
|
||||
{
|
||||
if(ptr->unk6 != -1)
|
||||
{
|
||||
stack[0] = ptr->unk124[0] + ptr->unk14;
|
||||
stack[1] = ptr->unk124[1] + ptr->unk18;
|
||||
if(!IsOnscreen_80A675C(ptr->unk144, stack))
|
||||
GroundObject_Delete(index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_80ABD48(s32 r0)
|
||||
{
|
||||
s32 index;
|
||||
GroundObject *ptr;
|
||||
|
||||
s32 r0_s32 = (s16)r0;
|
||||
|
||||
index = 0;
|
||||
ptr = &gGroundObjects[0];
|
||||
for(; index < 0x10; index = (s16)(index + 1), ptr++)
|
||||
{
|
||||
if(ptr->unk6 == r0_s32) return index;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
14
src/ground_sbin.c
Normal file
14
src/ground_sbin.c
Normal file
@@ -0,0 +1,14 @@
|
||||
#include "global.h"
|
||||
#include "file_system.h"
|
||||
|
||||
#define GROUND_FILES_COUNT 0x2A5
|
||||
|
||||
extern const File gGroundFiles[GROUND_FILES_COUNT];
|
||||
|
||||
const FileArchive gGroundFileArchive = {
|
||||
.magic = "pksdir0",
|
||||
.count = GROUND_FILES_COUNT,
|
||||
.entries = gGroundFiles,
|
||||
};
|
||||
|
||||
UNUSED static const char sPksDir2[] = "pksdir0";
|
||||
@@ -42,15 +42,15 @@
|
||||
|
||||
|
||||
void GroundMap_Select(s16);
|
||||
void GroundMap_SelectDungeon(s16, DungeonLocation*, u8);
|
||||
void GroundMap_SelectDungeon(s32, DungeonLocation*, u32);
|
||||
void GroundMap_GetStationScript(ScriptInfoSmall *out, s16, s32, s32);
|
||||
void GroundLives_ExecuteScript(s32, s16 *, ScriptInfoSmall *);
|
||||
void GroundObject_ExecuteScript(s32, s16 *, ScriptInfoSmall *);
|
||||
void GroundEffect_ExecuteScript(s32, s16 *, ScriptInfoSmall *);
|
||||
void GroundLives_Select(s16, s32 group, s32 sector);
|
||||
void GroundObject_Select(s16, s32 group, s32 sector);
|
||||
void GroundEffect_Select(s16, s32 group, s32 sector);
|
||||
void GroundEvent_Select(s16, s32 group, s32 sector);
|
||||
void GroundLives_Select(s32, s32 group, s32 sector);
|
||||
void GroundObject_Select(s32, s32 group, s32 sector);
|
||||
void GroundEffect_Select(s32, s32 group, s32 sector);
|
||||
void GroundEvent_Select(s32, s32 group, s32 sector);
|
||||
void GroundLives_Cancel(s32 group, s32 sector);
|
||||
void GroundObject_Cancel(s32 group, s32 sector);
|
||||
void GroundEffect_Cancel(s32 group, s32 sector);
|
||||
@@ -91,7 +91,7 @@ bool8 sub_809AEEC(const char*);
|
||||
bool8 sub_809AF2C(const char*);
|
||||
bool8 sub_809AF6C(s16, const char*);
|
||||
void sub_809AFC8(bool8, s32, s32, const char*);
|
||||
u32 sub_809B028();
|
||||
u32 sub_809B028(const MenuItem *, s32 a1_, s32 a2, s32 a3, s32 a4_, const char *text);
|
||||
bool8 sub_809B1C0(s32, s32, char[12]);
|
||||
void sub_809B1D4(u8, s32, s32, const char*);
|
||||
void sub_809C770(s16, s16);
|
||||
@@ -151,7 +151,7 @@ extern s16 gCurrentMap;
|
||||
extern s16 gUnknown_2039A32;
|
||||
extern s16 gUnknown_2039A34;
|
||||
|
||||
extern struct { const char *unk0; s32 unk4; } gChoices[9];
|
||||
extern MenuItem gChoices[9];
|
||||
|
||||
extern char gUnknown_81165D4[];
|
||||
extern char gUnknown_81165F4[];
|
||||
@@ -235,8 +235,8 @@ extern Item gUnknown_81167E4;
|
||||
bool8 sub_809124C(u8 id, u8 param_3);
|
||||
extern const u8 gUnknown_81167EC[];
|
||||
void sub_80A56A0(s32, s32);
|
||||
void sub_80A56F0();
|
||||
void sub_80A5704();
|
||||
void sub_80A56F0(s32 *);
|
||||
void sub_80A5704(s32 *);
|
||||
void sub_809C760(void);
|
||||
void sub_809C6EC(void);
|
||||
void sub_809C6CC(u16 param_1);
|
||||
@@ -2934,13 +2934,13 @@ s32 ExecuteScriptCommand(Action *action)
|
||||
}
|
||||
if (!out) out = gUnknown_81166D8; // ""
|
||||
for (; scriptData->script.ptr->op == 0xd9; scriptData->script.ptr++) {
|
||||
gChoices[sNumChoices].unk0 = scriptData->script.ptr->argPtr;
|
||||
gChoices[sNumChoices].unk4 = sNumChoices + 1;
|
||||
gChoices[sNumChoices].text = scriptData->script.ptr->argPtr;
|
||||
gChoices[sNumChoices].menuAction = sNumChoices + 1;
|
||||
sNumChoices++;
|
||||
}
|
||||
if (sNumChoices <= 0) break;
|
||||
gChoices[sNumChoices].unk0 = NULL;
|
||||
gChoices[sNumChoices].unk4 = curCmd.argShort;
|
||||
gChoices[sNumChoices].text = NULL;
|
||||
gChoices[sNumChoices].menuAction = curCmd.argShort;
|
||||
switch (curCmd.op) {
|
||||
case 0xd2: case 0xd3: case 0xd6: {
|
||||
sub_809B028(gChoices, (u8)curCmd.argByte > 0, -1, 0, (s16)curCmd.arg1, out);
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
#include "moves.h"
|
||||
#include "number_util.h"
|
||||
#include "status.h"
|
||||
#include "status_actions.h"
|
||||
#include "text_util.h"
|
||||
#include "trap.h"
|
||||
#include "weather.h"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "move_orb_actions_1.h"
|
||||
#include "dungeon_move_util.h"
|
||||
#include "dungeon_vram.h"
|
||||
#include "code_803E724.h"
|
||||
@@ -23,7 +24,6 @@
|
||||
#include "moves.h"
|
||||
#include "number_util.h"
|
||||
#include "pokemon.h"
|
||||
#include "status_actions.h"
|
||||
#include "status.h"
|
||||
#include "structs/dungeon_entity.h"
|
||||
#include "structs/map.h"
|
||||
@@ -148,19 +148,19 @@ bool8 DigMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool32 SweetScentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
bool8 SweetScentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
LowerAccuracyStageTarget(pokemon,target,gUnknown_8106A50[0],TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 CharmMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
bool8 CharmMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
ChangeAttackMultiplierTarget(pokemon,target,gUnknown_8106A4C[0],FloatToF248(0.5),TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 RainDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
bool8 RainDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
gDungeon->weather.unkE267[WEATHER_RAIN] = gMoveWeatherDuration;
|
||||
if (sub_807EAA0(1,0) == 0) {
|
||||
@@ -170,7 +170,7 @@ bool32 RainDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 para
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 HailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
bool8 HailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
gDungeon->weather.unkE267[WEATHER_HAIL] = gMoveWeatherDuration;
|
||||
if (sub_807EAA0(1,0) == 0) {
|
||||
@@ -180,15 +180,15 @@ bool32 HailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_80578EC(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
bool8 sub_80578EC(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
sub_8079F20(pokemon, target, 1, 0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 BubbleMoveAction(Entity *pokemon, Entity *target, Move * move, u32 param_4)
|
||||
bool8 BubbleMoveAction(Entity *pokemon, Entity *target, Move * move, s32 param_4)
|
||||
{
|
||||
bool32 flag;
|
||||
bool8 flag;
|
||||
|
||||
flag = FALSE;
|
||||
if (HandleDamagingMove(pokemon, target, move, IntToF248_2(1), param_4) != 0) {
|
||||
@@ -200,20 +200,20 @@ bool32 BubbleMoveAction(Entity *pokemon, Entity *target, Move * move, u32 param_
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool32 EncoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
bool8 EncoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
EncoreStatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 RageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
bool8 RageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
// {POKEMON_0} is enraged
|
||||
SetChargeStatusTarget(pokemon,target,STATUS_ENRAGED,move,gUnknown_80FAC88);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 SuperFangMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SuperFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
s32 newHP;
|
||||
bool8 local_24;
|
||||
@@ -325,7 +325,7 @@ bool8 SwaggerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 SnoreMoveAction(Entity *pokemon, Entity *target, Move * move, u32 param_4)
|
||||
bool8 SnoreMoveAction(Entity *pokemon, Entity *target, Move * move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -350,7 +350,7 @@ bool8 ScreechMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move * move, u32 param_4)
|
||||
bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move * move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -364,7 +364,7 @@ bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move * move, u32 para
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool32 WeatherBallMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
bool32 WeatherBallMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4)
|
||||
{
|
||||
u32 weather;
|
||||
s32 flag;
|
||||
@@ -378,7 +378,7 @@ bool32 WeatherBallMoveAction(Entity * pokemon, Entity * target, Move * move, u32
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 WhirlpoolMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
bool8 WhirlpoolMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4)
|
||||
{
|
||||
s24_8 modifier;
|
||||
bool8 flag;
|
||||
@@ -449,7 +449,7 @@ bool8 MirrorMoveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 para
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 OverheatMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 OverheatMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
EntityInfo *entityInfo;
|
||||
bool8 flag;
|
||||
@@ -466,7 +466,7 @@ bool8 OverheatMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 AuroraBeamMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 AuroraBeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -493,7 +493,7 @@ bool8 MementoMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 OctazookaMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 OctazookaMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -582,7 +582,7 @@ bool8 CounterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -599,7 +599,7 @@ bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para
|
||||
}
|
||||
|
||||
// NOTE: Do we have a better name for this??
|
||||
bool8 BasicFireMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 BasicFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -615,7 +615,7 @@ bool8 BasicFireMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 ExposeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ExposeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
u16 uVar1;
|
||||
uVar1 = (move->id == MOVE_FORESIGHT) ? 0x7A : 0x51;
|
||||
@@ -623,13 +623,13 @@ bool8 ExposeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 DoubleTeamMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 DoubleTeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
RaiseAccuracyStageTarget(pokemon, target, gUnknown_8106A50[0]);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
s32 modifierInt;
|
||||
@@ -644,26 +644,26 @@ bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
}
|
||||
|
||||
// NOTE: Is there a better name for this?
|
||||
bool8 BasicRaiseDefenseMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 BasicRaiseDefenseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
RaiseDefenseStageTarget(pokemon, target, gUnknown_8106A4C[0], 1);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 DisableMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 DisableMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
ParalyzeStatusTarget(pokemon, target, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// NOTE: Is there a better name for this?
|
||||
bool8 BasicRaiseAttackMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 BasicRaiseAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
RaiseAttackStageTarget(pokemon, target, gUnknown_8106A4C[0], 1);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 RazorWindMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
bool8 RazorWindMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -678,13 +678,13 @@ bool8 RazorWindMoveAction(Entity * pokemon, Entity * target, Move * move, u32 pa
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 BideMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 BideMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
SetChargeStatusTarget(pokemon, target, STATUS_BIDE, move, gUnknown_80FAC74);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 Bide2MoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 Bide2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
s32 iVar2;
|
||||
bool8 local_18;
|
||||
@@ -700,7 +700,7 @@ bool8 Bide2MoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return local_18;
|
||||
}
|
||||
|
||||
bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -715,7 +715,7 @@ bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -730,7 +730,7 @@ bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -745,7 +745,7 @@ bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
s32 diffHP;
|
||||
bool8 local_24;
|
||||
@@ -766,7 +766,7 @@ bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_
|
||||
return local_24;
|
||||
}
|
||||
|
||||
bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
s24_8 modifier;
|
||||
@@ -778,7 +778,7 @@ bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -793,7 +793,7 @@ bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -808,7 +808,7 @@ bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -823,7 +823,7 @@ bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 FocusPunchMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
bool8 FocusPunchMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -838,7 +838,7 @@ bool8 FocusPunchMoveAction(Entity * pokemon, Entity * target, Move * move, u32 p
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 GigaDrainMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
bool8 GigaDrainMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4)
|
||||
{
|
||||
bool8 hasLiquidOoze;
|
||||
s32 uVar3;
|
||||
@@ -867,7 +867,7 @@ bool8 GigaDrainMoveAction(Entity * pokemon, Entity * target, Move * move, u32 pa
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 ReversalMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
bool8 ReversalMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4)
|
||||
{
|
||||
s32 index;
|
||||
bool8 flag;
|
||||
@@ -890,7 +890,7 @@ bool8 ReversalMoveAction(Entity * pokemon, Entity * target, Move * move, u32 par
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 SmellingSaltMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
bool8 SmellingSaltMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -904,13 +904,13 @@ bool8 SmellingSaltMoveAction(Entity * pokemon, Entity * target, Move * move, u32
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 MetalSoundMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 MetalSoundMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
LowerDefenseStageTarget(pokemon, target, gUnknown_8106A50[0], 3, 1, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
s32 index = gUnknown_8106A4C[0];
|
||||
LowerAttackStageTarget(pokemon, target, index, 1, 1, TRUE);
|
||||
@@ -918,19 +918,19 @@ bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_805889C(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 sub_805889C(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
ImmobilizedStatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 HazeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 HazeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
sub_8079E34(pokemon, target, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag = FALSE;
|
||||
if(HandleDamagingMove(pokemon, target, move, IntToF248_2(1), param_4) != 0)
|
||||
@@ -944,7 +944,7 @@ bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
s24_8 weight;
|
||||
bool8 flag;
|
||||
@@ -955,7 +955,7 @@ bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag = FALSE;
|
||||
EntityInfo *entityInfo;
|
||||
@@ -980,19 +980,19 @@ bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, u32 pa
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 SynthesisMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SynthesisMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
HealTargetHP(pokemon, target, gSynthesisHealValueByWeather[GetApparentWeather(pokemon)], 0, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 AgilityMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 AgilityMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
RaiseMovementSpeedTarget(pokemon, target, 0, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag = FALSE;
|
||||
if(HandleDamagingMove(pokemon, target, move, IntToF248_2(1), param_4) != 0)
|
||||
@@ -1006,13 +1006,13 @@ bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 SureShotMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SureShotMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
SureShotStatusTarget(pokemon, target, CalculateStatusTurns(target, gSureShotTurnRange, FALSE));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 CosmicPowerMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 CosmicPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
RaiseDefenseStageTarget(pokemon, target, gUnknown_8106A4C[0], 1);
|
||||
RaiseDefenseStageTarget(pokemon, target, gUnknown_8106A50[0], 1);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "move_orb_actions_2.h"
|
||||
#include "dungeon_move_util.h"
|
||||
#include "dungeon_vram.h"
|
||||
#include "code_803E724.h"
|
||||
@@ -23,7 +24,7 @@
|
||||
#include "moves.h"
|
||||
#include "number_util.h"
|
||||
#include "pokemon.h"
|
||||
#include "status_actions.h"
|
||||
#include "move_orb_actions_4.h"
|
||||
#include "status.h"
|
||||
#include "structs/dungeon_entity.h"
|
||||
#include "structs/map.h"
|
||||
@@ -33,15 +34,9 @@
|
||||
#include "dungeon_misc.h"
|
||||
#include "dungeon_strings.h"
|
||||
|
||||
extern void sub_806A5B8(Entity *entity);
|
||||
void sub_8075900(Entity *pokemon, u8 r1);
|
||||
extern u8 sub_8044B28(void);
|
||||
extern void sub_807EC28(bool8);
|
||||
extern void sub_806F370(Entity *r0, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
|
||||
extern void CalcDamage(Entity *, Entity *, u8, u32, u32, s32 *, u32, u16, u32);
|
||||
extern void MudWaterSportEffect(u32);
|
||||
extern void CalcDamage(Entity *, Entity *, u8, u32, u32, s32 *, u32, u16, u32);
|
||||
extern void sub_806A6E8(Entity *);
|
||||
|
||||
extern void EndAbilityImmuneStatus(Entity *, Entity *);
|
||||
extern u8 sub_806F4A4(Entity *, u32);
|
||||
@@ -49,19 +44,12 @@ extern void HandleExplosion(Entity *pokemon, Entity *target, DungeonPos *pos, u3
|
||||
extern void nullsub_92(Entity *);
|
||||
extern u8 sub_807EAA0(u32, u32);
|
||||
|
||||
// move_util.h
|
||||
extern bool8 sub_805727C(Entity *, Entity *, s32);
|
||||
bool8 RollSecondaryEffect(Entity *pokemon, s32 chance);
|
||||
bool8 sub_80571F0(Entity * pokemon, Move *move);
|
||||
|
||||
extern void sub_806F370(Entity *r0, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
|
||||
extern void DealDamageToEntity(Entity *, s32, u32, u32);
|
||||
extern s16 sub_8057600(Move *move, s32 itemID);
|
||||
|
||||
extern u32 gUnknown_8106A4C;
|
||||
extern u32 gUnknown_8106A50;
|
||||
|
||||
bool8 SkyAttackMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SkyAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag = FALSE;
|
||||
|
||||
@@ -82,7 +70,7 @@ bool8 SkyAttackMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param
|
||||
}
|
||||
|
||||
// NOTE: Is there a better name for this?
|
||||
bool8 BasicIceMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 BasicIceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -97,7 +85,7 @@ bool8 BasicIceMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 MeteorMashMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 MeteorMashMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
EntityInfo *entityInfo;
|
||||
@@ -115,19 +103,19 @@ bool8 MeteorMashMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 EndureMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 EndureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
EndureStatusTarget(pokemon, pokemon);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 ScaryFaceMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ScaryFaceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
LowerMovementSpeedTarget(pokemon, target, 1, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_8058C00(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 sub_8058C00(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -142,7 +130,7 @@ bool8 sub_8058C00(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 PsywaveMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 PsywaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
s32 rand;
|
||||
bool8 flag;
|
||||
@@ -159,7 +147,7 @@ bool8 PsywaveMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 sub_8058C98(Entity *pokemon, Entity *target, Move *move, u32 param_4, u32 param_5)
|
||||
bool8 sub_8058C98(Entity *pokemon, Entity *target, Move *move, s32 param_4, u32 param_5)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -174,7 +162,7 @@ bool8 sub_8058C98(Entity *pokemon, Entity *target, Move *move, u32 param_4, u32
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 PsychoBoostMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 PsychoBoostMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag = FALSE;
|
||||
if(HandleDamagingMove(pokemon, target, move, IntToF248_2(1), param_4) != 0)
|
||||
@@ -188,13 +176,13 @@ bool8 PsychoBoostMoveAction(Entity *pokemon, Entity *target, Move *move, u32 par
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 UproarMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 UproarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
SleeplessStatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 WaterSpoutMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
bool8 WaterSpoutMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4)
|
||||
{
|
||||
s32 index;
|
||||
bool8 flag;
|
||||
@@ -217,7 +205,7 @@ bool8 WaterSpoutMoveAction(Entity * pokemon, Entity * target, Move * move, u32 p
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 PsychUpMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
bool8 PsychUpMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4)
|
||||
{
|
||||
s32 index;
|
||||
EntityInfo *iVar3;
|
||||
@@ -265,7 +253,7 @@ bool8 sub_8058E5C(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 sub_8058EE0(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 sub_8058EE0(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
HealTargetHP(pokemon, target, GetEntInfo(target)->maxHPStat / 2, 0, TRUE);
|
||||
return TRUE;
|
||||
@@ -309,7 +297,7 @@ bool8 NaturePowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 par
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -324,25 +312,25 @@ bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 SelfDestructMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SelfDestructMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
HandleExplosion(pokemon, target, &target->pos, 1, GetMoveType(move), sub_8057600(move, param_4));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 StunSporeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 StunSporeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
ParalyzeStatusTarget(pokemon, target, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 ChargeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ChargeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
SetChargeStatusTarget(pokemon, target, STATUS_CHARGING, move, gUnknown_80FAD6C);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 ThunderboltMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ThunderboltMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -357,7 +345,7 @@ bool8 ThunderboltMoveAction(Entity *pokemon, Entity *target, Move *move, u32 par
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 MistMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 MistMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
MistStatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
@@ -387,7 +375,7 @@ bool8 FissureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -402,7 +390,7 @@ bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, u32 pa
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 SafeguardMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SafeguardMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
SafeguardStatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
@@ -471,10 +459,10 @@ bool8 SkillSwapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool32 SketchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
bool8 SketchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
s32 i;
|
||||
bool32 ret = FALSE;
|
||||
bool8 ret = FALSE;
|
||||
EntityInfo *pokeInfo = GetEntInfo(pokemon);
|
||||
EntityInfo *targetInfo = GetEntInfo(target);
|
||||
bool32 moveFound = FALSE;
|
||||
@@ -510,7 +498,7 @@ bool32 SketchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -525,7 +513,7 @@ bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 DoubleEdgeMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
bool8 DoubleEdgeMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
||||
{
|
||||
s32 HP;
|
||||
bool8 flag;
|
||||
@@ -548,7 +536,7 @@ bool8 DoubleEdgeMoveAction(Entity * pokemon,Entity * target,Move * move,u32 para
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 SandstormMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SandstormMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
gDungeon->weather.unkE267[WEATHER_SANDSTORM] = gMoveWeatherDuration;
|
||||
if(sub_807EAA0(1, 0) == 0)
|
||||
@@ -558,13 +546,13 @@ bool8 SandstormMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_8059528(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 sub_8059528(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
LowerAccuracyStageTarget(pokemon, target, gUnknown_8106A4C, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -579,13 +567,13 @@ bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 GrowthMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 GrowthMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
RaiseAttackStageTarget(pokemon, target, gUnknown_8106A50, 1);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -600,7 +588,7 @@ bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 sub_80595EC(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
bool8 sub_80595EC(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
||||
{
|
||||
u8 moveType;
|
||||
u8 local_20;
|
||||
@@ -618,7 +606,7 @@ bool8 sub_80595EC(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
}
|
||||
}
|
||||
|
||||
bool8 SolarBeamMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
bool8 SolarBeamMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
||||
{
|
||||
u8 weather; // weather and flag are reused in same variable
|
||||
s24_8 modifier;
|
||||
@@ -640,7 +628,7 @@ bool8 SolarBeamMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param
|
||||
return weather;
|
||||
}
|
||||
|
||||
bool8 SonicboomMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
bool8 SonicboomMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
||||
{
|
||||
u8 local_20;
|
||||
|
||||
@@ -650,7 +638,7 @@ bool8 SonicboomMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param
|
||||
return local_20;
|
||||
}
|
||||
|
||||
bool8 FlyMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
bool8 FlyMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -666,13 +654,13 @@ bool8 FlyMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 ExplosionMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
bool8 ExplosionMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
||||
{
|
||||
HandleExplosion(pokemon,target,&target->pos,2,GetMoveType(move),sub_8057600(move,param_4));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 DiveMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
bool8 DiveMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -691,7 +679,7 @@ bool8 DiveMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -706,13 +694,13 @@ bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 StockpileMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 StockpileMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
HandleStockpile(pokemon, target);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 TwisterMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
bool8 TwisterMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
||||
{
|
||||
s32 modifierInt = 1;
|
||||
bool8 flag = FALSE;
|
||||
@@ -731,7 +719,7 @@ bool8 TwisterMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 TwineedleMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
bool8 TwineedleMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -747,7 +735,7 @@ bool8 TwineedleMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 sub_80599EC(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 sub_80599EC(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
s32 HP;
|
||||
|
||||
@@ -758,13 +746,13 @@ bool8 sub_80599EC(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 MinimizeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 MinimizeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
RaiseAccuracyStageTarget(pokemon, target, gUnknown_8106A50);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_8059A2C(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
bool8 sub_8059A2C(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
||||
{
|
||||
u8 local_20;
|
||||
u32 level;
|
||||
@@ -776,25 +764,25 @@ bool8 sub_8059A2C(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
return local_20;
|
||||
}
|
||||
|
||||
bool8 SupersonicMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SupersonicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
ConfuseStatusTarget(pokemon, target, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 TauntMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 TauntMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
TauntStatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 MoonlightMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 MoonlightMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
HealTargetHP(pokemon, target, gMoonlightHealValueByWeather[GetApparentWeather(pokemon)], 0, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 HornDrillMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
bool8 HornDrillMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
||||
{
|
||||
u8 local_20;
|
||||
|
||||
@@ -810,13 +798,13 @@ bool8 HornDrillMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param
|
||||
}
|
||||
}
|
||||
|
||||
bool8 SwordsDanceMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SwordsDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
RaiseAttackStageTarget(pokemon, target, gUnknown_8106A4C, 2);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 ConversionMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
bool8 ConversionMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
||||
{
|
||||
u8 moveType;
|
||||
Move *movePtr;
|
||||
@@ -860,13 +848,13 @@ bool8 ConversionMoveAction(Entity * pokemon,Entity * target,Move * move,u32 para
|
||||
}
|
||||
}
|
||||
|
||||
bool8 Conversion2MoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 Conversion2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
Conversion2StatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 HelpingHandMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 HelpingHandMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
flag = FALSE;
|
||||
@@ -882,19 +870,19 @@ bool8 HelpingHandMoveAction(Entity *pokemon, Entity *target, Move *move, u32 par
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 sub_8059CD8(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 sub_8059CD8(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
RaiseDefenseStageTarget(pokemon, target, gUnknown_8106A4C, 2);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 WarpMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 WarpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
WarpTarget(pokemon, target, 0, NULL);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -909,13 +897,13 @@ bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, u32 pa
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 ThunderWaveMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ThunderWaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
ParalyzeStatusTarget(pokemon, target, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 ZapCannonMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ZapCannonMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -930,25 +918,25 @@ bool8 ZapCannonMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 BlockMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 BlockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
ImmobilizedStatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 PoisonGasMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 PoisonGasMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
PoisonedStatusTarget(pokemon, target, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 ToxicMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ToxicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
BadlyPoisonedStatusTarget(pokemon, target, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 PoisonFangMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 PoisonFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "dungeon_vram.h"
|
||||
#include "move_orb_actions_3.h"
|
||||
#include "code_803E724.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
@@ -12,6 +13,7 @@
|
||||
#include "constants/targeting.h"
|
||||
#include "constants/type.h"
|
||||
#include "constants/weather.h"
|
||||
#include "dungeon_ai.h"
|
||||
#include "dungeon_logic.h"
|
||||
#include "dungeon_config.h"
|
||||
#include "run_dungeon.h"
|
||||
@@ -30,7 +32,7 @@
|
||||
#include "number_util.h"
|
||||
#include "pokemon.h"
|
||||
#include "status.h"
|
||||
#include "status_actions.h"
|
||||
#include "move_orb_actions_4.h"
|
||||
#include "structs/dungeon_entity.h"
|
||||
#include "structs/map.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
@@ -38,36 +40,23 @@
|
||||
#include "trap.h"
|
||||
#include "weather.h"
|
||||
|
||||
extern void sub_806A5B8(Entity *entity);
|
||||
void sub_8075900(Entity *pokemon, u8 r1);
|
||||
extern u8 sub_8044B28(void);
|
||||
extern void sub_807EC28(bool8);
|
||||
extern void sub_806F370(Entity *r0, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
|
||||
extern void CalcDamage(Entity *, Entity *, u8, u32, u32, s32 *, u32, u16, u32);
|
||||
static void sub_805A7D4(Entity *, Entity *, Item *, DungeonPos *);
|
||||
extern void MudWaterSportEffect(u32);
|
||||
extern void CalcDamage(Entity *, Entity *, u8, u32, u32, s32 *, u32, u16, u32);
|
||||
extern void sub_806A6E8(Entity *);
|
||||
|
||||
extern void EndAbilityImmuneStatus(Entity *, Entity *);
|
||||
extern u8 sub_806F4A4(Entity *, u32);
|
||||
extern void HandleExplosion(Entity *pokemon, Entity *target, DungeonPos *pos, u32, u8 moveType, s16);
|
||||
extern void nullsub_92(Entity *);
|
||||
extern u8 sub_807EAA0(u32, u32);
|
||||
|
||||
// move_util.h
|
||||
extern bool8 sub_805727C(Entity *, Entity *, s32);
|
||||
bool8 RollSecondaryEffect(Entity *pokemon, s32 chance);
|
||||
bool8 sub_80571F0(Entity * pokemon, Move *move);
|
||||
|
||||
extern void sub_806F370(Entity *r0, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
|
||||
extern void DealDamageToEntity(Entity *, s32, u32, u32);
|
||||
extern s16 sub_8057600(Move *move, s32 itemID);
|
||||
|
||||
extern u32 gUnknown_8106A4C;
|
||||
extern u32 gUnknown_8106A50;
|
||||
|
||||
bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -82,7 +71,7 @@ bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, u32 par
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 JumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4,u8 param_5)
|
||||
bool8 JumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4,u8 param_5)
|
||||
{
|
||||
u8 moveType;
|
||||
u32 movePower;
|
||||
@@ -111,7 +100,7 @@ bool8 JumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 BounceMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
bool8 BounceMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -132,7 +121,7 @@ bool8 BounceMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 HiJumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4,u8 param_5)
|
||||
bool8 HiJumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4,u8 param_5)
|
||||
{
|
||||
u8 moveType;
|
||||
u32 movePower;
|
||||
@@ -161,7 +150,7 @@ bool8 HiJumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,u32 para
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 TriAttackMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 TriAttackMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -189,14 +178,14 @@ bool8 TriAttackMoveAction(Entity * pokemon, Entity * target, Move *move, u32 par
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 TrickMoveAction(Entity * pokemon,Entity * target, Move *move, u32 param_4)
|
||||
bool8 TrickMoveAction(Entity * pokemon,Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
EntityInfo *r9;
|
||||
EntityInfo *r8;
|
||||
EntityInfo *r7;
|
||||
EntityInfo *sp;
|
||||
Item item;
|
||||
bool32 flag;
|
||||
bool8 flag;
|
||||
Item *item1;
|
||||
Item *item2;
|
||||
|
||||
@@ -245,7 +234,7 @@ bool8 TrickMoveAction(Entity * pokemon,Entity * target, Move *move, u32 param_4)
|
||||
}
|
||||
}
|
||||
|
||||
bool8 TripleKickMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 TripleKickMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -254,7 +243,7 @@ bool8 TripleKickMoveAction(Entity * pokemon, Entity * target, Move *move, u32 pa
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 MudWaterSportMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 MudWaterSportMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
if(move->id == MOVE_MUD_SPORT)
|
||||
{
|
||||
@@ -267,7 +256,7 @@ bool8 MudWaterSportMoveAction(Entity * pokemon, Entity * target, Move *move, u32
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -282,24 +271,24 @@ bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 ThiefMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ThiefMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
return ThiefAction(pokemon, target, move, param_4);
|
||||
}
|
||||
|
||||
bool8 AmnesiaMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 AmnesiaMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
RaiseDefenseStageTarget(pokemon, target, gUnknown_8106A50, 2);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 GrowlMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 GrowlMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
LowerAttackStageTarget(pokemon, target, gUnknown_8106A4C, 1, 1, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 SurfMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SurfMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
s32 modifierInt;
|
||||
@@ -318,7 +307,7 @@ bool8 SurfMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
EntityInfo * entityInfo;
|
||||
EntityInfo * targetEntityInfo;
|
||||
@@ -341,7 +330,7 @@ bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_
|
||||
}
|
||||
}
|
||||
|
||||
bool8 SunnyDayMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SunnyDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
gDungeon->weather.unkE267[WEATHER_SUNNY] = gMoveWeatherDuration;
|
||||
if (sub_807EAA0(1,0) == 0) {
|
||||
@@ -350,19 +339,19 @@ bool8 SunnyDayMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 LeerMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 LeerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
LowerDefenseStageTarget(pokemon, target, gUnknown_8106A4C, 1, 1, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 WishMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 WishMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
WishStatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -377,15 +366,15 @@ bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 sub_805A450(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 sub_805A450(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,gUnknown_80FC730);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool32 flag;
|
||||
bool8 flag;
|
||||
Item item;
|
||||
DungeonPos pos;
|
||||
|
||||
@@ -404,25 +393,25 @@ bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 AssistMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 AssistMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,gUnknown_80FC74C);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 RestMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 RestMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
NappingStatusTarget(pokemon, target, CalculateStatusTurns(target, gNappingTurnRange, FALSE));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 IngrainMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 IngrainMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
IngrainedStatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 SwallowMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SwallowMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
u8 *stockpileStage;
|
||||
|
||||
@@ -437,13 +426,13 @@ bool8 SwallowMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 CurseMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 CurseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
CurseStatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_805A568(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 sub_805A568(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -451,10 +440,10 @@ bool8 sub_805A568(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
u32 stat;
|
||||
bool32 flag;
|
||||
bool8 flag;
|
||||
|
||||
flag = FALSE;
|
||||
if (HandleDamagingMove(pokemon, target, move, IntToF248_2(1), param_4) != 0) {
|
||||
@@ -468,10 +457,10 @@ bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 SteelWingMoveAction(Entity *pokemon, Entity *target, Move *move, u32 stat, u32 param_5)
|
||||
bool8 SteelWingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 stat, u32 param_5)
|
||||
{
|
||||
EntityInfo *entityInfo;
|
||||
bool32 flag;
|
||||
bool8 flag;
|
||||
|
||||
flag = FALSE;
|
||||
if (HandleDamagingMove(pokemon,target,move,IntToF248_2(1),param_5) != 0) {
|
||||
@@ -485,7 +474,7 @@ bool8 SteelWingMoveAction(Entity *pokemon, Entity *target, Move *move, u32 stat,
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 SpitUpMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 SpitUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
u8 *stockpileStage;
|
||||
|
||||
@@ -500,7 +489,7 @@ bool8 SpitUpMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -515,7 +504,7 @@ bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, u32 pa
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 KnockOffMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 KnockOffMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
EntityInfo *entityInfo;
|
||||
EntityInfo *targetEntityInfo;
|
||||
@@ -579,7 +568,7 @@ static void sub_805A7D4(Entity * pokemon, Entity * target, Item *item,
|
||||
sub_804652C(pokemon,&stackEntity,item,1,0);
|
||||
}
|
||||
|
||||
bool8 SplashMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 SplashMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
@@ -677,13 +666,13 @@ _0805AA5E:
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_805AAD0(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 sub_805AAD0(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
FixedDamageStatusTarget(pokemon, pokemon);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 BellyDrumMoveAction(Entity * pokemon,Entity * target, Move *move, u32 param_4)
|
||||
bool8 BellyDrumMoveAction(Entity * pokemon,Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
EntityInfo *info;
|
||||
bool8 flag;
|
||||
@@ -702,13 +691,13 @@ bool8 BellyDrumMoveAction(Entity * pokemon,Entity * target, Move *move, u32 para
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 LightScreenMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 LightScreenMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
LightScreenStatusTarget(pokemon, target);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 SecretPowerMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 SecretPowerMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -751,7 +740,7 @@ bool8 SecretPowerMoveAction(Entity * pokemon, Entity * target, Move *move, u32 p
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 sub_805AC90(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 sub_805AC90(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -765,7 +754,7 @@ bool8 sub_805AC90(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 BulkUpMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 BulkUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
s32 stat = gUnknown_8106A4C;
|
||||
RaiseAttackStageTarget(pokemon, target, stat, 1);
|
||||
@@ -773,24 +762,24 @@ bool8 BulkUpMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 ObserverOrbAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 ObserverOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
PausedStatusTarget(pokemon, target, 1, CalculateStatusTurns(target, gObserverOrbPausedTurnRange, TRUE), TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 FeatherDanceMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 FeatherDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
LowerAttackStageTarget(pokemon, target, gUnknown_8106A4C, 2, 1, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 BeatUpMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 BeatUpMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
s32 numPossibleTargets;
|
||||
s32 i;
|
||||
Entity **possibleTargets;
|
||||
bool32 flag = FALSE;
|
||||
bool8 flag = FALSE;
|
||||
EntityInfo *info = GetEntInfo(pokemon);
|
||||
|
||||
if (info->isNotTeamMember) {
|
||||
@@ -823,7 +812,7 @@ bool32 BeatUpMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -832,7 +821,7 @@ bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 CrushClawMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 CrushClawMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -846,7 +835,7 @@ bool8 CrushClawMoveAction(Entity * pokemon, Entity * target, Move *move, u32 par
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 BlazeKickMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 BlazeKickMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -861,7 +850,7 @@ bool8 BlazeKickMoveAction(Entity * pokemon, Entity * target, Move *move, u32 par
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 PresentMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 PresentMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
bool8 flag;
|
||||
|
||||
@@ -888,7 +877,7 @@ bool8 PresentMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param
|
||||
}
|
||||
}
|
||||
|
||||
bool8 EruptionMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4)
|
||||
bool8 EruptionMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
EntityInfo *entityInfo;
|
||||
s32 maxHp;
|
||||
@@ -915,7 +904,7 @@ bool8 EruptionMoveAction(Entity * pokemon, Entity * target, Move *move, u32 para
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 GlareMoveAction(Entity * pokemon,Entity * target,Move *move)
|
||||
bool8 GlareMoveAction(Entity * pokemon,Entity * target,Move *move,s32 param_4)
|
||||
{
|
||||
ParalyzeStatusTarget(pokemon,target, TRUE);
|
||||
return TRUE;
|
||||
@@ -948,13 +937,13 @@ bool8 PoisonTailMoveAction(Entity * pokemon, Entity * target, Move *move, s32 pa
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 RoarMoveAction(Entity * pokemon, Entity * target)
|
||||
bool8 RoarMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
BlowAwayTarget(pokemon, target, GetEntInfo(pokemon)->action.direction);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 HandleColorChange(Entity * pokemon, Entity * target)
|
||||
bool8 HandleColorChange(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
u8 newType;
|
||||
const char *typeString;
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "status_actions.h"
|
||||
#include "move_orb_actions_4.h"
|
||||
#include "move_orb_actions_2.h"
|
||||
#include "dungeon_ai.h"
|
||||
#include "dungeon_move_util.h"
|
||||
#include "dungeon_message.h"
|
||||
#include "dungeon_move.h"
|
||||
@@ -20,6 +22,7 @@
|
||||
#include "dungeon_map_access.h"
|
||||
#include "dungeon_misc.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "move_effects_target.h"
|
||||
#include "move_util.h"
|
||||
#include "moves.h"
|
||||
#include "number_util.h"
|
||||
@@ -35,15 +38,8 @@
|
||||
|
||||
extern void sub_807F43C(Entity *, Entity *);
|
||||
extern void HandleOneRoomOrb(Entity *, Entity *);
|
||||
extern u32 GetRandomFloorItem(u32);
|
||||
extern void sub_80464C8(Entity *, DungeonPos *, Item *);
|
||||
extern void sub_806F370(Entity *r0, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
|
||||
extern void sub_807FC3C(DungeonPos *, u32, u32);
|
||||
extern void sub_8042A64(DungeonPos *);
|
||||
extern void ShowWholeRevealedDungeonMap(void);
|
||||
extern void sub_80498A8(s32, s32);
|
||||
extern void sub_8042A54(DungeonPos *);
|
||||
extern void sub_8049BB0(s32, s32);
|
||||
extern void HandleDroughtOrbAction(Entity *);
|
||||
extern void HandleLuminousOrbAction(Entity *pokemon);
|
||||
extern void HandleTrawlOrbAction(Entity *, Entity *);
|
||||
@@ -52,25 +48,8 @@ extern s16 sub_803D970(u32);
|
||||
extern bool8 sub_806AA0C(s32, u32);
|
||||
extern void sub_806BB6C(Entity *, s32);
|
||||
extern void HandleSwitcherOrb(Entity *, Entity *, u32);
|
||||
extern void sub_806A6E8(Entity *);
|
||||
|
||||
// TODO include dungeon_ai.h when SqueezedStatusTarget is figured out
|
||||
extern void LowerDefenseStageTarget(Entity *, Entity *, s32, s32, u8, bool8);
|
||||
extern void RaiseAttackStageTarget(Entity *, Entity *, s32, s32);
|
||||
extern void PoisonedStatusTarget(Entity *, Entity *, bool8);
|
||||
extern void RaiseDefenseStageTarget(Entity *, Entity *, s32, s32);
|
||||
extern void InfatuateStatusTarget(Entity *, Entity *, bool8);
|
||||
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.. (move_effects_target.h)
|
||||
extern void SqueezedStatusTarget(Entity *, Entity *, s32, bool32);
|
||||
extern void SleepStatusTarget(Entity *, Entity *, s32, s32);
|
||||
|
||||
extern void DealDamageToEntity(Entity *, s32, u32, u32);
|
||||
extern bool8 MoveRequiresCharging(Entity* pokemon,u16 moveID);
|
||||
extern void sub_80783C4(Entity *, Entity *, bool8);
|
||||
|
||||
extern u32 gUnknown_8106A50;
|
||||
extern u32 gUnknown_8106A4C;
|
||||
|
||||
@@ -123,7 +123,7 @@ void CreateRescueTitle(unkStruct_802C39C *param_1)
|
||||
else
|
||||
uVar1 = sub_803C1D0(¶m_1->unk8->dungeon, param_1->mail->missionType);
|
||||
|
||||
PrintStringOnWindow(180, param_1->y, sub_803C1F0(uVar1), param_1->unk0[0], 0);
|
||||
PrintStringOnWindow(180, param_1->y, GetMissionRankText(uVar1), param_1->unk0[0], 0);
|
||||
}
|
||||
|
||||
void CreateRescueDescription(unkStruct_802C39C *param_1)
|
||||
@@ -329,7 +329,7 @@ void CreateRescueDescription(unkStruct_802C39C *param_1)
|
||||
|
||||
y += 12;
|
||||
PrintStringOnWindow(10, y, gDifficultyText, param_1->unk0[0], 0);
|
||||
PrintStringOnWindow(68, y, sub_803C1F0(uVar3), param_1->unk0[0], 0);
|
||||
PrintStringOnWindow(68, y, GetMissionRankText(uVar3), param_1->unk0[0], 0);
|
||||
|
||||
y += 12;
|
||||
PrintStringOnWindow(10, y, gRewardText, param_1->unk0[0], 0);
|
||||
|
||||
@@ -1374,7 +1374,7 @@ void UpdateThankYouMailText(void)
|
||||
monName = GetMonSpecies(MONSTER_PELIPPER);
|
||||
strcpy(sUnknown_203B2C4->unk53C.clientName,monName); // 0x53C
|
||||
sUnknown_203B2C4->unk53C.clientSpecies = MONSTER_PELIPPER; // 0x550
|
||||
sUnknown_203B2C4->unk53C.unk16 = 2; // 0x552
|
||||
sUnknown_203B2C4->unk53C.rewardType = 2; // 0x552
|
||||
sUnknown_203B2C4->unk53C.moneyReward = 0; // 0x554
|
||||
mailIndex = GetMailIndex(6,sUnknown_203B2C4->unk430);
|
||||
mail = GetMailatIndex(mailIndex);
|
||||
|
||||
66
src/titlemenu_sbin.c
Normal file
66
src/titlemenu_sbin.c
Normal file
@@ -0,0 +1,66 @@
|
||||
#include "global.h"
|
||||
#include "file_system.h"
|
||||
|
||||
#define TITLE_MENU_FILES_COUNT 22
|
||||
|
||||
extern const File gTitleMenuFiles[TITLE_MENU_FILES_COUNT];
|
||||
|
||||
const FileArchive gTitleMenuFileArchive = {
|
||||
.magic = "pksdir0",
|
||||
.count = TITLE_MENU_FILES_COUNT,
|
||||
.entries = gTitleMenuFiles,
|
||||
};
|
||||
|
||||
UNUSED static const char sPksDir2[] = "pksdir0";
|
||||
|
||||
extern const u8 gUnknown_83801A0[];
|
||||
extern const u8 gUnknown_8380AB8[];
|
||||
extern const u8 gUnknown_8382884[];
|
||||
extern const u8 gUnknown_8382C04[];
|
||||
extern const u8 gUnknown_8384914[];
|
||||
extern const u8 gUnknown_8384C9C[];
|
||||
extern const u8 gUnknown_8388AD0[];
|
||||
extern const u8 gUnknown_8388E50[];
|
||||
extern const u8 gUnknown_838CF98[];
|
||||
extern const u8 gUnknown_838D318[];
|
||||
extern const u8 gUnknown_8391C48[];
|
||||
extern const u8 gUnknown_8391FC8[];
|
||||
extern const u8 gUnknown_83923A0[];
|
||||
extern const u8 gUnknown_8392638[];
|
||||
extern const u8 gUnknown_8392B88[];
|
||||
extern const u8 gUnknown_8398A9C[];
|
||||
extern const u8 gUnknown_8399F84[];
|
||||
extern const u8 gUnknown_839A304[];
|
||||
extern const u8 gUnknown_839B584[];
|
||||
extern const u8 gUnknown_839B814[];
|
||||
extern const u8 gUnknown_83A1574[];
|
||||
extern const u8 gUnknown_83A2AF4[];
|
||||
|
||||
|
||||
const File gTitleMenuFiles[TITLE_MENU_FILES_COUNT] = {
|
||||
[0] = { "clmkpat", gUnknown_83801A0},
|
||||
[1] = { "commun0", gUnknown_8380AB8},
|
||||
[2] = { "commun0p", gUnknown_8382884},
|
||||
[3] = { "subdef", gUnknown_8382C04},
|
||||
[4] = { "subdefp", gUnknown_8384914},
|
||||
[5] = { "titlen0", gUnknown_8384C9C},
|
||||
[6] = { "titlen0p", gUnknown_8388AD0},
|
||||
[7] = { "titlen1", gUnknown_8388E50},
|
||||
[8] = { "titlen1p", gUnknown_838CF98},
|
||||
[9] = { "titlen2", gUnknown_838D318},
|
||||
[10] = { "titlen2p", gUnknown_8391C48},
|
||||
[11] = { "tmrkpat", gUnknown_8391FC8},
|
||||
[12] = { "wlicpat", gUnknown_83923A0},
|
||||
[13] = { "wmapcani", gUnknown_8392638},
|
||||
[14] = { "wmapfont", gUnknown_8392B88},
|
||||
[15] = { "wmapmcc", gUnknown_8398A9C},
|
||||
[16] = { "wmappal", gUnknown_8399F84},
|
||||
[17] = { "wmapspr", gUnknown_839A304},
|
||||
[18] = { "wmp2cani", gUnknown_839B584},
|
||||
[19] = { "wmp2font", gUnknown_839B814},
|
||||
[20] = { "wmp2mcc", gUnknown_83A1574},
|
||||
[21] = { "wmp2pal", gUnknown_83A2AF4},
|
||||
};
|
||||
|
||||
UNUSED ALIGNED(4) static const char sPksDir3[] = "pksdir0";
|
||||
|
||||
@@ -29,11 +29,8 @@
|
||||
|
||||
extern u32 gDungeonFramesCounter;
|
||||
|
||||
void sub_804EB30();
|
||||
bool8 ExposeTrap(s32 x, s32 y);
|
||||
void ShowWholeRevealedDungeonMap();
|
||||
void sub_8049ED4();
|
||||
void sub_806A5B8(Entity *);
|
||||
u8 sub_8045888(Entity *);
|
||||
void sub_807EC28(u32);
|
||||
u8 sub_8044B28(void);
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
#include "sprite.h"
|
||||
#include "dungeon_strings.h"
|
||||
|
||||
extern void TriggerWeatherAbilities(void);
|
||||
extern void sub_804178C(u32);
|
||||
extern void sub_803E874(bool8 r10, s32 r9);
|
||||
extern s32 CalculateStatusTurns(Entity *target, const s16 *turnRange, bool8 factorCurerSkills);
|
||||
|
||||
@@ -165,7 +165,7 @@ void sub_802B3E0(void)
|
||||
monName = GetMonSpecies(MONSTER_PELIPPER);
|
||||
strcpy(sUnknown_203B2C8->unk114.clientName, monName);
|
||||
sUnknown_203B2C8->unk114.clientSpecies = MONSTER_PELIPPER;
|
||||
sUnknown_203B2C8->unk114.unk16 = 2;
|
||||
sUnknown_203B2C8->unk114.rewardType = 2;
|
||||
sUnknown_203B2C8->unk114.moneyReward = 0;
|
||||
IncrementFriendRescueSuccesses();
|
||||
mail = GetMailatIndex(sUnknown_203B2C8->unk1);
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <cstdlib>
|
||||
#include <cstdio>
|
||||
#include <limits>
|
||||
#include <cstdint>
|
||||
|
||||
namespace json11 {
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <cstdlib>
|
||||
#include <cstdio>
|
||||
#include <limits>
|
||||
#include <cstdint>
|
||||
|
||||
namespace json11 {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user