mirror of
https://github.com/pret/pokediamond.git
synced 2026-04-25 15:42:51 -05:00
Encryption2
This commit is contained in:
parent
d520d491dd
commit
7f477efbcc
|
|
@ -4732,7 +4732,7 @@
|
|||
.extern Pokemon_New
|
||||
.extern Pokemon_UnlockEncryption
|
||||
.extern Pokemon_LockEncryption
|
||||
.extern AcquireBoxMonLock
|
||||
.extern BoxPokemon_UnlockEncryption
|
||||
.extern BoxPokemon_LockEncryption
|
||||
.extern Pokemon_InitWithParams
|
||||
.extern Pokemon_InitWithNature
|
||||
|
|
|
|||
|
|
@ -5455,7 +5455,7 @@ ov14_021DA168: ; 0x021DA168
|
|||
mov r1, #0
|
||||
add r5, r0, #0
|
||||
str r1, [sp, #4]
|
||||
bl AcquireBoxMonLock
|
||||
bl BoxPokemon_UnlockEncryption
|
||||
str r0, [sp]
|
||||
add r0, r5, #0
|
||||
mov r1, #0xac
|
||||
|
|
@ -9189,7 +9189,7 @@ ov14_021DBEAC: ; 0x021DBEAC
|
|||
add r0, r5, #0
|
||||
add r6, r2, #0
|
||||
add r4, #0x4c
|
||||
bl AcquireBoxMonLock
|
||||
bl BoxPokemon_UnlockEncryption
|
||||
str r0, [sp]
|
||||
str r5, [r7, #0x4c]
|
||||
add r0, r5, #0
|
||||
|
|
@ -18859,7 +18859,7 @@ ov14_021E0940: ; 0x021E0940
|
|||
str r2, [sp, #8]
|
||||
str r3, [sp, #0xc]
|
||||
ldr r4, [sp, #0x64]
|
||||
bl AcquireBoxMonLock
|
||||
bl BoxPokemon_UnlockEncryption
|
||||
lsl r0, r0, #0x18
|
||||
lsr r0, r0, #0x18
|
||||
str r0, [sp, #0x10]
|
||||
|
|
@ -18987,7 +18987,7 @@ ov14_021E0A60: ; 0x021E0A60
|
|||
str r2, [sp, #8]
|
||||
add r7, r3, #0
|
||||
ldr r4, [sp, #0x70]
|
||||
bl AcquireBoxMonLock
|
||||
bl BoxPokemon_UnlockEncryption
|
||||
str r0, [sp, #0x14]
|
||||
add r0, r6, #0
|
||||
mov r1, #0x4c
|
||||
|
|
@ -21819,7 +21819,7 @@ _021E204A:
|
|||
bl PCStorage_GetMonByIndexPair
|
||||
add r4, r4, #1
|
||||
add r5, r0, #0
|
||||
bl AcquireBoxMonLock
|
||||
bl BoxPokemon_UnlockEncryption
|
||||
lsl r0, r0, #0x18
|
||||
lsr r0, r0, #0x18
|
||||
str r0, [sp, #0x1c]
|
||||
|
|
|
|||
|
|
@ -318,7 +318,7 @@ _02254A7A:
|
|||
str r0, [sp, #8]
|
||||
bl DaycareMon_GetBoxMon
|
||||
add r4, r0, #0
|
||||
bl AcquireBoxMonLock
|
||||
bl BoxPokemon_UnlockEncryption
|
||||
str r0, [sp, #0xc]
|
||||
add r0, r4, #0
|
||||
bl sub_0206B688
|
||||
|
|
|
|||
|
|
@ -10832,7 +10832,7 @@ ov80_02232C88: ; 0x02232C88
|
|||
add r7, r2, #0
|
||||
add r6, r3, #0
|
||||
ldr r4, [sp, #0x40]
|
||||
bl AcquireBoxMonLock
|
||||
bl BoxPokemon_UnlockEncryption
|
||||
add r0, r5, #0
|
||||
mov r1, #0xab
|
||||
mov r2, #0
|
||||
|
|
@ -11266,7 +11266,7 @@ ov80_02233018: ; 0x02233018
|
|||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r7, r0, #0
|
||||
mov r4, #0
|
||||
bl AcquireBoxMonLock
|
||||
bl BoxPokemon_UnlockEncryption
|
||||
ldr r5, _02233050 ; =0x02237220
|
||||
str r0, [sp]
|
||||
add r6, r4, #0
|
||||
|
|
|
|||
|
|
@ -999,7 +999,7 @@ _0223860E:
|
|||
ldr r4, [r0, #4]
|
||||
_02238610:
|
||||
add r0, r4, #0
|
||||
bl AcquireBoxMonLock
|
||||
bl BoxPokemon_UnlockEncryption
|
||||
str r0, [sp, #0x20]
|
||||
add r0, sp, #0x34
|
||||
add r1, r4, #0
|
||||
|
|
|
|||
|
|
@ -21879,7 +21879,7 @@ MigrateBoxMon: ; 0x02237F6C
|
|||
add r0, r4, #0
|
||||
bl BoxPokemon_Init
|
||||
add r0, r4, #0
|
||||
bl AcquireBoxMonLock
|
||||
bl BoxPokemon_UnlockEncryption
|
||||
mov r1, #0
|
||||
str r0, [sp]
|
||||
add r0, r6, #0
|
||||
|
|
|
|||
|
|
@ -126,52 +126,54 @@ Pokemon *Pokemon_New(HeapID heapID) {
|
|||
}
|
||||
|
||||
BOOL Pokemon_UnlockEncryption(Pokemon *mon) {
|
||||
BOOL ret = FALSE;
|
||||
BOOL wasDecrypted = FALSE;
|
||||
|
||||
if (!mon->box.partyDecrypted) {
|
||||
ret = TRUE;
|
||||
wasDecrypted = TRUE;
|
||||
GF_ASSERT(!mon->box.boxDecrypted);
|
||||
mon->box.partyDecrypted = TRUE;
|
||||
mon->box.boxDecrypted = TRUE;
|
||||
DECRYPT_PARTY(mon);
|
||||
DECRYPT_BOX(&mon->box);
|
||||
}
|
||||
return ret;
|
||||
return wasDecrypted;
|
||||
}
|
||||
|
||||
BOOL Pokemon_LockEncryption(Pokemon *mon, BOOL decrypt_result) {
|
||||
BOOL ret = FALSE;
|
||||
if (mon->box.partyDecrypted == TRUE && decrypt_result == TRUE) {
|
||||
ret = TRUE;
|
||||
BOOL Pokemon_LockEncryption(Pokemon *mon, BOOL encrypt) {
|
||||
BOOL wasEncrypted = FALSE;
|
||||
|
||||
if (mon->box.partyDecrypted == TRUE && encrypt == TRUE) {
|
||||
wasEncrypted = TRUE;
|
||||
mon->box.partyDecrypted = FALSE;
|
||||
mon->box.boxDecrypted = FALSE;
|
||||
ENCRYPT_PARTY(mon);
|
||||
mon->box.checksum = CHECKSUM(&mon->box);
|
||||
ENCRYPT_BOX(&mon->box);
|
||||
}
|
||||
return ret;
|
||||
return wasEncrypted;
|
||||
}
|
||||
|
||||
BOOL AcquireBoxMonLock(BoxPokemon *mon) {
|
||||
BOOL ret = FALSE;
|
||||
BOOL BoxPokemon_UnlockEncryption(BoxPokemon *boxMon) {
|
||||
BOOL wasDecrypted = FALSE;
|
||||
|
||||
if (!mon->boxDecrypted) {
|
||||
ret = TRUE;
|
||||
mon->boxDecrypted = TRUE;
|
||||
DECRYPT_BOX(mon);
|
||||
if (!boxMon->boxDecrypted) {
|
||||
wasDecrypted = TRUE;
|
||||
boxMon->boxDecrypted = TRUE;
|
||||
DECRYPT_BOX(boxMon);
|
||||
}
|
||||
return ret;
|
||||
return wasDecrypted;
|
||||
}
|
||||
|
||||
BOOL BoxPokemon_LockEncryption(BoxPokemon *mon, BOOL decrypt_result) {
|
||||
BOOL ret = FALSE;
|
||||
if (mon->boxDecrypted == TRUE && decrypt_result == TRUE) {
|
||||
ret = TRUE;
|
||||
mon->boxDecrypted = FALSE;
|
||||
mon->checksum = CHECKSUM(mon);
|
||||
ENCRYPT_BOX(mon);
|
||||
BOOL BoxPokemon_LockEncryption(BoxPokemon *boxMon, BOOL encrypt) {
|
||||
BOOL wasEncrypted = FALSE;
|
||||
|
||||
if (boxMon->boxDecrypted == TRUE && encrypt == TRUE) {
|
||||
wasEncrypted = TRUE;
|
||||
boxMon->boxDecrypted = FALSE;
|
||||
boxMon->checksum = CHECKSUM(boxMon);
|
||||
ENCRYPT_BOX(boxMon);
|
||||
}
|
||||
return ret;
|
||||
return wasEncrypted;
|
||||
}
|
||||
|
||||
void Pokemon_InitWithParams(Pokemon *mon, int species, int level, int ivs, BOOL hasFixedPersonality, int personality, int otIDType, int otID) {
|
||||
|
|
@ -199,7 +201,7 @@ void Pokemon_InitWithParams(Pokemon *mon, int species, int level, int ivs, BOOL
|
|||
void BoxPokemon_InitWithParams(BoxPokemon *boxMon, int species, int level, int ivs, BOOL hasFixedPersonality, int personality, int otIDType, int otID) {
|
||||
u32 var1, var2;
|
||||
BoxPokemon_Init(boxMon);
|
||||
BOOL reencrypt = AcquireBoxMonLock(boxMon);
|
||||
BOOL reencrypt = BoxPokemon_UnlockEncryption(boxMon);
|
||||
if (!hasFixedPersonality) {
|
||||
personality = (LCRandom() | (LCRandom() << 16));
|
||||
}
|
||||
|
|
@ -1835,7 +1837,7 @@ int Pokemon_CalcLevel(Pokemon *mon) {
|
|||
}
|
||||
|
||||
int BoxPokemon_CalcLevel(BoxPokemon *boxMon) {
|
||||
BOOL reencrypt = AcquireBoxMonLock(boxMon);
|
||||
BOOL reencrypt = BoxPokemon_UnlockEncryption(boxMon);
|
||||
int species = BoxPokemon_GetData(boxMon, MON_DATA_SPECIES, NULL);
|
||||
int exp = BoxPokemon_GetData(boxMon, MON_DATA_EXPERIENCE, NULL);
|
||||
BoxPokemon_LockEncryption(boxMon, reencrypt);
|
||||
|
|
@ -1867,7 +1869,7 @@ u8 Pokemon_GetNature(Pokemon *mon) {
|
|||
}
|
||||
|
||||
u8 BoxPokemon_GetNature(BoxPokemon *boxMon) {
|
||||
BOOL reencrypt = AcquireBoxMonLock(boxMon);
|
||||
BOOL reencrypt = BoxPokemon_UnlockEncryption(boxMon);
|
||||
u32 personality = BoxPokemon_GetData(boxMon, MON_DATA_PERSONALITY, NULL);
|
||||
BoxPokemon_LockEncryption(boxMon, reencrypt);
|
||||
return Personality_GetNature(personality);
|
||||
|
|
@ -1991,7 +1993,7 @@ u8 Pokemon_GetGender(Pokemon *mon) {
|
|||
}
|
||||
|
||||
u8 BoxPokemon_GetGender(BoxPokemon *boxMon) {
|
||||
BOOL reencrypt = AcquireBoxMonLock(boxMon);
|
||||
BOOL reencrypt = BoxPokemon_UnlockEncryption(boxMon);
|
||||
u16 species = BoxPokemon_GetData(boxMon, MON_DATA_SPECIES, NULL);
|
||||
u32 personality = BoxPokemon_GetData(boxMon, MON_DATA_PERSONALITY, NULL);
|
||||
BoxPokemon_LockEncryption(boxMon, reencrypt);
|
||||
|
|
@ -2077,7 +2079,7 @@ void sub_02068B68(struct SomeDrawPokemonStruct *spC, Pokemon *pokemon, u8 sp10)
|
|||
}
|
||||
|
||||
void sub_02068B70(struct SomeDrawPokemonStruct *spC, BoxPokemon *boxMon, u8 sp10) {
|
||||
BOOL decry = AcquireBoxMonLock(boxMon);
|
||||
BOOL decry = BoxPokemon_UnlockEncryption(boxMon);
|
||||
u16 species = (u16)BoxPokemon_GetData(boxMon, MON_DATA_SPECIES_OR_EGG, NULL);
|
||||
u8 gender = BoxPokemon_GetGender(boxMon);
|
||||
u8 shiny = BoxPokemon_IsShiny(boxMon);
|
||||
|
|
@ -2655,7 +2657,7 @@ void BoxPokemon_SetDefaultMoves(BoxPokemon *boxMon) {
|
|||
u8 level;
|
||||
u16 move;
|
||||
levelUpLearnset = AllocFromHeap(HEAP_ID_DEFAULT, MAX_LEARNED_MOVES * sizeof(u16));
|
||||
decry = AcquireBoxMonLock(boxMon);
|
||||
decry = BoxPokemon_UnlockEncryption(boxMon);
|
||||
species = (u16)BoxPokemon_GetData(boxMon, MON_DATA_SPECIES, NULL);
|
||||
form = BoxPokemon_GetData(boxMon, MON_DATA_FORM, NULL);
|
||||
level = (u8)BoxPokemon_CalcLevel(boxMon);
|
||||
|
|
@ -2680,7 +2682,7 @@ u32 sub_02069698(Pokemon *pokemon, u16 move) {
|
|||
u32 sub_020696A8(BoxPokemon *boxMon, u16 move) {
|
||||
u32 ret = 0xFFFF;
|
||||
int i;
|
||||
BOOL decry = AcquireBoxMonLock(boxMon);
|
||||
BOOL decry = BoxPokemon_UnlockEncryption(boxMon);
|
||||
u16 cur_move;
|
||||
for (i = 0; i < 4; i++) {
|
||||
cur_move = (u16)BoxPokemon_GetData(boxMon, MON_DATA_MOVE1 + i, NULL);
|
||||
|
|
@ -2703,7 +2705,7 @@ void sub_02069708(Pokemon *pokemon, u16 move) {
|
|||
}
|
||||
|
||||
void sub_02069718(BoxPokemon *boxMon, u16 move) {
|
||||
BOOL decry = AcquireBoxMonLock(boxMon);
|
||||
BOOL decry = BoxPokemon_UnlockEncryption(boxMon);
|
||||
int i;
|
||||
u16 moves[4];
|
||||
u8 pp[4];
|
||||
|
|
@ -3207,7 +3209,7 @@ void sub_0206A1C4(Pokemon *pokemon) {
|
|||
}
|
||||
|
||||
void sub_0206A1CC(BoxPokemon *boxMon) {
|
||||
BOOL decry = AcquireBoxMonLock(boxMon);
|
||||
BOOL decry = BoxPokemon_UnlockEncryption(boxMon);
|
||||
int species = (int)BoxPokemon_GetData(boxMon, MON_DATA_SPECIES, NULL);
|
||||
int pid = (int)BoxPokemon_GetData(boxMon, MON_DATA_PERSONALITY, NULL);
|
||||
int ability1 = (int)Species_GetValue(species, SPECIES_DATA_ABILITY_1);
|
||||
|
|
@ -3514,7 +3516,7 @@ void Pokemon_RemoveCapsule(Pokemon *pokemon) {
|
|||
void RestoreBoxMonPP(BoxPokemon *boxMon) {
|
||||
int i;
|
||||
u8 pp;
|
||||
BOOL decry = AcquireBoxMonLock(boxMon);
|
||||
BOOL decry = BoxPokemon_UnlockEncryption(boxMon);
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (BoxPokemon_GetData(boxMon, MON_DATA_MOVE1 + i, NULL) != MOVE_NONE) {
|
||||
pp = (u8)BoxPokemon_GetData(boxMon, MON_DATA_MOVE1_MAX_PP + i, NULL);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ u16 BoxMon_GetAlternateForm(struct BoxPokemon *boxmon);
|
|||
u32 sub_0206B6D4(u32 species, u32 is_egg, u32 form);
|
||||
|
||||
u32 sub_0206B688(struct BoxPokemon *boxmon) {
|
||||
BOOL decry = AcquireBoxMonLock(boxmon);
|
||||
BOOL decry = BoxPokemon_UnlockEncryption(boxmon);
|
||||
u32 species = BoxPokemon_GetData(boxmon, MON_DATA_SPECIES, NULL);
|
||||
u32 is_egg = BoxPokemon_GetData(boxmon, MON_DATA_IS_EGG, NULL);
|
||||
u32 form = BoxMon_GetAlternateForm(boxmon);
|
||||
|
|
@ -100,7 +100,7 @@ u32 sub_0206B7BC(u32 species, u32 form, u32 is_egg) {
|
|||
}
|
||||
|
||||
u32 sub_0206B83C(struct BoxPokemon *boxmon) {
|
||||
BOOL decry = AcquireBoxMonLock(boxmon);
|
||||
BOOL decry = BoxPokemon_UnlockEncryption(boxmon);
|
||||
u32 form = BoxMon_GetAlternateForm(boxmon);
|
||||
u32 species = BoxPokemon_GetData(boxmon, MON_DATA_SPECIES, NULL);
|
||||
u32 is_egg = BoxPokemon_GetData(boxmon, MON_DATA_IS_EGG, NULL);
|
||||
|
|
|
|||
|
|
@ -228,9 +228,9 @@ void BoxPokemon_Init(BoxPokemon *boxMon);
|
|||
u32 SizeOfStructPokemon(void);
|
||||
Pokemon *Pokemon_New(HeapID heapId);
|
||||
BOOL Pokemon_UnlockEncryption(Pokemon *mon);
|
||||
BOOL Pokemon_LockEncryption(Pokemon *mon, BOOL decrypt_result);
|
||||
BOOL AcquireBoxMonLock(BoxPokemon *boxMon);
|
||||
BOOL BoxPokemon_LockEncryption(BoxPokemon *boxMon, BOOL decrypt_result);
|
||||
BOOL Pokemon_LockEncryption(Pokemon *mon, BOOL encrypt);
|
||||
BOOL BoxPokemon_UnlockEncryption(BoxPokemon *boxMon);
|
||||
BOOL BoxPokemon_LockEncryption(BoxPokemon *boxMon, BOOL encrypt);
|
||||
void Pokemon_InitWithParams(Pokemon *mon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId);
|
||||
void BoxPokemon_InitWithParams(BoxPokemon *boxMon, int species, int level, int ivs, BOOL hasFixedPersonality, int personality, int otIDType, int otID);
|
||||
void Pokemon_InitWithNature(Pokemon *mon, u16 species, u8 level, u8 fixedIv, u8 nature);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user