miniFireballGuy.c

This commit is contained in:
theo3 2020-07-01 15:13:27 -07:00
parent 344de9129d
commit 05a5fa0a28
23 changed files with 123 additions and 181 deletions

9
.gitignore vendored
View File

@ -36,6 +36,15 @@
*.swp
*.til
*.code-workspace
*.ss1
*.ss2
*.ss3
*.ss4
*.ss5
*.ss6
*.ss7
*.ss8
*.ss9
.fuse_hidden*
.idea/
Thumbs.db

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1394,7 +1394,7 @@ _0804A6E8:
_0804A702:
ldrh r1, [r5]
adds r0, r4, #0
bl sub_080ADF80
bl LoadFixedGFX
_0804A70A:
cmp r0, #0
bne _0804A712

View File

@ -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

View File

@ -5247,7 +5247,7 @@ _080A7E78:
_080A7E92:
ldrh r1, [r5]
adds r0, r4, #0
bl sub_080ADF80
bl LoadFixedGFX
_080A7E9A:
cmp r0, #0
bne _080A7EA2

View File

@ -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}

View File

@ -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

View File

@ -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}

View File

@ -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}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -619,7 +619,7 @@ _08089680:
adds r0, r2, #0
movs r1, #0xe9
_08089684:
bl sub_080ADF80
bl LoadFixedGFX
pop {pc}
.align 2, 0

View File

@ -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

View File

@ -65,7 +65,7 @@ _080A28BA:
b _080A28CA
_080A28C4:
adds r0, r4, #0
bl sub_080ADF80
bl LoadFixedGFX
_080A28CA:
cmp r0, #0
bne _080A28D2

View File

@ -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

View File

@ -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

View File

@ -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);

63
src/miniFireballGuy.c Normal file
View File

@ -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);
}
}

27
src/minishSizedEntrance.c Normal file
View File

@ -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);
}
}