This is still ugly, but hopefully easier to follow.
Z2VZTIXYXUZXF4ZUVG54IOIRSMBGUZJZ2RTBPYOJC7NWBOUFU6YAC
APX2PY6GAMJSUH7SFSMBFOQJBSAWLLOCKH4L4ZQP2VLHNEXJPREAC
HR6MLUTXQCBLIJR23TEMVRGF72UDRCGELGQH7WQEARPPBHB2OEAAC
N2NUGNN4E37TNLC6JZE4H4HKJZPNVBV4VYTLXW57AP5BOU4ZK7LQC
OLH6DPAD7FYQVI2XWKWSTJ37XVT4552ZWZ6CMTW2O6BUW6MMP4NQC
FE25XVZYGWECMZHBQ7V35SIKC4SUBYZHYYIEDCXK6DKWZA25HPEQC
O5F6DNPGQPJII6CCUYRKW6DMF3OI22YSUNBFH5PC4HLZIM3YGYBQC
6VJTQKW7YJ7E3WRNSTFYULUDHHTYAE4JELX4J55LO75X4FDM3JZAC
OTIBCAUJ3KDQJLVDN3A536DLZGNRYMGJLORZVR3WLCGXGO6UGO6AC
TSK2OXU2FTB2X44SN73Z4W4O6IDV6G6V3QU5UVTAGQY52Z7AHECAC
WQOSZSUESLH4YRMW3PIWGSEC7RS243324PBROJP2KPRFJ3NFSEZQC
KKMFQDR43ZWVCDRHQLWWX3FCWCFA3ZSXYOBRJNPHUQZR2XPKWULAC
MHOUX5JFGBFYMOULX3NZA2JXH6PF2227DT54EEXLBUZQFO7NDI2AC
YGCT2D2ORMLTBHANLGHZV3EBGGHD7ZK55UAM7HF2AVSHDXAAKK5QC
3QNOKBFMKBGXBVJIRHR2444JRRMBTABHE4674NR3DT67RRM2X6GAC
PESSMQBJCOIA5PYNVKUG4D25VTFIG44QVCAOFRD4PKOJNW2AIHKAC
AVTNUQYRBW7IX2YQ3KDLVQ23RGW3BAKTAE7P73ASBYNKOHMQMH5AC
ORRSP7FVCHI2TF5GXBRGQYYJAA3JFYXZBM3T663BKSBV22FCZVCAC
FJIGUGECGBLEKXGERZ6GE3CZYGSFEBCKSAUYSS7PFLHXDAKAFNKQC
BJ5X5O4ACBBJ56LRBBSTCW6IBQP4HAEOOOPNH3SKTA4F66YTOIDAC
function App.version_check()
-- available modes: run, error
Error_message = nil
Error_count = 0
-- we'll reuse error mode on load for an initial version check
local supported_versions = {'11.5', '11.4', '12.0'} -- put the recommended version first
local minor_version
Major_version, minor_version = love.getVersion()
Version = Major_version..'.'..minor_version
if array.find(supported_versions, Version) == nil then
Current_app = 'error'
Error_message = ("This app doesn't support version %s; please use version %s. Press any key to try it with this version anyway."):format(Version, supported_versions[1])
print(Error_message)
-- continue initializing everything; hopefully we won't have errors during initialization
end
end
function App.initialize_globals()
Supported_versions = {'11.5', '11.4', '12.0'} -- put the recommended version first
check_love_version_for_tests()
function App.love_version_check()
if Unsupported_version then
Current_app = 'error'
Error_message = ("This app hasn't been tested with LÖVE version %s; please switch to version %s if you run into issues. Press any key to continue."):format(Version, Supported_versions[1])
print(Error_message)
-- continue initializing everything; hopefully we won't have errors during initialization
end
end
error(('There were %d test failures:\n\n%s'):format(#Test_errors, table.concat(Test_errors)))
local error_message = ''
if Warning_before_tests then
error_message = Warning_before_tests..'\n\n'
end
error_message = error_message .. ('There were %d test failures:\n%s'):format(#Test_errors, table.concat(Test_errors))
error(error_message)
- run with an unsupported version. Error message pops up and waits for a key. The app attempts to continue, and doesn't receive the key.
- run with an untested version. Error message pops up and waits for a key. The app attempts to continue, and doesn't receive the key.
* run with an unsupported version. Error message pops up and waits for a key. The app attempts to continue, and doesn't receive the key. Press ctrl+e to edit source. Source editor opens up without checking version.
* run with an untested version. Error message pops up. Press a key. Text editor comes up, and doesn't receive the key. Press ctrl+e. Source editor opens up. Press ctrl+e. Text editor returns.
* create a couple of spuriously failing tests. Run with an untested version. Error message includes message about untested version.