mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-21 07:11:16 +00:00
Got vtable18 into a better state
It's progress doesn't affect the status of CopyColorData, which is back at 100%, as it makes sense the loop is a memcpy
This commit is contained in:
parent
8206a7be6a
commit
9ef1f3543b
@ -34,28 +34,21 @@ int MxBitmap::vtable14(int)
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100bcba0
|
||||
int MxBitmap::vtable18(BITMAPINFOHEADER *p_bmiHeader)
|
||||
MxResult MxBitmap::vtable18(BITMAPINFOHEADER *p_bmiHeader)
|
||||
{
|
||||
BITMAPINFO* bmi;
|
||||
LPVOID *data;
|
||||
MxResult result = FAILURE;
|
||||
int height;
|
||||
int width;
|
||||
int width = p_bmiHeader->biWidth;
|
||||
int height = p_bmiHeader->biHeight;
|
||||
BITMAPINFO* bmi = new BITMAPINFO;
|
||||
void *data;
|
||||
|
||||
bmi = new BITMAPINFO;
|
||||
width = p_bmiHeader->biWidth;
|
||||
height = p_bmiHeader->biHeight;
|
||||
this->m_info = bmi;
|
||||
if (bmi != NULL) {
|
||||
data = (LPVOID*) malloc((width + 3U & 0xfffffffc) * height);
|
||||
data = malloc((width + 3U & 0xfffffffc) * height);
|
||||
this->m_data = (LPVOID*) data;
|
||||
if(data != NULL) {
|
||||
bmi = this->m_info;
|
||||
for (width = 0x10a; width != 0; width--) {
|
||||
(bmi->bmiHeader).biSize = p_bmiHeader->biSize;
|
||||
p_bmiHeader = (BITMAPINFOHEADER*)&p_bmiHeader->biWidth;
|
||||
bmi = (BITMAPINFO*)&(bmi->bmiHeader).biWidth;
|
||||
}
|
||||
memcpy(bmi, p_bmiHeader, 0x10a);
|
||||
result = SUCCESS;
|
||||
this->m_bmiHeader = &this->m_info->bmiHeader;
|
||||
this->m_paletteData = this->m_info->bmiColors;
|
||||
|
||||
@ -14,7 +14,7 @@ class MxBitmap : public MxCore
|
||||
__declspec(dllexport) virtual ~MxBitmap(); // vtable+00
|
||||
|
||||
virtual int vtable14(int);
|
||||
virtual int vtable18(BITMAPINFOHEADER *p_bmiHeader);
|
||||
virtual MxResult vtable18(BITMAPINFOHEADER *p_bmiHeader);
|
||||
virtual int vtable1c(int p_width, int p_height, MxPalette *p_palette, int);
|
||||
virtual MxResult LoadFile(HANDLE p_handle);
|
||||
__declspec(dllexport) virtual MxLong Read(const char *p_filename); // vtable+24
|
||||
@ -27,12 +27,12 @@ class MxBitmap : public MxCore
|
||||
virtual MxResult MxBitmap::CopyColorData(HDC p_hdc, int p_xSrc, int p_ySrc, int p_xDest, int p_yDest, int p_destWidth, int p_destHeight); // vtable+40
|
||||
|
||||
private:
|
||||
BITMAPINFO *m_info;
|
||||
BITMAPINFOHEADER *m_bmiHeader;
|
||||
RGBQUAD *m_paletteData;
|
||||
LPVOID *m_data;
|
||||
BITMAPINFO *m_info; // 0x8
|
||||
BITMAPINFOHEADER *m_bmiHeader; // 0xc
|
||||
RGBQUAD *m_paletteData; // 0x10
|
||||
LPVOID *m_data; // 0x14
|
||||
MxBool m_bmiColorsProvided; // 0x18
|
||||
MxPalette *m_palette;
|
||||
MxPalette *m_palette; // 0x1c
|
||||
};
|
||||
|
||||
#endif // MXBITMAP_H
|
||||
|
||||
Loading…
Reference in New Issue
Block a user