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-17 00:46:11 +00:00
|
|
|
virtual ~IArchitectureMessageParm() {}
|
2022-10-01 06:19:09 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CArchitectureMessage {
|
2022-10-09 06:55:24 +00:00
|
|
|
|
|
|
|
public:
|
2022-10-17 00:46:11 +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-17 00:46:11 +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
|