merge from some old revision (forgot to commit)
@@ -8,6 +8,12 @@ ________________________________________________________________________________
|
|||||||
StepMania 5.0 $next | 2011????
|
StepMania 5.0 $next | 2011????
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
2011/09/02
|
||||||
|
----------
|
||||||
|
* [MenuTimer] Added start(), disable() Lua bindings. Also renamed setseconds to
|
||||||
|
SetSeconds to match GetSeconds. [AJ]
|
||||||
|
* [GameManager] beat "versus" -> "versus5"; fix beat versus7 being "single7". [1a2a3a2a1a]
|
||||||
|
|
||||||
2011/08/27
|
2011/08/27
|
||||||
----------
|
----------
|
||||||
* Updated libjpeg to 8c.
|
* Updated libjpeg to 8c.
|
||||||
|
|||||||
@@ -19,3 +19,5 @@ The following is a list of known issues with StepMania 5.
|
|||||||
* Hold/Roll heads seem to be draw under preceding taps when they
|
* Hold/Roll heads seem to be draw under preceding taps when they
|
||||||
shouldn't be all the time.
|
shouldn't be all the time.
|
||||||
* C-Mods have not been fully tested with all of the new segments yet.
|
* C-Mods have not been fully tested with all of the new segments yet.
|
||||||
|
* Split Timing needs adjustments with only one chart in place.
|
||||||
|
** Either that, or all tags must be allowable in song timing.
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ HeldCommand=diffuse,1.0,1.0,0.7,1;zoom,1;linear,0.2;zoom,0.9;linear,0.1;diffusea
|
|||||||
[HoldGhostArrow]
|
[HoldGhostArrow]
|
||||||
HoldingOnCommand=diffusealpha,1;glowshift;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.7");effectperiod,0.1
|
HoldingOnCommand=diffusealpha,1;glowshift;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.7");effectperiod,0.1
|
||||||
HoldingOffCommand=diffusealpha,0
|
HoldingOffCommand=diffusealpha,0
|
||||||
InitCommand=PlayCommand,"HoldingOff";finishtweening
|
InitCommand=playcommand,"HoldingOff";finishtweening
|
||||||
|
|
||||||
[ReceptorArrow]
|
[ReceptorArrow]
|
||||||
InitCommand=effectclock,"beat";diffuseramp;effectcolor1,color("0.8,0.8,0.8,1");effectcolor2,color("1,1,1,1");effecttiming,0.2,0,0.8,0;effectoffset,0.05
|
InitCommand=effectclock,"beat";diffuseramp;effectcolor1,color("0.8,0.8,0.8,1");effectcolor2,color("1,1,1,1");effecttiming,0.2,0,0.8,0;effectoffset,0.05
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
local function Beat(self)
|
local function Beat(self)
|
||||||
-- too many locals
|
-- too many locals
|
||||||
local this = self:GetChildren()
|
local this = self:GetChildren()
|
||||||
local player = GAMESTATE:GetMasterPlayerNumber()
|
local player = Var "Player" or GAMESTATE:GetMasterPlayerNumber()
|
||||||
local playerstate = GAMESTATE:GetPlayerState( player )
|
local playerstate = GAMESTATE:GetPlayerState( player )
|
||||||
local songposition = playerstate:GetSongPosition() -- GAMESTATE:GetSongPosition()
|
local songposition = playerstate:GetSongPosition() -- GAMESTATE:GetSongPosition()
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
#ARTISTTRANSLIT:;
|
#ARTISTTRANSLIT:;
|
||||||
#GENRE:;
|
#GENRE:;
|
||||||
#ORIGIN:;
|
#ORIGIN:;
|
||||||
#CREDIT:Graphics - Noon;
|
#CREDIT:;
|
||||||
#BANNER:mechatribeassaultbn.png;
|
#BANNER:mechatribeassaultbn.png;
|
||||||
#BACKGROUND:mechatribeassaultbg.png;
|
#BACKGROUND:mechatribeassaultbg.png;
|
||||||
#LYRICSPATH:;
|
#LYRICSPATH:;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 457 KiB After Width: | Height: | Size: 463 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 89 KiB |
@@ -1,8 +1,22 @@
|
|||||||
[How to Install Songs]
|
[How to Install Songs]
|
||||||
|
|
||||||
Songs are laid out based on the group that they are in.
|
Songs are laid out based on the group that they are in.
|
||||||
|
|
||||||
Songs\ : root folder
|
Songs\ : root folder
|
||||||
StepMania 5\ : group folder
|
StepMania 5\ : group folder
|
||||||
MechaTribe Assault\ : song/simfile folder
|
MechaTribe Assault\ : song/simfile folder
|
||||||
*.png, *.mp3/*.ogg, *.sm/*.ssc/etc files
|
*.png, *.mp3/*.ogg, *.sm/*.ssc/etc files
|
||||||
|
|
||||||
|
[How NOT to install songs]
|
||||||
|
This won't work because StepMania expects groups:
|
||||||
|
|
||||||
|
Songs\
|
||||||
|
Some Song\
|
||||||
|
*.png, *.mp3/*.ogg, *.sm/*.ssc/etc files
|
||||||
|
|
||||||
|
And this won't work because StepMania doesn't handle sub-groups:
|
||||||
|
|
||||||
|
Songs\
|
||||||
|
Song Group\
|
||||||
|
SubGroup1\
|
||||||
|
Some Song\
|
||||||
|
*.png, *.mp3/*.ogg, *.sm/*.ssc/etc files
|
||||||
@@ -15,7 +15,7 @@ local t = Def.ActorFrame{
|
|||||||
LoadFont("_frutiger roman 24px")..{
|
LoadFont("_frutiger roman 24px")..{
|
||||||
Name="Header";
|
Name="Header";
|
||||||
Text=THEME:GetString("ScreenGuideMain","Explanation");
|
Text=THEME:GetString("ScreenGuideMain","Explanation");
|
||||||
InitCommand=cmd(x,-312;y,-24;align,0,0;diffuse,color("#111111FF");zoom,0.65;wrapwidthpixels,(SCREEN_WIDTH)*1.45);
|
InitCommand=cmd(x,-312;y,-24;align,0,0;diffuse,color("#111111FF");zoom,0.65;wrapwidthpixels,(SCREEN_WIDTH));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ local t = Def.ActorFrame{
|
|||||||
};
|
};
|
||||||
|
|
||||||
LoadActor( THEME:GetPathG("_section", "Guide") )..{
|
LoadActor( THEME:GetPathG("_section", "Guide") )..{
|
||||||
InitCommand=cmd(x,-250;y,-24;Real;halign,0);
|
InitCommand=cmd(x,-244;y,-23;Real;halign,0);
|
||||||
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,0.9);
|
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,0.9);
|
||||||
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.45);
|
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.45);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ local t = Def.ActorFrame{
|
|||||||
};
|
};
|
||||||
|
|
||||||
LoadActor( THEME:GetPathG("_section", "Reference") )..{
|
LoadActor( THEME:GetPathG("_section", "Reference") )..{
|
||||||
InitCommand=cmd(x,-250;y,-24;Real;halign,0);
|
InitCommand=cmd(x,-244;y,-23;Real;halign,0);
|
||||||
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,0.9);
|
GainFocusCommand=cmd(decelerate,0.5;diffusealpha,0.9);
|
||||||
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.45);
|
LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.45);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ local t = Def.ActorFrame{
|
|||||||
DisabledCommand=cmd( diffuse,color("0.45,0,0,1") );
|
DisabledCommand=cmd( diffuse,color("0.45,0,0,1") );
|
||||||
GainFocusCommand=cmd(stoptweening;accelerate,0.15;diffuse,color("#000000");strokecolor,color("0.85,0.9,1,0.75"););
|
GainFocusCommand=cmd(stoptweening;accelerate,0.15;diffuse,color("#000000");strokecolor,color("0.85,0.9,1,0.75"););
|
||||||
LoseFocusCommand=cmd(stoptweening;accelerate,0.2;diffuse,color("#888888");strokecolor,color("0,0,0,0"););
|
LoseFocusCommand=cmd(stoptweening;accelerate,0.2;diffuse,color("#888888");strokecolor,color("0,0,0,0"););
|
||||||
OffFocusedCommand=cmd(sleep,1;decelerate,1;addx,-32;diffuse,color("#FF0000"););
|
OffFocusedCommand=cmd(sleep,0.45;decelerate,1;addx,-32;diffuse,color("#FF000000"););
|
||||||
OffUnfocusedCommand=cmd(sleep,0.2*gc:GetIndex();linear,0.5;addx,SCREEN_CENTER_X;);
|
OffUnfocusedCommand=cmd(sleep,0.125*gc:GetIndex();linear,0.5;addx,SCREEN_CENTER_X;);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 310 B After Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 329 B After Width: | Height: | Size: 297 B |
|
Before Width: | Height: | Size: 347 B After Width: | Height: | Size: 313 B |
@@ -1,9 +1,8 @@
|
|||||||
Hello World
|
Hello World
|
||||||
and other sm-ssc theming examples
|
and other sm-ssc theming examples
|
||||||
--------------------------------------
|
-------------------------------------------------------
|
||||||
A theme by various contributors.
|
A theme by various contributors. (see "Contributors")
|
||||||
--------------------------------------
|
-------------------------------------------------------
|
||||||
|
|
||||||
This theme and its accompanying documentation are licensed under
|
This theme and its accompanying documentation are licensed under
|
||||||
the Creative Commons Attribution-Share Alike 3.0 license.
|
the Creative Commons Attribution-Share Alike 3.0 license.
|
||||||
|
|
||||||
@@ -30,6 +29,7 @@ Table of Contents
|
|||||||
Managers [r_man]
|
Managers [r_man]
|
||||||
Classes [r_cls]
|
Classes [r_cls]
|
||||||
Tutorials [tutor]
|
Tutorials [tutor]
|
||||||
|
Contributors [creds]
|
||||||
[others tba]
|
[others tba]
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
@@ -47,3 +47,8 @@ sm-ssc theming.
|
|||||||
|
|
||||||
The Guide is a general run-through of how Themes are constructed (along with
|
The Guide is a general run-through of how Themes are constructed (along with
|
||||||
NoteSkins, Announcers, and Characters)
|
NoteSkins, Announcers, and Characters)
|
||||||
|
================================================================================
|
||||||
|
Contributors [creds]
|
||||||
|
|
||||||
|
These are the people who have worked on Hello World:
|
||||||
|
* AJ Kelly
|
||||||
@@ -1430,6 +1430,9 @@ HeaderText=Map Controllers
|
|||||||
InvalidButton=That key can not be mapped.
|
InvalidButton=That key can not be mapped.
|
||||||
%s slots=%s slots
|
%s slots=%s slots
|
||||||
|
|
||||||
|
[ScreenMapControllers2]
|
||||||
|
Add Mapping=Add Mapping
|
||||||
|
|
||||||
[ScreenNetRoom]
|
[ScreenNetRoom]
|
||||||
Enter a description for the room:=Enter a description for the room:
|
Enter a description for the room:=Enter a description for the room:
|
||||||
Enter a password for the room (blank, no password):=Enter a password for the room (blank, no password):
|
Enter a password for the room (blank, no password):=Enter a password for the room (blank, no password):
|
||||||
|
|||||||
@@ -18,6 +18,9 @@ ActorScroller.scrollthroughallitems = ActorScroller.ScrollThroughAllItems
|
|||||||
ActorScroller.scrollwithpadding = ActorScroller.ScrollWithPadding
|
ActorScroller.scrollwithpadding = ActorScroller.ScrollWithPadding
|
||||||
ActorScroller.setfastcatchup = ActorScroller.SetFastCatchup
|
ActorScroller.setfastcatchup = ActorScroller.SetFastCatchup
|
||||||
|
|
||||||
|
--[[ MenuTimer: just some case changes. ]]
|
||||||
|
MenuTimer.setseconds = MenuTimer.SetSeconds
|
||||||
|
|
||||||
--[[ GameState ]]
|
--[[ GameState ]]
|
||||||
--Aliases for old GAMESTATE timing functions.
|
--Aliases for old GAMESTATE timing functions.
|
||||||
--These have been converted to SongPosition, but most themes still use these old functions.
|
--These have been converted to SongPosition, but most themes still use these old functions.
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ function GameCompatibleModes()
|
|||||||
local Modes = {
|
local Modes = {
|
||||||
dance = "Single,Double,Solo,Versus,Couple",
|
dance = "Single,Double,Solo,Versus,Couple",
|
||||||
pump = "Single,Double,HalfDouble,Versus,Couple,Routine",
|
pump = "Single,Double,HalfDouble,Versus,Couple,Routine",
|
||||||
beat = "5Keys,7Keys,10Keys,14Keys",
|
beat = "5Keys,7Keys,10Keys,14Keys,Versus5,Versus7",
|
||||||
kb7 = "KB7",
|
kb7 = "KB7",
|
||||||
para = "Single",
|
para = "Single",
|
||||||
techno = "Single4,Single5,Single8,Double4,Double8",
|
techno = "Single4,Single5,Single8,Double4,Double8",
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ function InitGamePrefs()
|
|||||||
local BPrefs =
|
local BPrefs =
|
||||||
{
|
{
|
||||||
{ "ComboOnRolls", false },
|
{ "ComboOnRolls", false },
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
for idx,pref in ipairs(Prefs) do
|
for idx,pref in ipairs(Prefs) do
|
||||||
@@ -39,13 +38,14 @@ function InitUserPrefs()
|
|||||||
|
|
||||||
local BPrefs =
|
local BPrefs =
|
||||||
{
|
{
|
||||||
{ "UserPrefComboUnderField", true },
|
|
||||||
{ "UserPrefAutoSetStyle", false },
|
{ "UserPrefAutoSetStyle", false },
|
||||||
{ "UserPrefNotePosition", true },
|
{ "UserPrefComboUnderField", true },
|
||||||
{ "UserPrefShowLotsaOptions", true},
|
|
||||||
{ "UserPrefLongFail", false},
|
{ "UserPrefLongFail", false},
|
||||||
|
{ "UserPrefNotePosition", true },
|
||||||
{ "UserPrefProtimingP1", false},
|
{ "UserPrefProtimingP1", false},
|
||||||
{ "UserPrefProtimingP2", false},
|
{ "UserPrefProtimingP2", false},
|
||||||
|
{ "UserPrefShowLotsaOptions", true},
|
||||||
|
{ "ComboOnRolls", false},
|
||||||
{ "FlashyCombos", false},
|
{ "FlashyCombos", false},
|
||||||
{ "GameplayFooter", false},
|
{ "GameplayFooter", false},
|
||||||
};
|
};
|
||||||
@@ -235,8 +235,8 @@ end
|
|||||||
|
|
||||||
function GetDefaultOptionLines()
|
function GetDefaultOptionLines()
|
||||||
local LineSets = {
|
local LineSets = {
|
||||||
"1,8,14,2,3,4,5,6,R,7,9,10,11,12,13,15,16,17,18", -- All
|
"1,8,14,2,3,4,5,6,R,7,9,10,11,12,13,15,16,SF,17,18", -- All
|
||||||
"1,8,14,2,7,13,16,17,18", -- DDR Essentials ( no turns, fx )
|
"1,8,14,2,7,13,16,SF,17,18", -- DDR Essentials ( no turns, fx )
|
||||||
};
|
};
|
||||||
local function IsExtra()
|
local function IsExtra()
|
||||||
if GAMESTATE:IsExtraStage() or GAMESTATE:IsExtraStage2() then
|
if GAMESTATE:IsExtraStage() or GAMESTATE:IsExtraStage2() then
|
||||||
@@ -252,7 +252,7 @@ function GetDefaultOptionLines()
|
|||||||
return LineSets[2]; -- Just make sure!
|
return LineSets[2]; -- Just make sure!
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
return "1,8,14,2,7,13,16,17,18" -- "failsafe" list
|
return "1,8,14,2,7,13,16,SF,17,18" -- "failsafe" list
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
function UserPrefLongFail()
|
function UserPrefLongFail()
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ end;
|
|||||||
-----------------------------------------------------------
|
-----------------------------------------------------------
|
||||||
--HYBRID Scoring, contributed by @waiei
|
--HYBRID Scoring, contributed by @waiei
|
||||||
-----------------------------------------------------------
|
-----------------------------------------------------------
|
||||||
local hyb_Steps=0;
|
local hyb_Steps={0,0};
|
||||||
r['HYBRID'] = function(params, pss)
|
r['HYBRID'] = function(params, pss)
|
||||||
local multLookup =
|
local multLookup =
|
||||||
{
|
{
|
||||||
@@ -151,17 +151,19 @@ r['HYBRID'] = function(params, pss)
|
|||||||
-- [ja] 端数は最後の1ステップで加算するのでその値を取得
|
-- [ja] 端数は最後の1ステップで加算するのでその値を取得
|
||||||
local sLast = 100000000-(sOne*sTotal);
|
local sLast = 100000000-(sOne*sTotal);
|
||||||
|
|
||||||
|
local p = (params.Player == 'PlayerNumber_P1') and 1 or 2
|
||||||
|
|
||||||
|
-- [en] Initialize score if 0.
|
||||||
-- [ja] スコアが0の時に初期化
|
-- [ja] スコアが0の時に初期化
|
||||||
if pss:GetScore()==0 then
|
if pss:GetScore()==0 then
|
||||||
hyb_Steps=0;
|
hyb_Steps[p]=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
-- [ja] 現在のステップ数
|
-- [ja] 現在のステップ数
|
||||||
hyb_Steps=hyb_Steps+1;
|
hyb_Steps[p]=hyb_Steps[p]+1;
|
||||||
pss:SetCurMaxScore(pss:GetCurMaxScore()+1);
|
|
||||||
-- [en] current score
|
-- [en] current score
|
||||||
-- [ja] 今回加算するスコア(W1の時)
|
-- [ja] 今回加算するスコア(W1の時)
|
||||||
local vScore = sOne*hyb_Steps;
|
local vScore = sOne*hyb_Steps[p];
|
||||||
pss:SetCurMaxScore(pss:GetCurMaxScore()+vScore);
|
pss:SetCurMaxScore(pss:GetCurMaxScore()+vScore);
|
||||||
-- [ja] 判定によって加算量を変更
|
-- [ja] 判定によって加算量を変更
|
||||||
if (params.HoldNoteScore == 'HoldNoteScore_Held') then
|
if (params.HoldNoteScore == 'HoldNoteScore_Held') then
|
||||||
@@ -176,7 +178,7 @@ r['HYBRID'] = function(params, pss)
|
|||||||
pss:SetScore(pss:GetScore()+vScore);
|
pss:SetScore(pss:GetScore()+vScore);
|
||||||
|
|
||||||
-- [ja] 最後の1ステップの場合、端数を加算する
|
-- [ja] 最後の1ステップの場合、端数を加算する
|
||||||
if ((vScore > 0) and (hyb_Steps == totalItems)) then
|
if ((vScore > 0) and (hyb_Steps[p] == totalItems)) then
|
||||||
pss:SetScore(pss:GetScore()+sLast);
|
pss:SetScore(pss:GetScore()+sLast);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -184,6 +186,9 @@ end;
|
|||||||
-----------------------------------------------------------
|
-----------------------------------------------------------
|
||||||
--DDR SuperNOVA(-esque) scoring
|
--DDR SuperNOVA(-esque) scoring
|
||||||
-----------------------------------------------------------
|
-----------------------------------------------------------
|
||||||
|
local sn2tmp_Sub={0,0};
|
||||||
|
local sn2tmp_Score={0,0};
|
||||||
|
local sn2tmp_Steps={0,0};
|
||||||
r['DDR SuperNOVA'] = function(params, pss)
|
r['DDR SuperNOVA'] = function(params, pss)
|
||||||
local multLookup =
|
local multLookup =
|
||||||
{
|
{
|
||||||
@@ -194,12 +199,45 @@ r['DDR SuperNOVA'] = function(params, pss)
|
|||||||
setmetatable(multLookup, ZeroIfNotFound);
|
setmetatable(multLookup, ZeroIfNotFound);
|
||||||
local radarValues = GetDirectRadar(params.Player);
|
local radarValues = GetDirectRadar(params.Player);
|
||||||
local totalItems = GetTotalItems(radarValues);
|
local totalItems = GetTotalItems(radarValues);
|
||||||
local base = 10000000 / totalItems;
|
|
||||||
local hold = base * (params.HoldNoteScore == 'HoldNoteScore_Held' and 1 or 0);
|
if totalItems < 0 then totalItems = 1; end
|
||||||
local maxScore = (base * multLookup['TapNoteScore_W1']) + hold;
|
local p = (params.Player == 'PlayerNumber_P1') and 1 or 2
|
||||||
pss:SetCurMaxScore(pss:GetCurMaxScore() + math.round(maxScore));
|
|
||||||
local buildScore = (base * multLookup[params.TapNoteScore]) + hold;
|
-- [en] Initialize score if 0.
|
||||||
pss:SetScore(pss:GetScore() + math.round(buildScore));
|
-- [ja] スコアが0の時に初期化
|
||||||
|
if pss:GetScore()==0 then
|
||||||
|
sn2tmp_Sub[p]=0;
|
||||||
|
sn2tmp_Score[p]=0;
|
||||||
|
sn2tmp_Steps[p]=0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
-- [ja] maxAdd は 加算する最高点を 10 とした時の値(つまり、10=100% / 5=50%)
|
||||||
|
local maxAdd = 0;
|
||||||
|
|
||||||
|
-- [ja] O.K.判定時は問答無用で満点
|
||||||
|
if params.HoldNoteScore == 'HoldNoteScore_Held' then
|
||||||
|
maxAdd = 10;
|
||||||
|
else
|
||||||
|
-- [ja] N.G.判定時は問答無用で0点
|
||||||
|
if params.HoldNoteScore == 'HoldNoteScore_LetGo' then
|
||||||
|
maxAdd = 0;
|
||||||
|
-- [ja] それ以外ということは、ロングノート以外の判定である
|
||||||
|
else
|
||||||
|
maxAdd = multLookup[params.TapNoteScore];
|
||||||
|
if (params.TapNoteScore == 'TapNoteScore_W2') or (params.TapNoteScore=='TapNoteScore_W3') then
|
||||||
|
-- [ja] W2とW3の数を記録
|
||||||
|
sn2tmp_Sub[p]=sn2tmp_Sub[p]+1;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
sn2tmp_Score[p]=sn2tmp_Score[p]+maxAdd;
|
||||||
|
-- [ja] 踏み踏みしたステップ数
|
||||||
|
sn2tmp_Steps[p]=sn2tmp_Steps[p]+1;
|
||||||
|
-- [ja] 現時点での、All W1判定の時のスコア
|
||||||
|
pss:SetCurMaxScore(math.floor(10000*sn2tmp_Steps[p]/totalItems) * 10);
|
||||||
|
|
||||||
|
-- [ja] 計算して代入
|
||||||
|
pss:SetScore((math.floor(10000*sn2tmp_Score[p]/totalItems) * 10) - (sn2tmp_Sub[p]*10) );
|
||||||
end;
|
end;
|
||||||
-----------------------------------------------------------
|
-----------------------------------------------------------
|
||||||
--DDR SuperNOVA 2(-esque) scoring
|
--DDR SuperNOVA 2(-esque) scoring
|
||||||
@@ -319,8 +357,13 @@ end
|
|||||||
-- Formulas end here.
|
-- Formulas end here.
|
||||||
for v in ivalues(DisabledScoringModes) do r[v] = nil end
|
for v in ivalues(DisabledScoringModes) do r[v] = nil end
|
||||||
Scoring = {}
|
Scoring = {}
|
||||||
setmetatable(Scoring, { __index = function(...) return function(params,pss)
|
setmetatable(Scoring, {
|
||||||
--put any code here that should run before every scoring function
|
__metatable = { "Letting you change the metatable sort of defeats the purpose." },
|
||||||
if not GAMESTATE:IsHumanPlayer(params.Player) and type(r[key]) == "function" then
|
__index = function(tbl, key)
|
||||||
return r[key](...) end
|
for v in ivalues(DisabledScoringModes) do
|
||||||
end }
|
if key == v then return r['DDR Extreme'] end
|
||||||
|
end
|
||||||
|
return r[key]
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
);
|
||||||
@@ -1757,8 +1757,10 @@ ChoiceRoutine="name,Routine;style,routine;text,Routine;screen,"..Branch.AfterSel
|
|||||||
ChoiceHalfDouble="name,HalfDouble;style,halfdouble;text,HalfDouble;screen,"..Branch.AfterSelectStyle()
|
ChoiceHalfDouble="name,HalfDouble;style,halfdouble;text,HalfDouble;screen,"..Branch.AfterSelectStyle()
|
||||||
Choice5Keys="name,5Keys;style,single5;text,5Keys;screen,"..Branch.AfterSelectStyle()
|
Choice5Keys="name,5Keys;style,single5;text,5Keys;screen,"..Branch.AfterSelectStyle()
|
||||||
Choice7Keys="name,7Keys;style,single7;text,7Keys;screen,"..Branch.AfterSelectStyle()
|
Choice7Keys="name,7Keys;style,single7;text,7Keys;screen,"..Branch.AfterSelectStyle()
|
||||||
Choice10Keys="name,10Keys;style,double10;text,10Keys;screen,"..Branch.AfterSelectStyle()
|
ChoiceVersus5="name,Versus5;style,versus5;text,Versus5;screen,"..Branch.AfterSelectStyle()
|
||||||
Choice14Keys="name,14Keys;style,double14;text,14Keys;screen,"..Branch.AfterSelectStyle()
|
ChoiceVersus7="name,Versus7;style,versus7;text,Versus7;screen,"..Branch.AfterSelectStyle()
|
||||||
|
Choice10Keys="name,10Keys;style,double5;text,10Keys;screen,"..Branch.AfterSelectStyle()
|
||||||
|
Choice14Keys="name,14Keys;style,double7;text,14Keys;screen,"..Branch.AfterSelectStyle()
|
||||||
ChoiceKB7="name,kb7;style,single;screen,"..Branch.AfterSelectStyle()
|
ChoiceKB7="name,kb7;style,single;screen,"..Branch.AfterSelectStyle()
|
||||||
#
|
#
|
||||||
PerChoiceScrollElement=false
|
PerChoiceScrollElement=false
|
||||||
|
|||||||
|
After Width: | Height: | Size: 25 KiB |
@@ -192,7 +192,13 @@ end;
|
|||||||
t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay");
|
t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay");
|
||||||
t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay");
|
t[#t+1] = StandardDecorationFromFileOptional("StageDisplay","StageDisplay");
|
||||||
t[#t+1] = StandardDecorationFromFileOptional("SongTitle","SongTitle");
|
t[#t+1] = StandardDecorationFromFileOptional("SongTitle","SongTitle");
|
||||||
|
t[#t+1] = Def.ActorFrame {
|
||||||
|
InitCommand=cmd(x,SCREEN_RIGHT;y,SCREEN_BOTTOM;draworder,5);
|
||||||
|
LoadActor("_whatsup") .. {
|
||||||
|
InitCommand=cmd(horizalign,left;vertalign,top);
|
||||||
|
ToastyMessageCommand=cmd(smooth,3;x,-256;y,-200;sleep,2;smooth,3;x,256;y,200)
|
||||||
|
};
|
||||||
|
};
|
||||||
if( not GAMESTATE:IsCourseMode() ) then
|
if( not GAMESTATE:IsCourseMode() ) then
|
||||||
t[#t+1] = Def.Actor{
|
t[#t+1] = Def.Actor{
|
||||||
JudgmentMessageCommand = function(self, params)
|
JudgmentMessageCommand = function(self, params)
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
return Def.ActorFrame {
|
||||||
|
-- InitCommand=cmd(x,SCREEN_RIGHT;y,SCREEN_BOTTOM;draworder,101);
|
||||||
|
StartTransitioningCommand=function(self)
|
||||||
|
MESSAGEMAN:Broadcast("Toasty",{ Time = math.random(1,3) });
|
||||||
|
end
|
||||||
|
};
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
--[[ Screen Filter ]]
|
||||||
|
local numPlayers = GAMESTATE:GetNumPlayersEnabled()
|
||||||
|
local center1P = PREFSMAN:GetPreference("Center1Player")
|
||||||
|
|
||||||
|
local padding = 8 -- 4px on each side
|
||||||
|
local arrowWidth = 64 -- until noteskin metrics are implemented...
|
||||||
|
|
||||||
|
local filterColor = color("0.135,0.135,0.135,1")
|
||||||
|
local filterAlphas = {
|
||||||
|
PlayerNumber_P1 = 1,
|
||||||
|
PlayerNumber_P2 = 1,
|
||||||
|
Default = 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
local t = Def.ActorFrame{};
|
||||||
|
|
||||||
|
local style = GAMESTATE:GetCurrentStyle()
|
||||||
|
local cols = style:ColumnsPerPlayer()
|
||||||
|
local styleType = ToEnumShortString(style:GetStyleType())
|
||||||
|
local filterWidth = (arrowWidth * cols) + padding
|
||||||
|
|
||||||
|
if numPlayers == 1 then
|
||||||
|
local player = GAMESTATE:GetMasterPlayerNumber()
|
||||||
|
local pNum = (player == PLAYER_1) and 1 or 2
|
||||||
|
filterAlphas[player] = tonumber(getenv("ScreenFilterP"..pNum));
|
||||||
|
|
||||||
|
local pos;
|
||||||
|
-- [ScreenGameplay] PlayerP#Player*Side(s)X
|
||||||
|
if center1P then
|
||||||
|
pos = SCREEN_CENTER_X
|
||||||
|
else
|
||||||
|
local metricName = string.format("PlayerP%i%sX",pNum,styleType)
|
||||||
|
pos = THEME:GetMetric("ScreenGameplay",metricName)
|
||||||
|
end
|
||||||
|
t[#t+1] = Def.Quad{
|
||||||
|
Name="SinglePlayerFilter";
|
||||||
|
InitCommand=cmd(x,pos;CenterY;zoomto,filterWidth,SCREEN_HEIGHT;diffusecolor,filterColor;diffusealpha,filterAlphas[player]);
|
||||||
|
};
|
||||||
|
else
|
||||||
|
-- two players... a bit more complex.
|
||||||
|
if styleType == "TwoPlayersSharedSides" then
|
||||||
|
-- routine, just use one in the center.
|
||||||
|
local player = GAMESTATE:GetMasterPlayerNumber()
|
||||||
|
local pNum = player == PLAYER_1 and 1 or 2
|
||||||
|
local metricName = "PlayerP".. pNum .."TwoPlayersSharedSidesX"
|
||||||
|
t[#t+1] = Def.Quad{
|
||||||
|
Name="RoutineFilter";
|
||||||
|
InitCommand=cmd(x,THEME:GetMetric("ScreenGameplay",metricName);CenterY;zoomto,filterWidth,SCREEN_HEIGHT;diffusecolor,filterColor;diffusealpha,filterAlphas[player]);
|
||||||
|
};
|
||||||
|
else
|
||||||
|
-- otherwise we need two separate ones. to the pairsmobile!
|
||||||
|
for i, player in ipairs(PlayerNumber) do
|
||||||
|
local pNum = (player == PLAYER_1) and 1 or 2
|
||||||
|
filterAlphas[player] = tonumber(getenv("ScreenFilterP"..pNum));
|
||||||
|
local metricName = string.format("PlayerP%i%sX",pNum,styleType)
|
||||||
|
local pos = THEME:GetMetric("ScreenGameplay",metricName)
|
||||||
|
t[#t+1] = Def.Quad{
|
||||||
|
Name="Player"..pNum.."Filter";
|
||||||
|
InitCommand=cmd(x,pos;CenterY;zoomto,filterWidth,SCREEN_HEIGHT;diffusecolor,filterColor;diffusealpha,filterAlphas[player]);
|
||||||
|
};
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return t;
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
local t = Def.ActorFrame{
|
||||||
|
LoadActor("ScreenFilter");
|
||||||
|
};
|
||||||
|
|
||||||
|
return t;
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
return Def.ActorFrame{
|
||||||
|
Def.Quad{
|
||||||
|
InitCommand=cmd(FullScreen;diffuse,color("0,0,0,1"));
|
||||||
|
OnCommand=cmd(decelerate,0.5;diffusealpha,0);
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
return Def.ActorFrame{
|
||||||
|
Def.Quad{
|
||||||
|
InitCommand=cmd(FullScreen;diffuse,color("0,0,0,0"));
|
||||||
|
OnCommand=cmd(accelerate,0.5;diffusealpha,1);
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
local t = LoadFallbackB();
|
local t = LoadFallbackB();
|
||||||
|
|
||||||
t[#t+1] = StandardDecorationFromFileOptional("BPMLabel","BPMLabel");
|
t[#t+1] = StandardDecorationFromFileOptional("BPMLabel","BPMLabel");
|
||||||
|
t[#t+1] = StandardDecorationFromFileOptional("BPMDisplay","BPMDisplay");
|
||||||
t[#t+1] = StandardDecorationFromFileOptional("DifficultyDisplay","DifficultyDisplay");
|
t[#t+1] = StandardDecorationFromFileOptional("DifficultyDisplay","DifficultyDisplay");
|
||||||
return t;
|
return t;
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
ScreenSelectMusic BPMDisplay
|
||||||
@@ -51,7 +51,45 @@ end
|
|||||||
|
|
||||||
--[[ option rows ]]
|
--[[ option rows ]]
|
||||||
|
|
||||||
-- screen cover
|
-- screen filter
|
||||||
|
function OptionRowScreenFilter()
|
||||||
|
local t = {
|
||||||
|
Name="ScreenFilter",
|
||||||
|
LayoutType = "ShowAllInRow",
|
||||||
|
SelectType = "SelectOne",
|
||||||
|
OneChoiceForAllPlayers = false,
|
||||||
|
ExportOnChange = false,
|
||||||
|
Choices = { 'Off', '0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '1.0', },
|
||||||
|
LoadSelections = function(self, list, pn)
|
||||||
|
local pName = ToEnumShortString(pn)
|
||||||
|
local filterValue = getenv("ScreenFilter"..pName)
|
||||||
|
if filterValue ~= nil then
|
||||||
|
local val = scale(tonumber(filterValue),0,1,1,#list )
|
||||||
|
list[val] = true
|
||||||
|
else
|
||||||
|
setenv("ScreenFilter"..pName,0)
|
||||||
|
list[1] = true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
SaveSelections = function(self, list, pn)
|
||||||
|
local pName = ToEnumShortString(pn)
|
||||||
|
local found = false
|
||||||
|
for i=1,#list do
|
||||||
|
if not found then
|
||||||
|
if list[i] == true then
|
||||||
|
local val = scale(i,1,#list,0,1)
|
||||||
|
setenv("ScreenFilter"..pName,val)
|
||||||
|
found = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
};
|
||||||
|
setmetatable(t, t)
|
||||||
|
return t
|
||||||
|
end
|
||||||
|
|
||||||
|
-- protiming
|
||||||
function OptionRowProTiming()
|
function OptionRowProTiming()
|
||||||
local t = {
|
local t = {
|
||||||
Name = "ProTiming",
|
Name = "ProTiming",
|
||||||
@@ -176,8 +214,8 @@ end
|
|||||||
|
|
||||||
function GetDefaultOptionLines()
|
function GetDefaultOptionLines()
|
||||||
local LineSets = { -- none of these include characters yet.
|
local LineSets = { -- none of these include characters yet.
|
||||||
"1,8,14,2,3A,3B,4,5,6,R,7,9,10,11,12,13,16,17", -- All
|
"1,8,14,2,3A,3B,4,5,6,R,7,9,10,11,12,13,16,SF,17", -- All
|
||||||
"1,8,14,2,7,13,16,17", -- DDR Essentials ( no turns, fx )
|
"1,8,14,2,7,13,16,SF,17", -- DDR Essentials ( no turns, fx )
|
||||||
};
|
};
|
||||||
local function IsExtra()
|
local function IsExtra()
|
||||||
if GAMESTATE:IsExtraStage() or GAMESTATE:IsExtraStage2() then
|
if GAMESTATE:IsExtraStage() or GAMESTATE:IsExtraStage2() then
|
||||||
|
|||||||
@@ -652,7 +652,7 @@ NetworkStatusOffCommand=linear,0.5;cropright,1
|
|||||||
#
|
#
|
||||||
HelpY=SCREEN_BOTTOM-24
|
HelpY=SCREEN_BOTTOM-24
|
||||||
#
|
#
|
||||||
ChoiceNames="GameStart,Options,Edit,Exit"
|
ChoiceNames="GameStart,Options,Edit,Jukebox,Exit"
|
||||||
DefaultChoice="GameStart"
|
DefaultChoice="GameStart"
|
||||||
|
|
||||||
[ScreenQuickSetupOverview]
|
[ScreenQuickSetupOverview]
|
||||||
@@ -1275,6 +1275,7 @@ LineFancyUIBG="lua,UserPrefFancyUIBG()"
|
|||||||
|
|
||||||
[ScreenPlayerOptions]
|
[ScreenPlayerOptions]
|
||||||
LineNames=GetDefaultOptionLines()
|
LineNames=GetDefaultOptionLines()
|
||||||
|
LineSF="lua,OptionRowScreenFilter()"
|
||||||
Line17="lua,OptionRowProTiming()"
|
Line17="lua,OptionRowProTiming()"
|
||||||
Line18="list,Characters"
|
Line18="list,Characters"
|
||||||
|
|
||||||
@@ -2012,11 +2013,16 @@ StepsDisplayP2OnCommand=horizalign,right;zoomx,0.0;zoomy,0.0;linear,0.5;zoomy,1.
|
|||||||
StepsDisplayP2OffCommand=linear,0.5;zoomx,0.0;zoomy,0.0
|
StepsDisplayP2OffCommand=linear,0.5;zoomx,0.0;zoomy,0.0
|
||||||
#====#
|
#====#
|
||||||
|
|
||||||
|
ShowBPMDisplay=true
|
||||||
|
BPMDisplayX=SCREEN_CENTER_X-160-90+2
|
||||||
|
BPMDisplayY=SCREEN_TOP+160+(36/2)+8
|
||||||
|
BPMDisplayOnCommand=finishtweening;maxwidth,128;horizalign,left;strokecolor,Color("Outline");addx,320;zoomx,0;decelerate,0.35;addx,-320;zoomx,1
|
||||||
|
BPMDisplayOffCommand=bouncebegin,0.15;zoomx,0;
|
||||||
#--#
|
#--#
|
||||||
ShowBPMLabel=true
|
ShowBPMLabel=true
|
||||||
BPMLabelX=SCREEN_CENTER_X-160-90
|
BPMLabelX=SCREEN_CENTER_X-160-90
|
||||||
BPMLabelY=SCREEN_CENTER_Y+156
|
BPMLabelY=SCREEN_TOP+160+(36/2)+6
|
||||||
BPMLabelOnCommand=horizalign,right;zoom,0.75;strokecolor,Color("Outline");addx,-SCREEN_CENTER_X;decelerate,0.35;addx,SCREEN_CENTER_X
|
BPMLabelOnCommand=addx,-SCREEN_CENTER_X;decelerate,0.35;addx,SCREEN_CENTER_X
|
||||||
BPMLabelOffCommand=bouncebegin,0.15;zoomx,0;
|
BPMLabelOffCommand=bouncebegin,0.15;zoomx,0;
|
||||||
|
|
||||||
UsersX=SCREEN_CENTER_X-272
|
UsersX=SCREEN_CENTER_X-272
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ AC_DEFUN([SM_BZIP],
|
|||||||
|
|
||||||
if test "$have_bzip" = "no"; then
|
if test "$have_bzip" = "no"; then
|
||||||
echo "*** bzip is required to build StepMania; please make sure"
|
echo "*** bzip is required to build StepMania; please make sure"
|
||||||
echo "*** that bzip is installed to continue the installation process."
|
echo "*** that libbz2 is installed to continue the installation process."
|
||||||
exit 0;
|
exit 0;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -1589,7 +1589,7 @@ static const Style g_Style_Beat_Versus5 =
|
|||||||
false, // m_bUsedForEdit
|
false, // m_bUsedForEdit
|
||||||
true, // m_bUsedForDemonstration
|
true, // m_bUsedForDemonstration
|
||||||
false, // m_bUsedForHowToPlay
|
false, // m_bUsedForHowToPlay
|
||||||
"versus", // m_szName
|
"versus5", // m_szName
|
||||||
StepsType_beat_versus5, // m_StepsType
|
StepsType_beat_versus5, // m_StepsType
|
||||||
StyleType_TwoPlayersTwoSides, // m_StyleType
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
||||||
6, // m_iColsPerPlayer
|
6, // m_iColsPerPlayer
|
||||||
@@ -1725,7 +1725,7 @@ static const Style g_Style_Beat_Versus7 =
|
|||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
false, // m_bUsedForDemonstration
|
false, // m_bUsedForDemonstration
|
||||||
false, // m_bUsedForHowToPlay
|
false, // m_bUsedForHowToPlay
|
||||||
"single7", // m_szName
|
"versus7", // m_szName
|
||||||
StepsType_beat_versus7, // m_StepsType
|
StepsType_beat_versus7, // m_StepsType
|
||||||
StyleType_TwoPlayersTwoSides, // m_StyleType
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
||||||
8, // m_iColsPerPlayer
|
8, // m_iColsPerPlayer
|
||||||
|
|||||||
@@ -198,19 +198,23 @@ void MenuTimer::SetText( float fSeconds )
|
|||||||
class LunaMenuTimer: public Luna<MenuTimer>
|
class LunaMenuTimer: public Luna<MenuTimer>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static int setseconds( T* p, lua_State *L ) { p->SetSeconds(FArg(1)); return 0; }
|
static int SetSeconds( T* p, lua_State *L ) { p->SetSeconds(FArg(1)); return 0; }
|
||||||
static int GetSeconds( T* p, lua_State *L ) { lua_pushnumber( L, p->GetSeconds() ); return 1; }
|
static int GetSeconds( T* p, lua_State *L ) { lua_pushnumber( L, p->GetSeconds() ); return 1; }
|
||||||
|
static int start( T* p, lua_State *L ) { p->Start(); return 0; }
|
||||||
static int pause( T* p, lua_State *L ) { p->Pause(); return 0; }
|
static int pause( T* p, lua_State *L ) { p->Pause(); return 0; }
|
||||||
static int stop( T* p, lua_State *L ) { p->Stop(); return 0; }
|
static int stop( T* p, lua_State *L ) { p->Stop(); return 0; }
|
||||||
|
static int disable( T* p, lua_State *L ) { p->Disable(); return 0; }
|
||||||
static int silent( T* p, lua_State *L ) { p->EnableSilent(BArg(1)); return 0; }
|
static int silent( T* p, lua_State *L ) { p->EnableSilent(BArg(1)); return 0; }
|
||||||
static int stealth( T* p, lua_State *L ) { p->EnableStealth(BArg(1)); return 0; }
|
static int stealth( T* p, lua_State *L ) { p->EnableStealth(BArg(1)); return 0; }
|
||||||
|
|
||||||
LunaMenuTimer()
|
LunaMenuTimer()
|
||||||
{
|
{
|
||||||
ADD_METHOD( setseconds );
|
ADD_METHOD( SetSeconds );
|
||||||
ADD_METHOD( GetSeconds );
|
ADD_METHOD( GetSeconds );
|
||||||
|
ADD_METHOD( start );
|
||||||
ADD_METHOD( pause );
|
ADD_METHOD( pause );
|
||||||
ADD_METHOD( stop );
|
ADD_METHOD( stop );
|
||||||
|
ADD_METHOD( disable );
|
||||||
ADD_METHOD( silent );
|
ADD_METHOD( silent );
|
||||||
ADD_METHOD( stealth );
|
ADD_METHOD( stealth );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,9 +54,11 @@ bool NotesLoader::LoadFromDir( const RString &sPath, Song &out, set<RString> &Bl
|
|||||||
BMSLoader::GetApplicableFiles( sPath, list );
|
BMSLoader::GetApplicableFiles( sPath, list );
|
||||||
if( !list.empty() )
|
if( !list.empty() )
|
||||||
return BMSLoader::LoadFromDir( sPath, out );
|
return BMSLoader::LoadFromDir( sPath, out );
|
||||||
|
/*
|
||||||
PMSLoader::GetApplicableFiles( sPath, list );
|
PMSLoader::GetApplicableFiles( sPath, list );
|
||||||
if( !list.empty() )
|
if( !list.empty() )
|
||||||
return PMSLoader::LoadFromDir( sPath, out );
|
return PMSLoader::LoadFromDir( sPath, out );
|
||||||
|
*/
|
||||||
KSFLoader::GetApplicableFiles( sPath, list );
|
KSFLoader::GetApplicableFiles( sPath, list );
|
||||||
if( !list.empty() )
|
if( !list.empty() )
|
||||||
return KSFLoader::LoadFromDir( sPath, out );
|
return KSFLoader::LoadFromDir( sPath, out );
|
||||||
|
|||||||
@@ -272,7 +272,8 @@ RString GetInfoLog( GLhandleARB h )
|
|||||||
{
|
{
|
||||||
GLint iLength;
|
GLint iLength;
|
||||||
glGetObjectParameterivARB( h, GL_OBJECT_INFO_LOG_LENGTH_ARB, &iLength );
|
glGetObjectParameterivARB( h, GL_OBJECT_INFO_LOG_LENGTH_ARB, &iLength );
|
||||||
if (!iLength)
|
|
||||||
|
if( iLength <= 0 )
|
||||||
return RString();
|
return RString();
|
||||||
|
|
||||||
GLcharARB *pInfoLog = new GLcharARB[iLength];
|
GLcharARB *pInfoLog = new GLcharARB[iLength];
|
||||||
|
|||||||
@@ -21,8 +21,13 @@
|
|||||||
#pragma warning(disable: 4611) /* interaction between '_setjmp' and C++ object destruction is non-portable */
|
#pragma warning(disable: 4611) /* interaction between '_setjmp' and C++ object destruction is non-portable */
|
||||||
#else
|
#else
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
#if defined(MACOSX)
|
||||||
|
#include <../extern/libjpeg/jpeglib.h>
|
||||||
|
#include <../extern/libjpeg/jerror.h>
|
||||||
|
#else
|
||||||
#include "jpeglib.h"
|
#include "jpeglib.h"
|
||||||
#include "jerror.h"
|
#include "jerror.h"
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,11 @@ namespace jpeg
|
|||||||
{
|
{
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
|
#if defined(MACOSX)
|
||||||
|
#include <../extern/libjpeg/jpeglib.h>
|
||||||
|
#else
|
||||||
#include "jpeglib.h"
|
#include "jpeglib.h"
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2173,7 +2173,6 @@ void ScreenGameplay::Input( const InputEventPlus &input )
|
|||||||
{
|
{
|
||||||
//LOG->Trace( "ScreenGameplay::Input()" );
|
//LOG->Trace( "ScreenGameplay::Input()" );
|
||||||
|
|
||||||
// codes motherfucker, do you speak it
|
|
||||||
Message msg("");
|
Message msg("");
|
||||||
if( m_Codes.InputMessage(input, msg) )
|
if( m_Codes.InputMessage(input, msg) )
|
||||||
this->HandleMessage( msg );
|
this->HandleMessage( msg );
|
||||||
|
|||||||
@@ -1327,8 +1327,19 @@ public:
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//FSX's WIP code, don't touch
|
/*FSX's WIP code, touch if it's wrong (which it probably is)
|
||||||
//static int SetOptio
|
static int SetOptionRowFromName( T* p, lua_State *L )
|
||||||
|
{
|
||||||
|
FOREACH_PlayerNumber( pn )
|
||||||
|
{
|
||||||
|
for( unsigned i=0; i<m_pRows.size(); i++ )
|
||||||
|
{
|
||||||
|
if( m_pRows[i]->GetRowTitle() == SArg(1) && m_pRows[i]->GetRowDef().IsEnabledForPlayer(p) )
|
||||||
|
p->MoveRowAbsolute(pn,i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
LunaScreenOptions()
|
LunaScreenOptions()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public:
|
|||||||
LightsDriver_Export();
|
LightsDriver_Export();
|
||||||
virtual void Set( const LightsState *ls );
|
virtual void Set( const LightsState *ls );
|
||||||
|
|
||||||
/* Get the current lights state. This can be called from a thread. */
|
// Get the current lights state. This can be called from a thread.
|
||||||
static LightsState GetState();
|
static LightsState GetState();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
//
|
/* LightsDriver_LinuxParallel - Parallel Port Based Lights Driver for Linux
|
||||||
// LightsDriver_LinuxParallel - Parallel Port Based Lights Driver for Linux
|
* This requires root permissions to work! (run as root or suid)
|
||||||
//
|
* This code was written using SystemMessage Driver as template. */
|
||||||
// This requires root permissions to work! (run as root or suid)
|
|
||||||
// This code was written using SystemMessage Driver as template.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include <sys/io.h>
|
#include <sys/io.h>
|
||||||
@@ -12,6 +9,7 @@
|
|||||||
#include "InputMapper.h"
|
#include "InputMapper.h"
|
||||||
#include "Game.h"
|
#include "Game.h"
|
||||||
|
|
||||||
|
// xxx: don't hardcode the port address. -aj
|
||||||
static const int PORT_ADDRESS = 0x378;
|
static const int PORT_ADDRESS = 0x378;
|
||||||
static const bool SCREEN_DEBUG = false;
|
static const bool SCREEN_DEBUG = false;
|
||||||
|
|
||||||
@@ -19,7 +17,7 @@ REGISTER_SOUND_DRIVER_CLASS(LinuxParallel);
|
|||||||
|
|
||||||
LightsDriver_LinuxParallel::LightsDriver_LinuxParallel()
|
LightsDriver_LinuxParallel::LightsDriver_LinuxParallel()
|
||||||
{
|
{
|
||||||
// Give port's permissions and reset all bits to zero
|
// Give ports permissions and reset all bits to zero
|
||||||
ioperm( PORT_ADDRESS, 1, 1 );
|
ioperm( PORT_ADDRESS, 1, 1 );
|
||||||
outb( 0, PORT_ADDRESS );
|
outb( 0, PORT_ADDRESS );
|
||||||
}
|
}
|
||||||
@@ -36,7 +34,7 @@ void LightsDriver_LinuxParallel::Set( const LightsState *ls )
|
|||||||
// Set LightState to port
|
// Set LightState to port
|
||||||
RString s;
|
RString s;
|
||||||
|
|
||||||
// Prepare Screen Output too for debugging
|
// Prepare screen output too for debugging
|
||||||
s += "LinuxParallel Lights Driver Debug\n";
|
s += "LinuxParallel Lights Driver Debug\n";
|
||||||
s += "Lights Mode: " + LightsModeToString(LIGHTSMAN->GetLightsMode()) + "\n";
|
s += "Lights Mode: " + LightsModeToString(LIGHTSMAN->GetLightsMode()) + "\n";
|
||||||
|
|
||||||
@@ -75,7 +73,6 @@ void LightsDriver_LinuxParallel::Set( const LightsState *ls )
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* (c) 2004 Hugo Hromic M. <hhromic@udec.cl>
|
* (c) 2004 Hugo Hromic M. <hhromic@udec.cl>
|
||||||
*
|
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
REGISTER_SOUND_DRIVER_CLASS(LinuxWeedTech);
|
REGISTER_SOUND_DRIVER_CLASS(LinuxWeedTech);
|
||||||
|
|
||||||
// Begin serial driver //
|
// Begin serial driver
|
||||||
static int fd = -1;
|
static int fd = -1;
|
||||||
static LightsState CurLights;
|
static LightsState CurLights;
|
||||||
|
|
||||||
@@ -65,9 +65,7 @@ static inline void SerialOpen()
|
|||||||
}
|
}
|
||||||
// End serial driver //
|
// End serial driver //
|
||||||
|
|
||||||
|
/* Module maps (Dance mode)
|
||||||
|
|
||||||
/* Module maps
|
|
||||||
MODULE #A
|
MODULE #A
|
||||||
Channel A: Marquee (Up-Left)
|
Channel A: Marquee (Up-Left)
|
||||||
Channel B: Marquee (Up-Right)
|
Channel B: Marquee (Up-Right)
|
||||||
@@ -101,7 +99,6 @@ static inline void SerialOpen()
|
|||||||
Channel N: <not used>
|
Channel N: <not used>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
LightsDriver_LinuxWeedTech::LightsDriver_LinuxWeedTech()
|
LightsDriver_LinuxWeedTech::LightsDriver_LinuxWeedTech()
|
||||||
{
|
{
|
||||||
// Open port
|
// Open port
|
||||||
@@ -178,7 +175,6 @@ void LightsDriver_LinuxWeedTech::Set( const LightsState *ls )
|
|||||||
else if(cl == LIGHT_BASS_LEFT) {str[0] = 'A'; str[2] = 'G';}
|
else if(cl == LIGHT_BASS_LEFT) {str[0] = 'A'; str[2] = 'G';}
|
||||||
else if(cl == LIGHT_BASS_RIGHT) {str[0] = 'A'; str[2] = 'H';}
|
else if(cl == LIGHT_BASS_RIGHT) {str[0] = 'A'; str[2] = 'H';}
|
||||||
|
|
||||||
|
|
||||||
if( bOn )
|
if( bOn )
|
||||||
str[1]='L';
|
str[1]='L';
|
||||||
else
|
else
|
||||||
@@ -216,10 +212,7 @@ void LightsDriver_LinuxWeedTech::Set( const LightsState *ls )
|
|||||||
if(gb == GAME_BUTTON_START) {str[0] = 'A'; str[2] = 'F';}
|
if(gb == GAME_BUTTON_START) {str[0] = 'A'; str[2] = 'F';}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( bOn )
|
str[1] = bOn ? 'L' : 'H';
|
||||||
str[1]='L';
|
|
||||||
else
|
|
||||||
str[1]='H';
|
|
||||||
|
|
||||||
if( str[0] != 0x00 )
|
if( str[0] != 0x00 )
|
||||||
{
|
{
|
||||||
@@ -230,5 +223,29 @@ void LightsDriver_LinuxWeedTech::Set( const LightsState *ls )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (c) 2003-2004 Kevin Slaughter
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
/*
|
/* LightsDriver_LinuxWeedTech: Control lights with WTDIO-M from Weeder Technologies
|
||||||
* LightsDriver_LinuxWeedTech: Control lights with WTDIO-M from Weeder Technologies
|
* http://www.weedtech.com / http://www.weedtech.com/wtdio-m.html */
|
||||||
* http://www.weedtech.com
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef LightsDriver_LinuxWeedTech_H
|
#ifndef LightsDriver_LinuxWeedTech_H
|
||||||
#define LightsDriver_LinuxWeedTech_H
|
#define LightsDriver_LinuxWeedTech_H
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
/* LightsDriver_SystemMessage: Outputs light state as a system message. */
|
||||||
#ifndef LightsDriver_SystemMessage_H
|
#ifndef LightsDriver_SystemMessage_H
|
||||||
#define LightsDriver_SystemMessage_H
|
#define LightsDriver_SystemMessage_H
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ typedef short int (WINAPI ISDRIVERINSTALLED)();
|
|||||||
ISDRIVERINSTALLED* IsDriverInstalled = NULL;
|
ISDRIVERINSTALLED* IsDriverInstalled = NULL;
|
||||||
|
|
||||||
const int LIGHTS_PER_PARALLEL_PORT = 8;
|
const int LIGHTS_PER_PARALLEL_PORT = 8;
|
||||||
|
// xxx: don't hardcode the port addresses. -aj
|
||||||
const int MAX_PARALLEL_PORTS = 3;
|
const int MAX_PARALLEL_PORTS = 3;
|
||||||
short LPT_ADDRESS[MAX_PARALLEL_PORTS] =
|
short LPT_ADDRESS[MAX_PARALLEL_PORTS] =
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
/*
|
/* LightsDriver_Win32Parallel - Control lights with Kit 74:
|
||||||
* LightsDriver_Win32Parallel - Control lights with Kit 74:
|
* http://www.google.com/search?hl=en&lr=&ie=UTF-8&oe=UTF-8&q=kit+74+relay */
|
||||||
* http://www.google.com/search?hl=en&lr=&ie=UTF-8&oe=UTF-8&q=kit+74+relay
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef LightsDriver_Win32Parallel_H
|
#ifndef LightsDriver_Win32Parallel_H
|
||||||
#define LightsDriver_Win32Parallel_H
|
#define LightsDriver_Win32Parallel_H
|
||||||
|
|||||||