mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 05:47:42 +00:00
Finish CSamusDoll
This commit is contained in:
@@ -1,10 +1,71 @@
|
||||
#include "CInventoryScreen.hpp"
|
||||
#include "GuiSys/CGuiTableGroup.hpp"
|
||||
|
||||
namespace urde
|
||||
{
|
||||
namespace MP1
|
||||
{
|
||||
|
||||
struct SInventoryItem
|
||||
{
|
||||
u32 idx;
|
||||
u32 nameStrIdx;
|
||||
u32 entryStrIdx;
|
||||
};
|
||||
|
||||
static const SInventoryItem ArmCannonItems[] =
|
||||
{
|
||||
{0, 0x24, 0x46}, // Power Beam
|
||||
{1, 0x25, 0x48}, // Ice Beam
|
||||
{2, 0x26, 0x4a}, // Wave Beam
|
||||
{3, 0x27, 0x4c}, // Plasma Beam
|
||||
{4, 0x28, 0x4e}, // Phazon Beam
|
||||
};
|
||||
|
||||
static const SInventoryItem MorphballItems[] =
|
||||
{
|
||||
{5, 0x2e, 0x57}, // Morph Ball
|
||||
{6, 0x2f, 0x58}, // Boost Ball
|
||||
{7, 0x30, 0x59}, // Spider Ball
|
||||
{8, 0x31, 0x5a}, // Morph Ball Bomb
|
||||
{9, 0x32, 0x5b}, // Power Bomb
|
||||
};
|
||||
|
||||
static const SInventoryItem SuitItems[] =
|
||||
{
|
||||
{10, 0x33, 0x52}, // Power Suit
|
||||
{11, 0x34, 0x53}, // Varia Suit
|
||||
{12, 0x35, 0x54}, // Gravity Suit
|
||||
{13, 0x36, 0x55}, // Phazon Suit
|
||||
{14, 0x37, 0x56}, // Energy Tank
|
||||
};
|
||||
|
||||
static const SInventoryItem VisorItems[] =
|
||||
{
|
||||
{15, 0x38, 0x42}, // Combat Visor
|
||||
{16, 0x39, 0x43}, // Scan Visor
|
||||
{17, 0x3a, 0x44}, // X-Ray Visor
|
||||
{18, 0x3b, 0x45}, // Thermal Visor
|
||||
};
|
||||
|
||||
static const SInventoryItem SecondaryItems[] =
|
||||
{
|
||||
{19, 0x3c, 0x4f}, // Space Jump Boots
|
||||
{20, 0x3d, 0x50}, // Grapple Beam
|
||||
{21, 0x3e, 0x51}, // Missile Launcher
|
||||
{22, 0x3f, 0x5c}, // Charge Beam
|
||||
{23, 0x40, 0x5d}, // Beam Combo
|
||||
};
|
||||
|
||||
static const std::pair<u32, const SInventoryItem*> InventoryRegistry[] =
|
||||
{
|
||||
{5, ArmCannonItems},
|
||||
{5, MorphballItems},
|
||||
{5, SuitItems},
|
||||
{4, VisorItems},
|
||||
{5, SecondaryItems},
|
||||
};
|
||||
|
||||
CInventoryScreen::CInventoryScreen(const CStateManager& mgr, CGuiFrame& frame, const CStringTable& pauseStrg,
|
||||
const CDependencyGroup& suitDgrp, const CDependencyGroup& ballDgrp)
|
||||
: CPauseScreenBase(mgr, frame, pauseStrg)
|
||||
@@ -96,5 +157,38 @@ void CInventoryScreen::UpdateRightLogHighlight(bool active, int idx,
|
||||
|
||||
}
|
||||
|
||||
void CInventoryScreen::UpdateSamusDollPulses()
|
||||
{
|
||||
bool pulseSuit = false;
|
||||
bool pulseBeam = false;
|
||||
bool pulseGrapple = false;
|
||||
bool pulseBoots = false;
|
||||
bool pulseVisor = false;
|
||||
int userSel = x70_tablegroup_leftlog->GetUserSelection();
|
||||
|
||||
if (x10_mode == EMode::RightTable)
|
||||
{
|
||||
if (userSel == 2)
|
||||
pulseSuit = true;
|
||||
else if (userSel == 0)
|
||||
pulseBeam = true;
|
||||
else if (userSel == 3)
|
||||
pulseVisor = true;
|
||||
else if (userSel == 4)
|
||||
{
|
||||
pulseGrapple = SecondaryItems[x1c_rightSel].idx == 20;
|
||||
pulseBoots = SecondaryItems[x1c_rightSel].idx == 19;
|
||||
if (SecondaryItems[x1c_rightSel].idx == 21)
|
||||
pulseBeam = true;
|
||||
}
|
||||
}
|
||||
|
||||
x19c_samusDoll->SetPulseSuit(pulseSuit);
|
||||
x19c_samusDoll->SetPulseBeam(pulseBeam);
|
||||
x19c_samusDoll->SetPulseGrapple(pulseGrapple);
|
||||
x19c_samusDoll->SetPulseBoots(pulseBoots);
|
||||
x19c_samusDoll->SetPulseVisor(pulseVisor);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user