Isle
Loading...
Searching...
No Matches
legohideanimpresenter.h
Go to the documentation of this file.
1#ifndef LEGOHIDEANIMPRESENTER_H
2#define LEGOHIDEANIMPRESENTER_H
3
4#include "decomp.h"
6
8
16 MxBool operator()(const char* const& p_a, const char* const& p_b) const { return strcmp(p_a, p_b) < 0; }
17};
18
24};
25
28typedef map<const char*, LegoHideAnimStruct, LegoHideAnimStructComparator> LegoHideAnimStructMap;
29
36public:
40 ~LegoHideAnimPresenter() override;
41
42 // FUNCTION: LEGO1 0x1006d860
44 void VTable0x8c() override {} // vtable+0x8c
45
46 // FUNCTION: LEGO1 0x1006d870
48 void VTable0x90() override {} // vtable+0x90
49
50 // FUNCTION: BETA10 0x1005d4a0
53 static const char* HandlerClassName()
54 {
55 // STRING: LEGO1 0x100f06cc
56 return "LegoHideAnimPresenter";
57 }
58
59 // FUNCTION: LEGO1 0x1006d880
60 // FUNCTION: BETA10 0x1005d470
63 const char* ClassName() const override // vtable+0x0c
64 {
65 return HandlerClassName();
66 }
67
68 // FUNCTION: LEGO1 0x1006d890
72 MxBool IsA(const char* p_name) const override // vtable+0x10
73 {
74 return !strcmp(p_name, ClassName()) || LegoAnimPresenter::IsA(p_name);
75 }
76
78 void ReadyTickle() override; // vtable+0x18
80 void StartingTickle() override; // vtable+0x18
82 MxResult AddToManager() override; // vtable+0x34
84 void Destroy() override; // vtable+0x38
86 void EndAction() override; // vtable+0x40
88 void PutFrame() override; // vtable+0x6c
89
94 void FUN_1006db40(LegoTime p_time);
95
96private:
98 void Init();
101 void Destroy(MxBool p_fromDestructor);
102
106 void FUN_1006db60(LegoTreeNode* p_node, LegoTime p_time);
107
111 void FUN_1006dc10();
112
117 void FUN_1006e3f0(LegoHideAnimStructMap& p_map, LegoTreeNode* p_node);
118
126 void FUN_1006e470(
128 LegoAnimNodeData* p_data,
129 const char* p_name,
130 LegoPathBoundary* p_boundary
131 );
132
133 LegoPathBoundary** m_boundaryMap;
134};
135
136// clang-format off
137// SYNTHETIC: LEGO1 0x1006d9d0
138// LegoHideAnimPresenter::`scalar deleting destructor'
139
140// TEMPLATE: LEGO1 0x1006ddb0
141// _Tree<char const *,pair<char const * const,LegoHideAnimStruct>,map<char const *,LegoHideAnimStruct,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::_Kfn,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::~_Tree<char const *,pair<ch
142
143// TEMPLATE: LEGO1 0x1006de80
144// _Tree<char const *,pair<char const * const,LegoHideAnimStruct>,map<char const *,LegoHideAnimStruct,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::_Kfn,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::iterator::_Inc
145
146// TEMPLATE: LEGO1 0x1006dec0
147// _Tree<char const *,pair<char const * const,LegoHideAnimStruct>,map<char const *,LegoHideAnimStruct,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::_Kfn,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::erase
148
149// TEMPLATE: LEGO1 0x1006e310
150// _Tree<char const *,pair<char const * const,LegoHideAnimStruct>,map<char const *,LegoHideAnimStruct,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::_Kfn,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::_Erase
151
152// TEMPLATE: LEGO1 0x1006e350
153// Map<char const *,LegoHideAnimStruct,LegoHideAnimStructComparator>::~Map<char const *,LegoHideAnimStruct,LegoHideAnimStructComparator>
154
155// TEMPLATE: LEGO1 0x1006e3a0
156// map<char const *,LegoHideAnimStruct,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::~map<char const *,LegoHideAnimStruct,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >
157
158// TEMPLATE: LEGO1 0x1006e6d0
159// _Tree<char const *,pair<char const * const,LegoHideAnimStruct>,map<char const *,LegoHideAnimStruct,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::_Kfn,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::iterator::_Dec
160
161// TEMPLATE: LEGO1 0x1006e720
162// _Tree<char const *,pair<char const * const,LegoHideAnimStruct>,map<char const *,LegoHideAnimStruct,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::_Kfn,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::_Insert
163
164// GLOBAL: LEGO1 0x100f768c
165// _Tree<char const *,pair<char const * const,LegoHideAnimStruct>,map<char const *,LegoHideAnimStruct,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::_Kfn,LegoHideAnimStructComparator,allocator<LegoHideAnimStruct> >::_Nil
166// clang-format on
167
168#endif // LEGOHIDEANIMPRESENTER_H
[AI] Holds per-node animation data for a model's animation tree.
Definition: legoanim.h:144
MxBool IsA(const char *p_name) const override
[AI] Checks if this or a parent class matches the given type name for RTTI.
[AI] Presenter class responsible for controlling animations that hide or show actors based on animati...
void StartingTickle() override
[AI] Called during the Starting state tick; if streaming state is reached, prepares boundary mappings...
~LegoHideAnimPresenter() override
[AI] Destructor. Destroys presenter and cleans up boundary mapping.
void ReadyTickle() override
[AI] Called when presenter is in the Ready state; maps boundaries to animation nodes and adds present...
static const char * HandlerClassName()
[AI] Returns the class name string for this presenter type.
void VTable0x8c() override
[AI] Virtual method, no-op in this class. [AI_SUGGESTED_NAME: OnCustomTick]
void EndAction() override
[AI] Called when the associated DSAction has ended, cleans up and removes presenter from the world.
void PutFrame() override
[AI] Advances the animation by one frame (no-op here; implemented in other presenter classes).
MxResult AddToManager() override
[AI] Adds the presenter to the tickle manager; delegates to base animation presenter registration.
void VTable0x90() override
[AI] Virtual method, no-op in this class. [AI_SUGGESTED_NAME: OnPostAnimationTick]
void Destroy() override
[AI] Destroys the presenter, optionally from destructor; cleans up resources and removes from world.
void FUN_1006db40(LegoTime p_time)
[AI] Traverses the animation node hierarchy starting at the root and synchronizes visibility flags fo...
MxBool IsA(const char *p_name) const override
[AI] Checks if object is of the given class or a parent class (runtime type checking).
const char * ClassName() const override
[AI] Returns the runtime class name of the object.
LegoHideAnimPresenter()
[AI] Constructor. Initializes boundary mapping.
[AI] Presenter for looping animated sequences in the LEGO Island engine.
[AI] Represents a path segment or boundary in the navigation network for actors (vehicles,...
[AI] Represents a node within a general, N-ary tree structure.
Definition: legotree.h:44
#define override
Definition: compat.h:21
map< const char *, LegoHideAnimStruct, LegoHideAnimStructComparator > LegoHideAnimStructMap
[AI] Map associating string (name) keys to LegoHideAnimStruct, using custom comparator for C strings.
LegoS32 LegoTime
[AI] Time value, typically used for tick counts, durations, or timing; defined as a signed 32-bit int...
Definition: legotypes.h:95
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106
unsigned int MxU32
[AI]
Definition: mxtypes.h:32
[AI] Comparator for string keys in map for use with LegoHideAnimStruct.
MxBool operator()(const char *const &p_a, const char *const &p_b) const
[AI] Operator comparison using strcmp for strict-weak ordering.
[AI] Structure associating a path boundary with an index.
LegoPathBoundary * m_boundary
[AI] Pointer to a LegoPathBoundary found by name from animation node
MxU32 m_index
[AI] Index assigned to this boundary in the map and used for node-to-boundary association