diff options
Diffstat (limited to 'lib/VNDB/Types.pm')
-rw-r--r-- | lib/VNDB/Types.pm | 150 |
1 files changed, 96 insertions, 54 deletions
diff --git a/lib/VNDB/Types.pm b/lib/VNDB/Types.pm index 1f8e5867..16f730c5 100644 --- a/lib/VNDB/Types.pm +++ b/lib/VNDB/Types.pm @@ -15,47 +15,61 @@ sub hash { # SQL: ENUM language +# 'latin' indicates whether the language is primarily written in a latin-ish script. +# 'rank' is for quick selection of commonly used languages. hash LANGUAGE => - ar => 'Arabic', - bg => 'Bulgarian', - ca => 'Catalan', - cs => 'Czech', - da => 'Danish', - de => 'German', - el => 'Greek', - en => 'English', - eo => 'Esperanto', - es => 'Spanish', - fi => 'Finnish', - fr => 'French', - gd => 'Scottish Gaelic', - he => 'Hebrew', - hr => 'Croatian', - hu => 'Hungarian', - id => 'Indonesian', - it => 'Italian', - ja => 'Japanese', - ko => 'Korean', - mk => 'Macedonian', - ms => 'Malay', - lt => 'Lithuanian', - lv => 'Latvian', - nl => 'Dutch', - no => 'Norwegian', - pl => 'Polish', - 'pt-br' => 'Portuguese (Brazil)', - 'pt-pt' => 'Portuguese (Portugal)', - ro => 'Romanian', - ru => 'Russian', - sk => 'Slovak', - sl => 'Slovene', - sv => 'Swedish', - ta => 'Tagalog', - th => 'Thai', - tr => 'Turkish', - uk => 'Ukrainian', - vi => 'Vietnamese', - zh => 'Chinese'; + ar => { latin => 0, rank => 0, txt => 'Arabic' }, + eu => { latin => 1, rank => 0, txt => 'Basque' }, + be => { latin => 0, rank => 0, txt => 'Belarusian' }, + bg => { latin => 1, rank => 0, txt => 'Bulgarian' }, + ca => { latin => 1, rank => 0, txt => 'Catalan' }, + ck => { latin => 0, rank => 0, txt => 'Cherokee' }, # 'chr' in ISO 639-2 but not present in ISO 639-1, let's just use an unassigned code + zh => { latin => 0, rank => 2, txt => 'Chinese' }, + 'zh-Hans'=> { latin => 0, rank => 2, txt => 'Chinese (simplified)' }, + 'zh-Hant'=> { latin => 0, rank => 2, txt => 'Chinese (traditional)' }, + hr => { latin => 1, rank => 0, txt => 'Croatian' }, + cs => { latin => 1, rank => 0, txt => 'Czech' }, + da => { latin => 1, rank => 0, txt => 'Danish' }, + nl => { latin => 1, rank => 0, txt => 'Dutch' }, + en => { latin => 1, rank => 3, txt => 'English' }, + eo => { latin => 1, rank => 0, txt => 'Esperanto' }, + fi => { latin => 1, rank => 0, txt => 'Finnish' }, + fr => { latin => 1, rank => 1, txt => 'French' }, + de => { latin => 1, rank => 1, txt => 'German' }, + el => { latin => 0, rank => 0, txt => 'Greek' }, + he => { latin => 0, rank => 0, txt => 'Hebrew' }, + hi => { latin => 0, rank => 0, txt => 'Hindi' }, + hu => { latin => 1, rank => 0, txt => 'Hungarian' }, + ga => { latin => 1, rank => 0, txt => 'Irish' }, + id => { latin => 1, rank => 0, txt => 'Indonesian' }, + it => { latin => 1, rank => 0, txt => 'Italian' }, + iu => { latin => 1, rank => 0, txt => 'Inuktitut' }, + ja => { latin => 0, rank => 4, txt => 'Japanese' }, + ko => { latin => 0, rank => 1, txt => 'Korean' }, + la => { latin => 1, rank => 0, txt => 'Latin' }, + lv => { latin => 1, rank => 0, txt => 'Latvian' }, + lt => { latin => 1, rank => 0, txt => 'Lithuanian' }, + mk => { latin => 1, rank => 0, txt => 'Macedonian' }, + ms => { latin => 1, rank => 0, txt => 'Malay' }, + no => { latin => 1, rank => 0, txt => 'Norwegian' }, + fa => { latin => 0, rank => 0, txt => 'Persian' }, + pl => { latin => 1, rank => 0, txt => 'Polish' }, + 'pt-br' => { latin => 1, rank => 1, txt => 'Portuguese (Brazil)' }, + 'pt-pt' => { latin => 1, rank => 1, txt => 'Portuguese (Portugal)' }, + ro => { latin => 1, rank => 0, txt => 'Romanian' }, + ru => { latin => 0, rank => 2, txt => 'Russian' }, + gd => { latin => 1, rank => 0, txt => 'Scottish Gaelic' }, + sr => { latin => 1, rank => 0, txt => 'Serbian' }, + sk => { latin => 0, rank => 0, txt => 'Slovak' }, + sl => { latin => 1, rank => 0, txt => 'Slovene' }, + es => { latin => 1, rank => 1, txt => 'Spanish' }, + sv => { latin => 1, rank => 0, txt => 'Swedish' }, + ta => { latin => 1, rank => 0, txt => 'Tagalog' }, + th => { latin => 0, rank => 0, txt => 'Thai' }, + tr => { latin => 1, rank => 0, txt => 'Turkish' }, + uk => { latin => 0, rank => 1, txt => 'Ukrainian' }, + ur => { latin => 0, rank => 0, txt => 'Urdu' }, + vi => { latin => 1, rank => 1, txt => 'Vietnamese' }; @@ -66,13 +80,17 @@ hash PLATFORM => lin => 'Linux', mac => 'Mac OS', web => 'Website', + tdo => '3DO', ios => 'Apple iProduct', and => 'Android', bdp => 'Blu-ray Player', dos => 'DOS', dvd => 'DVD Player', drc => 'Dreamcast', - nes => 'Famicon', + nes => 'Famicom', + sfc => 'Super Famicom', + fm7 => 'FM-7', + fm8 => 'FM-8', fmt => 'FM Towns', gba => 'Game Boy Advance', gbc => 'Game Boy Color', @@ -91,13 +109,19 @@ hash PLATFORM => ps2 => 'PlayStation 2', ps3 => 'PlayStation 3', ps4 => 'PlayStation 4', + ps5 => 'PlayStation 5', psv => 'PlayStation Vita', + smd => 'Sega Mega Drive', + scd => 'Sega Mega-CD', sat => 'Sega Saturn', - sfc => 'Super Nintendo', - x68 => 'X68000', + vnd => 'VNDS', + x1s => 'Sharp X1', + x68 => 'Sharp X68000', xb1 => 'Xbox', xb3 => 'Xbox 360', xbo => 'Xbox One', + xxs => 'Xbox X/S', + mob => 'Other (mobile)', oth => 'Other'; @@ -116,6 +140,22 @@ hash VN_RELATION => orig => { reverse => 'fan', pref => 0, txt => 'Original game' }; +hash DEVSTATUS => + 0 => 'Finished', + 1 => 'In development', + 2 => 'Cancelled'; + + +hash DRM_PROPERTY => # No DRM: https://lucide.dev/icons/unlock (needs circle?) + disc => 'Disc check', # https://lucide.dev/icons/disc-3 + cdkey => 'CD-key', # https://lucide.dev/icons/key-round (needs circle?) + activate => 'Online activation', # https://lucide.dev/icons/wifi (needs circle?) + alimit => 'Activation limit', + account => 'Account-based', # https://lucide.dev/icons/link (needs circle?) + online => 'Always online', + cloud => 'Cloud gaming', + physical => 'Physical'; # XXX: How does this relate to cdkey? + # SQL: ENUM producer_relation # "Pref" relations are considered the "preferred" relation to show (as opposed to their reverse) @@ -142,22 +182,25 @@ hash PRODUCER_TYPE => # SQL: ENUM credit_type hash CREDIT_TYPE => scenario => 'Scenario', + director => 'Director', chardesign => 'Character design', art => 'Artist', music => 'Composer', songs => 'Vocals', - director => 'Director', + translator => 'Translator', + editor => 'Editor', + qa => 'Quality assurance', staff => 'Staff'; hash VN_LENGTH => - 0 => { txt => 'Unknown', time => '' }, - 1 => { txt => 'Very short', time => '< 2 hours' }, - 2 => { txt => 'Short', time => '2 - 10 hours' }, - 3 => { txt => 'Medium', time => '10 - 30 hours' }, - 4 => { txt => 'Long', time => '30 - 50 hours' }, - 5 => { txt => 'Very long', time => '> 50 hours' }; + 0 => { txt => 'Unknown', time => '', low => 0, high => 0 }, + 1 => { txt => 'Very short', time => '< 2 hours', low => 1, high => 2*60 }, + 2 => { txt => 'Short', time => '2 - 10 hours', low => 2*60, high => 10*60 }, + 3 => { txt => 'Medium', time => '10 - 30 hours', low => 10*60, high => 30*60 }, + 4 => { txt => 'Long', time => '30 - 50 hours', low => 30*60, high => 50*60 }, + 5 => { txt => 'Very long', time => '> 50 hours', low => 50*60, high => 32767 }; @@ -183,7 +226,7 @@ hash TAG_CATEGORY => hash ANIMATED => 0 => { txt => 'Unknown' }, - 1 => { txt => 'No animations' }, + 1 => { txt => 'Not animated' }, 2 => { txt => 'Simple animations' }, 3 => { txt => 'Some fully animated scenes' }, 4 => { txt => 'All scenes fully animated' }; @@ -199,11 +242,9 @@ hash VOICED => -# TODO: For some reason the minage column in SQL is nullable but still stores 'unknown' as -1. -# This should be cleaned up at some point. hash AGE_RATING => - -1 => { txt => 'Unknown', ex => '' }, 0 => { txt => 'All ages', ex => 'CERO A' }, + 3 => { txt => '3+', ex => '' }, 6 => { txt => '6+', ex => '' }, 7 => { txt => '7+', ex => '' }, 8 => { txt => '8+', ex => '' }, @@ -228,6 +269,7 @@ hash MEDIUM => gdr => { qty => 1, txt => 'GD-ROM', plural => 'GD-ROMs', icon => 'disk' }, blr => { qty => 1, txt => 'Blu-ray disc', plural => 'Blu-ray discs', icon => 'disk' }, flp => { qty => 1, txt => 'Floppy', plural => 'Floppies', icon => 'cartridge' }, + cas => { qty => 1, txt => 'Cassette tape', plural => 'Cassette tapes', icon => 'cartridge' }, mrt => { qty => 1, txt => 'Cartridge', plural => 'Cartridges', icon => 'cartridge' }, mem => { qty => 1, txt => 'Memory card', plural => 'Memory cards', icon => 'cartridge' }, umd => { qty => 1, txt => 'UMD', plural => 'UMDs', icon => 'disk' }, |