Many thanks to wryl and the folks at #Nova for teaching me about inversion of control. There doesn't have to be a single event loop.
MYEOA76OV2FPEYWVCSLANO62PG4V7KU2I4MRC2JL4AAGWHKSCIWAC CC6INQTAHED2NO7Q34KIWHFHDKG3AL427DS2PY4MYJNX52PBQVTAC ULKNZUZKI5PQM36OHZAJHMZVXSEM7UUEOVZPI55B64UBU3UD3REAC OTIBCAUJ3KDQJLVDN3A536DLZGNRYMGJLORZVR3WLCGXGO6UGO6AC YT5P6TO64XSMCZGTT4SVNFOWUN5ECNXTWCMFXN3YCDZUNH4H3IFAC AVTNUQYRBW7IX2YQ3KDLVQ23RGW3BAKTAE7P73ASBYNKOHMQMH5AC PJ5PQAQEEWQDDEPKP3RURCFDX7SSUIH4GZJCDZ6E6UU6G55KB7KAC 36Z442IVPXHZ7D2QI26YLN3TDDEMDRQ2GKBYQAD6NUHQZVCCY4VAC LXFHXL2NSH7KLRNNN66OPNSU4DXZ6UU2CUPXUHCFEISDB6BY7KDAC ORKN6EOBUFVAD2TXYW5OIKSL55RU24LOFDTTTXHDZUZ57QRDCY7QC D2TYFYG2SQ5FH2ET3WXJ3HFJARQLN5WCMAYZVDTB4DLFRAP3YTSQC IM6GSGVZTVICWIBWRCUXLIMXT3XE3H5LKJ3AITUA4AB3FTW5AJUAC Mode = 'version_check'-- continue initializing everything; hopefully we won't have errors during initialization
while true dolove.graphics.origin()love.graphics.clear(love.graphics.getBackgroundColor())love.graphics.setColor(1,1,0)love.graphics.rectangle('fill', 30,30, 400,400)love.graphics.setColor(0,0,0)love.graphics.printf(("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]), 40,40, 400)love.graphics.present()if love.event thenlove.event.pump()for name, a,b,c,d,e,f in love.event.poll() doif name == 'quit' thenif not love.quit or not love.quit() thenos.exit(1)endelseif name == 'keypressed' thenreturnendendendlove.timer.sleep(0.01)end
if Mode == 'version_check' thenlove.graphics.setColor(1,1,0)love.graphics.rectangle('fill', 30,30, 400,400)love.graphics.setColor(0,0,0)love.graphics.printf(("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]), 40,40, 400)returnend