diff --git a/LEGO1/legoutil.cpp b/LEGO1/legoutil.cpp index fc6bfbe5..bac8f284 100644 --- a/LEGO1/legoutil.cpp +++ b/LEGO1/legoutil.cpp @@ -11,10 +11,13 @@ void ConvertHSVToRGB(float h, float s, float v, float *r_out, float *b_out, floa double v9; double v12; double v13; + + double s_dbl = s; + if (s > 0.5f) calc = (1.0f - v) * s + v; else - calc = (v + 1.0) * s; + calc = (v + 1.0) * s_dbl; if (calc <= 0.0) { *g_out = 0.0f; @@ -22,7 +25,7 @@ void ConvertHSVToRGB(float h, float s, float v, float *r_out, float *b_out, floa *r_out = 0.0f; return; } - p = s * 2.0 - calc; + p = s * 2.0f - calc; hue_index = h * 6.0; v9 = (h * 6.0 - (float)hue_index) * ((calc - p) / calc) * calc; v12 = p + v9; diff --git a/LEGO1/mxdsfile.cpp b/LEGO1/mxdsfile.cpp index d1bd3217..60f8533e 100644 --- a/LEGO1/mxdsfile.cpp +++ b/LEGO1/mxdsfile.cpp @@ -23,16 +23,15 @@ MxDSFile::~MxDSFile() // OFFSET: LEGO1 0x100cc590 MxLong MxDSFile::Open(MxULong uStyle) { - // No idea what's stopping this one matching, but I'm pretty - // confident it has the correct behavior. + MXIOINFO& io = m_io; MxLong longResult = 1; - memset(&m_io, 0, sizeof(MXIOINFO)); + memset(&io, 0, sizeof(MXIOINFO)); - if (m_io.Open(m_filename.GetData(), uStyle) != 0) { + if (io.Open(m_filename.GetData(), uStyle) != 0) { return -1; } - m_io.SetBuffer(NULL, 0, 0); + io.SetBuffer(NULL, 0, 0); m_position = 0; if (m_skipReadingChunks == 0) {