mirror of https://github.com/zeldaret/tmc.git
chestSpawner
This commit is contained in:
parent
82ee1318aa
commit
4240e9e42d
|
@ -6,69 +6,6 @@
|
|||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ChestSpawner
|
||||
ChestSpawner: @ 0x08083DD8
|
||||
push {lr}
|
||||
ldr r2, _08083DEC @ =gUnk_0811F7E8
|
||||
ldrb r1, [r0, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08083DEC: .4byte gUnk_0811F7E8
|
||||
|
||||
thumb_func_start sub_08083DF0
|
||||
sub_08083DF0: @ 0x08083DF0
|
||||
push {lr}
|
||||
ldr r2, _08083E04 @ =gUnk_0811F808
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08083E04: .4byte gUnk_0811F808
|
||||
|
||||
thumb_func_start sub_08083E08
|
||||
sub_08083E08: @ 0x08083E08
|
||||
push {lr}
|
||||
ldr r2, _08083E1C @ =gUnk_0811F818
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08083E1C: .4byte gUnk_0811F818
|
||||
|
||||
thumb_func_start sub_08083E20
|
||||
sub_08083E20: @ 0x08083E20
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #7
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
ldrb r1, [r4, #0x19]
|
||||
movs r0, #0xd
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r0, r4, #0
|
||||
bl sub_080842D8
|
||||
adds r0, r4, #0
|
||||
bl sub_08078828
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08083E4C
|
||||
sub_08083E4C: @ 0x08083E4C
|
||||
push {r4, lr}
|
||||
|
|
|
@ -6,81 +6,6 @@
|
|||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start HeartContainer
|
||||
HeartContainer: @ 0x0808E688
|
||||
push {lr}
|
||||
ldr r2, _0808E69C @ =gUnk_08121C48
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0808E69C: .4byte gUnk_08121C48
|
||||
|
||||
thumb_func_start sub_0808E6A0
|
||||
sub_0808E6A0: @ 0x0808E6A0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x84
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _0808E6B4
|
||||
bl DeleteThisEntity
|
||||
_0808E6B4:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x62
|
||||
strb r0, [r4, #0xa]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #0x66
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
ldr r0, _0808E6E0 @ =gUnk_08121C58
|
||||
str r0, [r4, #0x48]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
movs r2, #3
|
||||
movs r0, #3
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r4, #0x11]
|
||||
subs r0, #0x13
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x11]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808E6E0: .4byte gUnk_08121C58
|
||||
|
||||
thumb_func_start sub_0808E6E4
|
||||
sub_0808E6E4: @ 0x0808E6E4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _0808E712
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
ldrb r0, [r4, #0x19]
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r0, r4, #0
|
||||
bl sub_0808E714
|
||||
_0808E712:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0808E714
|
||||
sub_0808E714: @ 0x0808E714
|
||||
push {r4, lr}
|
||||
|
|
|
@ -600,6 +600,7 @@ SECTIONS {
|
|||
asm/object9.o(.text);
|
||||
asm/objectA.o(.text);
|
||||
asm/objectB.o(.text);
|
||||
src/chestSpawner.o(.text);
|
||||
asm/chestSpawner.o(.text);
|
||||
asm/objectD.o(.text);
|
||||
asm/objectE.o(.text);
|
||||
|
@ -663,6 +664,7 @@ SECTIONS {
|
|||
asm/object44.o(.text);
|
||||
asm/object45.o(.text);
|
||||
asm/giantBookLadder.o(.text);
|
||||
src/heartContainer.o(.text);
|
||||
asm/heartContainer.o(.text);
|
||||
asm/object48.o(.text);
|
||||
asm/object49.o(.text);
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
|
||||
extern void sub_080842D8(Entity*);
|
||||
extern void sub_08078828(Entity*);
|
||||
extern u32 CheckLocalFlag(u32);
|
||||
extern void InitializeAnimation(Entity*, u32);
|
||||
extern u32 CheckFlags(u32);
|
||||
extern void sub_08083E20(Entity*);
|
||||
|
||||
extern void (*const gUnk_0811F7E8[])(Entity*);
|
||||
extern void (*const gUnk_0811F808[])(Entity*);
|
||||
extern void (*const gUnk_0811F818[])(Entity*);
|
||||
|
||||
extern u32 gUnk_0811F8B0;
|
||||
void ChestSpawner(Entity* this)
|
||||
{
|
||||
gUnk_0811F7E8[this->entityType.form](this);
|
||||
}
|
||||
|
||||
void sub_08083DF0(Entity* this) {
|
||||
gUnk_0811F808[this->action](this);
|
||||
}
|
||||
|
||||
void sub_08083E08(Entity *this)
|
||||
{
|
||||
gUnk_0811F818[this->action](this);
|
||||
}
|
||||
|
||||
void sub_08083E20(Entity *this)
|
||||
{
|
||||
this->action = 3;
|
||||
this->spriteSettings.b.ss0 = 1;
|
||||
this->spriteOrder.b1 = 0;
|
||||
sub_080842D8(this);
|
||||
sub_08078828(this);
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
|
||||
extern u32 CheckFlags(u32);
|
||||
extern void DeleteThisEntity();
|
||||
extern void sub_0808E714(Entity*);
|
||||
|
||||
extern void (*const gUnk_08121C48[])(Entity*);
|
||||
|
||||
extern u32 gUnk_08121C58;
|
||||
|
||||
void HeartContainer(Entity* this) {
|
||||
gUnk_08121C48[this->action](this);
|
||||
}
|
||||
|
||||
void sub_0808E6A0(Entity* this) {
|
||||
|
||||
if (CheckFlags(*(u16*)&this->cutsceneBeh)) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
this->action = 1;
|
||||
this->entityType.form = 0x62;
|
||||
this->spriteSettings.b.ss0 = 0;
|
||||
this->boundingBox = &gUnk_08121C58;
|
||||
this->collisionLayer = 3;
|
||||
this->scriptedScene = 3;
|
||||
}
|
||||
|
||||
void sub_0808E6E4(Entity* this) {
|
||||
if (CheckFlags(this->field_0x86)) {
|
||||
this->action = 2;
|
||||
this->spriteSettings.b.ss0 = 1;
|
||||
this->spriteOrder.b0 = 3;
|
||||
sub_0808E714(this);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue