sub_8124BE4

This commit is contained in:
PikalaxALT 2017-11-01 00:01:17 -04:00
parent 9f5f134476
commit ee60ae7da9
2 changed files with 34 additions and 107 deletions

View File

@ -5,110 +5,6 @@
.text
thumb_func_start sub_8124BE4
sub_8124BE4: @ 8124BE4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
movs r0, 0
mov r8, r0
ldr r6, =gUnknown_085A1F18
ldrh r0, [r6, 0x2]
cmp r0, 0xD5
beq _08124C9C
mov r5, sp
adds r5, 0x6
add r7, sp, 0x4
ldr r1, =gSprites
mov r9, r1
movs r0, 0x1C
add r0, r9
mov r10, r0
_08124C0C:
mov r1, r8
lsls r4, r1, 2
adds r0, r4, r6
ldrh r0, [r0]
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _08124C84
adds r0, r6, 0x2
adds r0, r4, r0
ldrh r6, [r0]
mov r0, sp
adds r0, 0xA
str r0, [sp]
adds r0, r6, 0
add r1, sp, 0x4
adds r2, r5, 0
add r3, sp, 0x8
bl sub_8124630
ldrh r0, [r7]
adds r0, 0x1
lsls r0, 3
strh r0, [r7]
ldrh r0, [r5]
adds r0, 0x2
lsls r0, 3
strh r0, [r5]
movs r0, 0
ldrsh r1, [r7, r0]
movs r0, 0
ldrsh r2, [r5, r0]
ldr r0, =gUnknown_085A1F7C
movs r3, 0xA
bl CreateSprite
lsls r0, 24
lsrs r0, 24
cmp r0, 0x40
beq _08124C84
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
mov r1, r9
adds r4, r2, r1
ldrb r1, [r4, 0x3]
movs r0, 0x3F
ands r0, r1
movs r1, 0x40
orrs r0, r1
strb r0, [r4, 0x3]
add r2, r10
ldr r0, =sub_8124CBC
str r0, [r2]
adds r0, r4, 0
movs r1, 0x6
bl StartSpriteAnim
strh r6, [r4, 0x2E]
_08124C84:
mov r0, r8
adds r0, 0x1
lsls r0, 16
lsrs r0, 16
mov r8, r0
ldr r6, =gUnknown_085A1F18
lsls r0, 2
adds r1, r6, 0x2
adds r0, r1
ldrh r0, [r0]
cmp r0, 0xD5
bne _08124C0C
_08124C9C:
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8124BE4
thumb_func_start sub_8124CBC
sub_8124CBC: @ 8124CBC
push {lr}

View File

@ -82,7 +82,7 @@ void sub_81248F4(void callback(void));
void sub_8124904(void);
static void sub_8124A70(void);
static void sub_8124AD4(void);
void sub_8124BE4(void);
static void sub_8124BE4(void);
void sub_8124CBC(struct Sprite *sprite);
void sub_8124D14(void);
@ -121,6 +121,7 @@ extern const struct {
u16 flag;
} gUnknown_085A1EDC[];
extern const struct SpritePalette gUnknown_085A1F10;
extern const u16 gUnknown_085A1F18[][2];
extern const struct SpriteTemplate gUnknown_085A1F7C;
// .text
@ -1496,8 +1497,8 @@ static void sub_8124AD4(void)
for (i = 0; i < 16; i ++)
{
sub_8124630(i, &x, &y, &width, &height);
x = (x + 1) * 8 + 4;
y = (y + 2) * 8 + 4;
x = (x + MAPCURSOR_X_MIN) * 8 + 4;
y = (y + MAPCURSOR_Y_MIN) * 8 + 4;
if (width == 2)
{
shape = ST_OAM_H_RECTANGLE;
@ -1528,3 +1529,33 @@ static void sub_8124AD4(void)
canFlyFlag ++;
}
}
static void sub_8124BE4(void)
{
u16 i;
u16 x;
u16 y;
u16 width;
u16 height;
u16 mapSecId;
u8 spriteId;
for (i = 0; gUnknown_085A1F18[i][1] != MAPSEC_NONE; i ++)
{
if (FlagGet(gUnknown_085A1F18[i][0]))
{
mapSecId = gUnknown_085A1F18[i][1];
sub_8124630(mapSecId, &x, &y, &width, &height);
x = (x + MAPCURSOR_X_MIN) * 8;
y = (y + MAPCURSOR_Y_MIN) * 8;
spriteId = CreateSprite(&gUnknown_085A1F7C, x, y, 10);
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].oam.size = 1;
gSprites[spriteId].callback = sub_8124CBC;
StartSpriteAnim(&gSprites[spriteId], 6);
gSprites[spriteId].data0 = mapSecId;
}
}
}
}