mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
46ab9213f5
plugins/data: add data plugin [Carl]
245 lines
7.4 KiB
Lua
245 lines
7.4 KiB
Lua
local default_text =
|
|
{
|
|
-- Alphabetic Buttons (NeoGeo): A~D,H,Z
|
|
["A"] = 1, -- BTN_A
|
|
["B"] = 2, -- BTN_B
|
|
["C"] = 3, -- BTN_C
|
|
["D"] = 4, -- BTN_D
|
|
["H"] = 8, -- BTN_H
|
|
["Z"] = 26, -- BTN_Z
|
|
-- Numerical Buttons (Capcom): 1~10
|
|
["a"] = 27, -- BTN_1
|
|
["b"] = 28, -- BTN_2
|
|
["c"] = 29, -- BTN_3
|
|
["d"] = 30, -- BTN_4
|
|
["e"] = 31, -- BTN_5
|
|
["f"] = 32, -- BTN_6
|
|
["g"] = 33, -- BTN_7
|
|
["h"] = 34, -- BTN_8
|
|
["i"] = 35, -- BTN_9
|
|
["j"] = 36, -- BTN_10
|
|
-- Directions of Arrow, Joystick Ball
|
|
["+"] = 39, -- BTN_+
|
|
["."] = 40, -- DIR_...
|
|
["1"] = 41, -- DIR_1
|
|
["2"] = 42, -- DIR_2
|
|
["3"] = 43, -- DIR_3
|
|
["4"] = 44, -- DIR_4
|
|
["5"] = 45, -- Joystick Ball
|
|
["6"] = 46, -- DIR_6
|
|
["7"] = 47, -- DIR_7
|
|
["8"] = 48, -- DIR_8
|
|
["9"] = 49, -- DIR_9
|
|
["N"] = 50, -- DIR_N
|
|
-- Special Buttons
|
|
["S"] = 51, -- BTN_START
|
|
["P"] = 53, -- BTN_PUNCH
|
|
["K"] = 54, -- BTN_KICK
|
|
["G"] = 55, -- BTN_GUARD
|
|
-- Composition of Arrow Directions
|
|
["!"] = 90, -- Arrow
|
|
["k"] = 100, -- Half Circle Back
|
|
["l"] = 101, -- Half Circle Front Up
|
|
["m"] = 102, -- Half Circle Front
|
|
["n"] = 103, -- Half Circle Back Up
|
|
["o"] = 104, -- 1/4 Cir For 2 Down
|
|
["p"] = 105, -- 1/4 Cir Down 2 Back
|
|
["q"] = 106, -- 1/4 Cir Back 2 Up
|
|
["r"] = 107, -- 1/4 Cir Up 2 For
|
|
["s"] = 108, -- 1/4 Cir Back 2 Down
|
|
["t"] = 109, -- 1/4 Cir Down 2 For
|
|
["u"] = 110, -- 1/4 Cir For 2 Up
|
|
["v"] = 111, -- 1/4 Cir Up 2 Back
|
|
["w"] = 112, -- Full Clock Forward
|
|
["x"] = 113, -- Full Clock Back
|
|
["y"] = 114, -- Full Count Forward
|
|
["z"] = 115, -- Full Count Back
|
|
["L"] = 116, -- 2x Forward
|
|
["M"] = 117, -- 2x Back
|
|
["Q"] = 118, -- Dragon Screw Forward
|
|
["R"] = 119, -- Dragon Screw Back
|
|
-- Big letter Text
|
|
["^"] = 121, -- AIR
|
|
["?"] = 122, -- DIR
|
|
["X"] = 124, -- TAP
|
|
-- Condition of Positions
|
|
["|"] = 125, -- Jump
|
|
["O"] = 126, -- Hold
|
|
["-"] = 127, -- Air
|
|
["="] = 128, -- Squatting
|
|
["~"] = 131, -- Charge
|
|
-- Special Character Text
|
|
["`"] = 135, -- Small Dot
|
|
["@"] = 136, -- Double Ball
|
|
[")"] = 137, -- Single Ball
|
|
["("] = 138, -- Solid Ball
|
|
["*"] = 139, -- Star
|
|
["&"] = 140, -- Solid star
|
|
["%"] = 141, -- Triangle
|
|
["$"] = 142, -- Solid Triangle
|
|
["#"] = 143, -- Double Square
|
|
["]"] = 144, -- Single Square
|
|
["["] = 145, -- Solid Square
|
|
["{"] = 146, -- Down Triangle
|
|
["}"] = 147, -- Solid Down Triangle
|
|
["<"] = 148, -- Diamond
|
|
[">"] = 149, -- Solid Diamond
|
|
}
|
|
|
|
local expand_text =
|
|
{
|
|
-- Alphabetic Buttons (NeoGeo): S (Slash Button)
|
|
["s"] = 19, -- BTN_S
|
|
-- Special Buttons
|
|
["S"] = 52, -- BTN_SELECT
|
|
-- Multiple Punches & Kicks
|
|
["E"] = 57, -- Light Punch
|
|
["F"] = 58, -- Middle Punch
|
|
["G"] = 59, -- Strong Punch
|
|
["H"] = 60, -- Light Kick
|
|
["I"] = 61, -- Middle Kick
|
|
["J"] = 62, -- Strong Kick
|
|
["T"] = 63, -- 3 Kick
|
|
["U"] = 64, -- 3 Punch
|
|
["V"] = 65, -- 2 Kick
|
|
["W"] = 66, -- 2 Pick
|
|
-- Composition of Arrow Directions
|
|
["!"] = 91, -- Continue Arrow
|
|
-- Charge of Arrow Directions
|
|
["1"] = 92, -- Charge DIR_1
|
|
["2"] = 93, -- Charge DIR_2
|
|
["3"] = 94, -- Charge DIR_3
|
|
["4"] = 95, -- Charge DIR_4
|
|
["6"] = 96, -- Charge DIR_6
|
|
["7"] = 97, -- Charge DIR_7
|
|
["8"] = 98, -- Charge DIR_8
|
|
["9"] = 99, -- Charge DIR_9
|
|
-- Big letter Text
|
|
["M"] = 123, -- MAX
|
|
-- Condition of Positions
|
|
["-"] = 129, -- Close
|
|
["="] = 130, -- Away
|
|
["*"] = 132, -- Serious Tap
|
|
["?"] = 133, -- Any Button
|
|
}
|
|
|
|
local convert_text =
|
|
{
|
|
-- Alphabetic Buttons: A~Z
|
|
["A-button"] = 1, -- BTN_A
|
|
["B-button"] = 2, -- BTN_B
|
|
["C-button"] = 3, -- BTN_C
|
|
["D-button"] = 4, -- BTN_D
|
|
["E-button"] = 5, -- BTN_E
|
|
["F-button"] = 6, -- BTN_F
|
|
["G-button"] = 7, -- BTN_G
|
|
["H-button"] = 8, -- BTN_H
|
|
["I-button"] = 9, -- BTN_I
|
|
["J-button"] = 10, -- BTN_J
|
|
["K-button"] = 11, -- BTN_K
|
|
["L-button"] = 12, -- BTN_L
|
|
["M-button"] = 13, -- BTN_M
|
|
["N-button"] = 14, -- BTN_N
|
|
["O-button"] = 15, -- BTN_O
|
|
["P-button"] = 16, -- BTN_P
|
|
["Q-button"] = 17, -- BTN_Q
|
|
["R-button"] = 18, -- BTN_R
|
|
["S-button"] = 19, -- BTN_S
|
|
["T-button"] = 20, -- BTN_T
|
|
["U-button"] = 21, -- BTN_U
|
|
["V-button"] = 22, -- BTN_V
|
|
["W-button"] = 23, -- BTN_W
|
|
["X-button"] = 24, -- BTN_X
|
|
["Y-button"] = 25, -- BTN_Y
|
|
["Z-button"] = 26, -- BTN_Z
|
|
-- Special Moves and Buttons
|
|
["decrease"] = 37, -- BTN_DEC
|
|
["increase"] = 38, -- BTN_INC
|
|
["BALL"] = 45, -- Joystick Ball
|
|
["start"] = 51, -- BTN_START
|
|
["select"] = 52, -- BTN_SELECT
|
|
["punch"] = 53, -- BTN_PUNCH
|
|
["kick"] = 54, -- BTN_KICK
|
|
["guard"] = 55, -- BTN_GUARD
|
|
["L-punch"] = 57, -- Light Punch
|
|
["M-punch"] = 58, -- Middle Punch
|
|
["S-punch"] = 59, -- Strong Punch
|
|
["L-kick"] = 60, -- Light Kick
|
|
["M-kick"] = 61, -- Middle Kick
|
|
["S-kick"] = 62, -- Strong Kick
|
|
["3-kick"] = 63, -- 3 Kick
|
|
["3-punch"] = 64, -- 3 Punch
|
|
["2-kick"] = 65, -- 2 Kick
|
|
["2-punch"] = 66, -- 2 Pick
|
|
-- Custom Buttons and Cursor Buttons
|
|
["custom1"] = 67, -- CUSTOM_1
|
|
["custom2"] = 68, -- CUSTOM_2
|
|
["custom3"] = 69, -- CUSTOM_3
|
|
["custom4"] = 70, -- CUSTOM_4
|
|
["custom5"] = 71, -- CUSTOM_5
|
|
["custom6"] = 72, -- CUSTOM_6
|
|
["custom7"] = 73, -- CUSTOM_7
|
|
["custom8"] = 74, -- CUSTOM_8
|
|
["up"] = 75, -- (Cursor Up)
|
|
["down"] = 76, -- (Cursor Down)
|
|
["left"] = 77, -- (Cursor Left)
|
|
["right"] = 78, -- (Cursor Right)
|
|
-- Player Lever
|
|
["lever"] = 79, -- Non Player Lever
|
|
["nplayer"] = 80, -- Gray Color Lever
|
|
["1player"] = 81, -- 1 Player Lever
|
|
["2player"] = 82, -- 2 Player Lever
|
|
["3player"] = 83, -- 3 Player Lever
|
|
["4player"] = 84, -- 4 Player Lever
|
|
["5player"] = 85, -- 5 Player Lever
|
|
["6player"] = 86, -- 6 Player Lever
|
|
["7player"] = 87, -- 7 Player Lever
|
|
["8player"] = 88, -- 8 Player Lever
|
|
-- Composition of Arrow Directions
|
|
["-->"] = 90, -- Arrow
|
|
["==>"] = 91, -- Continue Arrow
|
|
["hcb"] = 100, -- Half Circle Back
|
|
["huf"] = 101, -- Half Circle Front Up
|
|
["hcf"] = 102, -- Half Circle Front
|
|
["hub"] = 103, -- Half Circle Back Up
|
|
["qfd"] = 104, -- 1/4 Cir For 2 Down
|
|
["qdb"] = 105, -- 1/4 Cir Down 2 Back
|
|
["qbu"] = 106, -- 1/4 Cir Back 2 Up
|
|
["quf"] = 107, -- 1/4 Cir Up 2 For
|
|
["qbd"] = 108, -- 1/4 Cir Back 2 Down
|
|
["qdf"] = 109, -- 1/4 Cir Down 2 For
|
|
["qfu"] = 110, -- 1/4 Cir For 2 Up
|
|
["qub"] = 111, -- 1/4 Cir Up 2 Back
|
|
["fdf"] = 112, -- Full Clock Forward
|
|
["fub"] = 113, -- Full Clock Back
|
|
["fuf"] = 114, -- Full Count Forward
|
|
["fdb"] = 115, -- Full Count Back
|
|
["xff"] = 116, -- 2x Forward
|
|
["xbb"] = 117, -- 2x Back
|
|
["dsf"] = 118, -- Dragon Screw Forward
|
|
["dsb"] = 119, -- Dragon Screw Back
|
|
-- Big letter Text
|
|
["AIR"] = 121, -- AIR
|
|
["DIR"] = 122, -- DIR
|
|
["MAX"] = 123, -- MAX
|
|
["TAP"] = 124, -- TAP
|
|
-- Condition of Positions
|
|
["jump"] = 125, -- Jump
|
|
["hold"] = 126, -- Hold
|
|
["air"] = 127, -- Air
|
|
["sit"] = 128, -- Squatting
|
|
["close"] = 129, -- Close
|
|
["away"] = 130, -- Away
|
|
["charge"] = 131, -- Charge
|
|
["tap"] = 132, -- Serious Tap
|
|
["button"] = 133, -- Any Button
|
|
}
|
|
|
|
local function convert_char(str)
|
|
str = str:gsub("@([a-zA-Z%-]+)", function(s) if convert_text[s] then return utf8.char(convert_text[s] + 0xe000) end return s end)
|
|
str = str:gsub("_(.)", function(s) if default_text[s] then return utf8.char(default_text[s] + 0xe000) end return s end)
|
|
str = str:gsub("%^(.)", function(s) if expand_text[s] then return utf8.char(expand_text[s] + 0xe000) end return s end)
|
|
return str
|
|
end
|
|
|
|
return convert_char
|