mirror of https://github.com/zeldaret/tmc.git
bladeBrothers.c OK
This commit is contained in:
parent
a99313e537
commit
f3f7b518cb
|
@ -6,210 +6,6 @@
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_08068B84
|
|
||||||
sub_08068B84: @ 0x08068B84
|
|
||||||
push {r4, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
ldr r1, _08068BAC @ =gUnk_08111618
|
|
||||||
ldrb r0, [r4, #0xe]
|
|
||||||
adds r0, r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08068B9A
|
|
||||||
movs r1, #0
|
|
||||||
bl ForceEquipItem
|
|
||||||
_08068B9A:
|
|
||||||
ldr r0, _08068BB0 @ =gUnk_081115EC
|
|
||||||
ldrb r1, [r4, #0xe]
|
|
||||||
lsls r1, r1, #2
|
|
||||||
adds r1, r1, r0
|
|
||||||
ldr r0, [r1]
|
|
||||||
bl sub_0805ED14
|
|
||||||
pop {r4, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_08068BAC: .4byte gUnk_08111618
|
|
||||||
_08068BB0: .4byte gUnk_081115EC
|
|
||||||
|
|
||||||
thumb_func_start sub_08068BB4
|
|
||||||
sub_08068BB4: @ 0x08068BB4
|
|
||||||
ldr r2, _08068BCC @ =gUnk_02002A40
|
|
||||||
adds r1, r2, #0
|
|
||||||
adds r1, #0xb4
|
|
||||||
ldrb r1, [r1]
|
|
||||||
adds r3, r0, #0
|
|
||||||
adds r3, #0x69
|
|
||||||
strb r1, [r3]
|
|
||||||
adds r2, #0xb5
|
|
||||||
ldrb r1, [r2]
|
|
||||||
adds r0, #0x6a
|
|
||||||
strb r1, [r0]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08068BCC: .4byte gUnk_02002A40
|
|
||||||
|
|
||||||
thumb_func_start sub_08068BD0
|
|
||||||
sub_08068BD0: @ 0x08068BD0
|
|
||||||
push {r4, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
adds r0, #0x69
|
|
||||||
ldrb r0, [r0]
|
|
||||||
movs r1, #0
|
|
||||||
bl ForceEquipItem
|
|
||||||
adds r4, #0x6a
|
|
||||||
ldrb r0, [r4]
|
|
||||||
movs r1, #1
|
|
||||||
bl ForceEquipItem
|
|
||||||
pop {r4, pc}
|
|
||||||
.align 2, 0
|
|
||||||
|
|
||||||
thumb_func_start sub_08068BEC
|
|
||||||
sub_08068BEC: @ 0x08068BEC
|
|
||||||
push {r4, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
movs r1, #0x44
|
|
||||||
movs r2, #0
|
|
||||||
bl CreateFx
|
|
||||||
adds r2, r0, #0
|
|
||||||
cmp r2, #0
|
|
||||||
beq _08068C22
|
|
||||||
adds r3, r2, #0
|
|
||||||
adds r3, #0x29
|
|
||||||
ldrb r1, [r3]
|
|
||||||
movs r0, #8
|
|
||||||
rsbs r0, r0, #0
|
|
||||||
ands r0, r1
|
|
||||||
movs r1, #1
|
|
||||||
orrs r0, r1
|
|
||||||
strb r0, [r3]
|
|
||||||
ldr r3, _08068C24 @ =0xFFF00000
|
|
||||||
adds r0, r4, #0
|
|
||||||
adds r1, r2, #0
|
|
||||||
movs r2, #0
|
|
||||||
bl PositionRelative
|
|
||||||
movs r0, #0xfa
|
|
||||||
bl PlaySFX
|
|
||||||
_08068C22:
|
|
||||||
pop {r4, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_08068C24: .4byte 0xFFF00000
|
|
||||||
|
|
||||||
thumb_func_start sub_08068C28
|
|
||||||
sub_08068C28: @ 0x08068C28
|
|
||||||
push {r4, r5, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
ldr r0, _08068C54 @ =gUnk_08111623
|
|
||||||
ldrb r1, [r4, #0xa]
|
|
||||||
adds r1, r1, r0
|
|
||||||
ldrb r0, [r1]
|
|
||||||
strb r0, [r4, #0xe]
|
|
||||||
ldrb r5, [r4, #0xa]
|
|
||||||
cmp r5, #1
|
|
||||||
bne _08068C6A
|
|
||||||
movs r0, #0x48
|
|
||||||
bl GetInventoryValue
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08068C6A
|
|
||||||
movs r0, #0x4b
|
|
||||||
bl GetInventoryValue
|
|
||||||
cmp r0, #0
|
|
||||||
bne _08068C58
|
|
||||||
strb r5, [r4, #0xe]
|
|
||||||
b _08068C6A
|
|
||||||
.align 2, 0
|
|
||||||
_08068C54: .4byte gUnk_08111623
|
|
||||||
_08068C58:
|
|
||||||
movs r0, #0x4a
|
|
||||||
bl GetInventoryValue
|
|
||||||
cmp r0, #0
|
|
||||||
bne _08068C66
|
|
||||||
movs r0, #2
|
|
||||||
b _08068C68
|
|
||||||
_08068C66:
|
|
||||||
movs r0, #3
|
|
||||||
_08068C68:
|
|
||||||
strb r0, [r4, #0xe]
|
|
||||||
_08068C6A:
|
|
||||||
pop {r4, r5, pc}
|
|
||||||
|
|
||||||
thumb_func_start sub_08068C6C
|
|
||||||
sub_08068C6C: @ 0x08068C6C
|
|
||||||
push {lr}
|
|
||||||
ldr r1, _08068C88 @ =gUnk_0811162B
|
|
||||||
ldrb r0, [r0, #0xe]
|
|
||||||
adds r0, r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
movs r1, #0x81
|
|
||||||
rsbs r1, r1, #0
|
|
||||||
ands r0, r1
|
|
||||||
movs r1, #0
|
|
||||||
movs r2, #0
|
|
||||||
bl sub_080A7C18
|
|
||||||
pop {pc}
|
|
||||||
.align 2, 0
|
|
||||||
_08068C88: .4byte gUnk_0811162B
|
|
||||||
|
|
||||||
thumb_func_start sub_08068C8C
|
|
||||||
sub_08068C8C: @ 0x08068C8C
|
|
||||||
ldr r2, _08068C9C @ =gUnk_08111638
|
|
||||||
ldrb r0, [r0, #0xe]
|
|
||||||
lsls r0, r0, #2
|
|
||||||
adds r0, r0, r2
|
|
||||||
ldr r0, [r0]
|
|
||||||
str r0, [r1, #0x14]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08068C9C: .4byte gUnk_08111638
|
|
||||||
|
|
||||||
thumb_func_start sub_08068CA0
|
|
||||||
sub_08068CA0: @ 0x08068CA0
|
|
||||||
push {r4, lr}
|
|
||||||
adds r4, r1, #0
|
|
||||||
ldrb r1, [r0, #0xa]
|
|
||||||
cmp r1, #1
|
|
||||||
bne _08068CDC
|
|
||||||
str r1, [r4, #0x14]
|
|
||||||
movs r0, #0x48
|
|
||||||
bl GetInventoryValue
|
|
||||||
cmp r0, #0
|
|
||||||
bne _08068CB8
|
|
||||||
str r0, [r4, #0x14]
|
|
||||||
_08068CB8:
|
|
||||||
movs r0, #0x4b
|
|
||||||
bl GetInventoryValue
|
|
||||||
cmp r0, #0
|
|
||||||
bne _08068CC4
|
|
||||||
str r0, [r4, #0x14]
|
|
||||||
_08068CC4:
|
|
||||||
movs r0, #0x4a
|
|
||||||
bl GetInventoryValue
|
|
||||||
cmp r0, #0
|
|
||||||
bne _08068CD0
|
|
||||||
str r0, [r4, #0x14]
|
|
||||||
_08068CD0:
|
|
||||||
movs r0, #0x4e
|
|
||||||
bl GetInventoryValue
|
|
||||||
cmp r0, #0
|
|
||||||
bne _08068CF6
|
|
||||||
b _08068CF4
|
|
||||||
_08068CDC:
|
|
||||||
ldr r1, _08068CF8 @ =gUnk_0811162B
|
|
||||||
ldrb r0, [r0, #0xe]
|
|
||||||
adds r0, r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
movs r1, #0x81
|
|
||||||
rsbs r1, r1, #0
|
|
||||||
ands r0, r1
|
|
||||||
bl GetInventoryValue
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08068CF4
|
|
||||||
movs r0, #1
|
|
||||||
_08068CF4:
|
|
||||||
str r0, [r4, #0x14]
|
|
||||||
_08068CF6:
|
|
||||||
pop {r4, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_08068CF8: .4byte gUnk_0811162B
|
|
||||||
|
|
||||||
thumb_func_start sub_08068CFC
|
thumb_func_start sub_08068CFC
|
||||||
sub_08068CFC: @ 0x08068CFC
|
sub_08068CFC: @ 0x08068CFC
|
||||||
push {r4, lr}
|
push {r4, lr}
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_08000F10
|
thumb_func_start CheckBits
|
||||||
sub_08000F10: @ 0x08000F10
|
CheckBits: @ 0x08000F10
|
||||||
ldr r3, _08000F50 @ =gUnk_03005E60
|
ldr r3, _08000F50 @ =gUnk_03005E60
|
||||||
bx r3
|
bx r3
|
||||||
|
|
||||||
|
|
|
@ -946,7 +946,7 @@ sub_08017530: @ 0x08017530
|
||||||
beq _08017550
|
beq _08017550
|
||||||
ldr r0, _080175D8 @ =gUnk_020342F8
|
ldr r0, _080175D8 @ =gUnk_020342F8
|
||||||
subs r1, #1
|
subs r1, #1
|
||||||
bl sub_0801D5A8
|
bl ReadBit
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne _08017550
|
bne _08017550
|
||||||
bl DeleteThisEntity
|
bl DeleteThisEntity
|
||||||
|
|
|
@ -1803,8 +1803,8 @@ _0801D5A2:
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0801D5A4: .4byte 0x99999999
|
_0801D5A4: .4byte 0x99999999
|
||||||
|
|
||||||
thumb_func_start sub_0801D5A8
|
thumb_func_start ReadBit
|
||||||
sub_0801D5A8: @ 0x0801D5A8
|
ReadBit: @ 0x0801D5A8
|
||||||
lsrs r2, r1, #3
|
lsrs r2, r1, #3
|
||||||
adds r0, r0, r2
|
adds r0, r0, r2
|
||||||
ldrb r0, [r0]
|
ldrb r0, [r0]
|
||||||
|
|
|
@ -2204,7 +2204,7 @@ CheckKinstoneFused: @ 0x0801E7F4
|
||||||
cmp r0, #0x63
|
cmp r0, #0x63
|
||||||
bhi _0801E80C
|
bhi _0801E80C
|
||||||
ldr r0, _0801E808 @ =gUnk_02002C81
|
ldr r0, _0801E808 @ =gUnk_02002C81
|
||||||
bl sub_0801D5A8
|
bl ReadBit
|
||||||
b _0801E80E
|
b _0801E80E
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0801E808: .4byte gUnk_02002C81
|
_0801E808: .4byte gUnk_02002C81
|
||||||
|
@ -2221,7 +2221,7 @@ sub_0801E810: @ 0x0801E810
|
||||||
cmp r0, #0x63
|
cmp r0, #0x63
|
||||||
bhi _0801E828
|
bhi _0801E828
|
||||||
ldr r0, _0801E824 @ =gUnk_02002C8E
|
ldr r0, _0801E824 @ =gUnk_02002C8E
|
||||||
bl sub_0801D5A8
|
bl ReadBit
|
||||||
b _0801E82A
|
b _0801E82A
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0801E824: .4byte gUnk_02002C8E
|
_0801E824: .4byte gUnk_02002C8E
|
||||||
|
|
|
@ -1394,7 +1394,7 @@ sub_08053178: @ 0x08053178
|
||||||
bne _080531DC
|
bne _080531DC
|
||||||
ldr r0, _080531F4 @ =gUnk_02002AA0
|
ldr r0, _080531F4 @ =gUnk_02002AA0
|
||||||
ldrb r1, [r5, #1]
|
ldrb r1, [r5, #1]
|
||||||
bl sub_0801D5A8
|
bl ReadBit
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne _080531DC
|
bne _080531DC
|
||||||
movs r0, #1
|
movs r0, #1
|
||||||
|
|
|
@ -72,7 +72,7 @@ CheckLocalFlagByOffset: @ 0x0807CB10
|
||||||
ldr r0, _0807CB20 @ =gGlobalFlags
|
ldr r0, _0807CB20 @ =gGlobalFlags
|
||||||
adds r2, r2, r1
|
adds r2, r2, r1
|
||||||
adds r1, r2, #0
|
adds r1, r2, #0
|
||||||
bl sub_0801D5A8
|
bl ReadBit
|
||||||
pop {pc}
|
pop {pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0807CB20: .4byte gGlobalFlags
|
_0807CB20: .4byte gGlobalFlags
|
||||||
|
|
|
@ -4,16 +4,6 @@
|
||||||
.syntax unified
|
.syntax unified
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start CheckRoomFlag
|
|
||||||
CheckRoomFlag: @ 0x0807CC3C
|
|
||||||
push {lr}
|
|
||||||
adds r1, r0, #0
|
|
||||||
ldr r0, _0807CC48 @ =gUnk_02034364
|
|
||||||
bl sub_0801D5A8
|
|
||||||
pop {pc}
|
|
||||||
.align 2, 0
|
|
||||||
_0807CC48: .4byte gUnk_02034364
|
|
||||||
|
|
||||||
thumb_func_start CheckLocalFlagsByOffset
|
thumb_func_start CheckLocalFlagsByOffset
|
||||||
CheckLocalFlagsByOffset: @ 0x0807CC4C
|
CheckLocalFlagsByOffset: @ 0x0807CC4C
|
||||||
|
@ -22,7 +12,7 @@ CheckLocalFlagsByOffset: @ 0x0807CC4C
|
||||||
ldr r0, _0807CC5C @ =gGlobalFlags
|
ldr r0, _0807CC5C @ =gGlobalFlags
|
||||||
adds r3, r3, r1
|
adds r3, r3, r1
|
||||||
adds r1, r3, #0
|
adds r1, r3, #0
|
||||||
bl sub_08000F10
|
bl CheckBits
|
||||||
pop {pc}
|
pop {pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0807CC5C: .4byte gGlobalFlags
|
_0807CC5C: .4byte gGlobalFlags
|
||||||
|
@ -57,7 +47,7 @@ CheckRoomFlags: @ 0x0807CC88
|
||||||
adds r2, r1, #0
|
adds r2, r1, #0
|
||||||
ldr r0, _0807CC98 @ =gUnk_02034364
|
ldr r0, _0807CC98 @ =gUnk_02034364
|
||||||
adds r1, r3, #0
|
adds r1, r3, #0
|
||||||
bl sub_08000F10
|
bl CheckBits
|
||||||
pop {pc}
|
pop {pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0807CC98: .4byte gUnk_02034364
|
_0807CC98: .4byte gUnk_02034364
|
||||||
|
|
|
@ -1758,7 +1758,7 @@ _080A495A:
|
||||||
_080A4962:
|
_080A4962:
|
||||||
adds r0, r3, #0
|
adds r0, r3, #0
|
||||||
adds r0, #0xce
|
adds r0, #0xce
|
||||||
bl sub_0801D5A8
|
bl ReadBit
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _080A4970
|
beq _080A4970
|
||||||
movs r4, #1
|
movs r4, #1
|
||||||
|
|
|
@ -1027,7 +1027,7 @@ _0808837C:
|
||||||
beq _0808839C
|
beq _0808839C
|
||||||
ldr r0, _08088398 @ =gUnk_02002B0E
|
ldr r0, _08088398 @ =gUnk_02002B0E
|
||||||
adds r1, r4, #0
|
adds r1, r4, #0
|
||||||
bl sub_0801D5A8
|
bl ReadBit
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne _0808839C
|
bne _0808839C
|
||||||
movs r5, #1
|
movs r5, #1
|
||||||
|
@ -1059,7 +1059,7 @@ _080883B6:
|
||||||
beq _080883D8
|
beq _080883D8
|
||||||
ldr r0, _080883D4 @ =gUnk_02002B0E
|
ldr r0, _080883D4 @ =gUnk_02002B0E
|
||||||
adds r1, r4, #0
|
adds r1, r4, #0
|
||||||
bl sub_0801D5A8
|
bl ReadBit
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _080883D8
|
beq _080883D8
|
||||||
movs r5, #0
|
movs r5, #0
|
||||||
|
|
|
@ -1844,7 +1844,7 @@ sub_0809584C: @ 0x0809584C
|
||||||
beq _0809586C
|
beq _0809586C
|
||||||
ldr r0, _080958D0 @ =gUnk_020342F8
|
ldr r0, _080958D0 @ =gUnk_020342F8
|
||||||
subs r1, #1
|
subs r1, #1
|
||||||
bl sub_0801D5A8
|
bl ReadBit
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne _0809586C
|
bne _0809586C
|
||||||
bl DeleteThisEntity
|
bl DeleteThisEntity
|
||||||
|
|
|
@ -19,7 +19,7 @@ Pinwheel: @ 0x080A23A0
|
||||||
beq _080A23C0
|
beq _080A23C0
|
||||||
ldr r0, _080A23D4 @ =gUnk_020342F8
|
ldr r0, _080A23D4 @ =gUnk_020342F8
|
||||||
subs r1, #1
|
subs r1, #1
|
||||||
bl sub_0801D5A8
|
bl ReadBit
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne _080A23C0
|
bne _080A23C0
|
||||||
bl DeleteThisEntity
|
bl DeleteThisEntity
|
||||||
|
|
|
@ -197,7 +197,7 @@ _08063896:
|
||||||
_080638A4:
|
_080638A4:
|
||||||
ldr r0, _080638F8 @ =gUnk_02002B0E
|
ldr r0, _080638F8 @ =gUnk_02002B0E
|
||||||
adds r1, r4, #0
|
adds r1, r4, #0
|
||||||
bl sub_0801D5A8
|
bl ReadBit
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _080638B2
|
beq _080638B2
|
||||||
adds r5, #1
|
adds r5, #1
|
||||||
|
|
|
@ -19,7 +19,7 @@ Whirlwind: @ 0x08092CA0
|
||||||
beq _08092CC0
|
beq _08092CC0
|
||||||
ldr r0, _08092CD4 @ =gUnk_020342F8
|
ldr r0, _08092CD4 @ =gUnk_020342F8
|
||||||
subs r1, #1
|
subs r1, #1
|
||||||
bl sub_0801D5A8
|
bl ReadBit
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne _08092CC0
|
bne _08092CC0
|
||||||
bl DeleteThisEntity
|
bl DeleteThisEntity
|
||||||
|
|
|
@ -59,7 +59,7 @@ typedef struct {
|
||||||
u8 quiverType;
|
u8 quiverType;
|
||||||
u8 filler[4];
|
u8 filler[4];
|
||||||
u8 itemOnA;
|
u8 itemOnA;
|
||||||
u8 itemonB;
|
u8 itemOnB;
|
||||||
u8 filler2[10];
|
u8 filler2[10];
|
||||||
u16 rupees;
|
u16 rupees;
|
||||||
u8 filler3[12];
|
u8 filler3[12];
|
||||||
|
|
|
@ -34,15 +34,16 @@ typedef struct {
|
||||||
} RoomControls;
|
} RoomControls;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 filler[6];
|
u8 filler[6];
|
||||||
u8 itemForSaleIndex;
|
u8 itemForSaleIndex;
|
||||||
u16 unk;
|
u16 unk;
|
||||||
u8 unk2;
|
u8 unk2;
|
||||||
u16 filler2[3];
|
u16 filler2[3];
|
||||||
u8 filler3[4];
|
u32 roomFlags;
|
||||||
u8 filler4[52];
|
u32 unk3;
|
||||||
u8 filler5[28];
|
u8 filler4[48];
|
||||||
u32 greatFairyState;
|
u8 filler5[28];
|
||||||
|
u32 greatFairyState;
|
||||||
} RoomVars;
|
} RoomVars;
|
||||||
|
|
||||||
extern RoomControls gRoomControls;
|
extern RoomControls gRoomControls;
|
||||||
|
|
|
@ -581,7 +581,7 @@ SECTIONS {
|
||||||
asm/sub_0807CA18.o(.text);
|
asm/sub_0807CA18.o(.text);
|
||||||
asm/getInventoryValue.o(.text);
|
asm/getInventoryValue.o(.text);
|
||||||
asm/code_0807CAA0.o(.text);
|
asm/code_0807CAA0.o(.text);
|
||||||
src/getProgressFlag.o(.text);
|
src/flags.o(.text);
|
||||||
asm/code_0807CC3C.o(.text);
|
asm/code_0807CC3C.o(.text);
|
||||||
src/room.o(.text);
|
src/room.o(.text);
|
||||||
/* objects */
|
/* objects */
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
|
#include "link.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/*0x00*/ u8 filler[0x2C];
|
/*0x00*/ u8 filler[0x2C];
|
||||||
/*0x2C*/ u8 unk;
|
/*0x2C*/ u8 unk;
|
||||||
} struct_030010A0;
|
} struct_030010A0;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
u8 filler[0xa8];
|
||||||
|
Stats stats;
|
||||||
|
} struct_02002A40;
|
||||||
|
|
||||||
extern void sub_0806ED78(Entity*);
|
extern void sub_0806ED78(Entity*);
|
||||||
extern void sub_08068BEC(Entity*, u32);
|
extern void sub_08068BEC(Entity*, u32);
|
||||||
extern void sub_08078778(Entity*);
|
extern void sub_08078778(Entity*);
|
||||||
|
@ -25,6 +31,13 @@ extern void InitAnimationForceUpdate(Entity*, u32);
|
||||||
extern void sub_0806F118(Entity*);
|
extern void sub_0806F118(Entity*);
|
||||||
extern void sub_0807DD94(Entity*, u32);
|
extern void sub_0807DD94(Entity*, u32);
|
||||||
extern u32 UpdateFuseInteraction();
|
extern u32 UpdateFuseInteraction();
|
||||||
|
extern void ForceEquipItem(u8, u8);
|
||||||
|
extern void sub_0805ED14(u32*);
|
||||||
|
extern Entity* CreateFx(Entity*, u32, u32);
|
||||||
|
extern void PositionRelative(Entity*, Entity*, u32, u32);
|
||||||
|
extern void PlaySFX(u32);
|
||||||
|
extern u32 GetInventoryValue(u32);
|
||||||
|
extern void sub_080A7C18(u32, u32, u32);
|
||||||
|
|
||||||
extern void (*gUnk_081115C0[])(Entity*);
|
extern void (*gUnk_081115C0[])(Entity*);
|
||||||
extern void (*gUnk_081115D0[])(Entity*);
|
extern void (*gUnk_081115D0[])(Entity*);
|
||||||
|
@ -32,6 +45,11 @@ extern void (*gUnk_081115D0[])(Entity*);
|
||||||
extern struct_030010A0 gUnk_030010A0;
|
extern struct_030010A0 gUnk_030010A0;
|
||||||
extern u16 gUnk_081115DC[];
|
extern u16 gUnk_081115DC[];
|
||||||
extern Entity gLinkEntity;
|
extern Entity gLinkEntity;
|
||||||
|
extern u8 gUnk_08111618[];
|
||||||
|
extern u32* gUnk_081115EC[];
|
||||||
|
extern struct_02002A40 gUnk_02002A40;
|
||||||
|
extern u8 gUnk_08111623[];
|
||||||
|
extern u8 gUnk_0811162B[];
|
||||||
|
|
||||||
void sub_080689C0(Entity* this) {
|
void sub_080689C0(Entity* this) {
|
||||||
|
|
||||||
|
@ -140,3 +158,103 @@ void sub_08068B70(Entity* this) {
|
||||||
this->action = 1;
|
this->action = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_08068B84(Entity* this) {
|
||||||
|
u8 p;
|
||||||
|
|
||||||
|
if (gUnk_08111618) {}
|
||||||
|
if (p = this->parameter3, gUnk_08111618[p]) {
|
||||||
|
ForceEquipItem(gUnk_08111618[this->parameter3], 0);
|
||||||
|
}
|
||||||
|
sub_0805ED14(gUnk_081115EC[this->parameter3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08068BB4(Entity* this) {
|
||||||
|
u32 item = gUnk_02002A40.stats.itemOnA;
|
||||||
|
|
||||||
|
this->field_0x69 = item;
|
||||||
|
item = gUnk_02002A40.stats.itemOnB;
|
||||||
|
*(&this->field_0x69 + 1) = item;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08068BD0(Entity* this) {
|
||||||
|
ForceEquipItem(this->field_0x69, 0);
|
||||||
|
ForceEquipItem(*(u8*)(&this->field_0x69 + 1), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08068BEC(Entity* this, u32 unused) {
|
||||||
|
Entity* target;
|
||||||
|
|
||||||
|
target = CreateFx(this, 0x44, 0);
|
||||||
|
if (target) {
|
||||||
|
target->ticks.b0 = 1;
|
||||||
|
PositionRelative(this, target, 0, -0x100000);
|
||||||
|
PlaySFX(0xfa);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08068C28(Entity* this) {
|
||||||
|
u8 bVar1;
|
||||||
|
u32 uVar2;
|
||||||
|
|
||||||
|
this->parameter3 = gUnk_08111623[(this->entityType).parameter1];
|
||||||
|
if ((this->entityType).parameter1 == 1) {
|
||||||
|
if (GetInventoryValue(0x48)) { // spin attack
|
||||||
|
if (!GetInventoryValue(0x4b)) { // rock breaker
|
||||||
|
this->parameter3 = 1;
|
||||||
|
} else {
|
||||||
|
if (!GetInventoryValue(0x4a)) { // dash attack
|
||||||
|
this->parameter3 = 2;
|
||||||
|
} else {
|
||||||
|
this->parameter3 = 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08068C6C(Entity *this)
|
||||||
|
{
|
||||||
|
sub_080A7C18(gUnk_0811162B[this->parameter3] & 0xffffff7f,0,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
#include "global.h"
|
||||||
|
#include "room.h"
|
||||||
|
#include "flags.h"
|
||||||
|
|
||||||
|
u32 extern CheckLocalFlagByOffset(u32, u32);
|
||||||
|
extern u32 ReadBit(u32*, u32);
|
||||||
|
|
||||||
|
u32 CheckGlobalFlag(u32 index) {
|
||||||
|
return CheckLocalFlagByOffset(0, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 CheckRoomFlag(u32 index)
|
||||||
|
{
|
||||||
|
return ReadBit(&gRoomVars.roomFlags, index);
|
||||||
|
}
|
|
@ -1,7 +0,0 @@
|
||||||
#include "global.h"
|
|
||||||
|
|
||||||
u32 extern CheckLocalFlagByOffset(u32, u32);
|
|
||||||
|
|
||||||
u32 CheckGlobalFlag(u32 index) {
|
|
||||||
return CheckLocalFlagByOffset(0, index);
|
|
||||||
}
|
|
Loading…
Reference in New Issue