diff --git a/asm/include/main_0204F0A0.inc b/asm/include/main_0204F0A0.inc index 251de8a6..c60e0f52 100644 --- a/asm/include/main_0204F0A0.inc +++ b/asm/include/main_0204F0A0.inc @@ -1,11 +1,4 @@ #pragma once -.public _0209E3A1 -.public _0209E3A2 -.public _0209E3A3 -.public _022AB4F8 -.public _022AB5AC -.public _022AB69C -.public ADVENTURE_LOG_PTR .public DUNGEON_DATA_LIST .public DungeonSwapIdToIdx .public DungeonSwapIdxToId @@ -35,8 +28,13 @@ .public ResetPlayTimer .public SECONDARY_TERRAIN_TYPES .public StrncpyName +.public TEAM_MEMBER_TABLE_PTR +.public _0209E3A1 +.public _0209E3A2 +.public _0209E3A3 +.public _022AB4F8 +.public _022AB5AC .public sub_0204CEE0 .public sub_02050E5C .public sub_02050E8C .public sub_0205EE40 -.public TEAM_MEMBER_TABLE_PTR diff --git a/asm/include/main_0204FA70.inc b/asm/include/main_0204FA70.inc new file mode 100644 index 00000000..d6d4130b --- /dev/null +++ b/asm/include/main_0204FA70.inc @@ -0,0 +1,2 @@ +#pragma once +.public ADVENTURE_LOG_PTR diff --git a/asm/include/main_0204FD38.inc b/asm/include/main_0204FD38.inc new file mode 100644 index 00000000..6f70f09b --- /dev/null +++ b/asm/include/main_0204FD38.inc @@ -0,0 +1 @@ +#pragma once diff --git a/asm/include/main_0204FE58.inc b/asm/include/main_0204FE58.inc index d68ec0f2..37a84e25 100644 --- a/asm/include/main_0204FE58.inc +++ b/asm/include/main_0204FE58.inc @@ -1,27 +1,3 @@ #pragma once -.public _0209E6BD -.public _022AB924 -.public ADVENTURE_LOG_ENCOUNTERS_MONSTER_IDS .public ADVENTURE_LOG_PTR -.public ARM9_UNKNOWN_DATA__NA_209E6BC -.public CONVERSION2_TYPE_TABLE -.public Copy16BitsFrom -.public Copy16BitsTo -.public CopyNStringFromId -.public GetAdventureLogCompleted -.public GetBaseFormCastformCherrimDeoxys .public GetDexNumberVeneer -.public GetRankUpEntry -.public GetResolvedPerformanceProgressFlag -.public GetStringFromFileVeneer -.public IsItemValidVeneer -.public IsRealMove -.public MemZero -.public NormalizeTreasureBox -.public SetAdventureLogCompleted -.public SetResolvedPerformanceProgressFlag -.public StrncpyName -.public StrncpySimpleNoPad -.public StrncpySimpleNoPadSafe -.public TEAM_MEMBER_TABLE_PTR -.public TEAM_NAME diff --git a/asm/include/main_0204FFEC.inc b/asm/include/main_0204FFEC.inc new file mode 100644 index 00000000..dbca26e2 --- /dev/null +++ b/asm/include/main_0204FFEC.inc @@ -0,0 +1,8 @@ +#pragma once +.public ADVENTURE_LOG_ENCOUNTERS_MONSTER_IDS +.public ADVENTURE_LOG_PTR +.public GetBaseFormCastformCherrimDeoxys +.public GetDexNumberVeneer +.public IsRealMove +.public SetAdventureLogCompleted +.public TEAM_MEMBER_TABLE_PTR diff --git a/asm/include/main_02050300.inc b/asm/include/main_02050300.inc new file mode 100644 index 00000000..19875dc0 --- /dev/null +++ b/asm/include/main_02050300.inc @@ -0,0 +1,7 @@ +#pragma once +.public ADVENTURE_LOG_PTR +.public GetAdventureLogCompleted +.public IsItemValidVeneer +.public NormalizeTreasureBox +.public SetAdventureLogCompleted +.public SetResolvedPerformanceProgressFlag diff --git a/asm/include/main_020504BC.inc b/asm/include/main_020504BC.inc new file mode 100644 index 00000000..2122160b --- /dev/null +++ b/asm/include/main_020504BC.inc @@ -0,0 +1,18 @@ +#pragma once +.public ADVENTURE_LOG_PTR +.public ARM9_UNKNOWN_DATA__NA_209E6BC +.public CONVERSION2_TYPE_TABLE +.public ComputeSpecialCounters +.public Copy16BitsFrom +.public Copy16BitsTo +.public CopyNStringFromId +.public GetRankUpEntry +.public GetResolvedPerformanceProgressFlag +.public GetStringFromFileVeneer +.public MemZero +.public StrncpyName +.public StrncpySimpleNoPad +.public StrncpySimpleNoPadSafe +.public TEAM_NAME +.public _0209E6BD +.public _022AB924 diff --git a/asm/main_0204F0A0.s b/asm/main_0204F0A0.s index 5d5139c4..2df6a326 100644 --- a/asm/main_0204F0A0.s +++ b/asm/main_0204F0A0.s @@ -835,355 +835,3 @@ sub_0204FA0C: ; 0x0204FA0C _0204FA1C: .word sub_02050E8C _0204FA20: .word PLAY_TIME_SECONDS arm_func_end sub_0204FA0C - - arm_func_start SetAdventureLogStructLocation -SetAdventureLogStructLocation: ; 0x0204FA24 - ldr r1, _0204FA34 ; =_022AB69C - ldr r0, _0204FA38 ; =ADVENTURE_LOG_PTR - str r1, [r0] - bx lr - .align 2, 0 -_0204FA34: .word _022AB69C -_0204FA38: .word ADVENTURE_LOG_PTR - arm_func_end SetAdventureLogStructLocation - - arm_func_start SetAdventureLogDungeonFloor -SetAdventureLogDungeonFloor: ; 0x0204FA3C - ldr r1, _0204FA58 ; =ADVENTURE_LOG_PTR - ldrb r2, [r0] - ldr r1, [r1] - strb r2, [r1, #0x278] - ldrb r0, [r0, #1] - strb r0, [r1, #0x279] - bx lr - .align 2, 0 -_0204FA58: .word ADVENTURE_LOG_PTR - arm_func_end SetAdventureLogDungeonFloor - - arm_func_start GetAdventureLogDungeonFloor -GetAdventureLogDungeonFloor: ; 0x0204FA5C - ldr r0, _0204FA6C ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - add r0, r0, #0x278 - bx lr - .align 2, 0 -_0204FA6C: .word ADVENTURE_LOG_PTR - arm_func_end GetAdventureLogDungeonFloor - - arm_func_start ClearAdventureLogStruct -ClearAdventureLogStruct: ; 0x0204FA70 - mov r3, #0 - ldr r1, _0204FB98 ; =ADVENTURE_LOG_PTR - mov r0, r3 -_0204FA7C: - ldr r2, [r1] - str r0, [r2, r3, lsl #2] - add r3, r3, #1 - cmp r3, #4 - blt _0204FA7C - ldr r1, _0204FB98 ; =ADVENTURE_LOG_PTR - mov r3, #0 - ldr r2, [r1] - str r0, [r2, #0x2c] - ldr r2, [r1] - str r0, [r2, #0x30] - ldr r2, [r1] - str r0, [r2, #0x34] - ldr r2, [r1] - str r0, [r2, #0x28] - ldr r2, [r1] - str r0, [r2, #0x10] - ldr r2, [r1] - str r0, [r2, #0x14] - ldr r2, [r1] - str r0, [r2, #0x18] - ldr r2, [r1] - str r0, [r2, #0x1c] - ldr r2, [r1] - str r0, [r2, #0x20] - ldr r2, [r1] - str r0, [r2, #0x24] - ldr r2, [r1] - str r0, [r2, #0x38] - ldr r2, [r1] - str r0, [r2, #0x3c] - ldr r2, [r1] - str r0, [r2, #0x40] -_0204FB00: - ldr r2, [r1] - add r2, r2, r0, lsl #2 - str r3, [r2, #0x44] - ldr r2, [r1] - add r2, r2, r0, lsl #2 - add r0, r0, #1 - str r3, [r2, #0xd8] - cmp r0, #0x25 - blt _0204FB00 - ldr r0, _0204FB98 ; =ADVENTURE_LOG_PTR - mov r2, #0 -_0204FB2C: - ldr r1, [r0] - add r1, r1, r3, lsl #2 - add r3, r3, #1 - str r2, [r1, #0x16c] - cmp r3, #0x11 - blt _0204FB2C - ldr r0, _0204FB98 ; =ADVENTURE_LOG_PTR - mov ip, #0 -_0204FB4C: - ldr r1, [r0] - add r1, r1, r2, lsl #2 - add r2, r2, #1 - str ip, [r1, #0x1b0] - cmp r2, #0x2c - blt _0204FB4C - ldr r1, _0204FB98 ; =ADVENTURE_LOG_PTR - ldr r0, [r1] - str ip, [r0, #0x260] - mov r0, #0x3e8 -_0204FB74: - rsb r2, ip, #5 - mul r3, r2, r0 - ldr r2, [r1] - add r2, r2, ip, lsl #2 - add ip, ip, #1 - str r3, [r2, #0x264] - cmp ip, #5 - blt _0204FB74 - bx lr - .align 2, 0 -_0204FB98: .word ADVENTURE_LOG_PTR - arm_func_end ClearAdventureLogStruct - - arm_func_start SetAdventureLogCompleted -SetAdventureLogCompleted: ; 0x0204FB9C - ldr r1, _0204FBC0 ; =ADVENTURE_LOG_PTR - mov r3, r0, asr #5 - ldr ip, [r1] - and r0, r0, #0x1f - ldr r2, [ip, r3, lsl #2] - mov r1, #1 - orr r0, r2, r1, lsl r0 - str r0, [ip, r3, lsl #2] - bx lr - .align 2, 0 -_0204FBC0: .word ADVENTURE_LOG_PTR - arm_func_end SetAdventureLogCompleted - - arm_func_start IsAdventureLogNotEmpty -IsAdventureLogNotEmpty: ; 0x0204FBC4 - ldr r0, _0204FBF8 ; =ADVENTURE_LOG_PTR - mov r1, #0 - ldr r2, [r0] - b _0204FBE8 -_0204FBD4: - ldr r0, [r2, r1, lsl #2] - cmp r0, #0 - movne r0, #1 - bxne lr - add r1, r1, #1 -_0204FBE8: - cmp r1, #4 - blt _0204FBD4 - mov r0, #0 - bx lr - .align 2, 0 -_0204FBF8: .word ADVENTURE_LOG_PTR - arm_func_end IsAdventureLogNotEmpty - - arm_func_start GetAdventureLogCompleted -GetAdventureLogCompleted: ; 0x0204FBFC - ldr r1, _0204FC24 ; =ADVENTURE_LOG_PTR - mov r2, r0, asr #5 - ldr r1, [r1] - and r3, r0, #0x1f - ldr r0, [r1, r2, lsl #2] - mov r1, #1 - tst r0, r1, lsl r3 - moveq r1, #0 - and r0, r1, #0xff - bx lr - .align 2, 0 -_0204FC24: .word ADVENTURE_LOG_PTR - arm_func_end GetAdventureLogCompleted - - arm_func_start IncrementNbDungeonsCleared -IncrementNbDungeonsCleared: ; 0x0204FC28 - ldr r0, _0204FC64 ; =ADVENTURE_LOG_PTR - ldr r1, _0204FC68 ; =0x000F423F - ldr r3, [r0] - ldr r2, [r3, #0x10] - add r2, r2, #1 - str r2, [r3, #0x10] - ldr r3, [r0] - ldr r2, [r3] - orr r2, r2, #0x10 - str r2, [r3] - ldr r2, [r0] - ldr r0, [r2, #0x10] - cmp r0, r1 - strgt r1, [r2, #0x10] - bx lr - .align 2, 0 -_0204FC64: .word ADVENTURE_LOG_PTR -_0204FC68: .word 0x000F423F - arm_func_end IncrementNbDungeonsCleared - - arm_func_start GetNbDungeonsCleared -GetNbDungeonsCleared: ; 0x0204FC6C - ldr r0, _0204FC7C ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - ldr r0, [r0, #0x10] - bx lr - .align 2, 0 -_0204FC7C: .word ADVENTURE_LOG_PTR - arm_func_end GetNbDungeonsCleared - - arm_func_start IncrementNbFriendRescues -IncrementNbFriendRescues: ; 0x0204FC80 - ldr r0, _0204FCC0 ; =ADVENTURE_LOG_PTR - ldr r1, _0204FCC4 ; =0x000F423F - ldr r3, [r0] - ldr r2, [r3, #0x14] - add r2, r2, #1 - str r2, [r3, #0x14] - ldr r2, [r0] - ldr r0, [r2, #0x14] - cmp r0, r1 - ldr r0, _0204FCC0 ; =ADVENTURE_LOG_PTR - strgt r1, [r2, #0x14] - ldr r1, [r0] - ldr r0, [r1] - orr r0, r0, #0x40 - str r0, [r1] - bx lr - .align 2, 0 -_0204FCC0: .word ADVENTURE_LOG_PTR -_0204FCC4: .word 0x000F423F - arm_func_end IncrementNbFriendRescues - - arm_func_start GetNbFriendRescues -GetNbFriendRescues: ; 0x0204FCC8 - ldr r0, _0204FCD8 ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - ldr r0, [r0, #0x14] - bx lr - .align 2, 0 -_0204FCD8: .word ADVENTURE_LOG_PTR - arm_func_end GetNbFriendRescues - - arm_func_start IncrementNbEvolutions -IncrementNbEvolutions: ; 0x0204FCDC - ldr r0, _0204FD1C ; =ADVENTURE_LOG_PTR - ldr r1, _0204FD20 ; =0x000F423F - ldr r3, [r0] - ldr r2, [r3, #0x18] - add r2, r2, #1 - str r2, [r3, #0x18] - ldr r2, [r0] - ldr r0, [r2, #0x18] - cmp r0, r1 - ldr r0, _0204FD1C ; =ADVENTURE_LOG_PTR - strgt r1, [r2, #0x18] - ldr r1, [r0] - ldr r0, [r1] - orr r0, r0, #0x80 - str r0, [r1] - bx lr - .align 2, 0 -_0204FD1C: .word ADVENTURE_LOG_PTR -_0204FD20: .word 0x000F423F - arm_func_end IncrementNbEvolutions - - arm_func_start GetNbEvolutions -GetNbEvolutions: ; 0x0204FD24 - ldr r0, _0204FD34 ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - ldr r0, [r0, #0x18] - bx lr - .align 2, 0 -_0204FD34: .word ADVENTURE_LOG_PTR - arm_func_end GetNbEvolutions - - arm_func_start IncrementNbSteals -IncrementNbSteals: ; 0x0204FD38 - bx lr - arm_func_end IncrementNbSteals - - arm_func_start IncrementNbEggsHatched -IncrementNbEggsHatched: ; 0x0204FD3C - ldr r1, _0204FD70 ; =ADVENTURE_LOG_PTR - ldr r0, _0204FD74 ; =0x000F423F - ldr r2, [r1] - ldr r1, [r2, #0x1c] - cmp r1, r0 - addlt r0, r1, #1 - strlt r0, [r2, #0x1c] - ldr r0, _0204FD70 ; =ADVENTURE_LOG_PTR - ldr r1, [r0] - ldr r0, [r1] - orr r0, r0, #0x100 - str r0, [r1] - bx lr - .align 2, 0 -_0204FD70: .word ADVENTURE_LOG_PTR -_0204FD74: .word 0x000F423F - arm_func_end IncrementNbEggsHatched - - arm_func_start GetNbEggsHatched -GetNbEggsHatched: ; 0x0204FD78 - ldr r0, _0204FD88 ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - ldr r0, [r0, #0x1c] - bx lr - .align 2, 0 -_0204FD88: .word ADVENTURE_LOG_PTR - arm_func_end GetNbEggsHatched - - arm_func_start GetNbPokemonJoined -GetNbPokemonJoined: ; 0x0204FD8C - ldr r0, _0204FD9C ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - ldr r0, [r0, #0x2c] - bx lr - .align 2, 0 -_0204FD9C: .word ADVENTURE_LOG_PTR - arm_func_end GetNbPokemonJoined - - arm_func_start GetNbMovesLearned -GetNbMovesLearned: ; 0x0204FDA0 - ldr r0, _0204FDB0 ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - ldr r0, [r0, #0x34] - bx lr - .align 2, 0 -_0204FDB0: .word ADVENTURE_LOG_PTR - arm_func_end GetNbMovesLearned - - arm_func_start SetVictoriesOnOneFloor -SetVictoriesOnOneFloor: ; 0x0204FDB4 - ldr r1, _0204FDE0 ; =0x000F423F - cmp r0, r1 - movgt r0, r1 - ldr r1, _0204FDE4 ; =ADVENTURE_LOG_PTR - ldr r2, [r1] - str r0, [r2, #0x28] - ldr r1, [r1] - ldr r0, [r1] - orr r0, r0, #0x200 - str r0, [r1] - bx lr - .align 2, 0 -_0204FDE0: .word 0x000F423F -_0204FDE4: .word ADVENTURE_LOG_PTR - arm_func_end SetVictoriesOnOneFloor - - arm_func_start GetVictoriesOnOneFloor -GetVictoriesOnOneFloor: ; 0x0204FDE8 - ldr r0, _0204FDF8 ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - ldr r0, [r0, #0x28] - bx lr - .align 2, 0 -_0204FDF8: .word ADVENTURE_LOG_PTR - arm_func_end GetVictoriesOnOneFloor diff --git a/asm/main_0204FA70.s b/asm/main_0204FA70.s new file mode 100644 index 00000000..dcdd5c10 --- /dev/null +++ b/asm/main_0204FA70.s @@ -0,0 +1,89 @@ + .include "asm/macros.inc" + .include "main_0204FA70.inc" + + .text + + arm_func_start ClearAdventureLogStruct +ClearAdventureLogStruct: ; 0x0204FA70 + mov r3, #0 + ldr r1, _0204FB98 ; =ADVENTURE_LOG_PTR + mov r0, r3 +_0204FA7C: + ldr r2, [r1] + str r0, [r2, r3, lsl #2] + add r3, r3, #1 + cmp r3, #4 + blt _0204FA7C + ldr r1, _0204FB98 ; =ADVENTURE_LOG_PTR + mov r3, #0 + ldr r2, [r1] + str r0, [r2, #0x2c] + ldr r2, [r1] + str r0, [r2, #0x30] + ldr r2, [r1] + str r0, [r2, #0x34] + ldr r2, [r1] + str r0, [r2, #0x28] + ldr r2, [r1] + str r0, [r2, #0x10] + ldr r2, [r1] + str r0, [r2, #0x14] + ldr r2, [r1] + str r0, [r2, #0x18] + ldr r2, [r1] + str r0, [r2, #0x1c] + ldr r2, [r1] + str r0, [r2, #0x20] + ldr r2, [r1] + str r0, [r2, #0x24] + ldr r2, [r1] + str r0, [r2, #0x38] + ldr r2, [r1] + str r0, [r2, #0x3c] + ldr r2, [r1] + str r0, [r2, #0x40] +_0204FB00: + ldr r2, [r1] + add r2, r2, r0, lsl #2 + str r3, [r2, #0x44] + ldr r2, [r1] + add r2, r2, r0, lsl #2 + add r0, r0, #1 + str r3, [r2, #0xd8] + cmp r0, #0x25 + blt _0204FB00 + ldr r0, _0204FB98 ; =ADVENTURE_LOG_PTR + mov r2, #0 +_0204FB2C: + ldr r1, [r0] + add r1, r1, r3, lsl #2 + add r3, r3, #1 + str r2, [r1, #0x16c] + cmp r3, #0x11 + blt _0204FB2C + ldr r0, _0204FB98 ; =ADVENTURE_LOG_PTR + mov ip, #0 +_0204FB4C: + ldr r1, [r0] + add r1, r1, r2, lsl #2 + add r2, r2, #1 + str ip, [r1, #0x1b0] + cmp r2, #0x2c + blt _0204FB4C + ldr r1, _0204FB98 ; =ADVENTURE_LOG_PTR + ldr r0, [r1] + str ip, [r0, #0x260] + mov r0, #0x3e8 +_0204FB74: + rsb r2, ip, #5 + mul r3, r2, r0 + ldr r2, [r1] + add r2, r2, ip, lsl #2 + add ip, ip, #1 + str r3, [r2, #0x264] + cmp ip, #5 + blt _0204FB74 + bx lr + .align 2, 0 +_0204FB98: .word ADVENTURE_LOG_PTR + arm_func_end ClearAdventureLogStruct diff --git a/asm/main_0204FD38.s b/asm/main_0204FD38.s new file mode 100644 index 00000000..03c79c2b --- /dev/null +++ b/asm/main_0204FD38.s @@ -0,0 +1,9 @@ + .include "asm/macros.inc" + .include "main_0204FD38.inc" + + .text + + arm_func_start IncrementNbSteals +IncrementNbSteals: ; 0x0204FD38 + bx lr + arm_func_end IncrementNbSteals diff --git a/asm/main_0204FE58.s b/asm/main_0204FE58.s index e922beb8..fe84bb9c 100644 --- a/asm/main_0204FE58.s +++ b/asm/main_0204FE58.s @@ -30,1500 +30,3 @@ SetPokemonBattled: ; 0x0204FE58 .align 2, 0 _0204FEB0: .word ADVENTURE_LOG_PTR arm_func_end SetPokemonBattled - - arm_func_start GetNbPokemonBattled -GetNbPokemonBattled: ; 0x0204FEB4 - ldr r0, _0204FEC4 ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - ldr r0, [r0, #0x30] - bx lr - .align 2, 0 -_0204FEC4: .word ADVENTURE_LOG_PTR - arm_func_end GetNbPokemonBattled - - arm_func_start IncrementNbBigTreasureWins -IncrementNbBigTreasureWins: ; 0x0204FEC8 - ldr r0, _0204FEE0 ; =ADVENTURE_LOG_PTR - ldr ip, _0204FEE4 ; =SetNbBigTreasureWins - ldr r0, [r0] - ldr r0, [r0, #0x38] - add r0, r0, #1 - bx ip - .align 2, 0 -_0204FEE0: .word ADVENTURE_LOG_PTR -_0204FEE4: .word SetNbBigTreasureWins - arm_func_end IncrementNbBigTreasureWins - - arm_func_start SetNbBigTreasureWins -SetNbBigTreasureWins: ; 0x0204FEE8 - ldr r2, _0204FF18 ; =ADVENTURE_LOG_PTR - ldr r1, _0204FF1C ; =0x000F423F - ldr r3, [r2] - cmp r0, r1 - ldr r2, [r3] - movgt r0, r1 - orr r2, r2, #0x400 - ldr r1, _0204FF18 ; =ADVENTURE_LOG_PTR - str r2, [r3] - ldr r1, [r1] - str r0, [r1, #0x38] - bx lr - .align 2, 0 -_0204FF18: .word ADVENTURE_LOG_PTR -_0204FF1C: .word 0x000F423F - arm_func_end SetNbBigTreasureWins - - arm_func_start GetNbBigTreasureWins -GetNbBigTreasureWins: ; 0x0204FF20 - ldr r0, _0204FF30 ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - ldr r0, [r0, #0x38] - bx lr - .align 2, 0 -_0204FF30: .word ADVENTURE_LOG_PTR - arm_func_end GetNbBigTreasureWins - - arm_func_start SetNbRecycled -SetNbRecycled: ; 0x0204FF34 - ldr r2, _0204FF64 ; =ADVENTURE_LOG_PTR - ldr r1, _0204FF68 ; =0x000F423F - ldr r3, [r2] - cmp r0, r1 - ldr r2, [r3] - movgt r0, r1 - orr r2, r2, #0x800 - ldr r1, _0204FF64 ; =ADVENTURE_LOG_PTR - str r2, [r3] - ldr r1, [r1] - str r0, [r1, #0x3c] - bx lr - .align 2, 0 -_0204FF64: .word ADVENTURE_LOG_PTR -_0204FF68: .word 0x000F423F - arm_func_end SetNbRecycled - - arm_func_start GetNbRecycled -GetNbRecycled: ; 0x0204FF6C - ldr r0, _0204FF7C ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - ldr r0, [r0, #0x3c] - bx lr - .align 2, 0 -_0204FF7C: .word ADVENTURE_LOG_PTR - arm_func_end GetNbRecycled - - arm_func_start IncrementNbSkyGiftsSent -IncrementNbSkyGiftsSent: ; 0x0204FF80 - ldr r0, _0204FF98 ; =ADVENTURE_LOG_PTR - ldr ip, _0204FF9C ; =SetNbSkyGiftsSent - ldr r0, [r0] - ldr r0, [r0, #0x40] - add r0, r0, #1 - bx ip - .align 2, 0 -_0204FF98: .word ADVENTURE_LOG_PTR -_0204FF9C: .word SetNbSkyGiftsSent - arm_func_end IncrementNbSkyGiftsSent - - arm_func_start SetNbSkyGiftsSent -SetNbSkyGiftsSent: ; 0x0204FFA0 - ldr r2, _0204FFD0 ; =ADVENTURE_LOG_PTR - ldr r1, _0204FFD4 ; =0x000F423F - ldr r3, [r2] - cmp r0, r1 - ldr r2, [r3] - movgt r0, r1 - orr r2, r2, #0x1000 - ldr r1, _0204FFD0 ; =ADVENTURE_LOG_PTR - str r2, [r3] - ldr r1, [r1] - str r0, [r1, #0x40] - bx lr - .align 2, 0 -_0204FFD0: .word ADVENTURE_LOG_PTR -_0204FFD4: .word 0x000F423F - arm_func_end SetNbSkyGiftsSent - - arm_func_start GetNbSkyGiftsSent -GetNbSkyGiftsSent: ; 0x0204FFD8 - ldr r0, _0204FFE8 ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - ldr r0, [r0, #0x40] - bx lr - .align 2, 0 -_0204FFE8: .word ADVENTURE_LOG_PTR - arm_func_end GetNbSkyGiftsSent - - arm_func_start ComputeSpecialCounters -ComputeSpecialCounters: ; 0x0204FFEC - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r4, #0 - mov r8, r4 -_0204FFF8: - mov r0, #0x44 - mul sl, r8, r0 - ldr r0, _0205022C ; =TEAM_MEMBER_TABLE_PTR - ldr r0, [r0] - ldrb r0, [r0, sl] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0205009C - mov sb, #0 - mov r7, #1 - ldr r3, _02050230 ; =ADVENTURE_LOG_PTR - ldr ip, _0205022C ; =TEAM_MEMBER_TABLE_PTR - mov fp, sb - mov lr, r7 - mov r2, #6 -_0205003C: - mul r1, sb, r2 - ldr r0, [ip] - add r0, r0, sl - add r5, r0, #0x22 - ldrb r0, [r5, r1] - add r1, r5, r1 - tst r0, #1 - movne r0, r7 - moveq r0, fp - tst r0, #0xff - beq _02050090 - ldrh r0, [r1, #2] - ldr r5, [r3] - mov r1, r0, lsr #5 - add r6, r5, r1, lsl #2 - mov r1, r0, lsr #0x1f - rsb r0, r1, r0, lsl #27 - ldr r5, [r6, #0x16c] - add r0, r1, r0, ror #27 - orr r0, r5, lr, lsl r0 - str r0, [r6, #0x16c] -_02050090: - add sb, sb, #1 - cmp sb, #4 - blt _0205003C -_0205009C: - ldr r0, _02050234 ; =0x0000022B - add r8, r8, #1 - cmp r8, r0 - blt _0204FFF8 - mov r6, #0 - add r5, r0, #0x258 -_020500B4: - mov r0, r6, lsl #0x10 - mov r0, r0, asr #0x10 - bl GetDexNumberVeneer - add r6, r6, #1 - cmp r6, r5 - blt _020500B4 - mov r7, #0 - ldr r5, _02050230 ; =ADVENTURE_LOG_PTR - ldr sb, _02050238 ; =0x0000021F - mov r8, r7 - mov r6, #1 -_020500E0: - mov r0, r8, lsl #0x10 - mov r0, r0, lsr #0x10 - bl IsRealMove - cmp r0, #0 - beq _02050120 - mov r0, r8, asr #4 - add r0, r8, r0, lsr #27 - ldr r2, [r5] - mov r0, r0, asr #5 - add r2, r2, r0, lsl #2 - mov r1, r8, lsr #0x1f - rsb r0, r1, r8, lsl #27 - ldr r2, [r2, #0x16c] - add r0, r1, r0, ror #27 - tst r2, r6, lsl r0 - addne r7, r7, #1 -_02050120: - add r8, r8, #1 - cmp r8, sb - blt _020500E0 - cmp r7, #0 - ble _02050150 - ldr r0, _02050230 ; =ADVENTURE_LOG_PTR - ldr r1, [r0] - str r7, [r1, #0x34] - ldr r1, [r0] - ldr r0, [r1] - orr r0, r0, #4 - str r0, [r1] -_02050150: - mov sb, #1 - ldr r5, _02050230 ; =ADVENTURE_LOG_PTR - ldr sl, _0205023C ; =0x00000483 - mov r8, #0 - mov r6, sb -_02050164: - mov r0, sb, lsl #0x10 - mov r0, r0, asr #0x10 - bl GetBaseFormCastformCherrimDeoxys - mov r7, r0 - bl GetDexNumberVeneer - cmp r0, #0 - beq _020501B4 - mov r1, r0, asr #4 - add r1, r0, r1, lsr #27 - ldr r3, [r5] - mov r2, r1, asr #5 - mov r1, r0, lsr #0x1f - add r2, r3, r2, lsl #2 - rsb r0, r1, r0, lsl #27 - ldr r2, [r2, #0x44] - add r0, r1, r0, ror #27 - tst r2, r6, lsl r0 - beq _020501B4 - mov r0, r7 - bl RecruitSpecialPokemonLog -_020501B4: - add sb, sb, #1 - cmp sb, sl - blt _02050164 - ldr r0, _02050230 ; =ADVENTURE_LOG_PTR - mov r2, #1 - ldr r1, [r0] - ldr r3, _02050240 ; =0x000001ED - mov r0, r2 -_020501D4: - mov r5, r2, asr #4 - add r5, r2, r5, lsr #27 - mov sb, r5, asr #5 - mov r6, r2, lsr #0x1f - rsb r5, r6, r2, lsl #27 - add r7, r1, sb, lsl #2 - add r6, r6, r5, ror #27 - add r5, r1, sb, lsl #2 - ldr r7, [r7, #0x44] - ldr r5, [r5, #0xd8] - tst r7, r0, lsl r6 - addne r8, r8, #1 - tst r5, r0, lsl r6 - add r2, r2, #1 - addne r4, r4, #1 - cmp r2, r3 - blt _020501D4 - ldr r0, _02050230 ; =ADVENTURE_LOG_PTR - str r8, [r1, #0x2c] - ldr r0, [r0] - str r4, [r0, #0x30] - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0205022C: .word TEAM_MEMBER_TABLE_PTR -_02050230: .word ADVENTURE_LOG_PTR -_02050234: .word 0x0000022B -_02050238: .word 0x0000021F -_0205023C: .word 0x00000483 -_02050240: .word 0x000001ED - arm_func_end ComputeSpecialCounters - - arm_func_start RecruitSpecialPokemonLog -RecruitSpecialPokemonLog: ; 0x02050244 - stmdb sp!, {r3, lr} - cmp r0, #0x258 - subge r0, r0, #0x258 - movge r0, r0, lsl #0x10 - ldr r2, _020502AC ; =ADVENTURE_LOG_ENCOUNTERS_MONSTER_IDS - mov r3, #0 - movge r0, r0, asr #0x10 -_02050260: - mov r1, r3, lsl #1 - ldrsh r1, [r2, r1] - cmp r1, #0 - ldmeqia sp!, {r3, pc} - cmp r1, #0xc9 - bne _0205028C - cmp r0, #0xc9 - blt _02050294 - cmp r0, #0xe4 - ble _0205029C - b _02050294 -_0205028C: - cmp r1, r0 - beq _0205029C -_02050294: - add r3, r3, #1 - b _02050260 -_0205029C: - add r0, r3, #0x24 - and r0, r0, #0xff - bl SetAdventureLogCompleted - ldmia sp!, {r3, pc} - .align 2, 0 -_020502AC: .word ADVENTURE_LOG_ENCOUNTERS_MONSTER_IDS - arm_func_end RecruitSpecialPokemonLog - - arm_func_start IncrementNbFainted -IncrementNbFainted: ; 0x020502B0 - ldr r1, _020502E4 ; =ADVENTURE_LOG_PTR - ldr r0, _020502E8 ; =0x000F423F - ldr r2, [r1] - ldr r1, [r2, #0x24] - cmp r1, r0 - addlt r0, r1, #1 - strlt r0, [r2, #0x24] - ldr r0, _020502E4 ; =ADVENTURE_LOG_PTR - ldr r1, [r0] - ldr r0, [r1] - orr r0, r0, #0x20 - str r0, [r1] - bx lr - .align 2, 0 -_020502E4: .word ADVENTURE_LOG_PTR -_020502E8: .word 0x000F423F - arm_func_end IncrementNbFainted - - arm_func_start GetNbFainted -GetNbFainted: ; 0x020502EC - ldr r0, _020502FC ; =ADVENTURE_LOG_PTR - ldr r0, [r0] - ldr r0, [r0, #0x24] - bx lr - .align 2, 0 -_020502FC: .word ADVENTURE_LOG_PTR - arm_func_end GetNbFainted - - arm_func_start SetItemAcquired -SetItemAcquired: ; 0x02050300 - stmdb sp!, {r4, r5, r6, lr} - ldrsh r0, [r0, #4] - bl NormalizeTreasureBox - mov r4, r0 - mov r0, r4, lsl #0x10 - mov r0, r0, asr #0x10 - bl IsItemValidVeneer - cmp r0, #0 - ldmeqia sp!, {r4, r5, r6, pc} - cmp r4, #0x3b - blt _02050380 - cmp r4, #0x41 - bgt _02050380 - sub r0, r4, #0x21 - and r0, r0, #0xff - mov r5, #1 - bl SetAdventureLogCompleted - mov r6, #0x1a - b _02050364 -_0205034C: - and r0, r6, #0xff - bl GetAdventureLogCompleted - cmp r0, #0 - moveq r5, #0 - beq _0205036C - add r6, r6, #1 -_02050364: - cmp r6, #0x20 - ble _0205034C -_0205036C: - cmp r5, #0 - beq _02050380 - mov r0, #0x15 - mov r1, #1 - bl SetResolvedPerformanceProgressFlag -_02050380: - ldr r3, _020503C8 ; =ADVENTURE_LOG_PTR - mov r0, r4, asr #4 - ldr ip, [r3] - add r0, r4, r0, lsr #27 - mov r2, r4, lsr #0x1f - rsb r1, r2, r4, lsl #27 - add lr, ip, #0x1b0 - mov ip, r0, asr #5 - ldr r4, [lr, ip, lsl #2] - add r0, r2, r1, ror #27 - mov r1, #1 - orr r0, r4, r1, lsl r0 - str r0, [lr, ip, lsl #2] - ldr r1, [r3] - ldr r0, [r1] - orr r0, r0, #8 - str r0, [r1] - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 -_020503C8: .word ADVENTURE_LOG_PTR - arm_func_end SetItemAcquired - - arm_func_start GetNbItemAcquired -GetNbItemAcquired: ; 0x020503CC - stmdb sp!, {r4, lr} - ldr r1, _0205041C ; =ADVENTURE_LOG_PTR - mov r0, #0 - ldr r4, [r1] - mov lr, r0 - mov ip, #1 -_020503E4: - mov r1, lr, asr #4 - add r1, lr, r1, lsr #27 - mov r1, r1, asr #5 - add r3, r4, r1, lsl #2 - mov r2, lr, lsr #0x1f - rsb r1, r2, lr, lsl #27 - ldr r3, [r3, #0x1b0] - add r1, r2, r1, ror #27 - tst r3, ip, lsl r1 - add lr, lr, #1 - addne r0, r0, #1 - cmp lr, #0x580 - blt _020503E4 - ldmia sp!, {r4, pc} - .align 2, 0 -_0205041C: .word ADVENTURE_LOG_PTR - arm_func_end GetNbItemAcquired - - arm_func_start SetChallengeLetterCleared -SetChallengeLetterCleared: ; 0x02050420 - stmdb sp!, {r4, lr} - ldr r3, _020504A0 ; =ADVENTURE_LOG_PTR - mov r2, r0, lsr #0x1f - ldr ip, [r3] - rsb r1, r2, r0, lsl #27 - mov lr, r0, lsr #5 - add r4, ip, #0x260 - ldr ip, [r4, lr, lsl #2] - add r1, r2, r1, ror #27 - mov r0, #1 - orr r1, ip, r0, lsl r1 - str r1, [r4, lr, lsl #2] - ldr r4, [r3] - mov ip, r0 - b _02050488 -_0205045C: - mov r1, r0, asr #4 - add r1, r0, r1, lsr #27 - mov r1, r1, asr #5 - add r3, r4, r1, lsl #2 - mov r2, r0, lsr #0x1f - rsb r1, r2, r0, lsl #27 - ldr r3, [r3, #0x260] - add r1, r2, r1, ror #27 - tst r3, ip, lsl r1 - ldmeqia sp!, {r4, pc} - add r0, r0, #1 -_02050488: - cmp r0, #6 - blt _0205045C - ldr r0, [r4, #4] - orr r0, r0, #4 - str r0, [r4, #4] - ldmia sp!, {r4, pc} - .align 2, 0 -_020504A0: .word ADVENTURE_LOG_PTR - arm_func_end SetChallengeLetterCleared - - arm_func_start GetSentryDutyGamePoints -GetSentryDutyGamePoints: ; 0x020504A4 - ldr r1, _020504B8 ; =ADVENTURE_LOG_PTR - ldr r1, [r1] - add r0, r1, r0, lsl #2 - ldr r0, [r0, #0x264] - bx lr - .align 2, 0 -_020504B8: .word ADVENTURE_LOG_PTR - arm_func_end GetSentryDutyGamePoints - - arm_func_start SetSentryDutyGamePoints -SetSentryDutyGamePoints: ; 0x020504BC - stmdb sp!, {r3, lr} - ldr r1, _02050548 ; =ADVENTURE_LOG_PTR - mov lr, #0 - ldr r2, [r1] - b _020504EC -_020504D0: - add r1, r2, lr, lsl #2 - ldr r1, [r1, #0x264] - cmp r0, r1 - bhi _020504F4 - add r1, lr, #1 - mov r1, r1, lsl #0x10 - mov lr, r1, asr #0x10 -_020504EC: - cmp lr, #5 - blt _020504D0 -_020504F4: - cmp lr, #5 - mvnge r0, #0 - ldmgeia sp!, {r3, pc} - mov ip, #4 - ldr r2, _02050548 ; =ADVENTURE_LOG_PTR - b _02050528 -_0205050C: - ldr r3, [r2] - sub r1, ip, #1 - add ip, r3, ip, lsl #2 - ldr r3, [ip, #0x260] - mov r1, r1, lsl #0x10 - str r3, [ip, #0x264] - mov ip, r1, asr #0x10 -_02050528: - cmp ip, lr - bgt _0205050C - ldr r1, _02050548 ; =ADVENTURE_LOG_PTR - ldr r1, [r1] - add r1, r1, lr, lsl #2 - str r0, [r1, #0x264] - mov r0, lr - ldmia sp!, {r3, pc} - .align 2, 0 -_02050548: .word ADVENTURE_LOG_PTR - arm_func_end SetSentryDutyGamePoints - - arm_func_start CopyLogTo -CopyLogTo: ; 0x0205054C - stmdb sp!, {r4, lr} - mov r4, r0 - bl ComputeSpecialCounters - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0x14 - add r1, r1, #0x10 - bl CopyBitsTo - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0x14 - add r1, r1, #0x14 - bl CopyBitsTo - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0x14 - add r1, r1, #0x18 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r2, #0x80 - ldr r1, [r1] - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r2, #0xe - ldr r1, [r1] - add r1, r1, #0x2c - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r2, #0xe - ldr r1, [r1] - add r1, r1, #0x30 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r2, #9 - ldr r1, [r1] - add r1, r1, #0x34 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x28 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x24 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x1c - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x38 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x3c - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x40 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r2, #0x4a0 - ldr r1, [r1] - add r1, r1, #0x44 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r2, #0x4a0 - ldr r1, [r1] - add r1, r1, #0xd8 - bl CopyBitsTo - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0x220 - add r1, r1, #0x16c - bl CopyBitsTo - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0x580 - add r1, r1, #0x1b0 - bl CopyBitsTo - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0x20 - add r1, r1, #0x260 - bl CopyBitsTo - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0xa0 - add r1, r1, #0x264 - bl CopyBitsTo - ldr r1, _02050734 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - add r1, r1, #0x278 - bl Copy16BitsTo - ldmia sp!, {r4, pc} - .align 2, 0 -_02050734: .word ADVENTURE_LOG_PTR - arm_func_end CopyLogTo - - arm_func_start CopyLogFrom -CopyLogFrom: ; 0x02050738 - stmdb sp!, {r4, lr} - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - mov r4, r0 - add r1, r1, #0x10 - bl CopyBitsFrom - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0x14 - add r1, r1, #0x14 - bl CopyBitsFrom - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0x14 - add r1, r1, #0x18 - bl CopyBitsFrom - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0x80 - bl CopyBitsFrom - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0xe - add r1, r1, #0x2c - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r2, #0xe - ldr r1, [r1] - add r1, r1, #0x30 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r2, #9 - ldr r1, [r1] - add r1, r1, #0x34 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x28 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x24 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x1c - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x38 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x3c - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x40 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r2, #0x4a0 - ldr r1, [r1] - add r1, r1, #0x44 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r2, #0x4a0 - ldr r1, [r1] - add r1, r1, #0xd8 - bl CopyBitsFrom - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0x220 - add r1, r1, #0x16c - bl CopyBitsFrom - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0x580 - add r1, r1, #0x1b0 - bl CopyBitsFrom - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0x20 - add r1, r1, #0x260 - bl CopyBitsFrom - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - mov r2, #0xa0 - add r1, r1, #0x264 - bl CopyBitsFrom - ldr r1, _02050918 ; =ADVENTURE_LOG_PTR - mov r0, r4 - ldr r1, [r1] - add r1, r1, #0x278 - bl Copy16BitsFrom - ldmia sp!, {r4, pc} - .align 2, 0 -_02050918: .word ADVENTURE_LOG_PTR - arm_func_end CopyLogFrom - - arm_func_start GetAbilityString -GetAbilityString: ; 0x0205091C -#if defined(EUROPE) - add r1, r1, #0x5e0 - add r1, r1, #0x3000 -#elif defined(JAPAN) - add r1, r1, #0x81 - add r1, r1, #0x4800 -#else - add r1, r1, #0xde - add r1, r1, #0x3500 -#endif - mov r1, r1, lsl #0x10 - ldr ip, _02050938 ; =CopyNStringFromId - mov r1, r1, lsr #0x10 - mov r2, #0x50 - bx ip - .align 2, 0 -_02050938: .word CopyNStringFromId - arm_func_end GetAbilityString - - arm_func_start GetAbilityDescStringId -GetAbilityDescStringId: ; 0x0205093C -#if defined(EUROPE) - add r0, r0, #0x25c - add r0, r0, #0x3400 -#elif defined(JAPAN) - add r0, r0, #0xfd - add r0, r0, #0x4800 -#else - add r0, r0, #0x5a - add r0, r0, #0x3600 -#endif - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - bx lr - arm_func_end GetAbilityDescStringId - - arm_func_start GetTypeStringId -GetTypeStringId: ; 0x02050950 -#if defined(EUROPE) - add r0, r0, #0xcd - add r0, r0, #0x3500 -#elif defined(JAPAN) - add r0, r0, #0x6e - add r0, r0, #0x4800 -#else - add r0, r0, #0xcb - add r0, r0, #0x3500 -#endif - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - bx lr - arm_func_end GetTypeStringId - - arm_func_start GetConversion2ConvertToType -GetConversion2ConvertToType: ; 0x02050964 - ldr r1, _02050970 ; =CONVERSION2_TYPE_TABLE - ldrb r0, [r1, r0] - bx lr - .align 2, 0 -_02050970: .word CONVERSION2_TYPE_TABLE - arm_func_end GetConversion2ConvertToType - - arm_func_start InitBitstreamForWrite -InitBitstreamForWrite: ; 0x02050974 - str r1, [r0] - mov r3, #0 - str r3, [r0, #8] - str r3, [r0, #0xc] - add r1, r1, r2 - str r1, [r0, #4] - bx lr - arm_func_end InitBitstreamForWrite - - arm_func_start InitBitstreamForRead -InitBitstreamForRead: ; 0x02050990 - str r1, [r0] - mov r3, #0 - str r3, [r0, #8] - str r3, [r0, #0xc] - add r3, r1, r2 - str r3, [r0, #4] - mov r0, r1 - ldr ip, _020509B8 ; =MemZero - mov r1, r2 - bx ip - .align 2, 0 -_020509B8: .word MemZero - arm_func_end InitBitstreamForRead - - arm_func_start BitstreamDebug -BitstreamDebug: ; 0x020509BC - bx lr - arm_func_end BitstreamDebug - - arm_func_start CopyBitsTo -CopyBitsTo: ; 0x020509C0 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov ip, #0 - mov r3, #1 - mov r5, ip - mov r4, ip - b _02050A34 -_020509D8: - ldrb r6, [r1] - sub r2, r2, #1 - tst r6, r3, lsl ip - ldrne r7, [r0] - ldrne lr, [r0, #8] - ldrneb r6, [r7] - add ip, ip, #1 - orrne r6, r6, r3, lsl lr - strneb r6, [r7] - ldr lr, [r0, #8] - cmp ip, #8 - add lr, lr, #1 - moveq ip, r5 - addeq r1, r1, #1 - str lr, [r0, #8] - cmp lr, #8 - ldreq lr, [r0] - addeq lr, lr, #1 - streq lr, [r0] - streq r4, [r0, #8] - ldr lr, [r0, #0xc] - add lr, lr, #1 - str lr, [r0, #0xc] -_02050A34: - cmp r2, #0 - bne _020509D8 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end CopyBitsTo - - arm_func_start CopyBitsFrom -CopyBitsFrom: ; 0x02050A40 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov lr, #0 - mov ip, lr - mov r3, #1 - mov r6, lr - mov r5, lr - b _02050AC0 -_02050A5C: - cmp lr, #0 - streqb ip, [r1] - ldr r7, [r0] - ldr r4, [r0, #8] - ldrb r7, [r7] - sub r2, r2, #1 - tst r7, r3, lsl r4 - ldrneb r4, [r1] - orrne r4, r4, r3, lsl lr - strneb r4, [r1] - ldr r4, [r0, #8] - add lr, lr, #1 - cmp lr, #8 - add r4, r4, #1 - moveq lr, r6 - addeq r1, r1, #1 - str r4, [r0, #8] - cmp r4, #8 - ldreq r4, [r0] - addeq r4, r4, #1 - streq r4, [r0] - streq r5, [r0, #8] - ldr r4, [r0, #0xc] - add r4, r4, #1 - str r4, [r0, #0xc] -_02050AC0: - cmp r2, #0 - bne _02050A5C - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end CopyBitsFrom - - arm_func_start StoreDefaultTeamData -StoreDefaultTeamData: ; 0x02050ACC - stmdb sp!, {lr} - sub sp, sp, #0x14 -#ifdef JAPAN - ldr r1, _02050E54 ; =0x000004C5 - add r0, sp, #0 -#else - add r0, sp, #0 - mov r1, #0x234 -#endif - bl GetStringFromFileVeneer - ldr r0, _02050B08 ; =TEAM_NAME - add r1, sp, #0 -#ifdef JAPAN - mov r2, #5 -#else - mov r2, #0xa -#endif - bl StrncpyName - ldr r0, _02050B0C ; =TEAM_NAME - mov r1, #0 -#ifdef JAPAN - str r1, [r0, #8] - strb r1, [r0, #0xc] -#else - str r1, [r0, #0xc] - strb r1, [r0, #0x10] -#endif - add sp, sp, #0x14 - ldmia sp!, {pc} - .align 2, 0 -#ifdef JAPAN -_02050E54: .word 0x000004C5 -#endif -_02050B08: .word TEAM_NAME -_02050B0C: .word TEAM_NAME - arm_func_end StoreDefaultTeamData - - arm_func_start GetMainTeamNameWithCheck -GetMainTeamNameWithCheck: ; 0x02050B10 - stmdb sp!, {r4, lr} - sub sp, sp, #0x40 - mov r4, r0 - mov r0, #1 - bl GetResolvedPerformanceProgressFlag - cmp r0, #0 - ldrne r0, _02050B70 ; =TEAM_NAME - ldrneb r0, [r0] - cmpne r0, #0 - beq _02050B4C - ldr r1, _02050B74 ; =TEAM_NAME - mov r0, r4 -#ifdef JAPAN - mov r2, #5 -#else - mov r2, #0xa -#endif - bl StrncpySimpleNoPad - b _02050B68 -_02050B4C: - ldr r1, _02050B78 ; =0x00000237 - add r0, sp, #0 - bl GetStringFromFileVeneer - add r1, sp, #0 - mov r0, r4 -#ifdef JAPAN - mov r2, #5 -#else - mov r2, #0xa -#endif - bl StrncpyName -_02050B68: - add sp, sp, #0x40 - ldmia sp!, {r4, pc} - .align 2, 0 -_02050B70: .word TEAM_NAME -_02050B74: .word TEAM_NAME -#ifdef JAPAN -_02050B78: .word 0x000004C8 -#else -_02050B78: .word 0x00000237 -#endif - arm_func_end GetMainTeamNameWithCheck - - arm_func_start GetMainTeamName -GetMainTeamName: ; 0x02050B7C - ldr ip, _02050B8C ; =StrncpySimpleNoPadSafe - ldr r1, _02050B90 ; =TEAM_NAME -#ifdef JAPAN - mov r2, #5 -#else - mov r2, #0xa -#endif - bx ip - .align 2, 0 -_02050B8C: .word StrncpySimpleNoPadSafe -_02050B90: .word TEAM_NAME - arm_func_end GetMainTeamName - - arm_func_start SetMainTeamName -SetMainTeamName: ; 0x02050B94 - ldr r1, _02050BB4 ; =TEAM_NAME - mov r3, #0 -_02050B9C: - ldrb r2, [r0], #1 - strb r2, [r1, r3] - add r3, r3, #1 -#ifdef JAPAN - cmp r3, #5 -#else - cmp r3, #0xa -#endif - blt _02050B9C - bx lr - .align 2, 0 -_02050BB4: .word TEAM_NAME - arm_func_end SetMainTeamName - - arm_func_start GetRankupPoints -GetRankupPoints: ; 0x02050BB8 - stmdb sp!, {r4, lr} - bl GetRank - mov r4, r0 - mov r0, #0x16 - bl GetResolvedPerformanceProgressFlag - cmp r0, #0 - beq _02050BE4 - cmp r4, #0xc - bne _02050BF0 - mov r0, #0 - ldmia sp!, {r4, pc} -_02050BE4: - cmp r4, #8 - movhs r0, #0 - ldmhsia sp!, {r4, pc} -_02050BF0: - mov r0, r4 - bl GetRankUpEntry - ldr r1, _02050C0C ; =TEAM_NAME - ldr r2, [r0, #4] -#ifdef JAPAN - ldr r0, [r1, #8] -#else - ldr r0, [r1, #0xc] -#endif - sub r0, r2, r0 - ldmia sp!, {r4, pc} - .align 2, 0 -_02050C0C: .word TEAM_NAME - arm_func_end GetRankupPoints - - arm_func_start sub_02050C10 -sub_02050C10: ; 0x02050C10 -#ifdef JAPAN -#define SUB_02050C10_OFFSET #8 -#else -#define SUB_02050C10_OFFSET #0xc -#endif - stmdb sp!, {r3, lr} - ldr r1, _02050C6C ; =TEAM_NAME - ldr r2, [r1, SUB_02050C10_OFFSET] - add r2, r2, r0 - mov r0, #0x16 - str r2, [r1, SUB_02050C10_OFFSET] - bl GetResolvedPerformanceProgressFlag - cmp r0, #0 - beq _02050C4C - ldr r0, _02050C6C ; =TEAM_NAME - ldr r1, _02050C70 ; =0x05F5E0FF - ldr r2, [r0, SUB_02050C10_OFFSET] - cmp r2, r1 - strgt r1, [r0, SUB_02050C10_OFFSET] - ldmia sp!, {r3, pc} -_02050C4C: - mov r0, #7 - bl GetRankUpEntry - ldr r1, _02050C6C ; =TEAM_NAME - ldr r2, [r0, #4] - ldr r0, [r1, SUB_02050C10_OFFSET] - cmp r0, r2 - strgt r2, [r1, SUB_02050C10_OFFSET] - ldmia sp!, {r3, pc} - .align 2, 0 -_02050C6C: .word TEAM_NAME -_02050C70: .word 0x05F5E0FF - arm_func_end sub_02050C10 - - arm_func_start GetRank -GetRank: ; 0x02050C74 - stmdb sp!, {r3, r4, r5, lr} - mov r5, #0 - ldr r4, _02050CCC ; =TEAM_NAME - b _02050CA4 -_02050C84: - mov r0, r5 - bl GetRankUpEntry -#ifdef JAPAN - ldr r1, [r4, #8] -#else - ldr r1, [r4, #0xc] -#endif - ldr r0, [r0, #4] - cmp r1, r0 - blt _02050CAC - add r0, r5, #1 - and r5, r0, #0xff -_02050CA4: - cmp r5, #0xc - blo _02050C84 -_02050CAC: - mov r0, #0x16 - bl GetResolvedPerformanceProgressFlag - cmp r0, #0 - bne _02050CC4 - cmp r5, #8 - movhi r5, #8 -_02050CC4: - mov r0, r5 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 -_02050CCC: .word TEAM_NAME - arm_func_end GetRank - - arm_func_start sub_02050CD0 -sub_02050CD0: ; 0x02050CD0 - stmdb sp!, {r3, lr} - bl GetRank - cmp r0, #8 - movhi r0, #8 - ldmia sp!, {r3, pc} - arm_func_end sub_02050CD0 - - arm_func_start GetRankStorageSize -GetRankStorageSize: ; 0x02050CE4 - stmdb sp!, {r3, lr} - bl GetRank - bl GetRankUpEntry - ldr r0, [r0, #8] - ldmia sp!, {r3, pc} - arm_func_end GetRankStorageSize - - arm_func_start sub_02050CF8 -sub_02050CF8: ; 0x02050CF8 - stmdb sp!, {r3, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl InitBitstreamForRead - ldr r1, _02050D70 ; =TEAM_NAME - add r0, sp, #0 -#ifdef JAPAN - mov r2, #0x28 -#else - mov r2, #0x50 -#endif - bl CopyBitsTo - ldr r1, _02050D74 ; =_022AB924 - add r0, sp, #0 - mov r2, #0x20 - bl CopyBitsTo - mov r0, #1 - bl GetResolvedPerformanceProgressFlag - ldr r1, _02050D78 ; =TEAM_NAME - tst r0, #0xff -#ifdef JAPAN - strb r0, [r1, #0xc] -#else - strb r0, [r1, #0x10] -#endif - ldrne r1, _02050D7C ; =ARM9_UNKNOWN_DATA__NA_209E6BC - add r0, sp, #0 - ldreq r1, _02050D80 ; =_0209E6BD - mov r2, #1 - bl CopyBitsTo - add r0, sp, #0 - bl BitstreamDebug - ldr r0, [sp, #8] - add sp, sp, #0x10 - ldmia sp!, {r3, pc} - .align 2, 0 -_02050D70: .word TEAM_NAME -_02050D74: .word _022AB924 -_02050D78: .word TEAM_NAME -_02050D7C: .word ARM9_UNKNOWN_DATA__NA_209E6BC -_02050D80: .word _0209E6BD - arm_func_end sub_02050CF8 - - arm_func_start sub_02050D84 -sub_02050D84: ; 0x02050D84 - stmdb sp!, {lr} - sub sp, sp, #0x14 - mov r3, r0 - mov r2, r1 - add r0, sp, #4 - mov r1, r3 - bl InitBitstreamForWrite - ldr r1, _02050DFC ; =TEAM_NAME - add r0, sp, #4 -#ifdef JAPAN - mov r2, #0x28 -#else - mov r2, #0x50 -#endif - bl CopyBitsFrom - ldr r1, _02050E00 ; =_022AB924 - add r0, sp, #4 - mov r2, #0x20 - bl CopyBitsFrom - add r0, sp, #4 - add r1, sp, #0 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - ldr r1, _02050E04 ; =TEAM_NAME - tst r0, #1 - movne r2, #1 - moveq r2, #0 - add r0, sp, #4 -#ifdef JAPAN - strb r2, [r1, #0xc] -#else - strb r2, [r1, #0x10] -#endif - bl BitstreamDebug - ldr r0, [sp, #0xc] - add sp, sp, #0x14 - ldmia sp!, {pc} - .align 2, 0 -_02050DFC: .word TEAM_NAME -_02050E00: .word _022AB924 -_02050E04: .word TEAM_NAME - arm_func_end sub_02050D84 - - arm_func_start ResetPlayTimer -ResetPlayTimer: ; 0x02050E08 - mov r1, #0 - strb r1, [r0, #4] - str r1, [r0] - bx lr - arm_func_end ResetPlayTimer - - arm_func_start PlayTimerTick -PlayTimerTick: ; 0x02050E18 - ldrb r1, [r0, #4] - add r2, r1, #1 - and r1, r2, #0xff - strb r2, [r0, #4] - cmp r1, #0x3c - bxlo lr - mov r1, #0 - strb r1, [r0, #4] - ldr r2, [r0] - ldr r1, _02050E50 ; =0x022550FF - cmp r2, r1 - addlo r1, r2, #1 - strlo r1, [r0] - bx lr - .align 2, 0 -_02050E50: .word 0x022550FF - arm_func_end PlayTimerTick - - arm_func_start GetPlayTimeSeconds -GetPlayTimeSeconds: ; 0x02050E54 - ldr r0, [r0] - bx lr - arm_func_end GetPlayTimeSeconds - - arm_func_start sub_02050E5C -sub_02050E5C: ; 0x02050E5C - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r0, r4 - add r1, r5, #4 - mov r2, #6 - bl CopyBitsTo - mov r0, r4 - mov r1, r5 - mov r2, #0x20 - bl CopyBitsTo - ldmia sp!, {r3, r4, r5, pc} - arm_func_end sub_02050E5C - - arm_func_start sub_02050E8C -sub_02050E8C: ; 0x02050E8C - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r0, r4 - add r1, r5, #4 - mov r2, #6 - bl CopyBitsFrom - mov r0, r4 - mov r1, r5 - mov r2, #0x20 - bl CopyBitsFrom - ldmia sp!, {r3, r4, r5, pc} - arm_func_end sub_02050E8C - - arm_func_start sub_02050EBC -sub_02050EBC: ; 0x02050EBC - stmdb sp!, {r0, r1, r2, r3} - ldrsh r3, [sp, #2] - ldrsh r0, [sp, #6] - ldrsh r2, [sp] - ldrsh r1, [sp, #4] - add r0, r3, r0 - strh r0, [sp, #2] - ldrsh r0, [sp, #2] - add r1, r2, r1 - strh r1, [sp] - cmp r0, #0x3e8 - subge r0, r0, #0x3e8 - ldrgesh r1, [sp] - strgeh r0, [sp, #2] - addge r0, r1, #1 - strgeh r0, [sp] - ldrh r1, [sp, #2] - ldrh r0, [sp] - orr r0, r0, r1, lsl #16 - add sp, sp, #0x10 - bx lr - arm_func_end sub_02050EBC - - arm_func_start SubFixedPoint -SubFixedPoint: ; 0x02050F10 - stmdb sp!, {r0, r1, r2, r3} - ldrsh r3, [sp, #2] - ldrsh r0, [sp, #6] - ldrsh r2, [sp] - ldrsh r1, [sp, #4] - sub r0, r3, r0 - strh r0, [sp, #2] - ldrsh r0, [sp, #2] - sub r1, r2, r1 - strh r1, [sp] - cmp r0, #0 - addlt r0, r0, #0x3e8 - ldrltsh r1, [sp] - strlth r0, [sp, #2] - sublt r0, r1, #1 - strlth r0, [sp] - ldrsh r0, [sp] - cmp r0, #0 - movlt r0, #0 - strlth r0, [sp, #2] - strlth r0, [sp] - ldrh r1, [sp, #2] - ldrh r0, [sp] - orr r0, r0, r1, lsl #16 - add sp, sp, #0x10 - bx lr - arm_func_end SubFixedPoint - - arm_func_start sub_02050F78 -sub_02050F78: ; 0x02050F78 - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {r3} - sub sp, sp, #4 - ldrsh r1, [sp, #8] - ldrsh r0, [sp, #0xc] - cmp r1, r0 - ldrgth r1, [sp, #0xe] - ldrgth r0, [sp, #0xc] - orrgt r0, r0, r1, lsl #16 - bgt _02050FE8 - ldrlth r1, [sp, #0xa] - ldrlth r0, [sp, #8] - orrlt r0, r0, r1, lsl #16 - blt _02050FE8 - ldrsh r1, [sp, #0xa] - ldrsh r0, [sp, #0xe] - cmp r1, r0 - ldrgth r1, [sp, #0xc] - ldrgth r0, [sp, #0xe] - strgth r1, [sp] - strgth r0, [sp, #2] - ldrleh r1, [sp, #8] - ldrleh r0, [sp, #0xa] - strleh r1, [sp] - strleh r0, [sp, #2] - ldrh r1, [sp, #2] - ldrh r0, [sp] - orr r0, r0, r1, lsl #16 -_02050FE8: - add sp, sp, #4 - ldmia sp!, {r3} - add sp, sp, #0x10 - bx lr - arm_func_end sub_02050F78 - - arm_func_start sub_02050FF8 -sub_02050FF8: ; 0x02050FF8 - stmdb sp!, {r3} - sub sp, sp, #4 - strh r0, [sp] - ldrh r0, [sp] - mov r1, #0 - strh r1, [sp, #2] - orr r0, r0, r1, lsl #16 - add sp, sp, #4 - ldmia sp!, {r3} - bx lr - arm_func_end sub_02050FF8 - - arm_func_start BinToDecFixedPoint -BinToDecFixedPoint: ; 0x02051020 - stmdb sp!, {r3} - sub sp, sp, #4 - ldr r2, [r0, #4] - mov r1, #0x3e8 - mov r0, r2, lsl #0x10 - mov r0, r0, lsr #0x10 - mul r1, r0, r1 - mov r2, r2, lsr #0x10 - mov r0, r1, lsr #0x10 - strh r2, [sp] - strh r0, [sp, #2] - ldrh r1, [sp, #2] - ldrh r0, [sp] - orr r0, r0, r1, lsl #16 - add sp, sp, #4 - ldmia sp!, {r3} - bx lr - arm_func_end BinToDecFixedPoint diff --git a/asm/main_0204FFEC.s b/asm/main_0204FFEC.s new file mode 100644 index 00000000..1ab2654f --- /dev/null +++ b/asm/main_0204FFEC.s @@ -0,0 +1,206 @@ + .include "asm/macros.inc" + .include "main_0204FFEC.inc" + + .text + + arm_func_start ComputeSpecialCounters +ComputeSpecialCounters: ; 0x0204FFEC + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r4, #0 + mov r8, r4 +_0204FFF8: + mov r0, #0x44 + mul sl, r8, r0 + ldr r0, _0205022C ; =TEAM_MEMBER_TABLE_PTR + ldr r0, [r0] + ldrb r0, [r0, sl] + tst r0, #1 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + beq _0205009C + mov sb, #0 + mov r7, #1 + ldr r3, _02050230 ; =ADVENTURE_LOG_PTR + ldr ip, _0205022C ; =TEAM_MEMBER_TABLE_PTR + mov fp, sb + mov lr, r7 + mov r2, #6 +_0205003C: + mul r1, sb, r2 + ldr r0, [ip] + add r0, r0, sl + add r5, r0, #0x22 + ldrb r0, [r5, r1] + add r1, r5, r1 + tst r0, #1 + movne r0, r7 + moveq r0, fp + tst r0, #0xff + beq _02050090 + ldrh r0, [r1, #2] + ldr r5, [r3] + mov r1, r0, lsr #5 + add r6, r5, r1, lsl #2 + mov r1, r0, lsr #0x1f + rsb r0, r1, r0, lsl #27 + ldr r5, [r6, #0x16c] + add r0, r1, r0, ror #27 + orr r0, r5, lr, lsl r0 + str r0, [r6, #0x16c] +_02050090: + add sb, sb, #1 + cmp sb, #4 + blt _0205003C +_0205009C: + ldr r0, _02050234 ; =0x0000022B + add r8, r8, #1 + cmp r8, r0 + blt _0204FFF8 + mov r6, #0 + add r5, r0, #0x258 +_020500B4: + mov r0, r6, lsl #0x10 + mov r0, r0, asr #0x10 + bl GetDexNumberVeneer + add r6, r6, #1 + cmp r6, r5 + blt _020500B4 + mov r7, #0 + ldr r5, _02050230 ; =ADVENTURE_LOG_PTR + ldr sb, _02050238 ; =0x0000021F + mov r8, r7 + mov r6, #1 +_020500E0: + mov r0, r8, lsl #0x10 + mov r0, r0, lsr #0x10 + bl IsRealMove + cmp r0, #0 + beq _02050120 + mov r0, r8, asr #4 + add r0, r8, r0, lsr #27 + ldr r2, [r5] + mov r0, r0, asr #5 + add r2, r2, r0, lsl #2 + mov r1, r8, lsr #0x1f + rsb r0, r1, r8, lsl #27 + ldr r2, [r2, #0x16c] + add r0, r1, r0, ror #27 + tst r2, r6, lsl r0 + addne r7, r7, #1 +_02050120: + add r8, r8, #1 + cmp r8, sb + blt _020500E0 + cmp r7, #0 + ble _02050150 + ldr r0, _02050230 ; =ADVENTURE_LOG_PTR + ldr r1, [r0] + str r7, [r1, #0x34] + ldr r1, [r0] + ldr r0, [r1] + orr r0, r0, #4 + str r0, [r1] +_02050150: + mov sb, #1 + ldr r5, _02050230 ; =ADVENTURE_LOG_PTR + ldr sl, _0205023C ; =0x00000483 + mov r8, #0 + mov r6, sb +_02050164: + mov r0, sb, lsl #0x10 + mov r0, r0, asr #0x10 + bl GetBaseFormCastformCherrimDeoxys + mov r7, r0 + bl GetDexNumberVeneer + cmp r0, #0 + beq _020501B4 + mov r1, r0, asr #4 + add r1, r0, r1, lsr #27 + ldr r3, [r5] + mov r2, r1, asr #5 + mov r1, r0, lsr #0x1f + add r2, r3, r2, lsl #2 + rsb r0, r1, r0, lsl #27 + ldr r2, [r2, #0x44] + add r0, r1, r0, ror #27 + tst r2, r6, lsl r0 + beq _020501B4 + mov r0, r7 + bl RecruitSpecialPokemonLog +_020501B4: + add sb, sb, #1 + cmp sb, sl + blt _02050164 + ldr r0, _02050230 ; =ADVENTURE_LOG_PTR + mov r2, #1 + ldr r1, [r0] + ldr r3, _02050240 ; =0x000001ED + mov r0, r2 +_020501D4: + mov r5, r2, asr #4 + add r5, r2, r5, lsr #27 + mov sb, r5, asr #5 + mov r6, r2, lsr #0x1f + rsb r5, r6, r2, lsl #27 + add r7, r1, sb, lsl #2 + add r6, r6, r5, ror #27 + add r5, r1, sb, lsl #2 + ldr r7, [r7, #0x44] + ldr r5, [r5, #0xd8] + tst r7, r0, lsl r6 + addne r8, r8, #1 + tst r5, r0, lsl r6 + add r2, r2, #1 + addne r4, r4, #1 + cmp r2, r3 + blt _020501D4 + ldr r0, _02050230 ; =ADVENTURE_LOG_PTR + str r8, [r1, #0x2c] + ldr r0, [r0] + str r4, [r0, #0x30] + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0205022C: .word TEAM_MEMBER_TABLE_PTR +_02050230: .word ADVENTURE_LOG_PTR +_02050234: .word 0x0000022B +_02050238: .word 0x0000021F +_0205023C: .word 0x00000483 +_02050240: .word 0x000001ED + arm_func_end ComputeSpecialCounters + + arm_func_start RecruitSpecialPokemonLog +RecruitSpecialPokemonLog: ; 0x02050244 + stmdb sp!, {r3, lr} + cmp r0, #0x258 + subge r0, r0, #0x258 + movge r0, r0, lsl #0x10 + ldr r2, _020502AC ; =ADVENTURE_LOG_ENCOUNTERS_MONSTER_IDS + mov r3, #0 + movge r0, r0, asr #0x10 +_02050260: + mov r1, r3, lsl #1 + ldrsh r1, [r2, r1] + cmp r1, #0 + ldmeqia sp!, {r3, pc} + cmp r1, #0xc9 + bne _0205028C + cmp r0, #0xc9 + blt _02050294 + cmp r0, #0xe4 + ble _0205029C + b _02050294 +_0205028C: + cmp r1, r0 + beq _0205029C +_02050294: + add r3, r3, #1 + b _02050260 +_0205029C: + add r0, r3, #0x24 + and r0, r0, #0xff + bl SetAdventureLogCompleted + ldmia sp!, {r3, pc} + .align 2, 0 +_020502AC: .word ADVENTURE_LOG_ENCOUNTERS_MONSTER_IDS + arm_func_end RecruitSpecialPokemonLog diff --git a/asm/main_02050300.s b/asm/main_02050300.s new file mode 100644 index 00000000..e8f75947 --- /dev/null +++ b/asm/main_02050300.s @@ -0,0 +1,131 @@ + .include "asm/macros.inc" + .include "main_02050300.inc" + + .text + + arm_func_start SetItemAcquired +SetItemAcquired: ; 0x02050300 + stmdb sp!, {r4, r5, r6, lr} + ldrsh r0, [r0, #4] + bl NormalizeTreasureBox + mov r4, r0 + mov r0, r4, lsl #0x10 + mov r0, r0, asr #0x10 + bl IsItemValidVeneer + cmp r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + cmp r4, #0x3b + blt _02050380 + cmp r4, #0x41 + bgt _02050380 + sub r0, r4, #0x21 + and r0, r0, #0xff + mov r5, #1 + bl SetAdventureLogCompleted + mov r6, #0x1a + b _02050364 +_0205034C: + and r0, r6, #0xff + bl GetAdventureLogCompleted + cmp r0, #0 + moveq r5, #0 + beq _0205036C + add r6, r6, #1 +_02050364: + cmp r6, #0x20 + ble _0205034C +_0205036C: + cmp r5, #0 + beq _02050380 + mov r0, #0x15 + mov r1, #1 + bl SetResolvedPerformanceProgressFlag +_02050380: + ldr r3, _020503C8 ; =ADVENTURE_LOG_PTR + mov r0, r4, asr #4 + ldr ip, [r3] + add r0, r4, r0, lsr #27 + mov r2, r4, lsr #0x1f + rsb r1, r2, r4, lsl #27 + add lr, ip, #0x1b0 + mov ip, r0, asr #5 + ldr r4, [lr, ip, lsl #2] + add r0, r2, r1, ror #27 + mov r1, #1 + orr r0, r4, r1, lsl r0 + str r0, [lr, ip, lsl #2] + ldr r1, [r3] + ldr r0, [r1] + orr r0, r0, #8 + str r0, [r1] + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_020503C8: .word ADVENTURE_LOG_PTR + arm_func_end SetItemAcquired + + arm_func_start GetNbItemAcquired +GetNbItemAcquired: ; 0x020503CC + stmdb sp!, {r4, lr} + ldr r1, _0205041C ; =ADVENTURE_LOG_PTR + mov r0, #0 + ldr r4, [r1] + mov lr, r0 + mov ip, #1 +_020503E4: + mov r1, lr, asr #4 + add r1, lr, r1, lsr #27 + mov r1, r1, asr #5 + add r3, r4, r1, lsl #2 + mov r2, lr, lsr #0x1f + rsb r1, r2, lr, lsl #27 + ldr r3, [r3, #0x1b0] + add r1, r2, r1, ror #27 + tst r3, ip, lsl r1 + add lr, lr, #1 + addne r0, r0, #1 + cmp lr, #0x580 + blt _020503E4 + ldmia sp!, {r4, pc} + .align 2, 0 +_0205041C: .word ADVENTURE_LOG_PTR + arm_func_end GetNbItemAcquired + + arm_func_start SetChallengeLetterCleared +SetChallengeLetterCleared: ; 0x02050420 + stmdb sp!, {r4, lr} + ldr r3, _020504A0 ; =ADVENTURE_LOG_PTR + mov r2, r0, lsr #0x1f + ldr ip, [r3] + rsb r1, r2, r0, lsl #27 + mov lr, r0, lsr #5 + add r4, ip, #0x260 + ldr ip, [r4, lr, lsl #2] + add r1, r2, r1, ror #27 + mov r0, #1 + orr r1, ip, r0, lsl r1 + str r1, [r4, lr, lsl #2] + ldr r4, [r3] + mov ip, r0 + b _02050488 +_0205045C: + mov r1, r0, asr #4 + add r1, r0, r1, lsr #27 + mov r1, r1, asr #5 + add r3, r4, r1, lsl #2 + mov r2, r0, lsr #0x1f + rsb r1, r2, r0, lsl #27 + ldr r3, [r3, #0x260] + add r1, r2, r1, ror #27 + tst r3, ip, lsl r1 + ldmeqia sp!, {r4, pc} + add r0, r0, #1 +_02050488: + cmp r0, #6 + blt _0205045C + ldr r0, [r4, #4] + orr r0, r0, #4 + str r0, [r4, #4] + ldmia sp!, {r4, pc} + .align 2, 0 +_020504A0: .word ADVENTURE_LOG_PTR + arm_func_end SetChallengeLetterCleared diff --git a/asm/main_020504BC.s b/asm/main_020504BC.s new file mode 100644 index 00000000..87bc2710 --- /dev/null +++ b/asm/main_020504BC.s @@ -0,0 +1,1008 @@ + .include "asm/macros.inc" + .include "main_020504BC.inc" + + .text + + arm_func_start SetSentryDutyGamePoints +SetSentryDutyGamePoints: ; 0x020504BC + stmdb sp!, {r3, lr} + ldr r1, _02050548 ; =ADVENTURE_LOG_PTR + mov lr, #0 + ldr r2, [r1] + b _020504EC +_020504D0: + add r1, r2, lr, lsl #2 + ldr r1, [r1, #0x264] + cmp r0, r1 + bhi _020504F4 + add r1, lr, #1 + mov r1, r1, lsl #0x10 + mov lr, r1, asr #0x10 +_020504EC: + cmp lr, #5 + blt _020504D0 +_020504F4: + cmp lr, #5 + mvnge r0, #0 + ldmgeia sp!, {r3, pc} + mov ip, #4 + ldr r2, _02050548 ; =ADVENTURE_LOG_PTR + b _02050528 +_0205050C: + ldr r3, [r2] + sub r1, ip, #1 + add ip, r3, ip, lsl #2 + ldr r3, [ip, #0x260] + mov r1, r1, lsl #0x10 + str r3, [ip, #0x264] + mov ip, r1, asr #0x10 +_02050528: + cmp ip, lr + bgt _0205050C + ldr r1, _02050548 ; =ADVENTURE_LOG_PTR + ldr r1, [r1] + add r1, r1, lr, lsl #2 + str r0, [r1, #0x264] + mov r0, lr + ldmia sp!, {r3, pc} + .align 2, 0 +_02050548: .word ADVENTURE_LOG_PTR + arm_func_end SetSentryDutyGamePoints + + arm_func_start CopyLogTo +CopyLogTo: ; 0x0205054C + stmdb sp!, {r4, lr} + mov r4, r0 + bl ComputeSpecialCounters + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0x14 + add r1, r1, #0x10 + bl CopyBitsTo + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0x14 + add r1, r1, #0x14 + bl CopyBitsTo + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0x14 + add r1, r1, #0x18 + bl CopyBitsTo + mov r0, r4 + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r2, #0x80 + ldr r1, [r1] + bl CopyBitsTo + mov r0, r4 + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r2, #0xe + ldr r1, [r1] + add r1, r1, #0x2c + bl CopyBitsTo + mov r0, r4 + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r2, #0xe + ldr r1, [r1] + add r1, r1, #0x30 + bl CopyBitsTo + mov r0, r4 + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r2, #9 + ldr r1, [r1] + add r1, r1, #0x34 + bl CopyBitsTo + mov r0, r4 + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + add r1, r1, #0x28 + bl CopyBitsTo + mov r0, r4 + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + add r1, r1, #0x24 + bl CopyBitsTo + mov r0, r4 + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + add r1, r1, #0x1c + bl CopyBitsTo + mov r0, r4 + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + add r1, r1, #0x38 + bl CopyBitsTo + mov r0, r4 + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + add r1, r1, #0x3c + bl CopyBitsTo + mov r0, r4 + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + add r1, r1, #0x40 + bl CopyBitsTo + mov r0, r4 + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r2, #0x4a0 + ldr r1, [r1] + add r1, r1, #0x44 + bl CopyBitsTo + mov r0, r4 + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r2, #0x4a0 + ldr r1, [r1] + add r1, r1, #0xd8 + bl CopyBitsTo + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0x220 + add r1, r1, #0x16c + bl CopyBitsTo + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0x580 + add r1, r1, #0x1b0 + bl CopyBitsTo + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0x20 + add r1, r1, #0x260 + bl CopyBitsTo + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0xa0 + add r1, r1, #0x264 + bl CopyBitsTo + ldr r1, _02050734 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x278 + bl Copy16BitsTo + ldmia sp!, {r4, pc} + .align 2, 0 +_02050734: .word ADVENTURE_LOG_PTR + arm_func_end CopyLogTo + + arm_func_start CopyLogFrom +CopyLogFrom: ; 0x02050738 + stmdb sp!, {r4, lr} + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + mov r4, r0 + add r1, r1, #0x10 + bl CopyBitsFrom + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0x14 + add r1, r1, #0x14 + bl CopyBitsFrom + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0x14 + add r1, r1, #0x18 + bl CopyBitsFrom + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0x80 + bl CopyBitsFrom + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0xe + add r1, r1, #0x2c + bl CopyBitsFrom + mov r0, r4 + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r2, #0xe + ldr r1, [r1] + add r1, r1, #0x30 + bl CopyBitsFrom + mov r0, r4 + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r2, #9 + ldr r1, [r1] + add r1, r1, #0x34 + bl CopyBitsFrom + mov r0, r4 + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + add r1, r1, #0x28 + bl CopyBitsFrom + mov r0, r4 + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + add r1, r1, #0x24 + bl CopyBitsFrom + mov r0, r4 + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + add r1, r1, #0x1c + bl CopyBitsFrom + mov r0, r4 + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + add r1, r1, #0x38 + bl CopyBitsFrom + mov r0, r4 + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + add r1, r1, #0x3c + bl CopyBitsFrom + mov r0, r4 + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r2, #0x14 + ldr r1, [r1] + add r1, r1, #0x40 + bl CopyBitsFrom + mov r0, r4 + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r2, #0x4a0 + ldr r1, [r1] + add r1, r1, #0x44 + bl CopyBitsFrom + mov r0, r4 + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r2, #0x4a0 + ldr r1, [r1] + add r1, r1, #0xd8 + bl CopyBitsFrom + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0x220 + add r1, r1, #0x16c + bl CopyBitsFrom + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0x580 + add r1, r1, #0x1b0 + bl CopyBitsFrom + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0x20 + add r1, r1, #0x260 + bl CopyBitsFrom + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + mov r2, #0xa0 + add r1, r1, #0x264 + bl CopyBitsFrom + ldr r1, _02050918 ; =ADVENTURE_LOG_PTR + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x278 + bl Copy16BitsFrom + ldmia sp!, {r4, pc} + .align 2, 0 +_02050918: .word ADVENTURE_LOG_PTR + arm_func_end CopyLogFrom + + arm_func_start GetAbilityString +GetAbilityString: ; 0x0205091C +#if defined(EUROPE) + add r1, r1, #0x5e0 + add r1, r1, #0x3000 +#elif defined(JAPAN) + add r1, r1, #0x81 + add r1, r1, #0x4800 +#else + add r1, r1, #0xde + add r1, r1, #0x3500 +#endif + mov r1, r1, lsl #0x10 + ldr ip, _02050938 ; =CopyNStringFromId + mov r1, r1, lsr #0x10 + mov r2, #0x50 + bx ip + .align 2, 0 +_02050938: .word CopyNStringFromId + arm_func_end GetAbilityString + + arm_func_start GetAbilityDescStringId +GetAbilityDescStringId: ; 0x0205093C +#if defined(EUROPE) + add r0, r0, #0x25c + add r0, r0, #0x3400 +#elif defined(JAPAN) + add r0, r0, #0xfd + add r0, r0, #0x4800 +#else + add r0, r0, #0x5a + add r0, r0, #0x3600 +#endif + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bx lr + arm_func_end GetAbilityDescStringId + + arm_func_start GetTypeStringId +GetTypeStringId: ; 0x02050950 +#if defined(EUROPE) + add r0, r0, #0xcd + add r0, r0, #0x3500 +#elif defined(JAPAN) + add r0, r0, #0x6e + add r0, r0, #0x4800 +#else + add r0, r0, #0xcb + add r0, r0, #0x3500 +#endif + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bx lr + arm_func_end GetTypeStringId + + arm_func_start GetConversion2ConvertToType +GetConversion2ConvertToType: ; 0x02050964 + ldr r1, _02050970 ; =CONVERSION2_TYPE_TABLE + ldrb r0, [r1, r0] + bx lr + .align 2, 0 +_02050970: .word CONVERSION2_TYPE_TABLE + arm_func_end GetConversion2ConvertToType + + arm_func_start InitBitstreamForWrite +InitBitstreamForWrite: ; 0x02050974 + str r1, [r0] + mov r3, #0 + str r3, [r0, #8] + str r3, [r0, #0xc] + add r1, r1, r2 + str r1, [r0, #4] + bx lr + arm_func_end InitBitstreamForWrite + + arm_func_start InitBitstreamForRead +InitBitstreamForRead: ; 0x02050990 + str r1, [r0] + mov r3, #0 + str r3, [r0, #8] + str r3, [r0, #0xc] + add r3, r1, r2 + str r3, [r0, #4] + mov r0, r1 + ldr ip, _020509B8 ; =MemZero + mov r1, r2 + bx ip + .align 2, 0 +_020509B8: .word MemZero + arm_func_end InitBitstreamForRead + + arm_func_start BitstreamDebug +BitstreamDebug: ; 0x020509BC + bx lr + arm_func_end BitstreamDebug + + arm_func_start CopyBitsTo +CopyBitsTo: ; 0x020509C0 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov ip, #0 + mov r3, #1 + mov r5, ip + mov r4, ip + b _02050A34 +_020509D8: + ldrb r6, [r1] + sub r2, r2, #1 + tst r6, r3, lsl ip + ldrne r7, [r0] + ldrne lr, [r0, #8] + ldrneb r6, [r7] + add ip, ip, #1 + orrne r6, r6, r3, lsl lr + strneb r6, [r7] + ldr lr, [r0, #8] + cmp ip, #8 + add lr, lr, #1 + moveq ip, r5 + addeq r1, r1, #1 + str lr, [r0, #8] + cmp lr, #8 + ldreq lr, [r0] + addeq lr, lr, #1 + streq lr, [r0] + streq r4, [r0, #8] + ldr lr, [r0, #0xc] + add lr, lr, #1 + str lr, [r0, #0xc] +_02050A34: + cmp r2, #0 + bne _020509D8 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end CopyBitsTo + + arm_func_start CopyBitsFrom +CopyBitsFrom: ; 0x02050A40 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov lr, #0 + mov ip, lr + mov r3, #1 + mov r6, lr + mov r5, lr + b _02050AC0 +_02050A5C: + cmp lr, #0 + streqb ip, [r1] + ldr r7, [r0] + ldr r4, [r0, #8] + ldrb r7, [r7] + sub r2, r2, #1 + tst r7, r3, lsl r4 + ldrneb r4, [r1] + orrne r4, r4, r3, lsl lr + strneb r4, [r1] + ldr r4, [r0, #8] + add lr, lr, #1 + cmp lr, #8 + add r4, r4, #1 + moveq lr, r6 + addeq r1, r1, #1 + str r4, [r0, #8] + cmp r4, #8 + ldreq r4, [r0] + addeq r4, r4, #1 + streq r4, [r0] + streq r5, [r0, #8] + ldr r4, [r0, #0xc] + add r4, r4, #1 + str r4, [r0, #0xc] +_02050AC0: + cmp r2, #0 + bne _02050A5C + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end CopyBitsFrom + + arm_func_start StoreDefaultTeamData +StoreDefaultTeamData: ; 0x02050ACC + stmdb sp!, {lr} + sub sp, sp, #0x14 +#ifdef JAPAN + ldr r1, _02050E54 ; =0x000004C5 + add r0, sp, #0 +#else + add r0, sp, #0 + mov r1, #0x234 +#endif + bl GetStringFromFileVeneer + ldr r0, _02050B08 ; =TEAM_NAME + add r1, sp, #0 +#ifdef JAPAN + mov r2, #5 +#else + mov r2, #0xa +#endif + bl StrncpyName + ldr r0, _02050B0C ; =TEAM_NAME + mov r1, #0 +#ifdef JAPAN + str r1, [r0, #8] + strb r1, [r0, #0xc] +#else + str r1, [r0, #0xc] + strb r1, [r0, #0x10] +#endif + add sp, sp, #0x14 + ldmia sp!, {pc} + .align 2, 0 +#ifdef JAPAN +_02050E54: .word 0x000004C5 +#endif +_02050B08: .word TEAM_NAME +_02050B0C: .word TEAM_NAME + arm_func_end StoreDefaultTeamData + + arm_func_start GetMainTeamNameWithCheck +GetMainTeamNameWithCheck: ; 0x02050B10 + stmdb sp!, {r4, lr} + sub sp, sp, #0x40 + mov r4, r0 + mov r0, #1 + bl GetResolvedPerformanceProgressFlag + cmp r0, #0 + ldrne r0, _02050B70 ; =TEAM_NAME + ldrneb r0, [r0] + cmpne r0, #0 + beq _02050B4C + ldr r1, _02050B74 ; =TEAM_NAME + mov r0, r4 +#ifdef JAPAN + mov r2, #5 +#else + mov r2, #0xa +#endif + bl StrncpySimpleNoPad + b _02050B68 +_02050B4C: + ldr r1, _02050B78 ; =0x00000237 + add r0, sp, #0 + bl GetStringFromFileVeneer + add r1, sp, #0 + mov r0, r4 +#ifdef JAPAN + mov r2, #5 +#else + mov r2, #0xa +#endif + bl StrncpyName +_02050B68: + add sp, sp, #0x40 + ldmia sp!, {r4, pc} + .align 2, 0 +_02050B70: .word TEAM_NAME +_02050B74: .word TEAM_NAME +#ifdef JAPAN +_02050B78: .word 0x000004C8 +#else +_02050B78: .word 0x00000237 +#endif + arm_func_end GetMainTeamNameWithCheck + + arm_func_start GetMainTeamName +GetMainTeamName: ; 0x02050B7C + ldr ip, _02050B8C ; =StrncpySimpleNoPadSafe + ldr r1, _02050B90 ; =TEAM_NAME +#ifdef JAPAN + mov r2, #5 +#else + mov r2, #0xa +#endif + bx ip + .align 2, 0 +_02050B8C: .word StrncpySimpleNoPadSafe +_02050B90: .word TEAM_NAME + arm_func_end GetMainTeamName + + arm_func_start SetMainTeamName +SetMainTeamName: ; 0x02050B94 + ldr r1, _02050BB4 ; =TEAM_NAME + mov r3, #0 +_02050B9C: + ldrb r2, [r0], #1 + strb r2, [r1, r3] + add r3, r3, #1 +#ifdef JAPAN + cmp r3, #5 +#else + cmp r3, #0xa +#endif + blt _02050B9C + bx lr + .align 2, 0 +_02050BB4: .word TEAM_NAME + arm_func_end SetMainTeamName + + arm_func_start GetRankupPoints +GetRankupPoints: ; 0x02050BB8 + stmdb sp!, {r4, lr} + bl GetRank + mov r4, r0 + mov r0, #0x16 + bl GetResolvedPerformanceProgressFlag + cmp r0, #0 + beq _02050BE4 + cmp r4, #0xc + bne _02050BF0 + mov r0, #0 + ldmia sp!, {r4, pc} +_02050BE4: + cmp r4, #8 + movhs r0, #0 + ldmhsia sp!, {r4, pc} +_02050BF0: + mov r0, r4 + bl GetRankUpEntry + ldr r1, _02050C0C ; =TEAM_NAME + ldr r2, [r0, #4] +#ifdef JAPAN + ldr r0, [r1, #8] +#else + ldr r0, [r1, #0xc] +#endif + sub r0, r2, r0 + ldmia sp!, {r4, pc} + .align 2, 0 +_02050C0C: .word TEAM_NAME + arm_func_end GetRankupPoints + + arm_func_start sub_02050C10 +sub_02050C10: ; 0x02050C10 +#ifdef JAPAN +#define SUB_02050C10_OFFSET #8 +#else +#define SUB_02050C10_OFFSET #0xc +#endif + stmdb sp!, {r3, lr} + ldr r1, _02050C6C ; =TEAM_NAME + ldr r2, [r1, SUB_02050C10_OFFSET] + add r2, r2, r0 + mov r0, #0x16 + str r2, [r1, SUB_02050C10_OFFSET] + bl GetResolvedPerformanceProgressFlag + cmp r0, #0 + beq _02050C4C + ldr r0, _02050C6C ; =TEAM_NAME + ldr r1, _02050C70 ; =0x05F5E0FF + ldr r2, [r0, SUB_02050C10_OFFSET] + cmp r2, r1 + strgt r1, [r0, SUB_02050C10_OFFSET] + ldmia sp!, {r3, pc} +_02050C4C: + mov r0, #7 + bl GetRankUpEntry + ldr r1, _02050C6C ; =TEAM_NAME + ldr r2, [r0, #4] + ldr r0, [r1, SUB_02050C10_OFFSET] + cmp r0, r2 + strgt r2, [r1, SUB_02050C10_OFFSET] + ldmia sp!, {r3, pc} + .align 2, 0 +_02050C6C: .word TEAM_NAME +_02050C70: .word 0x05F5E0FF + arm_func_end sub_02050C10 + + arm_func_start GetRank +GetRank: ; 0x02050C74 + stmdb sp!, {r3, r4, r5, lr} + mov r5, #0 + ldr r4, _02050CCC ; =TEAM_NAME + b _02050CA4 +_02050C84: + mov r0, r5 + bl GetRankUpEntry +#ifdef JAPAN + ldr r1, [r4, #8] +#else + ldr r1, [r4, #0xc] +#endif + ldr r0, [r0, #4] + cmp r1, r0 + blt _02050CAC + add r0, r5, #1 + and r5, r0, #0xff +_02050CA4: + cmp r5, #0xc + blo _02050C84 +_02050CAC: + mov r0, #0x16 + bl GetResolvedPerformanceProgressFlag + cmp r0, #0 + bne _02050CC4 + cmp r5, #8 + movhi r5, #8 +_02050CC4: + mov r0, r5 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_02050CCC: .word TEAM_NAME + arm_func_end GetRank + + arm_func_start sub_02050CD0 +sub_02050CD0: ; 0x02050CD0 + stmdb sp!, {r3, lr} + bl GetRank + cmp r0, #8 + movhi r0, #8 + ldmia sp!, {r3, pc} + arm_func_end sub_02050CD0 + + arm_func_start GetRankStorageSize +GetRankStorageSize: ; 0x02050CE4 + stmdb sp!, {r3, lr} + bl GetRank + bl GetRankUpEntry + ldr r0, [r0, #8] + ldmia sp!, {r3, pc} + arm_func_end GetRankStorageSize + + arm_func_start sub_02050CF8 +sub_02050CF8: ; 0x02050CF8 + stmdb sp!, {r3, lr} + sub sp, sp, #0x10 + mov r3, r0 + mov r2, r1 + add r0, sp, #0 + mov r1, r3 + bl InitBitstreamForRead + ldr r1, _02050D70 ; =TEAM_NAME + add r0, sp, #0 +#ifdef JAPAN + mov r2, #0x28 +#else + mov r2, #0x50 +#endif + bl CopyBitsTo + ldr r1, _02050D74 ; =_022AB924 + add r0, sp, #0 + mov r2, #0x20 + bl CopyBitsTo + mov r0, #1 + bl GetResolvedPerformanceProgressFlag + ldr r1, _02050D78 ; =TEAM_NAME + tst r0, #0xff +#ifdef JAPAN + strb r0, [r1, #0xc] +#else + strb r0, [r1, #0x10] +#endif + ldrne r1, _02050D7C ; =ARM9_UNKNOWN_DATA__NA_209E6BC + add r0, sp, #0 + ldreq r1, _02050D80 ; =_0209E6BD + mov r2, #1 + bl CopyBitsTo + add r0, sp, #0 + bl BitstreamDebug + ldr r0, [sp, #8] + add sp, sp, #0x10 + ldmia sp!, {r3, pc} + .align 2, 0 +_02050D70: .word TEAM_NAME +_02050D74: .word _022AB924 +_02050D78: .word TEAM_NAME +_02050D7C: .word ARM9_UNKNOWN_DATA__NA_209E6BC +_02050D80: .word _0209E6BD + arm_func_end sub_02050CF8 + + arm_func_start sub_02050D84 +sub_02050D84: ; 0x02050D84 + stmdb sp!, {lr} + sub sp, sp, #0x14 + mov r3, r0 + mov r2, r1 + add r0, sp, #4 + mov r1, r3 + bl InitBitstreamForWrite + ldr r1, _02050DFC ; =TEAM_NAME + add r0, sp, #4 +#ifdef JAPAN + mov r2, #0x28 +#else + mov r2, #0x50 +#endif + bl CopyBitsFrom + ldr r1, _02050E00 ; =_022AB924 + add r0, sp, #4 + mov r2, #0x20 + bl CopyBitsFrom + add r0, sp, #4 + add r1, sp, #0 + mov r2, #1 + bl CopyBitsFrom + ldrb r0, [sp] + ldr r1, _02050E04 ; =TEAM_NAME + tst r0, #1 + movne r2, #1 + moveq r2, #0 + add r0, sp, #4 +#ifdef JAPAN + strb r2, [r1, #0xc] +#else + strb r2, [r1, #0x10] +#endif + bl BitstreamDebug + ldr r0, [sp, #0xc] + add sp, sp, #0x14 + ldmia sp!, {pc} + .align 2, 0 +_02050DFC: .word TEAM_NAME +_02050E00: .word _022AB924 +_02050E04: .word TEAM_NAME + arm_func_end sub_02050D84 + + arm_func_start ResetPlayTimer +ResetPlayTimer: ; 0x02050E08 + mov r1, #0 + strb r1, [r0, #4] + str r1, [r0] + bx lr + arm_func_end ResetPlayTimer + + arm_func_start PlayTimerTick +PlayTimerTick: ; 0x02050E18 + ldrb r1, [r0, #4] + add r2, r1, #1 + and r1, r2, #0xff + strb r2, [r0, #4] + cmp r1, #0x3c + bxlo lr + mov r1, #0 + strb r1, [r0, #4] + ldr r2, [r0] + ldr r1, _02050E50 ; =0x022550FF + cmp r2, r1 + addlo r1, r2, #1 + strlo r1, [r0] + bx lr + .align 2, 0 +_02050E50: .word 0x022550FF + arm_func_end PlayTimerTick + + arm_func_start GetPlayTimeSeconds +GetPlayTimeSeconds: ; 0x02050E54 + ldr r0, [r0] + bx lr + arm_func_end GetPlayTimeSeconds + + arm_func_start sub_02050E5C +sub_02050E5C: ; 0x02050E5C + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r0, r4 + add r1, r5, #4 + mov r2, #6 + bl CopyBitsTo + mov r0, r4 + mov r1, r5 + mov r2, #0x20 + bl CopyBitsTo + ldmia sp!, {r3, r4, r5, pc} + arm_func_end sub_02050E5C + + arm_func_start sub_02050E8C +sub_02050E8C: ; 0x02050E8C + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r0, r4 + add r1, r5, #4 + mov r2, #6 + bl CopyBitsFrom + mov r0, r4 + mov r1, r5 + mov r2, #0x20 + bl CopyBitsFrom + ldmia sp!, {r3, r4, r5, pc} + arm_func_end sub_02050E8C + + arm_func_start sub_02050EBC +sub_02050EBC: ; 0x02050EBC + stmdb sp!, {r0, r1, r2, r3} + ldrsh r3, [sp, #2] + ldrsh r0, [sp, #6] + ldrsh r2, [sp] + ldrsh r1, [sp, #4] + add r0, r3, r0 + strh r0, [sp, #2] + ldrsh r0, [sp, #2] + add r1, r2, r1 + strh r1, [sp] + cmp r0, #0x3e8 + subge r0, r0, #0x3e8 + ldrgesh r1, [sp] + strgeh r0, [sp, #2] + addge r0, r1, #1 + strgeh r0, [sp] + ldrh r1, [sp, #2] + ldrh r0, [sp] + orr r0, r0, r1, lsl #16 + add sp, sp, #0x10 + bx lr + arm_func_end sub_02050EBC + + arm_func_start SubFixedPoint +SubFixedPoint: ; 0x02050F10 + stmdb sp!, {r0, r1, r2, r3} + ldrsh r3, [sp, #2] + ldrsh r0, [sp, #6] + ldrsh r2, [sp] + ldrsh r1, [sp, #4] + sub r0, r3, r0 + strh r0, [sp, #2] + ldrsh r0, [sp, #2] + sub r1, r2, r1 + strh r1, [sp] + cmp r0, #0 + addlt r0, r0, #0x3e8 + ldrltsh r1, [sp] + strlth r0, [sp, #2] + sublt r0, r1, #1 + strlth r0, [sp] + ldrsh r0, [sp] + cmp r0, #0 + movlt r0, #0 + strlth r0, [sp, #2] + strlth r0, [sp] + ldrh r1, [sp, #2] + ldrh r0, [sp] + orr r0, r0, r1, lsl #16 + add sp, sp, #0x10 + bx lr + arm_func_end SubFixedPoint + + arm_func_start sub_02050F78 +sub_02050F78: ; 0x02050F78 + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r3} + sub sp, sp, #4 + ldrsh r1, [sp, #8] + ldrsh r0, [sp, #0xc] + cmp r1, r0 + ldrgth r1, [sp, #0xe] + ldrgth r0, [sp, #0xc] + orrgt r0, r0, r1, lsl #16 + bgt _02050FE8 + ldrlth r1, [sp, #0xa] + ldrlth r0, [sp, #8] + orrlt r0, r0, r1, lsl #16 + blt _02050FE8 + ldrsh r1, [sp, #0xa] + ldrsh r0, [sp, #0xe] + cmp r1, r0 + ldrgth r1, [sp, #0xc] + ldrgth r0, [sp, #0xe] + strgth r1, [sp] + strgth r0, [sp, #2] + ldrleh r1, [sp, #8] + ldrleh r0, [sp, #0xa] + strleh r1, [sp] + strleh r0, [sp, #2] + ldrh r1, [sp, #2] + ldrh r0, [sp] + orr r0, r0, r1, lsl #16 +_02050FE8: + add sp, sp, #4 + ldmia sp!, {r3} + add sp, sp, #0x10 + bx lr + arm_func_end sub_02050F78 + + arm_func_start sub_02050FF8 +sub_02050FF8: ; 0x02050FF8 + stmdb sp!, {r3} + sub sp, sp, #4 + strh r0, [sp] + ldrh r0, [sp] + mov r1, #0 + strh r1, [sp, #2] + orr r0, r0, r1, lsl #16 + add sp, sp, #4 + ldmia sp!, {r3} + bx lr + arm_func_end sub_02050FF8 + + arm_func_start BinToDecFixedPoint +BinToDecFixedPoint: ; 0x02051020 + stmdb sp!, {r3} + sub sp, sp, #4 + ldr r2, [r0, #4] + mov r1, #0x3e8 + mov r0, r2, lsl #0x10 + mov r0, r0, lsr #0x10 + mul r1, r0, r1 + mov r2, r2, lsr #0x10 + mov r0, r1, lsr #0x10 + strh r2, [sp] + strh r0, [sp, #2] + ldrh r1, [sp, #2] + ldrh r0, [sp] + orr r0, r0, r1, lsl #16 + add sp, sp, #4 + ldmia sp!, {r3} + bx lr + arm_func_end BinToDecFixedPoint diff --git a/include/adventure_log.h b/include/adventure_log.h index 0ae0f5bf..336b51d2 100644 --- a/include/adventure_log.h +++ b/include/adventure_log.h @@ -29,4 +29,7 @@ struct adventure_log { u16 padding; // 0x27A }; +extern struct adventure_log* ADVENTURE_LOG_PTR; +extern struct adventure_log _022AB69C; + #endif //PMDSKY_ADVENTURE_LOG_H diff --git a/include/main_0204FA24.h b/include/main_0204FA24.h new file mode 100644 index 00000000..285fb17e --- /dev/null +++ b/include/main_0204FA24.h @@ -0,0 +1,11 @@ +#ifndef PMDSKY_MAIN_0204FA24_H +#define PMDSKY_MAIN_0204FA24_H + +#include "adventure_log.h" +#include "util.h" + +void SetAdventureLogStructLocation(void); +void SetAdventureLogDungeonFloor(struct dungeon_floor_pair* floor); +struct dungeon_floor_pair* GetAdventureLogDungeonFloor(void); + +#endif diff --git a/include/main_0204FB9C.h b/include/main_0204FB9C.h new file mode 100644 index 00000000..87e6d230 --- /dev/null +++ b/include/main_0204FB9C.h @@ -0,0 +1,17 @@ +#ifndef PMDSKY_MAIN_0204FB9C_H +#define PMDSKY_MAIN_0204FB9C_H + +#include "adventure_log.h" +#include "util.h" + +void SetAdventureLogCompleted(s32 id); +s32 IsAdventureLogNotEmpty(void); +bool8 GetAdventureLogCompleted(s32 id); +void IncrementNbDungeonsCleared(void); +u32 GetNbDungeonsCleared(void); +void IncrementNbFriendRescues(void); +u32 GetNbFriendRescues(void); +void IncrementNbEvolutions(void); +u32 GetNbEvolutions(void); + +#endif diff --git a/include/main_0204FD3C.h b/include/main_0204FD3C.h new file mode 100644 index 00000000..5b203386 --- /dev/null +++ b/include/main_0204FD3C.h @@ -0,0 +1,14 @@ +#ifndef PMDSKY_MAIN_0204FD3C_H +#define PMDSKY_MAIN_0204FD3C_H + +#include "adventure_log.h" +#include "util.h" + +void IncrementNbEggsHatched(void); +u32 GetNbEggsHatched(void); +u32 GetNbPokemonJoined(void); +u32 GetNbMovesLearned(void); +void SetVictoriesOnOneFloor(s32 value); +u32 GetVictoriesOnOneFloor(void); + +#endif diff --git a/include/main_0204FEB4.h b/include/main_0204FEB4.h new file mode 100644 index 00000000..7672ded4 --- /dev/null +++ b/include/main_0204FEB4.h @@ -0,0 +1,17 @@ +#ifndef PMDSKY_MAIN_0204FEB4_H +#define PMDSKY_MAIN_0204FEB4_H + +#include "adventure_log.h" +#include "util.h" + +u32 GetNbPokemonBattled(void); +void IncrementNbBigTreasureWins(void); +void SetNbBigTreasureWins(s32 value); +u32 GetNbBigTreasureWins(void); +void SetNbRecycled(s32 value); +u32 GetNbRecycled(void); +void IncrementNbSkyGiftsSent(void); +void SetNbSkyGiftsSent(s32 value); +u32 GetNbSkyGiftsSent(void); + +#endif diff --git a/include/main_020502B0.h b/include/main_020502B0.h new file mode 100644 index 00000000..83e15be9 --- /dev/null +++ b/include/main_020502B0.h @@ -0,0 +1,10 @@ +#ifndef PMDSKY_MAIN_020502B0_H +#define PMDSKY_MAIN_020502B0_H + +#include "adventure_log.h" +#include "util.h" + +void IncrementNbFainted(void); +u32 GetNbFainted(void); + +#endif diff --git a/include/main_020504A4.h b/include/main_020504A4.h new file mode 100644 index 00000000..dc871d1f --- /dev/null +++ b/include/main_020504A4.h @@ -0,0 +1,9 @@ +#ifndef PMDSKY_MAIN_020504A4_H +#define PMDSKY_MAIN_020504A4_H + +#include "adventure_log.h" +#include "util.h" + +u32 GetSentryDutyGamePoints(s32 index); + +#endif diff --git a/main.lsf b/main.lsf index 01ea5a6c..8ce0997d 100644 --- a/main.lsf +++ b/main.lsf @@ -243,8 +243,19 @@ Static main Object src/dungeon_init.o Object src/main_0204F050.o Object asm/main_0204F0A0.o + Object src/main_0204FA24.o + Object asm/main_0204FA70.o + Object src/main_0204FB9C.o + Object asm/main_0204FD38.o + Object src/main_0204FD3C.o Object src/main_0204FDFC.o Object asm/main_0204FE58.o + Object src/main_0204FEB4.o + Object asm/main_0204FFEC.o + Object src/main_020502B0.o + Object asm/main_02050300.o + Object src/main_020504A4.o + Object asm/main_020504BC.o Object src/number_util.o Object asm/main_02051098.o Object src/dungeon_recruitment_2.o diff --git a/src/main_0204FA24.c b/src/main_0204FA24.c new file mode 100644 index 00000000..6fcef6e9 --- /dev/null +++ b/src/main_0204FA24.c @@ -0,0 +1,17 @@ +#include "main_0204FA24.h" +#include "adventure_log.h" + +void SetAdventureLogStructLocation(void) +{ + ADVENTURE_LOG_PTR = &_022AB69C; +} + +void SetAdventureLogDungeonFloor(struct dungeon_floor_pair *floor) +{ + ADVENTURE_LOG_PTR->current_floor = *floor; +} + +struct dungeon_floor_pair* GetAdventureLogDungeonFloor(void) +{ + return &ADVENTURE_LOG_PTR->current_floor; +} diff --git a/src/main_0204FB9C.c b/src/main_0204FB9C.c new file mode 100644 index 00000000..c316952d --- /dev/null +++ b/src/main_0204FB9C.c @@ -0,0 +1,67 @@ +#include "main_0204FB9C.h" +#include "adventure_log.h" + +void SetAdventureLogCompleted(s32 id) +{ + ADVENTURE_LOG_PTR->completion_flags[id >> 5] |= 1 << (id & 0x1F); +} + +s32 IsAdventureLogNotEmpty(void) +{ + s32 i; + struct adventure_log *log = ADVENTURE_LOG_PTR; + + for (i = 0; i < 4; i++) { + if (log->completion_flags[i] != 0) { + return 1; + } + } + return 0; +} + +bool8 GetAdventureLogCompleted(s32 id) +{ + return (ADVENTURE_LOG_PTR->completion_flags[id >> 5] & (1 << (id & 0x1F))) != 0; +} + +void IncrementNbDungeonsCleared(void) +{ + ADVENTURE_LOG_PTR->nb_dungeons_cleared++; + ADVENTURE_LOG_PTR->completion_flags[0] |= 0x10; + if ((s32) ADVENTURE_LOG_PTR->nb_dungeons_cleared > 999999) { + ADVENTURE_LOG_PTR->nb_dungeons_cleared = 999999; + } +} + +u32 GetNbDungeonsCleared(void) +{ + return ADVENTURE_LOG_PTR->nb_dungeons_cleared; +} + +void IncrementNbFriendRescues(void) +{ + ADVENTURE_LOG_PTR->nb_friend_rescues++; + if ((s32) ADVENTURE_LOG_PTR->nb_friend_rescues > 999999) { + ADVENTURE_LOG_PTR->nb_friend_rescues = 999999; + } + ADVENTURE_LOG_PTR->completion_flags[0] |= 0x40; +} + +u32 GetNbFriendRescues(void) +{ + return ADVENTURE_LOG_PTR->nb_friend_rescues; +} + +void IncrementNbEvolutions(void) +{ + ADVENTURE_LOG_PTR->nb_evolutions++; + if ((s32) ADVENTURE_LOG_PTR->nb_evolutions > 999999) { + ADVENTURE_LOG_PTR->nb_evolutions = 999999; + } + ADVENTURE_LOG_PTR->completion_flags[0] |= 0x80; +} + +u32 GetNbEvolutions(void) +{ + return ADVENTURE_LOG_PTR->nb_evolutions; +} diff --git a/src/main_0204FD3C.c b/src/main_0204FD3C.c new file mode 100644 index 00000000..7c367b08 --- /dev/null +++ b/src/main_0204FD3C.c @@ -0,0 +1,39 @@ +#include "main_0204FD3C.h" +#include "adventure_log.h" + +void IncrementNbEggsHatched(void) +{ + if ((s32) ADVENTURE_LOG_PTR->nb_eggs_hatched < 999999) { + ADVENTURE_LOG_PTR->nb_eggs_hatched++; + } + ADVENTURE_LOG_PTR->completion_flags[0] |= 0x100; +} + +u32 GetNbEggsHatched(void) +{ + return ADVENTURE_LOG_PTR->nb_eggs_hatched; +} + +u32 GetNbPokemonJoined(void) +{ + return ADVENTURE_LOG_PTR->pokemon_joined_counter; +} + +u32 GetNbMovesLearned(void) +{ + return ADVENTURE_LOG_PTR->moves_learned_counter; +} + +void SetVictoriesOnOneFloor(s32 value) +{ + if (value > 999999) { + value = 999999; + } + ADVENTURE_LOG_PTR->nb_victories_on_one_floor = value; + ADVENTURE_LOG_PTR->completion_flags[0] |= 0x200; +} + +u32 GetVictoriesOnOneFloor(void) +{ + return ADVENTURE_LOG_PTR->nb_victories_on_one_floor; +} diff --git a/src/main_0204FDFC.c b/src/main_0204FDFC.c index b1ef50a8..801cf673 100644 --- a/src/main_0204FDFC.c +++ b/src/main_0204FDFC.c @@ -1,8 +1,6 @@ #include "main_0204FDFC.h" #include "adventure_log.h" -extern struct adventure_log* ADVENTURE_LOG_PTR; - extern s32 GetDexNumberVeneer(); void SetPokemonJoined(u32 monster_id) diff --git a/src/main_0204FEB4.c b/src/main_0204FEB4.c new file mode 100644 index 00000000..c9a2bb8a --- /dev/null +++ b/src/main_0204FEB4.c @@ -0,0 +1,59 @@ +#include "main_0204FEB4.h" +#include "adventure_log.h" + +u32 GetNbPokemonBattled(void) +{ + return ADVENTURE_LOG_PTR->pokemon_battled_counter; +} + +void IncrementNbBigTreasureWins(void) +{ + SetNbBigTreasureWins(ADVENTURE_LOG_PTR->nb_big_treasure_wins + 1); +} + +void SetNbBigTreasureWins(s32 value) +{ + ADVENTURE_LOG_PTR->completion_flags[0] |= 0x400; + if (value > 999999) { + value = 999999; + } + ADVENTURE_LOG_PTR->nb_big_treasure_wins = value; +} + +u32 GetNbBigTreasureWins(void) +{ + return ADVENTURE_LOG_PTR->nb_big_treasure_wins; +} + +void SetNbRecycled(s32 value) +{ + ADVENTURE_LOG_PTR->completion_flags[0] |= 0x800; + if (value > 999999) { + value = 999999; + } + ADVENTURE_LOG_PTR->nb_recycled = value; +} + +u32 GetNbRecycled(void) +{ + return ADVENTURE_LOG_PTR->nb_recycled; +} + +void IncrementNbSkyGiftsSent(void) +{ + SetNbSkyGiftsSent(ADVENTURE_LOG_PTR->nb_gifts_sent + 1); +} + +void SetNbSkyGiftsSent(s32 value) +{ + ADVENTURE_LOG_PTR->completion_flags[0] |= 0x1000; + if (value > 999999) { + value = 999999; + } + ADVENTURE_LOG_PTR->nb_gifts_sent = value; +} + +u32 GetNbSkyGiftsSent(void) +{ + return ADVENTURE_LOG_PTR->nb_gifts_sent; +} diff --git a/src/main_020502B0.c b/src/main_020502B0.c new file mode 100644 index 00000000..a86ad84f --- /dev/null +++ b/src/main_020502B0.c @@ -0,0 +1,15 @@ +#include "main_020502B0.h" +#include "adventure_log.h" + +void IncrementNbFainted(void) +{ + if ((s32) ADVENTURE_LOG_PTR->nb_faints < 999999) { + ADVENTURE_LOG_PTR->nb_faints++; + } + ADVENTURE_LOG_PTR->completion_flags[0] |= 0x20; +} + +u32 GetNbFainted(void) +{ + return ADVENTURE_LOG_PTR->nb_faints; +} diff --git a/src/main_020504A4.c b/src/main_020504A4.c new file mode 100644 index 00000000..c0f52d85 --- /dev/null +++ b/src/main_020504A4.c @@ -0,0 +1,7 @@ +#include "main_020504A4.h" +#include "adventure_log.h" + +u32 GetSentryDutyGamePoints(s32 index) +{ + return ADVENTURE_LOG_PTR->sentry_duty_game_points[index]; +}