#ifndef GAME_CONSTANTS_AND_TYPES_H #define GAME_CONSTANTS_AND_TYPES_H /* ----------------------------------------------------------------------------- File: GameConstantsAndTypes.h Desc: Things that are used in many places and don't change often. Copyright (c) 2001-2003 by the person(s) listed below. All rights reserved. Chris Danford Chris Gomez ----------------------------------------------------------------------------- */ #include "PlayerNumber.h" // TODO: Get rid of this dependency. -Chris // // Screen Dimensions // #define SCREEN_WIDTH (640) #define SCREEN_HEIGHT (480) #define SCREEN_LEFT (0) #define SCREEN_RIGHT (SCREEN_WIDTH) #define SCREEN_TOP (0) #define SCREEN_BOTTOM (SCREEN_HEIGHT) #define CENTER_X (SCREEN_LEFT + (SCREEN_RIGHT - SCREEN_LEFT)/2.0f) #define CENTER_Y (SCREEN_TOP + (SCREEN_BOTTOM - SCREEN_TOP)/2.0f) #define SCREEN_NEAR (-1000) #define SCREEN_FAR (1000) #define ARROW_SIZE (64) #define FOREACH_ENUM( e, max, var ) for( e var=(e)0; var= SORT_PREFERRED && so <= SORT_CHALLENGE_METER; } // // Scoring stuff // enum TapNoteScore { TNS_NONE, TNS_HIT_MINE, TNS_MISS, TNS_BOO, TNS_GOOD, TNS_GREAT, TNS_PERFECT, TNS_MARVELOUS, NUM_TAP_NOTE_SCORES }; #define FOREACH_TapNoteScore( tns ) FOREACH_ENUM( TapNoteScore, NUM_TAP_NOTE_SCORES, tns ) const CString& TapNoteScoreToString( TapNoteScore tns ); //enum TapNoteTiming { // TNT_NONE, // TNT_EARLY, // TNT_LATE //}; enum HoldNoteScore { HNS_NONE, // this HoldNote has not been scored yet HNS_OK, // the HoldNote has passed and was successfully held all the way through HNS_NG, // the HoldNote has passed and they missed it NUM_HOLD_NOTE_SCORES }; #define FOREACH_HoldNoteScore( hns ) FOREACH_ENUM( HoldNoteScore, NUM_HOLD_NOTE_SCORES, hns ) // // Profile and MemCard stuff // enum ProfileSlot { PROFILE_SLOT_PLAYER_1, PROFILE_SLOT_PLAYER_2, PROFILE_SLOT_MACHINE, NUM_PROFILE_SLOTS, PROFILE_SLOT_INVALID }; #define FOREACH_ProfileSlot( slot ) FOREACH_ENUM( ProfileSlot, NUM_PROFILE_SLOTS, slot ) enum MemoryCardState { MEMORY_CARD_STATE_READY, MEMORY_CARD_STATE_TOO_LATE, MEMORY_CARD_STATE_WRITE_ERROR, MEMORY_CARD_STATE_NO_CARD, NUM_MEMORY_CARD_STATES, MEMORY_CARD_STATE_INVALID, }; const CString& MemoryCardStateToString( MemoryCardState mcs ); // // Ranking stuff // enum RankingCategory { RANKING_A, // 1-3 meter per song avg. RANKING_B, // 4-6 meter per song avg. RANKING_C, // 7-9 meter per song avg. RANKING_D, // 10+ meter per song avg. // doesn't count extra stage! NUM_RANKING_CATEGORIES, RANKING_INVALID }; #define FOREACH_RankingCategory( rc ) FOREACH_ENUM( RankingCategory, NUM_RANKING_CATEGORIES, rc ) const CString& RankingCategoryToString( RankingCategory rc ); RankingCategory StringToRankingCategory( const CString& rc ); const CString RANKING_TO_FILL_IN_MARKER[NUM_PLAYERS] = {"#P1#","#P2#"}; inline bool IsRankingToFillIn( const CString& sName ) { return !sName.empty() && sName[0]=='#'; } RankingCategory AverageMeterToRankingCategory( float fAverageMeter ); const int NUM_RANKING_LINES = 5; // // Group stuff // #define GROUP_ALL_MUSIC CString("") // // // enum PlayerController { PC_HUMAN, PC_CPU, PC_AUTOPLAY, NUM_PLAYER_CONTROLLERS }; const int MIN_SKILL = 0; const int MAX_SKILL = 10; enum StageResult { RESULT_WIN, RESULT_LOSE, RESULT_DRAW }; // // Battle stuff // const int NUM_INVENTORY_SLOTS = 3; enum AttackLevel { ATTACK_LEVEL_1, ATTACK_LEVEL_2, ATTACK_LEVEL_3, NUM_ATTACK_LEVELS }; const int NUM_ATTACKS_PER_LEVEL = 3; const int ITEM_NONE = -1; #define BG_ANIMS_DIR CString("BGAnimations/") #define VISUALIZATIONS_DIR CString("Visualizations/") #define RANDOMMOVIES_DIR CString("RandomMovies/") // // Coin stuff // enum CoinMode { COIN_HOME, COIN_PAY, COIN_FREE, NUM_COIN_MODES }; const CString& CoinModeToString( CoinMode cm ); // // Award stuff // enum PerDifficultyAward { AWARD_FULL_COMBO_GREATS, AWARD_FULL_COMBO_PERFECTS, AWARD_FULL_COMBO_MARVELOUSES, AWARD_SINGLE_DIGIT_GREATS, AWARD_SINGLE_DIGIT_PERFECTS, AWARD_GREATS_80_PERCENT, AWARD_GREATS_90_PERCENT, AWARD_GREATS_100_PERCENT, NUM_PER_DIFFICULTY_AWARDS, PER_DIFFICULTY_AWARD_INVALID, }; #define FOREACH_PerDifficultyAward( pma ) FOREACH_ENUM( PerDifficultyAward, NUM_PER_DIFFICULTY_AWARDS, pma ) const CString& PerDifficultyAwardToString( PerDifficultyAward pma ); CString PerDifficultyAwardToThemedString( PerDifficultyAward pma ); PerDifficultyAward StringToPerDifficultyAward( const CString& pma ); enum PeakComboAward { AWARD_1000_PEAK_COMBO, AWARD_2000_PEAK_COMBO, AWARD_3000_PEAK_COMBO, AWARD_4000_PEAK_COMBO, AWARD_5000_PEAK_COMBO, AWARD_6000_PEAK_COMBO, AWARD_7000_PEAK_COMBO, AWARD_8000_PEAK_COMBO, AWARD_9000_PEAK_COMBO, AWARD_10000_PEAK_COMBO, NUM_PEAK_COMBO_AWARDS, PEAK_COMBO_AWARD_INVALID, }; #define FOREACH_PeakComboAward( pca ) FOREACH_ENUM( PeakComboAward, NUM_PEAK_COMBO_AWARDS, pca ) const CString& PeakComboAwardToString( PeakComboAward pma ); CString PeakComboAwardToThemedString( PeakComboAward pma ); PeakComboAward StringToPeakComboAward( const CString& pma ); #endif