Lus updates (#2835)

* Changes for LUS renames in ResourceManager and Archive.

* Moves WriteSaveFile and ReadSaveFile to SaveManager.

* Removes ImGui namespace.

* Bump LUS

* Updates gitignore for intellij projects.

* Controller usage is now up to date with newest LUS.

* Adapters for removal of Controller.WriteToSource from LUS.

* Uses correct capitalization on Controller.GetProfile()

* Bump LUS

---------

Co-authored-by: Christopher Leggett <chris@leggett.dev>
This commit is contained in:
Kenix3 2023-05-04 23:56:57 -04:00 committed by GitHub
parent c3ba15ed57
commit f9cfcde627
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 17 deletions

2
.gitignore vendored
View File

@ -7,7 +7,7 @@ __pycache__/
.vscode/ .vscode/
.vs/ .vs/
.idea/ .idea/
cmake-build-debug cmake-build-**
venv/ venv/
.cache/ .cache/

@ -1 +1 @@
Subproject commit 7fe0c076a8261d7e878b196d2b5de57beccf1177 Subproject commit f9e554dc214c2f23cfc74a26348ef9fd3055451b

View File

@ -1576,12 +1576,27 @@ extern "C" uint32_t OTRGetCurrentHeight() {
return OTRGlobals::Instance->context->GetCurrentHeight(); return OTRGlobals::Instance->context->GetCurrentHeight();
} }
extern "C" void OTRControllerCallback(ControllerCallback* controller) { extern "C" void OTRControllerCallback(uint8_t rumble, uint8_t ledColor) {
auto controlDeck = Ship::Window::GetInstance()->GetControlDeck(); auto controlDeck = Ship::Window::GetInstance()->GetControlDeck();
for (int i = 0; i < controlDeck->GetNumVirtualDevices(); ++i) { for (int i = 0; i < controlDeck->GetNumConnectedPorts(); ++i) {
auto physicalDevice = controlDeck->GetPhysicalDeviceFromVirtualSlot(i); auto physicalDevice = controlDeck->GetDeviceFromPortIndex(i);
physicalDevice->WriteToSource(i, controller); switch (ledColor) {
case 0:
physicalDevice->SetLed(i, 255, 0, 0);
break;
case 1:
physicalDevice->SetLed(i, 0x1E, 0x69, 0x1B);
break;
case 2:
physicalDevice->SetLed(i, 0x64, 0x14, 0x00);
break;
case 3:
physicalDevice->SetLed(i, 0x00, 0x3C, 0x64);
break;
}
physicalDevice->SetRumble(i, rumble);
} }
} }
@ -1627,10 +1642,10 @@ extern "C" void AudioPlayer_Play(const uint8_t* buf, uint32_t len) {
extern "C" int Controller_ShouldRumble(size_t slot) { extern "C" int Controller_ShouldRumble(size_t slot) {
auto controlDeck = Ship::Window::GetInstance()->GetControlDeck(); auto controlDeck = Ship::Window::GetInstance()->GetControlDeck();
if (slot < controlDeck->GetNumVirtualDevices()) { if (slot < controlDeck->GetNumConnectedPorts()) {
auto physicalDevice = controlDeck->GetPhysicalDeviceFromVirtualSlot(slot); auto physicalDevice = controlDeck->GetDeviceFromPortIndex(slot);
if (physicalDevice->getProfile(slot)->UseRumble && physicalDevice->CanRumble()) { if (physicalDevice->GetProfile(slot)->UseRumble && physicalDevice->CanRumble()) {
return 1; return 1;
} }
} }

View File

@ -11,8 +11,6 @@ extern void* __cdecl memset(_Out_writes_bytes_all_(_Size) void* _Dst, _In_ int _
s32 D_8012D280 = 1; s32 D_8012D280 = 1;
static ControllerCallback controllerCallback;
OSMesgQueue* PadMgr_LockSerialMesgQueue(PadMgr* padMgr) { OSMesgQueue* PadMgr_LockSerialMesgQueue(PadMgr* padMgr) {
OSMesgQueue* ctrlrQ = NULL; OSMesgQueue* ctrlrQ = NULL;
@ -296,25 +294,27 @@ void PadMgr_ProcessInputs(PadMgr* padMgr) {
input->press.stick_y += (s8)(input->cur.stick_y - input->prev.stick_y); input->press.stick_y += (s8)(input->cur.stick_y - input->prev.stick_y);
} }
controllerCallback.rumble = (padMgr->rumbleEnable[0] > 0); uint8_t rumble = (padMgr->rumbleEnable[0] > 0);
uint8_t ledColor = 1;
if (HealthMeter_IsCritical()) { if (HealthMeter_IsCritical()) {
controllerCallback.ledColor = 0; ledColor = 0;
} else if (gPlayState) { } else if (gPlayState) {
switch (CUR_EQUIP_VALUE(EQUIP_TUNIC) - 1) { switch (CUR_EQUIP_VALUE(EQUIP_TUNIC) - 1) {
case PLAYER_TUNIC_KOKIRI: case PLAYER_TUNIC_KOKIRI:
controllerCallback.ledColor = 1; ledColor = 1;
break; break;
case PLAYER_TUNIC_GORON: case PLAYER_TUNIC_GORON:
controllerCallback.ledColor = 2; ledColor = 2;
break; break;
case PLAYER_TUNIC_ZORA: case PLAYER_TUNIC_ZORA:
controllerCallback.ledColor = 3; ledColor = 3;
break; break;
} }
} }
OTRControllerCallback(&controllerCallback); OTRControllerCallback(rumble, ledColor);
if (CVarGetInteger("gPauseBufferBlockInputFrame", 0)) { if (CVarGetInteger("gPauseBufferBlockInputFrame", 0)) {
Controller_BlockGameInput(); Controller_BlockGameInput();
} else { } else {