From 9fae848080488bb337fe8970567cddab6052545b Mon Sep 17 00:00:00 2001 From: Aubrey Date: Fri, 5 Dec 2025 06:15:00 -0600 Subject: [PATCH] Player: Implement `PlayerJudgeIsNerve` (#811) --- data/file_list.yml | 8 ++++---- src/Player/PlayerJudgeIsNerve.cpp | 11 +++++++++++ src/Player/PlayerJudgeIsNerve.h | 23 +++++++++++++++++++++++ 3 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 src/Player/PlayerJudgeIsNerve.cpp create mode 100644 src/Player/PlayerJudgeIsNerve.h diff --git a/data/file_list.yml b/data/file_list.yml index 76b285ee..02007afa 100644 --- a/data/file_list.yml +++ b/data/file_list.yml @@ -123771,20 +123771,20 @@ Player/PlayerJudgeIsNerve.o: label: - _ZN18PlayerJudgeIsNerveC1EPKN2al9IUseNerveEPKNS0_5NerveE - _ZN18PlayerJudgeIsNerveC2EPKN2al9IUseNerveEPKNS0_5NerveE - status: NotDecompiled + status: Matching - offset: 0x459fd0 size: 12 label: _ZNK18PlayerJudgeIsNerve5judgeEv - status: NotDecompiled + status: Matching - offset: 0x459fdc size: 4 label: _ZN18PlayerJudgeIsNerve5resetEv - status: NotDecompiled + status: Matching lazy: true - offset: 0x459fe0 size: 4 label: _ZN18PlayerJudgeIsNerve6updateEv - status: NotDecompiled + status: Matching lazy: true Player/PlayerJudgeLongFall.o: '.text': diff --git a/src/Player/PlayerJudgeIsNerve.cpp b/src/Player/PlayerJudgeIsNerve.cpp new file mode 100644 index 00000000..4c73c228 --- /dev/null +++ b/src/Player/PlayerJudgeIsNerve.cpp @@ -0,0 +1,11 @@ +#include "Player/PlayerJudgeIsNerve.h" + +#include "Library/Nerve/IUseNerve.h" +#include "Library/Nerve/NerveUtil.h" + +PlayerJudgeIsNerve::PlayerJudgeIsNerve(const al::IUseNerve* nerveUser, const al::Nerve* nerve) + : mNerveUser(nerveUser), mNerve(nerve) {} + +bool PlayerJudgeIsNerve::judge() const { + return al::isNerve(mNerveUser, mNerve); +} diff --git a/src/Player/PlayerJudgeIsNerve.h b/src/Player/PlayerJudgeIsNerve.h new file mode 100644 index 00000000..059e7fe2 --- /dev/null +++ b/src/Player/PlayerJudgeIsNerve.h @@ -0,0 +1,23 @@ +#pragma once + +#include "Player/IJudge.h" + +namespace al { +class IUseNerve; +class Nerve; +} // namespace al + +class PlayerJudgeIsNerve : public IJudge { +public: + PlayerJudgeIsNerve(const al::IUseNerve* nerveUser, const al::Nerve* nerve); + + bool judge() const override; + + void reset() override {} + + void update() override {} + +private: + const al::IUseNerve* mNerveUser; + const al::Nerve* mNerve; +};