mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-03-03 02:01:47 -05:00
Add window to customize specific controls (#1122)
This commit is contained in:
parent
b7f9960a60
commit
46a421f933
@ -1162,10 +1162,27 @@ namespace SohImGui {
|
||||
PaddedSeparator();
|
||||
|
||||
if (ImGui::BeginMenu("Controls")) {
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(12.0f, 6.0f));
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_ButtonTextAlign, ImVec2(0, 0));
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0f);
|
||||
ImGui::PushStyleColor(ImGuiCol_Border, ImVec4(0.22f, 0.38f, 0.56f, 1.0f));
|
||||
float availableWidth = ImGui::GetContentRegionAvail().x;
|
||||
if (ImGui::Button(
|
||||
GetWindowButtonText("Customize Game Controls", CVar_GetS32("gGameControlEditorEnabled", 0)).c_str(),
|
||||
ImVec2(availableWidth, 0)
|
||||
)) {
|
||||
bool currentValue = CVar_GetS32("gGameControlEditorEnabled", 0);
|
||||
CVar_SetS32("gGameControlEditorEnabled", !currentValue);
|
||||
needs_save = true;
|
||||
customWindows["Game Control Editor"].enabled = CVar_GetS32("gGameControlEditorEnabled", 0);
|
||||
}
|
||||
ImGui::PopStyleVar(3);
|
||||
ImGui::PopStyleColor(1);
|
||||
|
||||
// TODO mutual exclusions -- There should be some system to prevent conclifting enhancements from being selected
|
||||
EnhancementCheckbox("D-pad Support on Pause and File Select", "gDpadPauseName");
|
||||
PaddedEnhancementCheckbox("D-pad Support on Pause and File Select", "gDpadPauseName");
|
||||
Tooltip("Enables Pause and File Select screen navigation with the D-pad\nIf used with D-pad as Equip Items, you must hold C-Up to equip instead of navigate");
|
||||
PaddedEnhancementCheckbox("D-pad Support in Ocarina and Text Choice", "gDpadOcarinaText", true, false);
|
||||
PaddedEnhancementCheckbox("D-pad Support in Text Choice", "gDpadText", true, false);
|
||||
PaddedEnhancementCheckbox("D-pad Support for Browsing Shop Items", "gDpadShop", true, false);
|
||||
PaddedEnhancementCheckbox("D-pad as Equip Items", "gDpadEquips", true, false);
|
||||
Tooltip("Allows the D-pad to be used as extra C buttons");
|
||||
|
@ -157,6 +157,11 @@ set(Header_Files__soh__Enhancements
|
||||
)
|
||||
source_group("Header Files\\soh\\Enhancements" FILES ${Header_Files__soh__Enhancements})
|
||||
|
||||
set(Header_Files__soh__Enhancements__controls
|
||||
"soh/Enhancements/controls/GameControlEditor.h"
|
||||
)
|
||||
source_group("Header Files\\soh\\Enhancements\\controls" FILES ${Header_Files__soh__Enhancements__controls})
|
||||
|
||||
set(Header_Files__soh__Enhancements__cosmetics
|
||||
"soh/Enhancements/cosmetics/CosmeticsEditor.h"
|
||||
)
|
||||
@ -249,6 +254,11 @@ set(Source_Files__soh__Enhancements
|
||||
)
|
||||
source_group("Source Files\\soh\\Enhancements" FILES ${Source_Files__soh__Enhancements})
|
||||
|
||||
set(Source_Files__soh__Enhancements__controls
|
||||
"soh/Enhancements/controls/GameControlEditor.cpp"
|
||||
)
|
||||
source_group("Source Files\\soh\\Enhancements\\controls" FILES ${Source_Files__soh__Enhancements__controls})
|
||||
|
||||
set(Source_Files__soh__Enhancements__cosmetics
|
||||
"soh/Enhancements/cosmetics/CosmeticsEditor.cpp"
|
||||
)
|
||||
@ -1543,6 +1553,7 @@ set(ALL_FILES
|
||||
${Header_Files}
|
||||
${Header_Files__include}
|
||||
${Header_Files__soh__Enhancements}
|
||||
${Header_Files__soh__Enhancements__controls}
|
||||
${Header_Files__soh__Enhancements__cosmetics}
|
||||
${Header_Files__soh__Enhancements__debugger}
|
||||
${Header_Files__soh__Enhancements__randomizer}
|
||||
@ -1550,6 +1561,7 @@ set(ALL_FILES
|
||||
${Header_Files__soh__Enhancements__custom_message}
|
||||
${Source_Files__soh}
|
||||
${Source_Files__soh__Enhancements}
|
||||
${Source_Files__soh__Enhancements__controls}
|
||||
${Source_Files__soh__Enhancements__cosmetics}
|
||||
${Source_Files__soh__Enhancements__debugger}
|
||||
${Source_Files__soh__Enhancements__randomizer}
|
||||
|
@ -1094,11 +1094,11 @@ typedef struct {
|
||||
} OcarinaStaff;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ OCARINA_NOTE_A,
|
||||
/* 1 */ OCARINA_NOTE_C_DOWN,
|
||||
/* 2 */ OCARINA_NOTE_C_RIGHT,
|
||||
/* 3 */ OCARINA_NOTE_C_LEFT,
|
||||
/* 4 */ OCARINA_NOTE_C_UP,
|
||||
/* 0 */ OCARINA_NOTE_D4,
|
||||
/* 1 */ OCARINA_NOTE_F4,
|
||||
/* 2 */ OCARINA_NOTE_A4,
|
||||
/* 3 */ OCARINA_NOTE_B4,
|
||||
/* 4 */ OCARINA_NOTE_D5,
|
||||
/* -1 */ OCARINA_NOTE_INVALID = 0xFF
|
||||
} OcarinaNoteIdx;
|
||||
|
||||
|
231
soh/soh/Enhancements/controls/GameControlEditor.cpp
Normal file
231
soh/soh/Enhancements/controls/GameControlEditor.cpp
Normal file
@ -0,0 +1,231 @@
|
||||
#include "GameControlEditor.h"
|
||||
|
||||
#include <string>
|
||||
#include <list>
|
||||
#include <unordered_map>
|
||||
#include <utility>
|
||||
#include <iterator>
|
||||
|
||||
#include "Lib/ImGui/imgui.h"
|
||||
#include "Lib/ImGui/imgui_internal.h"
|
||||
#include "Cvar.h"
|
||||
#include "UltraController.h"
|
||||
#include "Utils/StringHelper.h"
|
||||
#include "../libultraship/ImGuiImpl.h"
|
||||
|
||||
namespace GameControlEditor {
|
||||
const ImGuiTableFlags PANEL_TABLE_FLAGS =
|
||||
ImGuiTableFlags_BordersH |
|
||||
ImGuiTableFlags_BordersV;
|
||||
const ImGuiTableColumnFlags PANEL_TABLE_COLUMN_FLAGS =
|
||||
ImGuiTableColumnFlags_IndentEnable |
|
||||
ImGuiTableColumnFlags_NoSort;
|
||||
|
||||
namespace TableHelper {
|
||||
void InitHeader(bool has_header = true) {
|
||||
if (has_header) {
|
||||
ImGui::TableHeadersRow();
|
||||
}
|
||||
ImGui::TableNextRow();
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::AlignTextToFramePadding(); //This is to adjust Vertical pos of item in a cell to be normlized.
|
||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x);
|
||||
}
|
||||
|
||||
void NextCol() {
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x);
|
||||
}
|
||||
|
||||
void NextLine() {
|
||||
ImGui::TableNextRow();
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x);
|
||||
}
|
||||
}
|
||||
|
||||
void DrawHelpIcon(const std::string& helptext, bool sameline = true, int Pos = 0) {
|
||||
// place the ? button to the most of the right side of the cell it is using.
|
||||
ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ImGui::GetContentRegionAvail().x - 15);
|
||||
ImGui::SmallButton("?");
|
||||
SohImGui::Tooltip(helptext.c_str());
|
||||
if (sameline) {
|
||||
//I do not use ImGui::SameLine(); because it make some element vanish.
|
||||
ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 22);
|
||||
}
|
||||
}
|
||||
|
||||
typedef uint32_t N64ButtonMask;
|
||||
|
||||
// Used together for an incomplete linked hash map implementation in order to
|
||||
// map button masks to their names and original mapping on N64
|
||||
static std::list<std::pair<N64ButtonMask, const char*>> buttons;
|
||||
static std::unordered_map<N64ButtonMask, decltype(buttons)::iterator> buttonNames;
|
||||
|
||||
void addButtonName(N64ButtonMask mask, const char* name) {
|
||||
buttons.push_back(std::make_pair(mask, name));
|
||||
buttonNames[mask] = std::prev(buttons.end());
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
const char* label;
|
||||
const char* cVarName;
|
||||
N64ButtonMask defaultBtn;
|
||||
} CustomButtonMap;
|
||||
|
||||
// Ocarina button maps
|
||||
static CustomButtonMap ocarinaD5 = {"D5", "gOcarinaD5BtnMap", BTN_CUP};
|
||||
static CustomButtonMap ocarinaB4 = {"B4", "gOcarinaB4BtnMap", BTN_CLEFT};
|
||||
static CustomButtonMap ocarinaA4 = {"A4", "gOcarinaA4BtnMap", BTN_CRIGHT};
|
||||
static CustomButtonMap ocarinaF4 = {"F4", "gOcarinaF4BtnMap", BTN_CDOWN};
|
||||
static CustomButtonMap ocarinaD4 = {"D4", "gOcarinaD4BtnMap", BTN_A};
|
||||
static CustomButtonMap ocarinaSongDisable = {"Disable songs", "gOcarinaDisableBtnMap", BTN_L};
|
||||
static CustomButtonMap ocarinaSharp = {"Pitch up", "gOcarinaSharpBtnMap", BTN_R};
|
||||
static CustomButtonMap ocarinaFlat = {"Pitch down", "gOcarinaFlatBtnMap", BTN_Z};
|
||||
|
||||
void DrawUI(bool&);
|
||||
|
||||
void Init() {
|
||||
SohImGui::AddWindow("Enhancements", "Game Control Editor", DrawUI);
|
||||
|
||||
addButtonName(BTN_A, "A");
|
||||
addButtonName(BTN_B, "B");
|
||||
addButtonName(BTN_CUP, "C Up");
|
||||
addButtonName(BTN_CDOWN, "C Down");
|
||||
addButtonName(BTN_CLEFT, "C Left");
|
||||
addButtonName(BTN_CRIGHT, "C Right");
|
||||
addButtonName(BTN_L, "L");
|
||||
addButtonName(BTN_Z, "Z");
|
||||
addButtonName(BTN_R, "R");
|
||||
addButtonName(BTN_START, "Start");
|
||||
addButtonName(BTN_DUP, "D-pad up");
|
||||
addButtonName(BTN_DDOWN, "D-pad down");
|
||||
addButtonName(BTN_DLEFT, "D-pad left");
|
||||
addButtonName(BTN_DRIGHT, "D-pad right");
|
||||
addButtonName(0, "None");
|
||||
}
|
||||
|
||||
// Draw a button mapping setting consisting of a padded label and button dropdown.
|
||||
// excludedButtons indicates which buttons are unavailable to choose from.
|
||||
void DrawMapping(CustomButtonMap& mapping, float labelWidth, N64ButtonMask excludedButtons) {
|
||||
N64ButtonMask currentButton = CVar_GetS32(mapping.cVarName, mapping.defaultBtn);
|
||||
|
||||
const char* preview;
|
||||
if (buttonNames.contains(currentButton)) {
|
||||
preview = buttonNames[currentButton]->second;
|
||||
} else {
|
||||
preview = "Unknown";
|
||||
}
|
||||
|
||||
SohImGui::InsertPadding();
|
||||
ImVec2 cursorPos = ImGui::GetCursorPos();
|
||||
ImVec2 textSize = ImGui::CalcTextSize(mapping.label);
|
||||
ImGui::SetCursorPosY(cursorPos.y + textSize.y / 4);
|
||||
ImGui::SetCursorPosX(cursorPos.x + abs(textSize.x - labelWidth));
|
||||
ImGui::Text("%s", mapping.label);
|
||||
ImGui::SameLine();
|
||||
ImGui::SetCursorPosY(cursorPos.y);
|
||||
|
||||
ImGui::SetNextItemWidth(ImGui::GetFontSize() * 8);
|
||||
if (ImGui::BeginCombo(StringHelper::Sprintf("##%s", mapping.cVarName).c_str(), preview)) {
|
||||
for (auto i = buttons.begin(); i != buttons.end(); i++) {
|
||||
if ((i->first & excludedButtons) != 0) {
|
||||
continue;
|
||||
}
|
||||
if (ImGui::Selectable(i->second, i->first == currentButton)) {
|
||||
CVar_SetS32(mapping.cVarName, i->first);
|
||||
}
|
||||
}
|
||||
ImGui::EndCombo();
|
||||
}
|
||||
SohImGui::InsertPadding();
|
||||
}
|
||||
|
||||
void DrawOcarinaControlPanel() {
|
||||
if (!ImGui::CollapsingHeader("Ocarina Controls")) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!ImGui::BeginTable("tableCustomOcarinaControls", 1, PANEL_TABLE_FLAGS)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ImGui::TableSetupColumn("Custom Ocarina Controls", PANEL_TABLE_COLUMN_FLAGS | ImGuiTableColumnFlags_WidthStretch);
|
||||
TableHelper::InitHeader(false);
|
||||
|
||||
ImVec2 cursor = ImGui::GetCursorPos();
|
||||
ImGui::SetCursorPos(ImVec2(cursor.x + 5, cursor.y + 5));
|
||||
SohImGui::EnhancementCheckbox("Customize Ocarina Controls", "gCustomOcarinaControls");
|
||||
|
||||
if (CVar_GetS32("gCustomOcarinaControls", 0) == 1) {
|
||||
if (ImGui::BeginTable("tableCustomMainOcarinaControls", 2, ImGuiTableFlags_SizingStretchProp)) {
|
||||
float labelWidth;
|
||||
N64ButtonMask disableMask = BTN_B;
|
||||
if (CVar_GetS32("gDpadOcarina", 0)) {
|
||||
disableMask |= BTN_DUP | BTN_DDOWN | BTN_DLEFT | BTN_DRIGHT;
|
||||
}
|
||||
|
||||
ImGui::TableSetupColumn("Notes##CustomOcarinaNotes", PANEL_TABLE_COLUMN_FLAGS);
|
||||
ImGui::TableSetupColumn("Modifiers##CustomOcaranaModifiers", PANEL_TABLE_COLUMN_FLAGS);
|
||||
TableHelper::InitHeader(false);
|
||||
|
||||
SohImGui::BeginGroupPanel("Notes", ImGui::GetContentRegionAvail());
|
||||
labelWidth = ImGui::CalcTextSize("D5").x + 10;
|
||||
DrawMapping(ocarinaD5, labelWidth, disableMask);
|
||||
DrawMapping(ocarinaB4, labelWidth, disableMask);
|
||||
DrawMapping(ocarinaA4, labelWidth, disableMask);
|
||||
DrawMapping(ocarinaF4, labelWidth, disableMask);
|
||||
DrawMapping(ocarinaD4, labelWidth, disableMask);
|
||||
ImGui::Dummy(ImVec2(0, 5));
|
||||
float cursorY = ImGui::GetCursorPosY();
|
||||
SohImGui::EndGroupPanel();
|
||||
|
||||
TableHelper::NextCol();
|
||||
|
||||
SohImGui::BeginGroupPanel("Modifiers", ImGui::GetContentRegionAvail());
|
||||
labelWidth = ImGui::CalcTextSize(ocarinaSongDisable.label).x + 10;
|
||||
DrawMapping(ocarinaSongDisable, labelWidth, disableMask);
|
||||
DrawMapping(ocarinaSharp, labelWidth, disableMask);
|
||||
DrawMapping(ocarinaFlat, labelWidth, disableMask);
|
||||
SohImGui::EndGroupPanel(cursorY - ImGui::GetCursorPosY() + 2);
|
||||
|
||||
ImGui::EndTable();
|
||||
}
|
||||
} else {
|
||||
SohImGui::InsertPadding();
|
||||
ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 5);
|
||||
ImGui::TextWrapped("To modify the main ocarina controls, select the \"Customize Ocarina Controls\" checkbox.");
|
||||
SohImGui::InsertPadding();
|
||||
}
|
||||
|
||||
SohImGui::BeginGroupPanel("Alternate controls", ImGui::GetContentRegionAvail());
|
||||
if (ImGui::BeginTable("tableOcarinaAlternateControls", 2, ImGuiTableFlags_SizingFixedSame)) {
|
||||
ImGui::TableSetupColumn("D-pad", PANEL_TABLE_COLUMN_FLAGS);
|
||||
ImGui::TableSetupColumn("Right stick", PANEL_TABLE_COLUMN_FLAGS);
|
||||
TableHelper::InitHeader(false);
|
||||
ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 5);
|
||||
SohImGui::EnhancementCheckbox("Play with D-pad", "gDpadOcarina");
|
||||
TableHelper::NextCol();
|
||||
SohImGui::EnhancementCheckbox("Play with camera stick", "gRStickOcarina");
|
||||
ImGui::EndTable();
|
||||
}
|
||||
SohImGui::EndGroupPanel();
|
||||
|
||||
ImGui::EndTable();
|
||||
}
|
||||
|
||||
void DrawUI(bool& open) {
|
||||
if (!open) {
|
||||
CVar_SetS32("gGameControlEditorEnabled", false);
|
||||
return;
|
||||
}
|
||||
|
||||
ImGui::SetNextWindowSize(ImVec2(465, 430), ImGuiCond_FirstUseEver);
|
||||
if (ImGui::Begin("Game Controls Configuration", &open)) {
|
||||
DrawOcarinaControlPanel();
|
||||
}
|
||||
ImGui::End();
|
||||
}
|
||||
}
|
5
soh/soh/Enhancements/controls/GameControlEditor.h
Normal file
5
soh/soh/Enhancements/controls/GameControlEditor.h
Normal file
@ -0,0 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
namespace GameControlEditor {
|
||||
void Init();
|
||||
}
|
@ -29,6 +29,7 @@
|
||||
#define DRWAV_IMPLEMENTATION
|
||||
#include "Lib/dr_libs/wav.h"
|
||||
#include "AudioPlayer.h"
|
||||
#include "Enhancements/controls/GameControlEditor.h"
|
||||
#include "Enhancements/cosmetics/CosmeticsEditor.h"
|
||||
#include "Enhancements/debugconsole.h"
|
||||
#include "Enhancements/debugger/debugger.h"
|
||||
@ -191,6 +192,7 @@ extern "C" void InitOTR() {
|
||||
OTRMessage_Init();
|
||||
OTRAudio_Init();
|
||||
InitCosmeticsEditor();
|
||||
GameControlEditor::Init();
|
||||
DebugConsole_Init();
|
||||
Debug_Init();
|
||||
Rando_Init();
|
||||
|
@ -825,11 +825,11 @@ NatureAmbienceDataIO sNatureAmbienceDataIO[20] = {
|
||||
};
|
||||
|
||||
u32 sOcarinaAllowedBtnMask = (BTN_A | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT);
|
||||
s32 sOcarinaABtnMap = BTN_A;
|
||||
s32 sOcarinaCUPBtnMap = BTN_CUP;
|
||||
s32 sOcarinaCDownBtnMap = BTN_CDOWN;
|
||||
s32 sOcarinaCLeftBtnMap = BTN_CLEFT;
|
||||
s32 sOcarinaCRightBtnMap = BTN_CRIGHT;
|
||||
s32 sOcarinaD5BtnMap = BTN_CUP;
|
||||
s32 sOcarinaB4BtnMap = BTN_CLEFT;
|
||||
s32 sOcarinaA4BtnMap = BTN_CRIGHT;
|
||||
s32 sOcarinaF4BtnMap = BTN_CDOWN;
|
||||
s32 sOcarinaD4BtnMap = BTN_A;
|
||||
u8 sOcarinaInpEnabled = 0;
|
||||
s8 D_80130F10 = 0; // "OCA", ocarina active?
|
||||
u8 sCurOcarinaBtnVal = 0xFF;
|
||||
@ -1013,9 +1013,9 @@ OcarinaNote sOcarinaSongs[OCARINA_SONG_MAX][20] = {
|
||||
|
||||
OcarinaNote* sPlaybackSong = sOcarinaSongs[0];
|
||||
u8 sFrogsSongNotes[14] = {
|
||||
OCARINA_NOTE_A, OCARINA_NOTE_C_LEFT, OCARINA_NOTE_C_RIGHT, OCARINA_NOTE_C_DOWN, OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_C_RIGHT, OCARINA_NOTE_C_DOWN, OCARINA_NOTE_A, OCARINA_NOTE_C_DOWN, OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_C_DOWN, OCARINA_NOTE_C_RIGHT, OCARINA_NOTE_C_LEFT, OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_D4, OCARINA_NOTE_B4, OCARINA_NOTE_A4, OCARINA_NOTE_F4, OCARINA_NOTE_B4,
|
||||
OCARINA_NOTE_A4, OCARINA_NOTE_F4, OCARINA_NOTE_D4, OCARINA_NOTE_F4, OCARINA_NOTE_D4,
|
||||
OCARINA_NOTE_F4, OCARINA_NOTE_A4, OCARINA_NOTE_B4, OCARINA_NOTE_D4,
|
||||
};
|
||||
u8* gFrogsSongPtr = sFrogsSongNotes;
|
||||
u8 sRecordingState = 0;
|
||||
@ -1044,124 +1044,124 @@ OcarinaSongInfo gOcarinaSongNotes[OCARINA_SONG_MAX] = {
|
||||
// Minuet
|
||||
{ 6,
|
||||
{
|
||||
OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_D4,
|
||||
OCARINA_NOTE_D5,
|
||||
OCARINA_NOTE_B4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_B4,
|
||||
OCARINA_NOTE_A4,
|
||||
} },
|
||||
// Bolero
|
||||
{ 8,
|
||||
{
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_D4,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_D4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_F4,
|
||||
} },
|
||||
// Serenade
|
||||
{ 5,
|
||||
{
|
||||
OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_D4,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_B4,
|
||||
} },
|
||||
// Requiem
|
||||
{ 6,
|
||||
{
|
||||
OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_D4,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_D4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_D4,
|
||||
} },
|
||||
// Nocturne
|
||||
{ 7,
|
||||
{
|
||||
OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_B4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_D4,
|
||||
OCARINA_NOTE_B4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_F4,
|
||||
} },
|
||||
// Prelude
|
||||
{ 6,
|
||||
{
|
||||
OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_D5,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_D5,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_B4,
|
||||
OCARINA_NOTE_D5,
|
||||
} },
|
||||
// Sarias
|
||||
{ 6,
|
||||
{
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_B4,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_B4,
|
||||
} },
|
||||
// Epona
|
||||
{ 6,
|
||||
{
|
||||
OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_D5,
|
||||
OCARINA_NOTE_B4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_D5,
|
||||
OCARINA_NOTE_B4,
|
||||
OCARINA_NOTE_A4,
|
||||
} },
|
||||
// Lullaby
|
||||
{ 6,
|
||||
{
|
||||
OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_LEFT,
|
||||
OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_B4,
|
||||
OCARINA_NOTE_D5,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_B4,
|
||||
OCARINA_NOTE_D5,
|
||||
OCARINA_NOTE_A4,
|
||||
} },
|
||||
// Suns
|
||||
{ 6,
|
||||
{
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_D5,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_D5,
|
||||
} },
|
||||
// Song of Time
|
||||
{ 6,
|
||||
{
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_C_RIGHT,
|
||||
OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_D4,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_A4,
|
||||
OCARINA_NOTE_D4,
|
||||
OCARINA_NOTE_F4,
|
||||
} },
|
||||
// Storms
|
||||
{ 6,
|
||||
{
|
||||
OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_A,
|
||||
OCARINA_NOTE_C_DOWN,
|
||||
OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_D4,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_D5,
|
||||
OCARINA_NOTE_D4,
|
||||
OCARINA_NOTE_F4,
|
||||
OCARINA_NOTE_D5,
|
||||
} },
|
||||
// Scarecrow
|
||||
{ 8, { 0, 0, 0, 0, 0, 0, 0, 0 } },
|
||||
@ -1247,24 +1247,49 @@ void func_800F56A8(void);
|
||||
void Audio_PlayNatureAmbienceSequence(u8 natureAmbienceId);
|
||||
s32 Audio_SetGanonDistVol(u8 targetVol);
|
||||
|
||||
// Function originally not called, so repurposing for DPad input
|
||||
void func_800EC960(u8 dpad) {
|
||||
if (dpad) {
|
||||
sOcarinaAllowedBtnMask =
|
||||
(BTN_A | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT | BTN_DUP | BTN_DDOWN | BTN_DLEFT | BTN_DRIGHT);
|
||||
sOcarinaABtnMap = BTN_A;
|
||||
sOcarinaCUPBtnMap = BTN_CUP | BTN_DUP;
|
||||
sOcarinaCDownBtnMap = BTN_CDOWN | BTN_DDOWN;
|
||||
sOcarinaCLeftBtnMap = BTN_CLEFT | BTN_DLEFT;
|
||||
sOcarinaCRightBtnMap = BTN_CRIGHT | BTN_DRIGHT;
|
||||
// Right stick as virtual C buttons
|
||||
#define RSTICK_UP 0x100000
|
||||
#define RSTICK_DOWN 0x200000
|
||||
#define RSTICK_LEFT 0x400000
|
||||
#define RSTICK_RIGHT 0x800000
|
||||
|
||||
// Function originally not called, so repurposing for control mapping
|
||||
void Audio_OcaUpdateBtnMap(bool customControls, bool dpad, bool rStick) {
|
||||
if (customControls) {
|
||||
sOcarinaD5BtnMap = CVar_GetS32("gOcarinaD5BtnMap", BTN_CUP);
|
||||
sOcarinaB4BtnMap = CVar_GetS32("gOcarinaB4BtnMap", BTN_CLEFT);
|
||||
sOcarinaA4BtnMap = CVar_GetS32("gOcarinaA4BtnMap", BTN_CRIGHT);
|
||||
sOcarinaF4BtnMap = CVar_GetS32("gOcarinaF4BtnMap", BTN_CDOWN);
|
||||
sOcarinaD4BtnMap = CVar_GetS32("gOcarinaD4BtnMap", BTN_A);
|
||||
} else {
|
||||
sOcarinaAllowedBtnMask = (BTN_A | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT);
|
||||
sOcarinaABtnMap = BTN_A;
|
||||
sOcarinaCUPBtnMap = BTN_CUP;
|
||||
sOcarinaCDownBtnMap = BTN_CDOWN;
|
||||
sOcarinaCLeftBtnMap = BTN_CLEFT;
|
||||
sOcarinaCRightBtnMap = BTN_CRIGHT;
|
||||
sOcarinaD5BtnMap = BTN_CUP;
|
||||
sOcarinaB4BtnMap = BTN_CLEFT;
|
||||
sOcarinaA4BtnMap = BTN_CRIGHT;
|
||||
sOcarinaF4BtnMap = BTN_CDOWN;
|
||||
sOcarinaD4BtnMap = BTN_A;
|
||||
}
|
||||
|
||||
if (dpad) {
|
||||
sOcarinaD5BtnMap |= BTN_DUP;
|
||||
sOcarinaB4BtnMap |= BTN_DLEFT;
|
||||
sOcarinaA4BtnMap |= BTN_DRIGHT;
|
||||
sOcarinaF4BtnMap |= BTN_DDOWN;
|
||||
}
|
||||
|
||||
if (rStick) {
|
||||
sOcarinaD5BtnMap |= RSTICK_UP;
|
||||
sOcarinaB4BtnMap |= RSTICK_LEFT;
|
||||
sOcarinaA4BtnMap |= RSTICK_RIGHT;
|
||||
sOcarinaF4BtnMap |= RSTICK_DOWN;
|
||||
}
|
||||
|
||||
sOcarinaAllowedBtnMask = (
|
||||
sOcarinaD5BtnMap |
|
||||
sOcarinaB4BtnMap |
|
||||
sOcarinaA4BtnMap |
|
||||
sOcarinaF4BtnMap |
|
||||
sOcarinaD4BtnMap
|
||||
);
|
||||
}
|
||||
|
||||
void Audio_GetOcaInput(void) {
|
||||
@ -1278,6 +1303,23 @@ void Audio_GetOcaInput(void) {
|
||||
sPrevOcarinaBtnPress = sp18;
|
||||
sCurOcaStick.x = input->rel.stick_x;
|
||||
sCurOcaStick.y = input->rel.stick_y;
|
||||
|
||||
f32 rstick_x = input->cur.cam_x;
|
||||
f32 rstick_y = input->cur.cam_y;
|
||||
printf("%f %f\n", rstick_x, rstick_y);
|
||||
const f32 sensitivity = 500;
|
||||
if (rstick_x > sensitivity) {
|
||||
sCurOcarinaBtnPress |= RSTICK_RIGHT;
|
||||
}
|
||||
if (rstick_x < -sensitivity) {
|
||||
sCurOcarinaBtnPress |= RSTICK_LEFT;
|
||||
}
|
||||
if (rstick_y > sensitivity) {
|
||||
sCurOcarinaBtnPress |= RSTICK_UP;
|
||||
}
|
||||
if (rstick_y < -sensitivity) {
|
||||
sCurOcarinaBtnPress |= RSTICK_DOWN;
|
||||
}
|
||||
}
|
||||
|
||||
f32 Audio_OcaAdjStick(s8 inp) {
|
||||
@ -1495,7 +1537,17 @@ void func_800ED200(void) {
|
||||
u8 j;
|
||||
u8 k;
|
||||
|
||||
if (CHECK_BTN_ANY(sCurOcarinaBtnPress, BTN_L) && CHECK_BTN_ANY(sCurOcarinaBtnPress, sOcarinaAllowedBtnMask)) {
|
||||
u32 disableSongBtnMap;
|
||||
if (CVar_GetS32("gCustomOcarinaControls", 0)) {
|
||||
disableSongBtnMap = CVar_GetS32("gOcarinaDisableBtnMap", BTN_L);
|
||||
} else {
|
||||
disableSongBtnMap = BTN_L;
|
||||
}
|
||||
|
||||
if (
|
||||
CHECK_BTN_ANY(sCurOcarinaBtnPress, disableSongBtnMap)
|
||||
&& CHECK_BTN_ANY(sCurOcarinaBtnPress, sOcarinaAllowedBtnMask)
|
||||
) {
|
||||
func_800ECC04((u16)D_80130F3C);
|
||||
return;
|
||||
}
|
||||
@ -1548,7 +1600,9 @@ void func_800ED200(void) {
|
||||
|
||||
void func_800ED458(s32 arg0) {
|
||||
u32 phi_v1_2;
|
||||
bool dpad = CVar_GetS32("gDpadOcarinaText", 0);
|
||||
bool customControls = CVar_GetS32("gCustomOcarinaControls", 0);
|
||||
bool dpad = CVar_GetS32("gDpadOcarina", 0);
|
||||
bool rStick = CVar_GetS32("gRStickOcarina", 0);
|
||||
|
||||
if (D_80130F3C != 0 && sOcarinaDropInputTimer != 0) {
|
||||
sOcarinaDropInputTimer--;
|
||||
@ -1569,35 +1623,47 @@ void func_800ED458(s32 arg0) {
|
||||
D_8016BA18 &= phi_v1_2;
|
||||
}
|
||||
|
||||
func_800EC960(dpad);
|
||||
if (D_8016BA18 & sOcarinaABtnMap) {
|
||||
osSyncPrintf("Presss NA_KEY_D4 %08x\n", sOcarinaABtnMap);
|
||||
Audio_OcaUpdateBtnMap(customControls, dpad, rStick);
|
||||
if (D_8016BA18 & sOcarinaD4BtnMap) {
|
||||
osSyncPrintf("Presss NA_KEY_D4 %08x\n", sOcarinaD4BtnMap);
|
||||
sCurOcarinaBtnVal = 2;
|
||||
sCurOcarinaBtnIdx = 0;
|
||||
} else if (D_8016BA18 & sOcarinaCDownBtnMap) {
|
||||
osSyncPrintf("Presss NA_KEY_F4 %08x\n", sOcarinaCDownBtnMap);
|
||||
} else if (D_8016BA18 & sOcarinaF4BtnMap) {
|
||||
osSyncPrintf("Presss NA_KEY_F4 %08x\n", sOcarinaF4BtnMap);
|
||||
sCurOcarinaBtnVal = 5;
|
||||
sCurOcarinaBtnIdx = 1;
|
||||
} else if (D_8016BA18 & sOcarinaCRightBtnMap) {
|
||||
osSyncPrintf("Presss NA_KEY_A4 %08x\n", sOcarinaCRightBtnMap);
|
||||
} else if (D_8016BA18 & sOcarinaA4BtnMap) {
|
||||
osSyncPrintf("Presss NA_KEY_A4 %08x\n", sOcarinaA4BtnMap);
|
||||
sCurOcarinaBtnVal = 9;
|
||||
sCurOcarinaBtnIdx = 2;
|
||||
} else if (D_8016BA18 & sOcarinaCLeftBtnMap) {
|
||||
osSyncPrintf("Presss NA_KEY_B4 %08x\n", sOcarinaCRightBtnMap);
|
||||
} else if (D_8016BA18 & sOcarinaB4BtnMap) {
|
||||
osSyncPrintf("Presss NA_KEY_B4 %08x\n", sOcarinaA4BtnMap);
|
||||
sCurOcarinaBtnVal = 0xB;
|
||||
sCurOcarinaBtnIdx = 3;
|
||||
} else if (D_8016BA18 & sOcarinaCUPBtnMap) {
|
||||
osSyncPrintf("Presss NA_KEY_D5 %08x\n", sOcarinaCUPBtnMap);
|
||||
} else if (D_8016BA18 & sOcarinaD5BtnMap) {
|
||||
osSyncPrintf("Presss NA_KEY_D5 %08x\n", sOcarinaD5BtnMap);
|
||||
sCurOcarinaBtnVal = 0xE;
|
||||
sCurOcarinaBtnIdx = 4;
|
||||
}
|
||||
|
||||
if (sCurOcarinaBtnVal != 0xFF && sCurOcarinaBtnPress & 0x10 && sRecordingState != 2) {
|
||||
u32 noteSharpBtnMap;
|
||||
if (customControls) {
|
||||
noteSharpBtnMap = CVar_GetS32("gOcarinaSharpBtnMap", BTN_R);
|
||||
} else {
|
||||
noteSharpBtnMap = BTN_R;
|
||||
}
|
||||
if ((sCurOcarinaBtnVal != 0xFF) && (sCurOcarinaBtnPress & noteSharpBtnMap) && (sRecordingState != 2)) {
|
||||
sCurOcarinaBtnIdx += 0x80;
|
||||
sCurOcarinaBtnVal++;
|
||||
}
|
||||
|
||||
if ((sCurOcarinaBtnVal != 0xFF) && (sCurOcarinaBtnPress & 0x2000) && (sRecordingState != 2)) {
|
||||
u32 noteFlatBtnMap;
|
||||
if (customControls) {
|
||||
noteFlatBtnMap = CVar_GetS32("gOcarinaFlatBtnMap", BTN_Z);
|
||||
} else {
|
||||
noteFlatBtnMap = BTN_Z;
|
||||
}
|
||||
if ((sCurOcarinaBtnVal != 0xFF) && (sCurOcarinaBtnPress & noteFlatBtnMap) && (sRecordingState != 2)) {
|
||||
sCurOcarinaBtnIdx += 0x40;
|
||||
sCurOcarinaBtnVal--;
|
||||
}
|
||||
|
@ -70,30 +70,93 @@ s16 gOcarinaSongItemMap[] = {
|
||||
|
||||
s32 sCharTexSize;
|
||||
s32 sCharTexScale;
|
||||
s16 sOcarinaNoteAPrimR;
|
||||
s16 sOcarinaNoteAPrimB;
|
||||
s16 sOcarinaNoteAPrimG;
|
||||
s16 sOcarinaNoteAEnvR;
|
||||
s16 sOcarinaNoteAEnvB;
|
||||
s16 sOcarinaNoteAEnvG;
|
||||
s16 sOcarinaNoteCPrimR;
|
||||
s16 sOcarinaNoteCPrimB;
|
||||
s16 sOcarinaNoteCPrimG;
|
||||
s16 sOcarinaNoteCEnvR;
|
||||
s16 sOcarinaNoteCEnvB;
|
||||
s16 sOcarinaNoteCEnvG;
|
||||
s16 sOcarinaNoteCUpPrimR;
|
||||
s16 sOcarinaNoteCUpPrimB;
|
||||
s16 sOcarinaNoteCUpPrimG;
|
||||
s16 sOcarinaNoteCLeftPrimR;
|
||||
s16 sOcarinaNoteCLeftPrimB;
|
||||
s16 sOcarinaNoteCLeftPrimG;
|
||||
s16 sOcarinaNoteCDownPrimR;
|
||||
s16 sOcarinaNoteCDownPrimB;
|
||||
s16 sOcarinaNoteCDownPrimG;
|
||||
s16 sOcarinaNoteCRightPrimR;
|
||||
s16 sOcarinaNoteCRightPrimB;
|
||||
s16 sOcarinaNoteCRightPrimG;
|
||||
|
||||
Color_RGB8 sOcarinaNoteABtnEnv;
|
||||
Color_RGB8 sOcarinaNoteCBtnEnv;
|
||||
Color_RGB8 sOcarinaNoteCBtnPrim;
|
||||
|
||||
Color_RGB8 sOcarinaNoteD5Prim;
|
||||
Color_RGB8 sOcarinaNoteB4Prim;
|
||||
Color_RGB8 sOcarinaNoteA4Prim;
|
||||
Color_RGB8 sOcarinaNoteF4Prim;
|
||||
Color_RGB8 sOcarinaNoteD4Prim;
|
||||
|
||||
// If the "separate" bool is set, use the "gCCC<cDirection>BtnPrim<R/G/B> CVars
|
||||
// to set the button color. Otherwise, use sOcarinaNoteCBtnPrim.
|
||||
void Message_SetCustomOrGeneralCColor(Color_RGB8* color, bool separate, char cDirection) {
|
||||
if (!separate) {
|
||||
*color = sOcarinaNoteCBtnPrim;
|
||||
return;
|
||||
}
|
||||
|
||||
// C direction is '*' @ idx 4
|
||||
// Color component is '*' @ idx 12
|
||||
char cVar[] = "gCCC*BtnPrim*";
|
||||
cVar[4] = cDirection;
|
||||
cVar[12] = 'R';
|
||||
color->r = CVar_GetS32(cVar, 255);
|
||||
cVar[12] = 'G';
|
||||
color->g = CVar_GetS32(cVar, 255);
|
||||
cVar[12] = 'B';
|
||||
color->b = CVar_GetS32(cVar, 50);
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
bool separateC;
|
||||
bool dpad;
|
||||
bool rightStick;
|
||||
} CustomNoteOptions;
|
||||
|
||||
// Set the non-null button color corresponding to the button map
|
||||
//
|
||||
// If the assigned button is A, a C button, Start, or the D-pad, then it'll be
|
||||
// colored to the corresponding CVar. Otherwise, its color will be equal to
|
||||
// sOcarinaNoteCBtnPrim.
|
||||
void Message_SetCustomOcarinaNoteColor(Color_RGB8* color, s32 btnMap, CustomNoteOptions* flags) {
|
||||
switch (btnMap) {
|
||||
case BTN_A:
|
||||
color->r = CVar_GetS32("gCCABtnPrimR", 80);
|
||||
color->g = CVar_GetS32("gCCABtnPrimG", 255);
|
||||
color->b = CVar_GetS32("gCCABtnPrimB", 150);
|
||||
break;
|
||||
case BTN_CUP:
|
||||
Message_SetCustomOrGeneralCColor(color, flags->separateC, 'U');
|
||||
break;
|
||||
case BTN_CDOWN:
|
||||
Message_SetCustomOrGeneralCColor(color, flags->separateC, 'D');
|
||||
break;
|
||||
case BTN_CLEFT:
|
||||
Message_SetCustomOrGeneralCColor(color, flags->separateC, 'L');
|
||||
break;
|
||||
case BTN_CRIGHT:
|
||||
Message_SetCustomOrGeneralCColor(color, flags->separateC, 'R');
|
||||
break;
|
||||
case BTN_START:
|
||||
color->r = CVar_GetS32("gCCStartBtnPrimR", 200);
|
||||
color->g = CVar_GetS32("gCCStartBtnPrimG", 0);
|
||||
color->b = CVar_GetS32("gCCStartBtnPrimB", 0);
|
||||
break;
|
||||
case BTN_DUP:
|
||||
case BTN_DDOWN:
|
||||
case BTN_DLEFT:
|
||||
case BTN_DRIGHT:
|
||||
color->r = CVar_GetS32("gCCDpadPrimR", 255) * 103 / 255;
|
||||
color->g = CVar_GetS32("gCCDpadPrimG", 255) * 103 / 255;
|
||||
color->b = CVar_GetS32("gCCDpadPrimB", 255) * 103 / 255;
|
||||
break;
|
||||
case 0:
|
||||
if (flags->dpad && !flags->rightStick) {
|
||||
// D pad is dark gray even when set to white, so emulate that.
|
||||
color->r = CVar_GetS32("gCCDpadPrimR", 255) * 103 / 255;
|
||||
color->g = CVar_GetS32("gCCDpadPrimG", 255) * 103 / 255;
|
||||
color->b = CVar_GetS32("gCCDpadPrimB", 255) * 103 / 255;
|
||||
break;
|
||||
} // else fall through
|
||||
default:
|
||||
*color = sOcarinaNoteCBtnPrim;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Message_ResetOcarinaNoteState(void) {
|
||||
R_OCARINA_NOTES_YPOS(0) = 189;
|
||||
@ -105,45 +168,47 @@ void Message_ResetOcarinaNoteState(void) {
|
||||
sOcarinaNotesAlphaValues[0] = sOcarinaNotesAlphaValues[1] = sOcarinaNotesAlphaValues[2] =
|
||||
sOcarinaNotesAlphaValues[3] = sOcarinaNotesAlphaValues[4] = sOcarinaNotesAlphaValues[5] =
|
||||
sOcarinaNotesAlphaValues[6] = sOcarinaNotesAlphaValues[7] = sOcarinaNotesAlphaValues[8] = 0;
|
||||
sOcarinaNoteAEnvR = 10;
|
||||
sOcarinaNoteAEnvG = 10;
|
||||
sOcarinaNoteAEnvB = 10;
|
||||
sOcarinaNoteCEnvR = 10;
|
||||
sOcarinaNoteCEnvG = 10;
|
||||
sOcarinaNoteCEnvB = 10;
|
||||
if (CVar_GetS32("gHudColors", 1) == 0) {
|
||||
sOcarinaNoteAPrimR = 80;
|
||||
sOcarinaNoteAPrimG = 150;
|
||||
sOcarinaNoteAPrimB = 255;
|
||||
sOcarinaNoteCPrimR = 255;
|
||||
sOcarinaNoteCPrimG = 255;
|
||||
sOcarinaNoteCPrimB = 50;
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 1) {
|
||||
sOcarinaNoteAPrimR = 80;
|
||||
sOcarinaNoteAPrimG = 255;
|
||||
sOcarinaNoteAPrimB = 150;
|
||||
sOcarinaNoteCPrimR = 255;
|
||||
sOcarinaNoteCPrimG = 255;
|
||||
sOcarinaNoteCPrimB = 50;
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
sOcarinaNoteAPrimR = CVar_GetS32("gCCABtnPrimR", 80);
|
||||
sOcarinaNoteAPrimG = CVar_GetS32("gCCABtnPrimR", 255);
|
||||
sOcarinaNoteAPrimB = CVar_GetS32("gCCABtnPrimR", 150);
|
||||
sOcarinaNoteCPrimR = CVar_GetS32("gCCCBtnPrimR", 255);
|
||||
sOcarinaNoteCPrimG = CVar_GetS32("gCCCBtnPrimG", 255);
|
||||
sOcarinaNoteCPrimB = CVar_GetS32("gCCCBtnPrimB", 50);
|
||||
sOcarinaNoteCUpPrimR = CVar_GetS32("gCCCUBtnPrimR", 255);
|
||||
sOcarinaNoteCUpPrimG = CVar_GetS32("gCCCUBtnPrimG", 255);
|
||||
sOcarinaNoteCUpPrimB = CVar_GetS32("gCCCUBtnPrimB", 50);
|
||||
sOcarinaNoteCLeftPrimR = CVar_GetS32("gCCCLBtnPrimR", 255);
|
||||
sOcarinaNoteCLeftPrimG = CVar_GetS32("gCCCLBtnPrimG", 255);
|
||||
sOcarinaNoteCLeftPrimB = CVar_GetS32("gCCCLBtnPrimB", 50);
|
||||
sOcarinaNoteCDownPrimR = CVar_GetS32("gCCCDBtnPrimR", 255);
|
||||
sOcarinaNoteCDownPrimG = CVar_GetS32("gCCCDBtnPrimG", 255);
|
||||
sOcarinaNoteCDownPrimB = CVar_GetS32("gCCCDBtnPrimB", 50);
|
||||
sOcarinaNoteCRightPrimR = CVar_GetS32("gCCCRBtnPrimR", 255);
|
||||
sOcarinaNoteCRightPrimG = CVar_GetS32("gCCCRBtnPrimG", 255);
|
||||
sOcarinaNoteCRightPrimB = CVar_GetS32("gCCCRBtnPrimB", 50);
|
||||
sOcarinaNoteABtnEnv = (Color_RGB8){ .r = 10, .g = 10, .b = 10 };
|
||||
sOcarinaNoteCBtnEnv = (Color_RGB8){ .r = 10, .g = 10, .b = 10 };
|
||||
|
||||
if (CVar_GetS32("gHudColors", 1) != 2) { // N64/GameCube
|
||||
if (CVar_GetS32("gHudColors", 1) == 0) {
|
||||
sOcarinaNoteD4Prim = (Color_RGB8){ .r = 80, .g = 150, .b = 255 };
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 1) {
|
||||
sOcarinaNoteD4Prim = (Color_RGB8){ .r = 80, .g = 255, .b = 150 };
|
||||
}
|
||||
|
||||
sOcarinaNoteCBtnPrim = (Color_RGB8){ .r = 255, .g = 255, .b = 50 };
|
||||
sOcarinaNoteD5Prim = sOcarinaNoteCBtnPrim;
|
||||
sOcarinaNoteB4Prim = sOcarinaNoteCBtnPrim;
|
||||
sOcarinaNoteA4Prim = sOcarinaNoteCBtnPrim;
|
||||
sOcarinaNoteF4Prim = sOcarinaNoteCBtnPrim;
|
||||
} else { // Custom
|
||||
sOcarinaNoteCBtnPrim.r = CVar_GetS32("gCCCBtnPrimR", 255);
|
||||
sOcarinaNoteCBtnPrim.g = CVar_GetS32("gCCCBtnPrimG", 255);
|
||||
sOcarinaNoteCBtnPrim.b = CVar_GetS32("gCCCBtnPrimB", 50);
|
||||
|
||||
CustomNoteOptions options = (CustomNoteOptions){
|
||||
.separateC = CVar_GetS32("gCCparated", 0),
|
||||
.dpad = CVar_GetS32("gDpadOcarina", 0),
|
||||
.rightStick = CVar_GetS32("gDpadRStick", 0),
|
||||
};
|
||||
|
||||
if (CVar_GetS32("gCustomOcarinaControls", 0)) {
|
||||
Message_SetCustomOcarinaNoteColor(&sOcarinaNoteD5Prim, CVar_GetS32("gOcarinaD5BtnMap", BTN_CUP), &options);
|
||||
Message_SetCustomOcarinaNoteColor(&sOcarinaNoteB4Prim, CVar_GetS32("gOcarinaB4BtnMap", BTN_CLEFT), &options);
|
||||
Message_SetCustomOcarinaNoteColor(&sOcarinaNoteA4Prim, CVar_GetS32("gOcarinaA4BtnMap", BTN_CRIGHT), &options);
|
||||
Message_SetCustomOcarinaNoteColor(&sOcarinaNoteF4Prim, CVar_GetS32("gOcarinaF4BtnMap", BTN_CDOWN), &options);
|
||||
Message_SetCustomOcarinaNoteColor(&sOcarinaNoteD4Prim, CVar_GetS32("gOcarinaD4BtnMap", BTN_A), &options);
|
||||
} else {
|
||||
Message_SetCustomOrGeneralCColor(&sOcarinaNoteD5Prim, options.separateC, 'U');
|
||||
Message_SetCustomOrGeneralCColor(&sOcarinaNoteB4Prim, options.separateC, 'L');
|
||||
Message_SetCustomOrGeneralCColor(&sOcarinaNoteA4Prim, options.separateC, 'R');
|
||||
Message_SetCustomOrGeneralCColor(&sOcarinaNoteF4Prim, options.separateC, 'D');
|
||||
sOcarinaNoteD4Prim.r = CVar_GetS32("gCCABtnPrimR", 80);
|
||||
sOcarinaNoteD4Prim.g = CVar_GetS32("gCCABtnPrimG", 255);
|
||||
sOcarinaNoteD4Prim.b = CVar_GetS32("gCCABtnPrimB", 150);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -208,7 +273,7 @@ void Message_HandleChoiceSelection(GlobalContext* globalCtx, u8 numChoices) {
|
||||
static s16 sAnalogStickHeld = false;
|
||||
MessageContext* msgCtx = &globalCtx->msgCtx;
|
||||
Input* input = &globalCtx->state.input[0];
|
||||
bool dpad = CVar_GetS32("gDpadOcarinaText", 0);
|
||||
bool dpad = CVar_GetS32("gDpadText", 0);
|
||||
|
||||
if ((input->rel.stick_y >= 30 && !sAnalogStickHeld) || (dpad && CHECK_BTN_ALL(input->press.button, BTN_DUP))) {
|
||||
sAnalogStickHeld = true;
|
||||
@ -2290,213 +2355,213 @@ void Message_DrawMain(GlobalContext* globalCtx, Gfx** p) {
|
||||
case MSGMODE_OCARINA_CORRECT_PLAYBACK:
|
||||
case MSGMODE_SONG_PLAYBACK_SUCCESS:
|
||||
case MSGMODE_SCARECROW_RECORDING_DONE:
|
||||
r = ABS(sOcarinaNoteAPrimR - sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][0]) /
|
||||
r = ABS(sOcarinaNoteD4Prim.r - sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][0]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
g = ABS(sOcarinaNoteAPrimG - sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][1]) /
|
||||
g = ABS(sOcarinaNoteD4Prim.g - sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][1]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
b = ABS(sOcarinaNoteAPrimB - sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][2]) /
|
||||
b = ABS(sOcarinaNoteD4Prim.b - sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][2]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
|
||||
if (sOcarinaNoteAPrimR >= sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][0]) {
|
||||
sOcarinaNoteAPrimR -= r;
|
||||
if (sOcarinaNoteD4Prim.r >= sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][0]) {
|
||||
sOcarinaNoteD4Prim.r -= r;
|
||||
} else {
|
||||
sOcarinaNoteAPrimR += r;
|
||||
sOcarinaNoteD4Prim.r += r;
|
||||
}
|
||||
if (sOcarinaNoteAPrimG >= sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][1]) {
|
||||
sOcarinaNoteAPrimG -= g;
|
||||
if (sOcarinaNoteD4Prim.g >= sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][1]) {
|
||||
sOcarinaNoteD4Prim.g -= g;
|
||||
} else {
|
||||
sOcarinaNoteAPrimG += g;
|
||||
sOcarinaNoteD4Prim.g += g;
|
||||
}
|
||||
if (sOcarinaNoteAPrimB >= sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][2]) {
|
||||
sOcarinaNoteAPrimB -= b;
|
||||
if (sOcarinaNoteD4Prim.b >= sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][2]) {
|
||||
sOcarinaNoteD4Prim.b -= b;
|
||||
} else {
|
||||
sOcarinaNoteAPrimB += b;
|
||||
sOcarinaNoteD4Prim.b += b;
|
||||
}
|
||||
|
||||
r = ABS(sOcarinaNoteAEnvR - sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][0]) /
|
||||
r = ABS(sOcarinaNoteABtnEnv.r - sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][0]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
g = ABS(sOcarinaNoteAEnvG - sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][1]) /
|
||||
g = ABS(sOcarinaNoteABtnEnv.g - sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][1]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
b = ABS(sOcarinaNoteAEnvB - sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][2]) /
|
||||
b = ABS(sOcarinaNoteABtnEnv.b - sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][2]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
|
||||
if (sOcarinaNoteCEnvR >= sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][0]) {
|
||||
sOcarinaNoteAEnvR -= r;
|
||||
if (sOcarinaNoteCBtnEnv.r >= sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][0]) {
|
||||
sOcarinaNoteABtnEnv.r -= r;
|
||||
} else {
|
||||
sOcarinaNoteAEnvR += r;
|
||||
sOcarinaNoteABtnEnv.r += r;
|
||||
}
|
||||
if (sOcarinaNoteCEnvG >= sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][1]) {
|
||||
sOcarinaNoteAEnvG -= g;
|
||||
if (sOcarinaNoteCBtnEnv.g >= sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][1]) {
|
||||
sOcarinaNoteABtnEnv.g -= g;
|
||||
} else {
|
||||
sOcarinaNoteAEnvG += g;
|
||||
sOcarinaNoteABtnEnv.g += g;
|
||||
}
|
||||
if (sOcarinaNoteCEnvB >= sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][2]) {
|
||||
sOcarinaNoteAEnvB -= b;
|
||||
if (sOcarinaNoteCBtnEnv.b >= sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][2]) {
|
||||
sOcarinaNoteABtnEnv.b -= b;
|
||||
} else {
|
||||
sOcarinaNoteAEnvB += b;
|
||||
sOcarinaNoteABtnEnv.b += b;
|
||||
}
|
||||
|
||||
r = ABS(sOcarinaNoteCPrimR - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][0]) /
|
||||
r = ABS(sOcarinaNoteCBtnPrim.r - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][0]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
g = ABS(sOcarinaNoteCPrimG - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][1]) /
|
||||
g = ABS(sOcarinaNoteCBtnPrim.g - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][1]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
b = ABS(sOcarinaNoteCPrimB - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][2]) /
|
||||
b = ABS(sOcarinaNoteCBtnPrim.b - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][2]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
|
||||
ru = ABS(sOcarinaNoteCUpPrimR - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][0]) /
|
||||
ru = ABS(sOcarinaNoteD5Prim.r - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][0]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
gu = ABS(sOcarinaNoteCUpPrimG - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][1]) /
|
||||
gu = ABS(sOcarinaNoteD5Prim.g - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][1]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
bu = ABS(sOcarinaNoteCUpPrimB - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][2]) /
|
||||
bu = ABS(sOcarinaNoteD5Prim.b - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][2]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
rl = ABS(sOcarinaNoteCLeftPrimR - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][0]) /
|
||||
rl = ABS(sOcarinaNoteB4Prim.r - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][0]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
gl = ABS(sOcarinaNoteCLeftPrimG - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][1]) /
|
||||
gl = ABS(sOcarinaNoteB4Prim.g - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][1]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
bl = ABS(sOcarinaNoteCLeftPrimB - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][2]) /
|
||||
bl = ABS(sOcarinaNoteB4Prim.b - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][2]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
rd = ABS(sOcarinaNoteCDownPrimR - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][0]) /
|
||||
rd = ABS(sOcarinaNoteF4Prim.r - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][0]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
gd = ABS(sOcarinaNoteCDownPrimG - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][1]) /
|
||||
gd = ABS(sOcarinaNoteF4Prim.g - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][1]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
bd = ABS(sOcarinaNoteCDownPrimB - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][2]) /
|
||||
bd = ABS(sOcarinaNoteF4Prim.b - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][2]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
rr = ABS(sOcarinaNoteCRightPrimR - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][0]) /
|
||||
rr = ABS(sOcarinaNoteA4Prim.r - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][0]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
gr = ABS(sOcarinaNoteCRightPrimG - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][1]) /
|
||||
gr = ABS(sOcarinaNoteA4Prim.g - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][1]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
br = ABS(sOcarinaNoteCRightPrimB - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][2]) /
|
||||
br = ABS(sOcarinaNoteA4Prim.b - sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][2]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
|
||||
if (sOcarinaNoteCPrimR >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][0]) {
|
||||
sOcarinaNoteCPrimR -= r;
|
||||
if (sOcarinaNoteCBtnPrim.r >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][0]) {
|
||||
sOcarinaNoteCBtnPrim.r -= r;
|
||||
} else {
|
||||
sOcarinaNoteCPrimR += r;
|
||||
sOcarinaNoteCBtnPrim.r += r;
|
||||
}
|
||||
if (sOcarinaNoteCPrimG >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][1]) {
|
||||
sOcarinaNoteCPrimG -= g;
|
||||
if (sOcarinaNoteCBtnPrim.g >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][1]) {
|
||||
sOcarinaNoteCBtnPrim.g -= g;
|
||||
} else {
|
||||
sOcarinaNoteCPrimG += g;
|
||||
sOcarinaNoteCBtnPrim.g += g;
|
||||
}
|
||||
if (sOcarinaNoteCPrimB >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][2]) {
|
||||
sOcarinaNoteCPrimB -= b;
|
||||
if (sOcarinaNoteCBtnPrim.b >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][2]) {
|
||||
sOcarinaNoteCBtnPrim.b -= b;
|
||||
} else {
|
||||
sOcarinaNoteCPrimB += b;
|
||||
sOcarinaNoteCBtnPrim.b += b;
|
||||
}
|
||||
|
||||
if (sOcarinaNoteCUpPrimR >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][0]) {
|
||||
sOcarinaNoteCUpPrimR -= ru;
|
||||
if (sOcarinaNoteD5Prim.r >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][0]) {
|
||||
sOcarinaNoteD5Prim.r -= ru;
|
||||
} else {
|
||||
sOcarinaNoteCUpPrimR += ru;
|
||||
sOcarinaNoteD5Prim.r += ru;
|
||||
}
|
||||
if (sOcarinaNoteCUpPrimG >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][1]) {
|
||||
sOcarinaNoteCUpPrimG -= gu;
|
||||
if (sOcarinaNoteD5Prim.g >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][1]) {
|
||||
sOcarinaNoteD5Prim.g -= gu;
|
||||
} else {
|
||||
sOcarinaNoteCUpPrimG += gu;
|
||||
sOcarinaNoteD5Prim.g += gu;
|
||||
}
|
||||
if (sOcarinaNoteCUpPrimB >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][2]) {
|
||||
sOcarinaNoteCUpPrimB -= bu;
|
||||
if (sOcarinaNoteD5Prim.b >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][2]) {
|
||||
sOcarinaNoteD5Prim.b -= bu;
|
||||
} else {
|
||||
sOcarinaNoteCUpPrimB += bu;
|
||||
sOcarinaNoteD5Prim.b += bu;
|
||||
}
|
||||
|
||||
if (sOcarinaNoteCLeftPrimR >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][0]) {
|
||||
sOcarinaNoteCLeftPrimR -= rl;
|
||||
if (sOcarinaNoteB4Prim.r >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][0]) {
|
||||
sOcarinaNoteB4Prim.r -= rl;
|
||||
} else {
|
||||
sOcarinaNoteCLeftPrimR += rl;
|
||||
sOcarinaNoteB4Prim.r += rl;
|
||||
}
|
||||
if (sOcarinaNoteCLeftPrimG >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][1]) {
|
||||
sOcarinaNoteCLeftPrimG -= gl;
|
||||
if (sOcarinaNoteB4Prim.g >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][1]) {
|
||||
sOcarinaNoteB4Prim.g -= gl;
|
||||
} else {
|
||||
sOcarinaNoteCLeftPrimG += gl;
|
||||
sOcarinaNoteB4Prim.g += gl;
|
||||
}
|
||||
if (sOcarinaNoteCLeftPrimB >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][2]) {
|
||||
sOcarinaNoteCLeftPrimB -= bl;
|
||||
if (sOcarinaNoteB4Prim.b >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][2]) {
|
||||
sOcarinaNoteB4Prim.b -= bl;
|
||||
} else {
|
||||
sOcarinaNoteCLeftPrimB += bl;
|
||||
sOcarinaNoteB4Prim.b += bl;
|
||||
}
|
||||
|
||||
if (sOcarinaNoteCDownPrimR >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][0]) {
|
||||
sOcarinaNoteCDownPrimR -= rd;
|
||||
if (sOcarinaNoteF4Prim.r >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][0]) {
|
||||
sOcarinaNoteF4Prim.r -= rd;
|
||||
} else {
|
||||
sOcarinaNoteCDownPrimR += rd;
|
||||
sOcarinaNoteF4Prim.r += rd;
|
||||
}
|
||||
if (sOcarinaNoteCDownPrimG >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][1]) {
|
||||
sOcarinaNoteCDownPrimG -= gd;
|
||||
if (sOcarinaNoteF4Prim.g >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][1]) {
|
||||
sOcarinaNoteF4Prim.g -= gd;
|
||||
} else {
|
||||
sOcarinaNoteCDownPrimG += gd;
|
||||
sOcarinaNoteF4Prim.g += gd;
|
||||
}
|
||||
if (sOcarinaNoteCDownPrimB >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][2]) {
|
||||
sOcarinaNoteCDownPrimB -= bd;
|
||||
if (sOcarinaNoteF4Prim.b >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][2]) {
|
||||
sOcarinaNoteF4Prim.b -= bd;
|
||||
} else {
|
||||
sOcarinaNoteCDownPrimB += bd;
|
||||
sOcarinaNoteF4Prim.b += bd;
|
||||
}
|
||||
|
||||
if (sOcarinaNoteCRightPrimR >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][0]) {
|
||||
sOcarinaNoteCRightPrimR -= rr;
|
||||
if (sOcarinaNoteA4Prim.r >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][0]) {
|
||||
sOcarinaNoteA4Prim.r -= rr;
|
||||
} else {
|
||||
sOcarinaNoteCRightPrimR += rr;
|
||||
sOcarinaNoteA4Prim.r += rr;
|
||||
}
|
||||
if (sOcarinaNoteCRightPrimG >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][1]) {
|
||||
sOcarinaNoteCRightPrimG -= gr;
|
||||
if (sOcarinaNoteA4Prim.g >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][1]) {
|
||||
sOcarinaNoteA4Prim.g -= gr;
|
||||
} else {
|
||||
sOcarinaNoteCRightPrimG += gr;
|
||||
sOcarinaNoteA4Prim.g += gr;
|
||||
}
|
||||
if (sOcarinaNoteCRightPrimB >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][2]) {
|
||||
sOcarinaNoteCRightPrimB -= br;
|
||||
if (sOcarinaNoteA4Prim.b >= sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][2]) {
|
||||
sOcarinaNoteA4Prim.b -= br;
|
||||
} else {
|
||||
sOcarinaNoteCRightPrimB += br;
|
||||
sOcarinaNoteA4Prim.b += br;
|
||||
}
|
||||
|
||||
r = ABS(sOcarinaNoteCEnvR - sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][0]) /
|
||||
r = ABS(sOcarinaNoteCBtnEnv.r - sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][0]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
g = ABS(sOcarinaNoteCEnvG - sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][1]) /
|
||||
g = ABS(sOcarinaNoteCBtnEnv.g - sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][1]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
b = ABS(sOcarinaNoteCEnvB - sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][2]) /
|
||||
b = ABS(sOcarinaNoteCBtnEnv.b - sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][2]) /
|
||||
sOcarinaNoteFlashTimer;
|
||||
|
||||
if (sOcarinaNoteCEnvR >= sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][0]) {
|
||||
sOcarinaNoteCEnvR -= r;
|
||||
if (sOcarinaNoteCBtnEnv.r >= sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][0]) {
|
||||
sOcarinaNoteCBtnEnv.r -= r;
|
||||
} else {
|
||||
sOcarinaNoteCEnvR += r;
|
||||
sOcarinaNoteCBtnEnv.r += r;
|
||||
}
|
||||
if (sOcarinaNoteCEnvG >= sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][1]) {
|
||||
sOcarinaNoteCEnvG -= g;
|
||||
if (sOcarinaNoteCBtnEnv.g >= sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][1]) {
|
||||
sOcarinaNoteCBtnEnv.g -= g;
|
||||
} else {
|
||||
sOcarinaNoteCEnvG += g;
|
||||
sOcarinaNoteCBtnEnv.g += g;
|
||||
}
|
||||
if (sOcarinaNoteCEnvB >= sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][2]) {
|
||||
sOcarinaNoteCEnvB -= b;
|
||||
if (sOcarinaNoteCBtnEnv.b >= sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][2]) {
|
||||
sOcarinaNoteCBtnEnv.b -= b;
|
||||
} else {
|
||||
sOcarinaNoteCEnvB += b;
|
||||
sOcarinaNoteCBtnEnv.b += b;
|
||||
}
|
||||
|
||||
sOcarinaNoteFlashTimer--;
|
||||
if (sOcarinaNoteFlashTimer == 0) {
|
||||
sOcarinaNoteAPrimR = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][0];
|
||||
sOcarinaNoteAPrimG = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][1];
|
||||
sOcarinaNoteAPrimB = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][2];
|
||||
sOcarinaNoteAEnvR = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][0];
|
||||
sOcarinaNoteAEnvG = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][1];
|
||||
sOcarinaNoteAEnvB = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][2];
|
||||
sOcarinaNoteCPrimR = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][0];
|
||||
sOcarinaNoteCPrimG = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][1];
|
||||
sOcarinaNoteCPrimB = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][2];
|
||||
sOcarinaNoteCUpPrimR = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][0];
|
||||
sOcarinaNoteCUpPrimG = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][1];
|
||||
sOcarinaNoteCUpPrimB = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][2];
|
||||
sOcarinaNoteCLeftPrimR = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][0];
|
||||
sOcarinaNoteCLeftPrimG = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][1];
|
||||
sOcarinaNoteCLeftPrimB = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][2];
|
||||
sOcarinaNoteCDownPrimR = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][0];
|
||||
sOcarinaNoteCDownPrimG = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][1];
|
||||
sOcarinaNoteCDownPrimB = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][2];
|
||||
sOcarinaNoteCRightPrimR = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][0];
|
||||
sOcarinaNoteCRightPrimG = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][1];
|
||||
sOcarinaNoteCRightPrimB = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][2];
|
||||
sOcarinaNoteCEnvR = sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][0];
|
||||
sOcarinaNoteCEnvG = sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][1];
|
||||
sOcarinaNoteCEnvB = sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][2];
|
||||
sOcarinaNoteD4Prim.r = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][0];
|
||||
sOcarinaNoteD4Prim.g = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][1];
|
||||
sOcarinaNoteD4Prim.b = sOcarinaNoteAPrimColors[sOcarinaNoteFlashColorIdx][2];
|
||||
sOcarinaNoteABtnEnv.r = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][0];
|
||||
sOcarinaNoteABtnEnv.g = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][1];
|
||||
sOcarinaNoteABtnEnv.b = sOcarinaNoteAEnvColors[sOcarinaNoteFlashColorIdx][2];
|
||||
sOcarinaNoteCBtnPrim.r = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][0];
|
||||
sOcarinaNoteCBtnPrim.g = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][1];
|
||||
sOcarinaNoteCBtnPrim.b = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx][2];
|
||||
sOcarinaNoteD5Prim.r = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][0];
|
||||
sOcarinaNoteD5Prim.g = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][1];
|
||||
sOcarinaNoteD5Prim.b = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+5][2];
|
||||
sOcarinaNoteB4Prim.r = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][0];
|
||||
sOcarinaNoteB4Prim.g = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][1];
|
||||
sOcarinaNoteB4Prim.b = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+2][2];
|
||||
sOcarinaNoteF4Prim.r = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][0];
|
||||
sOcarinaNoteF4Prim.g = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][1];
|
||||
sOcarinaNoteF4Prim.b = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+3][2];
|
||||
sOcarinaNoteA4Prim.r = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][0];
|
||||
sOcarinaNoteA4Prim.g = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][1];
|
||||
sOcarinaNoteA4Prim.b = sOcarinaNoteCPrimColors[sOcarinaNoteFlashColorIdx+4][2];
|
||||
sOcarinaNoteCBtnEnv.r = sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][0];
|
||||
sOcarinaNoteCBtnEnv.g = sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][1];
|
||||
sOcarinaNoteCBtnEnv.b = sOcarinaNoteCEnvColors[sOcarinaNoteFlashColorIdx][2];
|
||||
sOcarinaNoteFlashTimer = 3;
|
||||
sOcarinaNoteFlashColorIdx ^= 1;
|
||||
}
|
||||
@ -3120,32 +3185,24 @@ void Message_DrawMain(GlobalContext* globalCtx, Gfx** p) {
|
||||
}
|
||||
|
||||
gDPPipeSync(gfx++);
|
||||
if (sOcarinaNoteBuf[i] == OCARINA_NOTE_A) {
|
||||
if (CVar_GetS32("gHudColors", 1) == 0) { //A buttons :)
|
||||
gDPSetPrimColor(gfx++, 0, 0, 80, 150, 255, sOcarinaNotesAlphaValues[i]);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 1) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteAPrimR, sOcarinaNoteAPrimG, sOcarinaNoteAPrimB, sOcarinaNotesAlphaValues[i]);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, CVar_GetS32("gCCABtnPrimR", 80), CVar_GetS32("gCCABtnPrimG", 255), CVar_GetS32("gCCABtnPrimB", 150), sOcarinaNotesAlphaValues[i]);
|
||||
}
|
||||
gDPSetEnvColor(gfx++, sOcarinaNoteAEnvR, sOcarinaNoteAEnvG, sOcarinaNoteAEnvB, 0);
|
||||
|
||||
// Since I don't know what exactly these Env vars are used for, I elected keep their usage
|
||||
// consistent with the note played, rather than having AEnv be used for whatever note A happens to
|
||||
// play at the moment and CEnv for everything else, even with custom controls enabled.
|
||||
if (sOcarinaNoteBuf[i] == OCARINA_NOTE_D4) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteD4Prim.r, sOcarinaNoteD4Prim.g, sOcarinaNoteD4Prim.b, sOcarinaNotesAlphaValues[i]);
|
||||
gDPSetEnvColor(gfx++, sOcarinaNoteABtnEnv.r, sOcarinaNoteABtnEnv.g, sOcarinaNoteABtnEnv.b, 0);
|
||||
} else {
|
||||
if (CVar_GetS32("gHudColors", 1) == 0) { //C buttons :)
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCPrimR, sOcarinaNoteCPrimG, sOcarinaNoteCPrimB, sOcarinaNotesAlphaValues[i]);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 1) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCPrimR, sOcarinaNoteCPrimG, sOcarinaNoteCPrimB, sOcarinaNotesAlphaValues[i]);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, CVar_GetS32("gCCCBtnPrimR", 255), CVar_GetS32("gCCCBtnPrimG", 255), CVar_GetS32("gCCCBtnPrimB", 180), sOcarinaNotesAlphaValues[i]);
|
||||
} else if (sOcarinaNoteBuf[i] == OCARINA_NOTE_C_UP && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCUpPrimR, sOcarinaNoteCUpPrimG, sOcarinaNoteCUpPrimB, sOcarinaNotesAlphaValues[i]);
|
||||
} else if (sOcarinaNoteBuf[i] == OCARINA_NOTE_C_LEFT && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCLeftPrimR, sOcarinaNoteCLeftPrimG, sOcarinaNoteCLeftPrimB, sOcarinaNotesAlphaValues[i]);
|
||||
} else if (sOcarinaNoteBuf[i] == OCARINA_NOTE_C_RIGHT && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCRightPrimR, sOcarinaNoteCRightPrimG, sOcarinaNoteCRightPrimB, sOcarinaNotesAlphaValues[i]);
|
||||
} else if (sOcarinaNoteBuf[i] == OCARINA_NOTE_C_DOWN && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCDownPrimR, sOcarinaNoteCDownPrimG, sOcarinaNoteCDownPrimB, sOcarinaNotesAlphaValues[i]);
|
||||
if (sOcarinaNoteBuf[i] == OCARINA_NOTE_D5) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteD5Prim.r, sOcarinaNoteD5Prim.g, sOcarinaNoteD5Prim.b, sOcarinaNotesAlphaValues[i]);
|
||||
} else if (sOcarinaNoteBuf[i] == OCARINA_NOTE_B4) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteB4Prim.r, sOcarinaNoteB4Prim.g, sOcarinaNoteB4Prim.b, sOcarinaNotesAlphaValues[i]);
|
||||
} else if (sOcarinaNoteBuf[i] == OCARINA_NOTE_A4) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteA4Prim.r, sOcarinaNoteA4Prim.g, sOcarinaNoteA4Prim.b, sOcarinaNotesAlphaValues[i]);
|
||||
} else if (sOcarinaNoteBuf[i] == OCARINA_NOTE_F4) {
|
||||
gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteF4Prim.r, sOcarinaNoteF4Prim.g, sOcarinaNoteF4Prim.b, sOcarinaNotesAlphaValues[i]);
|
||||
}
|
||||
gDPSetEnvColor(gfx++, sOcarinaNoteCEnvR, sOcarinaNoteCEnvG, sOcarinaNoteCEnvB, 0);
|
||||
gDPSetEnvColor(gfx++, sOcarinaNoteCBtnEnv.r, sOcarinaNoteCBtnEnv.g, sOcarinaNoteCBtnEnv.b, 0);
|
||||
}
|
||||
|
||||
gDPLoadTextureBlock(gfx++, sOcarinaNoteTextures[sOcarinaNoteBuf[i]], G_IM_FMT_IA, G_IM_SIZ_8b, 16,
|
||||
|
@ -187,7 +187,7 @@ static u8 sJumpOrder[] = {
|
||||
};
|
||||
|
||||
static u8 sOcarinaNotes[] = {
|
||||
OCARINA_NOTE_A, OCARINA_NOTE_C_DOWN, OCARINA_NOTE_C_RIGHT, OCARINA_NOTE_C_LEFT, OCARINA_NOTE_C_UP,
|
||||
OCARINA_NOTE_D4, OCARINA_NOTE_F4, OCARINA_NOTE_A4, OCARINA_NOTE_B4, OCARINA_NOTE_D5,
|
||||
};
|
||||
|
||||
void EnFr_OrientUnderwater(EnFr* this) {
|
||||
@ -680,19 +680,19 @@ void EnFr_ListeningToOcarinaNotes(EnFr* this, GlobalContext* globalCtx) {
|
||||
break;
|
||||
case OCARINA_MODE_01: // Ocarina note played, but no song played
|
||||
switch (globalCtx->msgCtx.lastOcaNoteIdx) { // Jumping frogs in open ocarina based on ocarina note played
|
||||
case OCARINA_NOTE_A:
|
||||
case OCARINA_NOTE_D4:
|
||||
EnFr_SetupJumpingUp(this, FROG_BLUE);
|
||||
break;
|
||||
case OCARINA_NOTE_C_DOWN:
|
||||
case OCARINA_NOTE_F4:
|
||||
EnFr_SetupJumpingUp(this, FROG_YELLOW);
|
||||
break;
|
||||
case OCARINA_NOTE_C_RIGHT:
|
||||
case OCARINA_NOTE_A4:
|
||||
EnFr_SetupJumpingUp(this, FROG_RED);
|
||||
break;
|
||||
case OCARINA_NOTE_C_LEFT:
|
||||
case OCARINA_NOTE_B4:
|
||||
EnFr_SetupJumpingUp(this, FROG_PURPLE);
|
||||
break;
|
||||
case OCARINA_NOTE_C_UP:
|
||||
case OCARINA_NOTE_D5:
|
||||
EnFr_SetupJumpingUp(this, FROG_WHITE);
|
||||
break;
|
||||
}
|
||||
@ -871,19 +871,19 @@ void EnFr_ContinueFrogSong(EnFr* this, GlobalContext* globalCtx) {
|
||||
if (globalCtx->msgCtx.msgMode == MSGMODE_FROGS_WAITING) {
|
||||
globalCtx->msgCtx.msgMode = MSGMODE_FROGS_START;
|
||||
switch (globalCtx->msgCtx.lastOcaNoteIdx) {
|
||||
case OCARINA_NOTE_A:
|
||||
case OCARINA_NOTE_D4:
|
||||
EnFr_SetupJumpingUp(this, FROG_BLUE);
|
||||
break;
|
||||
case OCARINA_NOTE_C_DOWN:
|
||||
case OCARINA_NOTE_F4:
|
||||
EnFr_SetupJumpingUp(this, FROG_YELLOW);
|
||||
break;
|
||||
case OCARINA_NOTE_C_RIGHT:
|
||||
case OCARINA_NOTE_A4:
|
||||
EnFr_SetupJumpingUp(this, FROG_RED);
|
||||
break;
|
||||
case OCARINA_NOTE_C_LEFT:
|
||||
case OCARINA_NOTE_B4:
|
||||
EnFr_SetupJumpingUp(this, FROG_PURPLE);
|
||||
break;
|
||||
case OCARINA_NOTE_C_UP:
|
||||
case OCARINA_NOTE_D5:
|
||||
EnFr_SetupJumpingUp(this, FROG_WHITE);
|
||||
}
|
||||
if (EnFr_IsFrogSongComplete(this, globalCtx)) {
|
||||
|
@ -107,30 +107,30 @@ void func_80A8F320(EnKakasi* this, GlobalContext* globalCtx, s16 arg) {
|
||||
ocarinaNote = this->unk_1A6;
|
||||
}
|
||||
switch (ocarinaNote) {
|
||||
case OCARINA_NOTE_A:
|
||||
case OCARINA_NOTE_D4:
|
||||
this->unk_19A++;
|
||||
if (this->unk_1A4 == 0) {
|
||||
this->unk_1A4 = 1;
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EV_KAKASHI_ROLL);
|
||||
}
|
||||
break;
|
||||
case OCARINA_NOTE_C_DOWN:
|
||||
case OCARINA_NOTE_F4:
|
||||
this->unk_19A++;
|
||||
this->unk_1B8 = 1.0f;
|
||||
break;
|
||||
case OCARINA_NOTE_C_RIGHT:
|
||||
case OCARINA_NOTE_A4:
|
||||
this->unk_19A++;
|
||||
if (this->unk_1AC == 0) {
|
||||
this->unk_1AC = 0x1388;
|
||||
}
|
||||
break;
|
||||
case OCARINA_NOTE_C_LEFT:
|
||||
case OCARINA_NOTE_B4:
|
||||
this->unk_19A++;
|
||||
if (this->unk_1A8 == 0) {
|
||||
this->unk_1A8 = 0x1388;
|
||||
}
|
||||
break;
|
||||
case OCARINA_NOTE_C_UP:
|
||||
case OCARINA_NOTE_D5:
|
||||
this->unk_19A++;
|
||||
this->unk_1B8 = 2.0f;
|
||||
break;
|
||||
|
@ -110,30 +110,30 @@ void func_80A90EBC(EnKakasi3* this, GlobalContext* globalCtx, s32 arg) {
|
||||
ocarinaNote = this->unk_1A6;
|
||||
}
|
||||
switch (ocarinaNote) {
|
||||
case OCARINA_NOTE_A:
|
||||
case OCARINA_NOTE_D4:
|
||||
this->unk_19A++;
|
||||
if (this->unk_1A4 == 0) {
|
||||
this->unk_1A4 = 1;
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EV_KAKASHI_ROLL);
|
||||
}
|
||||
break;
|
||||
case OCARINA_NOTE_C_DOWN:
|
||||
case OCARINA_NOTE_F4:
|
||||
this->unk_19A++;
|
||||
this->unk_1B8 = 1.0f;
|
||||
break;
|
||||
case OCARINA_NOTE_C_RIGHT:
|
||||
case OCARINA_NOTE_A4:
|
||||
this->unk_19A++;
|
||||
if (this->unk_1AE == 0x0) {
|
||||
this->unk_1AE = 0x1388;
|
||||
}
|
||||
break;
|
||||
case OCARINA_NOTE_C_LEFT:
|
||||
case OCARINA_NOTE_B4:
|
||||
this->unk_19A++;
|
||||
if (this->unk_1AA == 0x0) {
|
||||
this->unk_1AA = 0x1388;
|
||||
}
|
||||
break;
|
||||
case OCARINA_NOTE_C_UP:
|
||||
case OCARINA_NOTE_D5:
|
||||
this->unk_19A++;
|
||||
this->unk_1B8 = 2.0f;
|
||||
break;
|
||||
|
@ -508,13 +508,13 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 255, 255, 50, D_8082A150[sp218]);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", 255), CVar_GetS32("gCCCBtnPrimG", 160), CVar_GetS32("gCCCBtnPrimB", 0), D_8082A150[sp218]);
|
||||
} else if (D_8082A124[sp218] == OCARINA_NOTE_C_UP && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
} else if (D_8082A124[sp218] == OCARINA_NOTE_D5 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCUBtnPrimR", 255), CVar_GetS32("gCCCUBtnPrimG", 160), CVar_GetS32("gCCCUBtnPrimB", 0), D_8082A150[sp218]);
|
||||
} else if (D_8082A124[sp218] == OCARINA_NOTE_C_LEFT && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
} else if (D_8082A124[sp218] == OCARINA_NOTE_B4 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCLBtnPrimR", 255), CVar_GetS32("gCCCLBtnPrimG", 160), CVar_GetS32("gCCCLBtnPrimB", 0), D_8082A150[sp218]);
|
||||
} else if (D_8082A124[sp218] == OCARINA_NOTE_C_RIGHT && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
} else if (D_8082A124[sp218] == OCARINA_NOTE_A4 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCRBtnPrimR", 255), CVar_GetS32("gCCCRBtnPrimG", 160), CVar_GetS32("gCCCRBtnPrimB", 0), D_8082A150[sp218]);
|
||||
} else if (D_8082A124[sp218] == OCARINA_NOTE_C_DOWN && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
} else if (D_8082A124[sp218] == OCARINA_NOTE_F4 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCDBtnPrimR", 255), CVar_GetS32("gCCCDBtnPrimG", 160), CVar_GetS32("gCCCDBtnPrimB", 0), D_8082A150[sp218]);
|
||||
}
|
||||
}
|
||||
@ -558,13 +558,13 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 255, 255, 50, 200);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", 255), CVar_GetS32("gCCCBtnPrimG", 160), CVar_GetS32("gCCCBtnPrimB", 0), 200);
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_C_UP && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_D5 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCUBtnPrimR", 255), CVar_GetS32("gCCCUBtnPrimG", 160), CVar_GetS32("gCCCUBtnPrimB", 0), 200);
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_C_LEFT && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_B4 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCLBtnPrimR", 255), CVar_GetS32("gCCCLBtnPrimG", 160), CVar_GetS32("gCCCLBtnPrimB", 0), 200);
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_C_RIGHT && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_A4 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCRBtnPrimR", 255), CVar_GetS32("gCCCRBtnPrimG", 160), CVar_GetS32("gCCCRBtnPrimB", 0), 200);
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_C_DOWN && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_F4 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCDBtnPrimR", 255), CVar_GetS32("gCCCDBtnPrimG", 160), CVar_GetS32("gCCCDBtnPrimB", 0), 200);
|
||||
}
|
||||
}
|
||||
@ -588,8 +588,8 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx
|
||||
|
||||
if (pauseCtx->ocarinaStaff->pos != 0) {
|
||||
if (D_8082A11C == (pauseCtx->ocarinaStaff->pos - 1)) {
|
||||
if ((pauseCtx->ocarinaStaff->noteIdx >= OCARINA_NOTE_A) &&
|
||||
(pauseCtx->ocarinaStaff->noteIdx <= OCARINA_NOTE_C_UP)) {
|
||||
if ((pauseCtx->ocarinaStaff->noteIdx >= OCARINA_NOTE_D4) &&
|
||||
(pauseCtx->ocarinaStaff->noteIdx <= OCARINA_NOTE_D5)) {
|
||||
D_8082A124[pauseCtx->ocarinaStaff->pos - 1] = pauseCtx->ocarinaStaff->noteIdx;
|
||||
D_8082A124[pauseCtx->ocarinaStaff->pos] = 0xFF;
|
||||
D_8082A11C++;
|
||||
@ -631,13 +631,13 @@ void KaleidoScope_DrawQuestStatus(GlobalContext* globalCtx, GraphicsContext* gfx
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 255, 255, 50, 200);
|
||||
} else if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", 255), CVar_GetS32("gCCCBtnPrimG", 255), CVar_GetS32("gCCCBtnPrimB", 0), D_8082A150[phi_s3]);
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_C_UP && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_D5 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCUBtnPrimR", 255), CVar_GetS32("gCCCUBtnPrimG", 255), CVar_GetS32("gCCCUBtnPrimB", 0), D_8082A150[phi_s3]);
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_C_LEFT && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_B4 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCLBtnPrimR", 255), CVar_GetS32("gCCCLBtnPrimG", 255), CVar_GetS32("gCCCLBtnPrimB", 0), D_8082A150[phi_s3]);
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_C_RIGHT && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_A4 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCRBtnPrimR", 255), CVar_GetS32("gCCCRBtnPrimG", 255), CVar_GetS32("gCCCRBtnPrimB", 0), D_8082A150[phi_s3]);
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_C_DOWN && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
} else if (gOcarinaSongNotes[sp224].notesIdx[phi_s3] == OCARINA_NOTE_F4 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
|
||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, CVar_GetS32("gCCCDBtnPrimR", 255), CVar_GetS32("gCCCDBtnPrimG", 255), CVar_GetS32("gCCCDBtnPrimB", 0), D_8082A150[phi_s3]);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user