Match asm/non_matching/postman/sub_08060700.inc

This commit is contained in:
Marcus Huderle 2020-08-07 16:46:56 -05:00
parent b235f9ae3e
commit eae5cb6521
2 changed files with 19 additions and 66 deletions

View File

@ -1,51 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
push {r4, r5, lr}
ldr r3, _0806074C @ =gUnk_0810A918
adds r2, r0, #0
adds r2, #0x68
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
adds r3, r0, #0
adds r3, #0x69
ldrb r3, [r3]
lsls r3, r3, #0x18
asrs r3, r3, #0x18
adds r2, r2, r3
movs r3, #0
ldrsb r3, [r2, r3]
lsls r3, r3, #2
ldr r2, _08060750 @ =gUnk_0810A66C
adds r3, r3, r2
ldr r4, _08060754 @ =gRoomControls
movs r5, #0
ldrsh r2, [r3, r5]
ldrh r5, [r4, #6]
adds r2, r2, r5
movs r5, #2
ldrsh r3, [r3, r5]
ldrh r4, [r4, #8]
adds r3, r3, r4
bl sub_0807DEDC
ldr r2, _08060758 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, r5, pc}
.align 2, 0
_0806074C: .4byte gUnk_0810A918
_08060750: .4byte gUnk_0810A66C
_08060754: .4byte gRoomControls
_08060758: .4byte gUnk_02033280
.syntax divided

View File

@ -4,6 +4,7 @@
#include "npc.h"
#include "textbox.h"
#include "link.h"
#include "room.h"
#include "structures.h"
typedef struct {
@ -34,10 +35,16 @@ extern void sub_0800451C(Entity*);
extern void sub_08078784(Entity*, u32);
extern void sub_0807DEDC(Entity*, u32, u32, u32);
typedef struct {
s16 x;
s16 y;
} Coords16;
extern Coords16 gUnk_0810A66C[];
extern s8* gUnk_0810A918[];
extern void (*const gUnk_0810AA24[])(Entity*);
extern u32 gUnk_0810AA30[];
extern u32** gUnk_0810A66C;
extern u32 gUnk_0810A918[];
extern struct_02033280 gUnk_02033280;
void Postman(Entity* this) {
@ -208,21 +215,18 @@ void sub_080606D8(Entity* this)
ShowNPCDialogue(this, &gUnk_0810AA30[iVar1 * 2]);
}
#if 0
void sub_08060700(Entity *arg0, u32 arg1)
void sub_08060700(Entity *entity, u32 arg1)
{
sub_0807DEDC(arg0,arg1,
gUnk_0810A918[gUnk_0810A66C[arg0->field_0x68.HALF.HI][arg0->field_0x68.HALF.LO] * 4 + gRoomControls.roomOriginX],
gUnk_0810A918[gUnk_0810A66C[arg0->field_0x68.HALF.HI][arg0->field_0x68.HALF.LO] * 4 + gRoomControls.roomOriginY + 2]);
gUnk_02033280.unk |= 1;
}
#endif
NAKED void sub_08060700(Entity *arg0, u32 arg1) {
asm(".include \"asm/non_matching/postman/sub_08060700.inc\"");
s8* var0 = gUnk_0810A918[(s8)entity->field_0x68.HALF.LO];
Coords16* coords = &gUnk_0810A66C[var0[(s8)entity->field_0x68.HALF.HI]];
u32 x = coords->x + gRoomControls.roomOriginX;
u32 y = coords->y + gRoomControls.roomOriginY;
sub_0807DEDC(entity, arg1, x, y);
gUnk_02033280.unk |= 1;
}
void sub_0806075C(Entity *this)
{
this->field_0x68.HALF.LO = 0xb;
this->field_0x68.HALF.HI = 0xff;
}
this->field_0x68.HALF.LO = 0xb;
this->field_0x68.HALF.HI = 0xff;
}