prime/include/MetroidPrime/ScriptObjects/CScriptControllerAction.hpp

94 lines
2.0 KiB
C++

#ifndef _CSCRIPTCONTROLLERACTION
#define _CSCRIPTCONTROLLERACTION
#include "MetroidPrime/CEntity.hpp"
#include "MetroidPrime/CControlMapper.hpp"
class CScriptControllerAction : public CEntity {
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;
uint x38_mapScreenSubaction;
uchar x3c_24_mapScreenResponse : 1;
bool x3c_25_deactivateOnClose : 1;
bool x3c_26_pressed : 1;
public:
CScriptControllerAction(TUniqueId uid, const rstl::string& name, const CEntityInfo& info,
bool active, ECommands command, bool b1, uint w1, bool b2);
void Accept(IVisitor& visitor) override;
void Think(float, CStateManager&) override;
static ControlMapper::ECommands GetCommand(ECommands cmd);
};
#endif // _CSCRIPTCONTROLLERACTION