mirror of https://github.com/zeldaret/tmc.git
matched sub_0807DB98
This commit is contained in:
parent
7ce43b9a69
commit
f2855ee21a
|
@ -1667,256 +1667,3 @@ sub_0807DB88: @ 0x0807DB88
|
||||||
bl _DmaZero
|
bl _DmaZero
|
||||||
str r5, [r4]
|
str r5, [r4]
|
||||||
pop {r4, r5, pc}
|
pop {r4, r5, pc}
|
||||||
|
|
||||||
thumb_func_start sub_0807DB98
|
|
||||||
sub_0807DB98: @ 0x0807DB98
|
|
||||||
push {r4, r5, r6, r7, lr}
|
|
||||||
adds r5, r0, #0
|
|
||||||
adds r6, r1, #0
|
|
||||||
ldr r0, [r6, #8]
|
|
||||||
cmp r0, #0
|
|
||||||
bne _0807DBA6
|
|
||||||
b _0807DD48
|
|
||||||
_0807DBA6:
|
|
||||||
movs r7, #0
|
|
||||||
adds r4, r5, #0
|
|
||||||
adds r4, #0x82
|
|
||||||
_0807DBAC:
|
|
||||||
ldr r1, [r6, #8]
|
|
||||||
mvns r0, r1
|
|
||||||
adds r2, r0, #1
|
|
||||||
ands r2, r1
|
|
||||||
eors r1, r2
|
|
||||||
str r1, [r6, #8]
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #2
|
|
||||||
cmp r2, r0
|
|
||||||
bne _0807DBC2
|
|
||||||
b _0807DCC8
|
|
||||||
_0807DBC2:
|
|
||||||
cmp r2, r0
|
|
||||||
bhi _0807DC04
|
|
||||||
cmp r2, #0x10
|
|
||||||
beq _0807DC82
|
|
||||||
cmp r2, #0x10
|
|
||||||
bhi _0807DBE8
|
|
||||||
cmp r2, #2
|
|
||||||
beq _0807DC70
|
|
||||||
cmp r2, #2
|
|
||||||
bhi _0807DBDC
|
|
||||||
cmp r2, #1
|
|
||||||
beq _0807DC68
|
|
||||||
b _0807DD40
|
|
||||||
_0807DBDC:
|
|
||||||
cmp r2, #4
|
|
||||||
bne _0807DBE2
|
|
||||||
b _0807DD40
|
|
||||||
_0807DBE2:
|
|
||||||
cmp r2, #8
|
|
||||||
beq _0807DC7A
|
|
||||||
b _0807DD40
|
|
||||||
_0807DBE8:
|
|
||||||
cmp r2, #0x40
|
|
||||||
beq _0807DC9E
|
|
||||||
cmp r2, #0x40
|
|
||||||
bhi _0807DBF6
|
|
||||||
cmp r2, #0x20
|
|
||||||
beq _0807DC90
|
|
||||||
b _0807DD40
|
|
||||||
_0807DBF6:
|
|
||||||
cmp r2, #0x80
|
|
||||||
beq _0807DCA8
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #1
|
|
||||||
cmp r2, r0
|
|
||||||
beq _0807DCBA
|
|
||||||
b _0807DD40
|
|
||||||
_0807DC04:
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #7
|
|
||||||
cmp r2, r0
|
|
||||||
beq _0807DCFC
|
|
||||||
cmp r2, r0
|
|
||||||
bhi _0807DC38
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #4
|
|
||||||
cmp r2, r0
|
|
||||||
beq _0807DCDE
|
|
||||||
cmp r2, r0
|
|
||||||
bhi _0807DC26
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #3
|
|
||||||
cmp r2, r0
|
|
||||||
beq _0807DCD6
|
|
||||||
b _0807DD40
|
|
||||||
_0807DC26:
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #5
|
|
||||||
cmp r2, r0
|
|
||||||
beq _0807DCE8
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #6
|
|
||||||
cmp r2, r0
|
|
||||||
beq _0807DCF4
|
|
||||||
b _0807DD40
|
|
||||||
_0807DC38:
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #0xa
|
|
||||||
cmp r2, r0
|
|
||||||
beq _0807DD14
|
|
||||||
cmp r2, r0
|
|
||||||
bhi _0807DC56
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #8
|
|
||||||
cmp r2, r0
|
|
||||||
beq _0807DD04
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #9
|
|
||||||
cmp r2, r0
|
|
||||||
beq _0807DD0C
|
|
||||||
b _0807DD40
|
|
||||||
_0807DC56:
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #0xb
|
|
||||||
cmp r2, r0
|
|
||||||
beq _0807DD2E
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #0xc
|
|
||||||
cmp r2, r0
|
|
||||||
beq _0807DD36
|
|
||||||
b _0807DD40
|
|
||||||
_0807DC68:
|
|
||||||
adds r0, r5, #0
|
|
||||||
adds r0, #0x80
|
|
||||||
strh r7, [r0]
|
|
||||||
b _0807DD40
|
|
||||||
_0807DC70:
|
|
||||||
adds r1, r5, #0
|
|
||||||
adds r1, #0x80
|
|
||||||
movs r0, #4
|
|
||||||
strh r0, [r1]
|
|
||||||
b _0807DD40
|
|
||||||
_0807DC7A:
|
|
||||||
movs r0, #0xc0
|
|
||||||
lsls r0, r0, #9
|
|
||||||
str r0, [r5, #0x20]
|
|
||||||
b _0807DD40
|
|
||||||
_0807DC82:
|
|
||||||
adds r0, r5, #0
|
|
||||||
movs r1, #8
|
|
||||||
movs r2, #0x18
|
|
||||||
rsbs r2, r2, #0
|
|
||||||
bl CreateSpeechBubbleExclamationMark
|
|
||||||
b _0807DD40
|
|
||||||
_0807DC90:
|
|
||||||
adds r0, r5, #0
|
|
||||||
movs r1, #8
|
|
||||||
movs r2, #0x18
|
|
||||||
rsbs r2, r2, #0
|
|
||||||
bl CreateSpeechBubbleQuestionMark
|
|
||||||
b _0807DD40
|
|
||||||
_0807DC9E:
|
|
||||||
adds r0, r6, #0
|
|
||||||
bl sub_0807DAC4
|
|
||||||
bl DeleteThisEntity
|
|
||||||
_0807DCA8:
|
|
||||||
ldrb r0, [r5, #0x18]
|
|
||||||
movs r2, #4
|
|
||||||
rsbs r2, r2, #0
|
|
||||||
adds r1, r2, #0
|
|
||||||
ands r0, r1
|
|
||||||
movs r1, #1
|
|
||||||
orrs r0, r1
|
|
||||||
strb r0, [r5, #0x18]
|
|
||||||
b _0807DD40
|
|
||||||
_0807DCBA:
|
|
||||||
ldrb r0, [r5, #0x18]
|
|
||||||
movs r3, #4
|
|
||||||
rsbs r3, r3, #0
|
|
||||||
adds r1, r3, #0
|
|
||||||
ands r0, r1
|
|
||||||
strb r0, [r5, #0x18]
|
|
||||||
b _0807DD40
|
|
||||||
_0807DCC8:
|
|
||||||
adds r0, r5, #0
|
|
||||||
adds r0, #0x63
|
|
||||||
strb r7, [r0]
|
|
||||||
subs r0, #1
|
|
||||||
strb r7, [r0]
|
|
||||||
strh r7, [r4]
|
|
||||||
b _0807DD40
|
|
||||||
_0807DCD6:
|
|
||||||
ldrh r0, [r4]
|
|
||||||
movs r1, #2
|
|
||||||
orrs r0, r1
|
|
||||||
b _0807DD3E
|
|
||||||
_0807DCDE:
|
|
||||||
ldrh r0, [r4]
|
|
||||||
ldr r2, _0807DCE4 @ =0x0000FFFD
|
|
||||||
b _0807DD3A
|
|
||||||
.align 2, 0
|
|
||||||
_0807DCE4: .4byte 0x0000FFFD
|
|
||||||
_0807DCE8:
|
|
||||||
ldrh r0, [r4]
|
|
||||||
ldr r3, _0807DCF0 @ =0x0000FFFE
|
|
||||||
adds r1, r3, #0
|
|
||||||
b _0807DD3C
|
|
||||||
.align 2, 0
|
|
||||||
_0807DCF0: .4byte 0x0000FFFE
|
|
||||||
_0807DCF4:
|
|
||||||
ldrh r0, [r4]
|
|
||||||
movs r1, #1
|
|
||||||
orrs r0, r1
|
|
||||||
b _0807DD3E
|
|
||||||
_0807DCFC:
|
|
||||||
ldrh r0, [r4]
|
|
||||||
movs r1, #8
|
|
||||||
orrs r0, r1
|
|
||||||
b _0807DD3E
|
|
||||||
_0807DD04:
|
|
||||||
ldrh r0, [r4]
|
|
||||||
movs r1, #4
|
|
||||||
eors r0, r1
|
|
||||||
b _0807DD3E
|
|
||||||
_0807DD0C:
|
|
||||||
ldrh r0, [r4]
|
|
||||||
movs r1, #0x10
|
|
||||||
eors r0, r1
|
|
||||||
b _0807DD3E
|
|
||||||
_0807DD14:
|
|
||||||
ldrb r2, [r5, #0x18]
|
|
||||||
lsls r0, r2, #0x19
|
|
||||||
lsrs r0, r0, #0x1f
|
|
||||||
movs r1, #1
|
|
||||||
eors r0, r1
|
|
||||||
lsls r0, r0, #6
|
|
||||||
movs r3, #0x41
|
|
||||||
rsbs r3, r3, #0
|
|
||||||
adds r1, r3, #0
|
|
||||||
ands r2, r1
|
|
||||||
orrs r2, r0
|
|
||||||
strb r2, [r5, #0x18]
|
|
||||||
b _0807DD40
|
|
||||||
_0807DD2E:
|
|
||||||
ldrh r0, [r4]
|
|
||||||
movs r1, #0x20
|
|
||||||
orrs r0, r1
|
|
||||||
b _0807DD3E
|
|
||||||
_0807DD36:
|
|
||||||
ldrh r0, [r4]
|
|
||||||
ldr r2, _0807DD4C @ =0x0000FFDF
|
|
||||||
_0807DD3A:
|
|
||||||
adds r1, r2, #0
|
|
||||||
_0807DD3C:
|
|
||||||
ands r0, r1
|
|
||||||
_0807DD3E:
|
|
||||||
strh r0, [r4]
|
|
||||||
_0807DD40:
|
|
||||||
ldr r0, [r6, #8]
|
|
||||||
cmp r0, #0
|
|
||||||
beq _0807DD48
|
|
||||||
b _0807DBAC
|
|
||||||
_0807DD48:
|
|
||||||
pop {r4, r5, r6, r7, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_0807DD4C: .4byte 0x0000FFDF
|
|
||||||
|
|
|
@ -7,11 +7,89 @@
|
||||||
extern u8 gUnk_0811E514[];
|
extern u8 gUnk_0811E514[];
|
||||||
extern u8 gUnk_0811E510[];
|
extern u8 gUnk_0811E510[];
|
||||||
|
|
||||||
|
extern void CreateSpeechBubbleExclamationMark(Entity*, u32, u32);
|
||||||
|
extern void CreateSpeechBubbleQuestionMark(Entity*, u32, u32);
|
||||||
|
extern void sub_0807DAC4(ScriptExecutionContext*);
|
||||||
|
extern void DeleteThisEntity(void);
|
||||||
extern void sub_0807DB88(Entity*);
|
extern void sub_0807DB88(Entity*);
|
||||||
extern void sub_0801C4A0(u32);
|
extern void sub_0801C4A0(u32);
|
||||||
extern void sub_0807DB98(Entity*, ScriptExecutionContext*);
|
extern void sub_0807DB98(Entity*, ScriptExecutionContext*);
|
||||||
extern void _call_via_r6(Entity*, ScriptExecutionContext*);
|
extern void _call_via_r6(Entity*, ScriptExecutionContext*);
|
||||||
|
|
||||||
|
void sub_0807DB98(Entity* entity, ScriptExecutionContext* context) {
|
||||||
|
u32 switchVar;
|
||||||
|
|
||||||
|
while (context->unk_08) {
|
||||||
|
switchVar = (~context->unk_08 + 1) & context->unk_08;
|
||||||
|
context->unk_08 ^= switchVar;
|
||||||
|
switch (switchVar) {
|
||||||
|
case 1:
|
||||||
|
entity->field_0x80.HWORD = 0;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
entity->field_0x80.HWORD = 4;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
entity->field_0x20 = 0x18000;
|
||||||
|
break;
|
||||||
|
case 0x10:
|
||||||
|
CreateSpeechBubbleExclamationMark(entity, 8, -0x18);
|
||||||
|
break;
|
||||||
|
case 0x20:
|
||||||
|
CreateSpeechBubbleQuestionMark(entity, 8, -0x18);
|
||||||
|
break;
|
||||||
|
case 0x40:
|
||||||
|
sub_0807DAC4(context);
|
||||||
|
DeleteThisEntity();
|
||||||
|
case 0x80:
|
||||||
|
entity->spriteSettings.b.draw = 1;
|
||||||
|
break;
|
||||||
|
case 0x100:
|
||||||
|
entity->spriteSettings.b.draw = 0;
|
||||||
|
break;
|
||||||
|
case 0x200:
|
||||||
|
entity->spriteOffsetY = 0;
|
||||||
|
entity->spriteOffsetX = 0;
|
||||||
|
entity->field_0x82.HWORD = 0;
|
||||||
|
break;
|
||||||
|
case 0x400:
|
||||||
|
entity->field_0x82.HWORD |= 2;
|
||||||
|
break;
|
||||||
|
case 0x800:
|
||||||
|
entity->field_0x82.HWORD &= 0xfffd;
|
||||||
|
break;
|
||||||
|
case 0x1000:
|
||||||
|
entity->field_0x82.HWORD &= 0xfffe;
|
||||||
|
break;
|
||||||
|
case 0x2000:
|
||||||
|
entity->field_0x82.HWORD |= 1;
|
||||||
|
break;
|
||||||
|
case 0x4000:
|
||||||
|
entity->field_0x82.HWORD |= 8;
|
||||||
|
break;
|
||||||
|
case 0x8000:
|
||||||
|
entity->field_0x82.HWORD ^= 4;
|
||||||
|
break;
|
||||||
|
case 0x10000:
|
||||||
|
entity->field_0x82.HWORD ^= 0x10;
|
||||||
|
break;
|
||||||
|
case 0x20000:
|
||||||
|
entity->spriteSettings.b.flipX ^= 1;
|
||||||
|
break;
|
||||||
|
case 0x40000:
|
||||||
|
entity->field_0x82.HWORD |= 0x20;
|
||||||
|
break;
|
||||||
|
case 0x80000:
|
||||||
|
entity->field_0x82.HWORD &= 0xffdf;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void sub_0807DF38(void);
|
void sub_0807DF38(void);
|
||||||
void sub_0807DE80(Entity* entity);
|
void sub_0807DE80(Entity* entity);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue