add MxDSObject, implement SetObjectName, adjust MxDSAction

This commit is contained in:
Christian Semmler 2023-06-17 20:12:04 +02:00
parent 36ddb3ea82
commit 5e48942e36
No known key found for this signature in database
GPG Key ID: 086DAA1360BEEE5C
6 changed files with 156 additions and 21 deletions

View File

@ -91,7 +91,7 @@ void Isle::close()
// (*(ViewManager **)(*(int *)(*(int *)(pLVar4 + 0x68) + 8) + 0x88), NULL);
long local_88 = 0;
Lego()->RemoveWorld(ds.m_atomId, local_88);
Lego()->RemoveWorld(ds.GetAtomId(), local_88);
Lego()->vtable24(ds);
TransitionManager()->SetWaitIndicator(NULL);
Lego()->vtable3c();
@ -595,18 +595,18 @@ void Isle::tick(BOOL sleepIfNotNextFrame)
return;
}
ds.m_atomId = stream->atom;
ds.m_unk24 = 0xFFFF;
ds.m_unk1c = 0;
ds.SetAtomId(stream->atom);
ds.SetUnknown24(0xFFFF);
ds.SetUnkown1c(0);
VideoManager()->EnableFullScreenMovie(TRUE, TRUE);
if (Start(&ds) != SUCCESS) {
return;
}
} else {
ds.m_atomId = stream->atom;
ds.m_unk24 = 0xFFFF;
ds.m_unk1c = 0;
ds.SetAtomId(stream->atom);
ds.SetUnknown24(0xFFFF);
ds.SetUnkown1c(0);
if (Start(&ds) != SUCCESS) {
return;
}

View File

@ -1,25 +1,14 @@
#ifndef MXDSACTION_H
#define MXDSACTION_H
#include "mxatomid.h"
#include "mxdsobject.h"
class MxDSAction
class MxDSAction : public MxDSObject
{
public:
__declspec(dllexport) MxDSAction();
__declspec(dllexport) virtual ~MxDSAction();
int m_unk04;
int m_unk08;
int m_unk0c;
int m_unk10;
int m_unk14;
int m_unk18;
int m_unk1c;
MxAtomId m_atomId;
unsigned short m_unk24;
unsigned short m_unk26;
int m_unk28;
int m_unk2c;
int m_unk30;
int m_unk34;

24
LEGO1/mxdsobject.cpp Normal file
View File

@ -0,0 +1,24 @@
#include "mxdsobject.h"
#include <string.h>
#include <stdlib.h>
void MxDSObject::SetObjectName(const char *p_name)
{
if (p_name != this->m_name)
{
free(this->m_name);
if (p_name) {
this->m_name = (char *)malloc(strlen(p_name) + 1);
if (this->m_name) {
strcpy(this->m_name, p_name);
}
}
else {
this->m_name = NULL;
}
}
}

View File

@ -1,10 +1,30 @@
#ifndef MXDSOBJECT_H
#define MXDSOBJECT_H
class MxDSObject
#include "mxcore.h"
#include "mxatomid.h"
class MxDSObject : public MxCore
{
public:
__declspec(dllexport) void SetObjectName(const char *);
inline const MxAtomId& GetAtomId() { return this->m_atomId; }
inline void SetAtomId(MxAtomId p_atomId) { this->m_atomId = p_atomId; }
inline void SetUnkown1c(int p_unk1c) { this->m_unk1c = p_unk1c; }
inline void SetUnknown24(unsigned short p_unk24) { this->m_unk24 = p_unk24; }
private:
int m_unk08;
int m_unk0c;
int m_unk10;
int m_unk14;
char *m_name;
int m_unk1c;
MxAtomId m_atomId;
unsigned short m_unk24;
unsigned short m_unk26;
int m_unk28;
};
#endif // MXDSOBJECT_H

102
isle.mak
View File

@ -60,6 +60,7 @@ CLEAN :
-@erase "$(INTDIR)\mxautolocker.obj"
-@erase "$(INTDIR)\mxcore.obj"
-@erase "$(INTDIR)\mxcriticalsection.obj"
-@erase "$(INTDIR)\mxdsobject.obj"
-@erase "$(INTDIR)\mxomni.obj"
-@erase "$(INTDIR)\mxomnicreateflags.obj"
-@erase "$(INTDIR)\mxomnicreateparam.obj"
@ -131,6 +132,7 @@ LINK32_OBJS= \
"$(INTDIR)\mxautolocker.obj" \
"$(INTDIR)\mxcore.obj" \
"$(INTDIR)\mxcriticalsection.obj" \
"$(INTDIR)\mxdsobject.obj" \
"$(INTDIR)\mxomni.obj" \
"$(INTDIR)\mxomnicreateflags.obj" \
"$(INTDIR)\mxomnicreateparam.obj" \
@ -169,6 +171,7 @@ CLEAN :
-@erase "$(INTDIR)\mxautolocker.obj"
-@erase "$(INTDIR)\mxcore.obj"
-@erase "$(INTDIR)\mxcriticalsection.obj"
-@erase "$(INTDIR)\mxdsobject.obj"
-@erase "$(INTDIR)\mxomni.obj"
-@erase "$(INTDIR)\mxomnicreateflags.obj"
-@erase "$(INTDIR)\mxomnicreateparam.obj"
@ -244,6 +247,7 @@ LINK32_OBJS= \
"$(INTDIR)\mxautolocker.obj" \
"$(INTDIR)\mxcore.obj" \
"$(INTDIR)\mxcriticalsection.obj" \
"$(INTDIR)\mxdsobject.obj" \
"$(INTDIR)\mxomni.obj" \
"$(INTDIR)\mxomnicreateflags.obj" \
"$(INTDIR)\mxomnicreateparam.obj" \
@ -578,10 +582,14 @@ DEP_CPP_MXOMN=\
".\LEGO1\mxomnicreateflags.h"\
".\LEGO1\mxomnicreateparam.h"\
".\LEGO1\mxomnicreateparambase.h"\
".\LEGO1\mxpalette.h"\
".\LEGO1\mxrect32.h"\
".\LEGO1\mxresult.h"\
".\LEGO1\mxstring.h"\
".\LEGO1\mxtimer.h"\
".\LEGO1\mxvariabletable.h"\
".\LEGO1\mxvideoparam.h"\
".\LEGO1\mxvideoparamflags.h"\
"$(INTDIR)\mxomni.obj" : $(SOURCE) $(DEP_CPP_MXOMN) "$(INTDIR)"
@ -594,7 +602,11 @@ DEP_CPP_MXOMN=\
SOURCE=.\LEGO1\mxvideoparam.cpp
DEP_CPP_MXVID=\
".\LEGO1\mxpalette.h"\
".\LEGO1\mxrect32.h"\
".\LEGO1\mxvariabletable.h"\
".\LEGO1\mxvideoparam.h"\
".\LEGO1\mxvideoparamflags.h"\
"$(INTDIR)\mxvideoparam.obj" : $(SOURCE) $(DEP_CPP_MXVID) "$(INTDIR)"
@ -625,8 +637,12 @@ DEP_CPP_MXOMNI=\
".\LEGO1\mxomnicreateflags.h"\
".\LEGO1\mxomnicreateparam.h"\
".\LEGO1\mxomnicreateparambase.h"\
".\LEGO1\mxpalette.h"\
".\LEGO1\mxrect32.h"\
".\LEGO1\mxstring.h"\
".\LEGO1\mxvariabletable.h"\
".\LEGO1\mxvideoparam.h"\
".\LEGO1\mxvideoparamflags.h"\
"$(INTDIR)\mxomnicreateparam.obj" : $(SOURCE) $(DEP_CPP_MXOMNI) "$(INTDIR)"
@ -697,6 +713,22 @@ DEP_CPP_LEGON=\
$(CPP) $(CPP_PROJ) $(SOURCE)
# End Source File
################################################################################
# Begin Source File
SOURCE=.\LEGO1\mxdsobject.cpp
DEP_CPP_MXDSO=\
".\LEGO1\mxatomid.h"\
".\LEGO1\mxbool.h"\
".\LEGO1\mxcore.h"\
".\LEGO1\mxdsobject.h"\
"$(INTDIR)\mxdsobject.obj" : $(SOURCE) $(DEP_CPP_MXDSO) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
# End Source File
# End Target
################################################################################
@ -728,6 +760,9 @@ DEP_CPP_DEFIN=\
# Begin Source File
SOURCE=.\ISLE\isle.cpp
!IF "$(CFG)" == "ISLE - Win32 Release"
DEP_CPP_ISLE_=\
".\ISLE\define.h"\
".\ISLE\isle.h"\
@ -773,11 +808,48 @@ DEP_CPP_ISLE_=\
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "ISLE - Win32 Debug"
DEP_CPP_ISLE_=\
".\ISLE\define.h"\
".\ISLE\isle.h"\
".\ISLE\res\resource.h"\
".\LEGO1\legoomni.h"\
".\LEGO1\mxatomid.h"\
".\LEGO1\mxbackgroundaudiomanager.h"\
".\LEGO1\mxbool.h"\
".\LEGO1\mxcore.h"\
".\LEGO1\mxdirectdraw.h"\
".\LEGO1\mxdsaction.h"\
".\LEGO1\mxdsfile.h"\
".\LEGO1\mxdsobject.h"\
".\LEGO1\mxomni.h"\
".\LEGO1\mxomnicreateflags.h"\
".\LEGO1\mxomnicreateparam.h"\
".\LEGO1\mxomnicreateparambase.h"\
".\LEGO1\mxpalette.h"\
".\LEGO1\mxrect32.h"\
".\LEGO1\mxresult.h"\
".\LEGO1\mxtimer.h"\
".\LEGO1\mxvariabletable.h"\
".\LEGO1\mxvideoparam.h"\
".\LEGO1\mxvideoparamflags.h"\
"$(INTDIR)\isle.obj" : $(SOURCE) $(DEP_CPP_ISLE_) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=.\ISLE\main.cpp
!IF "$(CFG)" == "ISLE - Win32 Release"
DEP_CPP_MAIN_=\
".\ISLE\define.h"\
".\ISLE\isle.h"\
@ -820,6 +892,36 @@ DEP_CPP_MAIN_=\
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "ISLE - Win32 Debug"
DEP_CPP_MAIN_=\
".\ISLE\define.h"\
".\ISLE\isle.h"\
".\LEGO1\legoomni.h"\
".\LEGO1\mxatomid.h"\
".\LEGO1\mxbackgroundaudiomanager.h"\
".\LEGO1\mxbool.h"\
".\LEGO1\mxcore.h"\
".\LEGO1\mxdsaction.h"\
".\LEGO1\mxdsfile.h"\
".\LEGO1\mxdsobject.h"\
".\LEGO1\mxomnicreateflags.h"\
".\LEGO1\mxomnicreateparam.h"\
".\LEGO1\mxomnicreateparambase.h"\
".\LEGO1\mxpalette.h"\
".\LEGO1\mxrect32.h"\
".\LEGO1\mxresult.h"\
".\LEGO1\mxvariabletable.h"\
".\LEGO1\mxvideoparam.h"\
".\LEGO1\mxvideoparamflags.h"\
"$(INTDIR)\main.obj" : $(SOURCE) $(DEP_CPP_MAIN_) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
# End Source File
################################################################################
# Begin Source File

BIN
isle.mdp

Binary file not shown.