mirror of
https://github.com/pret/pmd-sky.git
synced 2026-09-12 05:16:19 -05:00
Decomp CopySpawnEntriesMaster
This commit is contained in:
@@ -5501,52 +5501,3 @@ ov29_022E7BD0: ; 0x022E7BD0
|
||||
moveq r0, #0x46
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end ov29_022E7BD0
|
||||
|
||||
arm_func_start CopySpawnEntriesMaster
|
||||
CopySpawnEntriesMaster: ; 0x022E7BE8
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
ldr r7, _022E7C5C ; =DUNGEON_PTR
|
||||
b _022E7C4C
|
||||
_022E7C00:
|
||||
ldr r0, [r7]
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x8c0
|
||||
add r0, r0, #0x2c000
|
||||
#else
|
||||
add r0, r0, #0x164
|
||||
add r0, r0, #0x2c800
|
||||
#endif
|
||||
add r0, r0, r4, lsl #3
|
||||
bl GetMonsterIdFromSpawnEntry
|
||||
cmp r0, #0
|
||||
beq _022E7C54
|
||||
ldr r0, [r7]
|
||||
add r2, r6, r5, lsl #3
|
||||
add r0, r0, r4, lsl #3
|
||||
#ifdef JAPAN
|
||||
add r0, r0, #0x8c0
|
||||
add r3, r0, #0x2c000
|
||||
#else
|
||||
add r0, r0, #0x164
|
||||
add r3, r0, #0x2c800
|
||||
#endif
|
||||
mov r1, #4
|
||||
_022E7C34:
|
||||
ldrh r0, [r3], #2
|
||||
subs r1, r1, #1
|
||||
strh r0, [r2], #2
|
||||
bne _022E7C34
|
||||
add r5, r5, #1
|
||||
add r4, r4, #1
|
||||
_022E7C4C:
|
||||
cmp r4, #0x10
|
||||
blt _022E7C00
|
||||
_022E7C54:
|
||||
mov r0, r5
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_022E7C5C: .word DUNGEON_PTR
|
||||
arm_func_end CopySpawnEntriesMaster
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef PMDSKY_SPAWN_1_H
|
||||
#define PMDSKY_SPAWN_1_H
|
||||
|
||||
s32 CopySpawnEntriesMaster(struct monster_spawn_entry out[], s32 idx_out);
|
||||
s32 MonsterSpawnListPartialCopy(struct monster_spawn_entry entry_out[], s32 idx_out);
|
||||
void CopySpawnEntriesOnce();
|
||||
|
||||
|
||||
@@ -6,6 +6,20 @@ extern s32 GetMonsterIdFromSpawnEntry(struct monster_spawn_entry*);
|
||||
extern u32 GetSpriteSize(s32);
|
||||
extern struct dungeon *DUNGEON_PTR;
|
||||
|
||||
s32 CopySpawnEntriesMaster(struct monster_spawn_entry out[], s32 idx_out) {
|
||||
for(s32 i = 0; i < 16; i++) {
|
||||
s32 monster_id = GetMonsterIdFromSpawnEntry(&(DUNGEON_PTR->spawn_entries_master[i]));
|
||||
if(monster_id == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
out[idx_out] = DUNGEON_PTR->spawn_entries_master[i];
|
||||
idx_out++;
|
||||
}
|
||||
|
||||
return idx_out;
|
||||
}
|
||||
|
||||
s32 MonsterSpawnListPartialCopy(struct monster_spawn_entry entry_out[], s32 idx_out) {
|
||||
for(s32 i = 0; i < 16; i++) {
|
||||
s32 monster_id = GetMonsterIdFromSpawnEntry(&(DUNGEON_PTR->spawn_entries_master[i]));
|
||||
|
||||
Reference in New Issue
Block a user