mirror of https://github.com/zeldaret/tmc.git
Match sub_080A2D98
This commit is contained in:
parent
2c39b8ccf9
commit
378049e424
|
@ -1,52 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _080A2DD0 @ =gPlayerState
|
||||
str r4, [r0, #0x2c]
|
||||
movs r2, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x11]
|
||||
subs r0, #0x11
|
||||
ands r0, r1
|
||||
movs r1, #6
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x11]
|
||||
movs r0, #0xff
|
||||
strb r0, [r4, #0x1e]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xe
|
||||
bne _080A2DD8
|
||||
movs r0, #0x27
|
||||
str r0, [r4, #0x70]
|
||||
ldr r1, _080A2DD4 @ =gUnk_081271DC
|
||||
ldrb r0, [r1, #1]
|
||||
str r0, [r4, #0x78]
|
||||
str r2, [r4, #0x74]
|
||||
str r1, [r4, #0x7c]
|
||||
b _080A2DDA
|
||||
.align 2, 0
|
||||
_080A2DD0: .4byte gPlayerState
|
||||
_080A2DD4: .4byte gUnk_081271DC
|
||||
_080A2DD8:
|
||||
str r2, [r4, #0x70]
|
||||
_080A2DDA:
|
||||
ldr r0, _080A2DFC @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x14]
|
||||
movs r0, #0xe
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x14]
|
||||
adds r0, r4, #0
|
||||
bl sub_08079BD8
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
movs r2, #3
|
||||
bl LoadSwapGFX
|
||||
adds r0, r4, #0
|
||||
bl sub_080A2E00
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A2DFC: .4byte gPlayerEntity
|
||||
.syntax divided
|
|
@ -1,7 +1,11 @@
|
|||
|
||||
#include "entity.h"
|
||||
#include "player.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void (*const gUnk_081271D4[])(Entity*);
|
||||
extern u8 gUnk_081271DC[];
|
||||
void sub_080A2E00(Entity* this);
|
||||
|
||||
void PlayerItemShield(Entity* this) {
|
||||
if (*(int*)&this->field_0x6c != 0) {
|
||||
|
@ -10,6 +14,23 @@ void PlayerItemShield(Entity* this) {
|
|||
gUnk_081271D4[this->action](this);
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/playerItemShield/sub_080A2D98.inc", void sub_080A2D98(Entity* this))
|
||||
void sub_080A2D98(Entity* this) {
|
||||
gPlayerState.item = this;
|
||||
this->action = 1;
|
||||
this->updatePriority = 6;
|
||||
this->frameIndex = 0xff;
|
||||
if (this->field_0x68.HALF.LO == 14) {
|
||||
this->field_0x70.WORD = 0x27;
|
||||
*(u32*)&this->field_0x78 = gUnk_081271DC[1];
|
||||
*(u32*)&this->field_0x74 = 0;
|
||||
*(u8**)&this->field_0x7c = gUnk_081271DC;
|
||||
} else {
|
||||
this->field_0x70.WORD = 0;
|
||||
}
|
||||
this->animationState = gPlayerEntity.animationState & 0xe;
|
||||
sub_08079BD8(this);
|
||||
LoadSwapGFX(this, 1, 3);
|
||||
sub_080A2E00(this);
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/playerItemShield/sub_080A2E00.inc", void sub_080A2E00(Entity* this))
|
||||
|
|
Loading…
Reference in New Issue