2022-11-03 11:35:43 +00:00
|
|
|
#ifndef _CSCRIPTCONTROLLERACTION
|
|
|
|
#define _CSCRIPTCONTROLLERACTION
|
|
|
|
|
|
|
|
#include "MetroidPrime/CEntity.hpp"
|
|
|
|
|
|
|
|
#include "MetroidPrime/CControlMapper.hpp"
|
|
|
|
|
|
|
|
class CScriptControllerAction : public CEntity {
|
2022-12-08 22:05:14 +00:00
|
|
|
enum ECommands {
|
|
|
|
kC_Forward,
|
|
|
|
kC_Backward,
|
|
|
|
kC_TurnLeft,
|
|
|
|
kC_TurnRight,
|
|
|
|
kC_StrafeLeft,
|
|
|
|
kC_StrafeRight,
|
|
|
|
kC_LookLeft,
|
|
|
|
kC_LookRight,
|
|
|
|
kC_LookUp,
|
|
|
|
kC_LookDown,
|
|
|
|
kC_JumpOrBoost = 10,
|
|
|
|
kC_FireOrBomb = 11,
|
|
|
|
kC_MissileOrPowerBomb = 12,
|
|
|
|
kC_Morph,
|
|
|
|
kC_AimUp,
|
|
|
|
kC_AimDown,
|
|
|
|
kC_CycleBeamUp,
|
|
|
|
kC_CycleBeamDown,
|
|
|
|
kC_CycleItem,
|
|
|
|
kC_PowerBeam,
|
|
|
|
kC_IceBeam,
|
|
|
|
kC_WaveBeam,
|
|
|
|
kC_PlasmaBeam,
|
|
|
|
kC_ToggleHolster = 23,
|
|
|
|
kC_OrbitClose,
|
|
|
|
kC_OrbitFar,
|
|
|
|
kC_OrbitObject,
|
|
|
|
kC_OrbitSelect,
|
|
|
|
kC_OrbitConfirm,
|
|
|
|
kC_OrbitLeft,
|
|
|
|
kC_OrbitRight,
|
|
|
|
kC_OrbitUp,
|
|
|
|
kC_OrbitDown,
|
|
|
|
kC_LookHold1,
|
|
|
|
kC_LookHold2,
|
|
|
|
kC_LookZoomIn,
|
|
|
|
kC_LookZoomOut,
|
|
|
|
kC_AimHold,
|
|
|
|
kC_MapCircleUp,
|
|
|
|
kC_MapCircleDown,
|
|
|
|
kC_MapCircleLeft,
|
|
|
|
kC_MapCircleRight,
|
|
|
|
kC_MapMoveForward,
|
|
|
|
kC_MapMoveBack,
|
|
|
|
kC_MapMoveLeft,
|
|
|
|
kC_MapMoveRight,
|
|
|
|
kC_MapZoomIn,
|
|
|
|
kC_MapZoomOut,
|
|
|
|
kC_SpiderBall,
|
|
|
|
kC_ChaseCamera,
|
|
|
|
kC_XrayVisor = 50,
|
|
|
|
kC_ThermoVisor = 51,
|
|
|
|
kC_EnviroVisor = 52,
|
|
|
|
kC_NoVisor = 53,
|
|
|
|
kC_VisorMenu,
|
|
|
|
kC_VisorUp,
|
|
|
|
kC_VisorDown,
|
|
|
|
kC_ShowCrosshairs,
|
|
|
|
kC_UseShield = 0x3B,
|
|
|
|
kC_ScanItem = 0x3C,
|
|
|
|
kC_PreviousPauseScreen = 0x41,
|
|
|
|
kC_NextPauseScreen = 0x42,
|
|
|
|
kC_UNKNOWN,
|
|
|
|
kC_None,
|
|
|
|
kC_MAX
|
|
|
|
};
|
|
|
|
|
|
|
|
ECommands x34_command;
|
2022-11-03 11:35:43 +00:00
|
|
|
uint x38_mapScreenSubaction;
|
2022-12-08 22:05:14 +00:00
|
|
|
uchar x3c_24_mapScreenResponse : 1;
|
2022-11-03 11:35:43 +00:00
|
|
|
bool x3c_25_deactivateOnClose : 1;
|
|
|
|
bool x3c_26_pressed : 1;
|
|
|
|
|
|
|
|
public:
|
|
|
|
CScriptControllerAction(TUniqueId uid, const rstl::string& name, const CEntityInfo& info,
|
2022-12-08 22:05:14 +00:00
|
|
|
bool active, ECommands command, bool b1, uint w1, bool b2);
|
2022-11-03 11:35:43 +00:00
|
|
|
|
2023-02-06 07:21:28 +00:00
|
|
|
void Accept(IVisitor& visitor);
|
|
|
|
void Think(float, CStateManager&);
|
2022-12-08 22:05:14 +00:00
|
|
|
|
|
|
|
static ControlMapper::ECommands GetCommand(ECommands cmd);
|
2022-11-03 11:35:43 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // _CSCRIPTCONTROLLERACTION
|