Decompile func0f092a98

This commit is contained in:
Ryan Dwyer 2021-01-09 00:41:02 +10:00
parent df3209abfb
commit 66ac44e566
3 changed files with 23 additions and 54 deletions

View File

@ -288,60 +288,26 @@ glabel func0f09294c
/* f092a94: 27bd0050 */ addiu $sp,$sp,0x50
);
GLOBAL_ASM(
glabel func0f092a98
/* f092a98: 3c0f8007 */ lui $t7,%hi(g_AudioChannels)
/* f092a9c: 8defae10 */ lw $t7,%lo(g_AudioChannels)($t7)
/* f092aa0: 00047100 */ sll $t6,$a0,0x4
/* f092aa4: 01c47023 */ subu $t6,$t6,$a0
/* f092aa8: 27bdffe0 */ addiu $sp,$sp,-32
/* f092aac: 000e70c0 */ sll $t6,$t6,0x3
/* f092ab0: afbf0014 */ sw $ra,0x14($sp)
/* f092ab4: 01cf1821 */ addu $v1,$t6,$t7
/* f092ab8: 94780032 */ lhu $t8,0x32($v1)
/* f092abc: 94620030 */ lhu $v0,0x30($v1)
/* f092ac0: 37190080 */ ori $t9,$t8,0x80
/* f092ac4: 30480200 */ andi $t0,$v0,0x200
/* f092ac8: 11000005 */ beqz $t0,.L0f092ae0
/* f092acc: a4790032 */ sh $t9,0x32($v1)
/* f092ad0: 0fc37751 */ jal func0f0ddd44
/* f092ad4: afa3001c */ sw $v1,0x1c($sp)
/* f092ad8: 8fa3001c */ lw $v1,0x1c($sp)
/* f092adc: 94620030 */ lhu $v0,0x30($v1)
.L0f092ae0:
/* f092ae0: 30490008 */ andi $t1,$v0,0x8
/* f092ae4: 51200007 */ beqzl $t1,.L0f092b04
/* f092ae8: 304a0010 */ andi $t2,$v0,0x10
/* f092aec: 8c640050 */ lw $a0,0x50($v1)
/* f092af0: 0fc16af7 */ jal func0f05abdc
/* f092af4: afa3001c */ sw $v1,0x1c($sp)
/* f092af8: 8fa3001c */ lw $v1,0x1c($sp)
/* f092afc: 94620030 */ lhu $v0,0x30($v1)
/* f092b00: 304a0010 */ andi $t2,$v0,0x10
.L0f092b04:
/* f092b04: 51400006 */ beqzl $t2,.L0f092b20
/* f092b08: 8c640000 */ lw $a0,0x0($v1)
/* f092b0c: 0c003ef1 */ jal func0000fbc4
/* f092b10: 84640026 */ lh $a0,0x26($v1)
/* f092b14: 1000000b */ b .L0f092b44
/* f092b18: 8fbf0014 */ lw $ra,0x14($sp)
/* f092b1c: 8c640000 */ lw $a0,0x0($v1)
.L0f092b20:
/* f092b20: 50800008 */ beqzl $a0,.L0f092b44
/* f092b24: 8fbf0014 */ lw $ra,0x14($sp)
/* f092b28: 0c00cdfc */ jal audioIsPlaying
/* f092b2c: afa3001c */ sw $v1,0x1c($sp)
/* f092b30: 10400003 */ beqz $v0,.L0f092b40
/* f092b34: 8fa3001c */ lw $v1,0x1c($sp)
/* f092b38: 0c00cec9 */ jal audioStop
/* f092b3c: 8c640000 */ lw $a0,0x0($v1)
.L0f092b40:
/* f092b40: 8fbf0014 */ lw $ra,0x14($sp)
.L0f092b44:
/* f092b44: 27bd0020 */ addiu $sp,$sp,0x20
/* f092b48: 03e00008 */ jr $ra
/* f092b4c: 00000000 */ nop
);
void func0f092a98(s32 channelnum)
{
struct audiochannel *channel = &g_AudioChannels[channelnum];
channel->unk32 |= 0x80;
if (channel->flags & AUDIOCHANNELFLAG_0200) {
func0f0ddd44(channelnum);
}
if (channel->flags & AUDIOCHANNELFLAG_0008) {
func0f05abdc(channel->prop);
}
if ((channel->flags & AUDIOCHANNELFLAG_0010)) {
func0000fbc4(channel->unk26);
} else if (channel->audiohandle && audioIsPlaying(channel->audiohandle)) {
audioStop(channel->audiohandle);
}
}
GLOBAL_ASM(
glabel func0f092b50

View File

@ -248,8 +248,10 @@
#define AUDIOCHANNELFLAG_IDLE 0x0001
#define AUDIOCHANNELFLAG_0002 0x0002
#define AUDIOCHANNELFLAG_0008 0x0008
#define AUDIOCHANNELFLAG_0010 0x0010
#define AUDIOCHANNELFLAG_0080 0x0080
#define AUDIOCHANNELFLAG_0200 0x0200
#define BANK_0 0
#define BANK_1 1

View File

@ -6692,6 +6692,7 @@ struct audiochannel {
/*0x28*/ s16 unk28;
/*0x2c*/ u32 unk2c;
/*0x30*/ u16 flags;
/*0x32*/ u16 unk32;
/*0x34*/ u32 unk34;
/*0x38*/ u32 unk38;
/*0x3c*/ u32 unk3c;