Initial Techno Motion support - SINGLE8 and VERSUS8
This commit is contained in:
@@ -36,7 +36,8 @@ const int DS3DDX_COL_SPACING = 46;
|
||||
const int BM_COL_SPACING = 34;
|
||||
const int IIDX_COL_SPACING = 34;
|
||||
const int MANIAX_COL_SPACING = 36;
|
||||
const int TECHNO_COL_SPACING = 64;
|
||||
const int TECHNO_COL_SPACING = 50;
|
||||
const int TECHNO_VERSUS_COL_SPACING = 35;
|
||||
const int PNM5_COL_SPACING = 32;
|
||||
const int PNM9_COL_SPACING = 32;
|
||||
|
||||
@@ -2193,7 +2194,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
||||
"single8", // m_szName
|
||||
STEPS_TYPE_TECHNO_SINGLE8, // m_StepsType
|
||||
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
||||
{ 320, 320 }, // m_iCenterX
|
||||
{ 214, 426 }, // m_iCenterX
|
||||
8, // m_iColsPerPlayer
|
||||
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
||||
{ // PLAYER_1
|
||||
@@ -2221,6 +2222,41 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
||||
0,1,2,3,4,5,6,7
|
||||
},
|
||||
},
|
||||
{ // STYLE_TECHNO_VERSUS8
|
||||
GAME_TECHNO, // m_Game
|
||||
true, // m_bUsedForGameplay
|
||||
false, // m_bUsedForEdit
|
||||
"versus8", // m_szName
|
||||
STEPS_TYPE_TECHNO_SINGLE8, // m_StepsType
|
||||
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
||||
{ 150, 480 }, // m_iCenterX
|
||||
8, // m_iColsPerPlayer
|
||||
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
||||
{ // PLAYER_1
|
||||
{ TRACK_1, GAME_CONTROLLER_1, TECHNO_BUTTON_DOWNLEFT, -TECHNO_VERSUS_COL_SPACING*3.5f },
|
||||
{ TRACK_2, GAME_CONTROLLER_1, TECHNO_BUTTON_LEFT, -TECHNO_VERSUS_COL_SPACING*2.5f },
|
||||
{ TRACK_3, GAME_CONTROLLER_1, TECHNO_BUTTON_UPLEFT, -TECHNO_VERSUS_COL_SPACING*1.5f },
|
||||
{ TRACK_4, GAME_CONTROLLER_1, TECHNO_BUTTON_DOWN, -TECHNO_VERSUS_COL_SPACING*0.5f },
|
||||
{ TRACK_5, GAME_CONTROLLER_1, TECHNO_BUTTON_UP, +TECHNO_VERSUS_COL_SPACING*0.5f },
|
||||
{ TRACK_6, GAME_CONTROLLER_1, TECHNO_BUTTON_UPRIGHT, +TECHNO_VERSUS_COL_SPACING*1.5f },
|
||||
{ TRACK_7, GAME_CONTROLLER_1, TECHNO_BUTTON_RIGHT, +TECHNO_VERSUS_COL_SPACING*2.5f },
|
||||
{ TRACK_8, GAME_CONTROLLER_1, TECHNO_BUTTON_DOWNRIGHT,+TECHNO_VERSUS_COL_SPACING*3.5f },
|
||||
},
|
||||
{ // PLAYER_2
|
||||
{ TRACK_1, GAME_CONTROLLER_2, TECHNO_BUTTON_DOWNLEFT, -TECHNO_VERSUS_COL_SPACING*3.5f },
|
||||
{ TRACK_2, GAME_CONTROLLER_2, TECHNO_BUTTON_LEFT, -TECHNO_VERSUS_COL_SPACING*2.5f },
|
||||
{ TRACK_3, GAME_CONTROLLER_2, TECHNO_BUTTON_UPLEFT, -TECHNO_VERSUS_COL_SPACING*1.5f },
|
||||
{ TRACK_4, GAME_CONTROLLER_2, TECHNO_BUTTON_DOWN, -TECHNO_VERSUS_COL_SPACING*0.5f },
|
||||
{ TRACK_5, GAME_CONTROLLER_2, TECHNO_BUTTON_UP, +TECHNO_VERSUS_COL_SPACING*0.5f },
|
||||
{ TRACK_6, GAME_CONTROLLER_2, TECHNO_BUTTON_UPRIGHT, +TECHNO_VERSUS_COL_SPACING*1.5f },
|
||||
{ TRACK_7, GAME_CONTROLLER_2, TECHNO_BUTTON_RIGHT, +TECHNO_VERSUS_COL_SPACING*2.5f },
|
||||
{ TRACK_8, GAME_CONTROLLER_2, TECHNO_BUTTON_DOWNRIGHT,+TECHNO_VERSUS_COL_SPACING*3.5f },
|
||||
},
|
||||
},
|
||||
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
||||
0,1,2,3,4,5,6,7
|
||||
},
|
||||
},
|
||||
{ // STYLE_PNM_FIVE
|
||||
GAME_PNM, // m_Game
|
||||
true, // m_bUsedForGameplay
|
||||
|
||||
@@ -552,11 +552,18 @@ void NoteDisplay::DrawHoldBody( const HoldNote& hn, const bool bIsBeingHeld, flo
|
||||
DISPLAY->SetTextureWrapping( true );
|
||||
|
||||
|
||||
const float fFrameWidth = pSprBody->GetUnzoomedWidth();
|
||||
float fFrameWidth = pSprBody->GetUnzoomedWidth();
|
||||
const float fFrameHeight = pSprBody->GetUnzoomedHeight();
|
||||
const float fYBodyTop = fYHead + cache->m_iStartDrawingHoldBodyOffsetFromHead;
|
||||
const float fYBodyBottom = fYTail + cache->m_iStopDrawingHoldBodyOffsetFromTail;
|
||||
|
||||
|
||||
// To get the hold body textures to look correct on longer hold arrows, you need to have
|
||||
// SetTextureWrapping() be set to true above. However, this ends up defeating the scaling
|
||||
// done on the Sprite itself. As a result, if we want this to be the appropriate size
|
||||
// for 2-player 8-panel (techno versus), then we need to shrink it to 80% manually here.
|
||||
if( GAMESTATE->m_CurGame == GAME_TECHNO && GAMESTATE->m_CurStyle == STYLE_TECHNO_VERSUS8 )
|
||||
fFrameWidth *= (float)0.8;
|
||||
|
||||
const bool bReverse = GAMESTATE->m_CurrentPlayerOptions[m_PlayerNumber].GetReversePercentForColumn(iCol) > 0.5;
|
||||
bool bAnchorToBottom = bReverse && cache->m_bFlipHeadAndTailWhenReverse;
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ bool PrepareForDemonstration() // always return true.
|
||||
case GAME_DS3DDX: GAMESTATE->m_CurStyle = STYLE_DS3DDX_SINGLE; break;
|
||||
case GAME_BM: GAMESTATE->m_CurStyle = STYLE_BM_SINGLE; break;
|
||||
case GAME_MANIAX: GAMESTATE->m_CurStyle = STYLE_MANIAX_SINGLE; break;
|
||||
case GAME_TECHNO: GAMESTATE->m_CurStyle = STYLE_TECHNO_VERSUS8;
|
||||
case GAME_PNM: GAMESTATE->m_CurStyle = STYLE_PNM_NINE; break;
|
||||
default: ASSERT(0);
|
||||
}
|
||||
|
||||
@@ -150,6 +150,7 @@ ScreenHowToPlay::ScreenHowToPlay( CString sName ) : ScreenAttract( sName )
|
||||
case GAME_DS3DDX: GAMESTATE->m_CurStyle = STYLE_DS3DDX_SINGLE; break;
|
||||
case GAME_BM: GAMESTATE->m_CurStyle = STYLE_BM_SINGLE; break;
|
||||
case GAME_MANIAX: GAMESTATE->m_CurStyle = STYLE_MANIAX_SINGLE; break;
|
||||
case GAME_TECHNO: GAMESTATE->m_CurStyle = STYLE_TECHNO_SINGLE8; break;
|
||||
case GAME_PNM: GAMESTATE->m_CurStyle = STYLE_PNM_NINE; break;
|
||||
default: ASSERT(0); // we should cover all gametypes....
|
||||
}
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
#include "SDL_utils.h"
|
||||
#include "ActorUtil.h"
|
||||
#include "arch/ArchHooks/ArchHooks.h"
|
||||
#include "Game.h"
|
||||
#include "GameState.h"
|
||||
#include "Style.h"
|
||||
|
||||
Sprite::Sprite()
|
||||
{
|
||||
@@ -82,13 +85,24 @@ bool Sprite::LoadBG( RageTextureID ID )
|
||||
|
||||
bool Sprite::Load( RageTextureID ID )
|
||||
{
|
||||
if( ID.filename == "" ) return true;
|
||||
bool result;
|
||||
if( ID.filename == "" ) result = true;
|
||||
if( ID.filename.Right(7) == ".sprite" )
|
||||
return LoadFromSpriteFile( ID );
|
||||
result = LoadFromSpriteFile( ID );
|
||||
else
|
||||
return LoadFromTexture( ID );
|
||||
};
|
||||
result = LoadFromTexture( ID );
|
||||
|
||||
// 2-player 8-panel gets crowded - this scaling emulates the arcade behaviour to account for this
|
||||
if( GAMESTATE->m_CurGame == GAME_TECHNO &&
|
||||
GAMESTATE->m_CurStyle == STYLE_TECHNO_VERSUS8 &&
|
||||
ID.filename.find( "NoteSkin" ) != -1 )
|
||||
{
|
||||
Actor::SetBaseZoomX( Actor::m_baseScale.x * (float)0.8 );
|
||||
Actor::SetBaseZoomY( Actor::m_baseScale.y * (float)0.8 );
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
// Sprite file has the format:
|
||||
//
|
||||
|
||||
@@ -34,6 +34,7 @@ enum Style
|
||||
STYLE_MANIAX_VERSUS,
|
||||
STYLE_MANIAX_DOUBLE,
|
||||
STYLE_TECHNO_SINGLE8,
|
||||
STYLE_TECHNO_VERSUS8,
|
||||
STYLE_PNM_FIVE,
|
||||
STYLE_PNM_NINE,
|
||||
STYLE_LIGHTS_CABINET,
|
||||
|
||||
Reference in New Issue
Block a user