mirror of https://github.com/PrimeDecomp/prime.git
parent
b6f09b36d1
commit
44d09fd5ea
|
@ -8482,7 +8482,7 @@ lbl_800CCC24:
|
|||
/* 800CCC7C 000C9BDC 93 A1 00 08 */ stw r29, 8(r1)
|
||||
/* 800CCC80 000C9BE0 38 81 00 14 */ addi r4, r1, 0x14
|
||||
/* 800CCC84 000C9BE4 38 A1 00 18 */ addi r5, r1, 0x18
|
||||
/* 800CCC88 000C9BE8 48 10 C2 55 */ bl "__ct__23CScriptControllerActionF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfobQ213ControlMapper9ECommandsbUib"
|
||||
/* 800CCC88 000C9BE8 48 10 C2 55 */ bl "__ct__23CScriptControllerActionF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfobQ223CScriptControllerAction9ECommandsbUib"
|
||||
/* 800CCC8C 000C9BEC 7C 78 1B 78 */ mr r24, r3
|
||||
lbl_800CCC90:
|
||||
/* 800CCC90 000C9BF0 38 61 00 18 */ addi r3, r1, 0x18
|
||||
|
|
|
@ -45,8 +45,8 @@ lbl_801D8D38:
|
|||
/* 801D8D4C 001D5CAC 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 801D8D50 001D5CB0 4E 80 00 20 */ blr
|
||||
|
||||
.global nullsub_51
|
||||
nullsub_51:
|
||||
.global GetCommand__23CScriptControllerActionFQ223CScriptControllerAction9ECommands
|
||||
GetCommand__23CScriptControllerActionFQ223CScriptControllerAction9ECommands:
|
||||
/* 801D8D54 001D5CB4 4E 80 00 20 */ blr
|
||||
|
||||
.global Think__23CScriptControllerActionFfR13CStateManager
|
||||
|
@ -82,7 +82,7 @@ lbl_801D8DB4:
|
|||
/* 801D8DC0 001D5D20 48 00 00 40 */ b lbl_801D8E00
|
||||
lbl_801D8DC4:
|
||||
/* 801D8DC4 001D5D24 80 7D 00 34 */ lwz r3, 0x34(r29)
|
||||
/* 801D8DC8 001D5D28 4B FF FF 8D */ bl nullsub_51
|
||||
/* 801D8DC8 001D5D28 4B FF FF 8D */ bl GetCommand__23CScriptControllerActionFQ223CScriptControllerAction9ECommands
|
||||
/* 801D8DCC 001D5D2C 38 9E 0B 54 */ addi r4, r30, 0xb54
|
||||
/* 801D8DD0 001D5D30 4B E3 3A A5 */ bl GetDigitalInput__13ControlMapperFQ213ControlMapper9ECommandsRC11CFinalInput
|
||||
/* 801D8DD4 001D5D34 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
|
@ -159,8 +159,8 @@ Accept__23CScriptControllerActionFR8IVisitor:
|
|||
/* 801D8ED4 001D5E34 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 801D8ED8 001D5E38 4E 80 00 20 */ blr
|
||||
|
||||
.global "__ct__23CScriptControllerActionF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfobQ213ControlMapper9ECommandsbUib"
|
||||
"__ct__23CScriptControllerActionF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfobQ213ControlMapper9ECommandsbUib":
|
||||
.global "__ct__23CScriptControllerActionF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfobQ223CScriptControllerAction9ECommandsbUib"
|
||||
"__ct__23CScriptControllerActionF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfobQ223CScriptControllerAction9ECommandsbUib":
|
||||
/* 801D8EDC 001D5E3C 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 801D8EE0 001D5E40 7C 08 02 A6 */ mflr r0
|
||||
/* 801D8EE4 001D5E44 90 01 00 34 */ stw r0, 0x34(r1)
|
||||
|
|
|
@ -266,7 +266,7 @@ LIBS = [
|
|||
["MetroidPrime/ScriptObjects/CScriptWorldTeleporter", False],
|
||||
["MetroidPrime/ScriptObjects/CScriptVisorGoo", False],
|
||||
"MetroidPrime/Enemies/CJellyZap",
|
||||
["MetroidPrime/ScriptObjects/CScriptControllerAction", False],
|
||||
["MetroidPrime/ScriptObjects/CScriptControllerAction", True],
|
||||
["MetroidPrime/Weapons/GunController/CGunMotion", False],
|
||||
["MetroidPrime/ScriptObjects/CScriptSwitch", True],
|
||||
["MetroidPrime/BodyState/CABSIdle", True],
|
||||
|
|
|
@ -6,19 +6,88 @@
|
|||
#include "MetroidPrime/CControlMapper.hpp"
|
||||
|
||||
class CScriptControllerAction : public CEntity {
|
||||
ControlMapper::ECommands x34_command;
|
||||
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;
|
||||
bool x3c_24_mapScreenResponse : 1;
|
||||
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, ControlMapper::ECommands command, bool b1, uint w1, bool b2);
|
||||
~CScriptControllerAction();
|
||||
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
|
||||
|
|
|
@ -2,11 +2,9 @@
|
|||
|
||||
#include "MetroidPrime/CStateManager.hpp"
|
||||
|
||||
extern "C" ControlMapper::ECommands nullsub_51(float, ControlMapper::ECommands);
|
||||
|
||||
CScriptControllerAction::CScriptControllerAction(TUniqueId uid, const rstl::string& name,
|
||||
const CEntityInfo& info, bool active,
|
||||
ControlMapper::ECommands command,
|
||||
ECommands command,
|
||||
bool mapScreenResponse, uint w1,
|
||||
bool deactivateOnClose)
|
||||
: CEntity(uid, info, active, name)
|
||||
|
@ -33,7 +31,7 @@ void CScriptControllerAction::Think(float dt, CStateManager& stateMgr) {
|
|||
break;
|
||||
}
|
||||
} else {
|
||||
if (ControlMapper::GetDigitalInput(nullsub_51(dt, x34_command), stateMgr.GetFinalInput())) {
|
||||
if (ControlMapper::GetDigitalInput(GetCommand(x34_command), stateMgr.GetFinalInput())) {
|
||||
x3c_26_pressed = true;
|
||||
} else {
|
||||
x3c_26_pressed = false;
|
||||
|
@ -53,6 +51,7 @@ void CScriptControllerAction::Think(float dt, CStateManager& stateMgr) {
|
|||
}
|
||||
}
|
||||
|
||||
extern "C" ControlMapper::ECommands nullsub_51(float, ControlMapper::ECommands c) { return c; }
|
||||
|
||||
CScriptControllerAction::~CScriptControllerAction() {}
|
||||
ControlMapper::ECommands
|
||||
CScriptControllerAction::GetCommand(CScriptControllerAction::ECommands c) {
|
||||
return (ControlMapper::ECommands)(c);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue