summaryrefslogtreecommitdiff
path: root/asm/nw4r/snd/snd_SoundHandle.s
blob: 1406dd49c2a9e28caa9c9ad49234df06a98b89a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global detail_AttachSoundAsTempHandle__Q34nw4r3snd11SoundHandleFPQ44nw4r3snd6detail10BasicSound
detail_AttachSoundAsTempHandle__Q34nw4r3snd11SoundHandleFPQ44nw4r3snd6detail10BasicSound:
/* 8037A924 00376584  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8037A928 00376588  7C 08 02 A6 */	mflr r0
/* 8037A92C 0037658C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8037A930 00376590  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8037A934 00376594  7C 7F 1B 78 */	mr r31, r3
/* 8037A938 00376598  90 83 00 00 */	stw r4, 0(r3)
/* 8037A93C 0037659C  7C 83 23 78 */	mr r3, r4
/* 8037A940 003765A0  4B FF 37 A1 */	bl IsAttachedTempGeneralHandle__Q44nw4r3snd6detail10BasicSoundFv
/* 8037A944 003765A4  2C 03 00 00 */	cmpwi r3, 0
/* 8037A948 003765A8  41 82 00 0C */	beq lbl_8037A954
/* 8037A94C 003765AC  80 7F 00 00 */	lwz r3, 0(r31)
/* 8037A950 003765B0  4B FF 37 AD */	bl DetachTempGeneralHandle__Q44nw4r3snd6detail10BasicSoundFv
lbl_8037A954:
/* 8037A954 003765B4  80 7F 00 00 */	lwz r3, 0(r31)
/* 8037A958 003765B8  81 83 00 00 */	lwz r12, 0(r3)
/* 8037A95C 003765BC  81 8C 00 5C */	lwz r12, 0x5c(r12)
/* 8037A960 003765C0  7D 89 03 A6 */	mtctr r12
/* 8037A964 003765C4  4E 80 04 21 */	bctrl
/* 8037A968 003765C8  2C 03 00 00 */	cmpwi r3, 0
/* 8037A96C 003765CC  41 82 00 18 */	beq lbl_8037A984
/* 8037A970 003765D0  80 7F 00 00 */	lwz r3, 0(r31)
/* 8037A974 003765D4  81 83 00 00 */	lwz r12, 0(r3)
/* 8037A978 003765D8  81 8C 00 60 */	lwz r12, 0x60(r12)
/* 8037A97C 003765DC  7D 89 03 A6 */	mtctr r12
/* 8037A980 003765E0  4E 80 04 21 */	bctrl
lbl_8037A984:
/* 8037A984 003765E4  80 7F 00 00 */	lwz r3, 0(r31)
/* 8037A988 003765E8  93 E3 00 0C */	stw r31, 0xc(r3)
/* 8037A98C 003765EC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8037A990 003765F0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8037A994 003765F4  7C 08 03 A6 */	mtlr r0
/* 8037A998 003765F8  38 21 00 10 */	addi r1, r1, 0x10
/* 8037A99C 003765FC  4E 80 00 20 */	blr

.global detail_AttachSound__Q34nw4r3snd11SoundHandleFPQ44nw4r3snd6detail10BasicSound
detail_AttachSound__Q34nw4r3snd11SoundHandleFPQ44nw4r3snd6detail10BasicSound:
/* 8037A9A0 00376600  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8037A9A4 00376604  7C 08 02 A6 */	mflr r0
/* 8037A9A8 00376608  90 01 00 14 */	stw r0, 0x14(r1)
/* 8037A9AC 0037660C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8037A9B0 00376610  7C 7F 1B 78 */	mr r31, r3
/* 8037A9B4 00376614  90 83 00 00 */	stw r4, 0(r3)
/* 8037A9B8 00376618  7C 83 23 78 */	mr r3, r4
/* 8037A9BC 0037661C  4B FF 37 11 */	bl IsAttachedGeneralHandle__Q44nw4r3snd6detail10BasicSoundFv
/* 8037A9C0 00376620  2C 03 00 00 */	cmpwi r3, 0
/* 8037A9C4 00376624  41 82 00 0C */	beq lbl_8037A9D0
/* 8037A9C8 00376628  80 7F 00 00 */	lwz r3, 0(r31)
/* 8037A9CC 0037662C  4B FF 37 29 */	bl DetachGeneralHandle__Q44nw4r3snd6detail10BasicSoundFv
lbl_8037A9D0:
/* 8037A9D0 00376630  80 7F 00 00 */	lwz r3, 0(r31)
/* 8037A9D4 00376634  93 E3 00 08 */	stw r31, 8(r3)
/* 8037A9D8 00376638  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8037A9DC 0037663C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8037A9E0 00376640  7C 08 03 A6 */	mtlr r0
/* 8037A9E4 00376644  38 21 00 10 */	addi r1, r1, 0x10
/* 8037A9E8 00376648  4E 80 00 20 */	blr

.global DetachSound__Q34nw4r3snd11SoundHandleFv
DetachSound__Q34nw4r3snd11SoundHandleFv:
/* 8037A9EC 0037664C  80 83 00 00 */	lwz r4, 0(r3)
/* 8037A9F0 00376650  2C 04 00 00 */	cmpwi r4, 0
/* 8037A9F4 00376654  41 82 00 30 */	beq lbl_8037AA24
/* 8037A9F8 00376658  80 04 00 08 */	lwz r0, 8(r4)
/* 8037A9FC 0037665C  7C 00 18 40 */	cmplw r0, r3
/* 8037AA00 00376660  40 82 00 0C */	bne lbl_8037AA0C
/* 8037AA04 00376664  38 00 00 00 */	li r0, 0
/* 8037AA08 00376668  90 04 00 08 */	stw r0, 8(r4)
lbl_8037AA0C:
/* 8037AA0C 0037666C  80 83 00 00 */	lwz r4, 0(r3)
/* 8037AA10 00376670  80 04 00 0C */	lwz r0, 0xc(r4)
/* 8037AA14 00376674  7C 00 18 40 */	cmplw r0, r3
/* 8037AA18 00376678  40 82 00 0C */	bne lbl_8037AA24
/* 8037AA1C 0037667C  38 00 00 00 */	li r0, 0
/* 8037AA20 00376680  90 04 00 0C */	stw r0, 0xc(r4)
lbl_8037AA24:
/* 8037AA24 00376684  80 03 00 00 */	lwz r0, 0(r3)
/* 8037AA28 00376688  2C 00 00 00 */	cmpwi r0, 0
/* 8037AA2C 0037668C  4D 82 00 20 */	beqlr
/* 8037AA30 00376690  38 00 00 00 */	li r0, 0
/* 8037AA34 00376694  90 03 00 00 */	stw r0, 0(r3)
/* 8037AA38 00376698  4E 80 00 20 */	blr