mirror of
https://github.com/pret/pokeheartgold.git
synced 2025-02-25 23:57:13 +00:00
Merge remote-tracking branch 'origin/master' into pikalax_work
This commit is contained in:
commit
1cc595698b
@ -1,105 +0,0 @@
|
||||
#include "constants/species.h"
|
||||
#include "constants/maps.h"
|
||||
#include "constants/sprites.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/moves.h"
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.public NNS_G3dGlb
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start CheckUseEscapeRopeInAlphChamber
|
||||
CheckUseEscapeRopeInAlphChamber: ; 0x0206BD10
|
||||
push {r3, lr}
|
||||
ldr r0, [r0, #0xc]
|
||||
bl Save_FlyPoints_get
|
||||
bl FlyPoints_GetPosition
|
||||
mov r1, #MAP_D24R0202>>2
|
||||
ldr r2, [r0]
|
||||
lsl r1, r1, #2
|
||||
cmp r2, r1
|
||||
beq _0206BD2A
|
||||
mov r0, #0
|
||||
pop {r3, pc}
|
||||
_0206BD2A:
|
||||
ldr r1, [r0, #8]
|
||||
cmp r1, #6
|
||||
bne _0206BD3C
|
||||
ldr r1, [r0, #0xc]
|
||||
cmp r1, #3
|
||||
bne _0206BD3C
|
||||
ldr r0, [r0, #0x10]
|
||||
cmp r0, #0
|
||||
beq _0206BD40
|
||||
_0206BD3C:
|
||||
mov r0, #0
|
||||
pop {r3, pc}
|
||||
_0206BD40:
|
||||
mov r0, #1
|
||||
pop {r3, pc}
|
||||
thumb_func_end CheckUseEscapeRopeInAlphChamber
|
||||
|
||||
thumb_func_start CheckUseFlashInAlphChamber
|
||||
CheckUseFlashInAlphChamber: ; 0x0206BD44
|
||||
push {r3, lr}
|
||||
ldr r0, [r0, #0xc]
|
||||
bl Save_FlyPoints_get
|
||||
bl FlyPoints_GetPosition
|
||||
ldr r2, [r0]
|
||||
ldr r1, _0206BD78 ; =MAP_D24R0204
|
||||
cmp r2, r1
|
||||
beq _0206BD5C
|
||||
mov r0, #0
|
||||
pop {r3, pc}
|
||||
_0206BD5C:
|
||||
ldr r1, [r0, #8]
|
||||
cmp r1, #6
|
||||
bne _0206BD6E
|
||||
ldr r1, [r0, #0xc]
|
||||
cmp r1, #3
|
||||
bne _0206BD6E
|
||||
ldr r0, [r0, #0x10]
|
||||
cmp r0, #0
|
||||
beq _0206BD72
|
||||
_0206BD6E:
|
||||
mov r0, #0
|
||||
pop {r3, pc}
|
||||
_0206BD72:
|
||||
mov r0, #1
|
||||
pop {r3, pc}
|
||||
nop
|
||||
_0206BD78: .word MAP_D24R0204
|
||||
thumb_func_end CheckUseFlashInAlphChamber
|
||||
|
||||
thumb_func_start CheckUseWaterStoneInAlphChamber
|
||||
CheckUseWaterStoneInAlphChamber: ; 0x0206BD7C
|
||||
push {r3, lr}
|
||||
ldr r0, [r0, #0xc]
|
||||
bl Save_FlyPoints_get
|
||||
bl FlyPoints_GetPosition
|
||||
mov r1, #MAP_D24R0206>>2
|
||||
ldr r2, [r0]
|
||||
lsl r1, r1, #2
|
||||
cmp r2, r1
|
||||
beq _0206BD96
|
||||
mov r0, #0
|
||||
pop {r3, pc}
|
||||
_0206BD96:
|
||||
ldr r1, [r0, #8]
|
||||
cmp r1, #6
|
||||
bne _0206BDA8
|
||||
ldr r1, [r0, #0xc]
|
||||
cmp r1, #3
|
||||
bne _0206BDA8
|
||||
ldr r0, [r0, #0x10]
|
||||
cmp r0, #0
|
||||
beq _0206BDAC
|
||||
_0206BDA8:
|
||||
mov r0, #0
|
||||
pop {r3, pc}
|
||||
_0206BDAC:
|
||||
mov r0, #1
|
||||
pop {r3, pc}
|
||||
thumb_func_end CheckUseWaterStoneInAlphChamber
|
@ -3222,7 +3222,7 @@
|
||||
.short 566
|
||||
.endm
|
||||
|
||||
.macro scrcmd_567 arg0, arg1, arg2
|
||||
.macro getdpplprizeitemidandcost arg0, arg1, arg2
|
||||
.short 567
|
||||
.short \arg0
|
||||
.short \arg1
|
||||
|
@ -4008,17 +4008,17 @@ ov39_02228E54: ; 0x02228E54
|
||||
add r0, r6, #0
|
||||
bl sub_0202C08C
|
||||
add r0, r4, #0
|
||||
bl sub_02028DD8
|
||||
bl Sav2_SysInfo_GetField4C
|
||||
cmp r0, #0
|
||||
bne _02228E8E
|
||||
add r0, r6, #0
|
||||
bl sub_0203A040
|
||||
add r1, r0, #0
|
||||
add r0, r4, #0
|
||||
bl sub_02028DDC
|
||||
bl Sav2_SysInfo_SetField4C
|
||||
_02228E8E:
|
||||
add r0, r4, #0
|
||||
bl sub_02028DD8
|
||||
bl Sav2_SysInfo_GetField4C
|
||||
mov r0, #9
|
||||
str r0, [r5, #8]
|
||||
ldr r0, [r5]
|
||||
|
@ -35169,7 +35169,7 @@ ov40_0223D544: ; 0x0223D544
|
||||
lsl r0, r0, #4
|
||||
ldr r0, [r4, r0]
|
||||
bl Sav2_SysInfo_get
|
||||
bl sub_02028DD8
|
||||
bl Sav2_SysInfo_GetField4C
|
||||
str r0, [sp]
|
||||
mov r0, #0x6d
|
||||
str r0, [sp, #4]
|
||||
|
@ -26446,17 +26446,17 @@ ov70_02244A04: ; 0x02244A04
|
||||
add r4, r0, #0
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, #4]
|
||||
bl sub_02028DD8
|
||||
bl Sav2_SysInfo_GetField4C
|
||||
cmp r0, #0
|
||||
bne _02244A28
|
||||
ldr r1, [r5]
|
||||
ldr r0, [r1, #4]
|
||||
ldr r1, [r1, #0x34]
|
||||
bl sub_02028DDC
|
||||
bl Sav2_SysInfo_SetField4C
|
||||
_02244A28:
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, #4]
|
||||
bl sub_02028DD8
|
||||
bl Sav2_SysInfo_GetField4C
|
||||
add r6, r0, #0
|
||||
add r0, r4, #0
|
||||
bl DWC_CreateFriendKey
|
||||
|
@ -3296,17 +3296,17 @@ ov72_02239370: ; 0x02239370
|
||||
add r5, r0, #0
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, #8]
|
||||
bl sub_02028DD8
|
||||
bl Sav2_SysInfo_GetField4C
|
||||
cmp r0, #0
|
||||
bne _0223938A
|
||||
ldr r1, [r5]
|
||||
ldr r0, [r1, #8]
|
||||
ldr r1, [r1, #0x1c]
|
||||
bl sub_02028DDC
|
||||
bl Sav2_SysInfo_SetField4C
|
||||
_0223938A:
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, #8]
|
||||
bl sub_02028DD8
|
||||
bl Sav2_SysInfo_GetField4C
|
||||
add r4, r0, #0
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, #0x14]
|
||||
|
@ -6755,17 +6755,17 @@ ov73_021E8E7C: ; 0x021E8E7C
|
||||
add r5, r0, #0
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, #8]
|
||||
bl sub_02028DD8
|
||||
bl Sav2_SysInfo_GetField4C
|
||||
cmp r0, #0
|
||||
bne _021E8E96
|
||||
ldr r1, [r5]
|
||||
ldr r0, [r1, #8]
|
||||
ldr r1, [r1, #0x1c]
|
||||
bl sub_02028DDC
|
||||
bl Sav2_SysInfo_SetField4C
|
||||
_021E8E96:
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, #8]
|
||||
bl sub_02028DD8
|
||||
bl Sav2_SysInfo_GetField4C
|
||||
add r4, r0, #0
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, #0x14]
|
||||
|
@ -2126,7 +2126,7 @@ ov74_022280B4: ; 0x022280B4
|
||||
_022280D4:
|
||||
ldr r0, [r5, #4]
|
||||
bl Sav2_SysInfo_get
|
||||
bl sub_02028DC8
|
||||
bl Sav2_SysInfo_GetField48
|
||||
cmp r0, #1
|
||||
bne _022280E6
|
||||
mov r0, #1
|
||||
|
@ -4065,17 +4065,17 @@ ov75_02248994: ; 0x02248994
|
||||
bl sub_0202C08C
|
||||
add r7, r0, #0
|
||||
add r0, r4, #0
|
||||
bl sub_02028DD8
|
||||
bl Sav2_SysInfo_GetField4C
|
||||
cmp r0, #0
|
||||
bne _022489CC
|
||||
add r0, r6, #0
|
||||
bl sub_0203A040
|
||||
add r1, r0, #0
|
||||
add r0, r4, #0
|
||||
bl sub_02028DDC
|
||||
bl Sav2_SysInfo_SetField4C
|
||||
_022489CC:
|
||||
add r0, r4, #0
|
||||
bl sub_02028DD8
|
||||
bl Sav2_SysInfo_GetField4C
|
||||
add r4, r0, #0
|
||||
add r0, r7, #0
|
||||
bl DWC_CreateFriendKey
|
||||
|
@ -1,237 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start Sav2_SysInfo_sizeof
|
||||
Sav2_SysInfo_sizeof: ; 0x02028D14
|
||||
mov r0, #0x5c
|
||||
bx lr
|
||||
thumb_func_end Sav2_SysInfo_sizeof
|
||||
|
||||
thumb_func_start Sav2_SysInfo_init
|
||||
Sav2_SysInfo_init: ; 0x02028D18
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
mov r0, #0
|
||||
add r1, r4, #0
|
||||
mov r2, #0x5c
|
||||
bl MIi_CpuClearFast
|
||||
add r4, #0x10
|
||||
add r0, r4, #0
|
||||
bl Sav2_SysInfo_RTC_init
|
||||
pop {r4, pc}
|
||||
thumb_func_end Sav2_SysInfo_init
|
||||
|
||||
thumb_func_start Sav2_SysInfo_get
|
||||
Sav2_SysInfo_get: ; 0x02028D30
|
||||
ldr r3, _02028D38 ; =SavArray_get
|
||||
mov r1, #0
|
||||
bx r3
|
||||
nop
|
||||
_02028D38: .word SavArray_get
|
||||
thumb_func_end Sav2_SysInfo_get
|
||||
|
||||
thumb_func_start Sav2_SysInfo_RTC_get
|
||||
Sav2_SysInfo_RTC_get: ; 0x02028D3C
|
||||
push {r3, lr}
|
||||
bl Sav2_SysInfo_get
|
||||
add r0, #0x10
|
||||
pop {r3, pc}
|
||||
.balign 4, 0
|
||||
thumb_func_end Sav2_SysInfo_RTC_get
|
||||
|
||||
thumb_func_start Sav2_SysInfo_InitFromSystem
|
||||
Sav2_SysInfo_InitFromSystem: ; 0x02028D48
|
||||
push {r3, r4, lr}
|
||||
sub sp, #0x54
|
||||
add r4, r0, #0
|
||||
bl OS_GetOwnerRtcOffset
|
||||
str r0, [r4]
|
||||
add r0, r4, #0
|
||||
add r0, #8
|
||||
str r1, [r4, #4]
|
||||
bl OS_GetMacAddress
|
||||
add r0, sp, #0
|
||||
bl OS_GetOwnerInfo
|
||||
add r0, sp, #0
|
||||
ldrb r1, [r0, #2]
|
||||
strb r1, [r4, #0xe]
|
||||
ldrb r0, [r0, #3]
|
||||
strb r0, [r4, #0xf]
|
||||
add sp, #0x54
|
||||
pop {r3, r4, pc}
|
||||
.balign 4, 0
|
||||
thumb_func_end Sav2_SysInfo_InitFromSystem
|
||||
|
||||
thumb_func_start Sav2_SysInfo_MacAddressIsMine
|
||||
Sav2_SysInfo_MacAddressIsMine: ; 0x02028D74
|
||||
push {r4, lr}
|
||||
sub sp, #8
|
||||
add r4, r0, #0
|
||||
add r0, sp, #0
|
||||
bl OS_GetMacAddress
|
||||
mov r2, #0
|
||||
add r3, sp, #0
|
||||
_02028D84:
|
||||
add r0, r4, r2
|
||||
ldrb r1, [r3]
|
||||
ldrb r0, [r0, #8]
|
||||
cmp r1, r0
|
||||
beq _02028D94
|
||||
add sp, #8
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
_02028D94:
|
||||
add r2, r2, #1
|
||||
add r3, r3, #1
|
||||
cmp r2, #6
|
||||
blt _02028D84
|
||||
mov r0, #1
|
||||
add sp, #8
|
||||
pop {r4, pc}
|
||||
.balign 4, 0
|
||||
thumb_func_end Sav2_SysInfo_MacAddressIsMine
|
||||
|
||||
thumb_func_start Sav2_SysInfo_RTCOffsetIsMine
|
||||
Sav2_SysInfo_RTCOffsetIsMine: ; 0x02028DA4
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
bl OS_GetOwnerRtcOffset
|
||||
ldr r3, [r4]
|
||||
ldr r2, [r4, #4]
|
||||
eor r0, r3
|
||||
eor r1, r2
|
||||
orr r0, r1
|
||||
bne _02028DBC
|
||||
mov r0, #1
|
||||
pop {r4, pc}
|
||||
_02028DBC:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
thumb_func_end Sav2_SysInfo_RTCOffsetIsMine
|
||||
|
||||
thumb_func_start Sav2_SysInfo_GetBirthMonth
|
||||
Sav2_SysInfo_GetBirthMonth: ; 0x02028DC0
|
||||
ldrb r0, [r0, #0xe]
|
||||
bx lr
|
||||
thumb_func_end Sav2_SysInfo_GetBirthMonth
|
||||
|
||||
thumb_func_start Sav2_SysInfo_GetBirthDay
|
||||
Sav2_SysInfo_GetBirthDay: ; 0x02028DC4
|
||||
ldrb r0, [r0, #0xf]
|
||||
bx lr
|
||||
thumb_func_end Sav2_SysInfo_GetBirthDay
|
||||
|
||||
thumb_func_start sub_02028DC8
|
||||
sub_02028DC8: ; 0x02028DC8
|
||||
add r0, #0x48
|
||||
ldrb r0, [r0]
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end sub_02028DC8
|
||||
|
||||
thumb_func_start sub_02028DD0
|
||||
sub_02028DD0: ; 0x02028DD0
|
||||
add r0, #0x48
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end sub_02028DD0
|
||||
|
||||
thumb_func_start sub_02028DD8
|
||||
sub_02028DD8: ; 0x02028DD8
|
||||
ldr r0, [r0, #0x4c]
|
||||
bx lr
|
||||
thumb_func_end sub_02028DD8
|
||||
|
||||
thumb_func_start sub_02028DDC
|
||||
sub_02028DDC: ; 0x02028DDC
|
||||
ldr r2, [r0, #0x4c]
|
||||
cmp r2, #0
|
||||
bne _02028DE4
|
||||
str r1, [r0, #0x4c]
|
||||
_02028DE4:
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end sub_02028DDC
|
||||
|
||||
thumb_func_start Sav2_SysInfo_RTC_init
|
||||
Sav2_SysInfo_RTC_init: ; 0x02028DE8
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
mov r0, #1
|
||||
add r1, r4, #0
|
||||
str r0, [r4]
|
||||
add r0, r4, #4
|
||||
add r1, #0x14
|
||||
bl GF_RTC_CopyDateTime
|
||||
add r0, r4, #4
|
||||
bl RTC_ConvertDateToDay
|
||||
add r1, r4, #0
|
||||
str r0, [r4, #0x20]
|
||||
add r0, r4, #4
|
||||
add r1, #0x14
|
||||
bl RTC_ConvertDateTimeToSecond
|
||||
str r0, [r4, #0x24]
|
||||
str r1, [r4, #0x28]
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x2c]
|
||||
str r0, [r4, #0x30]
|
||||
str r0, [r4, #0x34]
|
||||
pop {r4, pc}
|
||||
.balign 4, 0
|
||||
thumb_func_end Sav2_SysInfo_RTC_init
|
||||
|
||||
thumb_func_start sub_02028E1C
|
||||
sub_02028E1C: ; 0x02028E1C
|
||||
ldr r0, [r0, #0x34]
|
||||
cmp r0, #0
|
||||
beq _02028E26
|
||||
mov r0, #1
|
||||
bx lr
|
||||
_02028E26:
|
||||
mov r0, #0
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end sub_02028E1C
|
||||
|
||||
thumb_func_start sub_02028E2C
|
||||
sub_02028E2C: ; 0x02028E2C
|
||||
mov r2, #0x5a
|
||||
ldr r3, [r0, #0x34]
|
||||
lsl r2, r2, #4
|
||||
cmp r3, r2
|
||||
bls _02028E38
|
||||
str r2, [r0, #0x34]
|
||||
_02028E38:
|
||||
ldr r2, [r0, #0x34]
|
||||
cmp r2, r1
|
||||
bhs _02028E44
|
||||
mov r1, #0
|
||||
str r1, [r0, #0x34]
|
||||
bx lr
|
||||
_02028E44:
|
||||
sub r1, r2, r1
|
||||
str r1, [r0, #0x34]
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end sub_02028E2C
|
||||
|
||||
thumb_func_start sub_02028E4C
|
||||
sub_02028E4C: ; 0x02028E4C
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
mov r0, #0x5a
|
||||
lsl r0, r0, #4
|
||||
add r1, r4, #0
|
||||
str r0, [r4, #0x34]
|
||||
add r0, r4, #4
|
||||
add r1, #0x14
|
||||
bl GF_RTC_CopyDateTime
|
||||
add r0, r4, #4
|
||||
bl RTC_ConvertDateToDay
|
||||
str r0, [r4, #0x20]
|
||||
pop {r4, pc}
|
||||
.balign 4, 0
|
||||
thumb_func_end sub_02028E4C
|
@ -600,7 +600,7 @@ gScriptCmdTable:
|
||||
.word ScrCmd_564 ; 564
|
||||
.word ScrCmd_565 ; 565
|
||||
.word ScrCmd_566 ; 566
|
||||
.word ScrCmd_567 ; 567
|
||||
.word ScrCmd_GetDPPlPrizeItemIdAndCost ; 567
|
||||
.word ScrCmd_568 ; 568
|
||||
.word ScrCmd_569 ; 569
|
||||
.word ScrCmd_CheckCoinsVar ; 570
|
||||
@ -11562,7 +11562,7 @@ ScrCmd_573: ; 0x02046290
|
||||
ldr r0, [r0, #0xc]
|
||||
bl Sav2_SysInfo_get
|
||||
mov r1, #1
|
||||
bl sub_02028DD0
|
||||
bl Sav2_SysInfo_SetField48
|
||||
mov r0, #0
|
||||
pop {r3, pc}
|
||||
.balign 4, 0
|
||||
|
@ -1,66 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.rodata
|
||||
|
||||
_020FC1D8:
|
||||
.short 0x00FB, 0x03E8
|
||||
.short 0x0109, 0x03E8
|
||||
.short 0x0114, 0x03E8
|
||||
.short 0x0115, 0x03E8
|
||||
.short 0x01A1, 0x07D0
|
||||
.short 0x0181, 0x07D0
|
||||
.short 0x0192, 0x0FA0
|
||||
.short 0x0167, 0x0FA0
|
||||
.short 0x0173, 0x1770
|
||||
.short 0x01A0, 0x1770
|
||||
.short 0x0151, 0x1770
|
||||
.short 0x0162, 0x1F40
|
||||
.short 0x015C, 0x1F40
|
||||
.short 0x016A, 0x2710
|
||||
.short 0x015F, 0x2710
|
||||
.short 0x0154, 0x2710
|
||||
.short 0x0164, 0x2710
|
||||
.short 0x0191, 0x3A98
|
||||
.short 0x018B, 0x4E20
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start ScrCmd_567
|
||||
ScrCmd_567: ; 0x0204E5BC
|
||||
push {r4, r5, r6, lr}
|
||||
add r5, r0, #0
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0
|
||||
add r0, r5, #0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0]
|
||||
bl VarGet
|
||||
add r4, r0, #0
|
||||
add r0, r5, #0
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0
|
||||
add r0, r5, #0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0]
|
||||
bl GetVarPointer
|
||||
add r6, r0, #0
|
||||
add r0, r5, #0
|
||||
bl ScriptReadHalfword
|
||||
add r5, #0x80
|
||||
add r1, r0, #0
|
||||
ldr r0, [r5]
|
||||
bl GetVarPointer
|
||||
ldr r1, _0204E608 ; =_020FC1D8
|
||||
lsl r2, r4, #2
|
||||
ldrh r1, [r1, r2]
|
||||
strh r1, [r6]
|
||||
ldr r1, _0204E60C ; =_020FC1D8 + 2
|
||||
ldrh r1, [r1, r2]
|
||||
strh r1, [r0]
|
||||
mov r0, #0
|
||||
pop {r4, r5, r6, pc}
|
||||
.balign 4, 0
|
||||
_0204E608: .word _020FC1D8
|
||||
_0204E60C: .word _020FC1D8 + 2
|
||||
thumb_func_end ScrCmd_567
|
1370
asm/scrcmd_4.s
1370
asm/scrcmd_4.s
File diff suppressed because it is too large
Load Diff
@ -108,7 +108,7 @@ _020554D0:
|
||||
ble _02055504
|
||||
add r0, r5, #0
|
||||
add r1, r7, #0
|
||||
bl sub_02028E2C
|
||||
bl Sav2_SysInfo_RTC_SubField34
|
||||
ldr r0, [sp]
|
||||
add r1, r7, #0
|
||||
add r2, r6, #0
|
||||
|
12
global.inc
12
global.inc
@ -2247,7 +2247,7 @@
|
||||
.public ScrCmd_564
|
||||
.public ScrCmd_565
|
||||
.public ScrCmd_566
|
||||
.public ScrCmd_567
|
||||
.public ScrCmd_GetDPPlPrizeItemIdAndCost
|
||||
.public ScrCmd_568
|
||||
.public ScrCmd_569
|
||||
.public ScrCmd_CheckCoinsVar
|
||||
@ -27223,12 +27223,12 @@
|
||||
.public sub_020284A4
|
||||
.public SaveSubstruct_AssertCRC
|
||||
.public SaveSubstruct_UpdateCRC
|
||||
.public sub_02028DC8
|
||||
.public sub_02028DD0
|
||||
.public sub_02028DD8
|
||||
.public sub_02028DDC
|
||||
.public Sav2_SysInfo_GetField48
|
||||
.public Sav2_SysInfo_SetField48
|
||||
.public Sav2_SysInfo_GetField4C
|
||||
.public Sav2_SysInfo_SetField4C
|
||||
.public sub_02028E1C
|
||||
.public sub_02028E2C
|
||||
.public Sav2_SysInfo_RTC_SubField34
|
||||
.public sub_02028E4C
|
||||
.public sub_02029084
|
||||
.public sub_020290B4
|
||||
|
46
include/sav_system_info.h
Normal file
46
include/sav_system_info.h
Normal file
@ -0,0 +1,46 @@
|
||||
#ifndef POKEHEARTGOLD_SAV_SYSTEM_INFO_H
|
||||
#define POKEHEARTGOLD_SAV_SYSTEM_INFO_H
|
||||
|
||||
#include <nitro/rtc/ARM9/api.h>
|
||||
#include "save.h"
|
||||
|
||||
typedef struct SYSINFO_RTC {
|
||||
BOOL initialized;
|
||||
RTCDate date;
|
||||
RTCTime time;
|
||||
s32 days_since_nitro_epoch;
|
||||
s64 seconds_since_nitro_epoch;
|
||||
s64 unk2C;
|
||||
u32 unk34;
|
||||
} SYSINFO_RTC;
|
||||
|
||||
typedef struct SYSINFO {
|
||||
s64 rtc_offset;
|
||||
u8 mac_address[6];
|
||||
u8 birth_month;
|
||||
u8 birth_day;
|
||||
SYSINFO_RTC rtc_info;
|
||||
u8 unk48;
|
||||
void* unk4C;
|
||||
u8 unk50[0xC];
|
||||
} SYSINFO;
|
||||
|
||||
u32 Sav2_SysInfo_sizeof(void);
|
||||
void Sav2_SysInfo_init(SYSINFO* sys_info);
|
||||
SYSINFO* Sav2_SysInfo_get(SAVEDATA* savedata);
|
||||
SYSINFO_RTC* Sav2_SysInfo_RTC_get(SAVEDATA* savedata);
|
||||
void Sav2_SysInfo_InitFromSystem(SYSINFO* sys_info);
|
||||
BOOL Sav2_SysInfo_MacAddressIsMine(SYSINFO* sys_info);
|
||||
BOOL Sav2_SysInfo_RTCOffsetIsMine(SYSINFO* sys_info);
|
||||
u8 Sav2_SysInfo_GetBirthMonth(SYSINFO* sys_info);
|
||||
u8 Sav2_SysInfo_GetBirthDay(SYSINFO* sys_info);
|
||||
u8 Sav2_SysInfo_GetField48(SYSINFO* sys_info);
|
||||
void Sav2_SysInfo_SetField48(SYSINFO* sys_info, u8);
|
||||
void* Sav2_SysInfo_GetField4C(SYSINFO* sys_info);
|
||||
void Sav2_SysInfo_SetField4C(SYSINFO* sys_info, void*);
|
||||
void Sav2_SysInfo_RTC_init(SYSINFO_RTC* rtc_info);
|
||||
BOOL sub_02028E1C(SYSINFO_RTC* rtc_info);
|
||||
void Sav2_SysInfo_RTC_SubField34(SYSINFO_RTC* rtc_info, u32);
|
||||
void sub_02028E4C(SYSINFO_RTC* rtc_info);
|
||||
|
||||
#endif
|
@ -603,7 +603,7 @@ BOOL ScrCmd_563(SCRIPTCONTEXT* ctx);
|
||||
BOOL ScrCmd_564(SCRIPTCONTEXT* ctx);
|
||||
BOOL ScrCmd_565(SCRIPTCONTEXT* ctx);
|
||||
BOOL ScrCmd_566(SCRIPTCONTEXT* ctx);
|
||||
BOOL ScrCmd_567(SCRIPTCONTEXT* ctx);
|
||||
BOOL ScrCmd_GetDPPlPrizeItemIdAndCost(SCRIPTCONTEXT* ctx);
|
||||
BOOL ScrCmd_568(SCRIPTCONTEXT* ctx);
|
||||
BOOL ScrCmd_569(SCRIPTCONTEXT* ctx);
|
||||
BOOL ScrCmd_CheckCoinsVar(SCRIPTCONTEXT* ctx);
|
||||
|
8
main.lsf
8
main.lsf
@ -89,7 +89,7 @@ Static main
|
||||
Object asm/unk_02027010.o
|
||||
Object src/save_arrays.o
|
||||
Object src/save.o
|
||||
Object asm/sav_system_info.o
|
||||
Object src/sav_system_info.o
|
||||
Object src/player_data.o
|
||||
Object asm/unk_020290B4.o
|
||||
Object src/daycare.o
|
||||
@ -159,7 +159,7 @@ Static main
|
||||
Object src/scrcmd_c.o
|
||||
Object asm/scrcmd.o
|
||||
Object src/scrcmd_mart.o
|
||||
Object asm/scrcmd_4.o
|
||||
Object src/scrcmd_strbuf.o
|
||||
Object asm/scrcmd_5.o
|
||||
Object asm/scrcmd_6.o
|
||||
Object asm/scrcmd_7.o
|
||||
@ -171,7 +171,7 @@ Static main
|
||||
Object src/scrcmd_money.o
|
||||
Object src/scrcmd_daycare.o
|
||||
Object asm/scrcmd_15.o
|
||||
Object asm/scrcmd_16.o
|
||||
Object src/scrcmd_dppl_prizes.o
|
||||
Object asm/scrcmd_17.o
|
||||
Object src/scrcmd_items.o
|
||||
Object asm/scrcmd_19.o
|
||||
@ -234,7 +234,7 @@ Static main
|
||||
Object asm/unk_0206A360.o
|
||||
Object asm/field_take_photo.o
|
||||
Object asm/unk_0206B910.o
|
||||
Object asm/field_alph_checks.o
|
||||
Object src/field_alph_checks.o
|
||||
Object asm/get_egg.o
|
||||
Object asm/unk_0206D494.o
|
||||
Object src/pokemon.o
|
||||
|
@ -567,7 +567,7 @@ extern BOOL ScrCmd_563(SCRIPTCONTEXT *ctx);
|
||||
extern BOOL ScrCmd_564(SCRIPTCONTEXT *ctx);
|
||||
extern BOOL ScrCmd_565(SCRIPTCONTEXT *ctx);
|
||||
extern BOOL ScrCmd_566(SCRIPTCONTEXT *ctx);
|
||||
extern BOOL ScrCmd_567(SCRIPTCONTEXT *ctx);
|
||||
extern BOOL ScrCmd_GetDPPlPrizeItemIdAndCost(SCRIPTCONTEXT *ctx);
|
||||
extern BOOL ScrCmd_568(SCRIPTCONTEXT *ctx);
|
||||
extern BOOL ScrCmd_569(SCRIPTCONTEXT *ctx);
|
||||
extern BOOL ScrCmd_CheckCoinsVar(SCRIPTCONTEXT *ctx);
|
||||
@ -1422,7 +1422,7 @@ const ScrCmdFunc gScriptCmdTable[] = {
|
||||
ScrCmd_564,
|
||||
ScrCmd_565,
|
||||
ScrCmd_566,
|
||||
ScrCmd_567,
|
||||
ScrCmd_GetDPPlPrizeItemIdAndCost,
|
||||
ScrCmd_568,
|
||||
ScrCmd_569,
|
||||
ScrCmd_CheckCoinsVar,
|
||||
|
48
src/field_alph_checks.c
Normal file
48
src/field_alph_checks.c
Normal file
@ -0,0 +1,48 @@
|
||||
#include "constants/maps.h"
|
||||
#include "script.h"
|
||||
|
||||
typedef struct FlyPoints FlyPoints;
|
||||
extern FlyPoints* Save_FlyPoints_get(SAVEDATA*);
|
||||
extern Location* FlyPoints_GetPosition(FlyPoints*);
|
||||
|
||||
BOOL CheckUseEscapeRopeInAlphChamber(FieldSystem* fsys) {
|
||||
Location* position = FlyPoints_GetPosition(Save_FlyPoints_get(fsys->savedata));
|
||||
|
||||
if (position->mapId != MAP_D24R0202) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (position->x != 6 || position->z != 3 || position->direction != 0) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CheckUseFlashInAlphChamber(FieldSystem* fsys) {
|
||||
Location* position = FlyPoints_GetPosition(Save_FlyPoints_get(fsys->savedata));
|
||||
|
||||
if (position->mapId != MAP_D24R0204) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (position->x != 6 || position->z != 3 || position->direction != 0) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CheckUseWaterStoneInAlphChamber(FieldSystem* fsys) {
|
||||
Location* position = FlyPoints_GetPosition(Save_FlyPoints_get(fsys->savedata));
|
||||
|
||||
if (position->mapId != MAP_D24R0206) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (position->x != 6 || position->z != 3 || position->direction != 0) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
108
src/sav_system_info.c
Normal file
108
src/sav_system_info.c
Normal file
@ -0,0 +1,108 @@
|
||||
#include <nitro/mi/memory.h>
|
||||
#include <nitro/os/ownerInfo.h>
|
||||
#include <nitro/rtc/ARM9/convert.h>
|
||||
#include "gf_rtc.h"
|
||||
#include "sav_system_info.h"
|
||||
|
||||
u32 Sav2_SysInfo_sizeof(void) {
|
||||
return sizeof(SYSINFO);
|
||||
}
|
||||
|
||||
void Sav2_SysInfo_init(SYSINFO* sys_info) {
|
||||
MI_CpuClearFast(sys_info, sizeof(SYSINFO));
|
||||
Sav2_SysInfo_RTC_init(&sys_info->rtc_info);
|
||||
}
|
||||
|
||||
SYSINFO* Sav2_SysInfo_get(SAVEDATA* savedata) {
|
||||
return SavArray_get(savedata, SAVE_SYSINFO);
|
||||
}
|
||||
|
||||
SYSINFO_RTC* Sav2_SysInfo_RTC_get(SAVEDATA* savedata) {
|
||||
SYSINFO* sys_info = Sav2_SysInfo_get(savedata);
|
||||
return &sys_info->rtc_info;
|
||||
}
|
||||
|
||||
void Sav2_SysInfo_InitFromSystem(SYSINFO* sys_info) {
|
||||
OSOwnerInfo owner_info;
|
||||
|
||||
sys_info->rtc_offset = OS_GetOwnerRtcOffset();
|
||||
OS_GetMacAddress(sys_info->mac_address);
|
||||
OS_GetOwnerInfo(&owner_info);
|
||||
sys_info->birth_month = owner_info.birthday.month;
|
||||
sys_info->birth_day = owner_info.birthday.day;
|
||||
}
|
||||
|
||||
BOOL Sav2_SysInfo_MacAddressIsMine(SYSINFO* sys_info) {
|
||||
u8 mac_address[6];
|
||||
OS_GetMacAddress(mac_address);
|
||||
|
||||
for (s32 i = 0; i < (s32)NELEMS(mac_address); i++) {
|
||||
if (mac_address[i] != sys_info->mac_address[i]) {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL Sav2_SysInfo_RTCOffsetIsMine(SYSINFO* sys_info) {
|
||||
return sys_info->rtc_offset == OS_GetOwnerRtcOffset();
|
||||
}
|
||||
|
||||
u8 Sav2_SysInfo_GetBirthMonth(SYSINFO* sys_info) {
|
||||
return sys_info->birth_month;
|
||||
}
|
||||
|
||||
u8 Sav2_SysInfo_GetBirthDay(SYSINFO* sys_info) {
|
||||
return sys_info->birth_day;
|
||||
}
|
||||
|
||||
u8 Sav2_SysInfo_GetField48(SYSINFO* sys_info) {
|
||||
return sys_info->unk48;
|
||||
}
|
||||
|
||||
void Sav2_SysInfo_SetField48(SYSINFO* sys_info, u8 a1) {
|
||||
sys_info->unk48 = a1;
|
||||
}
|
||||
|
||||
void* Sav2_SysInfo_GetField4C(SYSINFO* sys_info) {
|
||||
return sys_info->unk4C;
|
||||
}
|
||||
|
||||
void Sav2_SysInfo_SetField4C(SYSINFO* sys_info, void* a1) {
|
||||
if (sys_info->unk4C == NULL) {
|
||||
sys_info->unk4C = a1;
|
||||
}
|
||||
}
|
||||
|
||||
void Sav2_SysInfo_RTC_init(SYSINFO_RTC* rtc_info) {
|
||||
rtc_info->initialized = TRUE;
|
||||
GF_RTC_CopyDateTime(&rtc_info->date, &rtc_info->time);
|
||||
rtc_info->days_since_nitro_epoch = RTC_ConvertDateToDay(&rtc_info->date);
|
||||
rtc_info->seconds_since_nitro_epoch = RTC_ConvertDateTimeToSecond(&rtc_info->date, &rtc_info->time);
|
||||
rtc_info->unk2C = 0;
|
||||
rtc_info->unk34 = 0;
|
||||
}
|
||||
|
||||
BOOL sub_02028E1C(SYSINFO_RTC* rtc_info) {
|
||||
return rtc_info->unk34 != 0;
|
||||
}
|
||||
|
||||
void Sav2_SysInfo_RTC_SubField34(SYSINFO_RTC* rtc_info, u32 a1) {
|
||||
if (rtc_info->unk34 > 1440) {
|
||||
rtc_info->unk34 = 1440;
|
||||
}
|
||||
|
||||
if (rtc_info->unk34 < a1) {
|
||||
rtc_info->unk34 = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
rtc_info->unk34 -= a1;
|
||||
}
|
||||
|
||||
void sub_02028E4C(SYSINFO_RTC* rtc_info) {
|
||||
rtc_info->unk34 = 1440;
|
||||
GF_RTC_CopyDateTime(&rtc_info->date, &rtc_info->time);
|
||||
rtc_info->days_since_nitro_epoch = RTC_ConvertDateToDay(&rtc_info->date);
|
||||
}
|
34
src/scrcmd_dppl_prizes.c
Normal file
34
src/scrcmd_dppl_prizes.c
Normal file
@ -0,0 +1,34 @@
|
||||
#include "scrcmd.h"
|
||||
|
||||
static const u16 sDPPlGameCornerPrizeMap[][2] = {
|
||||
{ ITEM_SILK_SCARF, 1000 },
|
||||
{ ITEM_WIDE_LENS, 1000 },
|
||||
{ ITEM_ZOOM_LENS, 1000 },
|
||||
{ ITEM_METRONOME, 1000 },
|
||||
{ ITEM_TM90, 2000 },
|
||||
{ ITEM_TM58, 2000 },
|
||||
{ ITEM_TM75, 4000 },
|
||||
{ ITEM_TM32, 4000 },
|
||||
{ ITEM_TM44, 6000 },
|
||||
{ ITEM_TM89, 6000 },
|
||||
{ ITEM_TM10, 6000 },
|
||||
{ ITEM_TM27, 8000 },
|
||||
{ ITEM_TM21, 8000 },
|
||||
{ ITEM_TM35, 10000 },
|
||||
{ ITEM_TM24, 10000 },
|
||||
{ ITEM_TM13, 10000 },
|
||||
{ ITEM_TM29, 10000 },
|
||||
{ ITEM_TM74, 15000 },
|
||||
{ ITEM_TM68, 20000 },
|
||||
};
|
||||
|
||||
BOOL ScrCmd_GetDPPlPrizeItemIdAndCost(SCRIPTCONTEXT* ctx) {
|
||||
u16 prize_id = ScriptGetVar(ctx);
|
||||
u16* prize_item_id = ScriptGetVarPointer(ctx);
|
||||
u16* prize_cost = ScriptGetVarPointer(ctx);
|
||||
|
||||
*prize_item_id = sDPPlGameCornerPrizeMap[prize_id][0];
|
||||
*prize_cost = sDPPlGameCornerPrizeMap[prize_id][1];
|
||||
|
||||
return FALSE;
|
||||
}
|
494
src/scrcmd_strbuf.c
Normal file
494
src/scrcmd_strbuf.c
Normal file
@ -0,0 +1,494 @@
|
||||
#include "scrcmd.h"
|
||||
#include "event_data.h"
|
||||
#include "filesystem.h"
|
||||
#include "item.h"
|
||||
#include "msgdata/msg.naix"
|
||||
#include "party.h"
|
||||
#include "player_data.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "save_arrays.h"
|
||||
|
||||
static STRING* _get_species_name(u16 species, HeapID heap_id);
|
||||
extern u16 GetStarterFromScriptState(SCRIPT_STATE*);
|
||||
extern u16 DPPtLeftover_GetRivalSpecies(SCRIPT_STATE*);
|
||||
extern u16 DPPtLeftover_GetFriendStarterSpecies(SCRIPT_STATE*);
|
||||
extern u32 sub_0208E55C(u8, u32);
|
||||
|
||||
BOOL ScrCmd_BufferStatName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u8 stat_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferStatName(*msg_fmt, idx, stat_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferPlayersName(SCRIPTCONTEXT* ctx) {
|
||||
FieldSystem* fsys = ctx->fsys;
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
PLAYERPROFILE* profile = Sav2_PlayerData_GetProfileAddr(ScriptEnvironment_GetSav2Ptr(fsys));
|
||||
|
||||
BufferPlayersName(*msg_fmt, idx, profile);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferRivalsName(SCRIPTCONTEXT* ctx) {
|
||||
FieldSystem* fsys = ctx->fsys;
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
|
||||
BufferRivalsName(*msg_fmt, idx, fsys->savedata);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferFriendsName(SCRIPTCONTEXT* ctx) {
|
||||
FieldSystem* fsys = ctx->fsys;
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
|
||||
BufferFriendsName(*msg_fmt, idx, fsys->savedata);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferMonSpeciesName(SCRIPTCONTEXT* ctx) {
|
||||
FieldSystem* fsys = ctx->fsys;
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 party_mon_idx = ScriptGetVar(ctx);
|
||||
|
||||
PARTY* party = SavArray_PlayerParty_get(fsys->savedata);
|
||||
POKEMON* party_mon = GetPartyMonByIndex(party, party_mon_idx);
|
||||
BufferBoxMonSpeciesName(*msg_fmt, idx, &party_mon->box);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferTypeName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 type_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferTypeName(*msg_fmt, idx, type_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferItemName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 item_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferItemName(*msg_fmt, idx, item_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferPocketName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 pocket_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferPocketName(*msg_fmt, idx, pocket_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferTMHMMoveName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 move_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferMoveName(*msg_fmt, idx, TMHMGetMove(move_id));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferMoveName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 move_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferMoveName(*msg_fmt, idx, move_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferInt(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 number = ScriptGetVar(ctx);
|
||||
|
||||
BufferIntegerAsString(*msg_fmt, idx, number, sub_0205BB1C(number), STRCONVMODE_RIGHT_ALIGN, TRUE);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferIntEx(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 number = ScriptGetVar(ctx);
|
||||
u8 str_conv_mode = ScriptReadByte(ctx);
|
||||
u8 unk2 = ScriptReadByte(ctx);
|
||||
|
||||
u8 digits = unk2;
|
||||
if (str_conv_mode == STRCONVMODE_LEFT_ALIGN) {
|
||||
digits = sub_0205BB1C(number);
|
||||
}
|
||||
|
||||
BufferIntegerAsString(*msg_fmt, idx, number, digits, str_conv_mode, TRUE);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_661(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u32 number = ScriptReadWord(ctx);
|
||||
u8 str_conv_mode = ScriptReadByte(ctx);
|
||||
u8 unk2 = ScriptReadByte(ctx);
|
||||
|
||||
u8 digits = unk2;
|
||||
if (str_conv_mode == STRCONVMODE_LEFT_ALIGN) {
|
||||
digits = sub_0205BB1C(number);
|
||||
}
|
||||
|
||||
BufferIntegerAsString(*msg_fmt, idx, number, digits, str_conv_mode, TRUE);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferPartyMonNick(SCRIPTCONTEXT* ctx) {
|
||||
FieldSystem* fsys = ctx->fsys;
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 party_mon_idx = ScriptGetVar(ctx);
|
||||
|
||||
PARTY* party = SavArray_PlayerParty_get(fsys->savedata);
|
||||
POKEMON* party_mon = GetPartyMonByIndex(party, party_mon_idx);
|
||||
BufferBoxMonNickname(*msg_fmt, idx, &party_mon->box);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferBoxMonNick(SCRIPTCONTEXT* ctx) {
|
||||
FieldSystem* fsys = ctx->fsys;
|
||||
PC_STORAGE* pc = GetStoragePCPointer(fsys->savedata);
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 box_mon_slot = ScriptGetVar(ctx);
|
||||
|
||||
BOXMON* box_mon = PCStorage_GetMonByIndexPair(pc, box_mon_slot / MONS_PER_BOX, box_mon_slot % MONS_PER_BOX);
|
||||
BufferBoxMonNickname(*msg_fmt, idx, box_mon);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferTrainerClassName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 trainer_class_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferTrainerClassName(*msg_fmt, idx, trainer_class_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferPlayerUnionAvatarClassName(SCRIPTCONTEXT* ctx) {
|
||||
FieldSystem* fsys = ctx->fsys;
|
||||
SAVEDATA* savedata = ScriptEnvironment_GetSav2Ptr(fsys);
|
||||
PLAYERPROFILE* profile = Sav2_PlayerData_GetProfileAddr(savedata);
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u8 gender = PlayerProfile_GetTrainerGender(profile);
|
||||
u8 avatar = PlayerProfile_GetAvatar(profile);
|
||||
|
||||
BufferTrainerClassNameWithArticle(*msg_fmt, idx, sub_0205B46C(gender, avatar, 2));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferSpeciesName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 species = ScriptGetVar(ctx);
|
||||
u16 unk2 = ScriptReadHalfword(ctx);
|
||||
u8 unk3 = ScriptReadByte(ctx);
|
||||
|
||||
STRING* species_name = _get_species_name(species, 4);
|
||||
BufferString(*msg_fmt, idx, species_name, unk2, unk3, 2);
|
||||
String_dtor(species_name);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
STRING* _get_species_name(u16 species, HeapID heap_id) {
|
||||
MSGDATA* msg_data = NewMsgDataFromNarc(MSGDATA_LOAD_LAZY, NARC_msgdata_msg, NARC_msg_msg_0237_bin, heap_id);
|
||||
STRING* name = NewString_ReadMsgData(msg_data, species);
|
||||
DestroyMsgData(msg_data);
|
||||
return name;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferStarterSpeciesName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 species = GetStarterFromScriptState(SavArray_Flags_get(ctx->fsys->savedata));
|
||||
|
||||
STRING* species_name = _get_species_name(species, 4);
|
||||
BufferString(*msg_fmt, idx, species_name, 0, 1, 2);
|
||||
String_dtor(species_name);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferDPPtRivalStarterSpeciesName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 species = DPPtLeftover_GetRivalSpecies(SavArray_Flags_get(ctx->fsys->savedata));
|
||||
|
||||
STRING* species_name = _get_species_name(species, 4);
|
||||
BufferString(*msg_fmt, idx, species_name, 0, 1, 2);
|
||||
String_dtor(species_name);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferDPPtFriendStarterSpeciesName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 species = DPPtLeftover_GetFriendStarterSpecies(SavArray_Flags_get(ctx->fsys->savedata));
|
||||
|
||||
STRING* species_name = _get_species_name(species, 4);
|
||||
BufferString(*msg_fmt, idx, species_name, 0, 1, 2);
|
||||
String_dtor(species_name);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferDecorationName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 decoration_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferDecorationName(*msg_fmt, idx, decoration_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// This may be what's left of ScrCmd_GetUndergroundTrapName from D/P/Pt.
|
||||
BOOL ScrCmd_208(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 unused_id = ScriptGetVar(ctx);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// This may be what's left of ScrCmd_GetUndergroundItemName from D/P/Pt.
|
||||
BOOL ScrCmd_209(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 unused_id = ScriptGetVar(ctx);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferMapSecName(SCRIPTCONTEXT* ctx) {
|
||||
STRING* str = String_ctor(22, 4);
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 map_sec = ScriptGetVar(ctx);
|
||||
|
||||
sub_02068F98(map_sec, 4, str);
|
||||
BufferString(*msg_fmt, idx, str, 0, 1, 2);
|
||||
String_dtor(str);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferBerryName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 berry_id = ScriptGetVar(ctx);
|
||||
u16 unk = ScriptGetVar(ctx);
|
||||
|
||||
STRING* str = GetNutName((u16)(berry_id - FIRST_BERRY_IDX), 32);
|
||||
BufferString(*msg_fmt, idx, str, 0, unk < 2, 2);
|
||||
String_dtor(str);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferNatureName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 nature_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferNatureName(*msg_fmt, idx, nature_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferFashionName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 fashion_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferFashionName(*msg_fmt, idx, fashion_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferPartyMonMoveName(SCRIPTCONTEXT* ctx) {
|
||||
FieldSystem* fsys = ctx->fsys;
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 party_slot = ScriptGetVar(ctx);
|
||||
u16 move_slot = ScriptGetVar(ctx);
|
||||
|
||||
PARTY* party = SavArray_PlayerParty_get(fsys->savedata);
|
||||
POKEMON* party_mon = GetPartyMonByIndex(party, party_slot);
|
||||
u16 move_id = GetMonData(party_mon, MON_DATA_MOVE1 + move_slot, NULL);
|
||||
BufferMoveName(*msg_fmt, idx, move_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferRibbonName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u8 unk = ScriptGetVar(ctx);
|
||||
|
||||
u16 ribbon_id = sub_0208E55C(unk, 3);
|
||||
BufferRibbonNameOrDesc(*msg_fmt, idx, ribbon_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferSealName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 seal_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferSealName(*msg_fmt, idx, seal_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferTrainerName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 trainer_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferTrainerName(*msg_fmt, idx, trainer_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferApricornName(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u8 apricorn_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferApricornName(*msg_fmt, idx, apricorn_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferItemNameIndef(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 item_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferItemNameWithIndefArticle(*msg_fmt, idx, item_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferItemNamePlural(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 item_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferItemNamePlural(*msg_fmt, idx, item_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferPartyMonSpeciesNameIndef(SCRIPTCONTEXT* ctx) {
|
||||
FieldSystem* fsys = ctx->fsys;
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 party_mon_slot = ScriptGetVar(ctx);
|
||||
|
||||
PARTY* party = SavArray_PlayerParty_get(fsys->savedata);
|
||||
POKEMON* party_mon = GetPartyMonByIndex(party, party_mon_slot);
|
||||
BufferBoxMonSpeciesNameWithArticle(*msg_fmt, idx, &party_mon->box);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferSpeciesNameIndef(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 item_id = ScriptGetVar(ctx);
|
||||
u16 unused1 = ScriptReadHalfword(ctx);
|
||||
u8 unused2 = ScriptReadByte(ctx);
|
||||
|
||||
BufferSpeciesNameWithArticle(*msg_fmt, idx, item_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferDPPtFriendStarterSpeciesNameIndef(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 species = DPPtLeftover_GetFriendStarterSpecies(SavArray_Flags_get(ctx->fsys->savedata));
|
||||
|
||||
BufferSpeciesNameWithArticle(*msg_fmt, idx, species);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferFashionNameIndef(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 fashion_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferFashionNameWithArticle(*msg_fmt, idx, fashion_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferTrainerClassNameIndef(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 trainer_class_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferTrainerClassNameWithArticle(*msg_fmt, idx, trainer_class_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_BufferSealNamePlural(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
u16 seal_id = ScriptGetVar(ctx);
|
||||
|
||||
BufferSealNamePlural(*msg_fmt, idx, seal_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_Capitalize(SCRIPTCONTEXT* ctx) {
|
||||
MSGFMT** msg_fmt = FieldSysGetAttrAddr(ctx->fsys, UNK80_10_C_MSGFMT);
|
||||
u8 idx = ScriptReadByte(ctx);
|
||||
|
||||
ScrStrBufs_UpperFirstChar(*msg_fmt, idx);
|
||||
|
||||
return FALSE;
|
||||
}
|
@ -3584,7 +3584,7 @@
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "scrcmd_567",
|
||||
"name": "getdpplprizeitemidandcost",
|
||||
"args": [
|
||||
2,
|
||||
2,
|
||||
|
Loading…
x
Reference in New Issue
Block a user