Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
Z2WolfHowlMgr.h
Go to the documentation of this file.
1#ifndef Z2WOLFHOWLMGR_H
2#define Z2WOLFHOWLMGR_H
3
4#include "JSystem/JAudio2/JASGadget.h"
5#include "JSystem/JAudio2/JAISoundHandles.h"
6
7/*
8 * Z2WolfHowlData
9 * mLineNum: Number of lines/points within the song
10 * mSongData: u16 array which corresponds to each line/point
11 *
12 * The high byte of each u16 line corresponds to bar type (low, middle, high)
13 * The low byte of each u16 line corresponds to length of note
14 */
15
17 u8 type;
19};
20
21#define HOWL_LINE_HIGH 1
22#define HOWL_LINE_MID 2
23#define HOWL_LINE_LOW 3
24
29
44
45class Z2WolfHowlMgr : public JASGlobalInstance<Z2WolfHowlMgr> {
46public:
48
49 void resetState();
50 void calcVolumeMod(f32);
51 f32 getNowPitch();
52 f32 getNowInputValue();
53 void calcPitchMod(f32, f32);
54 s8 startWolfHowlSound(f32, f32 stickValue, bool isHowl, f32);
55 void setCorrectData(s8 curveID, Z2WolfHowlData* data);
56 Z2WolfHowlLine getCorrectLine(u8 lineIndex);
58 s8 checkLine();
59 s8 getOnLineNum();
60 void startWindStoneSound(s8 curveID, Vec* pos);
61 int startGuideMelody(bool startSound);
62 void skipCorrectDemo();
63
64 void setCorrectCurve(s8 curveID) { setCorrectData(curveID, NULL); }
65 u32 getTimer() { return mTimer; }
68
69private:
70 /* 0x00 */ JAISoundHandle mWolfHowlHandle;
71 /* 0x04 */ JAISoundHandle mWindStoneHandle;
72 /* 0x08 */ JAISoundHandle mGuideHandle;
75 /* 0x14 */ f32 mNowInputValue;
76 /* 0x18 */ f32 mWolfHowlVolume;
77 /* 0x1C */ f32 field_0x1c;
78 /* 0x20 */ f32 field_0x20;
79 /* 0x24 */ f32 mNowPitch;
80 /* 0x28 */ f32 field_0x28;
81 /* 0x2C */ u8 field_0x2c[4];
82 /* 0x30 */ f32 field_0x30;
83 /* 0x34 */ f32 field_0x34;
84 /* 0x38 */ f32 field_0x38[10];
85 /* 0x60 */ f32 field_0x60[10];
86 /* 0x88 */ u32 mTimer;
87 /* 0x8C */ u8 mReleaseTimer;
88 /* 0x8D */ u8 field_0x8d;
89 /* 0x8E */ s8 mCorrectCurveID;
90 /* 0x8F */ u8 field_0x8f;
91 /* 0x90 */ s16 mCorrectScore;
92 /* 0x92 */ u16 field_0x92[20];
93 /* 0xBA */ u8 mNowLineIndex;
94 /* 0xBB */ s8 field_0xbb;
95 /* 0xBC */ u8 mNowLineScore;
96 /* 0xBD */ s8 field_0xbd;
97 /* 0xBE */ u16 mFullScore;
98};
99
100#endif /* Z2WOLFHOWLMGR_H */
Z2WolfHowlCurveID
Definition Z2WolfHowlMgr.h:30
@ Z2WOLFHOWL_NEWSONG2
Definition Z2WolfHowlMgr.h:39
@ Z2WOLFHOWL_LIGHTPRELUDE
Definition Z2WolfHowlMgr.h:37
@ Z2WOLFHOWL_HEALINGSONG
Definition Z2WolfHowlMgr.h:35
@ Z2WOLFHOWL_ZELDASONG
Definition Z2WolfHowlMgr.h:34
@ Z2WOLFHOWL_SOULREQUIEM
Definition Z2WolfHowlMgr.h:36
@ Z2WOLFHOWL_NEWSONG1
Definition Z2WolfHowlMgr.h:38
@ Z2WOLFHOWL_NEWSONG3
Definition Z2WolfHowlMgr.h:40
@ Z2WOLFHOWL_TOBIKUSA
Definition Z2WolfHowlMgr.h:32
@ Z2WOLFHOWL_NONE
Definition Z2WolfHowlMgr.h:31
@ Z2WOLFHOWL_MAX
Definition Z2WolfHowlMgr.h:42
@ Z2WOLFHOWL_UMAKUSA
Definition Z2WolfHowlMgr.h:33
Definition Z2WolfHowlMgr.h:45
u16 mFullScore
Definition Z2WolfHowlMgr.h:97
f32 getNowInputValue()
Definition Z2WolfHowlMgr.cpp:205
f32 mNowPitch
Definition Z2WolfHowlMgr.h:79
f32 mNowInputValue
Definition Z2WolfHowlMgr.h:75
s16 mCorrectScore
Definition Z2WolfHowlMgr.h:91
JAISoundHandle mGuideHandle
Definition Z2WolfHowlMgr.h:72
u16 field_0x92[20]
Definition Z2WolfHowlMgr.h:92
Z2WolfHowlMgr()
Definition Z2WolfHowlMgr.cpp:129
u8 field_0x8d
Definition Z2WolfHowlMgr.h:88
u8 getReleaseTimer()
Definition Z2WolfHowlMgr.h:66
f32 field_0x28
Definition Z2WolfHowlMgr.h:80
s8 checkLine()
Definition Z2WolfHowlMgr.cpp:438
f32 field_0x38[10]
Definition Z2WolfHowlMgr.h:84
u8 getCorrectCurveID()
Definition Z2WolfHowlMgr.h:67
s8 field_0xbd
Definition Z2WolfHowlMgr.h:96
f32 mWolfHowlVolume
Definition Z2WolfHowlMgr.h:76
Z2WolfHowlData * mNowHowlData
Definition Z2WolfHowlMgr.h:73
Z2WolfHowlLine getCorrectLine(u8 lineIndex)
Definition Z2WolfHowlMgr.cpp:381
s8 getOnLineNum()
Definition Z2WolfHowlMgr.cpp:509
void resetState()
Definition Z2WolfHowlMgr.cpp:159
f32 field_0x30
Definition Z2WolfHowlMgr.h:82
void setCorrectCurve(s8 curveID)
Definition Z2WolfHowlMgr.h:64
JAISoundHandle mWindStoneHandle
Definition Z2WolfHowlMgr.h:71
u8 mNowLineIndex
Definition Z2WolfHowlMgr.h:93
s8 startWolfHowlSound(f32, f32 stickValue, bool isHowl, f32)
Definition Z2WolfHowlMgr.cpp:257
JAISoundHandle mWolfHowlHandle
Definition Z2WolfHowlMgr.h:70
void setCorrectData(s8 curveID, Z2WolfHowlData *data)
Definition Z2WolfHowlMgr.cpp:306
void startWindStoneSound(s8 curveID, Vec *pos)
Definition Z2WolfHowlMgr.cpp:523
s8 mCorrectCurveID
Definition Z2WolfHowlMgr.h:89
u32 mTimer
Definition Z2WolfHowlMgr.h:86
f32 getNowPitch()
Definition Z2WolfHowlMgr.cpp:197
f32 field_0x34
Definition Z2WolfHowlMgr.h:83
f32 field_0x20
Definition Z2WolfHowlMgr.h:78
f32 field_0x60[10]
Definition Z2WolfHowlMgr.h:85
u8 mReleaseTimer
Definition Z2WolfHowlMgr.h:87
u8 field_0x2c[4]
Definition Z2WolfHowlMgr.h:81
void calcVolumeMod(f32)
Definition Z2WolfHowlMgr.cpp:176
u8 field_0x8f
Definition Z2WolfHowlMgr.h:90
void calcPitchMod(f32, f32)
Definition Z2WolfHowlMgr.cpp:209
int startGuideMelody(bool startSound)
Definition Z2WolfHowlMgr.cpp:558
u8 getCorrectLineNum()
Definition Z2WolfHowlMgr.cpp:394
u32 getTimer()
Definition Z2WolfHowlMgr.h:65
s8 field_0xbb
Definition Z2WolfHowlMgr.h:94
f32 field_0x1c
Definition Z2WolfHowlMgr.h:77
u8 mNowLineScore
Definition Z2WolfHowlMgr.h:95
void skipCorrectDemo()
Definition Z2WolfHowlMgr.cpp:574
Z2WolfHowlData * mGuideData
Definition Z2WolfHowlMgr.h:74
struct Vec Vec
Definition m_Do_lib.h:8
Definition Z2WolfHowlMgr.h:25
u8 lineNum
Definition Z2WolfHowlMgr.h:26
Z2WolfHowlLine * lineData
Definition Z2WolfHowlMgr.h:27
Definition Z2WolfHowlMgr.h:16
u8 type
Definition Z2WolfHowlMgr.h:17
u8 length
Definition Z2WolfHowlMgr.h:18