161 lines
5.0 KiB
Lua
161 lines
5.0 KiB
Lua
--[[ command aliases ]]
|
|
|
|
-- shorthand! this is tedious to type and makes things ugly so let's make it shorter.
|
|
-- _screen.w, _screen.h, etc.
|
|
_screen = {
|
|
w = SCREEN_WIDTH,
|
|
h = SCREEN_HEIGHT,
|
|
cx = SCREEN_CENTER_X,
|
|
cy = SCREEN_CENTER_Y
|
|
}
|
|
|
|
-- Title & Action area safe calculation, probably messy.
|
|
-- Uses Microsoft's suggestion of 85% of the screen (7.5% per side).
|
|
function GetTitleSafeH( fPerc ) return math.floor( SCREEN_RIGHT * fPerc ); end
|
|
function GetTitleSafeV( fPerc ) return math.floor( SCREEN_BOTTOM * fPerc ); end
|
|
|
|
SAFE_WIDTH = GetTitleSafeH(0.075);
|
|
SAFE_HEIGHT = GetTitleSafeV(0.075);
|
|
|
|
_safe = {
|
|
w = GetTitleSafeH(0.075);
|
|
h = GetTitleSafeV(0.075);
|
|
}
|
|
|
|
--[[ compatibility aliases ]]
|
|
|
|
function alias_one(class, main_name, alt_name)
|
|
if type(main_name) ~= "string" then
|
|
lua.ReportScriptError("Name of function to make an alias for must be a string.")
|
|
return
|
|
end
|
|
if type(alt_name) ~= "string" then
|
|
lua.ReportScriptError("Alias name of function must be a string.")
|
|
return
|
|
end
|
|
if class[alt_name] then return end
|
|
class[alt_name]= class[main_name]
|
|
end
|
|
|
|
function alias_set(class, set)
|
|
assert(type(class) == "table" and type(set) == "table",
|
|
"alias_set must be passed a class and a set of names to make alieases.")
|
|
for i, fun in ipairs(set) do
|
|
if type(fun) == "table" then
|
|
local main_name= fun[1]
|
|
if type(set[2]) == "table" then
|
|
for n, alt_name in ipairs(set[2]) do
|
|
alias_one(class, main_name, alt_name)
|
|
end
|
|
elseif type(set[2]) == "string" then
|
|
alias_one(class, main_name, set[2])
|
|
end
|
|
else
|
|
lua.ReportScriptError("alias entry " .. i .. " in set passed to " ..
|
|
"alias_set is not a table.")
|
|
end
|
|
end
|
|
end
|
|
|
|
function make_camel_aliases(class)
|
|
local name_list= {}
|
|
for name, fun in pairs(class) do
|
|
if type(fun) == "function" and type(name) == "string" then
|
|
name_list[#name_list+1]= name
|
|
end
|
|
end
|
|
for i, name in ipairs(name_list) do
|
|
local words= split("_", name)
|
|
for o, w in ipairs(words) do
|
|
words[o]= w:sub(1,1):upper() .. w:sub(2)
|
|
end
|
|
local camel_name= join("", words)
|
|
if name ~= camel_name then
|
|
alias_one(class, name, camel_name)
|
|
end
|
|
end
|
|
end
|
|
|
|
local to_camel_list= {
|
|
CubicSplineN, NCSplineHandler, NoteColumnRenderer, NoteField}
|
|
|
|
for i, class in ipairs(to_camel_list) do
|
|
make_camel_aliases(class)
|
|
end
|
|
|
|
--[[ ActorScroller: all of these got renamed, so alias the lowercase ones if
|
|
themes are going to look for them. ]]
|
|
ActorScroller.getsecondtodestination = ActorScroller.GetSecondsToDestination
|
|
ActorScroller.setsecondsperitem = ActorScroller.SetSecondsPerItem
|
|
ActorScroller.setnumsubdivisions = ActorScroller.SetNumSubdivisions
|
|
ActorScroller.scrollthroughallitems = ActorScroller.ScrollThroughAllItems
|
|
ActorScroller.scrollwithpadding = ActorScroller.ScrollWithPadding
|
|
ActorScroller.setfastcatchup = ActorScroller.SetFastCatchup
|
|
|
|
--[[ MenuTimer: just some case changes. ]]
|
|
MenuTimer.setseconds = MenuTimer.SetSeconds
|
|
|
|
--[[ GameState ]]
|
|
--[[ Aliases for old GAMESTATE timing functions. These have been converted to
|
|
SongPosition, but most themes still use these old functions. ]]
|
|
function GameState:GetSongBeat() return self:GetSongPosition():GetSongBeat() end
|
|
function GameState:GetSongBeatNoOffset() return self:GetSongPosition():GetSongBeatNoOffset() end
|
|
function GameState:GetSongBPS() return self:GetSongPosition():GetCurBPS() end
|
|
function GameState:GetSongDelay() return self:GetSongPosition():GetDelay() end
|
|
function GameState:GetSongFreeze() return self:GetSongPosition():GetFreeze() end
|
|
|
|
--[[ 3.9 Conditionals ]]
|
|
Condition = {
|
|
Hour = function() return Hour() end,
|
|
IsDemonstration = function() return GAMESTATE:IsDemonstration() end,
|
|
CurSong = function(sSongName)
|
|
return GAMESTATE:GetCurrentSong():GetDisplayMainTitle() == sSongName
|
|
end,
|
|
DayOfMonth = function() return DayOfMonth() end,
|
|
MonthOfYear = function() return MonthOfYear() end,
|
|
UsingModifier = function(pnPlayer, sModifier)
|
|
return GAMESTATE:PlayerIsUsingModifier( pnPlayer, sModifier );
|
|
end,
|
|
}
|
|
|
|
--[[ Productivity Helpers ]]
|
|
-- Blend Modes
|
|
-- Aliases for blend modes.
|
|
Blend = {
|
|
Normal = 'BlendMode_Normal',
|
|
Add = 'BlendMode_Add',
|
|
Subtract = 'BlendMode_Subtract',
|
|
Modulate = 'BlendMode_Modulate',
|
|
CopySource = 'BlendMode_CopySrc',
|
|
AlphaMask = 'BlendMode_AlphaMask',
|
|
AlphaKnockOut = 'BlendMode_AlphaKnockOut',
|
|
AlphaMultiply = 'BlendMode_AlphaMultiply',
|
|
Multiply = 'BlendMode_WeightedMultiply',
|
|
Invert = 'BlendMode_InvertDest',
|
|
NoEffect = 'BlendMode_NoEffect',
|
|
}
|
|
function StringToBlend(s) return Blend[s] or nil end
|
|
|
|
-- EffectMode
|
|
-- Aliases for EffectMode (aka shaders)
|
|
EffectMode = {
|
|
Normal = 'EffectMode_Normal',
|
|
Unpremultiply = 'EffectMode_Unpremultiply',
|
|
ColorBurn = 'EffectMode_ColorBurn',
|
|
ColorDodge = 'EffectMode_ColorDodge',
|
|
VividLight = 'EffectMode_VividLight',
|
|
HardMix = 'EffectMode_HardMix',
|
|
Overlay = 'EffectMode_Overlay',
|
|
Screen = 'EffectMode_Screen',
|
|
YUYV422 = 'EffectMode_YUYV422',
|
|
}
|
|
|
|
-- Health Declarations
|
|
-- Used primarily for lifebars.
|
|
Health = {
|
|
Max = 'HealthState_Hot',
|
|
Alive = 'HealthState_Alive',
|
|
Danger = 'HealthState_Danger',
|
|
Dead = 'HealthState_Dead'
|
|
}
|