If I'd had this stuff in my test harness earlier, two recent commits would have failed tests and given me early warning: ff88238ff1 ff88a2a927
JFFUF5ALUWPDM7IEDEZVAYG2SVXO334STONRGKVB3QKY2TT5QGBQC
PTT4K4EURCVSZDFDNBEKMJORH5WQYZHQFHU4MILFZUGETC7XIEBQC
VCMS2CWTJDOW2FYCDH4ZSMVJAP6W4ZV4VWHJPPGGNHRX47GWYAGAC
H4K2GFILFMCVWL2EBTPHPYXLVH6ZBFWTH2FIQXOTMQAMJZJ2HSGQC
F3OOGMME4ETOHRX4T7IQWX2JHMVXO4PPQK44OIC3LJLQSAL36IRAC
WSXSEZQ2NLWSCVBFS6DBQMNDHPL7RWDTAPZZHT3K3UMXSBMBQH4AC
RMKMPFT5L67WIFWIO4GTC6XESX6UPKNL4GPNQLOBC5CXSUZABEHQC
JAXPXLEBWHBLNLMZ5VCSO63X6Z5WT4KZKWBOVACCAVX4QJAWWNYQC
G3C4FKPRNQ35BW3YU2RAON6O2HZBLIVDASR6VP5BU4I4L37K24PAC
IDG26SXKRKPRUQM3G2MMBQR3UZGNU7NCWJBBDKKIM5IGUNJQ2URQC
LXTTOB33N2HCUZFIUDRQGGBVHK2HODRG4NBLH6RXRQZDCHF27BSAC
WAR3HXHTN7JZVV6TFMU2F3QYAG6NDH7DN7KKPTM2ICEHRNQYP6PAC
ZLJGZYQGQ2S4UFWTVF4PQDSGMP6A4IS4GDHCMBAAA5SK2N2NWR3QC
BYG5CEMVXANDTBI2ORNVMEY6K3EBRIHZHS4QBK27VONJC5537COQC
XNFTJHC4QSHNSIWNN7K6QZEZ37GTQYKHS4EPNSVPQCUSWREROGIQC
BULPIBEGL7TMK6CVIE7IS7WGAHGOSUJBGJSFQK542MOWGHP2ADQQC
4QQBMWLLIA42YP6FBFC445ABQH62RRJBL5KKILTERJALPOJCYK4QC
R6GUSTBY5ZHR7E46DSIDQDNZDJI6QMZQDC7RPQMQWLGWQKXU6HVQC
Z4XRNDTRTGSZHNB65WNHOVUBFW4QWQABLVSK4RM3QJHGK33DMRJAC
OTIBCAUJ3KDQJLVDN3A536DLZGNRYMGJLORZVR3WLCGXGO6UGO6AC
NQWWTGXRLSBASOSP75FPOSVYP664VYRFQH7MY5LALLIP2VEBQMCQC
LS55YKGWKICTQTAHR5KLMNDOL6CDI4ATT3NT5Z2YL5IM3CRQOONQC
HOSPP2ANSW654DYRTC6CQUQA2GUKV6T2FI7QBKXD2DZS3R32IMGAC
65XHTZEKUTGHMOIWAFRH7ZVGUP4DWBCUT2TN4Y3LHYILKWTTBLKAC
TVM2WIHHCOTGYGJ4EL6MIUVH22Y4TU3HHHUFWAVVJQAT2ARCA2NQC
252M2QMDBMNWHBZY5MDSC7WVYO5JBLJYPVMW5W4IVJCZVYRQ5IQQC
YJGADSGKT43NZWJL4BKCN6LCBVDNNHED6XGN76PWF54R3LNM46LAC
BLWAYPKV3MLDZ4ALXLUJ25AIR6PCIL4RFYNRYLB26GFVC2KQBYBAC
LUNH47XXUUITDLE6NBI3J7GJQWQ45OQAGXY2HJI4HRPOR2GUULPAC
NYQ7HD4D5L44UORK52TH7CAEXYN5CE4ZUVLCWMY6XXPYHXVBTGHAC
WTDKUACNTWB4KD34TZZNPILNX4FQ6MR64XYBAA5GOMICF73WLIAAC
RT6EV6OPUYCXYZOX2PHFXJ7KT77KHNEVINEGQXIQLHQVKPGTN6VQC
SRVDX4I5QKWAH3Y5DX25PG34U7NY55H46ZYG2APH47BUZT3EJ2HAC
YCDYGEZUKVVFRLV5TKF2VYPDXWIHDSZD32KINFARWAJX4X3JPSFAC
6UZ2JNZECLGR4VFEPQKEJWORNOMNKZFS5DV4TVXDKG3IX3ZPLDSAC
VHQCNMARPMNBSIUFLJG7HVK4QGDNPCGNVFLHS3I4IGNVSV5MRLYQC
3RGHOJ25MCTQ5CRQADFIVJ53QZWRSIQOFGXLFGKQ765QABJ5S54AC
AD34IX2ZSGYGU3LGY2IZOZNKD4HRQOYJVG5UWMWLXJZJSM62FFOAC
3QNOKBFMKBGXBVJIRHR2444JRRMBTABHE4674NR3DT67RRM2X6GAC
JF5L2BBS7ESMKHNGKLXI2F32GZKET2ICJ4KT2L5BMH3P2L2Y5MRAC
6E3HVYWFP3JLJ3DJ5BH4WGJUXQV5MDCBCE5GH3SXRHRQZOG4VJLQC
2ENZW7TVCS47BWCA4AIEVGKGMT4Y2TSM5IJ7O5K2VSWNXIN3SG4QC
AVTNUQYRBW7IX2YQ3KDLVQ23RGW3BAKTAE7P73ASBYNKOHMQMH5AC
App.run_after_mousepress(screen_left_margin+8,Margin_top+5, '1')
App.run_after_mouserelease(screen_left_margin+8,Margin_top+5, '1')
App.run_after_mouse_press(screen_left_margin+8,Margin_top+5, '1')
App.run_after_mouse_release(screen_left_margin+8,Margin_top+5, '1')
App.keypress('lshift')
App.run_after_mousepress(screen_left_margin+20,Margin_top+5, '1')
App.run_after_mouserelease(screen_left_margin+20,Margin_top+Line_height+5, '1')
App.keyrelease('lshift')
App.fake_key_press('lshift')
App.run_after_mouse_press(screen_left_margin+20,Margin_top+5, '1')
App.run_after_mouse_release(screen_left_margin+20,Margin_top+Line_height+5, '1')
App.fake_key_release('lshift')
App.run_after_mousepress(screen_left_margin+8,Margin_top+5, '1')
App.run_after_mouserelease(screen_left_margin+8,Margin_top+5, '1')
App.run_after_mouse_press(screen_left_margin+8,Margin_top+5, '1')
App.run_after_mouse_release(screen_left_margin+8,Margin_top+5, '1')
App.keypress('lshift')
App.run_after_mousepress(screen_left_margin+20,Margin_top+5, '1')
App.run_after_mouserelease(screen_left_margin+20,Margin_top+Line_height+5, '1')
App.fake_key_press('lshift')
App.run_after_mouse_press(screen_left_margin+20,Margin_top+5, '1')
App.run_after_mouse_release(screen_left_margin+20,Margin_top+Line_height+5, '1')
App.keypress('lshift')
App.run_after_mousepress(screen_left_margin+20,Margin_top+5, '1')
App.run_after_mouserelease(screen_left_margin+8,Margin_top+Line_height+5, '1')
App.keyrelease('lshift')
App.fake_key_press('lshift')
App.run_after_mouse_press(screen_left_margin+20,Margin_top+5, '1')
App.run_after_mouse_release(screen_left_margin+8,Margin_top+Line_height+5, '1')
App.fake_key_release('lshift')
elseif love.mouse.isDown('1') and chord == 'p' and (Current_drawing_mode == 'polygon' or Current_drawing_mode == 'rectangle' or Current_drawing_mode == 'square') then
elseif App.mouse_down('1') and chord == 'p' and (Current_drawing_mode == 'polygon' or Current_drawing_mode == 'rectangle' or Current_drawing_mode == 'square') then
function App.modifier_down(key)
return App.modifier_keys[key]
App.fake_mouse_state = {x=-1, y=-1} -- x,y always set
function App.fake_mouse_press(x,y, button)
App.fake_mouse_state.x = x
App.fake_mouse_state.y = y
App.fake_mouse_state[button] = true
end
function App.fake_mouse_release(x,y, button)
App.fake_mouse_state.x = x
App.fake_mouse_state.y = y
App.fake_mouse_state[button] = nil
end
function App.mouse_move(x,y)
App.fake_mouse_state.x = x
App.fake_mouse_state.y = y
end
function App.mouse_down(button)
return App.fake_mouse_state[button]
end
function App.mouse_x()
return App.fake_mouse_state.x
end
function App.mouse_y()
return App.fake_mouse_state.y