mirror of
https://github.com/zeldaret/tmc
synced 2026-08-08 18:43:52 -04:00
- label effect functions
- combine object creation function
This commit is contained in:
+1
-1
@@ -409,7 +409,7 @@ _0802C964:
|
||||
cmp r1, #8
|
||||
bne _0802C972
|
||||
adds r0, r4, #0
|
||||
bl sub_080A29FC
|
||||
bl CreateDustSmall
|
||||
_0802C972:
|
||||
adds r0, r4, #0
|
||||
bl sub_0802CC18
|
||||
|
||||
+2
-2
@@ -532,7 +532,7 @@ _0808424C:
|
||||
movs r0, #0x72
|
||||
bl PlaySFX
|
||||
adds r0, r4, #0
|
||||
bl sub_080A29BC
|
||||
bl CreateDust
|
||||
_08084258:
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
@@ -596,7 +596,7 @@ _080842BA:
|
||||
ldrb r1, [r1]
|
||||
bl sub_0807BA8C
|
||||
adds r0, r4, #0
|
||||
bl sub_080A29BC
|
||||
bl CreateDust
|
||||
_080842D4:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
+1
-1
@@ -469,7 +469,7 @@ _08017196:
|
||||
cmp r1, #0
|
||||
bne _080171A4
|
||||
adds r0, r5, #0
|
||||
bl sub_080A2B80
|
||||
bl CreateSparkle
|
||||
_080171A4:
|
||||
ldr r0, _080171B8 @ =gUnk_02002A40
|
||||
adds r3, r0, #0
|
||||
|
||||
+1
-1
@@ -542,7 +542,7 @@ _08070BC8:
|
||||
cmp r0, #0
|
||||
bne _08070BE4
|
||||
adds r0, r5, #0
|
||||
bl sub_080A2A64
|
||||
bl CreateWaterTrace
|
||||
_08070BE4:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
|
||||
+4
-4
@@ -3691,14 +3691,14 @@ _08074E54:
|
||||
movs r1, #8
|
||||
movs r2, #0x18
|
||||
rsbs r2, r2, #0
|
||||
bl sub_080A2CFC
|
||||
bl CreateSpeechBubbleExclamationMark
|
||||
b _08074EF0
|
||||
_08074E62:
|
||||
adds r0, r4, #0
|
||||
movs r1, #8
|
||||
movs r2, #0x18
|
||||
rsbs r2, r2, #0
|
||||
bl sub_080A2D0C
|
||||
bl CreateSpeechBubbleQuestionMark
|
||||
b _08074EF0
|
||||
_08074E70:
|
||||
ldrb r0, [r4, #0x18]
|
||||
@@ -4261,7 +4261,7 @@ _08075270:
|
||||
movs r2, #0x1c
|
||||
rsbs r2, r2, #0
|
||||
adds r0, r4, #0
|
||||
bl sub_080A2D1C
|
||||
bl CreateSpeechBubbleSleep
|
||||
str r0, [r4, #0x6c]
|
||||
cmp r0, #0
|
||||
beq _0807528C
|
||||
@@ -4280,7 +4280,7 @@ sub_0807529C: @ 0x0807529C
|
||||
movs r2, #0x20
|
||||
rsbs r2, r2, #0
|
||||
movs r1, #8
|
||||
bl sub_080A2D0C
|
||||
bl CreateSpeechBubbleQuestionMark
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
|
||||
+2
-2
@@ -5117,7 +5117,7 @@ _0807AECC:
|
||||
cmp r0, #0
|
||||
bne _0807AEDE
|
||||
adds r0, r4, #0
|
||||
bl sub_080A2A64
|
||||
bl CreateWaterTrace
|
||||
_0807AEDE:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -5517,7 +5517,7 @@ sub_0807B1A8: @ 0x0807B1A8
|
||||
cmp r0, #0
|
||||
bne _0807B1D0
|
||||
adds r0, r4, #0
|
||||
bl sub_080A2B80
|
||||
bl CreateSparkle
|
||||
_0807B1D0:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
+5
-5
@@ -1806,14 +1806,14 @@ _0807DC82:
|
||||
movs r1, #8
|
||||
movs r2, #0x18
|
||||
rsbs r2, r2, #0
|
||||
bl sub_080A2CFC
|
||||
bl CreateSpeechBubbleExclamationMark
|
||||
b _0807DD40
|
||||
_0807DC90:
|
||||
adds r0, r5, #0
|
||||
movs r1, #8
|
||||
movs r2, #0x18
|
||||
rsbs r2, r2, #0
|
||||
bl sub_080A2D0C
|
||||
bl CreateSpeechBubbleQuestionMark
|
||||
b _0807DD40
|
||||
_0807DC9E:
|
||||
adds r0, r6, #0
|
||||
@@ -5183,7 +5183,7 @@ sub_0807F3F8: @ 0x0807F3F8
|
||||
movs r2, #0x18
|
||||
rsbs r2, r2, #0
|
||||
movs r1, #8
|
||||
bl sub_080A2CFC
|
||||
bl CreateSpeechBubbleExclamationMark
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0807F408: .4byte gPlayerEntity
|
||||
@@ -5195,7 +5195,7 @@ sub_0807F40C: @ 0x0807F40C
|
||||
movs r2, #0x18
|
||||
rsbs r2, r2, #0
|
||||
movs r1, #8
|
||||
bl sub_080A2D0C
|
||||
bl CreateSpeechBubbleQuestionMark
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0807F41C: .4byte gPlayerEntity
|
||||
@@ -5936,7 +5936,7 @@ sub_0807F93C: @ 0x0807F93C
|
||||
movs r3, #0xff
|
||||
ands r1, r3
|
||||
ands r2, r3
|
||||
bl sub_080A2D1C
|
||||
bl CreateSpeechBubbleSleep
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
|
||||
+14
-14
@@ -9,7 +9,7 @@
|
||||
sub_080A2A84: @ 0x080A2A84
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r1, #0
|
||||
bl sub_080A2A64
|
||||
bl CreateWaterTrace
|
||||
adds r6, r0, #0
|
||||
cmp r6, #0
|
||||
beq _080A2AD2
|
||||
@@ -132,8 +132,8 @@ _080A2B74:
|
||||
.align 2, 0
|
||||
_080A2B7C: .4byte gSineTable
|
||||
|
||||
thumb_func_start sub_080A2B80
|
||||
sub_080A2B80: @ 0x080A2B80
|
||||
thumb_func_start CreateSparkle
|
||||
CreateSparkle: @ 0x080A2B80
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r0, #0xf
|
||||
@@ -331,38 +331,38 @@ _080A2CF8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A2CFC
|
||||
sub_080A2CFC: @ 0x080A2CFC
|
||||
thumb_func_start CreateSpeechBubbleExclamationMark
|
||||
CreateSpeechBubbleExclamationMark: @ 0x080A2CFC
|
||||
push {r4, lr}
|
||||
adds r4, r1, #0
|
||||
adds r3, r2, #0
|
||||
movs r1, #0
|
||||
adds r2, r4, #0
|
||||
bl sub_080A2D2C
|
||||
bl CreateSpeechBubble
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080A2D0C
|
||||
sub_080A2D0C: @ 0x080A2D0C
|
||||
thumb_func_start CreateSpeechBubbleQuestionMark
|
||||
CreateSpeechBubbleQuestionMark: @ 0x080A2D0C
|
||||
push {r4, lr}
|
||||
adds r4, r1, #0
|
||||
adds r3, r2, #0
|
||||
movs r1, #1
|
||||
adds r2, r4, #0
|
||||
bl sub_080A2D2C
|
||||
bl CreateSpeechBubble
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080A2D1C
|
||||
sub_080A2D1C: @ 0x080A2D1C
|
||||
thumb_func_start CreateSpeechBubbleSleep
|
||||
CreateSpeechBubbleSleep: @ 0x080A2D1C
|
||||
push {r4, lr}
|
||||
adds r4, r1, #0
|
||||
adds r3, r2, #0
|
||||
movs r1, #2
|
||||
adds r2, r4, #0
|
||||
bl sub_080A2D2C
|
||||
bl CreateSpeechBubble
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080A2D2C
|
||||
sub_080A2D2C: @ 0x080A2D2C
|
||||
thumb_func_start CreateSpeechBubble
|
||||
CreateSpeechBubble: @ 0x080A2D2C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r4, r1, #0
|
||||
|
||||
+2
-2
@@ -8153,7 +8153,7 @@ sub_080A9448: @ 0x080A9448
|
||||
cmp r0, #0
|
||||
bne _080A9464
|
||||
adds r0, r4, #0
|
||||
bl sub_080A29BC
|
||||
bl CreateDust
|
||||
bl DeleteThisEntity
|
||||
b _080A9486
|
||||
_080A9464:
|
||||
@@ -13507,7 +13507,7 @@ _080ABC2A:
|
||||
bl ModHealth
|
||||
_080ABC32:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A29BC
|
||||
bl CreateDust
|
||||
bl DeleteThisEntity
|
||||
b _080ABC52
|
||||
_080ABC3E:
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start CreateFx
|
||||
CreateFx: @ 0x080A29AC
|
||||
push {r4, lr}
|
||||
adds r4, r1, #0
|
||||
adds r3, r2, #0
|
||||
movs r1, #0xf
|
||||
adds r2, r4, #0
|
||||
bl CreateObjectWithParent
|
||||
pop {r4, pc}
|
||||
@@ -603,7 +603,7 @@ sub_08096780: @ 0x08096780
|
||||
strb r0, [r5, #0xc]
|
||||
strb r1, [r5, #0xd]
|
||||
adds r0, r5, #0
|
||||
bl sub_080A29BC
|
||||
bl CreateDust
|
||||
b _080967E0
|
||||
.align 2, 0
|
||||
_080967D4: .4byte gUnk_0812319C
|
||||
|
||||
+1
-1
@@ -857,7 +857,7 @@ _0802D6C4:
|
||||
rsbs r2, r2, #0
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xc
|
||||
bl sub_080A2CFC
|
||||
bl CreateSpeechBubbleExclamationMark
|
||||
_0802D6D8:
|
||||
strb r6, [r5, #0x14]
|
||||
b _0802D6EC
|
||||
|
||||
@@ -234,7 +234,7 @@ _080641E6:
|
||||
cmp r0, #0
|
||||
bne _08064222
|
||||
adds r0, r5, #0
|
||||
bl sub_080A29FC
|
||||
bl CreateDustSmall
|
||||
_08064222:
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x71
|
||||
@@ -299,7 +299,7 @@ _0806428C:
|
||||
cmp r0, #0
|
||||
bne _080642AC
|
||||
adds r0, r5, #0
|
||||
bl sub_080A29FC
|
||||
bl CreateDustSmall
|
||||
_080642AC:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
@@ -379,7 +379,7 @@ _08064306:
|
||||
cmp r0, #0
|
||||
bne _08064342
|
||||
adds r0, r5, #0
|
||||
bl sub_080A29FC
|
||||
bl CreateDustSmall
|
||||
_08064342:
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x71
|
||||
@@ -444,7 +444,7 @@ _080643AC:
|
||||
cmp r0, #0
|
||||
bne _080643CC
|
||||
adds r0, r5, #0
|
||||
bl sub_080A29FC
|
||||
bl CreateDustSmall
|
||||
_080643CC:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
|
||||
+1
-1
@@ -545,7 +545,7 @@ _08080DEE:
|
||||
cmp r0, #0
|
||||
bne _08080E00
|
||||
adds r0, r4, #0
|
||||
bl sub_080A2B80
|
||||
bl CreateSparkle
|
||||
_08080E00:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
+2
-2
@@ -312,7 +312,7 @@ sub_08027F84: @ 0x08027F84
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_080A29BC
|
||||
bl CreateDust
|
||||
_08027FB0:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -403,7 +403,7 @@ sub_0802802C: @ 0x0802802C
|
||||
strb r2, [r4, #0x15]
|
||||
strb r2, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
bl sub_080A29BC
|
||||
bl CreateDust
|
||||
_0802805A:
|
||||
pop {r4, pc}
|
||||
|
||||
|
||||
+1
-1
@@ -188,7 +188,7 @@ sub_0805BDB4: @ 0x0805BDB4
|
||||
movs r2, #0x3a
|
||||
ldrsh r1, [r4, r2]
|
||||
ldrb r2, [r4, #0xb]
|
||||
bl sub_080A29C8
|
||||
bl CreateDustAt
|
||||
ldrh r0, [r4, #0x3e]
|
||||
bl ClearFlag
|
||||
ldrh r0, [r4, #0x20]
|
||||
|
||||
+1
-1
@@ -124,7 +124,7 @@ _0805DF1A:
|
||||
rsbs r2, r2, #0
|
||||
adds r0, r5, #0
|
||||
movs r1, #8
|
||||
bl sub_080A2CFC
|
||||
bl CreateSpeechBubbleExclamationMark
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _0805DF3C
|
||||
|
||||
+1
-1
@@ -333,7 +333,7 @@ sub_08059124: @ 0x08059124
|
||||
movs r2, #0x3a
|
||||
ldrsh r1, [r4, r2]
|
||||
ldrb r2, [r4, #0xb]
|
||||
bl sub_080A29C8
|
||||
bl CreateDustAt
|
||||
ldrh r0, [r4, #0x38]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x14
|
||||
|
||||
+1
-1
@@ -356,7 +356,7 @@ _0808BAEA:
|
||||
strb r4, [r2, #0x1e]
|
||||
_0808BAFC:
|
||||
adds r0, r2, #0
|
||||
bl sub_080A29BC
|
||||
bl CreateDust
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0808BB04
|
||||
|
||||
+1
-1
@@ -211,7 +211,7 @@ sub_08094B94: @ 0x08094B94
|
||||
adds r1, #0x84
|
||||
str r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_080A29BC
|
||||
bl CreateDust
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #0x10
|
||||
strh r0, [r4, #0x36]
|
||||
|
||||
+1
-1
@@ -470,7 +470,7 @@ _0809C74A:
|
||||
cmp r0, #0
|
||||
bne _0809C772
|
||||
ldr r0, [r5, #0x54]
|
||||
bl sub_080A2B80
|
||||
bl CreateSparkle
|
||||
_0809C772:
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x7e
|
||||
|
||||
+1
-1
@@ -1233,7 +1233,7 @@ _08035B18:
|
||||
movs r2, #0x18
|
||||
rsbs r2, r2, #0
|
||||
movs r1, #0xc
|
||||
bl sub_080A2CFC
|
||||
bl CreateSpeechBubbleExclamationMark
|
||||
_08035B2C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
+1
-1
@@ -229,7 +229,7 @@ sub_0802409C: @ 0x0802409C
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_080A29BC
|
||||
bl CreateDust
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080240B8
|
||||
|
||||
+1
-1
@@ -297,7 +297,7 @@ sub_08063C74: @ 0x08063C74
|
||||
movs r2, #0x18
|
||||
rsbs r2, r2, #0
|
||||
movs r1, #8
|
||||
bl sub_080A2CFC
|
||||
bl CreateSpeechBubbleExclamationMark
|
||||
_08063C8C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
+1
-1
@@ -84,7 +84,7 @@ sub_080A2420: @ 0x080A2420
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
bl sub_080A29BC
|
||||
bl CreateDust
|
||||
_080A243A:
|
||||
pop {r4, pc}
|
||||
|
||||
|
||||
+1
-1
@@ -933,7 +933,7 @@ sub_08033E1C: @ 0x08033E1C
|
||||
rsbs r2, r2, #0
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xa
|
||||
bl sub_080A2CFC
|
||||
bl CreateSpeechBubbleExclamationMark
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08033EA4: .4byte 0xFFF00000
|
||||
|
||||
+4
-4
@@ -233,7 +233,7 @@ sub_080651F8: @ 0x080651F8
|
||||
rsbs r2, r2, #0
|
||||
adds r0, r4, #0
|
||||
movs r1, #8
|
||||
bl sub_080A2CFC
|
||||
bl CreateSpeechBubbleExclamationMark
|
||||
movs r0, #1
|
||||
bl sub_08078A90
|
||||
_0806522A:
|
||||
@@ -281,7 +281,7 @@ _08065264:
|
||||
rsbs r2, r2, #0
|
||||
adds r0, r4, #0
|
||||
movs r1, #8
|
||||
bl sub_080A2CFC
|
||||
bl CreateSpeechBubbleExclamationMark
|
||||
b _0806528A
|
||||
_0806527E:
|
||||
movs r0, #0
|
||||
@@ -612,7 +612,7 @@ sub_080654DC: @ 0x080654DC
|
||||
movs r2, #0x18
|
||||
rsbs r2, r2, #0
|
||||
movs r1, #8
|
||||
bl sub_080A2D0C
|
||||
bl CreateSpeechBubbleQuestionMark
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
@@ -622,7 +622,7 @@ sub_080654EC: @ 0x080654EC
|
||||
movs r2, #0x18
|
||||
rsbs r2, r2, #0
|
||||
movs r1, #8
|
||||
bl sub_080A2CFC
|
||||
bl CreateSpeechBubbleExclamationMark
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
|
||||
+1
-1
@@ -282,7 +282,7 @@ sub_08064C9C: @ 0x08064C9C
|
||||
cmp r0, #0
|
||||
bne _08064CB8
|
||||
adds r0, r2, #0
|
||||
bl sub_080A29BC
|
||||
bl CreateDust
|
||||
_08064CB8:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
+1
-1
@@ -194,7 +194,7 @@ extern void sub_08004488(u32);
|
||||
extern void sub_08004596(Entity*, u32);
|
||||
extern u32 sub_0807953C(void);
|
||||
extern void ResetPlayer(void);
|
||||
extern void sub_080A29BC(Entity*);
|
||||
extern void CreateDust(Entity*);
|
||||
extern void sub_080AE068(Entity*);
|
||||
extern Manager* GetEmptyManager(void);
|
||||
extern void AppendEntityToList(void*, u32);
|
||||
|
||||
@@ -880,9 +880,6 @@ SECTIONS {
|
||||
asm/sub_080A2838.o(.text);
|
||||
asm/sub_080A285C.o(.text);
|
||||
src/createObject.o(.text);
|
||||
src/createObjectWithParent.o(.text);
|
||||
asm/createFx.o(.text);
|
||||
src/code_080A29BC.o(.text);
|
||||
asm/code_080A29BC.o(.text);
|
||||
asm/playSFX.o(.text);
|
||||
asm/code_080A3480.o(.text);
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "room.h"
|
||||
|
||||
void sub_080A29BC(Entity *parent)
|
||||
{
|
||||
CreateFx(parent, 2, 0);
|
||||
}
|
||||
|
||||
void sub_080A29C8(s32 xOff, s32 yOff, u32 layer)
|
||||
{
|
||||
Entity *pEVar1;
|
||||
|
||||
pEVar1 = CreateObject(0xf, 2, 0);
|
||||
if (pEVar1 != NULL) {
|
||||
pEVar1->x.HALF.HI = gRoomControls.roomOriginX + xOff;
|
||||
pEVar1->y.HALF.HI = gRoomControls.roomOriginY + yOff;
|
||||
pEVar1->collisionLayer = layer;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080A29FC(Entity *parent)
|
||||
{
|
||||
CreateFx(parent, 0x11, 0);
|
||||
}
|
||||
|
||||
void sub_080A2A08(Entity *parent)
|
||||
{
|
||||
CreateFx(parent, 0x6, 0);
|
||||
}
|
||||
|
||||
void sub_080A2A14(Entity *parent)
|
||||
{
|
||||
CreateFx(parent, 0xb, 0);
|
||||
}
|
||||
|
||||
Entity * sub_080A2A20(Entity *parent, u32 form, u32 parameter)
|
||||
{
|
||||
Entity *pEVar1;
|
||||
|
||||
pEVar1 = CreateObjectWithParent(parent, 0, form, parameter);
|
||||
if (pEVar1 != NULL) {
|
||||
pEVar1->actionDelay = 5;
|
||||
}
|
||||
return pEVar1;
|
||||
}
|
||||
|
||||
Entity * sub_080A2A3C(Entity *parent, u32 form, u32 subtype, u32 param_4)
|
||||
{
|
||||
Entity *ent;
|
||||
|
||||
ent = CreateObjectWithParent(parent, 0, form, subtype);
|
||||
if (ent != NULL) {
|
||||
ent->actionDelay = 5;
|
||||
ent->field_0x86 = param_4;
|
||||
}
|
||||
return ent;
|
||||
}
|
||||
|
||||
Entity * sub_080A2A64(Entity *parent)
|
||||
{
|
||||
Entity *pEVar1;
|
||||
|
||||
pEVar1 = CreateFx(parent, 0x20, 0);
|
||||
if (pEVar1 != NULL) {
|
||||
pEVar1->spritePriority.b0 = 7;
|
||||
}
|
||||
return pEVar1;
|
||||
}
|
||||
+86
-12
@@ -1,21 +1,95 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "room.h"
|
||||
|
||||
extern Entity* GetEmptyEntity();
|
||||
extern void AppendEntityToList(Entity*, u8);
|
||||
|
||||
Entity* CreateObject(u32 subtype, u32 param1, u32 param2)
|
||||
Entity* CreateObject(u32 subtype, u32 form, u32 parameter) {
|
||||
Entity* ent;
|
||||
|
||||
{
|
||||
Entity* newEnt;
|
||||
|
||||
newEnt = GetEmptyEntity();
|
||||
if (newEnt != NULL) {
|
||||
(newEnt->entityType).type = 6;
|
||||
(newEnt->entityType).subtype = subtype;
|
||||
(newEnt->entityType).form = param1;
|
||||
(newEnt->entityType).parameter = param2;
|
||||
AppendEntityToList(newEnt, 6);
|
||||
ent = GetEmptyEntity();
|
||||
if (ent != NULL) {
|
||||
ent->entityType.type = 6;
|
||||
ent->entityType.subtype = subtype;
|
||||
ent->entityType.form = form;
|
||||
ent->entityType.parameter = parameter;
|
||||
AppendEntityToList(ent, 6);
|
||||
}
|
||||
return newEnt;
|
||||
return ent;
|
||||
}
|
||||
|
||||
Entity* CreateObjectWithParent(Entity* parentEnt, u32 subtype, u32 form, u32 parameter) {
|
||||
Entity* ent;
|
||||
|
||||
ent = CreateObject(subtype, form, parameter);
|
||||
if (ent != NULL) {
|
||||
ent->parent = parentEnt;
|
||||
CopyPosition(parentEnt, ent);
|
||||
}
|
||||
|
||||
return ent;
|
||||
}
|
||||
|
||||
Entity* CreateFx(Entity* parentEnt, u32 param1, u32 param2) {
|
||||
asm("nop");
|
||||
CreateObjectWithParent(parentEnt, 0, 0x60, 0);
|
||||
}
|
||||
|
||||
void CreateDust(Entity* parent) {
|
||||
CreateFx(parent, 2, 0);
|
||||
}
|
||||
|
||||
void CreateDustAt(s32 xOff, s32 yOff, u32 layer) {
|
||||
Entity* ent;
|
||||
|
||||
ent = CreateObject(0xf, 2, 0);
|
||||
if (ent != NULL) {
|
||||
ent->x.HALF.HI = gRoomControls.roomOriginX + xOff;
|
||||
ent->y.HALF.HI = gRoomControls.roomOriginY + yOff;
|
||||
ent->collisionLayer = layer;
|
||||
}
|
||||
}
|
||||
|
||||
void CreateDustSmall(Entity* parent) {
|
||||
CreateFx(parent, 0x11, 0);
|
||||
}
|
||||
|
||||
void CreateExplosionBroken(Entity* parent) {
|
||||
CreateFx(parent, 0x6, 0);
|
||||
}
|
||||
|
||||
void CreateWaterSplash(Entity* parent) {
|
||||
CreateFx(parent, 0xb, 0);
|
||||
}
|
||||
|
||||
Entity* sub_080A2A20(Entity* parent, u32 form, u32 parameter) {
|
||||
Entity* ent;
|
||||
|
||||
ent = CreateObjectWithParent(parent, 0, form, parameter);
|
||||
if (ent != NULL) {
|
||||
ent->actionDelay = 5;
|
||||
}
|
||||
return ent;
|
||||
}
|
||||
|
||||
Entity* sub_080A2A3C(Entity* parent, u32 form, u32 subtype, u32 param_4) {
|
||||
Entity* ent;
|
||||
|
||||
ent = CreateObjectWithParent(parent, 0, form, subtype);
|
||||
if (ent != NULL) {
|
||||
ent->actionDelay = 5;
|
||||
ent->field_0x86 = param_4;
|
||||
}
|
||||
return ent;
|
||||
}
|
||||
|
||||
Entity* CreateWaterTrace(Entity* parent) {
|
||||
Entity* ent;
|
||||
|
||||
ent = CreateFx(parent, 0x20, 0);
|
||||
if (ent != NULL) {
|
||||
ent->spritePriority.b0 = 7;
|
||||
}
|
||||
return ent;
|
||||
}
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
|
||||
Entity* CreateObjectWithParent(Entity* parentEnt, u32 subtype, u32 param1, u32 param2) {
|
||||
Entity* ent;
|
||||
|
||||
ent = CreateObject(subtype, param1, param2);
|
||||
if (ent != NULL) {
|
||||
ent->parent = parentEnt;
|
||||
CopyPosition(parentEnt, ent);
|
||||
}
|
||||
|
||||
return ent;
|
||||
}
|
||||
@@ -262,7 +262,7 @@ void sub_08029770(Entity* this) {
|
||||
InitializeAnimation(this, 2);
|
||||
this->attachedEntity->spriteSettings.b.draw = TRUE;
|
||||
InitializeAnimation(this->attachedEntity, 6);
|
||||
sub_080A29BC(this);
|
||||
CreateDust(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ void VaatiBall(Entity* this) {
|
||||
this->flags &= 0x7f;
|
||||
this->currentHealth = -1;
|
||||
parent->field_0x80.HALF.LO--;
|
||||
sub_080A29BC(this);
|
||||
CreateDust(this);
|
||||
PlaySFX(0x1c3);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -109,7 +109,7 @@ void sub_080336DC(Entity* this) {
|
||||
this->y.HALF.HI = this->field_0x82.HWORD;
|
||||
break;
|
||||
case 0x18:
|
||||
sub_080A29BC(this);
|
||||
CreateDust(this);
|
||||
break;
|
||||
case 0xc:
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
|
||||
@@ -20,7 +20,6 @@ extern void sub_0807000C(Entity*);
|
||||
extern void sub_08060158(Entity*);
|
||||
extern u32 CheckKinstoneFused(u32);
|
||||
extern Entity* FindEntityInListBySubtype(u32, u32, u32);
|
||||
extern void sub_080A29BC(Entity* parent);
|
||||
extern void DeleteEntity(Entity*);
|
||||
extern u32 Random(void);
|
||||
extern void ModBombs(s32);
|
||||
@@ -236,7 +235,7 @@ void sub_08060318(void) {
|
||||
for (i = 2; i >= 0; i--) {
|
||||
ent = FindEntityInListBySubtype(8, 2, 2);
|
||||
if (ent != NULL) {
|
||||
sub_080A29BC(ent);
|
||||
CreateDust(ent);
|
||||
DeleteEntity(ent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,8 +12,7 @@ extern void (*const gUnk_0810FBFC[])(Entity*);
|
||||
void TingleSiblings(Entity* this) {
|
||||
if ((this->flags & 2) != 0) {
|
||||
sub_08064DE4(this);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
sub_08064D78(this);
|
||||
}
|
||||
}
|
||||
@@ -40,4 +39,43 @@ void sub_08064DCC(Entity* this) {
|
||||
sub_08064EE8(this);
|
||||
InitAnimationForceUpdate(this, 2);
|
||||
this->action = 1;
|
||||
}
|
||||
}
|
||||
/*
|
||||
void sub_08064DE4(Entity* this) {
|
||||
switch (this->action) {
|
||||
case 0:
|
||||
this->action = 1;
|
||||
this->spriteSettings = this->spriteSettings & 0xfc | 1;
|
||||
this->animationState = '\x04';
|
||||
sub_0807DD50(this);
|
||||
break;
|
||||
case 1:
|
||||
if (this->interactType == 2) {
|
||||
this->action = 2;
|
||||
this->interactType = 0;
|
||||
GetFacingDirection(this, &gPlayerEntity);
|
||||
InitAnimationForceUpdate(this, sub_0806F5A4());
|
||||
sub_0806F118(this);
|
||||
} else {
|
||||
sub_0807DD94(this, 0);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (UpdateFuseInteraction(this)) {
|
||||
this->action = 1;
|
||||
sub_0801E99C(this);
|
||||
}
|
||||
break;
|
||||
}
|
||||
{
|
||||
u8 bVar1 = this->frames.all;
|
||||
u8 bVar5 = bVar1 & 0xf;
|
||||
this->frames.all = bVar5 ^ bVar1;
|
||||
if (bVar1 & 0xf) {
|
||||
Entity* fx = CreateFx(this, bVar5 == 3 ? 0x2a : 0x29, 0);
|
||||
if (fx && bVar5 == 2) {
|
||||
fx->spriteSettings.b.flipX = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
@@ -32,7 +32,7 @@ void ObjectA(Entity *this) {
|
||||
} else if (this->interactType != 0) {
|
||||
SetTileType(*(u16*)&this->field_0x70.HALF.LO, COORD_TO_TILE(this), this->collisionLayer);
|
||||
SetFlag(this->field_0x86);
|
||||
sub_080A29BC(this);
|
||||
CreateDust(this);
|
||||
sub_080526F8(-1);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
extern void sub_0809E96C(Entity*);
|
||||
extern u32 sub_0800419C(Entity*, Entity*, u32, u32);
|
||||
extern void sub_080A2B80(Entity*);
|
||||
extern void CreateSparkle(Entity*);
|
||||
extern u32 sub_0809E9A0(void);
|
||||
extern void sub_08078A90(u32);
|
||||
extern void sub_0809E918(Entity*);
|
||||
@@ -37,7 +37,7 @@ void sub_0809E86C(Entity* this) {
|
||||
if (sub_0800419C(this, &gPlayerEntity, 0x30, 0x30)) {
|
||||
if (CheckGlobalFlag(EZERO_1ST)) {
|
||||
if (((gScreenTransition & 3) == 0)) {
|
||||
sub_080A2B80(this);
|
||||
CreateSparkle(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user