Merge remote-tracking branch 'origin/master' into pikalax_work

This commit is contained in:
PikalaxALT 2022-02-25 09:34:03 -05:00
commit 1cc595698b
24 changed files with 765 additions and 1813 deletions

View File

@ -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

View File

@ -3222,7 +3222,7 @@
.short 566
.endm
.macro scrcmd_567 arg0, arg1, arg2
.macro getdpplprizeitemidandcost arg0, arg1, arg2
.short 567
.short \arg0
.short \arg1

View File

@ -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]

View File

@ -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]

View File

@ -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

View File

@ -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]

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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
View 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

View File

@ -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);

View File

@ -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

View File

@ -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
View 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
View 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
View 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
View 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;
}

View File

@ -3584,7 +3584,7 @@
"args": []
},
{
"name": "scrcmd_567",
"name": "getdpplprizeitemidandcost",
"args": [
2,
2,