SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
include
Game
NPC
TalkMessageFunc.hpp
1
#pragma once
2
3
#include "Inline.hpp"
4
#include <JSystem/JKernel/JKRHeap.hpp>
5
6
class
TalkMessageFuncBase
{
7
public
:
8
virtual
void
operator()()
const
= 0;
9
virtual
TalkMessageFuncBase
* clone()
const
= 0;
10
virtual
TalkMessageFuncBase
* clone(JKRHeap *)
const
= 0;
11
};
12
13
template
<
typename
T,
typename
U>
14
class
TalkMessageFuncM
:
public
TalkMessageFuncBase
{
15
public
:
16
17
inline
TalkMessageFuncM
(T call, U callee)
18
: mCaller(call), mCallee(callee) {
19
}
20
21
inline
TalkMessageFuncM
() {
22
23
}
24
25
virtual
void
operator()()
const
{
26
(mCaller->*mCallee)();
27
}
28
29
virtual
TalkMessageFuncM
* clone()
const
{
30
return
new
TalkMessageFuncM
(*
this
);
31
}
32
33
virtual
TalkMessageFuncM
* clone(JKRHeap *pHeap)
const
{
34
return
new
(pHeap, 0)
TalkMessageFuncM
(*
this
);
35
};
36
37
T mCaller;
38
U mCallee;
39
};
40
41
template
<
class
T>
42
static
TalkMessageFuncM
<T *, void (T::*)()> TalkMessageFunc(T* a1, void (T::*a2)()) NO_INLINE {
43
return
TalkMessageFuncM
<T *, void (T::*)()>(a1, a2);
44
}
TalkMessageFuncBase
Definition
TalkMessageFunc.hpp:6
TalkMessageFuncM
Definition
TalkMessageFunc.hpp:14
Generated by
1.10.0