From 0ad3daab069048008bb8158d03e97acc086a258e Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sat, 9 Apr 2005 04:22:58 +0000 Subject: [PATCH] add ScoreDisplayAliveTime --- stepmania/src/ScoreDisplayAliveTime.cpp | 84 +++++++++++++++++++++++++ stepmania/src/ScoreDisplayAliveTime.h | 72 +++++++++++++++++++++ stepmania/src/StepMania.dsp | 14 ++++- stepmania/src/StepMania.vcproj | 6 ++ 4 files changed, 173 insertions(+), 3 deletions(-) create mode 100644 stepmania/src/ScoreDisplayAliveTime.cpp create mode 100644 stepmania/src/ScoreDisplayAliveTime.h diff --git a/stepmania/src/ScoreDisplayAliveTime.cpp b/stepmania/src/ScoreDisplayAliveTime.cpp new file mode 100644 index 0000000000..273cd150f0 --- /dev/null +++ b/stepmania/src/ScoreDisplayAliveTime.cpp @@ -0,0 +1,84 @@ +#include "global.h" +#include "ScoreDisplayAliveTime.h" +#include "RageUtil.h" +#include "StageStats.h" +#include "XmlFile.h" +#include "GameState.h" +#include "StatsManager.h" +#include "ActorUtil.h" + +// lua start +LUA_REGISTER_CLASS( ScoreDisplayAliveTime ) +// lua end +REGISTER_ACTOR_CLASS( ScoreDisplayAliveTime ) + + +ScoreDisplayAliveTime::ScoreDisplayAliveTime() +{ + m_PlayerNumber = PLAYER_INVALID; +} + +ScoreDisplayAliveTime::~ScoreDisplayAliveTime() +{ +} + +void ScoreDisplayAliveTime::LoadFromNode( const CString& sDir, const XNode* pNode ) +{ + BitmapText::LoadFromNode( sDir, pNode ); + + { + CString sPlayerNumber; + bool b = pNode->GetAttrValue( "PlayerNumber", sPlayerNumber ); + ASSERT( b ); + m_PlayerNumber = (PlayerNumber)LUA->RunExpressionI(sPlayerNumber); + } +} + +void ScoreDisplayAliveTime::Update( float fDelta ) +{ + UpdateNumber(); + + BitmapText::Update( fDelta ); +} + +void ScoreDisplayAliveTime::PlayCommand( const CString &sCommandName ) +{ + // TODO: Add handling of GoalComplete message + + BitmapText::PlayCommand( sCommandName ); +} + +void ScoreDisplayAliveTime::UpdateNumber() +{ + float fSecsIntoPlay = 0; + ASSERT( m_PlayerNumber != PLAYER_INVALID ); + if( GAMESTATE->IsPlayerEnabled(m_PlayerNumber) ) + fSecsIntoPlay = STATSMAN->m_CurStageStats.m_player[m_PlayerNumber].fAliveSeconds; + + SetText( SecondsToMMSSMsMs(fSecsIntoPlay) ); +} + +/* + * (c) 2001-2004 Chris Danford + * 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. + */ diff --git a/stepmania/src/ScoreDisplayAliveTime.h b/stepmania/src/ScoreDisplayAliveTime.h new file mode 100644 index 0000000000..c2ff911f84 --- /dev/null +++ b/stepmania/src/ScoreDisplayAliveTime.h @@ -0,0 +1,72 @@ +/* ScoreDisplayAliveTime - Display a constantly updating figure of time the player is alive. */ +// TODO: Merge this with ScoreDisplayOni + +#ifndef ScoreDisplayAliveTime_H +#define ScoreDisplayAliveTime_H + +#include "BitmapText.h" +#include "PlayerNumber.h" + + +template +class LunaScoreDisplayAliveTime : public LunaBitmapText +{ +public: + LunaScoreDisplayAliveTime() { LUA->Register( Register ); } + + static void Register(lua_State *L) + { + LunaBitmapText::Register( L ); + } +}; + + +class ScoreDisplayAliveTime : public BitmapText +{ +public: + ScoreDisplayAliveTime(); + ~ScoreDisplayAliveTime(); + + virtual void Update( float fDelta ); + + void LoadFromNode( const CString& sDir, const XNode* pNode ); + + void PlayCommand( const CString &sCommandName ); + + void UpdateNumber(); + + // + // Commands + // + virtual void PushSelf( lua_State *L ); + +private: + PlayerNumber m_PlayerNumber; +}; + +#endif + +/* + * (c) 2001-2004 Chris Danford + * 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. + */ diff --git a/stepmania/src/StepMania.dsp b/stepmania/src/StepMania.dsp index 990ddf280f..6d730cd063 100644 --- a/stepmania/src/StepMania.dsp +++ b/stepmania/src/StepMania.dsp @@ -1,5 +1,5 @@ # Microsoft Developer Studio Project File - Name="StepMania" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# Microsoft Developer Studio Generated Build File, Format Version 60000 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Application" 0x0101 @@ -62,7 +62,7 @@ IntDir=.\../Debug6 TargetDir=\stepmania\stepmania\Program TargetName=StepMania-debug SOURCE="$(InputPath)" -PreLink_Cmds=archutils\Win32\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=archutils\Win32\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=archutils\Win32\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi # End Special Build Tool @@ -99,7 +99,7 @@ IntDir=.\../Release6 TargetDir=\stepmania\stepmania\Program TargetName=StepMania SOURCE="$(InputPath)" -PreLink_Cmds=archutils\Win32\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=archutils\Win32\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=archutils\Win32\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi # End Special Build Tool @@ -2082,6 +2082,14 @@ SOURCE=.\ScoreDisplay.h # End Source File # Begin Source File +SOURCE=.\ScoreDisplayAliveTime.cpp +# End Source File +# Begin Source File + +SOURCE=.\ScoreDisplayAliveTime.h +# End Source File +# Begin Source File + SOURCE=.\ScoreDisplayBattle.cpp # End Source File # Begin Source File diff --git a/stepmania/src/StepMania.vcproj b/stepmania/src/StepMania.vcproj index 442fdfd1f4..b8a0430fdb 100644 --- a/stepmania/src/StepMania.vcproj +++ b/stepmania/src/StepMania.vcproj @@ -1864,6 +1864,12 @@ cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\ + + + +