mirror of https://github.com/zeldaret/tmc.git
postman.c
This commit is contained in:
parent
73b72d6696
commit
c47f16e5e7
2
Makefile
2
Makefile
|
@ -83,7 +83,7 @@ endif
|
|||
|
||||
#$(C_BUILDDIR)/need_interworking_file_name.o: CFLAGS += -mthumb-interwork
|
||||
|
||||
C_SRCS := $(wildcard $(C_SUBDIR)/*.c)
|
||||
C_SRCS := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c)
|
||||
C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS))
|
||||
|
||||
ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s)
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
.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
|
447
asm/postman.s
447
asm/postman.s
|
@ -6,453 +6,6 @@
|
|||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Postman
|
||||
Postman: @ 0x080603FC
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r1, [r2, #0x10]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08060412
|
||||
adds r0, r2, #0
|
||||
bl sub_08060528
|
||||
b _08060422
|
||||
_08060412:
|
||||
ldr r0, _08060424 @ =gUnk_0810AA24
|
||||
ldrb r1, [r2, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
_08060422:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08060424: .4byte gUnk_0810AA24
|
||||
|
||||
thumb_func_start sub_08060428
|
||||
sub_08060428: @ 0x08060428
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x5a
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r4, #0x24]
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _08060444
|
||||
bl GetCurrentRoomProperty
|
||||
adds r1, r0, #0
|
||||
b _08060446
|
||||
_08060444:
|
||||
movs r1, #0
|
||||
_08060446:
|
||||
adds r0, r4, #0
|
||||
movs r2, #0
|
||||
bl sub_0806EE04
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl InitAnimationForceUpdate
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0806045C
|
||||
sub_0806045C: @ 0x0806045C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r0, r4, #0
|
||||
bl sub_080604DC
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x39
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #2
|
||||
bgt _08060488
|
||||
cmp r0, #1
|
||||
blt _08060488
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0
|
||||
bl TextboxNoOverlapFollow
|
||||
b _080604C0
|
||||
_08060488:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x3e
|
||||
ldrb r1, [r0]
|
||||
ldrb r0, [r4, #0x14]
|
||||
cmp r1, r0
|
||||
beq _0806049E
|
||||
strb r1, [r4, #0x14]
|
||||
adds r1, #4
|
||||
adds r0, r4, #0
|
||||
bl InitAnimationForceUpdate
|
||||
_0806049E:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x18
|
||||
movs r2, #0x18
|
||||
bl sub_0806ED9C
|
||||
movs r1, #0
|
||||
cmp r0, #0
|
||||
blt _080604B6
|
||||
ldrb r2, [r4, #0x14]
|
||||
cmp r0, r2
|
||||
bne _080604B6
|
||||
movs r1, #1
|
||||
_080604B6:
|
||||
cmp r1, #0
|
||||
bne _080604C0
|
||||
adds r0, r4, #0
|
||||
bl sub_0806EE20
|
||||
_080604C0:
|
||||
adds r0, r4, #0
|
||||
bl sub_0806ED78
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080604C8
|
||||
sub_080604C8: @ 0x080604C8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r0, r4, #0
|
||||
bl sub_080604DC
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080604DC
|
||||
sub_080604DC: @ 0x080604DC
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #0x18]
|
||||
lsls r0, r0, #0x1e
|
||||
lsrs r4, r0, #0x1e
|
||||
cmp r4, #1
|
||||
bne _08060524
|
||||
adds r0, r5, #0
|
||||
bl sub_080040A8
|
||||
cmp r0, #0
|
||||
beq _08060524
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x5a
|
||||
ldrb r1, [r2]
|
||||
ands r4, r1
|
||||
cmp r4, #0
|
||||
beq _08060524
|
||||
movs r0, #0xfe
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x11
|
||||
movs r2, #0x40
|
||||
bl CreateFx
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08060524
|
||||
ldrh r0, [r1, #0x32]
|
||||
adds r0, #1
|
||||
strh r0, [r1, #0x32]
|
||||
adds r0, r1, #0
|
||||
movs r1, #3
|
||||
bl sub_0805E3A0
|
||||
_08060524:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08060528
|
||||
sub_08060528: @ 0x08060528
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r3, [r4, #0xc]
|
||||
cmp r3, #1
|
||||
beq _08060582
|
||||
cmp r3, #1
|
||||
bgt _0806053C
|
||||
cmp r3, #0
|
||||
beq _08060546
|
||||
b _080605EC
|
||||
_0806053C:
|
||||
cmp r3, #2
|
||||
beq _080605F6
|
||||
cmp r3, #3
|
||||
beq _08060618
|
||||
b _080605EC
|
||||
_08060546:
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
strb r3, [r0]
|
||||
adds r0, #1
|
||||
strb r3, [r0]
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x6a
|
||||
movs r0, #0
|
||||
strh r3, [r5]
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x6d
|
||||
strb r0, [r6]
|
||||
adds r0, r4, #0
|
||||
bl sub_0801E99C
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x6c
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_0807DD50
|
||||
b _08060634
|
||||
_08060582:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x39
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r0, #2
|
||||
bne _080605B8
|
||||
movs r1, #0
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
strb r1, [r2]
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F118
|
||||
ldr r1, _080605B4 @ =gLinkEntity
|
||||
adds r0, r4, #0
|
||||
bl GetFacingDirection
|
||||
bl sub_0806F5A4
|
||||
adds r1, r0, #0
|
||||
adds r0, r4, #0
|
||||
bl InitAnimationForceUpdate
|
||||
b _080605EC
|
||||
.align 2, 0
|
||||
_080605B4: .4byte gLinkEntity
|
||||
_080605B8:
|
||||
cmp r0, #0
|
||||
beq _080605E4
|
||||
movs r1, #0
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
strb r1, [r2]
|
||||
adds r0, r4, #0
|
||||
bl sub_080606D8
|
||||
ldr r1, _080605E0 @ =gLinkEntity
|
||||
adds r0, r4, #0
|
||||
bl GetFacingDirection
|
||||
bl sub_0806F5A4
|
||||
adds r1, r0, #0
|
||||
adds r0, r4, #0
|
||||
bl InitAnimationForceUpdate
|
||||
b _080605EC
|
||||
.align 2, 0
|
||||
_080605E0: .4byte gLinkEntity
|
||||
_080605E4:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_0807DD94
|
||||
_080605EC:
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x6a
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x6d
|
||||
b _08060634
|
||||
_080605F6:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
ldr r0, _08060614 @ =gTextBox
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x6a
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x6d
|
||||
cmp r0, #0
|
||||
bne _08060634
|
||||
b _08060630
|
||||
.align 2, 0
|
||||
_08060614: .4byte gTextBox
|
||||
_08060618:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r0, r4, #0
|
||||
bl UpdateFuseInteraction
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x6a
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x6d
|
||||
cmp r0, #0
|
||||
beq _08060634
|
||||
_08060630:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
_08060634:
|
||||
adds r0, r4, #0
|
||||
bl sub_080604DC
|
||||
adds r1, r5, #0
|
||||
ldrh r3, [r1]
|
||||
movs r0, #0
|
||||
ldrsh r2, [r1, r0]
|
||||
cmp r2, #0
|
||||
ble _08060670
|
||||
ldr r0, _08060668 @ =0x0000012B
|
||||
cmp r2, r0
|
||||
ble _0806066C
|
||||
movs r0, #0
|
||||
strh r0, [r1]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xa
|
||||
str r0, [r4, #0x20]
|
||||
movs r0, #1
|
||||
strb r0, [r6]
|
||||
adds r0, r4, #0
|
||||
bl sub_080788E0
|
||||
movs r0, #0x7c
|
||||
bl sub_08004488
|
||||
b _08060670
|
||||
.align 2, 0
|
||||
_08060668: .4byte 0x0000012B
|
||||
_0806066C:
|
||||
subs r0, r3, #1
|
||||
strh r0, [r5]
|
||||
_08060670:
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #5
|
||||
adds r0, r4, #0
|
||||
bl sub_08003FC4
|
||||
ldrb r0, [r6]
|
||||
cmp r0, #0
|
||||
beq _08060694
|
||||
ldr r0, [r4, #0x20]
|
||||
cmp r0, #0
|
||||
bne _08060694
|
||||
ldr r0, [r4, #0x34]
|
||||
cmp r0, #0
|
||||
bne _08060694
|
||||
strb r0, [r6]
|
||||
adds r0, r4, #0
|
||||
bl sub_080606C0
|
||||
_08060694:
|
||||
ldr r0, [r4, #0x34]
|
||||
cmp r0, #0
|
||||
blt _080606B4
|
||||
ldr r0, _080606BC @ =gLinkEntity
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _080606AE
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r1
|
||||
bne _080606B4
|
||||
_080606AE:
|
||||
adds r0, r4, #0
|
||||
bl sub_0806ED78
|
||||
_080606B4:
|
||||
adds r0, r4, #0
|
||||
bl sub_0800451C
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080606BC: .4byte gLinkEntity
|
||||
|
||||
thumb_func_start sub_080606C0
|
||||
sub_080606C0: @ 0x080606C0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0801E99C
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x6c
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_08078784
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080606D8
|
||||
sub_080606D8: @ 0x080606D8
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, _080606F8 @ =gUnk_02002A40
|
||||
ldrb r0, [r0, #8]
|
||||
subs r0, #2
|
||||
cmp r0, #0
|
||||
bge _080606E8
|
||||
movs r0, #0
|
||||
_080606E8:
|
||||
lsls r1, r0, #3
|
||||
ldr r0, _080606FC @ =gUnk_0810AA30
|
||||
adds r1, r1, r0
|
||||
adds r0, r2, #0
|
||||
bl ShowNPCDialogue
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080606F8: .4byte gUnk_02002A40
|
||||
_080606FC: .4byte gUnk_0810AA30
|
||||
|
||||
thumb_func_start sub_08060700
|
||||
sub_08060700: @ 0x08060700
|
||||
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
|
||||
|
||||
thumb_func_start sub_0806075C
|
||||
sub_0806075C: @ 0x0806075C
|
||||
adds r2, r0, #0
|
||||
adds r2, #0x68
|
||||
movs r1, #0xb
|
||||
strb r1, [r2]
|
||||
adds r0, #0x69
|
||||
movs r1, #0xff
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_0806076C
|
||||
sub_0806076C: @ 0x0806076C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
|
|
|
@ -537,6 +537,7 @@ SECTIONS {
|
|||
src/festari.o(.text);
|
||||
asm/festari.o(.text);
|
||||
src/forestMinish.o(.text);
|
||||
src/postman.o(.text);
|
||||
asm/postman.o(.text);
|
||||
asm/npc5.o(.text);
|
||||
asm/townsperson.o(.text);
|
||||
|
|
|
@ -0,0 +1,227 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "npc.h"
|
||||
#include "textbox.h"
|
||||
#include "link.h"
|
||||
|
||||
typedef struct {
|
||||
u8 filler[7];
|
||||
u8 unk;
|
||||
} struct_02033280;
|
||||
|
||||
extern void sub_08060528(Entity*);
|
||||
extern void* GetCurrentRoomProperty(u32);
|
||||
extern void sub_0806EE04(Entity*, void*, u32);
|
||||
extern void sub_080604DC(Entity*);
|
||||
extern s32 sub_0806ED9C(Entity*, u32, u32);
|
||||
extern void sub_0806EE20(Entity*);
|
||||
extern void sub_0806ED78(Entity*);
|
||||
extern u32 sub_080040A8(Entity*);
|
||||
extern void sub_0805E3A0(Entity*, u32);
|
||||
extern u32 sub_0801E99C(Entity*);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
extern void sub_0806F118(Entity*);
|
||||
extern u32 sub_0806F5A4(u32);
|
||||
extern u32 GetFacingDirection(Entity*, Entity*);
|
||||
extern void sub_080606D8(Entity*);
|
||||
extern void sub_0807DD94(Entity*, u32);
|
||||
extern void sub_080788E0(Entity*);
|
||||
extern void sub_08004488(u32);
|
||||
extern void sub_08003FC4(Entity*, u32);
|
||||
extern void sub_080606C0(Entity*);
|
||||
extern void sub_0800451C(Entity*);
|
||||
extern void sub_08078784(Entity*, u32);
|
||||
extern void sub_0807DEDC(Entity*, u32, u32, u32);
|
||||
|
||||
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) {
|
||||
if ((this->flags & 2) != 0) {
|
||||
sub_08060528(this);
|
||||
} else {
|
||||
gUnk_0810AA24[this->action](this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08060428(Entity* this) {
|
||||
u8 bVar1;
|
||||
void* data;
|
||||
|
||||
this->actionDelay = 0x5a;
|
||||
this->nonPlanarMovement = 0x180;
|
||||
if (this->entityType.parameter != 0) {
|
||||
data = GetCurrentRoomProperty(this->entityType.parameter);
|
||||
} else {
|
||||
data = NULL;
|
||||
}
|
||||
sub_0806EE04(this, data, 0);
|
||||
this->action = 1;
|
||||
InitAnimationForceUpdate(this, 4);
|
||||
}
|
||||
|
||||
void sub_0806045C(Entity* this) {
|
||||
u8 bVar1;
|
||||
u32 uVar2;
|
||||
u32 bVar3;
|
||||
s32 temp;
|
||||
|
||||
UpdateAnimationSingleFrame(this);
|
||||
sub_080604DC(this);
|
||||
switch (this->interactType) {
|
||||
case 1:
|
||||
case 2:
|
||||
this->action = 2;
|
||||
TextboxNoOverlapFollow(0);
|
||||
break;
|
||||
default:
|
||||
bVar1 = this->field_0x3e;
|
||||
if (bVar1 != this->animationState) {
|
||||
this->animationState = bVar1;
|
||||
InitAnimationForceUpdate(this, 4 + bVar1);
|
||||
}
|
||||
temp = sub_0806ED9C(this, 0x18, 0x18);
|
||||
if ((temp > -1) && (temp == this->animationState)) {
|
||||
bVar3 = 1;
|
||||
} else {
|
||||
bVar3 = 0;
|
||||
}
|
||||
if (!bVar3) {
|
||||
sub_0806EE20(this);
|
||||
}
|
||||
}
|
||||
sub_0806ED78(this);
|
||||
}
|
||||
|
||||
void sub_080604C8(Entity* this) {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
sub_080604DC(this);
|
||||
this->action = 1;
|
||||
}
|
||||
|
||||
void sub_080604DC(Entity* this) {
|
||||
u8 bVar1;
|
||||
int iVar2;
|
||||
Entity* ent;
|
||||
|
||||
if (((u32)(this->spriteSettings.raw << 0x1e) >> 0x1e == 1) && sub_080040A8(this)) {
|
||||
if ((this->frames.all & 1) != 0) {
|
||||
this->frames.all &= 0xfe;
|
||||
ent = CreateFx(this, 0x11, 0x40);
|
||||
if (ent != NULL) {
|
||||
ent->y.HALF.HI++;
|
||||
sub_0805E3A0(ent, 3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08060528(Entity *this)
|
||||
{
|
||||
switch (this->action) {
|
||||
case 0:
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
this->field_0x68 = 0;
|
||||
this->field_0x69 = 0;
|
||||
this->field_0x6a.HWORD = 0;
|
||||
this->field_0x6d = 0;
|
||||
this->field_0x6c = sub_0801E99C(this);
|
||||
sub_0807DD50(this);
|
||||
break;
|
||||
case 1:
|
||||
if (this->interactType == 2) {
|
||||
this->action = 3;
|
||||
this->interactType = 0;
|
||||
sub_0806F118(this);
|
||||
InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gLinkEntity)));
|
||||
}
|
||||
else {
|
||||
if (this->interactType != 0) {
|
||||
this->action = 2;
|
||||
this->interactType = 0;
|
||||
sub_080606D8(this);
|
||||
InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gLinkEntity)));
|
||||
}
|
||||
else {
|
||||
sub_0807DD94(this, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
UpdateAnimationSingleFrame(this);
|
||||
if ((gTextBox.doTextBox & 0x7f) != 0) {
|
||||
break;
|
||||
}
|
||||
this->action = 1;
|
||||
break;
|
||||
case 3:
|
||||
UpdateAnimationSingleFrame(this);
|
||||
if (!UpdateFuseInteraction(this)) {
|
||||
break;
|
||||
}
|
||||
this->action = 1;
|
||||
}
|
||||
sub_080604DC(this);
|
||||
if (0 < (s16)this->field_0x6a.HWORD) {
|
||||
if ((s16)this->field_0x6a.HWORD > 0x12b) {
|
||||
this->field_0x6a.HWORD = 0;
|
||||
this->field_0x20 = 0x20000;
|
||||
this->field_0x6d = 1;
|
||||
sub_080788E0(this);
|
||||
sub_08004488(0x7c);
|
||||
}
|
||||
else {
|
||||
this->field_0x6a.HWORD -= 1;
|
||||
}
|
||||
}
|
||||
sub_08003FC4(this, 0x1800);
|
||||
if (((this->field_0x6d != 0) && (this->field_0x20 == 0)) && this->height.WORD == 0) {
|
||||
this->field_0x6d = 0;
|
||||
sub_080606C0(this);
|
||||
}
|
||||
if ((-1 < this->height.WORD) &&
|
||||
((gLinkEntity.collisionLayer == 0 || (this->collisionLayer == gLinkEntity.collisionLayer)))) {
|
||||
sub_0806ED78(this);
|
||||
}
|
||||
sub_0800451C(this);
|
||||
}
|
||||
|
||||
void sub_080606C0(Entity *this)
|
||||
{
|
||||
this->field_0x6c = sub_0801E99C(this);
|
||||
sub_08078784(this, this->field_0x6c);
|
||||
}
|
||||
|
||||
void sub_080606D8(Entity* this)
|
||||
{
|
||||
s32 iVar1;
|
||||
|
||||
iVar1 = gUnk_02002A40.unk - 2;
|
||||
if (iVar1 < 0) {
|
||||
iVar1 = 0;
|
||||
}
|
||||
ShowNPCDialogue(this, &gUnk_0810AA30[iVar1 * 2]);
|
||||
}
|
||||
|
||||
#if 0
|
||||
void sub_08060700(Entity *arg0, u32 arg1)
|
||||
{
|
||||
sub_0807DEDC(arg0,arg1,
|
||||
gUnk_0810A918[gUnk_0810A66C[arg0->field_0x69][arg0->field_0x68] * 4 + gRoomControls.roomOriginX],
|
||||
gUnk_0810A918[gUnk_0810A66C[arg0->field_0x69][arg0->field_0x68] * 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\"");
|
||||
}
|
||||
|
||||
void sub_0806075C(Entity *this)
|
||||
{
|
||||
this->field_0x68 = 0xb;
|
||||
this->field_0x69 = 0xff;
|
||||
}
|
Loading…
Reference in New Issue