mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-11 18:41:14 +00:00
Squashed commit of the following:
commit a41a442f5aba5fa2f22efc46e66b055f8e99b04e
Author: MishaProductions <106913236+MishaProductions@users.noreply.github.com>
Date: Fri Jun 30 08:10:54 2023 +0300
Update .editorconfig
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
commit 5768cf4a0cf58778cd1265220936081c43c91769
Author: Misha <mishakeys20@gmail.com>
Date: Fri Jun 30 08:04:37 2023 +0300
add legoutil
commit 7d6b00c831d01688749d6cadb8b8ea683d18a52d
Author: Misha <mishakeys20@gmail.com>
Date: Fri Jun 30 08:02:17 2023 +0300
Update CMakeLists.txt
commit d9b49087f8681a858b7d32b38cc937160b5a5ab0
Author: Misha <mishakeys20@gmail.com>
Date: Fri Jun 30 08:01:06 2023 +0300
Update CMakeLists.txt
commit d5a2891965b0e3c992c92e7782c4cc54fc7ae7af
Author: Misha <mishakeys20@gmail.com>
Date: Fri Jun 30 07:59:03 2023 +0300
Update CMakeLists.txt
commit 519253bff43426d2b4cbb916f0fecba8fd677695
Merge: 6cefa2e 13df3f9
Author: Misha <mishakeys20@gmail.com>
Date: Fri Jun 30 07:57:15 2023 +0300
Merge remote-tracking branch 'upstream/master' into legobackgroundcolor
commit 6cefa2e9e259f57033d6e50f9be0af5de6e2df61
Author: Misha <mishakeys20@gmail.com>
Date: Thu Jun 29 16:51:53 2023 +0300
add back stuff to mak file after merge
commit c2b16eb8ff2e99b160bf5d5b75df7960da8f2877
Merge: 3c8add2 07912eb
Author: Misha <mishakeys20@gmail.com>
Date: Thu Jun 29 16:49:51 2023 +0300
Merge remote-tracking branch 'upstream/master' into legobackgroundcolor
commit 3c8add2f1979f1ac2372f06c2025cda4104c2db2
Author: Misha <mishakeys20@gmail.com>
Date: Thu Jun 29 13:34:15 2023 +0300
Update legobackgroundcolor.cpp
commit 6879f30e79caaef23319488b729283cda6f46c25
Author: Misha <mishakeys20@gmail.com>
Date: Wed Jun 28 18:22:35 2023 +0300
add fixme + rename MxStringVariable functions
commit a883f37b9d67c57bc336812bf83ee85c363f8931
Author: Misha <mishakeys20@gmail.com>
Date: Wed Jun 28 18:15:42 2023 +0300
address review
commit a919eeb7f48b31554b8edf499c131f570b1529bf
Author: Misha <mishakeys20@gmail.com>
Date: Wed Jun 28 08:19:45 2023 +0300
Update mxbackgroundcolor.cpp
commit 710c1dd5ea53212c43e1564480f27370f28ca7e4
Author: Misha <mishakeys20@gmail.com>
Date: Wed Jun 28 08:11:13 2023 +0300
add back mak file
commit 25e9bbbfb0d330e70570f59823b2e88f159ad49d
Merge: 78b0e8d 2d9af63
Author: Misha <mishakeys20@gmail.com>
Date: Wed Jun 28 08:09:03 2023 +0300
Merge remote-tracking branch 'upstream/master' into legobackgroundcolor
commit 78b0e8dd625add18ea9a62dcd72a820e1a0beab5
Author: Misha <mishakeys20@gmail.com>
Date: Tue Jun 27 18:35:58 2023 +0300
improve accuracy
commit 4c2e1ca95c4463da20266f61299370fa0ecda9f4
Author: Misha <mishakeys20@gmail.com>
Date: Mon Jun 26 13:50:40 2023 +0300
improve accuracy
commit 7dd3469ca330254e0177c838991b9436bb3c90c2
Author: Misha <mishakeys20@gmail.com>
Date: Mon Jun 26 13:24:11 2023 +0300
ConvertColor wip
commit b0288803a834a9e4f41486bb60c81935b94a4cd2
Merge: 3d16867 0b47f3f
Author: MishaProductions <106913236+MishaProductions@users.noreply.github.com>
Date: Mon Jun 26 09:42:08 2023 +0300
Merge branch 'isledecomp:master' into legobackgroundcolor
commit 3d16867a901862d66aec632e269061c81e7d443d
Author: Misha <mishakeys20@gmail.com>
Date: Sun Jun 25 17:03:14 2023 +0300
90% match
commit 2208573eb2cf73465c2a5b49a63db66dd8f6f841
Author: Misha <mishakeys20@gmail.com>
Date: Sun Jun 25 12:23:47 2023 +0300
improve accuracy + add editorconfig
commit 288f8614281788fd3a19f07a7732b06337253e34
Author: Misha <mishakeys20@gmail.com>
Date: Sun Jun 25 07:57:14 2023 +0300
fix makefile
commit 3590e59a3a9f021b0de3833e80d320238255bc46
Author: Misha <mishakeys20@gmail.com>
Date: Sun Jun 25 07:51:35 2023 +0300
Update isle.mak
commit fb52ad57813214a8af9ef21fdb9ef39005961778
Author: Misha <mishakeys20@gmail.com>
Date: Sun Jun 25 07:47:06 2023 +0300
fix build
commit 791cf1301af1e194025908d8812edaa4faf0f3cf
Merge: b9ecd15 64d2b9e
Author: Misha <mishakeys20@gmail.com>
Date: Sun Jun 25 07:42:09 2023 +0300
Merge remote-tracking branch 'upstream/master' into legobackgroundcolor
commit b9ecd15ca60b6d4c26fe10405e80b08bbf02d62e
Author: Misha <mishakeys20@gmail.com>
Date: Sun Jun 25 07:40:22 2023 +0300
undo change
commit 6327a797bce26c277c21c71e5ec56a446f227aa5
Author: Misha <mishakeys20@gmail.com>
Date: Sat Jun 24 21:48:08 2023 +0300
delete accidently committed files
commit 7ae1c05df962ff64029c3264aaf824801a3055cc
Author: Misha <mishakeys20@gmail.com>
Date: Sat Jun 24 21:47:05 2023 +0300
implement SetColorString
commit 323a2ee0e7a4c767d80535f2f0e3a8036124da05
Author: Misha <mishakeys20@gmail.com>
Date: Sat Jun 24 20:47:03 2023 +0300
constructor and some methods are matching
commit 0ce6fab3d085b2e2e68c95bdff59557c483486fe
Author: Misha <mishakeys20@gmail.com>
Date: Sat Jun 24 20:38:10 2023 +0300
constructor is almost matching
This commit is contained in:
parent
d7b8d6463b
commit
a66dbb8136
7
.editorconfig
Normal file
7
.editorconfig
Normal file
@ -0,0 +1,7 @@
|
||||
root = true
|
||||
[*.{cpp,h,py,txt,editorconfig}]
|
||||
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
@ -50,6 +50,7 @@ add_library(lego1 SHARED
|
||||
LEGO1/legoanimmmpresenter.cpp
|
||||
LEGO1/legoanimpresenter.cpp
|
||||
LEGO1/legobackgroundcolor.cpp
|
||||
LEGO1/legobackgroundcolor.cpp
|
||||
LEGO1/legobuildingmanager.cpp
|
||||
LEGO1/legocachesound.cpp
|
||||
LEGO1/legocameracontroller.cpp
|
||||
@ -80,6 +81,7 @@ add_library(lego1 SHARED
|
||||
LEGO1/legosoundmanager.cpp
|
||||
LEGO1/legostate.cpp
|
||||
LEGO1/legotexturepresenter.cpp
|
||||
LEGO1/legoutil.cpp
|
||||
LEGO1/legovideomanager.cpp
|
||||
LEGO1/legoworld.cpp
|
||||
LEGO1/legoworldpresenter.cpp
|
||||
@ -136,6 +138,7 @@ add_library(lego1 SHARED
|
||||
LEGO1/mxstillpresenter.cpp
|
||||
LEGO1/mxstreamer.cpp
|
||||
LEGO1/mxstring.cpp
|
||||
LEGO1/mxstringvariable.cpp
|
||||
LEGO1/mxtimer.cpp
|
||||
LEGO1/mxtransitionmanager.cpp
|
||||
LEGO1/mxunknown100dc6b0.cpp
|
||||
|
||||
@ -1,7 +1,56 @@
|
||||
#include "legobackgroundcolor.h"
|
||||
|
||||
#include "legoomni.h"
|
||||
#include "legoutil.h"
|
||||
#include "legovideomanager.h"
|
||||
|
||||
const char *Delimiter = "\t";
|
||||
const char *set = "set";
|
||||
const char *reset = "reset";
|
||||
|
||||
// OFFSET: LEGO1 0x1003bfb0
|
||||
LegoBackgroundColor::LegoBackgroundColor(const char *, const char *)
|
||||
LegoBackgroundColor::LegoBackgroundColor(const char *name, const char *colorString)
|
||||
{
|
||||
// TODO
|
||||
m_name = name;
|
||||
m_name.ToUpperCase();
|
||||
SetColorString(colorString);
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1003c070
|
||||
void LegoBackgroundColor::SetColorString(const char *colorString)
|
||||
{
|
||||
m_name = colorString;
|
||||
m_string.ToLowerCase();
|
||||
|
||||
float converted_r;
|
||||
float converted_b;
|
||||
float converted_g;
|
||||
LegoVideoManager *videomanager = VideoManager();
|
||||
|
||||
if (videomanager && colorString)
|
||||
{
|
||||
int length = strlen(colorString) + 1;
|
||||
char *colorStringCopy = new char[length];
|
||||
strcpy(colorStringCopy, colorString);
|
||||
char *colorStringSplit = strtok(colorStringCopy, Delimiter);
|
||||
if (!strcmp(colorStringSplit, set))
|
||||
{
|
||||
char *hue = strtok(0, Delimiter);
|
||||
if (hue)
|
||||
h = atoi(hue) * 0.01;
|
||||
char *sat = strtok(0, Delimiter);
|
||||
if (sat)
|
||||
s = atoi(sat) * 0.01;
|
||||
char *val = strtok(0, Delimiter);
|
||||
if (val)
|
||||
v = atoi(val) * 0.01;
|
||||
}
|
||||
else if (!strcmp(colorStringSplit, reset))
|
||||
{
|
||||
// reset it
|
||||
ConvertHSVToRGB(this->h, this->s, this->v, &converted_r, &converted_g, &converted_b);
|
||||
videomanager->SetSkyColor(converted_r, converted_g, converted_b);
|
||||
}
|
||||
delete[] colorStringCopy;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,17 @@
|
||||
#ifndef LEGOBACKGROUNDCOLOR_H
|
||||
#define LEGOBACKGROUNDCOLOR_H
|
||||
|
||||
class LegoBackgroundColor
|
||||
#include "mxstring.h"
|
||||
#include "mxcore.h"
|
||||
#include "MxStringVariable.h"
|
||||
class LegoBackgroundColor : public MxStringVariable
|
||||
{
|
||||
public:
|
||||
__declspec(dllexport) LegoBackgroundColor(const char *, const char *);
|
||||
void SetColorString(const char *colorString);
|
||||
protected:
|
||||
float h;
|
||||
float s;
|
||||
float v;
|
||||
};
|
||||
|
||||
#endif // LEGOBACKGROUNDCOLOR_H
|
||||
|
||||
68
LEGO1/legoutil.cpp
Normal file
68
LEGO1/legoutil.cpp
Normal file
@ -0,0 +1,68 @@
|
||||
#include "legoutil.h"
|
||||
|
||||
// OFFSET: LEGO1 0x1003eae0
|
||||
void ConvertHSVToRGB(float h, float s, float v, float *r_out, float *b_out, float *g_out)
|
||||
{
|
||||
double calc;
|
||||
double p;
|
||||
long hue_index;
|
||||
double v9;
|
||||
double v12;
|
||||
double v13;
|
||||
if (s > 0.5f)
|
||||
calc = (1.0f - v) * s + v;
|
||||
else
|
||||
calc = (v + 1.0) * s;
|
||||
if (calc <= 0.0)
|
||||
{
|
||||
*g_out = 0.0f;
|
||||
*b_out = 0.0f;
|
||||
*r_out = 0.0f;
|
||||
return;
|
||||
}
|
||||
p = s * 2.0 - calc;
|
||||
hue_index = h * 6.0;
|
||||
v9 = (h * 6.0 - (float)hue_index) * ((calc - p) / calc) * calc;
|
||||
v12 = p + v9;
|
||||
v13 = calc - v9;
|
||||
switch (hue_index)
|
||||
{
|
||||
case 0:
|
||||
*r_out = calc;
|
||||
*b_out = v12;
|
||||
*g_out = p;
|
||||
break;
|
||||
case 1:
|
||||
*r_out = v13;
|
||||
*b_out = calc;
|
||||
*g_out = p;
|
||||
break;
|
||||
case 2:
|
||||
*r_out = p;
|
||||
*b_out = calc;
|
||||
*g_out = v12;
|
||||
break;
|
||||
case 3:
|
||||
*r_out = p;
|
||||
*b_out = v13;
|
||||
*g_out = calc;
|
||||
break;
|
||||
case 4:
|
||||
*r_out = v12;
|
||||
*b_out = p;
|
||||
*g_out = calc;
|
||||
break;
|
||||
case 5:
|
||||
*r_out = calc;
|
||||
*b_out = p;
|
||||
*g_out = v13;
|
||||
break;
|
||||
case 6:
|
||||
*r_out = calc;
|
||||
*b_out = p;
|
||||
*g_out = v13;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -19,4 +19,6 @@ inline T Max(T p_t1, T p_t2)
|
||||
return p_t1 > p_t2 ? p_t1 : p_t2;
|
||||
}
|
||||
|
||||
void ConvertHSVToRGB(float r, float g, float b, float* out_r, float* out_g, float* out_b);
|
||||
|
||||
#endif // LEGOUTIL_H
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
#include "legovideomanager.h"
|
||||
#include <ddraw.h>
|
||||
|
||||
// OFFSET: LEGO1 0x1007aa20 STUB
|
||||
LegoVideoManager::LegoVideoManager()
|
||||
@ -37,3 +38,15 @@ void LegoVideoManager::MoveCursor(int x, int y)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1007c440
|
||||
void LegoVideoManager::SetSkyColor(float red, float green, float blue)
|
||||
{
|
||||
PALETTEENTRY colorStrucure; // [esp+0h] [ebp-4h] BYREF
|
||||
|
||||
colorStrucure.peRed = (red* 255.0);
|
||||
colorStrucure.peGreen = (green * 255.0);
|
||||
colorStrucure.peBlue = (blue * 255.0);
|
||||
colorStrucure.peFlags = -124;
|
||||
// TODO
|
||||
}
|
||||
|
||||
@ -18,6 +18,7 @@ class LegoVideoManager : public MxVideoManager
|
||||
__declspec(dllexport) void MoveCursor(int x, int y);
|
||||
|
||||
inline Lego3DManager *Get3DManager() { return this->m_3dManager; }
|
||||
void SetSkyColor(float r, float g, float b);
|
||||
|
||||
int m_unk64;
|
||||
Lego3DManager *m_3dManager;
|
||||
|
||||
23
LEGO1/mxstringvariable.cpp
Normal file
23
LEGO1/mxstringvariable.cpp
Normal file
@ -0,0 +1,23 @@
|
||||
#include "MxStringVariable.h"
|
||||
#include "mxstring.h"
|
||||
|
||||
//FIXME: Figure out what exactly this class is used for. It is used in LegoGameState::LegoGameState when loading the background color, and for loading the "fsmovie" variable
|
||||
// OFFSET: LEGO1 0x1003bec0
|
||||
MxStringVariable::~MxStringVariable()
|
||||
{
|
||||
|
||||
delete &m_string;
|
||||
delete &m_name;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1003bea0
|
||||
MxString *MxStringVariable::GetString()
|
||||
{
|
||||
return &m_string;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1003beb0
|
||||
void MxStringVariable::SetString(const char *colorString)
|
||||
{
|
||||
m_string = colorString;
|
||||
}
|
||||
20
LEGO1/mxstringvariable.h
Normal file
20
LEGO1/mxstringvariable.h
Normal file
@ -0,0 +1,20 @@
|
||||
#ifndef MXSTRINGVARIABLE_H
|
||||
#define MXSTRINGVARIABLE_H
|
||||
#include "mxstring.h"
|
||||
#include "mxcore.h"
|
||||
//VTABLE: 0x100d74a8
|
||||
class MxStringVariable
|
||||
{
|
||||
public:
|
||||
__declspec(dllexport) MxStringVariable(const char *, const char *);
|
||||
MxStringVariable() {}
|
||||
virtual MxString *GetString();
|
||||
virtual void SetString(const char *colorString);
|
||||
virtual ~MxStringVariable();
|
||||
|
||||
protected:
|
||||
MxString m_name;
|
||||
MxString m_string;
|
||||
};
|
||||
|
||||
#endif // MXSTRINGVARIABLE_H
|
||||
Loading…
Reference in New Issue
Block a user