mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-24 00:31:16 +00:00
begin work on MxFlcPresenter's m_unk64
This commit is contained in:
parent
106453c9fb
commit
0e6b084b81
36
3rdparty/flic/flic.h
vendored
Normal file
36
3rdparty/flic/flic.h
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
#ifndef FLIC_H
|
||||
#define FLIC_H
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
// A basic FLIC header structure from the "EGI" documentation. Source: https://www.compuphase.com/flic.htm#FLICHEADER
|
||||
// This also goes over the FLIC structures: https://github.com/thinkbeforecoding/nomemalloc.handson/blob/master/flic.txt
|
||||
typedef struct {
|
||||
DWORD size; /* Size of FLIC including this header */
|
||||
WORD type; /* File type 0xAF11, 0xAF12, 0xAF30, 0xAF44, ... */
|
||||
WORD frames; /* Number of frames in first segment */
|
||||
WORD width; /* FLIC width in pixels */
|
||||
WORD height; /* FLIC height in pixels */
|
||||
WORD depth; /* Bits per pixel (usually 8) */
|
||||
WORD flags; /* Set to zero or to three */
|
||||
DWORD speed; /* Delay between frames */
|
||||
WORD reserved1; /* Set to zero */
|
||||
DWORD created; /* Date of FLIC creation (FLC only) */
|
||||
DWORD creator; /* Serial number or compiler id (FLC only) */
|
||||
DWORD updated; /* Date of FLIC update (FLC only) */
|
||||
DWORD updater; /* Serial number (FLC only), see creator */
|
||||
WORD aspect_dx; /* Width of square rectangle (FLC only) */
|
||||
WORD aspect_dy; /* Height of square rectangle (FLC only) */
|
||||
WORD ext_flags; /* EGI: flags for specific EGI extensions */
|
||||
WORD keyframes; /* EGI: key-image frequency */
|
||||
WORD totalframes; /* EGI: total number of frames (segments) */
|
||||
DWORD req_memory; /* EGI: maximum chunk size (uncompressed) */
|
||||
WORD max_regions; /* EGI: max. number of regions in a CHK_REGION chunk */
|
||||
WORD transp_num; /* EGI: number of transparent levels */
|
||||
BYTE reserved2[24]; /* Set to zero */
|
||||
DWORD oframe1; /* Offset to frame 1 (FLC only) */
|
||||
DWORD oframe2; /* Offset to frame 2 (FLC only) */
|
||||
BYTE reserved3[40]; /* Set to zero */
|
||||
} FLIC_HEADER;
|
||||
|
||||
#endif FLIC_H // FLIC_H
|
||||
@ -220,6 +220,8 @@ endif()
|
||||
|
||||
# Additional include directories
|
||||
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/3rdparty/vec")
|
||||
|
||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/flic")
|
||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/smk")
|
||||
|
||||
if (ISLE_USE_SMARTHEAP)
|
||||
|
||||
@ -23,7 +23,17 @@ MxFlcPresenter::~MxFlcPresenter()
|
||||
delete this->m_unk64;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
// OFFSET: LEGO1 0x100b34d0
|
||||
void MxFlcPresenter::vtable60()
|
||||
{
|
||||
if(m_bitmap)
|
||||
delete m_bitmap;
|
||||
|
||||
m_bitmap = new MxBitmap;
|
||||
|
||||
m_bitmap->SetSize(m_unk64->width, m_unk64->height, NULL, FALSE);
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100b3620
|
||||
void MxFlcPresenter::VTable0x70()
|
||||
@ -34,16 +44,3 @@ void MxFlcPresenter::VTable0x70()
|
||||
if (pal)
|
||||
delete pal;
|
||||
}
|
||||
||||||| parent of 679bbcf (MxFlcPresenter: vtable70)
|
||||
=======
|
||||
|
||||
// OFFSET: LEGO1 0x100b3620
|
||||
void MxFlcPresenter::vtable70()
|
||||
{
|
||||
MxPalette* pal = m_bitmap->CreatePalette();
|
||||
MVideoManager()->RealizePalette(pal);
|
||||
if (pal) {
|
||||
delete pal;
|
||||
}
|
||||
}
|
||||
>>>>>>> 679bbcf (MxFlcPresenter: vtable70)
|
||||
|
||||
@ -2,6 +2,9 @@
|
||||
#define MXFLCPRESENTER_H
|
||||
|
||||
#include "decomp.h"
|
||||
|
||||
#include <flic.h>
|
||||
|
||||
#include "mxvideopresenter.h"
|
||||
|
||||
// VTABLE 0x100dc2c0
|
||||
@ -24,11 +27,10 @@ class MxFlcPresenter : public MxVideoPresenter {
|
||||
return "MxFlcPresenter";
|
||||
}
|
||||
|
||||
virtual void vtable60() override; // vtable+0x60
|
||||
virtual void VTable0x70() override; // vtable+0x70
|
||||
|
||||
virtual void vtable70() override; // vtable+0x74
|
||||
|
||||
undefined4* m_unk64;
|
||||
FLIC_HEADER* m_unk64; // 0x64 - what we believe so far. Could be another custom structure like MxSmack.
|
||||
};
|
||||
|
||||
#endif // MXFLCPRESENTER_H
|
||||
|
||||
Loading…
Reference in New Issue
Block a user