Isle
Loading...
Searching...
No Matches
mxtransitionmanager.h
Go to the documentation of this file.
1#ifndef MXTRANSITIONMANAGER_H
2#define MXTRANSITIONMANAGER_H
3
4#include "decomp.h"
5#include "mxcore.h"
6
7#include <ddraw.h>
8
10
14public:
17
19 ~MxTransitionManager() override; // vtable+0x00
20
23 void SetWaitIndicator(MxVideoPresenter* p_waitIndicator);
24
27 MxResult Tickle() override; // vtable+0x08
28
31 const char* ClassName() const override // vtable+0x0c
32 {
33 return "MxTransitionManager";
34 }
35
39 MxBool IsA(const char* p_name) const override // vtable+0x10
40 {
41 return !strcmp(p_name, MxTransitionManager::ClassName()) || MxCore::IsA(p_name);
42 }
43
46 virtual MxResult GetDDrawSurfaceFromVideoManager(); // vtable+0x14
47
50 e_idle = 0,
57 };
58
65 MxResult StartTransition(TransitionType p_animationType, MxS32 p_speed, MxBool p_doCopy, MxBool p_playMusicInAnim);
66
68 TransitionType GetTransitionType() { return m_mode; }
69
70 // SYNTHETIC: LEGO1 0x1004b9e0
71 // MxTransitionManager::`scalar deleting destructor'
72
73private:
76 void EndTransition(MxBool p_notifyWorld);
77
79 void NoTransition();
80
82 void DissolveTransition();
83
85 void MosaicTransition();
86
88 void WipeDownTransition();
89
91 void WindowsTransition();
92
94 void BrokenTransition();
95
98 void SubmitCopyRect(LPDDSURFACEDESC p_ddsc);
99
102 void SetupCopyRect(LPDDSURFACEDESC p_ddsc);
103
104 MxVideoPresenter* m_waitIndicator;
105 RECT m_copyRect;
106 MxU8* m_copyBuffer;
107 FlagBitfield m_copyFlags;
108 undefined4 m_unk0x24;
109 FlagBitfield m_unk0x28;
110
111 TransitionType m_mode;
112
113 LPDIRECTDRAWSURFACE m_ddSurface;
114 MxU16 m_animationTimer;
115 MxU16 m_columnOrder[640];
116 MxU16 m_randomShift[480];
117 MxULong m_systemTime;
118 MxS32 m_animationSpeed;
119};
120
121#endif // MXTRANSITIONMANAGER_H
[AI] Base virtual class for all Mindscape engine (Mx) objects.
Definition: mxcore.h:15
virtual MxBool IsA(const char *p_name) const
[AI] Checks whether this object's class type or parents match the given name.
Definition: mxcore.h:46
[AI] Handles screen transitions and animations (such as dissolve, mosaic, wipe, etc....
MxResult Tickle() override
[AI] Performs per-frame advancement of the current transition animation, advancing its state if neces...
MxResult StartTransition(TransitionType p_animationType, MxS32 p_speed, MxBool p_doCopy, MxBool p_playMusicInAnim)
[AI] Begins a new transition animation of type p_animationType at the specified speed,...
TransitionType
[AI] Enumerates all supported transition effect types.
@ e_idle
[AI] No transition is active.
@ e_dissolve
[AI] Black "pixels" dissolve across the screen in random order.
@ e_mosaic
[AI] Complex mosaic block-out effect.
@ e_wipeDown
[AI] Vertical wipe (top-down) fill.
@ e_windows
[AI] Animated shrinking "window" effect from full screen edges inward.
@ e_broken
[AI] Invalid/buggy mode, causes hang, used for diagnostics or internal testing.
@ e_noAnimation
[AI] Instant clear/fill screen, no animated effect.
TransitionType GetTransitionType()
[AI] Returns the currently active transition type.
MxBool IsA(const char *p_name) const override
[AI] Determines if the class name matches with this type or its parents.
MxTransitionManager()
[AI] Initializes MxTransitionManager and resets all transition states and working buffers.
virtual MxResult GetDDrawSurfaceFromVideoManager()
[AI] Retrieves the primary DirectDraw surface to render transitions onto, querying via the video mana...
const char * ClassName() const override
[AI] Returns the class name of this object.
~MxTransitionManager() override
[AI] Cleans up resources for the transition manager, deletes animation memory, notifies tickle manage...
void SetWaitIndicator(MxVideoPresenter *p_waitIndicator)
[AI] Sets or resets the visual wait indicator presented during blocking transitions.
Derived video presenter responsible for displaying video frames using DirectDraw surfaces.
#define override
Definition: compat.h:21
struct _DDSURFACEDESC FAR * LPDDSURFACEDESC
Definition: ddraw.h:83
struct IDirectDrawSurface FAR * LPDIRECTDRAWSURFACE
Definition: ddraw.h:74
unsigned int undefined4
Definition: decomp.h:28
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106
unsigned char MxU8
[AI]
Definition: mxtypes.h:8
signed int MxS32
[AI]
Definition: mxtypes.h:38
unsigned int MxULong
[AI]
Definition: mxtypes.h:93
unsigned short MxU16
[AI]
Definition: mxtypes.h:20
[AI] Union that provides a convenient bit field view of a byte for flag manipulation.
Definition: mxtypes.h:169