mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-21 20:54:43 -04:00
Merge branch 'main' into unhackify-widescreen
# Conflicts: # src/dusk/imgui/ImGuiMenuGame.cpp # src/m_Do/m_Do_lib.cpp
This commit is contained in:
@@ -817,6 +817,12 @@ BOOL daAlink_c::checkDownAttackState() {
|
||||
}
|
||||
|
||||
BOOL daAlink_c::checkCutLargeTurnState() const {
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.alwaysGreatspin) {
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
return ((dComIfGs_isEventBit(dSv_event_flag_c::F_0344) || checkNoResetFlg3(FLG3_TRANING_CUT_LARGE_TURN))
|
||||
&& dComIfGs_getLife() == dComIfGs_getMaxLifeGauge()
|
||||
)
|
||||
|
||||
@@ -290,6 +290,12 @@ BOOL daAlink_c::checkHookshotStickBG(cBgS_PolyInfo& i_polyinfo) {
|
||||
}
|
||||
#endif
|
||||
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.superClawshot) {
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (dComIfG_Bgsp().ChkPolyHSStick(i_polyinfo)) {
|
||||
dBgW_Base* bgw_p = dComIfG_Bgsp().GetBgWBasePointer(i_polyinfo);
|
||||
if (bgw_p != NULL && bgw_p->ChkPushPullOk()) {
|
||||
@@ -448,6 +454,12 @@ void daAlink_c::setHookshotSight() {
|
||||
max_length = mpHIO->mItem.mHookshot.m.mMaxLength;
|
||||
}
|
||||
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.superClawshot) {
|
||||
max_length = 69420.0f;
|
||||
}
|
||||
#endif
|
||||
|
||||
BOOL line_cross = checkSightLine(max_length, &sight_pos);
|
||||
|
||||
if (mHookTargetAcKeep.getActor() != NULL) {
|
||||
@@ -890,6 +902,14 @@ void daAlink_c::setHookshotPos() {
|
||||
max_length = mpHIO->mItem.mHookshot.m.mMaxLength;
|
||||
}
|
||||
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.superClawshot) {
|
||||
return_speed = 2870.0f;
|
||||
shoot_speed = 2870.0f;
|
||||
max_length = 69420.0f;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (mItemMode == HS_MODE_RETURN_e) {
|
||||
if (targetAc_p != NULL) {
|
||||
if (checkLv7BossRoom()) {
|
||||
@@ -899,6 +919,12 @@ void daAlink_c::setHookshotPos() {
|
||||
}
|
||||
}
|
||||
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.superClawshot) {
|
||||
return_speed = 500.0f;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (checkModeFlg(0x400)) {
|
||||
return_speed += current.pos.abs(field_0x3798);
|
||||
}
|
||||
@@ -1548,6 +1574,12 @@ int daAlink_c::procHookshotFly() {
|
||||
f32 temp_f31 = field_0x37d4.abs();
|
||||
f32 temp_f30 = mpHIO->mItem.mHookshot.m.mStickReturnSpeed + spAC.abs(mHookshotTopPos);
|
||||
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.superClawshot) {
|
||||
temp_f30 = 500.0f + spAC.abs(mHookshotTopPos);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (temp_f31 < temp_f30 || mProcVar1.field_0x300a == 0) {
|
||||
setHookshotReturnEnd();
|
||||
} else {
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "d/d_msg_out_font.h"
|
||||
#include "d/d_msg_string.h"
|
||||
#include "d/d_pane_class.h"
|
||||
#include "dusk/frame_interpolation.h"
|
||||
#include <cstring>
|
||||
|
||||
#if VERSION == VERSION_GCN_JPN
|
||||
@@ -280,15 +281,20 @@ void dMeterButton_c::draw() {
|
||||
|
||||
s16 temp_r6 = g_drawHIO.mEmpButton.mRepeatHitFrameNum;
|
||||
s16 temp_r6_2 = g_drawHIO.mEmpButton.mRepeatHitFrameNum / 2;
|
||||
field_0x4b8[i]++;
|
||||
#ifdef TARGET_PC
|
||||
if (dusk::frame_interp::get_ui_tick_pending())
|
||||
#endif
|
||||
{
|
||||
field_0x4b8[i]++;
|
||||
|
||||
if (field_0x4b8[i] >= temp_r6) {
|
||||
field_0x4b8[i] = 0;
|
||||
if (field_0x4b8[i] >= temp_r6) {
|
||||
field_0x4b8[i] = 0;
|
||||
|
||||
if (field_0x4bc[i] == 0) {
|
||||
field_0x4bc[i] = 1;
|
||||
} else {
|
||||
field_0x4bc[i] = 0;
|
||||
if (field_0x4bc[i] == 0) {
|
||||
field_0x4bc[i] = 1;
|
||||
} else {
|
||||
field_0x4bc[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+37
-21
@@ -11,6 +11,7 @@
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_meter_HIO.h"
|
||||
#include "d/d_pane_class.h"
|
||||
#include "dusk/frame_interpolation.h"
|
||||
|
||||
dMeterHaihai_c::dMeterHaihai_c(u8 i_type) {
|
||||
mType = i_type;
|
||||
@@ -286,14 +287,19 @@ void dMeterHaihai_c::updateHaihai() {
|
||||
void dMeterHaihai_c::playBckAnime(J2DAnmTransformKey* i_bck) {
|
||||
if (checkPlayAnime(1)) {
|
||||
if (i_bck != NULL) {
|
||||
if (mType == 4) {
|
||||
mBckFrame += g_drawHIO.mWiiLockArrowBCKAnimSpeed;
|
||||
} else {
|
||||
mBckFrame += g_drawHIO.mScrollArrowBCKAnimSpeed;
|
||||
}
|
||||
#ifdef TARGET_PC
|
||||
if (dusk::frame_interp::get_ui_tick_pending())
|
||||
#endif
|
||||
{
|
||||
if (mType == 4) {
|
||||
mBckFrame += g_drawHIO.mWiiLockArrowBCKAnimSpeed;
|
||||
} else {
|
||||
mBckFrame += g_drawHIO.mScrollArrowBCKAnimSpeed;
|
||||
}
|
||||
|
||||
if (mBckFrame >= i_bck->getFrameMax()) {
|
||||
mBckFrame -= i_bck->getFrameMax();
|
||||
if (mBckFrame >= i_bck->getFrameMax()) {
|
||||
mBckFrame -= i_bck->getFrameMax();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mBtkFrame = 1.0f;
|
||||
@@ -309,14 +315,19 @@ void dMeterHaihai_c::playBckAnime(J2DAnmTransformKey* i_bck) {
|
||||
void dMeterHaihai_c::playBtkAnime(J2DAnmTextureSRTKey* i_btk) {
|
||||
if (checkPlayAnime(2)) {
|
||||
if (i_btk != NULL) {
|
||||
if (mType == 4) {
|
||||
mBtkFrame += g_drawHIO.mWiiLockArrowBTKAnimSpeed;
|
||||
} else {
|
||||
mBtkFrame += g_drawHIO.mScrollArrowBTKAnimSpeed;
|
||||
}
|
||||
#ifdef TARGET_PC
|
||||
if (dusk::frame_interp::get_ui_tick_pending())
|
||||
#endif
|
||||
{
|
||||
if (mType == 4) {
|
||||
mBtkFrame += g_drawHIO.mWiiLockArrowBTKAnimSpeed;
|
||||
} else {
|
||||
mBtkFrame += g_drawHIO.mScrollArrowBTKAnimSpeed;
|
||||
}
|
||||
|
||||
if (mBtkFrame >= i_btk->getFrameMax()) {
|
||||
mBtkFrame -= i_btk->getFrameMax();
|
||||
if (mBtkFrame >= i_btk->getFrameMax()) {
|
||||
mBtkFrame -= i_btk->getFrameMax();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mBtkFrame = 1.0f;
|
||||
@@ -331,14 +342,19 @@ void dMeterHaihai_c::playBtkAnime(J2DAnmTextureSRTKey* i_btk) {
|
||||
void dMeterHaihai_c::playBpkAnime(J2DAnmColor* i_bpk) {
|
||||
if (checkPlayAnime(0)) {
|
||||
if (i_bpk != NULL) {
|
||||
if (mType == 4) {
|
||||
mBpkFrame += g_drawHIO.mWiiLockArrowBPKAnimSpeed;
|
||||
} else {
|
||||
mBpkFrame += g_drawHIO.mScrollArrowBPKAnimSpeed;
|
||||
}
|
||||
#ifdef TARGET_PC
|
||||
if (dusk::frame_interp::get_ui_tick_pending())
|
||||
#endif
|
||||
{
|
||||
if (mType == 4) {
|
||||
mBpkFrame += g_drawHIO.mWiiLockArrowBPKAnimSpeed;
|
||||
} else {
|
||||
mBpkFrame += g_drawHIO.mScrollArrowBPKAnimSpeed;
|
||||
}
|
||||
|
||||
if (mBpkFrame >= i_bpk->getFrameMax()) {
|
||||
mBpkFrame -= i_bpk->getFrameMax();
|
||||
if (mBpkFrame >= i_bpk->getFrameMax()) {
|
||||
mBpkFrame -= i_bpk->getFrameMax();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mBpkFrame = 1.0f;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "JSystem/JUtility/JUTTexture.h"
|
||||
#include "d/d_meter2_info.h"
|
||||
#include "d/d_msg_object.h"
|
||||
#include "dusk/frame_interpolation.h"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
|
||||
COutFontSet_c::COutFontSet_c() {
|
||||
@@ -311,6 +312,15 @@ void COutFont_c::draw(J2DTextBox* i_textbox, f32 param_1, f32 param_2, f32 param
|
||||
sp256[i] = field_0x1b4[i];
|
||||
}
|
||||
|
||||
#ifdef TARGET_PC
|
||||
bool uiTickPending = dusk::frame_interp::get_ui_tick_pending();
|
||||
if (!uiTickPending) {
|
||||
for (int i = 0; i < 70; i++) {
|
||||
sp256[i] = -1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
for (int i = 0; i < 35; i++) {
|
||||
u8 type = mpOfs[i]->getType();
|
||||
J2DTextBox* tbox = mpOfs[i]->getTextBoxPtr();
|
||||
@@ -505,9 +515,14 @@ void COutFont_c::draw(J2DTextBox* i_textbox, f32 param_1, f32 param_2, f32 param
|
||||
case 20:
|
||||
case 21:
|
||||
case 22:
|
||||
field_0x1b4[type]++;
|
||||
if (field_0x1b4[type] >= 28) {
|
||||
field_0x1b4[type] = 0;
|
||||
#ifdef TARGET_PC
|
||||
if (uiTickPending)
|
||||
#endif
|
||||
{
|
||||
field_0x1b4[type]++;
|
||||
if (field_0x1b4[type] >= 28) {
|
||||
field_0x1b4[type] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
mpPane[type]->rotate(0.5f * sizeX, 0.5f * sizeY, ROTATE_Z,
|
||||
|
||||
@@ -1568,10 +1568,22 @@ BOOL dShopSystem_c::checkShopOpen() {
|
||||
}
|
||||
|
||||
bool dShopSystem_c::checkLeftTrigger(STControl* i_stick) {
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.enableMirrorMode) {
|
||||
return i_stick->checkRightTrigger();
|
||||
}
|
||||
#endif
|
||||
|
||||
return i_stick->checkLeftTrigger();
|
||||
}
|
||||
|
||||
bool dShopSystem_c::checkRightTrigger(STControl* i_stick) {
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.enableMirrorMode) {
|
||||
return i_stick->checkLeftTrigger();
|
||||
}
|
||||
#endif
|
||||
|
||||
return i_stick->checkRightTrigger();
|
||||
}
|
||||
|
||||
|
||||
@@ -281,7 +281,7 @@ namespace dusk {
|
||||
void ImGuiConsole::UpdateSettings() {
|
||||
getTransientSettings().skipFrameRateLimit = getSettings().game.enableTurboKeybind && ImGui::IsKeyDown(ImGuiKey_Tab);
|
||||
|
||||
if (mDoMain::developmentMode == 1 && mDoCPd_c::getHoldL(PAD_1) && mDoCPd_c::getHoldR(PAD_1) && mDoCPd_c::getTrigY(PAD_1)) {
|
||||
if (mDoMain::developmentMode == 1 && (mDoCPd_c::getHold(PAD_1) & (PAD_TRIGGER_R | PAD_TRIGGER_L)) == (PAD_TRIGGER_R | PAD_TRIGGER_L) && mDoCPd_c::getTrigY(PAD_1)) {
|
||||
getTransientSettings().moveLinkActive = !getTransientSettings().moveLinkActive;
|
||||
}
|
||||
if (mDoMain::developmentMode != 1) {
|
||||
|
||||
@@ -202,6 +202,16 @@ namespace dusk {
|
||||
ImGui::Separator();
|
||||
|
||||
if (ImGui::BeginMenu("Cheats")) {
|
||||
config::ImGuiCheckbox("Infinite Hearts", getSettings().game.infiniteHearts);
|
||||
config::ImGuiCheckbox("Infinite Arrows", getSettings().game.infiniteArrows);
|
||||
config::ImGuiCheckbox("Infinite Bombs", getSettings().game.infiniteBombs);
|
||||
config::ImGuiCheckbox("Infinite Oil", getSettings().game.infiniteOil);
|
||||
config::ImGuiCheckbox("Infinite Oxygen", getSettings().game.infiniteOxygen);
|
||||
config::ImGuiCheckbox("Infinite Rupees", getSettings().game.infiniteRupees);
|
||||
config::ImGuiCheckbox("Moon Jump (R+A)", getSettings().game.moonJump);
|
||||
config::ImGuiCheckbox("Super Clawshot", getSettings().game.superClawshot);
|
||||
config::ImGuiCheckbox("Always Greatspin", getSettings().game.alwaysGreatspin);
|
||||
|
||||
config::ImGuiCheckbox("Fast Iron Boots", getSettings().game.enableFastIronBoots);
|
||||
|
||||
config::ImGuiCheckbox("Can Transform Anywhere", getSettings().game.canTransformAnywhere);
|
||||
|
||||
@@ -17,10 +17,34 @@
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
|
||||
#include <aurora/gfx.h>
|
||||
#include <aurora/lib/logging.hpp>
|
||||
#include <SDL3/SDL_gamepad.h>
|
||||
#include <SDL3/SDL_misc.h>
|
||||
|
||||
#include "dusk/main.h"
|
||||
|
||||
#if defined(__APPLE__)
|
||||
#include <TargetConditionals.h>
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) || (defined(__APPLE__) && !TARGET_OS_IOS && !TARGET_OS_MACCATALYST) || (defined(__linux__) && !defined(__ANDROID__))
|
||||
#define DUSK_CAN_OPEN_DATA_FOLDER 1
|
||||
|
||||
namespace fs = std::filesystem;
|
||||
|
||||
static void OpenDataFolder() {
|
||||
const std::string path = fs::absolute(fs::path(aurora::g_config.configPath)).generic_string();
|
||||
#if defined(_WIN32)
|
||||
const std::string url = std::string("file:///") + path;
|
||||
#else
|
||||
const std::string url = std::string("file://") + path;
|
||||
#endif
|
||||
(void)SDL_OpenURL(url.c_str());
|
||||
}
|
||||
#else
|
||||
#define DUSK_CAN_OPEN_DATA_FOLDER 0
|
||||
#endif
|
||||
|
||||
namespace {
|
||||
constexpr int kInternalResolutionScaleMax = 12;
|
||||
} // namespace
|
||||
@@ -176,6 +200,14 @@ namespace dusk {
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
#if DUSK_CAN_OPEN_DATA_FOLDER
|
||||
if (ImGui::MenuItem("Open Data Folder")) {
|
||||
OpenDataFolder();
|
||||
}
|
||||
#endif
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
if (ImGui::MenuItem("Reset", hotkeys::DO_RESET)) {
|
||||
JUTGamePad::C3ButtonReset::sResetSwitchPushing = true;
|
||||
}
|
||||
|
||||
@@ -67,6 +67,15 @@ UserSettings g_userSettings = {
|
||||
.gyroInvertYaw {"game.gyroInvertYaw", false},
|
||||
|
||||
// Cheats
|
||||
.infiniteHearts {"game.infiniteHearts", false},
|
||||
.infiniteArrows{"game.infiniteArrows", false},
|
||||
.infiniteBombs{"game.infiniteBombs", false},
|
||||
.infiniteOil{"game.infiniteOil", false},
|
||||
.infiniteOxygen{"game.infiniteOxygen", false},
|
||||
.infiniteRupees{"game.infiniteRupees", false},
|
||||
.moonJump{"game.moonJump", false},
|
||||
.superClawshot{"game.superClawshot", false},
|
||||
.alwaysGreatspin{"game.alwaysGreatspin", false},
|
||||
.enableFastIronBoots {"game.enableFastIronBoots", false},
|
||||
.canTransformAnywhere {"game.canTransformAnywhere", false},
|
||||
.fastSpinner {"game.fastSpinner", false},
|
||||
@@ -141,6 +150,15 @@ void registerSettings() {
|
||||
Register(g_userSettings.game.midnasLamentNonStop);
|
||||
Register(g_userSettings.game.enableTurboKeybind);
|
||||
Register(g_userSettings.game.fastSpinner);
|
||||
Register(g_userSettings.game.infiniteHearts);
|
||||
Register(g_userSettings.game.infiniteArrows);
|
||||
Register(g_userSettings.game.infiniteBombs);
|
||||
Register(g_userSettings.game.infiniteOil);
|
||||
Register(g_userSettings.game.infiniteOxygen);
|
||||
Register(g_userSettings.game.infiniteRupees);
|
||||
Register(g_userSettings.game.moonJump);
|
||||
Register(g_userSettings.game.superClawshot);
|
||||
Register(g_userSettings.game.alwaysGreatspin);
|
||||
Register(g_userSettings.game.enableFrameInterpolation);
|
||||
Register(g_userSettings.game.enableGyroAim);
|
||||
Register(g_userSettings.game.enableGyroRollgoal);
|
||||
|
||||
+57
-21
@@ -732,6 +732,62 @@ static void fapGm_AfterRecord() {
|
||||
dusk::frame_interp::end_record();
|
||||
fapGm_After();
|
||||
}
|
||||
|
||||
static void duskExecute() {
|
||||
if (mDoCPd_c::getHoldR(PAD_1) && mDoCPd_c::getTrigX(PAD_1)) {
|
||||
if (const auto link = g_dComIfG_gameInfo.play.getPlayer(0)) {
|
||||
dynamic_cast<daAlink_c*>(link)->handleWolfHowl();
|
||||
}
|
||||
}
|
||||
|
||||
if ((mDoCPd_c::getHold(PAD_1) & (PAD_TRIGGER_R | PAD_TRIGGER_L)) == PAD_TRIGGER_R && mDoCPd_c::getTrigY(PAD_1)) {
|
||||
if (const auto link = g_dComIfG_gameInfo.play.getPlayer(0)) {
|
||||
dynamic_cast<daAlink_c*>(link)->handleQuickTransform();
|
||||
}
|
||||
}
|
||||
|
||||
if (dusk::getSettings().game.moonJump && (mDoCPd_c::getHoldR(PAD_1) && mDoCPd_c::getHoldA(PAD_1))) {
|
||||
if (const auto link = g_dComIfG_gameInfo.play.getPlayer(0)) {
|
||||
link->speed.y = 56.0f;
|
||||
}
|
||||
}
|
||||
|
||||
if (dusk::getSettings().game.fastSpinner && mDoCPd_c::getHoldR(PAD_1)) {
|
||||
if (const auto link = g_dComIfG_gameInfo.play.getPlayer(0)) {
|
||||
auto spinnerActor = (fopAc_ac_c*)dynamic_cast<daAlink_c*>(link)->getSpinnerActor();
|
||||
if (spinnerActor) {
|
||||
if (spinnerActor->speedF < 60.f)
|
||||
spinnerActor->speedF += 2.f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (dusk::getSettings().game.infiniteHearts) {
|
||||
dComIfGs_setLife((dComIfGs_getMaxLife() / 5) * 4);
|
||||
}
|
||||
|
||||
if (dusk::getSettings().game.infiniteArrows) {
|
||||
dComIfGs_setArrowNum(dComIfGs_getArrowMax());
|
||||
}
|
||||
|
||||
if (dusk::getSettings().game.infiniteBombs) {
|
||||
dComIfGs_setBombNum(0, 99);
|
||||
dComIfGs_setBombNum(1, 99);
|
||||
dComIfGs_setBombNum(2, 99);
|
||||
}
|
||||
|
||||
if (dusk::getSettings().game.infiniteOil) {
|
||||
dComIfGs_setOil(dComIfGs_getMaxOil());
|
||||
}
|
||||
|
||||
if (dusk::getSettings().game.infiniteRupees) {
|
||||
dComIfGs_setRupee(9999);
|
||||
}
|
||||
|
||||
if (dusk::getSettings().game.infiniteOxygen) {
|
||||
dComIfGp_setOxygen(dComIfGp_getMaxOxygen());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void fapGm_Execute() {
|
||||
@@ -747,27 +803,7 @@ void fapGm_Execute() {
|
||||
#endif
|
||||
|
||||
#if TARGET_PC
|
||||
if (mDoCPd_c::getHoldR(PAD_1) && mDoCPd_c::getTrigX(PAD_1)) {
|
||||
if (const auto link = g_dComIfG_gameInfo.play.getPlayer(0)) {
|
||||
dynamic_cast<daAlink_c*>(link)->handleWolfHowl();
|
||||
}
|
||||
}
|
||||
|
||||
if (mDoCPd_c::getHoldR(PAD_1) && mDoCPd_c::getTrigY(PAD_1)) {
|
||||
if (const auto link = g_dComIfG_gameInfo.play.getPlayer(0)) {
|
||||
dynamic_cast<daAlink_c*>(link)->handleQuickTransform();
|
||||
}
|
||||
}
|
||||
|
||||
if (dusk::getSettings().game.fastSpinner && mDoCPd_c::getHoldR(PAD_1)) {
|
||||
if (const auto link = g_dComIfG_gameInfo.play.getPlayer(0)) {
|
||||
auto spinnerActor = (fopAc_ac_c*)dynamic_cast<daAlink_c*>(link)->getSpinnerActor();
|
||||
if (spinnerActor) {
|
||||
if (spinnerActor->speedF < 60.f)
|
||||
spinnerActor->speedF += 2.f;
|
||||
}
|
||||
}
|
||||
}
|
||||
duskExecute();
|
||||
#endif
|
||||
|
||||
#ifdef TARGET_PC
|
||||
|
||||
@@ -113,6 +113,12 @@ void mDoLib_project(Vec* src, Vec* dst) {
|
||||
}
|
||||
|
||||
dst->x = ((0.5f + (multVec.x * calcFloat)) * xSize) + xOffset;
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.enableMirrorMode) {
|
||||
dst->x = ((0.5f + (-multVec.x * calcFloat)) * xSize) + xOffset;
|
||||
}
|
||||
#endif
|
||||
|
||||
dst->y = ((0.5f + (multVec.y * (-calcFloat))) * ySize) + yOffset;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user