Hover for description
News
FAQ Tutorials Docs
Downloads
Songs
StepMix 1 Songs
StepMix 1 Songs (2)
StepMix 2 Songs
StepMix 2 Songs (2)
StepMix 3 Songs
StepMix 3 Songs (2)
StepMix 4 Songs
StepMix 5 Songs
User Songs
Song Download Sites
Themes
Announcers
Backgrounds
Other Downloads
ITG Downloads
Message Boards

Dance Pads

Dance Pad Info
Dance Pads
Other Controllers
USB Adapters

Cool Stuff

StepMix 5 Contest
StepMania CD-ROM
StepMania Scores
In The Groove
StepMania Online
Movies
Pictures
Products
Links
Other Simulators
Frappr,MySpace,Facebook
Dance Dance Revolution
Pump It Up

Other StepMania

Documentation
Help/Support
Create & Share
Video Cards
Video Drivers
Spread StepMania
Developers
RSS Feeds
Contact Us

Search

Site Stats

80163.94 GB of free downloads served since July 28, 2006.

Viewing doxygen: GameConstantsAndTypes_8h-source

Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

GameConstantsAndTypes.h

Go to the documentation of this file.
00001 /* GameConstantsAndTypes - Things used in many places that don't change often. */ 00002 00003 #ifndef GAME_CONSTANTS_AND_TYPES_H 00004 #define GAME_CONSTANTS_AND_TYPES_H 00005 00006 #include "PlayerNumber.h" // TODO: Get rid of this dependency. -Chris 00007 #include "EnumHelper.h" 00008 00009 00010 // 00011 // Note definitions 00012 // 00013 const int MAX_METER = 13; 00014 const int MIN_METER = 1; 00015 00016 00017 /* This is just cached song data. Not all of it may actually be displayed 00018 * in the radar. */ 00019 enum RadarCategory 00020 { 00021 RADAR_STREAM = 0, 00022 RADAR_VOLTAGE, 00023 RADAR_AIR, 00024 RADAR_FREEZE, 00025 RADAR_CHAOS, 00026 RADAR_NUM_TAPS_AND_HOLDS, 00027 RADAR_NUM_JUMPS, 00028 RADAR_NUM_HOLDS, 00029 RADAR_NUM_MINES, 00030 RADAR_NUM_HANDS, 00031 RADAR_NUM_ROLLS, 00032 NUM_RADAR_CATEGORIES // leave this at the end 00033 }; 00034 #define FOREACH_RadarCategory( rc ) FOREACH_ENUM( RadarCategory, NUM_RADAR_CATEGORIES, rc ) 00035 const CString& RadarCategoryToString( RadarCategory cat ); 00036 const CString& RadarCategoryToThemedString( RadarCategory cat ); 00037 00038 00039 enum StepsType 00040 { 00041 STEPS_TYPE_DANCE_SINGLE = 0, 00042 STEPS_TYPE_DANCE_DOUBLE, 00043 STEPS_TYPE_DANCE_COUPLE, 00044 STEPS_TYPE_DANCE_SOLO, 00045 STEPS_TYPE_PUMP_SINGLE, 00046 STEPS_TYPE_PUMP_HALFDOUBLE, 00047 STEPS_TYPE_PUMP_DOUBLE, 00048 STEPS_TYPE_PUMP_COUPLE, 00049 STEPS_TYPE_EZ2_SINGLE, 00050 STEPS_TYPE_EZ2_DOUBLE, 00051 STEPS_TYPE_EZ2_REAL, 00052 STEPS_TYPE_PARA_SINGLE, 00053 STEPS_TYPE_PARA_VERSUS, 00054 STEPS_TYPE_DS3DDX_SINGLE, 00055 STEPS_TYPE_BEAT_SINGLE5, 00056 STEPS_TYPE_BEAT_DOUBLE5, 00057 STEPS_TYPE_BEAT_SINGLE7, 00058 STEPS_TYPE_BEAT_DOUBLE7, 00059 STEPS_TYPE_MANIAX_SINGLE, 00060 STEPS_TYPE_MANIAX_DOUBLE, 00061 STEPS_TYPE_TECHNO_SINGLE4, 00062 STEPS_TYPE_TECHNO_SINGLE5, 00063 STEPS_TYPE_TECHNO_SINGLE8, 00064 STEPS_TYPE_TECHNO_DOUBLE4, 00065 STEPS_TYPE_TECHNO_DOUBLE5, 00066 STEPS_TYPE_POPN_FIVE, 00067 STEPS_TYPE_POPN_NINE, 00068 STEPS_TYPE_LIGHTS_CABINET, 00069 NUM_STEPS_TYPES, // leave this at the end 00070 STEPS_TYPE_INVALID, 00071 }; 00072 #define FOREACH_StepsType( st ) FOREACH_ENUM( StepsType, NUM_STEPS_TYPES, st ) 00073 00074 // 00075 // Play mode stuff 00076 // 00077 enum PlayMode 00078 { 00079 PLAY_MODE_REGULAR, 00080 PLAY_MODE_NONSTOP, 00081 PLAY_MODE_ONI, 00082 PLAY_MODE_ENDLESS, 00083 PLAY_MODE_BATTLE, // manually launched attacks 00084 PLAY_MODE_RAVE, // automatically launched attacks 00085 NUM_PLAY_MODES, 00086 PLAY_MODE_INVALID 00087 }; 00088 #define FOREACH_PlayMode( pm ) FOREACH_ENUM( PlayMode, NUM_PLAY_MODES, pm ) 00089 const CString& PlayModeToString( PlayMode pm ); 00090 const CString& PlayModeToThemedString( PlayMode pm ); 00091 PlayMode StringToPlayMode( const CString& s ); 00092 00093 00094 00095 00096 enum SortOrder 00097 { 00098 SORT_PREFERRED, 00099 SORT_GROUP, 00100 SORT_TITLE, 00101 SORT_BPM, 00102 SORT_POPULARITY, 00103 SORT_TOP_GRADES, 00104 SORT_ARTIST, 00105 SORT_GENRE, 00106 SORT_EASY_METER, 00107 SORT_MEDIUM_METER, 00108 SORT_HARD_METER, 00109 SORT_CHALLENGE_METER, 00110 SORT_MODE_MENU, 00111 SORT_ALL_COURSES, 00112 SORT_NONSTOP_COURSES, 00113 SORT_ONI_COURSES, 00114 SORT_ENDLESS_COURSES, 00115 SORT_ROULETTE, 00116 NUM_SORT_ORDERS, 00117 SORT_INVALID 00118 }; 00119 const SortOrder MAX_SELECTABLE_SORT = (SortOrder)(SORT_ROULETTE-1); 00120 #define FOREACH_SortOrder( so ) FOREACH_ENUM( SortOrder, NUM_SORT_ORDERS, so ) 00121 const CString& SortOrderToString( SortOrder so ); 00122 SortOrder StringToSortOrder( const CString& str ); 00123 00124 inline bool IsSongSort( SortOrder so ) { return so >= SORT_PREFERRED && so <= SORT_CHALLENGE_METER; } 00125 00126 // 00127 // Scoring stuff 00128 // 00129 00130 enum TapNoteScore { 00131 TNS_None, 00132 TNS_HitMine, 00133 TNS_AvoidMine, 00134 TNS_Miss, 00135 TNS_W5, 00136 TNS_W4, 00137 TNS_W3, 00138 TNS_W2, 00139 TNS_W1, 00140 NUM_TapNoteScore, 00141 TNS_INVALID, 00142 }; 00143 #define FOREACH_TapNoteScore( tns ) FOREACH_ENUM( TapNoteScore, NUM_TapNoteScore, tns ) 00144 const CString& TapNoteScoreToString( TapNoteScore tns ); 00145 const CString& TapNoteScoreToThemedString( TapNoteScore tns ); 00146 TapNoteScore StringToTapNoteScore( const CString& str ); 00147 00148 00149 enum HoldNoteScore 00150 { 00151 HNS_None, // this HoldNote has not been scored yet 00152 HNS_LetGo, // the HoldNote has passed and they missed it 00153 HNS_Held, // the HoldNote has passed and was successfully held all the way through 00154 NUM_HoldNoteScore, 00155 HNS_INVALID, 00156 }; 00157 #define FOREACH_HoldNoteScore( hns ) FOREACH_ENUM( HoldNoteScore, NUM_HoldNoteScore, hns ) 00158 const CString& HoldNoteScoreToString( HoldNoteScore hns ); 00159 const CString& HoldNoteScoreToThemedString( HoldNoteScore hns ); 00160 HoldNoteScore StringToHoldNoteScore( const CString& str ); 00161 00162 00163 enum TimingWindow 00164 { 00165 TW_W1, 00166 TW_W2, 00167 TW_W3, 00168 TW_W4, 00169 TW_W5, 00170 TW_Mine, 00171 TW_Attack, 00172 TW_Hold, 00173 TW_Roll, 00174 NUM_TimingWindow 00175 }; 00176 00177 00178 enum ScoreEvent 00179 { 00180 SE_W1, 00181 SE_W2, 00182 SE_W3, 00183 SE_W4, 00184 SE_W5, 00185 SE_Miss, 00186 SE_HitMine, 00187 SE_Held, 00188 SE_LetGo, 00189 NUM_ScoreEvent 00190 }; 00191 00192 00193 // 00194 // Profile and MemCard stuff 00195 // 00196 enum ProfileSlot 00197 { 00198 PROFILE_SLOT_PLAYER_1, 00199 PROFILE_SLOT_PLAYER_2, 00200 PROFILE_SLOT_MACHINE, 00201 NUM_PROFILE_SLOTS, 00202 PROFILE_SLOT_INVALID 00203 }; 00204 #define FOREACH_ProfileSlot( slot ) FOREACH_ENUM( ProfileSlot, NUM_PROFILE_SLOTS, slot ) 00205 00206 00207 enum MemoryCardState 00208 { 00209 MEMORY_CARD_STATE_READY, 00210 MEMORY_CARD_STATE_CHECKING, 00211 MEMORY_CARD_STATE_TOO_LATE, 00212 MEMORY_CARD_STATE_ERROR, 00213 MEMORY_CARD_STATE_REMOVED, 00214 MEMORY_CARD_STATE_NO_CARD, 00215 NUM_MEMORY_CARD_STATES, 00216 MEMORY_CARD_STATE_INVALID, 00217 }; 00218 00219 const CString& MemoryCardStateToString( MemoryCardState mcs ); 00220 00221 00222 // 00223 // Ranking stuff 00224 // 00225 enum RankingCategory 00226 { 00227 RANKING_A, // 1-3 meter per song avg. 00228 RANKING_B, // 4-6 meter per song avg. 00229 RANKING_C, // 7-9 meter per song avg. 00230 RANKING_D, // 10+ meter per song avg. // doesn't count extra stage! 00231 NUM_RANKING_CATEGORIES, 00232 RANKING_INVALID 00233 }; 00234 #define FOREACH_RankingCategory( rc ) FOREACH_ENUM( RankingCategory, NUM_RANKING_CATEGORIES, rc ) 00235 const CString& RankingCategoryToString( RankingCategory rc ); 00236 RankingCategory StringToRankingCategory( const CString& rc ); 00237 00238 extern const CString RANKING_TO_FILL_IN_MARKER[NUM_PLAYERS]; 00239 inline bool IsRankingToFillIn( const CString& sName ) { return !sName.empty() && sName[0]=='#'; } 00240 00241 RankingCategory AverageMeterToRankingCategory( int iAverageMeter ); 00242 00243 // 00244 // Group stuff 00245 // 00246 extern const CString GROUP_ALL; 00247 00248 00249 // 00250 // 00251 // 00252 enum PlayerController 00253 { 00254 PC_HUMAN, 00255 PC_AUTOPLAY, 00256 PC_CPU, 00257 NUM_PLAYER_CONTROLLERS 00258 }; 00259 const CString& PlayerControllerToString( PlayerController pc ); 00260 00261 const int MIN_SKILL = 0; 00262 const int MAX_SKILL = 10; 00263 00264 00265 enum StageResult 00266 { 00267 RESULT_WIN, 00268 RESULT_LOSE, 00269 RESULT_DRAW 00270 }; 00271 00272 00273 // 00274 // Battle stuff 00275 // 00276 const int NUM_INVENTORY_SLOTS = 3; 00277 enum AttackLevel 00278 { 00279 ATTACK_LEVEL_1, 00280 ATTACK_LEVEL_2, 00281 ATTACK_LEVEL_3, 00282 NUM_ATTACK_LEVELS 00283 }; 00284 const int NUM_ATTACKS_PER_LEVEL = 3; 00285 const int ITEM_NONE = -1; 00286 00287 00288 00289 // 00290 // Coin stuff 00291 // 00292 00293 enum CoinMode 00294 { 00295 COIN_MODE_HOME, 00296 COIN_MODE_PAY, 00297 COIN_MODE_FREE, 00298 NUM_COIN_MODES 00299 }; 00300 #define FOREACH_CoinMode( i ) FOREACH_ENUM( CoinMode, NUM_COIN_MODES, i ) 00301 const CString& CoinModeToString( CoinMode cm ); 00302 00303 00304 // 00305 // Premium 00306 // 00307 enum Premium 00308 { 00309 PREMIUM_NONE, 00310 PREMIUM_DOUBLE, 00311 PREMIUM_JOINT, 00312 NUM_PREMIUMS 00313 }; 00314 #define FOREACH_Premium( i ) FOREACH_ENUM( Premium, NUM_PREMIUMS, i ) 00315 const CString& PremiumToString( Premium p ); 00316 00317 00318 // 00319 // Award stuff 00320 // 00321 00322 enum PerDifficultyAward 00323 { 00324 AWARD_FULL_COMBO_W3, 00325 AWARD_SINGLE_DIGIT_W3, 00326 AWARD_ONE_W3, 00327 AWARD_FULL_COMBO_W2, 00328 AWARD_SINGLE_DIGIT_W2, 00329 AWARD_ONE_W2, 00330 AWARD_FULL_COMBO_W1, 00331 AWARD_PERCENT_80_W3, 00332 AWARD_PERCENT_90_W3, 00333 AWARD_PERCENT_100_W3, 00334 NUM_PER_DIFFICULTY_AWARDS, 00335 PER_DIFFICULTY_AWARD_INVALID, 00336 }; 00337 #define FOREACH_PerDifficultyAward( pma ) FOREACH_ENUM( PerDifficultyAward, NUM_PER_DIFFICULTY_AWARDS, pma ) 00338 const CString& PerDifficultyAwardToString( PerDifficultyAward pma ); 00339 const CString& PerDifficultyAwardToThemedString( PerDifficultyAward pma ); 00340 PerDifficultyAward StringToPerDifficultyAward( const CString& pma ); 00341 00342 00343 enum PeakComboAward 00344 { 00345 AWARD_1000_PEAK_COMBO, 00346 AWARD_2000_PEAK_COMBO, 00347 AWARD_3000_PEAK_COMBO, 00348 AWARD_4000_PEAK_COMBO, 00349 AWARD_5000_PEAK_COMBO, 00350 AWARD_6000_PEAK_COMBO, 00351 AWARD_7000_PEAK_COMBO, 00352 AWARD_8000_PEAK_COMBO, 00353 AWARD_9000_PEAK_COMBO, 00354 AWARD_10000_PEAK_COMBO, 00355 NUM_PEAK_COMBO_AWARDS, 00356 PEAK_COMBO_AWARD_INVALID, 00357 }; 00358 #define FOREACH_PeakComboAward( pca ) FOREACH_ENUM( PeakComboAward, NUM_PEAK_COMBO_AWARDS, pca ) 00359 const CString& PeakComboAwardToString( PeakComboAward pma ); 00360 const CString& PeakComboAwardToThemedString( PeakComboAward pma ); 00361 PeakComboAward StringToPeakComboAward( const CString& pma ); 00362 00363 00364 struct DisplayBpms 00365 { 00366 void Add( float f ); 00367 float GetMin() const; 00368 float GetMax() const; 00369 bool BpmIsConstant() const; 00370 bool IsSecret() const; 00371 vector<float> vfBpms; 00372 }; 00373 00374 enum StyleType 00375 { 00376 ONE_PLAYER_ONE_SIDE, // e.g. single 00377 TWO_PLAYERS_TWO_SIDES, // e.g. versus 00378 ONE_PLAYER_TWO_SIDES, // e.g. double 00379 NUM_STYLE_TYPES, 00380 STYLE_TYPE_INVALID 00381 }; 00382 const CString& StyleTypeToString( StyleType s ); 00383 StyleType StringToStyleType( const CString& s ); 00384 00385 00386 enum MenuDir 00387 { 00388 MENU_DIR_UP, 00389 MENU_DIR_DOWN, 00390 MENU_DIR_LEFT, 00391 MENU_DIR_RIGHT, 00392 MENU_DIR_AUTO, // when players join and the selection becomes invalid 00393 NUM_MENU_DIRS 00394 }; 00395 #define FOREACH_MenuDir( md ) FOREACH_ENUM( MenuDir, NUM_MENU_DIRS, md ) 00396 const CString& MenuDirToString( MenuDir md ); 00397 00398 00399 enum GoalType 00400 { 00401 GOAL_CALORIES, 00402 GOAL_TIME, 00403 GOAL_NONE, 00404 NUM_GOAL_TYPES, 00405 GOAL_INVALID, 00406 }; 00407 #define FOREACH_GoalType( md ) FOREACH_ENUM( GoalType, NUM_GOAL_TYPES, gt ) 00408 const CString& GoalTypeToString( GoalType gt ); 00409 GoalType StringToGoalType( const CString& s ); 00410 00411 00412 enum EditMode 00413 { 00414 EDIT_MODE_PRACTICE, // subset of EDIT_MODE_HOME 00415 EDIT_MODE_HOME, // subset of EDIT_MODE_FULL 00416 EDIT_MODE_FULL, // complete 00417 NUM_EDIT_MODES, 00418 EDIT_MODE_INVALID, 00419 }; 00420 00421 00422 enum Stage 00423 { 00424 STAGE_1, 00425 STAGE_2, 00426 STAGE_3, 00427 STAGE_4, 00428 STAGE_5, 00429 STAGE_6, 00430 STAGE_FINAL, 00431 STAGE_EXTRA1, 00432 STAGE_EXTRA2, 00433 STAGE_NONSTOP, 00434 STAGE_ONI, 00435 STAGE_ENDLESS, 00436 STAGE_EVENT, 00437 STAGE_DEMO, 00438 NUM_STAGES, 00439 STAGE_INVALID, 00440 }; 00441 #define FOREACH_Stage( s ) FOREACH_ENUM( Stage, NUM_STAGES, s ) 00442 const CString& StageToString( Stage s ); 00443 00444 00445 enum ProfileLoadResult 00446 { 00447 ProfileLoadResult_Success, 00448 ProfileLoadResult_FailedNoProfile, 00449 ProfileLoadResult_FailedTampered 00450 }; 00451 00452 00453 #endif 00454 00455 /* 00456 * (c) 2001-2004 Chris Danford, Chris Gomez 00457 * All rights reserved. 00458 * 00459 * Permission is hereby granted, free of charge, to any person obtaining a 00460 * copy of this software and associated documentation files (the 00461 * "Software"), to deal in the Software without restriction, including 00462 * without limitation the rights to use, copy, modify, merge, publish, 00463 * distribute, and/or sell copies of the Software, and to permit persons to 00464 * whom the Software is furnished to do so, provided that the above 00465 * copyright notice(s) and this permission notice appear in all copies of 00466 * the Software and that both the above copyright notice(s) and this 00467 * permission notice appear in supporting documentation. 00468 * 00469 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00470 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00471 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF 00472 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS 00473 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT 00474 * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 00475 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 00476 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00477 * PERFORMANCE OF THIS SOFTWARE. 00478 */

Generated on Wed Nov 30 20:57:26 2005 for StepMania by doxygen 1.3.7

Translate

Thanks to

SourceForge.net Logo

Random Pictures