#ifndef SCOREKEEPER_5TH_H #define SCOREKEEPER_5TH_H 1 /* ----------------------------------------------------------------------------- Class: ScoreKeeper5th Class to handle scorekeeping, 5th-style. Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved. Chris Danford Glenn Maynard ----------------------------------------------------------------------------- */ #include "ScoreKeeper.h" #include "NoteDataWithScoring.h" class Steps; class ScoreKeeper5th: public ScoreKeeper { int m_iScore; int m_iScoreRemainder; // used to round score to nearest 5 points int m_iMaxPossiblePoints; int m_iTapNotesHit; // number of notes judged so far, needed by scoring int m_iNumTapsAndHolds; int m_iMaxScoreSoFar; // for nonstop scoring int m_iComboBonus; // 5th-mix combo bonus at end int m_iPointBonus; // the difference to award at the end int m_iCurToastyCombo; bool m_bIsLastSongInCourse; const vector& apNotes; void AddScore( TapNoteScore score ); public: ScoreKeeper5th( const vector& apNotes_, const CStringArray &asModifiers, PlayerNumber pn_ ); // before a song plays (called multiple times if course) void OnNextSong( int iSongInCourseIndex, Steps* pNotes, NoteData* pNoteData ); void HandleTapRowScore( TapNoteScore scoreOfLastTap, int iNumTapsInRow, int iNumAdditions ); void HandleHoldScore( HoldNoteScore holdScore, TapNoteScore tapScore ); int TapNoteScoreToDancePoints( TapNoteScore tns ); int HoldNoteScoreToDancePoints( HoldNoteScore hns ); int GetPossibleDancePoints( const NoteData &preNoteData, const NoteData &postNoteData ); }; #endif