Moved Foot Ranking model to Steps.cpp

This commit is contained in:
David Wilson
2003-12-18 20:35:46 +00:00
parent 7950c25c71
commit 61f64cfdb4
5 changed files with 70 additions and 133 deletions
-39
View File
@@ -1,39 +0,0 @@
#include "global.h"
/*
-----------------------------------------------------------------------------
Class: FootModel
Desc: See header.
Copyright (c) 2003 by the person(s) listed below. All rights reserved.
David Wilson
-----------------------------------------------------------------------------
*/
#include "Steps.h"
#include "FootModel.h"
FootModel::FootModel(Steps* model)
{
//Define and Init Non-Radar Values
double SV;
double ChaosSquare;
SV = model->GetRadarValues()[RADAR_STREAM] * model->GetRadarValues()[RADAR_VOLTAGE];
ChaosSquare = model->GetRadarValues()[RADAR_CHAOS] * model->GetRadarValues()[RADAR_CHAOS];
m_predictedMeter = BETA_ZERO;
m_predictedMeter += STREAM * model->GetRadarValues()[RADAR_STREAM];
m_predictedMeter += VOLTAGE * model->GetRadarValues()[RADAR_VOLTAGE];
m_predictedMeter += AIR * model->GetRadarValues()[RADAR_AIR];
m_predictedMeter += FREEZE * model->GetRadarValues()[RADAR_FREEZE];
m_predictedMeter += CHAOS * model->GetRadarValues()[RADAR_CHAOS];
m_predictedMeter += SXV * SV;
m_predictedMeter += CSQUARE * ChaosSquare;
if (model->GetDifficulty() == DIFFICULTY_HARD) m_predictedMeter += HEAVY;
if (model->GetDifficulty() == DIFFICULTY_EASY) m_predictedMeter += LIGHT;
}
double FootModel::GetPMeter()
{
return m_predictedMeter;
}
-40
View File
@@ -1,40 +0,0 @@
#ifndef FOOTMODEL_H
#define FOOTMODEL_H
/*
-----------------------------------------------------------------------------
File: FootModel.h
Desc: Holds the equation for the statistical model for determining foot
ranking from Groove Radar and difficulty
Copyright (c) 2003 by the person(s) listed below. All rights reserved.
David Wilson
-----------------------------------------------------------------------------
*/
/*
Meter = 0.775 + 10.1 Stream + 5.27 Voltage - 0.905 Air - 1.10 Freeze
+ 2.86 Chaos + 0.722 Heavy - 0.877 Light - 6.35 SV Interaction
- 2.58 CSQ
*/
class FootModel
{
private:
//Model Coefficients
#define BETA_ZERO (0.775)
#define STREAM (10.1)
#define VOLTAGE (5.27)
#define AIR (-0.905)
#define FREEZE (-1.10)
#define CHAOS (2.86)
#define HEAVY (0.722)
#define LIGHT (-0.877)
#define SXV (-6.35) // Square/Voltage Interaction Varible
#define CSQUARE (-2.58)
double m_predictedMeter;
public:
FootModel(Steps* model);
double GetPMeter();
};
#endif
+33 -52
View File
@@ -62,10 +62,10 @@ LINK32=link.exe
# SUBTRACT LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib
# Begin Special Build Tool
IntDir=.\../Debug6
TargetDir=\temp\stepmania\Program
TargetDir=\stepmania\stepmania\Program
TargetName=StepMania-debug
SOURCE="$(InputPath)"
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi
# End Special Build Tool
@@ -82,24 +82,24 @@ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
CPP=cl.exe
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_XBOX" /D "_DEBUG" /YX /FD /G6 /Ztmp /c
# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /I "SDL_sound-1.0.0" /D "WIN32" /D "_XBOX" /D "_DEBUG" /D "OGG_ONLY" /YX /FD /G6 /Ztmp /c
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 xapilibd.lib d3d8d.lib d3dx8d.lib xgraphicsd.lib dsoundd.lib dmusicd.lib xnetd.lib xboxkrnl.lib /nologo /incremental:no /debug /machine:I386 /subsystem:xbox /fixed:no /TMP
# ADD LINK32 xapilibd.lib d3d8d.lib d3dx8d.lib xgraphicsd.lib dsoundd.lib dmusicd.lib xnetd.lib xboxkrnl.lib /nologo /incremental:no /debug /machine:I386 /nodefaultlib:"libcd" /nodefaultlib:"libcmt" /out:"../StepManiaXbox-debug.exe" /subsystem:xbox /fixed:no /TMP
XBE=imagebld.exe
# ADD BASE XBE /nologo /stack:0x10000 /debug
# ADD XBE /nologo /stack:0x10000 /debug /out:"../default.xbe"
XBCP=xbecopy.exe
# ADD BASE XBCP /NOLOGO
# ADD XBCP /NOLOGO
XBE=imagebld.exe
# ADD BASE XBE /nologo /stack:0x10000 /debug
# ADD XBE /nologo /stack:0x10000 /debug /out:"../default.xbe"
LINK32=link.exe
# ADD BASE LINK32 xapilibd.lib d3d8d.lib d3dx8d.lib xgraphicsd.lib dsoundd.lib dmusicd.lib xnetd.lib xboxkrnl.lib /nologo /incremental:no /debug /machine:I386 /subsystem:xbox /fixed:no /TMP
# ADD LINK32 xapilibd.lib d3d8d.lib d3dx8d.lib xgraphicsd.lib dsoundd.lib dmusicd.lib xnetd.lib xboxkrnl.lib /nologo /incremental:no /debug /machine:I386 /nodefaultlib:"libcd" /nodefaultlib:"libcmt" /out:"../StepManiaXbox-debug.exe" /subsystem:xbox /fixed:no /TMP
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
CPP=cl.exe
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_XBOX" /D "_DEBUG" /YX /FD /G6 /Ztmp /c
# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /I "SDL_sound-1.0.0" /D "WIN32" /D "_XBOX" /D "_DEBUG" /D "OGG_ONLY" /YX /FD /G6 /Ztmp /c
# Begin Special Build Tool
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
# End Special Build Tool
@@ -136,10 +136,10 @@ LINK32=link.exe
# SUBTRACT LINK32 /verbose /pdb:none
# Begin Special Build Tool
IntDir=.\../Release6
TargetDir=\temp\stepmania\Program
TargetDir=\stepmania\stepmania\Program
TargetName=StepMania
SOURCE="$(InputPath)"
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi
# End Special Build Tool
@@ -157,27 +157,27 @@ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania
# PROP Intermediate_Dir "StepMania___Xbox_Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
CPP=cl.exe
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /D "WIN32" /D "_XBOX" /D "_DEBUG" /Fr /YX"global.h" /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /I "SDL_sound-1.0.0" /D "WIN32" /D "_XBOX" /D "NDEBUG" /YX"global.h" /FD /c
# SUBTRACT CPP /Fr
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
XBCP=xbecopy.exe
# ADD BASE XBCP /NOLOGO
# ADD XBCP /NOLOGO
XBE=imagebld.exe
# ADD BASE XBE /nologo /stack:0x10000 /debug
# ADD XBE /nologo /testid:"123456" /stack:0x10000 /debug /out:"../default.xbe"
LINK32=link.exe
# ADD BASE LINK32 $(intdir)\verstub.obj xapilibd.lib d3d8d.lib d3dx8d.lib xgraphicsd.lib dsoundd.lib dmusicd.lib xnetd.lib xboxkrnl.lib /nologo /pdb:"../debug6/StepMania-debug.pdb" /map /debug /machine:IX86 /nodefaultlib:"libcmtd.lib" /out:"../StepMania-debug.exe"
# SUBTRACT BASE LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib
# ADD LINK32 $(intdir)\verstub.obj xapilib.lib d3d8.lib d3dx8.lib xgraphics.lib dsound.lib dmusic.lib xnet.lib xboxkrnl.lib libcmt.lib /nologo /incremental:no /pdb:"../release6xbox/StepMania.pdb" /machine:I386 /nodefaultlib:"libc" /nodefaultlib:"libcmtd" /out:"../StepManiaXbox.exe" /subsystem:xbox /fixed:no /TMP /OPT:REF
# SUBTRACT LINK32 /pdb:none /map /debug
XBE=imagebld.exe
# ADD BASE XBE /nologo /stack:0x10000 /debug
# ADD XBE /nologo /testid:"123456" /stack:0x10000 /debug /out:"../default.xbe"
XBCP=xbecopy.exe
# ADD BASE XBCP /NOLOGO
# ADD XBCP /NOLOGO
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
CPP=cl.exe
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /D "WIN32" /D "_XBOX" /D "_DEBUG" /Fr /YX"global.h" /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /I "SDL_sound-1.0.0" /D "WIN32" /D "_XBOX" /D "NDEBUG" /YX"global.h" /FD /c
# SUBTRACT CPP /Fr
# Begin Special Build Tool
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
# End Special Build Tool
@@ -1184,25 +1184,6 @@ SOURCE=.\FontCharmaps.h
# End Source File
# Begin Source File
SOURCE=.\FootModel.cpp
!IF "$(CFG)" == "StepMania - Win32 Debug"
!ELSEIF "$(CFG)" == "StepMania - Xbox Debug"
!ELSEIF "$(CFG)" == "StepMania - Win32 Release"
!ELSEIF "$(CFG)" == "StepMania - Xbox Release"
!ENDIF
# End Source File
# Begin Source File
SOURCE=.\FootModel.h
# End Source File
# Begin Source File
SOURCE=.\GameConstantsAndTypes.cpp
!IF "$(CFG)" == "StepMania - Win32 Debug"
+23
View File
@@ -110,6 +110,29 @@ void Steps::GetSMNoteData( CString &notes_comp_out, CString &attacks_comp_out )
attacks_comp_out = notes_comp->attacks;
}
float Steps::PredictMeter()
{
//Define and Init Non-Radar Values
float SV;
float ChaosSquare;
float pMeter;
SV = this->GetRadarValues()[RADAR_STREAM] * this->GetRadarValues()[RADAR_VOLTAGE];
ChaosSquare = this->GetRadarValues()[RADAR_CHAOS] * this->GetRadarValues()[RADAR_CHAOS];
pMeter = BETA_ZERO;
pMeter += STREAM * this->GetRadarValues()[RADAR_STREAM];
pMeter += VOLTAGE * this->GetRadarValues()[RADAR_VOLTAGE];
pMeter += AIR * this->GetRadarValues()[RADAR_AIR];
pMeter += FREEZE * this->GetRadarValues()[RADAR_FREEZE];
pMeter += CHAOS * this->GetRadarValues()[RADAR_CHAOS];
pMeter += SXV * SV;
pMeter += CSQUARE * ChaosSquare;
if (this->GetDifficulty() == DIFFICULTY_HARD) pMeter += HEAVY;
if (this->GetDifficulty() == DIFFICULTY_EASY) pMeter += LIGHT;
return pMeter;
}
void Steps::TidyUpData()
{
if( GetDifficulty() == DIFFICULTY_INVALID )
+14 -2
View File
@@ -18,6 +18,18 @@
#include "Grade.h"
class NoteData;
//Model Coefficients
#define BETA_ZERO (0.775f)
#define STREAM (10.1f)
#define VOLTAGE (5.27f)
#define AIR (-0.905f)
#define FREEZE (-1.10f)
#define CHAOS (2.86f)
#define HEAVY (0.722f)
#define LIGHT (-0.877f)
#define SXV (-6.35f) // Square/Voltage Interaction Varible
#define CSQUARE (-2.58f)
class Steps
{
public:
@@ -43,8 +55,8 @@ public:
void SetMeter(int meter);
void SetRadarValue(int r, float val);
bool IsAutogen() const; // Was created by autogen?
float PredictMeter();
StepsType m_StepsType;
void GetNoteData( NoteData* pNoteDataOut ) const;