Merge remote-tracking branch 'upstream/main'

This commit is contained in:
AnonymousRandomPerson 2025-07-19 00:02:05 -04:00
commit 08ee322d31
17 changed files with 1783 additions and 1833 deletions

View File

@ -1,70 +1,18 @@
#pragma once
.public CopyBitsFrom
.public CopyBitsTo
.public DUNGEON_RESTRICTIONS
.public DungeonFloorToGroupFloor
.public GetItemIdFromList
.public GetNbFloorsPlusOne
.public MISSION_FLOORS_FORBIDDEN
.public RandIntSafe
.public _020A0C68
.public _020A0C69
.public _020A0C6A
.public _020A0C6C
.public _020A0C6E
.public _020A1864
.public _020A20B1
.public _020A2D09
.public _020A31B8
.public _020A31D4
.public _020A31E4
.public _020A31F4
.public _020A31FC
.public _020A3200
.public _020A45C8_JP
.public _020AFF7C
.public _020AFF80
.public _020AFF88
.public _020B09B0
.public _020B09C0
.public _s32_div_f
.public AllocateTemp1024ByteBufferFromPool
.public ARM9_UNKNOWN_PTR__NA_20A2C84
.public ARM9_UNKNOWN_TABLE__NA_20A20B0
.public ArrayCopy32
.public ArrayFill32
.public BAG_CAPACITY_TABLE
.public BAG_CAPACITY_TABLE_SPECIAL_EPISODES
.public CopyBitsFrom
.public CopyBitsTo
.public DecompressAtNormalVeneer
.public DUNGEON_RESTRICTIONS
.public DungeonFloorToGroupFloor
.public GetAtSize
.public GetBaseForm
.public GetItemIdFromList
.public GetNbFloorsPlusOne
.public LoadFileFromRom
.public LoadM2nAndN2m
.public MemAlloc
.public MemFree
.public MemZero
.public MISSION_FLOORS_FORBIDDEN
.public MONSTER_DATA_TABLE_PTR
.public MONSTER_SPRITE_DATA
.public RandIntSafe
.public RANK_UP_TABLE
.public StringFromId
.public strncpy
.public sub_0200302C
.public sub_020030FC
.public sub_0200A124
.public sub_0200A158
.public sub_0200A184
.public sub_0200A478
.public sub_0200A4C4
.public sub_0200A504
.public sub_0200A510
.public sub_0200A590
.public sub_0200B2C4
.public sub_0200B314
.public sub_0200B330
.public sub_0200B340
.public sub_0200B3C0
.public sub_0200B3D4
.public sub_0200B3FC
.public UnloadFile
.public UNOWN_SPECIES_ADDITIONAL_CHAR_PTR_TABLE
.public vsprintf

View File

@ -0,0 +1,53 @@
#pragma once
.public ARM9_UNKNOWN_PTR__NA_20A2C84
.public ARM9_UNKNOWN_TABLE__NA_20A20B0
.public AllocateTemp1024ByteBufferFromPool
.public ArrayCopy32
.public ArrayFill32
.public BAG_CAPACITY_TABLE
.public BAG_CAPACITY_TABLE_SPECIAL_EPISODES
.public DecompressAtNormalVeneer
.public GetAtSize
.public GetBaseForm
.public LoadFileFromRom
.public LoadM2nAndN2m
.public MONSTER_DATA_TABLE_PTR
.public MONSTER_SPRITE_DATA
.public MemAlloc
.public MemFree
.public MemZero
.public RANK_UP_TABLE
.public StringFromId
.public UNOWN_SPECIES_ADDITIONAL_CHAR_PTR_TABLE
.public UnloadFile
.public _020A20B1
.public _020A2D09
.public _020A31B8
.public _020A31D4
.public _020A31E4
.public _020A31F4
.public _020A31FC
.public _020A3200
.public _020A45C8_JP
.public _020B09B0
.public _020B09C0
.public _s32_div_f
.public strncpy
.public sub_0200302C
.public sub_020030FC
.public sub_0200A124
.public sub_0200A158
.public sub_0200A184
.public sub_0200A478
.public sub_0200A4C4
.public sub_0200A504
.public sub_0200A510
.public sub_0200A590
.public sub_0200B2C4
.public sub_0200B314
.public sub_0200B330
.public sub_0200B340
.public sub_0200B3C0
.public sub_0200B3D4
.public sub_0200B3FC
.public vsprintf

