Docs, is-named bool functions and MSVC utf-8

This commit is contained in:
shweet committed 2026-11-12 21:48:04 -05:00
1 parent 1a0db1abbd
commit 1cf4d1ea85
18 files changed
+443 -586

No files matched your search

+37 -38
View File
@@ -255,7 +255,7 @@ static void panel_bar_draw(Play& play, bool& isOpen, float slide, ImVec2 positio
{
ImVec2 buttonSize = ImGui::GetContentRegionAvail();
ImVec2 cursor = ImGui::GetCursorScreenPos();
bool isPressed = fx(ImGui::Button("##Toggle", buttonSize));
bool isPressed = is_fx(ImGui::Button("##Toggle", buttonSize));
if (slide <= 0 || slide >= 1)
{
tooltip_set(character.strings[isOpen ? closeTooltip : openTooltip].c_str());
@@ -396,7 +396,7 @@ static void interact_tab_draw(Play& play, Settings& settings)
if (play.spawnDelay <= 0)
{
ImGui::BeginDisabled(!play.is_spawn_possible());
if (fx(ImGui::Button(strings[STRING_InteractSpawnItemButton].c_str(), {width, 0})))
if (is_fx(ImGui::Button(strings[STRING_InteractSpawnItemButton].c_str(), {width, 0})))
play.spawn_queue_add();
ImGui::EndDisabled();
}
@@ -416,7 +416,7 @@ static void interact_tab_draw(Play& play, Settings& settings)
isFood |= character.items[entity.id].use == USE_EDIBLE;
ImGui::BeginDisabled(!isFood);
StringId autofeedLabel = play.isAutofeed ? STRING_InventoryDisableAutofeedButton : STRING_InventoryEnableAutofeedButton;
if (fx(ImGui::Button(strings[autofeedLabel].c_str(), {width, 0})))
if (is_fx(ImGui::Button(strings[autofeedLabel].c_str(), {width, 0})))
play.isAutofeed = !play.isAutofeed;
ImGui::EndDisabled();
tooltip_set(strings[play.isAutofeed ? STRING_InventoryDisableAutofeedTooltip : STRING_InventoryEnableAutofeedTooltip]
@@ -430,7 +430,7 @@ static void interact_tab_draw(Play& play, Settings& settings)
if (!isShown)
return;
ImGui::PushFont(nullptr, size);
if (fx(ImGui::Button(strings[label].c_str(), {width, 0})))
if (is_fx(ImGui::Button(strings[label].c_str(), {width, 0})))
play.text.set(play, (dialogue.*get)(name));
ImGui::PopFont();
};
@@ -476,7 +476,7 @@ static void catalog_tab_draw(Play& play, Ui& ui, Renderer& renderer, std::vector
ImVec2 padding = {(ITEM_SIZE - image.x) / 2, (ITEM_SIZE - image.y) / 2};
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding,
{ImGui::GetStyle().FramePadding.x + padding.x, ImGui::GetStyle().FramePadding.y + padding.y});
if (fx(ImGui::ImageButton("##Item", texture_id_get(canvases[i].texture), image, {0, 0}, {1, 1}, {}, tint)))
if (is_fx(ImGui::ImageButton("##Item", texture_id_get(canvases[i].texture), image, {0, 0}, {1, 1}, {}, tint)))
ui.selectedItem = i;
ImGui::PopStyleVar();
if (isSelected)
@@ -543,25 +543,25 @@ static void cheats_tab_draw(Play& play)
std::array<std::string, STRING_COUNT>& strings = character.strings;
if (!ImGui::BeginChild("##Cheats"))
return ImGui::EndChild();
fx(ImGui::SliderFloat(strings[STRING_CheatsCalories].c_str(), &progress.calories, 0, play.capacity_max_get(),
is_fx(ImGui::SliderFloat(strings[STRING_CheatsCalories].c_str(), &progress.calories, 0, play.capacity_max_get(),
"%0.0f kcal"));
fx(ImGui::SliderFloat(strings[STRING_CheatsCapacity].c_str(), &progress.capacity, character.capacityMin,
is_fx(ImGui::SliderFloat(strings[STRING_CheatsCapacity].c_str(), &progress.capacity, character.capacityMin,
character.capacityMax, "%0.0f kcal"));
if (fx(ImGui::SliderFloat(strings[STRING_CheatsWeight].c_str(), &progress.weight, character.weight,
if (is_fx(ImGui::SliderFloat(strings[STRING_CheatsWeight].c_str(), &progress.weight, character.weight,
character.weightMax, strings[STRING_CheatsWeightFormat].c_str())))
play.idle_play();
int stage = play.stage + 1;
if (fx(ImGui::SliderInt(strings[STRING_CheatsStage].c_str(), &stage, 1, (int)character.stages.size() + 1)))
if (is_fx(ImGui::SliderInt(strings[STRING_CheatsStage].c_str(), &stage, 1, (int)character.stages.size() + 1)))
{
play.stage = stage - 1;
progress.weight = play.stage_threshold_get(play.stage);
play.idle_play();
}
float rate = progress.digestionRate * TICK_RATE;
if (fx(ImGui::SliderFloat(strings[STRING_CheatsDigestionRate].c_str(), &rate, character.digestionRateMin * TICK_RATE,
if (is_fx(ImGui::SliderFloat(strings[STRING_CheatsDigestionRate].c_str(), &rate, character.digestionRateMin * TICK_RATE,
character.digestionRateMax * TICK_RATE, strings[STRING_CheatsDigestionRateFormat].c_str())))
progress.digestionRate = rate / TICK_RATE;
if (fx(ImGui::Button(strings[STRING_CheatsDigestButton].c_str())))
if (is_fx(ImGui::Button(strings[STRING_CheatsDigestButton].c_str())))
progress.digestionProgress = DIGESTION_MAX;
ImGui::EndChild();
}
@@ -581,7 +581,7 @@ static void tools_draw(Play& play, ImVec2 position, ImVec2 size)
if (isActive)
ImGui::PushStyleColor(ImGuiCol_Button, ImGui::GetStyleColorVec4(ImGuiCol_ButtonHovered));
ImGui::BeginDisabled(isDisabled);
bool isPressed = fx(ImGui::Button(isIcon ? "##Icon" : label.c_str(), {side, side}));
bool isPressed = is_fx(ImGui::Button(isIcon ? "##Icon" : label.c_str(), {side, side}));
if (isIcon)
{
ImVec2 min = ImGui::GetItemRectMin();
@@ -647,41 +647,41 @@ void Ui::settings_update(Settings& settings, Audio& audio, const Character* char
return character ? character->strings[id].c_str() : STRING_DEFAULTS[id];
};
ImGui::SeparatorText(string_get(STRING_SettingsMeasurementSystem));
fx(ImGui::RadioButton(string_get(STRING_SettingsMetric), (int*)&settings.measurement, MEASUREMENT_METRIC));
is_fx(ImGui::RadioButton(string_get(STRING_SettingsMetric), (int*)&settings.measurement, MEASUREMENT_METRIC));
ImGui::SetItemTooltip("%s", string_get(STRING_SettingsMetricTooltip));
ImGui::SameLine();
fx(ImGui::RadioButton(string_get(STRING_SettingsImperial), (int*)&settings.measurement, MEASUREMENT_IMPERIAL));
is_fx(ImGui::RadioButton(string_get(STRING_SettingsImperial), (int*)&settings.measurement, MEASUREMENT_IMPERIAL));
ImGui::SetItemTooltip("%s", string_get(STRING_SettingsImperialTooltip));
ImGui::SeparatorText(string_get(STRING_SettingsWindow));
const char* modes[] = {string_get(STRING_SettingsWindowed), string_get(STRING_SettingsFullscreen)};
int mode = isFullscreen;
if (fx(ImGui::Combo(string_get(STRING_SettingsWindowMode), &mode, modes, 2)))
if (is_fx(ImGui::Combo(string_get(STRING_SettingsWindowMode), &mode, modes, 2)))
isFullscreenToggled = true;
ImGui::SetItemTooltip("%s", string_get(STRING_SettingsWindowModeTooltip));
ImGui::SeparatorText(string_get(STRING_SettingsSound));
ImGui::BeginDisabled(settings.isMuted);
if (fx(ImGui::SliderInt(string_get(STRING_SettingsVolume), &settings.volume, 0, (int)PERCENT, "%d%%")))
if (is_fx(ImGui::SliderInt(string_get(STRING_SettingsVolume), &settings.volume, 0, (int)PERCENT, "%d%%")))
audio.gain_set(settings.volume / PERCENT);
ImGui::SetItemTooltip("%s", string_get(STRING_SettingsVolumeTooltip));
ImGui::EndDisabled();
ImGui::SameLine();
if (fx(ImGui::Checkbox(string_get(STRING_SettingsMute), &settings.isMuted)))
if (is_fx(ImGui::Checkbox(string_get(STRING_SettingsMute), &settings.isMuted)))
audio.gain_set(settings.isMuted ? 0 : settings.volume / PERCENT);
ImGui::SetItemTooltip("%s", string_get(STRING_SettingsMuteTooltip));
ImGui::SeparatorText(string_get(STRING_SettingsAppearance));
bool isColorChanged = fx(ImGui::Checkbox(string_get(STRING_SettingsUseCharacterColor), &settings.isCharacterColor));
bool isColorChanged = is_fx(ImGui::Checkbox(string_get(STRING_SettingsUseCharacterColor), &settings.isCharacterColor));
ImGui::SetItemTooltip("%s", string_get(STRING_SettingsUseCharacterColorTooltip));
ImGui::SameLine();
ImGui::BeginDisabled(settings.isCharacterColor);
isColorChanged |= fx(ImGui::ColorEdit3(string_get(STRING_SettingsColor), &settings.color.r,
isColorChanged |= is_fx(ImGui::ColorEdit3(string_get(STRING_SettingsColor), &settings.color.r,
ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoTooltip));
ImGui::SetItemTooltip("%s", string_get(STRING_SettingsColorTooltip));
ImGui::EndDisabled();
ImGui::Separator();
if (fx(ImGui::Button(string_get(STRING_SettingsResetButton), {-FLT_MIN, 0})))
if (is_fx(ImGui::Button(string_get(STRING_SettingsResetButton), {-FLT_MIN, 0})))
{
settings.reset();
audio.gain_set(settings.volume / PERCENT);
@@ -693,10 +693,10 @@ void Ui::settings_update(Settings& settings, Audio& audio, const Character* char
if (!character)
return;
ImGui::Separator();
if (fx(ImGui::Button(string_get(STRING_SettingsSaveButton), {-FLT_MIN, 0})))
if (is_fx(ImGui::Button(string_get(STRING_SettingsSaveButton), {-FLT_MIN, 0})))
isSave = true;
ImGui::SetItemTooltip("%s", string_get(STRING_SettingsSaveTooltip));
if (fx(ImGui::Button(string_get(STRING_SettingsReturnToCharactersButton), {-FLT_MIN, 0})))
if (is_fx(ImGui::Button(string_get(STRING_SettingsReturnToCharactersButton), {-FLT_MIN, 0})))
isReturn = true;
ImGui::SetItemTooltip("%s", string_get(STRING_SettingsReturnToCharactersTooltip));
}
@@ -738,22 +738,22 @@ void Ui::play_update(Play& play, Settings& settings, Renderer& renderer, Audio&
ImGui::SetNextWindowPos({menuX, style.WindowPadding.y});
if (ImGui::Begin("##Menu", nullptr, PANEL_FLAGS) && ImGui::BeginTabBar("##Tabs"))
{
if (fx(ImGui::BeginTabItem(strings[STRING_MenuTabInteract].c_str())))
if (is_fx(ImGui::BeginTabItem(strings[STRING_MenuTabInteract].c_str())))
{
interact_tab_draw(play, settings);
ImGui::EndTabItem();
}
if (fx(ImGui::BeginTabItem(strings[STRING_MenuTabInventory].c_str())))
if (is_fx(ImGui::BeginTabItem(strings[STRING_MenuTabInventory].c_str())))
{
catalog_tab_draw(play, *this, renderer, itemCanvases, itemActors);
ImGui::EndTabItem();
}
if (fx(ImGui::BeginTabItem(strings[STRING_MenuTabSettings].c_str())))
if (is_fx(ImGui::BeginTabItem(strings[STRING_MenuTabSettings].c_str())))
{
settings_update(settings, audio, &character);
ImGui::EndTabItem();
}
if (play.isCheats && fx(ImGui::BeginTabItem(strings[STRING_MenuTabCheats].c_str())))
if (play.isCheats && is_fx(ImGui::BeginTabItem(strings[STRING_MenuTabCheats].c_str())))
{
cheats_tab_draw(play);
ImGui::EndTabItem();
@@ -767,12 +767,12 @@ void Ui::play_update(Play& play, Settings& settings, Renderer& renderer, Audio&
ImGui::PopStyleVar(2);
}
bool Ui::select_update(std::vector<Character>& characters, Settings& settings, Renderer& renderer, Audio& audio)
void Ui::select_update(std::vector<Character>& characters, Settings& settings, Renderer& renderer, Audio& audio)
{
ImGuiStyle& style = ImGui::GetStyle();
ImVec2 screen = ImGui::GetIO().DisplaySize;
ImVec2 half = {screen.x / 2 - style.WindowPadding.x * 2, screen.y / 2 - style.WindowPadding.y * 2};
bool isRefresh = false;
isRefresh = false;
characterIndex = characters.empty() ? -1 : std::clamp(characterIndex, 0, (int)characters.size() - 1);
Character* selected = characterIndex >= 0 ? &characters[characterIndex] : nullptr;
if (selected && progressIndex != characterIndex)
@@ -789,7 +789,7 @@ bool Ui::select_update(std::vector<Character>& characters, Settings& settings, R
if (ImGui::Begin("##Preview", nullptr, PANEL_FLAGS) && ImGui::BeginTabBar("##Preview Tabs"))
{
ImVec2 available = ImGui::GetContentRegionAvail();
if (fx(ImGui::BeginTabItem("Render")))
if (is_fx(ImGui::BeginTabItem("Render")))
{
if (Texture* render = selected->render)
{
@@ -803,7 +803,7 @@ bool Ui::select_update(std::vector<Character>& characters, Settings& settings, R
ImGui::TextWrapped("%s\n%s", selected->name.c_str(), selected->description.c_str());
ImGui::EndTabItem();
}
isPreview = fx(ImGui::BeginTabItem("In Game"));
isPreview = is_fx(ImGui::BeginTabItem("In Game"));
if (isPreview)
{
Anm2* anm2 = selected->anm2_get(selected->anm2Path, renderer, audio);
@@ -866,11 +866,11 @@ bool Ui::select_update(std::vector<Character>& characters, Settings& settings, R
ImVec2 buttonSize = {row_width_get(selectedProgress.isValid ? 2 : 1), 0};
if (selectedProgress.isValid)
{
isContinue = fx(ImGui::Button("Continue", buttonSize));
isContinue = is_fx(ImGui::Button("Continue", buttonSize));
tooltip_set("Continue from a saved game.");
ImGui::SameLine();
}
if (fx(ImGui::Button("New Game", buttonSize)))
if (is_fx(ImGui::Button("New Game", buttonSize)))
{
isNewGame = !selectedProgress.isValid;
isNewGameWarning = selectedProgress.isValid;
@@ -887,9 +887,9 @@ bool Ui::select_update(std::vector<Character>& characters, Settings& settings, R
{
ImGui::TextWrapped("This will delete saved progress! Are you sure?");
ImVec2 popupSize = {row_width_get(2), 0};
isNewGame = fx(ImGui::Button("Yes", popupSize));
isNewGame = is_fx(ImGui::Button("Yes", popupSize));
ImGui::SameLine();
if (fx(ImGui::Button("No", popupSize)))
if (is_fx(ImGui::Button("No", popupSize)))
isNewGameWarning = false;
ImGui::EndPopup();
}
@@ -902,7 +902,7 @@ bool Ui::select_update(std::vector<Character>& characters, Settings& settings, R
ImGui::SetNextWindowPos({screen.x / 2, style.WindowPadding.y});
if (ImGui::Begin("##Main Menu", nullptr, PANEL_FLAGS) && ImGui::BeginTabBar("##Main Tabs"))
{
if (fx(ImGui::BeginTabItem("Characters")))
if (is_fx(ImGui::BeginTabItem("Characters")))
{
if (ImGui::BeginPopupContextWindow("##Characters Context"))
{
@@ -923,7 +923,7 @@ bool Ui::select_update(std::vector<Character>& characters, Settings& settings, R
? ImGui::ImageButton(character.name.c_str(), texture_id_get(*character.portrait),
{side, side})
: ImGui::Button(character.name.c_str(), {side, side});
if (fx(isPressed))
if (is_fx(isPressed))
characterIndex = i;
if (isSelected)
ImGui::PopStyleColor();
@@ -936,7 +936,7 @@ bool Ui::select_update(std::vector<Character>& characters, Settings& settings, R
}
ImGui::EndTabItem();
}
if (fx(ImGui::BeginTabItem("Settings")))
if (is_fx(ImGui::BeginTabItem("Settings")))
{
settings_update(settings, audio, nullptr);
ImGui::EndTabItem();
@@ -946,5 +946,4 @@ bool Ui::select_update(std::vector<Character>& characters, Settings& settings, R
ImGui::End();
if (isRefresh)
progressIndex = -1;
return isRefresh;
}