smsvn -> ssc-hg glue: rearrange directory structure
This commit is contained in:
@@ -0,0 +1,561 @@
|
||||
/* GameConstantsAndTypes - Things used in many places that don't change often. */
|
||||
|
||||
#ifndef GAME_CONSTANTS_AND_TYPES_H
|
||||
#define GAME_CONSTANTS_AND_TYPES_H
|
||||
|
||||
#include "EnumHelper.h"
|
||||
|
||||
|
||||
//
|
||||
// Note definitions
|
||||
//
|
||||
const int MAX_METER = 13;
|
||||
const int MIN_METER = 1;
|
||||
|
||||
//
|
||||
// Credits
|
||||
//
|
||||
const int MAX_NUM_CREDITS = 20;
|
||||
|
||||
|
||||
/* This is just cached song data. Not all of it may actually be displayed
|
||||
* in the radar. */
|
||||
enum RadarCategory
|
||||
{
|
||||
RadarCategory_Stream = 0,
|
||||
RadarCategory_Voltage,
|
||||
RadarCategory_Air,
|
||||
RadarCategory_Freeze,
|
||||
RadarCategory_Chaos,
|
||||
RadarCategory_TapsAndHolds,
|
||||
RadarCategory_Jumps,
|
||||
RadarCategory_Holds,
|
||||
RadarCategory_Mines,
|
||||
RadarCategory_Hands,
|
||||
RadarCategory_Rolls,
|
||||
RadarCategory_MinMidiNote,
|
||||
RadarCategory_MaxMidiNote,
|
||||
NUM_RadarCategory, // leave this at the end
|
||||
RadarCategory_Invalid
|
||||
};
|
||||
const RString& RadarCategoryToString( RadarCategory cat );
|
||||
const RString& RadarCategoryToLocalizedString( RadarCategory cat );
|
||||
LuaDeclareType( RadarCategory );
|
||||
|
||||
|
||||
enum StepsTypeCategory
|
||||
{
|
||||
StepsTypeCategory_Single,
|
||||
StepsTypeCategory_Double,
|
||||
StepsTypeCategory_Couple,
|
||||
StepsTypeCategory_Routine,
|
||||
};
|
||||
|
||||
|
||||
enum StepsType
|
||||
{
|
||||
StepsType_dance_single = 0,
|
||||
StepsType_dance_double,
|
||||
StepsType_dance_couple,
|
||||
StepsType_dance_solo,
|
||||
StepsType_dance_routine,
|
||||
StepsType_pump_single,
|
||||
StepsType_pump_halfdouble,
|
||||
StepsType_pump_double,
|
||||
StepsType_pump_couple,
|
||||
StepsType_pump_routine,
|
||||
StepsType_kb7_single,
|
||||
StepsType_ez2_single,
|
||||
StepsType_ez2_double,
|
||||
StepsType_ez2_real,
|
||||
StepsType_para_single,
|
||||
StepsType_ds3ddx_single,
|
||||
StepsType_beat_single5,
|
||||
StepsType_beat_double5,
|
||||
StepsType_beat_single7,
|
||||
StepsType_beat_double7,
|
||||
StepsType_maniax_single,
|
||||
StepsType_maniax_double,
|
||||
StepsType_techno_single4,
|
||||
StepsType_techno_single5,
|
||||
StepsType_techno_single8,
|
||||
StepsType_techno_double4,
|
||||
StepsType_techno_double5,
|
||||
StepsType_popn_five,
|
||||
StepsType_popn_nine,
|
||||
StepsType_guitar_five,
|
||||
StepsType_karaoke_single,
|
||||
StepsType_lights_cabinet,
|
||||
NUM_StepsType, // leave this at the end
|
||||
StepsType_Invalid,
|
||||
};
|
||||
LuaDeclareType( StepsType );
|
||||
|
||||
//
|
||||
// Play mode stuff
|
||||
//
|
||||
enum PlayMode
|
||||
{
|
||||
PLAY_MODE_REGULAR,
|
||||
PLAY_MODE_NONSTOP,
|
||||
PLAY_MODE_ONI,
|
||||
PLAY_MODE_ENDLESS,
|
||||
PLAY_MODE_BATTLE, // manually launched attacks
|
||||
PLAY_MODE_RAVE, // automatically launched attacks
|
||||
NUM_PlayMode,
|
||||
PlayMode_Invalid
|
||||
};
|
||||
const RString& PlayModeToString( PlayMode pm );
|
||||
const RString& PlayModeToLocalizedString( PlayMode pm );
|
||||
PlayMode StringToPlayMode( const RString& s );
|
||||
LuaDeclareType( PlayMode );
|
||||
|
||||
|
||||
|
||||
|
||||
enum SortOrder
|
||||
{
|
||||
SORT_PREFERRED,
|
||||
SORT_GROUP,
|
||||
SORT_TITLE,
|
||||
SORT_BPM,
|
||||
SORT_POPULARITY,
|
||||
SORT_TOP_GRADES,
|
||||
SORT_ARTIST,
|
||||
SORT_GENRE,
|
||||
SORT_EASY_METER,
|
||||
SORT_MEDIUM_METER,
|
||||
SORT_HARD_METER,
|
||||
SORT_CHALLENGE_METER,
|
||||
SORT_DOUBLE_EASY_METER,
|
||||
SORT_DOUBLE_MEDIUM_METER,
|
||||
SORT_DOUBLE_HARD_METER,
|
||||
SORT_DOUBLE_CHALLENGE_METER,
|
||||
SORT_MODE_MENU,
|
||||
SORT_ALL_COURSES,
|
||||
SORT_NONSTOP_COURSES,
|
||||
SORT_ONI_COURSES,
|
||||
SORT_ENDLESS_COURSES,
|
||||
SORT_LENGTH,
|
||||
SORT_ROULETTE,
|
||||
NUM_SortOrder,
|
||||
SortOrder_Invalid
|
||||
};
|
||||
const SortOrder MAX_SELECTABLE_SORT = (SortOrder)(SORT_ROULETTE-1);
|
||||
const RString& SortOrderToString( SortOrder so );
|
||||
const RString& SortOrderToLocalizedString( SortOrder so );
|
||||
SortOrder StringToSortOrder( const RString& str );
|
||||
LuaDeclareType( SortOrder );
|
||||
|
||||
inline bool IsSongSort( SortOrder so ) { return so >= SORT_PREFERRED && so <= SORT_DOUBLE_CHALLENGE_METER; }
|
||||
|
||||
//
|
||||
// Scoring stuff
|
||||
//
|
||||
|
||||
enum TapNoteScore {
|
||||
TNS_None,
|
||||
TNS_HitMine,
|
||||
TNS_AvoidMine,
|
||||
TNS_CheckpointMiss,
|
||||
TNS_Miss,
|
||||
TNS_W5,
|
||||
TNS_W4,
|
||||
TNS_W3,
|
||||
TNS_W2,
|
||||
TNS_W1,
|
||||
TNS_CheckpointHit,
|
||||
NUM_TapNoteScore,
|
||||
TapNoteScore_Invalid,
|
||||
};
|
||||
const RString& TapNoteScoreToString( TapNoteScore tns );
|
||||
const RString& TapNoteScoreToLocalizedString( TapNoteScore tns );
|
||||
TapNoteScore StringToTapNoteScore( const RString& str );
|
||||
LuaDeclareType( TapNoteScore );
|
||||
|
||||
|
||||
enum HoldNoteScore
|
||||
{
|
||||
HNS_None, // this HoldNote has not been scored yet
|
||||
HNS_LetGo, // the HoldNote has passed and they missed it
|
||||
HNS_Held, // the HoldNote has passed and was successfully held all the way through
|
||||
NUM_HoldNoteScore,
|
||||
HoldNoteScore_Invalid,
|
||||
};
|
||||
const RString& HoldNoteScoreToString( HoldNoteScore hns );
|
||||
const RString& HoldNoteScoreToLocalizedString( HoldNoteScore hns );
|
||||
HoldNoteScore StringToHoldNoteScore( const RString& str );
|
||||
LuaDeclareType( HoldNoteScore );
|
||||
|
||||
enum TimingWindow
|
||||
{
|
||||
TW_W1,
|
||||
TW_W2,
|
||||
TW_W3,
|
||||
TW_W4,
|
||||
TW_W5,
|
||||
TW_Mine,
|
||||
TW_Attack,
|
||||
TW_Hold,
|
||||
TW_Roll,
|
||||
NUM_TimingWindow
|
||||
};
|
||||
const RString& TimingWindowToString( TimingWindow tw );
|
||||
|
||||
|
||||
enum ScoreEvent
|
||||
{
|
||||
SE_CheckpointHit,
|
||||
SE_W1,
|
||||
SE_W2,
|
||||
SE_W3,
|
||||
SE_W4,
|
||||
SE_W5,
|
||||
SE_Miss,
|
||||
SE_HitMine,
|
||||
SE_CheckpointMiss,
|
||||
SE_Held,
|
||||
SE_LetGo,
|
||||
NUM_ScoreEvent
|
||||
};
|
||||
const RString& ScoreEventToString( ScoreEvent se );
|
||||
|
||||
|
||||
enum GameButtonType
|
||||
{
|
||||
GameButtonType_Step,
|
||||
GameButtonType_Fret,
|
||||
GameButtonType_Strum,
|
||||
GameButtonType_INVALID
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// Profile and MemCard stuff
|
||||
//
|
||||
enum ProfileSlot
|
||||
{
|
||||
ProfileSlot_Player1,
|
||||
ProfileSlot_Player2,
|
||||
ProfileSlot_Machine,
|
||||
NUM_ProfileSlot,
|
||||
ProfileSlot_Invalid
|
||||
};
|
||||
|
||||
|
||||
enum MemoryCardState
|
||||
{
|
||||
MemoryCardState_Ready,
|
||||
MemoryCardState_Checking,
|
||||
MemoryCardState_TooLate,
|
||||
MemoryCardState_Error,
|
||||
MemoryCardState_Removed,
|
||||
MemoryCardState_NoCard,
|
||||
NUM_MemoryCardState,
|
||||
MemoryCardState_Invalid,
|
||||
};
|
||||
|
||||
const RString& MemoryCardStateToString( MemoryCardState mcs );
|
||||
LuaDeclareType( MemoryCardState );
|
||||
|
||||
//
|
||||
// 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_RankingCategory,
|
||||
RankingCategory_Invalid
|
||||
};
|
||||
const RString& RankingCategoryToString( RankingCategory rc );
|
||||
RankingCategory StringToRankingCategory( const RString& rc );
|
||||
|
||||
extern const vector<RString> RANKING_TO_FILL_IN_MARKER;
|
||||
inline bool IsRankingToFillIn( const RString& sName ) { return !sName.empty() && sName[0]=='#'; }
|
||||
|
||||
RankingCategory AverageMeterToRankingCategory( int iAverageMeter );
|
||||
|
||||
//
|
||||
// Group stuff
|
||||
//
|
||||
extern const RString GROUP_ALL;
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
enum PlayerController
|
||||
{
|
||||
PC_HUMAN,
|
||||
PC_AUTOPLAY,
|
||||
PC_CPU,
|
||||
NUM_PlayerController,
|
||||
PlayerController_Invalid
|
||||
};
|
||||
const RString& PlayerControllerToString( PlayerController pc );
|
||||
|
||||
|
||||
enum HealthState
|
||||
{
|
||||
HealthState_Hot,
|
||||
HealthState_Alive,
|
||||
HealthState_Danger,
|
||||
HealthState_Dead,
|
||||
NUM_HealthState,
|
||||
HealthState_Invalid
|
||||
};
|
||||
LuaDeclareType( HealthState );
|
||||
|
||||
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;
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Coin stuff
|
||||
//
|
||||
|
||||
enum CoinMode
|
||||
{
|
||||
CoinMode_Home,
|
||||
CoinMode_Pay,
|
||||
CoinMode_Free,
|
||||
NUM_CoinMode,
|
||||
CoinMode_Invalid
|
||||
};
|
||||
const RString& CoinModeToString( CoinMode cm );
|
||||
LuaDeclareType( CoinMode );
|
||||
|
||||
|
||||
//
|
||||
// Premium
|
||||
//
|
||||
enum Premium
|
||||
{
|
||||
Premium_Off,
|
||||
Premium_DoubleFor1Credit,
|
||||
Premium_2PlayersFor1Credit,
|
||||
NUM_Premium,
|
||||
Premium_Invalid
|
||||
};
|
||||
const RString& PremiumToString( Premium p );
|
||||
const RString& PremiumToLocalizedString( Premium p );
|
||||
LuaDeclareType( Premium );
|
||||
|
||||
|
||||
//
|
||||
// Award stuff
|
||||
//
|
||||
|
||||
enum StageAward
|
||||
{
|
||||
StageAward_FullComboW3,
|
||||
StageAward_SingleDigitW3,
|
||||
StageAward_OneW3,
|
||||
StageAward_FullComboW2,
|
||||
StageAward_SingleDigitW2,
|
||||
StageAward_OneW2,
|
||||
StageAward_FullComboW1,
|
||||
StageAward_80PercentW3,
|
||||
StageAward_90PercentW3,
|
||||
StageAward_100PercentW3,
|
||||
NUM_StageAward,
|
||||
StageAward_Invalid,
|
||||
};
|
||||
const RString& StageAwardToString( StageAward pma );
|
||||
const RString& StageAwardToLocalizedString( StageAward pma );
|
||||
StageAward StringToStageAward( const RString& pma );
|
||||
LuaDeclareType( StageAward );
|
||||
|
||||
|
||||
enum PeakComboAward
|
||||
{
|
||||
PeakComboAward_1000,
|
||||
PeakComboAward_2000,
|
||||
PeakComboAward_3000,
|
||||
PeakComboAward_4000,
|
||||
PeakComboAward_5000,
|
||||
PeakComboAward_6000,
|
||||
PeakComboAward_7000,
|
||||
PeakComboAward_8000,
|
||||
PeakComboAward_9000,
|
||||
PeakComboAward_10000,
|
||||
NUM_PeakComboAward,
|
||||
PeakComboAward_Invalid,
|
||||
};
|
||||
const RString& PeakComboAwardToString( PeakComboAward pma );
|
||||
const RString& PeakComboAwardToLocalizedString( PeakComboAward pma );
|
||||
PeakComboAward StringToPeakComboAward( const RString& pma );
|
||||
LuaDeclareType( PeakComboAward );
|
||||
|
||||
|
||||
struct DisplayBpms
|
||||
{
|
||||
void Add( float f );
|
||||
float GetMin() const;
|
||||
float GetMax() const;
|
||||
bool BpmIsConstant() const;
|
||||
bool IsSecret() const;
|
||||
vector<float> vfBpms;
|
||||
};
|
||||
|
||||
enum StyleType
|
||||
{
|
||||
StyleType_OnePlayerOneSide, // e.g. single
|
||||
StyleType_TwoPlayersTwoSides, // e.g. versus
|
||||
StyleType_OnePlayerTwoSides, // e.g. double
|
||||
StyleType_TwoPlayersSharedSides, // e.g. routine
|
||||
NUM_StyleType,
|
||||
StyleType_Invalid
|
||||
};
|
||||
const RString& StyleTypeToString( StyleType s );
|
||||
StyleType StringToStyleType( const RString& s );
|
||||
LuaDeclareType( StyleType );
|
||||
|
||||
|
||||
enum GoalType
|
||||
{
|
||||
GoalType_Calories,
|
||||
GoalType_Time,
|
||||
GoalType_None,
|
||||
NUM_GoalType,
|
||||
GoalType_Invalid,
|
||||
};
|
||||
const RString& GoalTypeToString( GoalType gt );
|
||||
GoalType StringToGoalType( const RString& s );
|
||||
LuaDeclareType( GoalType );
|
||||
|
||||
|
||||
enum EditMode
|
||||
{
|
||||
EditMode_Practice,
|
||||
EditMode_CourseMods,
|
||||
EditMode_Home,
|
||||
EditMode_Full,
|
||||
NUM_EditMode,
|
||||
EditMode_Invalid,
|
||||
};
|
||||
const RString& EditModeToString( EditMode em );
|
||||
EditMode StringToEditMode( const RString& s );
|
||||
LuaDeclareType( EditMode );
|
||||
|
||||
enum Stage // Shared stage values (not per-player) that are shown in StageDisplay
|
||||
{
|
||||
Stage_1st,
|
||||
Stage_2nd,
|
||||
Stage_3rd,
|
||||
Stage_4th,
|
||||
Stage_5th,
|
||||
Stage_6th,
|
||||
Stage_Next, // after Stage_6th but not Final. This won't normally happen because 7 stages is the max in the UI.
|
||||
Stage_Final,
|
||||
Stage_Extra1,
|
||||
Stage_Extra2,
|
||||
Stage_Nonstop,
|
||||
Stage_Oni,
|
||||
Stage_Endless,
|
||||
Stage_Event,
|
||||
Stage_Demo,
|
||||
NUM_Stage,
|
||||
Stage_Invalid,
|
||||
};
|
||||
const RString& StageToString( Stage s );
|
||||
LuaDeclareType( Stage );
|
||||
const RString& StageToLocalizedString( Stage i );
|
||||
|
||||
|
||||
enum EarnedExtraStage
|
||||
{
|
||||
EarnedExtraStage_No,
|
||||
EarnedExtraStage_Extra1,
|
||||
EarnedExtraStage_Extra2,
|
||||
NUM_EarnedExtraStage,
|
||||
EarnedExtraStage_Invalid
|
||||
};
|
||||
const RString& EarnedExtraStageToString( EarnedExtraStage s );
|
||||
LuaDeclareType( EarnedExtraStage );
|
||||
|
||||
|
||||
enum ProfileLoadResult
|
||||
{
|
||||
ProfileLoadResult_Success,
|
||||
ProfileLoadResult_FailedNoProfile,
|
||||
ProfileLoadResult_FailedTampered
|
||||
};
|
||||
|
||||
|
||||
enum MultiPlayerStatus
|
||||
{
|
||||
MultiPlayerStatus_Joined,
|
||||
MultiPlayerStatus_NotJoined,
|
||||
MultiPlayerStatus_Unplugged,
|
||||
MultiPlayerStatus_MissingMultitap,
|
||||
NUM_MultiPlayerStatus,
|
||||
MultiPlayerStatus_Invalid
|
||||
};
|
||||
const RString& MultiPlayerStatusToString( MultiPlayerStatus i );
|
||||
|
||||
|
||||
enum CourseType
|
||||
{
|
||||
COURSE_TYPE_NONSTOP, // if life meter type is BAR
|
||||
COURSE_TYPE_ONI, // if life meter type is BATTERY
|
||||
COURSE_TYPE_ENDLESS, // if set to REPEAT
|
||||
COURSE_TYPE_SURVIVAL, // if life meter type is TIME
|
||||
NUM_CourseType,
|
||||
CourseType_Invalid
|
||||
};
|
||||
#define FOREACH_CourseType( i ) FOREACH_ENUM( CourseType, i )
|
||||
const RString& CourseTypeToString( CourseType i );
|
||||
const RString& CourseTypeToLocalizedString( CourseType i );
|
||||
LuaDeclareType( CourseType );
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* (c) 2001-2004 Chris Danford, Chris Gomez
|
||||
* All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, and/or sell copies of the Software, and to permit persons to
|
||||
* whom the Software is furnished to do so, provided that the above
|
||||
* copyright notice(s) and this permission notice appear in all copies of
|
||||
* the Software and that both the above copyright notice(s) and this
|
||||
* permission notice appear in supporting documentation.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
||||
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
||||
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
||||
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
||||
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
Reference in New Issue
Block a user