mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-05-24 15:00:55 -04:00
aed8fe8cd3
* Fix clang union handling (affects all TUs including d_camera.h) Union members with non-trivial ctors/dtors is undefined behavior and clangd normally throws a fit and refuses to parse the whole union, but it seems to be possible to ifdef the problematic ctors out for non-mwerks compilers and explicitly tell modern compilers to use the defaults instead. Thanks to encounter for this fix. * Link all TUs that already match on debug In order to link TUs for debug, most functions seem to need to have their alignment set to 16 in symbols.txt. There are a few hundred functions that seem to be the exception and break when their alignment is set to 16, but I don't know the reason for this. * Remove some fakematches (nosyminline/sym off) for weak func order in retail * Fix clang not knowing that MSL_C++ is C++ * Link more debug TUs * Fix missing PAL split * Fix wrong slashes being used in includes * RZDE01_00: Fix incorrect capitalization in config.yml * Add RZDE01_00 to configure task * Revert configure.py to use MatchingFor * Fix PAL splits and symbols, link matching PAL TUs
55 lines
1.7 KiB
C
55 lines
1.7 KiB
C
#ifndef Z2SPEECHMGR2_H
|
|
#define Z2SPEECHMGR2_H
|
|
|
|
#include "JSystem/JAudio2/JAISoundHandles.h"
|
|
#include "JSystem/JMath/random.h"
|
|
#include "Z2AudioLib/Z2SoundStarter.h"
|
|
|
|
struct Z2SpeechStarter : public Z2SoundStarter {
|
|
/* 802CCFB8 */ Z2SpeechStarter();
|
|
|
|
/* 802CCFF8 */ virtual bool startSound(JAISoundID, JAISoundHandle*,
|
|
JGeometry::TVec3<f32> const*, u32, f32, f32, f32, f32,
|
|
f32, u32);
|
|
};
|
|
|
|
// Only here for instance sub. No known code.
|
|
struct Z2SpeechMgr : public JASGlobalInstance<Z2SpeechMgr> {
|
|
};
|
|
|
|
struct Z2SpeechMgr2 : public JASGlobalInstance<Z2SpeechMgr2> {
|
|
/* 802CBC60 */ Z2SpeechMgr2();
|
|
~Z2SpeechMgr2() {}
|
|
/* 802CBD88 */ void setString(u16 const*, s16, u8, u16);
|
|
/* 802CBF60 */ void setTextCount(s16);
|
|
/* 802CC190 */ void speakOneWord(bool);
|
|
/* 802CC2FC */ bool isNonVerbal();
|
|
/* 802CC4C0 */ void selectUnit(bool);
|
|
/* 802CC738 */ void selectTail();
|
|
/* 802CC9D0 */ void framework();
|
|
/* 802CCA18 */ void playOneShotVoice(u8, u16, Vec*, s8);
|
|
/* 802CCF88 */ bool isMidnaSpeak();
|
|
|
|
/* 0x000 */ JAISoundHandle field_0x0;
|
|
/* 0x004 */ JAISoundHandle field_0x4;
|
|
/* 0x008 */ JMath::TRandom_<JMath::TRandom_fast_> random;
|
|
/* 0x00C */ Z2SpeechStarter mSpeech;
|
|
/* 0x010 */ u16 mText[500];
|
|
/* 0x3F8 */ s16 mTextNum;
|
|
/* 0x3FA */ s16 mTextCount;
|
|
/* 0x3FC */ u16 mMood;
|
|
/* 0x3FE */ u8 mVoice;
|
|
/* 0x3FF */ u8 field_0x3ff;
|
|
/* 0x400 */ u8 field_0x400;
|
|
/* 0x401 */ u8 field_0x401;
|
|
/* 0x402 */ s8 field_0x402[64];
|
|
}; // Size: 0x444
|
|
|
|
STATIC_ASSERT(sizeof(Z2SpeechMgr2) == 0x444);
|
|
|
|
inline Z2SpeechMgr2* Z2GetSpeechMgr2() {
|
|
return Z2SpeechMgr2::getInstance();
|
|
}
|
|
|
|
#endif /* Z2SPEECHMGR2_H */
|