4#include "Etterna/Actor/Base/Actor.h"
5#include "Etterna/Models/Misc/CubicSpline.h"
6#include "Etterna/Models/Misc/GameInput.h"
7#include "Etterna/Models/NoteData/NoteData.h"
8#include "Etterna/Models/Misc/PlayerNumber.h"
29 NotePart_HoldBottomCap,
37 NoteColorType_Denominator,
38 NoteColorType_Progress,
43NoteColorTypeToString(NoteColorType nct) ->
const std::string&;
45StringToNoteColorType(
const std::string& s) -> NoteColorType;
53 void Load(
const std::string& sButton,
54 const std::string& sElement,
58 auto Get(
const std::string&) ->
Actor*;
61 std::map<std::string, NoteResource*> g_p;
68 void Load(
const std::string& sButton,
69 const std::string& sElement,
73 auto Get(
const std::string&) ->
Sprite*;
76 std::map<std::string, NoteResource*> g_p;
88#define FOREACH_HoldType(i) FOREACH_ENUM(HoldType, i)
90HoldTypeToString(HoldType ht) ->
const std::string&;
100#define FOREACH_ActiveType(i) FOREACH_ENUM(ActiveType, i)
102ActiveTypeToString(ActiveType at) ->
const std::string&;
104enum NoteColumnSplineMode
109 NUM_NoteColumnSplineMode,
110 NoteColumnSplineMode_Invalid
114NoteColumnSplineModeToString(NoteColumnSplineMode ncsm) ->
const std::string&;
115LuaDeclareType(NoteColumnSplineMode);
122 float reverse_offset_pixels;
130 float draw_pixels_before_targets;
131 float draw_pixels_after_targets;
132 int* selection_begin_marker;
133 int* selection_end_marker;
134 float selection_glow;
136 float fade_before_targets;
146 m_spline.redimension(3);
147 m_spline.m_owned_by_actor =
true;
148 m_spline_mode = NCSM_Disabled;
150 m_beats_per_t = 1.0F;
151 m_subtract_song_beat_from_curr =
true;
154 [[nodiscard]]
auto BeatToTValue(
float song_beat,
float note_beat)
const
156 void EvalForBeat(
float song_beat,
float note_beat,
RageVector3& ret)
const;
157 void EvalDerivForBeat(
float song_beat,
160 void EvalForReceptor(
float song_beat,
RageVector3& ret)
const;
167 NoteColumnSplineMode m_spline_mode;
170 bool m_subtract_song_beat_from_curr;
172 void PushSelf(lua_State* L);
177 void spae_pos_for_beat(
const PlayerState* player_state,
180 float y_reverse_offset,
187 static void SetPRZForActor(
Actor* actor,
210 void Load(
int iColNum,
212 float fYReverseOffsetPixels);
214 static void Update(
float fDeltaTime);
216 auto DrawHoldsInRange(
219 const std::vector<NoteData::TrackMap::const_iterator>& tap_set) -> bool;
220 auto DrawTapsInRange(
223 const std::vector<NoteData::TrackMap::const_iterator>& tap_set) -> bool;
243 bool bOnSameRowAsHoldStart,
244 bool bOnSameRowAsRollBeat,
246 float fPercentFadeToFail);
247 void DrawHold(
const TapNote& tn,
254 float fPercentFadeToFail);
256 [[nodiscard]]
auto DrawHoldHeadForTapsOnSameRow()
const -> bool;
257 [[nodiscard]]
auto DrawRollHeadForTapsOnSameRow()
const -> bool;
258 float m_fYReverseOffsetPixels;
261 void SetActiveFrame(
float fNoteBeat,
263 float fAnimationLength,
265 auto GetTapActor(
NoteColorActor& nca, NotePart part,
float fNoteBeat)
const
267 auto GetHoldActor(
NoteColorActor nca[NUM_HoldType][NUM_ActiveType],
271 bool bIsBeingHeld)
const ->
Actor*;
276 bool bIsBeingHeld)
const ->
Sprite*;
278 struct draw_hold_part_args
281 float percent_fade_to_fail;
283 float overlapped_time;
293 bool flip_texture_vertically;
296 void DrawActor(
const TapNote& tn,
304 float fPercentFadeToFail,
306 bool is_being_held)
const;
307 void DrawHoldPart(std::vector<Sprite*>& vpSpr,
310 const draw_hold_part_args& part_args,
312 int part_type)
const;
313 void DrawHoldBodyInternal(std::vector<Sprite*>& sprite_top,
314 std::vector<Sprite*>& sprite_body,
315 std::vector<Sprite*>& sprite_bottom,
318 draw_hold_part_args& part_args,
319 float head_minus_top,
320 float tail_plus_bottom,
327 void DrawHoldBody(
const TapNote& tn,
335 float percent_fade_to_fail,
374 void UpdateReceptorGhostStuff(
Actor* receptor)
const;
376 void PushSelf(lua_State* L)
override;
391 return !operator==(other);
397 if (NCR_Tweens.empty()) {
400 return NCR_Tweens.back();
403 [[nodiscard]]
auto NCR_DestTweenState() const -> const NCR_TweenState&
408 void SetCurrentTweenStart()
override;
409 void EraseHeadTween()
override;
410 void UpdatePercentThroughTween(
float between)
override;
411 void BeginTweening(
float time,
ITween* interp)
override;
412 void StopTweening()
override;
413 void FinishTweening()
override;
417 return &NCR_DestTweenState().m_pos_handler;
421 return &NCR_DestTweenState().m_rot_handler;
425 return &NCR_DestTweenState().m_zoom_handler;
429 std::vector<NCR_TweenState> NCR_Tweens;
430 NCR_TweenState NCR_current;
431 NCR_TweenState NCR_start;
Base class for all objects that appear on the screen.
Definition Actor.h:77
Row of GhostArrow Actors.
Definition GhostArrowRow.h:11
The interface for simple interpolation.
Definition Tween.h:29
Holds data about the notes that the player is supposed to hit.
Definition NoteData.h:43
Draws TapNotes and HoldNotes.
Definition NoteDisplay.h:205
void DrawTap(const TapNote &tn, const NoteFieldRenderArgs &field_args, const NoteColumnRenderArgs &column_args, float fBeat, bool bOnSameRowAsHoldStart, bool bOnSameRowAsRollBeat, bool bIsAddition, float fPercentFadeToFail)
Draw the TapNote onto the NoteField.
Definition NoteDisplay.cpp:1772
The player's indivdual state.
Definition PlayerState.h:30
A row of ReceptorArrow objects.
Definition ReceptorArrowRow.h:12
A bitmap Actor that animates and moves around.
Definition Sprite.h:13
Definition CubicSpline.h:55
The result of holding (or letting go of) a hold note.
Definition NoteTypes.h:42
Definition NoteDisplay.h:143
Definition NoteDisplay.h:50
Definition NoteDisplay.h:65
Definition NoteDisplay.h:176
Definition NoteDisplay.h:379
Definition NoteDisplay.h:365
void DrawPrimitives() override
Draw the primitives of the Actor.
Definition NoteDisplay.cpp:1948
Definition NoteDisplay.h:120
Definition NoteDisplay.cpp:63
Definition NoteDisplay.cpp:201
Definition RageTypes.h:332
Definition RageTypes.h:172
The various properties of a tap note.
Definition NoteTypes.h:149