mirror of https://github.com/zeldaret/tmc.git
miniFireballGuy.c
This commit is contained in:
parent
344de9129d
commit
05a5fa0a28
|
|
@ -36,6 +36,15 @@
|
|||
*.swp
|
||||
*.til
|
||||
*.code-workspace
|
||||
*.ss1
|
||||
*.ss2
|
||||
*.ss3
|
||||
*.ss4
|
||||
*.ss5
|
||||
*.ss6
|
||||
*.ss7
|
||||
*.ss8
|
||||
*.ss9
|
||||
.fuse_hidden*
|
||||
.idea/
|
||||
Thumbs.db
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ sub_08082EB4: @ 0x08082EB4
|
|||
bl sub_080AE068
|
||||
ldr r1, _08082EE4 @ =0x000001C1
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
cmp r0, #0
|
||||
bne _08082EE8
|
||||
ldrb r1, [r4, #0x18]
|
||||
|
|
|
|||
|
|
@ -989,7 +989,7 @@ sub_08029078: @ 0x08029078
|
|||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x72
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
cmp r0, #0
|
||||
bne _080290AE
|
||||
adds r0, r4, #0
|
||||
|
|
|
|||
|
|
@ -302,7 +302,7 @@ _080675BC:
|
|||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r2, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
_080675CC:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
|
|
|||
|
|
@ -1944,7 +1944,7 @@ _08026B2C:
|
|||
strh r0, [r4, #0x2e]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x3e
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
ldrb r0, [r6, #0xb]
|
||||
cmp r0, #0
|
||||
bne _08026B46
|
||||
|
|
@ -4338,7 +4338,7 @@ sub_08027D20: @ 0x08027D20
|
|||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x3e
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #0
|
||||
bne _08027D5E
|
||||
|
|
|
|||
|
|
@ -1394,7 +1394,7 @@ _0804A6E8:
|
|||
_0804A702:
|
||||
ldrh r1, [r5]
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
_0804A70A:
|
||||
cmp r0, #0
|
||||
bne _0804A712
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ _0806ECC0:
|
|||
b _0806ECD0
|
||||
_0806ECCA:
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
_0806ECD0:
|
||||
ldrh r0, [r5, #4]
|
||||
lsls r0, r0, #0x16
|
||||
|
|
|
|||
|
|
@ -5247,7 +5247,7 @@ _080A7E78:
|
|||
_080A7E92:
|
||||
ldrh r1, [r5]
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
_080A7E9A:
|
||||
cmp r0, #0
|
||||
bne _080A7EA2
|
||||
|
|
|
|||
|
|
@ -867,8 +867,8 @@ _080ADF7C:
|
|||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080ADF80
|
||||
sub_080ADF80: @ 0x080ADF80
|
||||
thumb_func_start LoadFixedGFX
|
||||
LoadFixedGFX: @ 0x080ADF80
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
|
|
|
|||
|
|
@ -674,7 +674,7 @@ _080837FC:
|
|||
_08083808:
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
|
|
|
|||
|
|
@ -6,118 +6,6 @@
|
|||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start MiniFireballGuy
|
||||
MiniFireballGuy: @ 0x080455AC
|
||||
push {lr}
|
||||
ldr r1, _080455B8 @ =gUnk_080D1868
|
||||
bl EnemyFunctionHandler
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080455B8: .4byte gUnk_080D1868
|
||||
|
||||
thumb_func_start sub_080455BC
|
||||
sub_080455BC: @ 0x080455BC
|
||||
push {lr}
|
||||
ldr r2, _080455D0 @ =gUnk_080D1880
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080455D0: .4byte gUnk_080D1880
|
||||
|
||||
thumb_func_start sub_080455D4
|
||||
sub_080455D4: @ 0x080455D4
|
||||
push {lr}
|
||||
ldr r1, _080455E0 @ =gUnk_080D1868
|
||||
bl sub_0804AA30
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080455E0: .4byte gUnk_080D1868
|
||||
|
||||
thumb_func_start sub_080455E4
|
||||
sub_080455E4: @ 0x080455E4
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
ldr r0, [r3, #0x50]
|
||||
cmp r3, r0
|
||||
beq _0804560A
|
||||
cmp r0, #0
|
||||
beq _0804560A
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x6c
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r1, [r3, #0x50]
|
||||
ldr r0, [r3, #0x54]
|
||||
str r0, [r1, #0x54]
|
||||
ldr r1, [r3, #0x54]
|
||||
ldr r0, [r3, #0x50]
|
||||
str r0, [r1, #0x50]
|
||||
_0804560A:
|
||||
adds r0, r3, #0
|
||||
bl sub_0804A7D4
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start nullsub_23
|
||||
nullsub_23: @ 0x08045614
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08045618
|
||||
sub_08045618: @ 0x08045618
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
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]
|
||||
movs r0, #0x80
|
||||
strh r0, [r4, #0x24]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3c
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x10
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl sub_0804A720
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_08045678
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08045654
|
||||
sub_08045654: @ 0x08045654
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080AEFE0
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #5
|
||||
adds r0, r4, #0
|
||||
bl sub_08003FC4
|
||||
cmp r0, #0
|
||||
bne _08045676
|
||||
adds r0, r4, #0
|
||||
bl sub_08045678
|
||||
_08045676:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08045678
|
||||
sub_08045678: @ 0x08045678
|
||||
push {r4, r5, lr}
|
||||
|
|
|
|||
|
|
@ -6,53 +6,6 @@
|
|||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start MinishSizedEntrance
|
||||
MinishSizedEntrance: @ 0x08090EA8
|
||||
push {lr}
|
||||
ldr r2, _08090EBC @ =gUnk_08122254
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08090EBC: .4byte gUnk_08122254
|
||||
|
||||
thumb_func_start sub_08090EC0
|
||||
sub_08090EC0: @ 0x08090EC0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r0, [r4, #0x19]
|
||||
movs r1, #0xc0
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldrb r0, [r4, #0xb]
|
||||
strb r0, [r4, #0x1e]
|
||||
bl CheckIsDungeon
|
||||
cmp r0, #0
|
||||
beq _08090EFE
|
||||
ldrb r0, [r4, #0x1e]
|
||||
adds r0, #4
|
||||
strb r0, [r4, #0x1e]
|
||||
adds r0, r4, #0
|
||||
bl sub_080AE068
|
||||
movs r1, #0xc2
|
||||
lsls r1, r1, #1
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADF80
|
||||
_08090EFE:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08090F00
|
||||
sub_08090F00: @ 0x08090F00
|
||||
push {r4, r5, r6, lr}
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ _0808CF82:
|
|||
adds r4, r4, r0
|
||||
ldrh r1, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
ldrh r1, [r4, #2]
|
||||
adds r0, r5, #0
|
||||
bl sub_0801D040
|
||||
|
|
|
|||
|
|
@ -735,10 +735,10 @@ _0809C948:
|
|||
ldr r4, _0809C984 @ =0x00000115
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
ldr r0, [r5, #0x50]
|
||||
adds r1, r4, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xef
|
||||
bl sub_0801D2B4
|
||||
|
|
|
|||
|
|
@ -373,7 +373,7 @@ _08035456:
|
|||
movs r1, #0x84
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xef
|
||||
bl sub_0801D2B4
|
||||
|
|
@ -395,7 +395,7 @@ _080354B0:
|
|||
strb r0, [r1]
|
||||
ldr r1, _080354F4 @ =0x00000109
|
||||
adds r0, r5, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xf0
|
||||
bl sub_0801D2B4
|
||||
|
|
|
|||
|
|
@ -619,7 +619,7 @@ _08089680:
|
|||
adds r0, r2, #0
|
||||
movs r1, #0xe9
|
||||
_08089684:
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
|
|
|
|||
|
|
@ -644,7 +644,7 @@ sub_08029770: @ 0x08029770
|
|||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0x73
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
cmp r0, #0
|
||||
beq _080297E8
|
||||
movs r0, #2
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ _080A28BA:
|
|||
b _080A28CA
|
||||
_080A28C4:
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
_080A28CA:
|
||||
cmp r0, #0
|
||||
bne _080A28D2
|
||||
|
|
|
|||
|
|
@ -1159,7 +1159,7 @@ sub_08041BE8: @ 0x08041BE8
|
|||
bl sub_080AE068
|
||||
ldr r1, _08041CC0 @ =0x000001F5
|
||||
adds r0, r7, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
ldr r1, _08041CC4 @ =0x0000016B
|
||||
adds r0, r7, #0
|
||||
bl sub_0801D2B4
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ _0809FFCE:
|
|||
movs r1, #0xc6
|
||||
lsls r1, r1, #1
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
movs r0, #0xf6
|
||||
bl PlaySFX
|
||||
b _080A005A
|
||||
|
|
@ -105,7 +105,7 @@ _080A0006:
|
|||
bl sub_080AE068
|
||||
ldr r1, _080A0034 @ =0x0000018D
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADF80
|
||||
bl LoadFixedGFX
|
||||
b _080A005A
|
||||
.align 2, 0
|
||||
_080A0034: .4byte 0x0000018D
|
||||
|
|
|
|||
|
|
@ -412,6 +412,7 @@ SECTIONS {
|
|||
asm/slime.o(.text);
|
||||
asm/miniSlime.o(.text);
|
||||
asm/fireballGuy.o(.text);
|
||||
src/miniFireballGuy.o(.text);
|
||||
asm/miniFireballGuy.o(.text);
|
||||
asm/enemy5A.o(.text);
|
||||
asm/businessScrubPrologue.o(.text);
|
||||
|
|
@ -731,6 +732,7 @@ SECTIONS {
|
|||
asm/object4B.o(.text);
|
||||
asm/pushableFurniture.o(.text);
|
||||
asm/furniture.o(.text);
|
||||
src/minishSizedEntrance.o(.text);
|
||||
asm/minishSizedEntrance.o(.text);
|
||||
asm/archway.o(.text);
|
||||
asm/giantRock.o(.text);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,63 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
|
||||
extern void EnemyFunctionHandler(Entity*, void (*const func[])(Entity*));
|
||||
extern void sub_0804AA30(Entity*, void (*const func[][])(Entity*));
|
||||
extern void sub_0804A7D4(Entity*);
|
||||
extern void sub_0804A720(Entity*);
|
||||
extern void InitializeAnimation(Entity*, u32);
|
||||
extern void sub_08045678(Entity*);
|
||||
extern void sub_080AEFE0(void);
|
||||
extern void GetNextFrame(Entity*);
|
||||
extern u32 sub_08003FC4(Entity*, u32);
|
||||
extern void sub_08045678(Entity*);
|
||||
|
||||
extern void (*const gUnk_080D1868[])(Entity*);
|
||||
extern void (*const gUnk_080D1880[])(Entity*);
|
||||
|
||||
void MiniFireballGuy(Entity *this)
|
||||
{
|
||||
EnemyFunctionHandler(this, gUnk_080D1868);
|
||||
}
|
||||
|
||||
void sub_080455BC(Entity *this)
|
||||
{
|
||||
gUnk_080D1880[this->action](this);
|
||||
}
|
||||
|
||||
void sub_080455D4(Entity *this)
|
||||
{
|
||||
sub_0804AA30(this, &gUnk_080D1868);
|
||||
}
|
||||
|
||||
void sub_080455E4(Entity *this)
|
||||
{
|
||||
if ((this != this->parent) && (this->parent != NULL)) {
|
||||
this->field_0x6c = this->field_0x6c & 0x7f;
|
||||
this->parent->attachedEntity = this->attachedEntity;
|
||||
this->attachedEntity->parent = this->parent;
|
||||
}
|
||||
sub_0804A7D4(this);
|
||||
}
|
||||
|
||||
void nullsub_23(Entity* this) {}
|
||||
|
||||
void sub_08045618(Entity *this)
|
||||
{
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.ss0 = 1;
|
||||
this->nonPlanarMovement = 0x80;
|
||||
this->field_0x3c = this->field_0x3c | 0x10;
|
||||
sub_0804A720(this);
|
||||
InitializeAnimation(this, 1);
|
||||
sub_08045678(this);
|
||||
}
|
||||
|
||||
void sub_08045654(Entity *this)
|
||||
{
|
||||
sub_080AEFE0();
|
||||
GetNextFrame(this);
|
||||
if (sub_08003FC4(this, 0x1800) == 0) {
|
||||
sub_08045678(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
|
||||
extern u32 Random();
|
||||
extern bool32 CheckIsDungeon();
|
||||
extern void sub_080AE068(Entity*);
|
||||
extern void LoadFixedGFX(Entity*, u32);
|
||||
|
||||
extern void (*const gUnk_08122254[])(Entity*);
|
||||
|
||||
void MinishSizedEntrance(Entity* this)
|
||||
{
|
||||
gUnk_08122254[this->action](this);
|
||||
}
|
||||
|
||||
void sub_08090EC0(Entity *this)
|
||||
{
|
||||
this->action = 1;
|
||||
this->spriteOrder.b3 = 3;
|
||||
this->ticks.b0 = 7;
|
||||
this->frameIndex = (this->entityType).parameter;
|
||||
if (CheckIsDungeon()) {
|
||||
this->frameIndex += 4;
|
||||
sub_080AE068(this);
|
||||
LoadFixedGFX(this, 0x184);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue