mirror of
https://github.com/pret/pmd-sky.git
synced 2026-08-20 09:34:33 -05:00
Decomp thirty adventure-log accessors
Decompile from asm, all of them accessors on ADVENTURE_LOG_PTR: SetAdventureLogStructLocation SetAdventureLogCompleted IncrementNbEvolutions SetAdventureLogDungeonFloor GetAdventureLogCompleted GetNbEvolutions GetAdventureLogDungeonFloor IsAdventureLogNotEmpty IncrementNbEggsHatched IncrementNbDungeonsCleared GetNbDungeonsCleared GetNbEggsHatched IncrementNbFriendRescues GetNbFriendRescues GetNbPokemonJoined GetNbMovesLearned SetVictoriesOnOneFloor GetVictoriesOnOneFloor GetNbPokemonBattled IncrementNbBigTreasureWins SetNbBigTreasureWins GetNbBigTreasureWins SetNbRecycled GetNbRecycled IncrementNbSkyGiftsSent SetNbSkyGiftsSent GetNbSkyGiftsSent IncrementNbFainted GetNbFainted GetSentryDutyGamePoints No new types. struct adventure_log already exists in include/adventure_log.h with every field these touch named and offset-commented, and struct dungeon_floor_pair in dungeon.h; every offset in the asm lands on a named field. That header is the reason a batch this size was tractable: the only modelling needed was reading which field each function touches. Two orderings decided four of the thirty, both instances of the rule added to MATCHING_TIPS in the previous commit. IsAdventureLogNotEmpty needed its loop index declared before the pointer local, not after -- with the pointer first the two land in swapped registers, at 35. The three Set functions needed the completion-flag write placed before the clamp rather than after: written in the obvious order the clamp is emitted ahead of the first pointer load and the two literal-pool words come out reversed, at 250 each. Reordering the statement fixed all three. The counters clamp at 0x000F423F, decimal 999999, and each function sets one bit of completion_flags[0]. The exact shape differs per function and is reproduced rather than normalised: three increment then clamp, two clamp then increment, and the three setters write the flag before storing the value. Those differences are what the target does. The clamp comparisons are signed even though the fields are u32, so each is written with an explicit (s32) cast rather than retyping a shared struct. ADVENTURE_LOG_PTR and _022AB69C move into adventure_log.h. src/main_0204FDFC.c declared the pointer itself, from before any of this was decompiled; that line is replaced by the header it already includes, and the object rebuilds unchanged. Nine adventure-log functions remain in asm and are not in this commit: ClearAdventureLogStruct, ComputeSpecialCounters, CopyLogTo, CopyLogFrom, SetItemAcquired, GetNbItemAcquired, SetChallengeLetterCleared, SetPokemonBattled and SetSentryDutyGamePoints. No comments are added to any pmd-sky file. Authored by Claude (Opus 5) under human direction. Confirmed by a matching build: build/pmdsky.us/pmdsky.us.nds: OK. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
2
asm/include/main_0204FA70.inc
Normal file
2
asm/include/main_0204FA70.inc
Normal file
@@ -0,0 +1,2 @@
|
||||
#pragma once
|
||||
.public ADVENTURE_LOG_PTR
|
||||
1
asm/include/main_0204FD38.inc
Normal file
1
asm/include/main_0204FD38.inc
Normal file
@@ -0,0 +1 @@
|
||||
#pragma once
|
||||
@@ -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
|
||||
|
||||
8
asm/include/main_0204FFEC.inc
Normal file
8
asm/include/main_0204FFEC.inc
Normal file
@@ -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
|
||||
7
asm/include/main_02050300.inc
Normal file
7
asm/include/main_02050300.inc
Normal file
@@ -0,0 +1,7 @@
|
||||
#pragma once
|
||||
.public ADVENTURE_LOG_PTR
|
||||
.public GetAdventureLogCompleted
|
||||
.public IsItemValidVeneer
|
||||
.public NormalizeTreasureBox
|
||||
.public SetAdventureLogCompleted
|
||||
.public SetResolvedPerformanceProgressFlag
|
||||
18
asm/include/main_020504BC.inc
Normal file
18
asm/include/main_020504BC.inc
Normal file
@@ -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
|
||||
@@ -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
|
||||
|
||||
89
asm/main_0204FA70.s
Normal file
89
asm/main_0204FA70.s
Normal file
@@ -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
|
||||
9
asm/main_0204FD38.s
Normal file
9
asm/main_0204FD38.s
Normal file
@@ -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
|
||||
1497
asm/main_0204FE58.s
1497
asm/main_0204FE58.s
File diff suppressed because it is too large
Load Diff
206
asm/main_0204FFEC.s
Normal file
206
asm/main_0204FFEC.s
Normal file
@@ -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
|
||||
131
asm/main_02050300.s
Normal file
131
asm/main_02050300.s
Normal file
@@ -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
|
||||
1008
asm/main_020504BC.s
Normal file
1008
asm/main_020504BC.s
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
11
include/main_0204FA24.h
Normal file
11
include/main_0204FA24.h
Normal file
@@ -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
|
||||
17
include/main_0204FB9C.h
Normal file
17
include/main_0204FB9C.h
Normal file
@@ -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
|
||||
14
include/main_0204FD3C.h
Normal file
14
include/main_0204FD3C.h
Normal file
@@ -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
|
||||
17
include/main_0204FEB4.h
Normal file
17
include/main_0204FEB4.h
Normal file
@@ -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
|
||||
10
include/main_020502B0.h
Normal file
10
include/main_020502B0.h
Normal file
@@ -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
|
||||
9
include/main_020504A4.h
Normal file
9
include/main_020504A4.h
Normal file
@@ -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
|
||||
11
main.lsf
11
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
|
||||
|
||||
17
src/main_0204FA24.c
Normal file
17
src/main_0204FA24.c
Normal file
@@ -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;
|
||||
}
|
||||
67
src/main_0204FB9C.c
Normal file
67
src/main_0204FB9C.c
Normal file
@@ -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;
|
||||
}
|
||||
39
src/main_0204FD3C.c
Normal file
39
src/main_0204FD3C.c
Normal file
@@ -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;
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
59
src/main_0204FEB4.c
Normal file
59
src/main_0204FEB4.c
Normal file
@@ -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;
|
||||
}
|
||||
15
src/main_020502B0.c
Normal file
15
src/main_020502B0.c
Normal file
@@ -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;
|
||||
}
|
||||
7
src/main_020504A4.c
Normal file
7
src/main_020504A4.c
Normal file
@@ -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];
|
||||
}
|
||||
Reference in New Issue
Block a user