implement SetColorString

This commit is contained in:
Misha 2023-06-24 21:47:05 +03:00
parent 323a2ee0e7
commit 7ae1c05df9
9 changed files with 86 additions and 6 deletions

5
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,5 @@
{
"files.associations": {
"legovideomanager.h": "c"
}
}

BIN
LEGO1.DLL.idb Normal file

Binary file not shown.

View file

@ -1,7 +1,7 @@
#include "legobackgroundcolor.h" #include "legobackgroundcolor.h"
#include "legoomni.h" #include "legoomni.h"
#include "legoutil.h" #include "legoutil.h"
const char* Delimiter = "\t";
// OFFSET: LEGO1 0x1003bfb0 // OFFSET: LEGO1 0x1003bfb0
LegoBackgroundColor::LegoBackgroundColor(const char* name, const char* colorString) LegoBackgroundColor::LegoBackgroundColor(const char* name, const char* colorString)
{ {
@ -16,5 +16,33 @@ void LegoBackgroundColor::SetColorString(const char* colorString)
{ {
m_colorString.operator=(colorString); m_colorString.operator=(colorString);
m_colorString.ToLowerCase(); m_colorString.ToLowerCase();
// WIP if (colorString == NULL)
{
return;
}
char* colorStringCopy = (char*)malloc(strlen(colorString) + 1);
strcpy(colorStringCopy, colorString);
char* colorStringSplit = strtok(colorStringCopy, Delimiter);
if(!strcmp(colorStringSplit, "set"))
{
//set it
char* red = strtok(0, Delimiter);
if(red)
r = (double)atoi(red)*0.01;
char* blue = strtok(0, Delimiter);
if(blue)
b = (double)atoi(blue)*0.01;
char* green = strtok(0, Delimiter);
if(green)
g = (double)atoi(green)*0.01;
}
else if(!strcmp(colorStringSplit, "reset"))
{
//reset it
float converted_b;
float converted_g;
float converted_r;
ConvertColor(this->r,this->g,this->b,&converted_r,&converted_g,&converted_b);
VideoManager()->SetSkyColor(converted_r,converted_g,converted_b);
}
} }

7
LEGO1/legoutil.cpp Normal file
View file

@ -0,0 +1,7 @@
#include "legoutil.h"
// OFFSET: LEGO1 0x1003eae0
void ConvertColor(float r, float g, float b, float* out_r, float* out_g, float* out_b)
{
// todo
}

View file

@ -6,5 +6,5 @@ inline T Abs(T p_t)
{ {
return p_t < 0 ? -p_t : p_t; return p_t < 0 ? -p_t : p_t;
} }
void ConvertColor(float r, float g, float b, float* out_r, float* out_g, float* out_b);
#endif // LEGOUTIL_H #endif // LEGOUTIL_H

View file

@ -0,0 +1,7 @@
#include "legovideomanager.h"
// OFFSET: LEGO1 0x1007c440
void LegoVideoManager::SetSkyColor(float r, float g, float b)
{
//todo
}

View file

@ -13,6 +13,7 @@ class LegoVideoManager
__declspec(dllexport) void MoveCursor(int x, int y); __declspec(dllexport) void MoveCursor(int x, int y);
inline Lego3DManager *Get3DManager() { return this->m_3dManager; } inline Lego3DManager *Get3DManager() { return this->m_3dManager; }
void SetSkyColor(float r, float g, float b);
int m_unk00; int m_unk00;
int m_unk04; int m_unk04;

View file

@ -12,7 +12,9 @@ class MxBackgroundColor
protected: protected:
MxString m_name; MxString m_name;
MxString m_colorString; MxString m_colorString;
float r;
float g;
float b;
}; };
#endif // MXBACKGROUNDCOLOR_H #endif // MXBACKGROUNDCOLOR_H

View file

@ -145,7 +145,9 @@ LINK32_OBJS= \
"$(INTDIR)\mxvideoparam.obj" \ "$(INTDIR)\mxvideoparam.obj" \
"$(INTDIR)\mxvideoparamflags.obj" \ "$(INTDIR)\mxvideoparamflags.obj" \
"$(INTDIR)\mxbackgroundcolor.obj" \ "$(INTDIR)\mxbackgroundcolor.obj" \
"$(INTDIR)\legobackgroundcolor.obj" "$(INTDIR)\legobackgroundcolor.obj" \
"$(INTDIR)\legoutil.obj" \
"$(INTDIR)\legovideomanager.obj"
".\Release\LEGO1.DLL" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) ".\Release\LEGO1.DLL" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<< $(LINK32) @<<
@ -263,7 +265,9 @@ LINK32_OBJS= \
"$(INTDIR)\mxvideoparam.obj" \ "$(INTDIR)\mxvideoparam.obj" \
"$(INTDIR)\mxvideoparamflags.obj" \ "$(INTDIR)\mxvideoparamflags.obj" \
"$(INTDIR)\mxbackgroundcolor.obj" \ "$(INTDIR)\mxbackgroundcolor.obj" \
"$(INTDIR)\legobackgroundcolor.obj" "$(INTDIR)\legobackgroundcolor.obj" \
"$(INTDIR)\legoutil.obj" \
"$(INTDIR)\legovideomanager.obj"
".\Debug\LEGO1.DLL" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) ".\Debug\LEGO1.DLL" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<< $(LINK32) @<<
@ -847,6 +851,32 @@ DEP_CPP_MXATO=\
$(CPP) $(CPP_PROJ) $(SOURCE) $(CPP) $(CPP_PROJ) $(SOURCE)
# End Source File
################################################################################
# Begin Source File
SOURCE=.\LEGO1\legoutil.cpp
DEP_CPP_MXATO=\
".\LEGO1\legoutil.h"\
"$(INTDIR)\legoutil.obj" : $(SOURCE) $(DEP_CPP_MXATO) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
# End Source File
################################################################################
# Begin Source File
SOURCE=.\LEGO1\legovideomanager.cpp
DEP_CPP_MXATO=\
".\LEGO1\legovideomanager.h"\
"$(INTDIR)\legovideomanager.obj" : $(SOURCE) $(DEP_CPP_MXATO) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
# End Source File # End Source File
# End Target # End Target
################################################################################ ################################################################################