View File

@ -0,0 +1,15 @@
#pragma once
.public DUNGEON_PTR
.public DirectoryFileMngr_GetDirectoryFileSize
.public FloorNumberIsEven
.public GendersEqualNotGenderless
.public GetMonsterGender
.public GetSpriteFileSize
.public GetSpriteIndex__020526EC
.public IsShaymin
.public LoadWanTableEntryFromPack
.public LoadWanTableEntryFromPackUseProvidedMemory
.public MemAlloc
.public ReplaceWanFromBinFile
.public WAN_TABLE
.public ov29_0237C9B0

View File

@ -7,7 +7,6 @@
.public DUNGEON_PTR
.public DeleteWanTableEntryVeneer
.public DetermineMonsterShadow
.public DirectoryFileMngr_GetDirectoryFileSize
.public DiscoverMinimap
.public DisplayMessage
.public DisplayMessage2
@ -16,18 +15,14 @@
.public EndFrozenClassStatus
.public EntityIsValid__022F7364
.public FreeOtherWrappedMonsters
.public GendersEqualNotGenderless
.public GetActiveTeamMember
.public GetBodySize
.public GetForcedLossReason
.public GetLeader
.public GetLvlUpEntry
.public GetMinimapDataE447
.public GetMonsterGender
.public GetMonsterName
.public GetNumberOfAttacks
.public GetSpriteFileSize
.public GetSpriteIndex__020526EC
.public GetStatBoostsForMonsterSummary
.public GetTile
.public GetTileAtEntity
@ -42,14 +37,10 @@
.public JoinedAtRangeCheck
.public JoinedAtRangeCheck2
.public LEADER_PTR
.public LoadWanTableEntryFromPack
.public LoadWanTableEntryFromPackUseProvidedMemory
.public MemAlloc
.public MemFree
.public OpenMessageLog
.public PopulateActiveMonsterPtrs
.public RemoveHolderForItemInBag
.public ReplaceWanFromBinFile
.public RevertGiratinaAndShaymin
.public SetForcedLossReason
.public SetMissionTargetEnemyDefeated

File diff suppressed because it is too large Load Diff

1413
asm/main_02051788.s Normal file

File diff suppressed because it is too large Load Diff

208
asm/overlay_29_022F73EC.s Normal file
View File

