2022-10-09 05:13:17 +00:00
|
|
|
#ifndef _CARCHITECTUREMESSAGE
|
|
|
|
#define _CARCHITECTUREMESSAGE
|
2022-10-01 06:19:09 +00:00
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
|
|
|
|
#include "rstl/rc_ptr.hpp"
|
|
|
|
|
|
|
|
enum EArchMsgTarget {
|
|
|
|
kAMT_IOWinManager,
|
|
|
|
kAMT_Game,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum EArchMsgType {
|
|
|
|
kAM_RemoveIOWin = 0,
|
|
|
|
kAM_CreateIOWin = 1,
|
|
|
|
kAM_ChangeIOWinPriority = 2,
|
|
|
|
kAM_RemoveAllIOWins = 3,
|
|
|
|
kAM_TimerTick = 4,
|
|
|
|
kAM_UserInput = 5,
|
|
|
|
kAM_SetGameState = 6,
|
|
|
|
kAM_ControllerStatus = 7,
|
|
|
|
kAM_QuitGameplay = 8,
|
|
|
|
kAM_FrameBegin = 10,
|
|
|
|
kAM_FrameEnd = 11,
|
|
|
|
};
|
|
|
|
|
|
|
|
struct IArchitectureMessageParm {
|
2022-10-08 19:38:29 +00:00
|
|
|
inline virtual ~IArchitectureMessageParm() = 0;
|
2022-10-01 06:19:09 +00:00
|
|
|
};
|
|
|
|
|
2022-10-08 19:38:29 +00:00
|
|
|
IArchitectureMessageParm::~IArchitectureMessageParm() {}
|
|
|
|
|
2022-10-01 06:19:09 +00:00
|
|
|
class CArchitectureMessage {
|
2022-10-09 06:55:24 +00:00
|
|
|
|
|
|
|
public:
|
2022-10-14 07:45:18 +00:00
|
|
|
CArchitectureMessage(EArchMsgTarget target, int type, const rstl::rc_ptr<IArchitectureMessageParm>& parm)
|
|
|
|
: x0_target(target)
|
|
|
|
, x4_type(static_cast<EArchMsgType>(type))
|
|
|
|
, x8_parm(parm) {}
|
|
|
|
|
2022-10-09 06:55:24 +00:00
|
|
|
EArchMsgType GetType() const { return x4_type; }
|
2022-10-14 07:45:18 +00:00
|
|
|
const IArchitectureMessageParm* GetParm() const {
|
|
|
|
return x8_parm.GetPtr();
|
|
|
|
}
|
2022-10-01 06:19:09 +00:00
|
|
|
private:
|
|
|
|
EArchMsgTarget x0_target;
|
|
|
|
EArchMsgType x4_type;
|
|
|
|
rstl::rc_ptr< IArchitectureMessageParm > x8_parm;
|
|
|
|
};
|
|
|
|
|
2022-10-09 05:13:17 +00:00
|
|
|
#endif // _CARCHITECTUREMESSAGE
|