mirror of https://github.com/zeldaret/tmc.git
blade brothers decomped
This commit is contained in:
parent
1888f4d07a
commit
7bb61194f4
|
@ -1,372 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_08068CFC
|
||||
sub_08068CFC: @ 0x08068CFC
|
||||
push {r4, lr}
|
||||
adds r4, r1, #0
|
||||
movs r1, #0
|
||||
str r1, [r4, #0x14]
|
||||
ldrb r0, [r0, #0xe]
|
||||
cmp r0, #0xa
|
||||
bhi _08068DB6
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08068D14 @ =_08068D18
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08068D14: .4byte _08068D18
|
||||
_08068D18: @ jump table
|
||||
.4byte _08068DB2 @ case 0
|
||||
.4byte _08068D44 @ case 1
|
||||
.4byte _08068D48 @ case 2
|
||||
.4byte _08068D4C @ case 3
|
||||
.4byte _08068DB2 @ case 4
|
||||
.4byte _08068D50 @ case 5
|
||||
.4byte _08068D58 @ case 6
|
||||
.4byte _08068D68 @ case 7
|
||||
.4byte _08068DB2 @ case 8
|
||||
.4byte _08068DB2 @ case 9
|
||||
.4byte _08068DA8 @ case 10
|
||||
_08068D44:
|
||||
movs r0, #2
|
||||
b _08068DAA
|
||||
_08068D48:
|
||||
movs r0, #0x15
|
||||
b _08068DAA
|
||||
_08068D4C:
|
||||
movs r0, #0x14
|
||||
b _08068DAA
|
||||
_08068D50:
|
||||
movs r0, #3
|
||||
bl CheckLocalFlag
|
||||
b _08068DAE
|
||||
_08068D58:
|
||||
ldr r0, _08068D64 @ =gUnk_02002A40
|
||||
adds r0, #0xab
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x4f
|
||||
bls _08068DB6
|
||||
b _08068DB2
|
||||
.align 2, 0
|
||||
_08068D64: .4byte gUnk_02002A40
|
||||
_08068D68:
|
||||
movs r0, #0x48
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _08068DB6
|
||||
movs r0, #0x49
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _08068DB6
|
||||
movs r0, #0x4a
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _08068DB6
|
||||
movs r0, #0x4b
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _08068DB6
|
||||
movs r0, #0x4c
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _08068DB6
|
||||
movs r0, #0x4e
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _08068DB6
|
||||
movs r0, #0x4f
|
||||
b _08068DAA
|
||||
_08068DA8:
|
||||
movs r0, #0x4d
|
||||
_08068DAA:
|
||||
bl GetInventoryValue
|
||||
_08068DAE:
|
||||
cmp r0, #0
|
||||
beq _08068DB6
|
||||
_08068DB2:
|
||||
movs r0, #1
|
||||
str r0, [r4, #0x14]
|
||||
_08068DB6:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08068DB8
|
||||
sub_08068DB8: @ 0x08068DB8
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r2, _08068DCC @ =gUnk_08111664
|
||||
ldrb r0, [r1, #0xe]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
bl TextboxNoOverlap
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08068DCC: .4byte gUnk_08111664
|
||||
|
||||
thumb_func_start sub_08068DD0
|
||||
sub_08068DD0: @ 0x08068DD0
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r2, _08068DE4 @ =gUnk_0811167A
|
||||
ldrb r0, [r1, #0xe]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
bl TextboxNoOverlap
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08068DE4: .4byte gUnk_0811167A
|
||||
|
||||
thumb_func_start sub_08068DE8
|
||||
sub_08068DE8: @ 0x08068DE8
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r2, _08068DFC @ =gUnk_08111690
|
||||
ldrb r0, [r1, #0xe]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
bl TextboxNoOverlap
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08068DFC: .4byte gUnk_08111690
|
||||
|
||||
thumb_func_start sub_08068E00
|
||||
sub_08068E00: @ 0x08068E00
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r2, _08068E14 @ =gUnk_081116A6
|
||||
ldrb r0, [r1, #0xe]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
bl TextboxNoOverlap
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08068E14: .4byte gUnk_081116A6
|
||||
|
||||
thumb_func_start sub_08068E18
|
||||
sub_08068E18: @ 0x08068E18
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r2, _08068E2C @ =gUnk_081116BC
|
||||
ldrb r0, [r1, #0xe]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
bl TextboxNoOverlap
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08068E2C: .4byte gUnk_081116BC
|
||||
|
||||
thumb_func_start sub_08068E30
|
||||
sub_08068E30: @ 0x08068E30
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r2, _08068E44 @ =gUnk_081116D2
|
||||
ldrb r0, [r1, #0xe]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
bl TextboxNoOverlap
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08068E44: .4byte gUnk_081116D2
|
||||
|
||||
thumb_func_start sub_08068E48
|
||||
sub_08068E48: @ 0x08068E48
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r2, _08068E5C @ =gUnk_081116E8
|
||||
ldrb r0, [r1, #0xe]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
bl TextboxNoOverlap
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08068E5C: .4byte gUnk_081116E8
|
||||
|
||||
thumb_func_start sub_08068E60
|
||||
sub_08068E60: @ 0x08068E60
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r2, _08068E74 @ =gUnk_081116FE
|
||||
ldrb r0, [r1, #0xe]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
bl TextboxNoOverlap
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08068E74: .4byte gUnk_081116FE
|
||||
|
||||
thumb_func_start sub_08068E78
|
||||
sub_08068E78: @ 0x08068E78
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r2, _08068E8C @ =gUnk_08111714
|
||||
ldrb r0, [r1, #0xe]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
bl TextboxNoOverlap
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08068E8C: .4byte gUnk_08111714
|
||||
|
||||
thumb_func_start sub_08068E90
|
||||
sub_08068E90: @ 0x08068E90
|
||||
ldr r2, _08068EAC @ =gLinkState
|
||||
adds r2, #0xac
|
||||
ldr r1, _08068EB0 @ =gUnk_08111740
|
||||
ldrb r0, [r0, #0xe]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
subs r1, #1
|
||||
movs r0, #1
|
||||
lsls r0, r1
|
||||
ldrh r1, [r2]
|
||||
orrs r0, r1
|
||||
strh r0, [r2]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08068EAC: .4byte gLinkState
|
||||
_08068EB0: .4byte gUnk_08111740
|
||||
|
||||
thumb_func_start sub_08068EB4
|
||||
sub_08068EB4: @ 0x08068EB4
|
||||
ldr r0, _08068EC0 @ =gLinkState
|
||||
adds r0, #0xab
|
||||
movs r1, #0
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08068EC0: .4byte gLinkState
|
||||
|
||||
thumb_func_start sub_08068EC4
|
||||
sub_08068EC4: @ 0x08068EC4
|
||||
push {r4, lr}
|
||||
adds r3, r1, #0
|
||||
ldr r2, _08068EEC @ =gUnk_08111740
|
||||
ldrb r4, [r0, #0xe]
|
||||
lsls r1, r4, #2
|
||||
adds r1, r1, r2
|
||||
ldr r0, _08068EF0 @ =gLinkState
|
||||
adds r0, #0xab
|
||||
ldr r1, [r1]
|
||||
ldrb r0, [r0]
|
||||
cmp r1, r0
|
||||
bne _08068EF8
|
||||
ldr r1, _08068EF4 @ =gUnk_0811172A
|
||||
lsls r0, r4, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r3, #0x10]
|
||||
movs r0, #1
|
||||
b _08068EFA
|
||||
.align 2, 0
|
||||
_08068EEC: .4byte gUnk_08111740
|
||||
_08068EF0: .4byte gLinkState
|
||||
_08068EF4: .4byte gUnk_0811172A
|
||||
_08068EF8:
|
||||
movs r0, #0
|
||||
_08068EFA:
|
||||
str r0, [r3, #0x14]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08068F00
|
||||
sub_08068F00: @ 0x08068F00
|
||||
push {lr}
|
||||
ldrb r0, [r0, #0xe]
|
||||
cmp r0, #1
|
||||
bne _08068F0E
|
||||
ldr r0, _08068F10 @ =gUnk_080F3494
|
||||
bl LoadRoomEntityList
|
||||
_08068F0E:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08068F10: .4byte gUnk_080F3494
|
||||
|
||||
thumb_func_start sub_08068F14
|
||||
sub_08068F14: @ 0x08068F14
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #5
|
||||
bne _08068F24
|
||||
movs r0, #0xa0
|
||||
bl ModHealth
|
||||
_08068F24:
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #6
|
||||
bne _08068F38
|
||||
movs r0, #0xa0
|
||||
rsbs r0, r0, #0
|
||||
bl ModHealth
|
||||
movs r0, #2
|
||||
bl ModHealth
|
||||
_08068F38:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08068F3C
|
||||
sub_08068F3C: @ 0x08068F3C
|
||||
push {lr}
|
||||
ldrb r0, [r0, #0xe]
|
||||
cmp r0, #6
|
||||
bne _08068F4A
|
||||
movs r0, #0xa0
|
||||
bl ModHealth
|
||||
_08068F4A:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08068F4C
|
||||
sub_08068F4C: @ 0x08068F4C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _08068F72
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl InitAnimationForceUpdate
|
||||
b _08068F78
|
||||
_08068F72:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
_08068F78:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x5a
|
||||
ldrb r1, [r2]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08068F94
|
||||
movs r0, #0xfe
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_08068BEC
|
||||
_08068F94:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
|
@ -1,14 +1,5 @@
|
|||
#ifndef ENTITYDATA_H
|
||||
#define ENTITYDATA_H
|
||||
#include "global.h"
|
||||
typedef struct {
|
||||
u8 entityType;
|
||||
u8 field_0x1;
|
||||
u8 entitySubtype;
|
||||
u8 entityParameter1;
|
||||
u32 entityParameter2;
|
||||
u16 xPos;
|
||||
u16 yPos;
|
||||
u32 spritePtr;
|
||||
} EntityData;
|
||||
|
||||
#endif
|
|
@ -46,6 +46,10 @@ typedef struct {
|
|||
u8 unk6;
|
||||
u8 filler15[75];
|
||||
u8 unk7;
|
||||
u32 filler16[7];
|
||||
u8 filler17[3];
|
||||
u8 unk71;
|
||||
u32 unk8;
|
||||
} LinkState;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -46,6 +46,18 @@ typedef struct {
|
|||
u32 greatFairyState;
|
||||
} RoomVars;
|
||||
|
||||
//Packets used to store which entities to load in a room
|
||||
typedef struct {
|
||||
u8 entityType;
|
||||
u8 field_0x1;
|
||||
u8 entitySubtype;
|
||||
u8 entityParameter1;
|
||||
u32 entityParameter2;
|
||||
u16 xPos;
|
||||
u16 yPos;
|
||||
u32 spritePtr;
|
||||
} EntityData;
|
||||
|
||||
extern RoomControls gRoomControls;
|
||||
extern RoomVars gRoomVars;
|
||||
#endif
|
|
@ -511,7 +511,6 @@ SECTIONS {
|
|||
asm/zeldaFollower.o(.text);
|
||||
asm/melari.o(.text);
|
||||
src/bladeBrothers.o(.text);
|
||||
asm/bladeBrothers.o(.text);
|
||||
src/cow.o(.text);
|
||||
asm/goron.o(.text);
|
||||
asm/goronMerchant.o(.text);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "link.h"
|
||||
|
||||
#include "room.h"
|
||||
typedef struct {
|
||||
/*0x00*/ u8 filler[0x2C];
|
||||
/*0x2C*/ u8 unk;
|
||||
|
@ -38,6 +38,13 @@ extern void PositionRelative(Entity*, Entity*, u32, u32);
|
|||
extern void PlaySFX(u32);
|
||||
extern u32 GetInventoryValue(u32);
|
||||
extern void sub_080A7C18(u32, u32, u32);
|
||||
extern u32 CheckLocalFlag(u32);
|
||||
extern void TextboxNoOverlap(u32, Entity*);
|
||||
extern void LoadRoomEntityList();
|
||||
extern void ModHealth(s32);
|
||||
extern void InitAnimationForceUpdate(Entity*, u32);
|
||||
extern void UpdateAnimationSingleFrame(Entity*);
|
||||
extern void sub_08068BEC(Entity*, u32);
|
||||
|
||||
extern void (*gUnk_081115C0[])(Entity*);
|
||||
extern void (*gUnk_081115D0[])(Entity*);
|
||||
|
@ -50,6 +57,19 @@ extern u32* gUnk_081115EC[];
|
|||
extern struct_02002A40 gUnk_02002A40;
|
||||
extern u8 gUnk_08111623[];
|
||||
extern u8 gUnk_0811162B[];
|
||||
extern u16 gUnk_08111664[];
|
||||
extern u16 gUnk_0811167A[];
|
||||
extern u16 gUnk_08111690[];
|
||||
extern u16 gUnk_081116A6[];
|
||||
extern u16 gUnk_081116BC[];
|
||||
extern u16 gUnk_081116D2[];
|
||||
extern u16 gUnk_081116E8[];
|
||||
extern u16 gUnk_081116FE[];
|
||||
extern u16 gUnk_08111714[];
|
||||
extern u32 gUnk_08111740[];
|
||||
extern u16 gUnk_0811172A[];
|
||||
extern u32 gUnk_0300402B;
|
||||
extern EntityData gUnk_080F3494;
|
||||
|
||||
void sub_080689C0(Entity* this) {
|
||||
|
||||
|
@ -213,48 +233,208 @@ void sub_08068C28(Entity* this) {
|
|||
}
|
||||
}
|
||||
|
||||
void sub_08068C6C(Entity *this)
|
||||
{
|
||||
sub_080A7C18(gUnk_0811162B[this->parameter3] & 0xffffff7f,0,0);
|
||||
void sub_08068C6C(Entity* this) {
|
||||
sub_080A7C18(gUnk_0811162B[this->parameter3] & 0xffffff7f, 0, 0);
|
||||
}
|
||||
|
||||
void sub_08068C8C(Entity *param_1,Entity *param_2)
|
||||
{
|
||||
void sub_08068C8C(Entity* param_1, Entity* param_2) {
|
||||
u8* arr = gUnk_0811162B + 0xd;
|
||||
|
||||
|
||||
*(u32*)¶m_2->animationState = *(u32*)(arr + param_1->parameter3 * 4);
|
||||
}
|
||||
|
||||
void sub_08068CA0(Entity *param_1,Entity *param_2)
|
||||
void sub_08068CA0(Entity* param_1, Entity* param_2) {
|
||||
u8 bVar1;
|
||||
u32 uVar2;
|
||||
|
||||
bVar1 = (param_1->entityType).parameter1;
|
||||
if (bVar1 == 1) {
|
||||
*(u32*)¶m_2->animationState = bVar1;
|
||||
uVar2 = GetInventoryValue(0x48); // spin attack
|
||||
if (uVar2 == 0) {
|
||||
*(u32*)¶m_2->animationState = 0;
|
||||
}
|
||||
uVar2 = GetInventoryValue(0x4b); // rock breaker
|
||||
if (uVar2 == 0) {
|
||||
*(u32*)¶m_2->animationState = 0;
|
||||
}
|
||||
uVar2 = GetInventoryValue(0x4a); // dash attack
|
||||
if (uVar2 == 0) {
|
||||
*(u32*)¶m_2->animationState = 0;
|
||||
}
|
||||
uVar2 = GetInventoryValue(0x4e); // down thrust
|
||||
if (uVar2 != 0) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
uVar2 = GetInventoryValue(gUnk_0811162B[param_1->parameter3] & -0x81);
|
||||
if (uVar2 != 0) {
|
||||
uVar2 = 1;
|
||||
}
|
||||
}
|
||||
*(u32*)¶m_2->animationState = uVar2;
|
||||
}
|
||||
|
||||
void sub_08068CFC(Entity* param_1, Entity* param_2, u32 param_3, u32 param_4)
|
||||
|
||||
{
|
||||
u8 bVar1;
|
||||
u32 uVar2;
|
||||
|
||||
bVar1 = (param_1->entityType).parameter1;
|
||||
if (bVar1 == 1) {
|
||||
*(u32 *)¶m_2->animationState = bVar1;
|
||||
uVar2 = GetInventoryValue(0x48); //spin attack
|
||||
u8 bVar1;
|
||||
u8 itemID;
|
||||
u32 uVar2;
|
||||
|
||||
*(u32*)¶m_2->animationState = 0;
|
||||
bVar1 = param_1->parameter3;
|
||||
if (bVar1 > 10)
|
||||
return;
|
||||
|
||||
switch (bVar1) {
|
||||
case 0:
|
||||
default:
|
||||
goto switchD_08068d12_caseD_0;
|
||||
case 1:
|
||||
itemID = 0x2;
|
||||
break;
|
||||
case 2:
|
||||
itemID = 0x15;
|
||||
break;
|
||||
case 3:
|
||||
itemID = 0x14;
|
||||
break;
|
||||
case 5:
|
||||
uVar2 = CheckLocalFlag(3);
|
||||
goto LABEL1;
|
||||
break;
|
||||
case 6:
|
||||
if (gUnk_02002A40.stats.maxHealth < 0x50)
|
||||
return;
|
||||
goto switchD_08068d12_caseD_0;
|
||||
case 7:
|
||||
uVar2 = GetInventoryValue(0x48); // spin attack
|
||||
if (uVar2 == 0) {
|
||||
return;
|
||||
}
|
||||
uVar2 = GetInventoryValue(0x49); // roll attack
|
||||
if (uVar2 == 0) {
|
||||
return;
|
||||
}
|
||||
uVar2 = GetInventoryValue(0x4a); // dash attack
|
||||
if (uVar2 == 0) {
|
||||
return;
|
||||
}
|
||||
uVar2 = GetInventoryValue(0x4b); // rock breaker
|
||||
if (uVar2 == 0) {
|
||||
return;
|
||||
}
|
||||
uVar2 = GetInventoryValue(0x4c); // sword beam
|
||||
if (uVar2 == 0) {
|
||||
return;
|
||||
}
|
||||
uVar2 = GetInventoryValue(0x4e); // down thrust
|
||||
if (uVar2 == 0) {
|
||||
return;
|
||||
}
|
||||
itemID = 0x4f; // peril beam
|
||||
break;
|
||||
case 10:
|
||||
itemID = 0x4d; // great spin
|
||||
}
|
||||
uVar2 = GetInventoryValue(itemID);
|
||||
LABEL1:
|
||||
if (uVar2 == 0) {
|
||||
*(u32 *)¶m_2->animationState = 0;
|
||||
return;
|
||||
}
|
||||
uVar2 = GetInventoryValue(0x4b); //rock breaker
|
||||
if (uVar2 == 0) {
|
||||
*(u32 *)¶m_2->animationState = 0;
|
||||
switchD_08068d12_caseD_0:
|
||||
*(u32*)¶m_2->animationState = 1;
|
||||
}
|
||||
|
||||
void sub_08068DB8(Entity* this) {
|
||||
TextboxNoOverlap(gUnk_08111664[this->parameter3], this);
|
||||
}
|
||||
|
||||
void sub_08068DD0(Entity* this) {
|
||||
TextboxNoOverlap(gUnk_0811167A[this->parameter3], this);
|
||||
}
|
||||
|
||||
void sub_08068DE8(Entity* this) {
|
||||
TextboxNoOverlap(gUnk_08111690[this->parameter3], this);
|
||||
}
|
||||
|
||||
void sub_08068E00(Entity* this) {
|
||||
TextboxNoOverlap(gUnk_081116A6[this->parameter3], this);
|
||||
}
|
||||
|
||||
void sub_08068E18(Entity* this) {
|
||||
TextboxNoOverlap(gUnk_081116BC[this->parameter3], this);
|
||||
}
|
||||
|
||||
void sub_08068E30(Entity* this) {
|
||||
TextboxNoOverlap(gUnk_081116D2[this->parameter3], this);
|
||||
}
|
||||
|
||||
void sub_08068E48(Entity* this) {
|
||||
TextboxNoOverlap(gUnk_081116E8[this->parameter3], this);
|
||||
}
|
||||
|
||||
void sub_08068E60(Entity* this) {
|
||||
TextboxNoOverlap(gUnk_081116FE[this->parameter3], this);
|
||||
}
|
||||
|
||||
void sub_08068E78(Entity* this) {
|
||||
TextboxNoOverlap(gUnk_08111714[this->parameter3], this);
|
||||
}
|
||||
|
||||
void sub_08068E90(Entity* this) {
|
||||
LinkState* s = &gLinkState;
|
||||
*(u16*)&s->unk8 = (1 << (gUnk_08111740[this->parameter3] - 1)) | *(u16*)&s->unk8;
|
||||
}
|
||||
|
||||
void sub_08068EB4(void) {
|
||||
gLinkState.unk71 = 0;
|
||||
}
|
||||
|
||||
void sub_08068EC4(Entity* param_1, Entity* param_2) {
|
||||
if (gUnk_08111740[param_1->parameter3] == gLinkState.unk71) {
|
||||
*(u16*)¶m_2->flags = gUnk_0811172A[param_1->parameter3];
|
||||
*(u32*)¶m_2->animationState = 1;
|
||||
} else {
|
||||
*(u32*)¶m_2->animationState = 0;
|
||||
}
|
||||
uVar2 = GetInventoryValue(0x4a); //dash attack
|
||||
if (uVar2 == 0) {
|
||||
*(u32 *)¶m_2->animationState = 0;
|
||||
}
|
||||
|
||||
void sub_08068F00(Entity* this) {
|
||||
if (this->parameter3 == 1) {
|
||||
LoadRoomEntityList(&gUnk_080F3494);
|
||||
}
|
||||
uVar2 = GetInventoryValue(0x4e); //down thrust
|
||||
if (uVar2 != 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
void sub_08068F14(Entity* this) {
|
||||
if (this->parameter3 == 5) {
|
||||
ModHealth(160);
|
||||
}
|
||||
}
|
||||
else {
|
||||
uVar2 = GetInventoryValue(gUnk_0811162B[param_1->parameter3] & -0x81);
|
||||
if (uVar2 != 0) {
|
||||
uVar2 = 1;
|
||||
if (this->parameter3 == 6) {
|
||||
ModHealth(-160);
|
||||
ModHealth(2);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08068F3C(Entity* this) {
|
||||
if (this->parameter3 == 6) {
|
||||
ModHealth(160);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08068F4C(Entity* this) {
|
||||
|
||||
if (this->action == 0) {
|
||||
this->action += 1;
|
||||
this->spriteSettings.b.ss0 = 0;
|
||||
this->spriteSettings.b.ss0 = 1;
|
||||
InitAnimationForceUpdate(this, 4);
|
||||
} else {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
}
|
||||
if ((this->frames.all & 1) != 0) {
|
||||
this->frames.all &= 0xfe;
|
||||
sub_08068BEC(this, 0);
|
||||
}
|
||||
}
|
||||
*(u32*)¶m_2->animationState = uVar2;
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "entityData.h"
|
||||
#include "room.h"
|
||||
|
||||
extern void sub_080A2CC0();
|
||||
extern void sub_0806F69C();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "entityData.h"
|
||||
#include "room.h"
|
||||
|
||||
void extern CreateEntity(EntityData*);
|
||||
|
||||
|
|
Loading…
Reference in New Issue