mirror of
https://github.com/pret/pokeheartgold.git
synced 2025-02-16 11:28:16 +00:00
save_misc.c, 1
This commit is contained in:
parent
4363c723f6
commit
e21ff298d7
@ -225,12 +225,12 @@ ov17_02201D30: ; 0x02201D30
|
||||
ldr r0, [r5, #4]
|
||||
ldr r0, [r0, #4]
|
||||
ldr r0, [r0, #0xc]
|
||||
bl sub_0202A978
|
||||
bl Sav2_BerryPots_get
|
||||
str r0, [r5, #0x14]
|
||||
ldr r0, [r5, #4]
|
||||
ldr r0, [r0, #4]
|
||||
ldr r0, [r0, #0xc]
|
||||
bl sub_0202A988
|
||||
bl Sav2_BerryPotRTC_get
|
||||
str r0, [r5, #0x18]
|
||||
ldr r1, [r5, #4]
|
||||
ldrb r0, [r1, #0x14]
|
||||
|
@ -134,8 +134,8 @@ _021E59E8:
|
||||
bl Sav2_SysInfo_RTC_get
|
||||
bl sub_02028E4C
|
||||
add r0, r4, #0
|
||||
bl sub_0202A988
|
||||
bl sub_0202A8A8
|
||||
bl Sav2_BerryPotRTC_get
|
||||
bl Sav2_BerryPotRTC_init
|
||||
add r0, r5, #0
|
||||
bl Sav2_SysInfo_InitFromSystem
|
||||
add r0, r4, #0
|
||||
@ -180,8 +180,8 @@ ov36_021E5A38: ; 0x021E5A38
|
||||
bl Sav2_SysInfo_RTC_get
|
||||
bl Sav2_SysInfo_RTC_init
|
||||
add r0, r6, #0
|
||||
bl sub_0202A988
|
||||
bl sub_0202A8A8
|
||||
bl Sav2_BerryPotRTC_get
|
||||
bl Sav2_BerryPotRTC_init
|
||||
add r0, r6, #0
|
||||
bl sub_0202C854
|
||||
add r4, r0, #0
|
||||
|
@ -3,410 +3,10 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.rodata
|
||||
|
||||
_020F677C:
|
||||
.byte 0x00, 0x04
|
||||
.byte 0x04, 0x02
|
||||
.byte 0x06, 0x02
|
||||
.public _020F677C
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0202A888
|
||||
sub_0202A888: ; 0x0202A888
|
||||
push {r4, lr}
|
||||
mov r1, #0
|
||||
mov r2, #0x30
|
||||
add r4, r0, #0
|
||||
bl MI_CpuFill8
|
||||
mov r1, #0
|
||||
add r0, r1, #0
|
||||
_0202A898:
|
||||
strb r0, [r4, #1]
|
||||
strb r0, [r4]
|
||||
add r1, r1, #1
|
||||
add r4, #0xc
|
||||
cmp r1, #4
|
||||
blt _0202A898
|
||||
pop {r4, pc}
|
||||
.balign 4, 0
|
||||
thumb_func_end sub_0202A888
|
||||
|
||||
thumb_func_start sub_0202A8A8
|
||||
sub_0202A8A8: ; 0x0202A8A8
|
||||
ldr r3, _0202A8B0 ; =GF_RTC_CopyDateTime
|
||||
add r1, r0, #0
|
||||
add r1, #0x10
|
||||
bx r3
|
||||
.balign 4, 0
|
||||
_0202A8B0: .word GF_RTC_CopyDateTime
|
||||
thumb_func_end sub_0202A8A8
|
||||
|
||||
thumb_func_start Sav2_Misc_sizeof
|
||||
Sav2_Misc_sizeof: ; 0x0202A8B4
|
||||
mov r0, #0x2e
|
||||
lsl r0, r0, #4
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end Sav2_Misc_sizeof
|
||||
|
||||
thumb_func_start Sav2_Misc_init
|
||||
Sav2_Misc_init: ; 0x0202A8BC
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
mov r2, #0x2e
|
||||
mov r0, #0
|
||||
add r1, r4, #0
|
||||
lsl r2, r2, #4
|
||||
bl MIi_CpuClearFast
|
||||
add r0, r4, #0
|
||||
bl ApricornTrees_init
|
||||
mov r0, #2
|
||||
lsl r0, r0, #8
|
||||
add r0, r4, r0
|
||||
bl sub_0202A888
|
||||
mov r0, #0x23
|
||||
lsl r0, r0, #4
|
||||
add r0, r4, r0
|
||||
bl sub_0202A8A8
|
||||
mov r0, #0x93
|
||||
lsl r0, r0, #2
|
||||
add r0, r4, r0
|
||||
bl SavGymmick_Clear
|
||||
mov r1, #0x27
|
||||
lsl r1, r1, #4
|
||||
ldr r0, _0202A948 ; =0x0000FFFF
|
||||
add r1, r4, r1
|
||||
mov r2, #8
|
||||
bl MIi_CpuClear16
|
||||
mov r0, #0xa
|
||||
lsl r0, r0, #6
|
||||
add r0, r4, r0
|
||||
mov r1, #0xff
|
||||
mov r2, #8
|
||||
bl MI_CpuFill8
|
||||
; REGARDS!\nHello!
|
||||
mov r0, #0x2a
|
||||
lsl r0, r0, #4
|
||||
add r0, r4, r0
|
||||
mov r1, #MAILMSG_BANK_0295_GMM
|
||||
bl MailMsg_init_withBank
|
||||
ldr r0, _0202A94C ; =0x000002A2
|
||||
mov r1, #msg_0295_00000
|
||||
strh r1, [r4, r0]
|
||||
ldr r0, _0202A950 ; =0x0000011F ; msg_0287.gmm
|
||||
mov r1, #msg_0287_regards
|
||||
bl GetECWordIndexByPair
|
||||
mov r1, #0x2A4>>2
|
||||
lsl r1, r1, #2
|
||||
strh r0, [r4, r1]
|
||||
ldr r2, _0202A948 ; =0x0000FFFF
|
||||
add r0, r1, #2
|
||||
strh r2, [r4, r0]
|
||||
mov r3, #0
|
||||
add r0, r1, #4
|
||||
sub r2, r3, #1
|
||||
add r1, #0x18
|
||||
_0202A93A:
|
||||
str r2, [r4, r0]
|
||||
str r2, [r4, r1]
|
||||
add r3, r3, #1
|
||||
add r4, r4, #4
|
||||
cmp r3, #5
|
||||
blt _0202A93A
|
||||
pop {r4, pc}
|
||||
.balign 4, 0
|
||||
_0202A948: .word 0x0000FFFF
|
||||
_0202A94C: .word 0x000002A2
|
||||
_0202A950: .word 0x0000011F
|
||||
thumb_func_end Sav2_Misc_init
|
||||
|
||||
thumb_func_start Sav2_Misc_get
|
||||
Sav2_Misc_get: ; 0x0202A954
|
||||
ldr r3, _0202A95C ; =SavArray_get
|
||||
mov r1, #9
|
||||
bx r3
|
||||
nop
|
||||
_0202A95C: .word SavArray_get
|
||||
thumb_func_end Sav2_Misc_get
|
||||
|
||||
thumb_func_start Sav2_Misc_const_get
|
||||
Sav2_Misc_const_get: ; 0x0202A960
|
||||
ldr r3, _0202A968 ; =SavArray_const_get
|
||||
mov r1, #9
|
||||
bx r3
|
||||
nop
|
||||
_0202A968: .word SavArray_const_get
|
||||
thumb_func_end Sav2_Misc_const_get
|
||||
|
||||
thumb_func_start Sav2_FieldApricornTrees_get
|
||||
Sav2_FieldApricornTrees_get: ; 0x0202A96C
|
||||
ldr r3, _0202A974 ; =SavArray_get
|
||||
mov r1, #9
|
||||
bx r3
|
||||
nop
|
||||
_0202A974: .word SavArray_get
|
||||
thumb_func_end Sav2_FieldApricornTrees_get
|
||||
|
||||
thumb_func_start sub_0202A978
|
||||
sub_0202A978: ; 0x0202A978
|
||||
push {r3, lr}
|
||||
mov r1, #9
|
||||
bl SavArray_get
|
||||
mov r1, #2
|
||||
lsl r1, r1, #8
|
||||
add r0, r0, r1
|
||||
pop {r3, pc}
|
||||
thumb_func_end sub_0202A978
|
||||
|
||||
thumb_func_start sub_0202A988
|
||||
sub_0202A988: ; 0x0202A988
|
||||
push {r3, lr}
|
||||
mov r1, #9
|
||||
bl SavArray_get
|
||||
mov r1, #0x23
|
||||
lsl r1, r1, #4
|
||||
add r0, r0, r1
|
||||
pop {r3, pc}
|
||||
thumb_func_end sub_0202A988
|
||||
|
||||
thumb_func_start Sav2_GetGymmickPtr
|
||||
Sav2_GetGymmickPtr: ; 0x0202A998
|
||||
push {r3, lr}
|
||||
mov r1, #9
|
||||
bl SavArray_get
|
||||
mov r1, #0x93
|
||||
lsl r1, r1, #2
|
||||
add r0, r0, r1
|
||||
pop {r3, pc}
|
||||
thumb_func_end Sav2_GetGymmickPtr
|
||||
|
||||
thumb_func_start Sav2_Misc_RivalName_const_get
|
||||
Sav2_Misc_RivalName_const_get: ; 0x0202A9A8
|
||||
mov r1, #0x27
|
||||
lsl r1, r1, #4
|
||||
add r0, r0, r1
|
||||
bx lr
|
||||
thumb_func_end Sav2_Misc_RivalName_const_get
|
||||
|
||||
thumb_func_start Sav2_Misc_RivalName_set
|
||||
Sav2_Misc_RivalName_set: ; 0x0202A9B0
|
||||
add r2, r0, #0
|
||||
add r0, r1, #0
|
||||
mov r1, #0x27
|
||||
lsl r1, r1, #4
|
||||
add r1, r2, r1
|
||||
ldr r3, _0202A9C0 ; =CopyStringToU16Array
|
||||
mov r2, #8
|
||||
bx r3
|
||||
.balign 4, 0
|
||||
_0202A9C0: .word CopyStringToU16Array
|
||||
thumb_func_end Sav2_Misc_RivalName_set
|
||||
|
||||
thumb_func_start sub_0202A9C4
|
||||
sub_0202A9C4: ; 0x0202A9C4
|
||||
ldr r2, _0202A9D4 ; =0x0000029B
|
||||
mov r1, #1
|
||||
ldrb r3, [r0, r2]
|
||||
bic r3, r1
|
||||
mov r1, #1
|
||||
orr r1, r3
|
||||
strb r1, [r0, r2]
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
_0202A9D4: .word 0x0000029B
|
||||
thumb_func_end sub_0202A9C4
|
||||
|
||||
thumb_func_start sub_0202A9D8
|
||||
sub_0202A9D8: ; 0x0202A9D8
|
||||
ldr r1, _0202A9E4 ; =0x0000029B
|
||||
ldrb r0, [r0, r1]
|
||||
lsl r0, r0, #0x1f
|
||||
lsr r0, r0, #0x1f
|
||||
bx lr
|
||||
nop
|
||||
_0202A9E4: .word 0x0000029B
|
||||
thumb_func_end sub_0202A9D8
|
||||
|
||||
thumb_func_start sub_0202A9E8
|
||||
sub_0202A9E8: ; 0x0202A9E8
|
||||
push {r4, r5}
|
||||
mov r4, #0xa6
|
||||
lsl r4, r4, #2
|
||||
strh r1, [r0, r4]
|
||||
add r1, r4, #2
|
||||
ldrb r1, [r0, r1]
|
||||
mov r5, #0x7f
|
||||
lsl r2, r2, #0x18
|
||||
bic r1, r5
|
||||
lsr r5, r2, #0x18
|
||||
mov r2, #0x7f
|
||||
and r2, r5
|
||||
orr r2, r1
|
||||
add r1, r4, #2
|
||||
strb r2, [r0, r1]
|
||||
ldrb r1, [r0, r1]
|
||||
mov r2, #0x80
|
||||
bic r1, r2
|
||||
lsl r2, r3, #0x18
|
||||
lsr r2, r2, #0x18
|
||||
lsl r2, r2, #0x1f
|
||||
lsr r2, r2, #0x18
|
||||
orr r2, r1
|
||||
add r1, r4, #2
|
||||
strb r2, [r0, r1]
|
||||
pop {r4, r5}
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end sub_0202A9E8
|
||||
|
||||
thumb_func_start sub_0202AA20
|
||||
sub_0202AA20: ; 0x0202AA20
|
||||
push {r4, r5}
|
||||
mov r4, #0xa6
|
||||
lsl r4, r4, #2
|
||||
ldrh r5, [r0, r4]
|
||||
str r5, [r1]
|
||||
add r1, r4, #2
|
||||
ldrb r1, [r0, r1]
|
||||
lsl r1, r1, #0x19
|
||||
lsr r1, r1, #0x19
|
||||
str r1, [r2]
|
||||
add r1, r4, #2
|
||||
ldrb r0, [r0, r1]
|
||||
lsl r0, r0, #0x18
|
||||
lsr r0, r0, #0x1f
|
||||
str r0, [r3]
|
||||
pop {r4, r5}
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end sub_0202AA20
|
||||
|
||||
thumb_func_start sub_0202AA44
|
||||
sub_0202AA44: ; 0x0202AA44
|
||||
push {r4, r5, r6, r7}
|
||||
add r4, r2, #0
|
||||
cmp r1, #2
|
||||
bls _0202AA52
|
||||
mov r0, #0
|
||||
pop {r4, r5, r6, r7}
|
||||
bx lr
|
||||
_0202AA52:
|
||||
ldr r3, _0202AA94 ; =_020F677C + 1
|
||||
lsl r1, r1, #1
|
||||
ldrb r3, [r3, r1]
|
||||
mov r2, #0
|
||||
cmp r3, #0
|
||||
ble _0202AA8E
|
||||
ldr r5, _0202AA98 ; =_020F677C
|
||||
ldrb r3, [r5, r1]
|
||||
add r5, r5, r1
|
||||
ldrb r1, [r5]
|
||||
add r3, r0, r3
|
||||
ldrb r6, [r5, #1]
|
||||
add r0, r0, r1
|
||||
mov r1, #0xa
|
||||
lsl r1, r1, #6
|
||||
add r5, r1, #0
|
||||
_0202AA72:
|
||||
ldrb r7, [r3, r5]
|
||||
cmp r7, #0xff
|
||||
beq _0202AA8E
|
||||
add r7, r2, r0
|
||||
ldrb r7, [r7, r1]
|
||||
cmp r4, r7
|
||||
bne _0202AA86
|
||||
mov r0, #1
|
||||
pop {r4, r5, r6, r7}
|
||||
bx lr
|
||||
_0202AA86:
|
||||
add r2, r2, #1
|
||||
add r3, r3, #1
|
||||
cmp r2, r6
|
||||
blt _0202AA72
|
||||
_0202AA8E:
|
||||
mov r0, #0
|
||||
pop {r4, r5, r6, r7}
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
_0202AA94: .word _020F677C + 1
|
||||
_0202AA98: .word _020F677C
|
||||
thumb_func_end sub_0202AA44
|
||||
|
||||
thumb_func_start sub_0202AA9C
|
||||
sub_0202AA9C: ; 0x0202AA9C
|
||||
push {r4, r5}
|
||||
cmp r1, #2
|
||||
bhi _0202AAC8
|
||||
lsl r4, r1, #1
|
||||
ldr r1, _0202AACC ; =_020F677C + 1
|
||||
mov r2, #0
|
||||
ldrb r1, [r1, r4]
|
||||
cmp r1, #0
|
||||
ble _0202AAC8
|
||||
ldr r3, _0202AAD0 ; =_020F677C
|
||||
ldrb r1, [r3, r4]
|
||||
add r4, r3, r4
|
||||
mov r3, #0xff
|
||||
add r5, r0, r1
|
||||
mov r0, #0xa
|
||||
lsl r0, r0, #6
|
||||
_0202AABC:
|
||||
strb r3, [r5, r0]
|
||||
ldrb r1, [r4, #1]
|
||||
add r2, r2, #1
|
||||
add r5, r5, #1
|
||||
cmp r2, r1
|
||||
blt _0202AABC
|
||||
_0202AAC8:
|
||||
pop {r4, r5}
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
_0202AACC: .word _020F677C + 1
|
||||
_0202AAD0: .word _020F677C
|
||||
thumb_func_end sub_0202AA9C
|
||||
|
||||
thumb_func_start sub_0202AAD4
|
||||
sub_0202AAD4: ; 0x0202AAD4
|
||||
push {r4, r5}
|
||||
mov r2, #0
|
||||
cmp r1, #2
|
||||
bls _0202AAE2
|
||||
add r0, r2, #0
|
||||
pop {r4, r5}
|
||||
bx lr
|
||||
_0202AAE2:
|
||||
lsl r4, r1, #1
|
||||
ldr r1, _0202AB10 ; =_020F677C
|
||||
ldr r3, _0202AB14 ; =_020F677C + 1
|
||||
ldrb r1, [r1, r4]
|
||||
ldrb r3, [r3, r4]
|
||||
add r3, r1, r3
|
||||
sub r5, r3, #1
|
||||
cmp r1, r5
|
||||
bgt _0202AB08
|
||||
mov r3, #0xa
|
||||
lsl r3, r3, #6
|
||||
_0202AAF8:
|
||||
add r4, r0, r1
|
||||
ldrb r4, [r4, r3]
|
||||
cmp r4, #0xff
|
||||
beq _0202AB02
|
||||
add r2, r2, #1
|
||||
_0202AB02:
|
||||
add r1, r1, #1
|
||||
cmp r1, r5
|
||||
ble _0202AAF8
|
||||
_0202AB08:
|
||||
lsl r0, r2, #0x18
|
||||
lsr r0, r0, #0x18
|
||||
pop {r4, r5}
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
_0202AB10: .word _020F677C
|
||||
_0202AB14: .word _020F677C + 1
|
||||
thumb_func_end sub_0202AAD4
|
||||
|
||||
thumb_func_start sub_0202AB18
|
||||
sub_0202AB18: ; 0x0202AB18
|
||||
push {r4, r5, r6, r7, lr}
|
||||
|
@ -27268,10 +27268,10 @@
|
||||
.public Pokedex_Enable
|
||||
.public Pokedex_GetSeenFormeByIdx
|
||||
.public Pokedex_GetSeenFormeNum
|
||||
.public sub_0202A8A8
|
||||
.public Sav2_BerryPotRTC_init
|
||||
.public Sav2_FieldApricornTrees_get
|
||||
.public sub_0202A978
|
||||
.public sub_0202A988
|
||||
.public Sav2_BerryPots_get
|
||||
.public Sav2_BerryPotRTC_get
|
||||
.public Sav2_GetGymmickPtr
|
||||
.public sub_0202A9C4
|
||||
.public sub_0202A9D8
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define POKEHEARTGOLD_CONSTANTS_GLOBAL_H
|
||||
|
||||
#include "constants/rgb.h"
|
||||
#include "constants/charcode.h"
|
||||
|
||||
#define OT_NAME_LENGTH 7
|
||||
#define POKEMON_NAME_LENGTH 10
|
||||
|
@ -15,6 +15,11 @@ typedef enum TimeOfDayWildParam {
|
||||
TIMEOFDAY_WILD_NITE,
|
||||
} TimeOfDayWildParam;
|
||||
|
||||
struct GF_RTC_DateTime {
|
||||
RTCDate date;
|
||||
RTCTime time;
|
||||
};
|
||||
|
||||
BOOL IsNighttime(void);
|
||||
void GF_RTC_CopyTime(RTCTime *time);
|
||||
void GF_RTC_CopyDate(RTCDate *date);
|
||||
|
@ -46,4 +46,6 @@ struct Gymmick {
|
||||
};
|
||||
};
|
||||
|
||||
void SavGymmick_Clear(struct Gymmick *gymmick);
|
||||
|
||||
#endif //POKEHEARTGOLD_GYMMICK_H
|
||||
|
@ -12,7 +12,7 @@
|
||||
#define SAVE_POKEDEX 6
|
||||
#define SAVE_DAYCARE 7
|
||||
#define SAVE_UNK_8 8
|
||||
#define SAVE_UNK_9 9
|
||||
#define SAVE_MISC 9
|
||||
#define SAVE_UNK_10 10
|
||||
#define SAVE_UNK_11 11
|
||||
#define SAVE_DRESSUP_DATA 12
|
||||
|
@ -2,6 +2,9 @@
|
||||
#define POKEHEARTGOLD_SAVE_MISC_DATA_H
|
||||
|
||||
#include "save.h"
|
||||
#include "mail_message.h"
|
||||
#include "gf_rtc.h"
|
||||
#include "gymmick.h"
|
||||
|
||||
typedef struct APRICORN_TREE {
|
||||
u8 unk_0;
|
||||
@ -9,17 +12,40 @@ typedef struct APRICORN_TREE {
|
||||
u16 unk_2;
|
||||
} APRICORN_TREE;
|
||||
|
||||
typedef struct BERRY_POT {
|
||||
u8 unk_0;
|
||||
u8 unk_1;
|
||||
u8 filler_2[10];
|
||||
} BERRY_POT;
|
||||
|
||||
#define MAX_APRICORN_TREE 128
|
||||
#define NUM_APRICORN_TREE 31
|
||||
|
||||
#define MAX_BERRY_POT 4
|
||||
|
||||
typedef struct SAVE_MISC_DATA {
|
||||
APRICORN_TREE apricorn_trees[MAX_APRICORN_TREE];
|
||||
u8 filler_0200[0x70];
|
||||
BERRY_POT berry_pots[MAX_BERRY_POT];
|
||||
struct GF_RTC_DateTime berry_datetime;
|
||||
struct Gymmick gymmick;
|
||||
u16 rivalName[OT_NAME_LENGTH + 1];
|
||||
u8 filler_0280[0x60];
|
||||
u8 unk_0280[8]; // 3 chunks of size (4, 2, 2)
|
||||
u8 filler_0288[0x10];
|
||||
u16 unk_0298;
|
||||
u8 unk_029A_0:7;
|
||||
u8 unk_029A_7:1;
|
||||
u8 unk_029B_0:1;
|
||||
u8 unk_029B_1:5;
|
||||
u8 filer_029C[4];
|
||||
MAIL_MESSAGE unk_02A0;
|
||||
u32 unk_02A8[2][5];
|
||||
u8 filler_02D0[8];
|
||||
u32 unk_02D8;
|
||||
u8 unk_02DC;
|
||||
u8 dummy_02DD[3];
|
||||
} SAVE_MISC_DATA;
|
||||
|
||||
const SAVE_MISC_DATA *Sav2_Misc_const_get(SAVEDATA *saveData);
|
||||
const SAVE_MISC_DATA *Sav2_Misc_const_get(const SAVEDATA *saveData);
|
||||
const u16 *Sav2_Misc_RivalName_const_get(const SAVE_MISC_DATA *misc);
|
||||
|
||||
#endif //POKEHEARTGOLD_SAVE_MISC_DATA_H
|
||||
|
1
main.lsf
1
main.lsf
@ -94,6 +94,7 @@ Static main
|
||||
Object unk_020290B4.o
|
||||
Object daycare.o
|
||||
Object pokedex.o
|
||||
Object save_misc.o
|
||||
Object unk_0202A888.o
|
||||
Object options.o
|
||||
Object apricorn_tree_sys.o
|
||||
|
150
src/save_misc.c
Normal file
150
src/save_misc.c
Normal file
@ -0,0 +1,150 @@
|
||||
#include "save_misc_data.h"
|
||||
#include "apricorn_tree.h"
|
||||
#include "easy_chat.h"
|
||||
#include "msgdata/msg/msg_0287.h"
|
||||
|
||||
void Sav2_BerryPots_init(BERRY_POT *berryPot) {
|
||||
int i;
|
||||
|
||||
MI_CpuFill8(berryPot, 0, MAX_BERRY_POT * sizeof(BERRY_POT));
|
||||
for (i = 0; i < MAX_BERRY_POT; i++) {
|
||||
berryPot[i].unk_1 = 0;
|
||||
berryPot[i].unk_0 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void Sav2_BerryPotRTC_init(struct GF_RTC_DateTime *dateTime) {
|
||||
GF_RTC_CopyDateTime(&dateTime->date, &dateTime->time);
|
||||
}
|
||||
|
||||
u32 Sav2_Misc_sizeof(void) {
|
||||
return sizeof(SAVE_MISC_DATA);
|
||||
}
|
||||
|
||||
void Sav2_Misc_init(SAVE_MISC_DATA *saveMiscData) {
|
||||
int i;
|
||||
|
||||
MI_CpuClearFast(saveMiscData, sizeof(SAVE_MISC_DATA));
|
||||
ApricornTrees_init(saveMiscData->apricorn_trees);
|
||||
Sav2_BerryPots_init(saveMiscData->berry_pots);
|
||||
Sav2_BerryPotRTC_init(&saveMiscData->berry_datetime);
|
||||
SavGymmick_Clear(&saveMiscData->gymmick);
|
||||
MI_CpuFill16(saveMiscData->rivalName, EOS, OT_NAME_LENGTH + 1);
|
||||
MI_CpuFill8(saveMiscData->unk_0280, 0xFF, 8);
|
||||
MailMsg_init_withBank(&saveMiscData->unk_02A0, MAILMSG_BANK_0295_GMM);
|
||||
saveMiscData->unk_02A0.msg_no = msg_0295_00000;
|
||||
saveMiscData->unk_02A0.fields[0] = GetECWordIndexByPair(NARC_msg_msg_0287_bin, msg_0287_regards);
|
||||
saveMiscData->unk_02A0.fields[1] = EC_WORD_NULL;
|
||||
for (i = 0; i < 5; i++) {
|
||||
saveMiscData->unk_02A8[0][i] = -1;
|
||||
saveMiscData->unk_02A8[1][i] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
SAVE_MISC_DATA *Sav2_Misc_get(SAVEDATA *saveData) {
|
||||
return SavArray_get(saveData, SAVE_MISC);
|
||||
}
|
||||
|
||||
const SAVE_MISC_DATA *Sav2_Misc_const_get(const SAVEDATA *saveData) {
|
||||
return SavArray_const_get(saveData, SAVE_MISC);
|
||||
}
|
||||
|
||||
APRICORN_TREE *Sav2_FieldApricornTrees_get(SAVEDATA *saveData) {
|
||||
SAVE_MISC_DATA *misc;
|
||||
misc = SavArray_get(saveData, SAVE_MISC);
|
||||
return misc->apricorn_trees;
|
||||
}
|
||||
|
||||
BERRY_POT *Sav2_BerryPots_get(SAVEDATA *saveData) {
|
||||
SAVE_MISC_DATA *misc;
|
||||
misc = SavArray_get(saveData, SAVE_MISC);
|
||||
return misc->berry_pots;
|
||||
}
|
||||
|
||||
struct GF_RTC_DateTime *Sav2_BerryPotRTC_get(SAVEDATA *saveData) {
|
||||
SAVE_MISC_DATA *misc;
|
||||
misc = SavArray_get(saveData, SAVE_MISC);
|
||||
return &misc->berry_datetime;
|
||||
}
|
||||
|
||||
struct Gymmick *Sav2_GetGymmickPtr(SAVEDATA *saveData) {
|
||||
SAVE_MISC_DATA *misc;
|
||||
misc = SavArray_get(saveData, SAVE_MISC);
|
||||
return &misc->gymmick;
|
||||
}
|
||||
|
||||
const u16 *Sav2_Misc_RivalName_const_get(const SAVE_MISC_DATA *saveMiscData) {
|
||||
return saveMiscData->rivalName;
|
||||
}
|
||||
|
||||
void Sav2_Misc_RivalName_set(SAVE_MISC_DATA *saveMiscData, const STRING *name) {
|
||||
CopyStringToU16Array(name, saveMiscData->rivalName, OT_NAME_LENGTH + 1);
|
||||
}
|
||||
|
||||
void sub_0202A9C4(SAVE_MISC_DATA *saveMiscData) {
|
||||
saveMiscData->unk_029B_0 = TRUE;
|
||||
}
|
||||
|
||||
BOOL sub_0202A9D8(SAVE_MISC_DATA *saveMiscData) {
|
||||
return saveMiscData->unk_029B_0;
|
||||
}
|
||||
|
||||
void sub_0202A9E8(SAVE_MISC_DATA *saveMiscData, int a1, int a2, int a3) {
|
||||
saveMiscData->unk_0298 = a1;
|
||||
saveMiscData->unk_029A_0 = a2;
|
||||
saveMiscData->unk_029A_7 = a3;
|
||||
}
|
||||
|
||||
void sub_0202AA20(SAVE_MISC_DATA *saveMiscData, int *a1, int *a2, int *a3) {
|
||||
*a1 = saveMiscData->unk_0298;
|
||||
*a2 = saveMiscData->unk_029A_0;
|
||||
*a3 = saveMiscData->unk_029A_7;
|
||||
}
|
||||
|
||||
const u8 _020F677C[3][2] = {
|
||||
{0, 4},
|
||||
{4, 2},
|
||||
{6, 2},
|
||||
};
|
||||
|
||||
BOOL sub_0202AA44(SAVE_MISC_DATA *saveMiscData, int a1, int a2) {
|
||||
int i;
|
||||
if (a1 > NELEMS(_020F677C) - 1) {
|
||||
return FALSE;
|
||||
}
|
||||
for (i = 0; i < _020F677C[a1][1]; i++) {
|
||||
if (saveMiscData->unk_0280[_020F677C[a1][0] + i] == 0xFF) {
|
||||
break;
|
||||
}
|
||||
if (saveMiscData->unk_0280[_020F677C[a1][0] + i] == a2) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_0202AA9C(SAVE_MISC_DATA *saveMiscData, int a1) {
|
||||
int i;
|
||||
if (a1 > NELEMS(_020F677C) - 1) {
|
||||
return;
|
||||
}
|
||||
for (i = 0; i < _020F677C[a1][1]; i++) {
|
||||
saveMiscData->unk_0280[_020F677C[a1][0] + i] = 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_0202AAD4(SAVE_MISC_DATA *saveMiscData, int a1) {
|
||||
int n = 0;
|
||||
int i, min, max;
|
||||
if (a1 > NELEMS(_020F677C) - 1) {
|
||||
return 0;
|
||||
}
|
||||
min = _020F677C[a1][0];
|
||||
max = _020F677C[a1][0] + _020F677C[a1][1] - 1;
|
||||
for (i = min; i <= max; i++) {
|
||||
if (saveMiscData->unk_0280[i] != 0xFF) {
|
||||
n++;
|
||||
}
|
||||
}
|
||||
return n;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user