mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-09-12 11:35:09 -04:00
Merge branch 'main' of https://github.com/TwilitRealm/dusk into randomizer
This commit is contained in:
@@ -1165,6 +1165,10 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
const daAlink_cutParamTbl* cutParams = &cutParamTable[i_type];
|
||||
BOOL is_proc_frontRoll = mProcID == PROC_FRONT_ROLL;
|
||||
|
||||
#if TARGET_PC
|
||||
mIsRollstab = (is_proc_frontRoll != FALSE) && (i_type == CUT_FINISH_PARAM_STAB);
|
||||
#endif
|
||||
|
||||
commonProcInit(PROC_CUT_FINISH);
|
||||
setCutType(cutParams->m_cutType);
|
||||
field_0x3198 = cutParams->m_recoilAnmID;
|
||||
|
||||
@@ -216,7 +216,7 @@ void daAlink_c::setSpeedAndAngleSwim() {
|
||||
if (checkEventRun()) {
|
||||
var_r28 = mMoveAngle;
|
||||
} else {
|
||||
var_r28 = shape_angle.y + (16384.0f * cM_ssin(mStickAngle));
|
||||
var_r28 = shape_angle.y + (16384.0f * cM_ssin(mStickAngle) IF_DUSK(* (dusk::getSettings().game.invertAirSwimX ? -1.0f : 1.0f)));
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS(&shape_angle.y, var_r28, mpHIO->mSwim.m.mUnderwaterTurnRate, mpHIO->mSwim.m.mUnderwaterMaxTurn, mpHIO->mSwim.m.mUnderwaterMinTurn);
|
||||
@@ -835,7 +835,7 @@ void daAlink_c::setSwimMoveAnime() {
|
||||
} else {
|
||||
s16 var_r24;
|
||||
if (checkInputOnR() && !checkEventRun()) {
|
||||
var_r24 = 13653.0f * cM_scos(mStickAngle);
|
||||
var_r24 = 13653.0f * cM_scos(mStickAngle) IF_DUSK(* (dusk::getSettings().game.invertAirSwimY ? -1.0f : 1.0f));
|
||||
} else {
|
||||
var_r24 = 0;
|
||||
}
|
||||
|
||||
@@ -2192,6 +2192,9 @@ static void damage_check(b_gnd_class* i_this) {
|
||||
i_this->mDamageInvulnerabilityTimer = 100;
|
||||
}
|
||||
}
|
||||
#if TARGET_PC
|
||||
dusk::AchievementSystem::get().signal("ganondorf_hit");
|
||||
#endif
|
||||
}
|
||||
|
||||
cXyz hitmark_size(1.0f, 1.0f, 1.0f);
|
||||
@@ -2218,6 +2221,7 @@ static void damage_check(b_gnd_class* i_this) {
|
||||
i_this->field_0xc7c = 0;
|
||||
dScnPly_c::setPauseTimer(7);
|
||||
a_this->health = 100;
|
||||
dusk::AchievementSystem::get().signal("ganondorf_knocked_down");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3530,6 +3530,15 @@ void daKago_c::action() {
|
||||
#endif
|
||||
mStickY = mDoCPd_c::getStickY(PAD_1);
|
||||
|
||||
#ifdef TARGET_PC
|
||||
if(dusk::getSettings().game.invertAirSwimX) {
|
||||
mStickX = -mStickX;
|
||||
}
|
||||
if(dusk::getSettings().game.invertAirSwimY) {
|
||||
mStickY = -mStickY;
|
||||
}
|
||||
#endif
|
||||
|
||||
u8 prevIsWaterfall = mIsWaterfall;
|
||||
mIsWaterfall = FALSE;
|
||||
fpcM_Search(s_waterfall, this);
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <cstring>
|
||||
|
||||
#if TARGET_PC
|
||||
#include "dusk/settings.h"
|
||||
#include "dusk/version.hpp"
|
||||
#include "dusk/randomizer/game/randomizer_context.hpp"
|
||||
#endif
|
||||
@@ -1140,8 +1141,14 @@ static int lure_standby(dmg_rod_class* i_this) {
|
||||
dComIfGp_setDoStatusForce(42, 0);
|
||||
}
|
||||
|
||||
i_this->rod_stick_x = mDoCPd_c::getStickX3D(PAD_1) * mDoCPd_c::getStickX3D(PAD_1);
|
||||
if (mDoCPd_c::getStickX3D(PAD_1) < 0.0f) {
|
||||
f32 stick_x = mDoCPd_c::getStickX3D(PAD_1);
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.enableMirrorMode) {
|
||||
stick_x = -stick_x;
|
||||
}
|
||||
#endif
|
||||
i_this->rod_stick_x = stick_x * stick_x;
|
||||
if (stick_x < 0.0f) {
|
||||
i_this->rod_stick_x *= -1.0f;
|
||||
}
|
||||
|
||||
@@ -3678,7 +3685,13 @@ static void uki_standby(dmg_rod_class* i_this) {
|
||||
cLib_addCalc2(&i_this->field_0x150c, substickX, 0.5f, 0.2f);
|
||||
|
||||
if (i_this->field_0x1508 > 0.3f && i_this->play_cam_mode < 5) {
|
||||
ANGLE_ADD(i_this->field_0x1418, (-500.0f + VREG_F(3)) * mDoCPd_c::getStickX3D(PAD_1));
|
||||
f32 stick_x = mDoCPd_c::getStickX3D(PAD_1);
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.enableMirrorMode) {
|
||||
stick_x = -stick_x;
|
||||
}
|
||||
#endif
|
||||
ANGLE_ADD(i_this->field_0x1418, (-500.0f + VREG_F(3)) * stick_x);
|
||||
}
|
||||
|
||||
cMtx_YrotS(*calc_mtx, i_this->field_0x1418);
|
||||
@@ -5055,8 +5068,15 @@ static void play_camera(dmg_rod_class* i_this) {
|
||||
static f32 old_stick_x = 0.0f;
|
||||
static f32 old_stick_sx = 0.0f;
|
||||
|
||||
f32 stick_x = mDoCPd_c::getStickX3D(PAD_1);
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.enableMirrorMode) {
|
||||
stick_x = -stick_x;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (
|
||||
(mDoCPd_c::getStickX3D(PAD_1) >= 0.8f && old_stick_x < 0.8f) || (mDoCPd_c::getStickX3D(PAD_1) <= -0.8f && old_stick_x > -0.8f)
|
||||
(stick_x >= 0.8f && old_stick_x < 0.8f) || (stick_x <= -0.8f && old_stick_x > -0.8f)
|
||||
#if VERSION != VERSION_SHIELD_DEBUG
|
||||
|| (mDoCPd_c::getSubStickX3D(PAD_1) >= 0.8f && old_stick_sx < 0.8f) || (mDoCPd_c::getSubStickX3D(PAD_1) <= -0.8f && old_stick_sx > -0.8f)
|
||||
#endif
|
||||
@@ -5072,7 +5092,7 @@ static void play_camera(dmg_rod_class* i_this) {
|
||||
}
|
||||
|
||||
if (i_this->play_cam_timer >= 15) {
|
||||
if (mDoCPd_c::getStickX3D(PAD_1) >= 0.5f
|
||||
if (stick_x >= 0.5f
|
||||
#if VERSION != VERSION_SHIELD_DEBUG
|
||||
|| mDoCPd_c::getSubStickX3D(PAD_1) >= 0.5f
|
||||
#endif
|
||||
@@ -5094,8 +5114,8 @@ static void play_camera(dmg_rod_class* i_this) {
|
||||
}
|
||||
}
|
||||
|
||||
old_stick_x = mDoCPd_c::getStickX3D(PAD_1);
|
||||
old_stick_sx = mDoCPd_c::getSubStickX(PAD_1);
|
||||
old_stick_x = stick_x;
|
||||
old_stick_sx = mDoCPd_c::getSubStickX3D(PAD_1);
|
||||
|
||||
if (i_this->play_cam_timer == 1) {
|
||||
if (i_this->field_0xf81 == 0) {
|
||||
@@ -5800,7 +5820,14 @@ static int dmg_rod_Execute(dmg_rod_class* i_this) {
|
||||
|
||||
i_this->rod_stick_x = mDoCPd_c::getStickX3D(PAD_1);
|
||||
i_this->rod_stick_y = mDoCPd_c::getStickY(PAD_1);
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.enableMirrorMode) {
|
||||
i_this->rod_stick_x = -i_this->rod_stick_x;
|
||||
}
|
||||
i_this->rod_substick_x = mDoCPd_c::getSubStickX3D(PAD_1);
|
||||
#else
|
||||
i_this->rod_substick_x = mDoCPd_c::getSubStickX(PAD_1);
|
||||
#endif
|
||||
i_this->prev_rod_substick_y = i_this->rod_substick_y;
|
||||
i_this->rod_substick_y = mDoCPd_c::getSubStickY(PAD_1);
|
||||
|
||||
|
||||
@@ -943,6 +943,11 @@ static int ni_play(ni_class* i_this) {
|
||||
s16 var_r28 = 0x4000;
|
||||
|
||||
i_this->mPadMainStickX = mDoCPd_c::getStickX3D(PAD_1);
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.enableMirrorMode) {
|
||||
i_this->mPadMainStickX = -i_this->mPadMainStickX;
|
||||
}
|
||||
#endif
|
||||
i_this->mPadMainStickY = mDoCPd_c::getStickY(PAD_1);
|
||||
i_this->mPadSubStickY = mDoCPd_c::getSubStickY(PAD_1);
|
||||
i_this->mPadSubStickX = mDoCPd_c::getSubStickX(PAD_1);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#if TARGET_PC
|
||||
#include "dusk/achievements.h"
|
||||
#include "dusk/settings.h"
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#endif
|
||||
|
||||
static int plCutLRC[58] = {
|
||||
@@ -448,6 +449,10 @@ fopAc_ac_c* cc_at_check(fopAc_ac_c* i_enemy, dCcU_AtInfo* i_AtInfo) {
|
||||
#if TARGET_PC
|
||||
if (fopAcM_GetGroup(i_enemy) == fopAc_ENEMY_e) {
|
||||
dusk::AchievementSystem::get().signal("enemy_killed");
|
||||
const auto* link = static_cast<const daAlink_c*>(daPy_getPlayerActorClass());
|
||||
if (link != nullptr && link->mProcID == daAlink_c::PROC_CUT_FINISH && link->mIsRollstab) {
|
||||
dusk::AchievementSystem::get().signal("rollstab_kill");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1973,6 +1973,11 @@ void dMenu_Fmap2DBack_c::stageMapMove(STControl* i_stick, u8 param_1, bool param
|
||||
if (stick_value >= slow_bound && param_2 && field_0x1238 != 2) {
|
||||
bVar6 = true;
|
||||
s16 angle = i_stick->getAngleStick();
|
||||
#if TARGET_PC
|
||||
if (dusk::getSettings().game.enableMirrorMode) {
|
||||
angle = -angle;
|
||||
}
|
||||
#endif
|
||||
f32 local_68 = mTexMaxX - mTexMinX;
|
||||
f32 spot_zoom = getSpotMapZoomRate();
|
||||
f32 region_zoom = getRegionMapZoomRate(mRegionCursor);
|
||||
|
||||
@@ -394,8 +394,21 @@ void dMenuMapCommon_c::drawIcon(f32 i_posX, f32 i_posY, f32 param_3, f32 param_4
|
||||
icon_size_y *= _c7c;
|
||||
}
|
||||
|
||||
#if TARGET_PC
|
||||
f32 rotation = mIconInfo[info_idx].rotation;
|
||||
if (dusk::getSettings().game.enableMirrorMode &&
|
||||
(mIconInfo[info_idx].icon_no == ICON_LINK_e ||
|
||||
mIconInfo[info_idx].icon_no == ICON_LINK_ENTER_e))
|
||||
{
|
||||
rotation = -rotation;
|
||||
}
|
||||
|
||||
mPictures[mIconInfo[info_idx].icon_no]->rotate(icon_size_x / 2, icon_size_y / 2, ROTATE_Z,
|
||||
rotation);
|
||||
#else
|
||||
mPictures[mIconInfo[info_idx].icon_no]->rotate(icon_size_x / 2, icon_size_y / 2, ROTATE_Z,
|
||||
mIconInfo[info_idx].rotation);
|
||||
#endif
|
||||
|
||||
if (mIconInfo[info_idx].icon_no == ICON_LIGHT_DROP_e) {
|
||||
mPictures[mIconInfo[info_idx].icon_no]->setAlpha((180.0f * _c80) / 255.0f);
|
||||
|
||||
Reference in New Issue
Block a user