mirror of
https://github.com/zeldaret/ss
synced 2026-05-27 08:08:07 -04:00
70 lines
2.1 KiB
C++
70 lines
2.1 KiB
C++
#ifndef D_SND_SOURCE_PLAYER_HEAD_H
|
|
#define D_SND_SOURCE_PLAYER_HEAD_H
|
|
|
|
#include "common.h"
|
|
#include "d/snd/d_snd_rng_link_voice.h"
|
|
#include "d/snd/d_snd_source.h"
|
|
#include "nw4r/snd/snd_SoundHandle.h"
|
|
|
|
class dSndSourcePlayerHead_c : public dSoundSource_c {
|
|
public:
|
|
dSndSourcePlayerHead_c(s32 sourceType, dAcBase_c *ac, const char *name, dSndSourceGroup_c *pOwnerGroup);
|
|
|
|
bool startVoiceSoundInternal(u32 id);
|
|
|
|
/* 0x0D4 */ virtual bool startVoiceLine(u32 id) override;
|
|
|
|
/* 0x0E0 */ virtual void stopCurrentActionSound() override {
|
|
mSoundHandle.Stop(2);
|
|
field_0x22A0 = SND_LV_MAX;
|
|
}
|
|
/* 0x0E4 */ virtual void stopActionSound(u32 id) override {
|
|
if (isCurrentActionSound(id)) {
|
|
stopCurrentActionSound();
|
|
}
|
|
}
|
|
/* 0x0E8 */ virtual bool isPlayingActionSound() const override {
|
|
return mSoundHandle.IsAttachedSound();
|
|
}
|
|
/* 0x0EC */ virtual bool isCurrentActionSound(u32 id) const override {
|
|
return isPlayingActionSound() && id == mLastPlayedSound;
|
|
}
|
|
|
|
// TODO - some of these might not be inlines. It's probably possible to implement them
|
|
// as not inlines in the source file for the correct order, but maybe when we figure out how
|
|
// to fix the order in d_snd_source_mgr we might also be able to fix it here that way.
|
|
|
|
/* 0x0D8 */ virtual bool startVoiceLine(const char *label) override {
|
|
return false;
|
|
}
|
|
|
|
/* 0x184 */ virtual void preCalc() override {}
|
|
|
|
/* 0x194 */ virtual u32 overrideStartSoundId(u32 soundId) override {
|
|
return soundId;
|
|
}
|
|
|
|
/* 0x1EC */ virtual bool d_vt_0x30() override {
|
|
return false;
|
|
}
|
|
|
|
/* 0x1F0 */ virtual bool vt_1F0() {
|
|
return false;
|
|
}
|
|
|
|
/* 0x1F4 */ virtual UNKWORD d_vt_0x3C() override {
|
|
return 1;
|
|
}
|
|
|
|
private:
|
|
void configureVoiceRngs();
|
|
|
|
/* 0x015C */ u8 _0x015C[0x0160 - 0x015C];
|
|
/* 0x0160 */ dSndRngLinkVoice_c mLinkVoiceRngs[SND_LV_MAX];
|
|
/* 0x22A0 */ u32 field_0x22A0;
|
|
/* 0x22A4 */ s32 mLastPlayedSound;
|
|
/* 0x22A8 */ nw4r::snd::SoundHandle mSoundHandle;
|
|
};
|
|
|
|
#endif
|