@@ -74,7 +74,7 @@ TimingWindowSecondsInit(size_t /*TimingWindow*/ i,
74
74
// ~same as j5 great, the explanation for this is quite long but
75
75
// the general idea is that mines are more punishing now so we
76
76
// can give a little back
77
- defaultValueOut = 0 . 075F ;
77
+ defaultValueOut = MINE_WINDOW_SEC ;
78
78
break ;
79
79
case TW_Hold:
80
80
// allow enough time to take foot off and put back on
@@ -190,7 +190,7 @@ Player::GetWindowSeconds(TimingWindow tw) -> float
190
190
// logically consistent with the idea that increasing judge should
191
191
// not make any elementof the game easier, so now they do
192
192
case TW_Mine:
193
- return 0 . 075F ;
193
+ return MINE_WINDOW_SEC ;
194
194
case TW_Hold:
195
195
return 0 .25F * GetTimingWindowScale ();
196
196
case TW_Roll:
@@ -213,7 +213,7 @@ Player::GetWindowSecondsCustomScale(TimingWindow tw, float timingScale) -> float
213
213
// logically consistent with the idea that increasing judge should
214
214
// not make any elementof the game easier, so now they do
215
215
case TW_Mine:
216
- return 0 . 075F ;
216
+ return MINE_WINDOW_SEC ;
217
217
case TW_Hold:
218
218
return 0 .25F * timingScale;
219
219
case TW_Roll:
@@ -817,17 +817,15 @@ void
817
817
Player::UpdatePressedFlags ()
818
818
{
819
819
const auto iNumCols =
820
- GAMESTATE->GetCurrentStyle (GetPlayerState ()->m_PlayerNumber )
821
- ->m_iColsPerPlayer ;
820
+ GAMESTATE->GetCurrentStyle (PLAYER_1)->m_iColsPerPlayer ;
822
821
ASSERT_M (iNumCols <= MAX_COLS_PER_PLAYER,
823
822
ssprintf (" %i > %i" , iNumCols, MAX_COLS_PER_PLAYER));
824
823
for (auto col = 0 ; col < iNumCols; ++col) {
825
824
ASSERT (m_pPlayerState != nullptr );
826
825
827
826
// TODO(Sam): Remove use of PlayerNumber.
828
827
std::vector<GameInput> GameI;
829
- GAMESTATE->GetCurrentStyle (GetPlayerState ()->m_PlayerNumber )
830
- ->StyleInputToGameInput (col, GameI);
828
+ GAMESTATE->GetCurrentStyle (PLAYER_1)->StyleInputToGameInput (col, GameI);
831
829
832
830
const auto bIsHoldingButton = INPUTMAPPER->IsBeingPressed (GameI);
833
831
@@ -850,7 +848,6 @@ Player::UpdateHoldsAndRolls(float fDeltaTime,
850
848
// handle Autoplay for rolls
851
849
if (m_pPlayerState->m_PlayerController != PC_HUMAN) {
852
850
for (auto iTrack = 0 ; iTrack < m_NoteData.GetNumTracks (); ++iTrack) {
853
- // TODO(Sam): Make the CPU miss sometimes.
854
851
int iHeadRow;
855
852
if (!m_NoteData.IsHoldNoteAtRow (iTrack, iSongRow, &iHeadRow)) {
856
853
iHeadRow = iSongRow;
@@ -3065,6 +3062,15 @@ Player::SetJudgment(int iRow,
3065
3062
if (tns == TNS_Miss && m_pPlayerStageStats != nullptr ) {
3066
3063
AddNoteToReplayData (
3067
3064
GAMESTATE->CountNotesSeparately () ? iTrack : -1 , &tn, iRow);
3065
+
3066
+ // add miss to input data
3067
+ // the fmusicseconds is when the judgment occurs
3068
+ // but the row is the row of the actual note
3069
+ m_pPlayerStageStats->m_vNoteMissVector .emplace_back (
3070
+ GAMESTATE->CountNotesSeparately () ? iTrack : -1 ,
3071
+ iRow,
3072
+ tn.type ,
3073
+ tn.subType );
3068
3074
}
3069
3075
3070
3076
if (m_bSendJudgmentAndComboMessages) {
0 commit comments