@ -0,0 +1,208 @@
.include "asm/macros.inc"
.include "overlay_29_022F73EC.inc"
.text
arm_func_start GetKecleonIdToSpawnByFloor
GetKecleonIdToSpawnByFloor: ; 0x022F73EC
stmdb sp!, {r3, lr}
bl FloorNumberIsEven
cmp r0, #0
ldrne r0, _022F7404 ; =0x000003D7
ldreq r0, _022F7408 ; =0x0000017F
ldmia sp!, {r3, pc}
.align 2, 0
_022F7404: .word 0x000003D7
_022F7408: .word 0x0000017F
arm_func_end GetKecleonIdToSpawnByFloor
arm_func_start StoreSpriteFileIndexBothGenders
StoreSpriteFileIndexBothGenders: ; 0x022F740C
stmdb sp!, {r3, r4, r5, r6, r7, lr}
ldr r2, _022F74D0 ; =DUNGEON_PTR
mov r7, r0
ldr r2, [r2]
mov r6, r1
#ifdef JAPAN
add r1, r2, #0x870
add r5, r1, #0x19000
#else
add r1, r2, #0x114
add r5, r1, #0x19800
#endif
bl GetSpriteIndex__020526EC
mov r4, r0
mov r1, r7, lsl #1
mov r0, r7
strh r6, [r5, r1]
bl GetMonsterGender
cmp r0, #3
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r7, #0x258
bge _022F7490
add r6, r7, #0x258
mov r1, r6, lsl #0x10
mov r0, r7
mov r1, r1, asr #0x10
bl GendersEqualNotGenderless
cmp r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r6, lsl #0x10
mov r0, r0, asr #0x10
bl GetSpriteIndex__020526EC
cmp r4, r0
moveq r0, r7, lsl #1
ldreqsh r1, [r5, r0]
moveq r0, r6, lsl #1
streqh r1, [r5, r0]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022F7490:
sub r6, r7, #0x258
mov r1, r6, lsl #0x10
mov r0, r7
mov r1, r1, asr #0x10
bl GendersEqualNotGenderless
cmp r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r6, lsl #0x10
mov r0, r0, asr #0x10
bl GetSpriteIndex__020526EC
cmp r4, r0
moveq r0, r7, lsl #1
ldreqsh r1, [r5, r0]
moveq r0, r6, lsl #1
streqh r1, [r5, r0]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_022F74D0: .word DUNGEON_PTR
arm_func_end StoreSpriteFileIndexBothGenders
arm_func_start LoadMonsterSpriteInner
LoadMonsterSpriteInner: ; 0x022F74D4
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #4
ldr r1, _022F75C4 ; =DUNGEON_PTR
mov r6, r0
#ifdef JAPAN
ldr r1, [r1]
add r1, r1, r6, lsl #1
add r1, r1, #0x19800
ldrsh r1, [r1, #0x70]
#else
ldr r2, [r1]
ldr r1, _022F75C8 ; =0x00019914
add r2, r2, r6, lsl #1
ldrsh r1, [r2, r1]
#endif
cmp r1, #0
bne _022F75BC
bl GetSpriteIndex__020526EC
mov r4, r0
mov r0, r6
bl IsShaymin
cmp r0, #0
beq _022F756C
mov r0, r6
bl IsShaymin
cmp r0, #0
mov r0, r6
movne r5, #0
bl GetSpriteFileSize
mov r1, #0
bl MemAlloc
ldr r2, _022F75CC ; =ov29_0237C9B0
mov r1, #1
str r0, [r2, r5, lsl #2]
str r1, [sp]
ldr r0, _022F75D0 ; =WAN_TABLE
ldr r3, [r2, r5, lsl #2]
ldr r0, [r0]
mov r2, r4
mov r1, #0
bl LoadWanTableEntryFromPackUseProvidedMemory
mov r1, r0
mov r0, r6
bl StoreSpriteFileIndexBothGenders
b _022F7598
_022F756C:
mov r1, #1
ldr r0, _022F75D0 ; =WAN_TABLE
str r1, [sp]
mov r1, #0
ldr r0, [r0]
mov r2, r4
mov r3, r1
bl LoadWanTableEntryFromPack
mov r1, r0
mov r0, r6
bl StoreSpriteFileIndexBothGenders
_022F7598:
mov r1, r4
mov r0, #0
bl DirectoryFileMngr_GetDirectoryFileSize
ldr r1, _022F75C4 ; =DUNGEON_PTR
ldr r1, [r1]
add r1, r1, #0x2c000
#ifdef JAPAN
ldr r2, [r1, #0xa68]
add r0, r2, r0
str r0, [r1, #0xa68]
#else
ldr r2, [r1, #0xb0c]
add r0, r2, r0
str r0, [r1, #0xb0c]
#endif
_022F75BC:
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
_022F75C4: .word DUNGEON_PTR
#ifndef JAPAN
_022F75C8: .word 0x00019914
#endif
_022F75CC: .word ov29_0237C9B0
_022F75D0: .word WAN_TABLE
arm_func_end LoadMonsterSpriteInner
arm_func_start SwapMonsterWanFileIndex
SwapMonsterWanFileIndex: ; 0x022F75D4
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #4
ldr r2, _022F764C ; =DUNGEON_PTR
mov r5, r1
ldr r1, [r2]
mov r6, r0
#ifdef JAPAN
add r1, r1, #0x870
mov r0, r5
add r4, r1, #0x19000
#else
add r1, r1, #0x114
mov r0, r5
add r4, r1, #0x19800
#endif
bl GetSpriteIndex__020526EC
mov r1, #1
str r1, [sp]
mov r1, r6, lsl #1
ldr r2, _022F7650 ; =WAN_TABLE
mov r3, r0
ldrsh r1, [r4, r1]
ldr r0, [r2]
mov r2, #0
bl ReplaceWanFromBinFile
mov r1, r0
mov r0, r5
bl StoreSpriteFileIndexBothGenders
mov r3, r6, lsl #1
ldrsh r2, [r4, r3]
mov r1, r5, lsl #1
mov r0, #0
strh r2, [r4, r1]
strh r0, [r4, r3]
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
_022F764C: .word DUNGEON_PTR
_022F7650: .word WAN_TABLE
arm_func_end SwapMonsterWanFileIndex

View File

@ -1,345 +1,8 @@
.include "asm/macros.inc"
.include "overlay_29_022F7388.inc"
.include "overlay_29_022F7768.inc"
.text
arm_func_start DungeonGetSpriteIndex
DungeonGetSpriteIndex: ; 0x022F7388
#ifdef JAPAN
ldr r1, _022F73A0 ; =DUNGEON_PTR
ldr r1, [r1]
add r0, r1, r0, lsl #1
add r0, r0, #0x19800
ldrsh r0, [r0, #0x70]
#else
ldr r2, _022F73A0 ; =DUNGEON_PTR
ldr r1, _022F73A4 ; =0x00019914
ldr r2, [r2]
add r0, r2, r0, lsl #1
ldrsh r0, [r0, r1]
#endif
bx lr
.align 2, 0
_022F73A0: .word DUNGEON_PTR
#ifndef JAPAN
_022F73A4: .word 0x00019914
#endif
arm_func_end DungeonGetSpriteIndex
arm_func_start JoinedAtRangeCheck2Veneer
JoinedAtRangeCheck2Veneer: ; 0x022F73A8
ldr ip, _022F73B0 ; =JoinedAtRangeCheck2
bx ip
.align 2, 0
_022F73B0: .word JoinedAtRangeCheck2
arm_func_end JoinedAtRangeCheck2Veneer
arm_func_start FloorNumberIsEven
FloorNumberIsEven: ; 0x022F73B4
ldr r0, _022F73E8 ; =DUNGEON_PTR
ldr r1, [r0]
ldrb r0, [r1, #0x748]
cmp r0, #0x5b
ldreqb r0, [r1, #0x749]
cmpeq r0, #0xa
moveq r0, #0
bxeq lr
ldrb r0, [r1, #0x749]
tst r0, #1
moveq r0, #1
movne r0, #0
bx lr
.align 2, 0
_022F73E8: .word DUNGEON_PTR
arm_func_end FloorNumberIsEven
arm_func_start GetKecleonIdToSpawnByFloor
GetKecleonIdToSpawnByFloor: ; 0x022F73EC
stmdb sp!, {r3, lr}
bl FloorNumberIsEven
cmp r0, #0
ldrne r0, _022F7404 ; =0x000003D7
ldreq r0, _022F7408 ; =0x0000017F
ldmia sp!, {r3, pc}
.align 2, 0
_022F7404: .word 0x000003D7
_022F7408: .word 0x0000017F
arm_func_end GetKecleonIdToSpawnByFloor
arm_func_start StoreSpriteFileIndexBothGenders
StoreSpriteFileIndexBothGenders: ; 0x022F740C
stmdb sp!, {r3, r4, r5, r6, r7, lr}
ldr r2, _022F74D0 ; =DUNGEON_PTR
mov r7, r0
ldr r2, [r2]
mov r6, r1
#ifdef JAPAN
add r1, r2, #0x870
add r5, r1, #0x19000
#else
add r1, r2, #0x114
add r5, r1, #0x19800
#endif
bl GetSpriteIndex__020526EC
mov r4, r0
mov r1, r7, lsl #1
mov r0, r7
strh r6, [r5, r1]
bl GetMonsterGender
cmp r0, #3
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r7, #0x258
bge _022F7490
add r6, r7, #0x258
mov r1, r6, lsl #0x10
mov r0, r7
mov r1, r1, asr #0x10
bl GendersEqualNotGenderless
cmp r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r6, lsl #0x10
mov r0, r0, asr #0x10
bl GetSpriteIndex__020526EC
cmp r4, r0
moveq r0, r7, lsl #1
ldreqsh r1, [r5, r0]
moveq r0, r6, lsl #1
streqh r1, [r5, r0]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022F7490:
sub r6, r7, #0x258
mov r1, r6, lsl #0x10
mov r0, r7
mov r1, r1, asr #0x10
bl GendersEqualNotGenderless
cmp r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r6, lsl #0x10
mov r0, r0, asr #0x10
bl GetSpriteIndex__020526EC
cmp r4, r0
moveq r0, r7, lsl #1
ldreqsh r1, [r5, r0]
moveq r0, r6, lsl #1
streqh r1, [r5, r0]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_022F74D0: .word DUNGEON_PTR
arm_func_end StoreSpriteFileIndexBothGenders
arm_func_start LoadMonsterSpriteInner
LoadMonsterSpriteInner: ; 0x022F74D4
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #4
ldr r1, _022F75C4 ; =DUNGEON_PTR
mov r6, r0
#ifdef JAPAN
ldr r1, [r1]
add r1, r1, r6, lsl #1
add r1, r1, #0x19800
ldrsh r1, [r1, #0x70]
#else
ldr r2, [r1]
ldr r1, _022F75C8 ; =0x00019914
add r2, r2, r6, lsl #1
ldrsh r1, [r2, r1]
#endif
cmp r1, #0
bne _022F75BC
bl GetSpriteIndex__020526EC
mov r4, r0
mov r0, r6
bl IsShaymin
cmp r0, #0
beq _022F756C
mov r0, r6
bl IsShaymin
cmp r0, #0
mov r0, r6
movne r5, #0
bl GetSpriteFileSize
mov r1, #0
bl MemAlloc
ldr r2, _022F75CC ; =ov29_0237C9B0
mov r1, #1
str r0, [r2, r5, lsl #2]
str r1, [sp]
ldr r0, _022F75D0 ; =WAN_TABLE
ldr r3, [r2, r5, lsl #2]
ldr r0, [r0]
mov r2, r4
mov r1, #0
bl LoadWanTableEntryFromPackUseProvidedMemory
mov r1, r0
mov r0, r6
bl StoreSpriteFileIndexBothGenders
b _022F7598
_022F756C:
mov r1, #1
ldr r0, _022F75D0 ; =WAN_TABLE
str r1, [sp]
mov r1, #0
ldr r0, [r0]
mov r2, r4
mov r3, r1
bl LoadWanTableEntryFromPack
mov r1, r0
mov r0, r6
bl StoreSpriteFileIndexBothGenders
_022F7598:
mov r1, r4
mov r0, #0
bl DirectoryFileMngr_GetDirectoryFileSize
ldr r1, _022F75C4 ; =DUNGEON_PTR
ldr r1, [r1]
add r1, r1, #0x2c000
#ifdef JAPAN
ldr r2, [r1, #0xa68]
add r0, r2, r0
str r0, [r1, #0xa68]
#else
ldr r2, [r1, #0xb0c]
add r0, r2, r0
str r0, [r1, #0xb0c]
#endif
_022F75BC:
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
_022F75C4: .word DUNGEON_PTR
#ifndef JAPAN
_022F75C8: .word 0x00019914
#endif
_022F75CC: .word ov29_0237C9B0
_022F75D0: .word WAN_TABLE
arm_func_end LoadMonsterSpriteInner
arm_func_start SwapMonsterWanFileIndex
SwapMonsterWanFileIndex: ; 0x022F75D4
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #4
ldr r2, _022F764C ; =DUNGEON_PTR
mov r5, r1
ldr r1, [r2]
mov r6, r0
#ifdef JAPAN
add r1, r1, #0x870
mov r0, r5
add r4, r1, #0x19000
#else
add r1, r1, #0x114
mov r0, r5
add r4, r1, #0x19800
#endif
bl GetSpriteIndex__020526EC
mov r1, #1
str r1, [sp]
mov r1, r6, lsl #1
ldr r2, _022F7650 ; =WAN_TABLE
mov r3, r0
ldrsh r1, [r4, r1]
ldr r0, [r2]
mov r2, #0
bl ReplaceWanFromBinFile
mov r1, r0
mov r0, r5
bl StoreSpriteFileIndexBothGenders
mov r3, r6, lsl #1
ldrsh r2, [r4, r3]
mov r1, r5, lsl #1
mov r0, #0
strh r2, [r4, r1]
strh r0, [r4, r3]
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
_022F764C: .word DUNGEON_PTR
_022F7650: .word WAN_TABLE
arm_func_end SwapMonsterWanFileIndex
arm_func_start LoadMonsterSprite
LoadMonsterSprite: ; 0x022F7654
stmdb sp!, {r4, lr}
mov r4, r0
cmp r1, #0
bne _022F769C
ldr r0, _022F7748 ; =0xFFFFFE5E
add r0, r4, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #3
bhi _022F769C
ldr r0, _022F774C ; =DUNGEON_PTR
ldr r0, [r0]
#ifdef JAPAN
add r0, r0, #0x3d00
ldrsh r0, [r0, #0x96]
#else
add r0, r0, #0x3e00
ldrsh r0, [r0, #0x3a]
#endif
bl LoadMonsterSpriteInner
ldmia sp!, {r4, pc}
_022F769C:
mov r0, r4
bl LoadMonsterSpriteInner
ldr r1, _022F7750 ; =0x0000017B
cmp r4, r1
cmpne r4, #0x17c
addne r0, r1, #2
cmpne r4, r0
addne r0, r1, #3
cmpne r4, r0
beq _022F76E4
ldr r0, _022F7754 ; =0xFFFFFC2D
add r0, r4, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #3
bhi _022F7704
_022F76E4:
ldr r0, _022F7750 ; =0x0000017B
bl LoadMonsterSpriteInner
mov r0, #0x17c
bl LoadMonsterSpriteInner
ldr r0, _022F7758 ; =0x0000017D
bl LoadMonsterSpriteInner
ldr r0, _022F775C ; =0x0000017E
bl LoadMonsterSpriteInner
_022F7704:
cmp r4, #0x1cc
ldrne r0, _022F7760 ; =0x000001CD
cmpne r4, r0
beq _022F7734
ldr r0, _022F7764 ; =0xFFFFFBDC
add r0, r4, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #1
ldmhiia sp!, {r4, pc}
_022F7734:
mov r0, #0x1cc
bl LoadMonsterSpriteInner
ldr r0, _022F7760 ; =0x000001CD
bl LoadMonsterSpriteInner
ldmia sp!, {r4, pc}
.align 2, 0
_022F7748: .word 0xFFFFFE5E
_022F774C: .word DUNGEON_PTR
_022F7750: .word 0x0000017B
_022F7754: .word 0xFFFFFC2D
_022F7758: .word 0x0000017D
_022F775C: .word 0x0000017E
_022F7760: .word 0x000001CD
_022F7764: .word 0xFFFFFBDC
arm_func_end LoadMonsterSprite
arm_func_start DeleteMonsterSpriteFile
DeleteMonsterSpriteFile: ; 0x022F7768
stmdb sp!, {r3, r4, r5, lr}

8
include/main_02051760.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef PMDSKY_MAIN_02051760_H
#define PMDSKY_MAIN_02051760_H
#include "util.h"
bool32 JoinedAtRangeCheck2(u8 joined_at);
#endif //PMDSKY_MAIN_02051760_H

View File

@ -2,8 +2,11 @@
#define PMDSKY_OVERLAY_29_022F7364_H
#include "dungeon_mode.h"
#include "util.h"
// Checks if an entity pointer points to a valid entity (not entity type 0, which represents no entity).
bool8 EntityIsValid__022F7364(struct entity *entity);
s16 DungeonGetSpriteIndex(s16 monster_id);
bool32 JoinedAtRangeCheck2Veneer(u8 joined_at);
#endif //PMDSKY_OVERLAY_29_022F7364_H

View File

@ -0,0 +1,8 @@
#ifndef PMDSKY_OVERLAY_29_022F73B4_H
#define PMDSKY_OVERLAY_29_022F73B4_H
#include "util.h"
bool32 FloorNumberIsEven();
#endif //PMDSKY_OVERLAY_29_022F73B4_H

View File

@ -0,0 +1,7 @@
#ifndef PMDSKY_OVERLAY_29_022F7654_H
#define PMDSKY_OVERLAY_29_022F7654_H
#include "enums.h"
void LoadMonsterSprite(s16 monster_id, u8 skip_deoxys_check);
#endif //PMDSKY_OVERLAY_29_022F7654_H

View File

@ -57,6 +57,8 @@ Static main
Object asm/main_0204B018.o
Object src/number_util.o
Object asm/main_02051098.o
Object src/main_02051760.o
Object asm/main_02051788.o
Object src/main_02052874.o
Object asm/main_02052890.o
Object src/main_02052950.o
@ -336,7 +338,10 @@ Overlay OVY_29
Object src/overlay_29_022F62A8.o
Object asm/overlay_29_022F62CC.o
Object src/overlay_29_022F7364.o
Object asm/overlay_29_022F7388.o
Object src/overlay_29_022F73B4.o
Object asm/overlay_29_022F73EC.o
Object src/overlay_29_022F7654.o
Object asm/overlay_29_022F7768.o
Object src/dungeon_misc.o
Object asm/overlay_29_022F9194.o
Object src/overlay_29_022F9720.o

8
src/main_02051760.c Normal file
View File

@ -0,0 +1,8 @@
#include "main_02051760.h"
#include "enums.h"
#include "util.h"
bool32 JoinedAtRangeCheck2(u8 joined_at) {
return joined_at == DUNGEON_BEACH || (joined_at >= DUNGEON_DUMMY_0xEC && DUNGEON_DUMMY_0xF0 >= joined_at);
}

View File

@ -1,4 +1,7 @@
#include "overlay_29_022F7364.h"
#include "dungeon.h"
#include "util.h"
#include "main_02051760.h"
bool8 EntityIsValid__022F7364(struct entity *entity)
{
@ -7,3 +10,12 @@ bool8 EntityIsValid__022F7364(struct entity *entity)
return entity->type != ENTITY_NOTHING;
}
extern struct dungeon *DUNGEON_PTR[];
s16 DungeonGetSpriteIndex(s16 monster_id) {
return DUNGEON_PTR[0]->sprite_indexes[monster_id];
}
bool32 JoinedAtRangeCheck2Veneer(u8 joined_at) {
return JoinedAtRangeCheck2(joined_at);
}

11
src/overlay_29_022F73B4.c Normal file
View File

@ -0,0 +1,11 @@
#include "overlay_29_022F73B4.h"
#include "dungeon.h"
#include "util.h"
extern struct dungeon *DUNGEON_PTR[];
bool32 FloorNumberIsEven() {
struct dungeon *dungeon = DUNGEON_PTR[0];
if (dungeon->id == DUNGEON_LABYRINTH_CAVE && dungeon->floor == 10) return 0;
return (dungeon->floor & 1) == 0;
}

22
src/overlay_29_022F7654.c Normal file
View File

@ -0,0 +1,22 @@
#include "overlay_29_022F7654.h"
#include "dungeon.h"
extern struct dungeon *DUNGEON_PTR[];
extern void LoadMonsterSpriteInner(s16 monster_id);
void LoadMonsterSprite(s16 monster_id, u8 skip_deoxys_check)
{
if (!skip_deoxys_check && (u16)(s16)(monster_id - MONSTER_DEOXYS_NORMAL) <= 3) LoadMonsterSpriteInner((s16)DUNGEON_PTR[0]->deoxys_floor_id);
else {
LoadMonsterSpriteInner(monster_id);
if (monster_id == MONSTER_CASTFORM_NORMAL || monster_id == MONSTER_CASTFORM_SNOWY || monster_id == MONSTER_CASTFORM_SUNNY || monster_id == MONSTER_CASTFORM_RAINY || 3 >= (u16)(s16)(monster_id - MONSTER_CASTFORM_NORMAL_SECONDARY)) {
LoadMonsterSpriteInner(MONSTER_CASTFORM_NORMAL);
LoadMonsterSpriteInner(MONSTER_CASTFORM_SNOWY);
LoadMonsterSpriteInner(MONSTER_CASTFORM_SUNNY);
LoadMonsterSpriteInner(MONSTER_CASTFORM_RAINY);
}
if (monster_id == MONSTER_CHERRIM_OVERCAST || monster_id == MONSTER_CHERRIM_SUNSHINE || (u16)(s16)(monster_id - MONSTER_CHERRIM_OVERCAST_SECONDARY) <= 1) {
LoadMonsterSpriteInner(MONSTER_CHERRIM_OVERCAST);
LoadMonsterSpriteInner(MONSTER_CHERRIM_SUNSHINE);
}
}
}