mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-28 02:31:15 +00:00
Match ParseExtra functions
This commit is contained in:
parent
ff04b0ba5a
commit
83473472c9
@ -57,6 +57,12 @@ class MxDSAction : public MxDSObject {
|
|||||||
|
|
||||||
void AppendData(MxU16 p_extraLength, const char* p_extraData);
|
void AppendData(MxU16 p_extraLength, const char* p_extraData);
|
||||||
|
|
||||||
|
inline void GetExtra(MxU16& p_extraLength, char*& p_extraData)
|
||||||
|
{
|
||||||
|
p_extraLength = m_extraLength;
|
||||||
|
p_extraData = m_extraData;
|
||||||
|
}
|
||||||
|
|
||||||
inline MxU32 GetFlags() { return m_flags; }
|
inline MxU32 GetFlags() { return m_flags; }
|
||||||
inline void SetFlags(MxU32 p_flags) { m_flags = p_flags; }
|
inline void SetFlags(MxU32 p_flags) { m_flags = p_flags; }
|
||||||
inline char* GetExtraData() { return m_extraData; }
|
inline char* GetExtraData() { return m_extraData; }
|
||||||
|
|||||||
@ -322,16 +322,16 @@ void MxWavePresenter::Enable(MxBool p_enable)
|
|||||||
// FUNCTION: LEGO1 0x100b23a0
|
// FUNCTION: LEGO1 0x100b23a0
|
||||||
void MxWavePresenter::ParseExtra()
|
void MxWavePresenter::ParseExtra()
|
||||||
{
|
{
|
||||||
char extraCopy[512];
|
|
||||||
|
|
||||||
MxSoundPresenter::ParseExtra();
|
MxSoundPresenter::ParseExtra();
|
||||||
*((MxU16*) &extraCopy[0]) = m_action->GetExtraLength();
|
|
||||||
char* extraData = m_action->GetExtraData();
|
|
||||||
|
|
||||||
if (*((MxU16*) &extraCopy[0])) {
|
MxU16 extraLength;
|
||||||
MxU16 len = *((MxU16*) &extraCopy[0]);
|
char* extraData;
|
||||||
memcpy(extraCopy, extraData, len);
|
m_action->GetExtra(extraLength, extraData);
|
||||||
extraCopy[len] = '\0';
|
|
||||||
|
if (extraLength & MAXWORD) {
|
||||||
|
char extraCopy[512];
|
||||||
|
memcpy(extraCopy, extraData, extraLength & MAXWORD);
|
||||||
|
extraCopy[extraLength & MAXWORD] = '\0';
|
||||||
|
|
||||||
char soundValue[512];
|
char soundValue[512];
|
||||||
if (KeyValueStringParse(soundValue, g_strSOUND, extraCopy)) {
|
if (KeyValueStringParse(soundValue, g_strSOUND, extraCopy)) {
|
||||||
|
|||||||
@ -78,14 +78,15 @@ void MxPresenter::EndAction()
|
|||||||
void MxPresenter::ParseExtra()
|
void MxPresenter::ParseExtra()
|
||||||
{
|
{
|
||||||
MxAutoLocker lock(&m_criticalSection);
|
MxAutoLocker lock(&m_criticalSection);
|
||||||
MxU16 len = m_action->GetExtraLength();
|
|
||||||
char* extraData = m_action->GetExtraData();
|
|
||||||
|
|
||||||
if (len) {
|
MxU16 extraLength;
|
||||||
// len &= MAXWORD;
|
char* extraData;
|
||||||
|
m_action->GetExtra(extraLength, extraData);
|
||||||
|
|
||||||
|
if (extraLength & MAXWORD) {
|
||||||
char extraCopy[512];
|
char extraCopy[512];
|
||||||
memcpy(extraCopy, extraData, len);
|
memcpy(extraCopy, extraData, extraLength & MAXWORD);
|
||||||
extraCopy[len] = '\0';
|
extraCopy[extraLength & MAXWORD] = '\0';
|
||||||
|
|
||||||
char worldValue[512];
|
char worldValue[512];
|
||||||
if (KeyValueStringParse(worldValue, g_strWORLD, extraCopy)) {
|
if (KeyValueStringParse(worldValue, g_strWORLD, extraCopy)) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user