Nah that doesn't help. When I say sluggish I mean most times it doesn't actually record the keypress for menus. Worth noting though is it only happens with up/down/left/right, the numpad works properly. And also in the spacemap it will always increment the turn but rarely move the ship. I suspected at first that it had to do with using both multikey and inkey, as that can lead to probs in my experience. But it was too much work for me
.
I just had an idea and tried something, but it only fixed the problem with the turns.
Thinking that it might be racking up a few keypresses with the inkey statement I replaced that line in the keyin function with
key=mid(ucase(inkey),1,1)
Don't understand why but it works.
EDIT: ahh i know it's probably because my console doesn't support extended ascii, so inkey can't pick it up properly.
EDIT2: I got it working well with by replacing the inkey loop with screenevent (and getting rid of the multikey stuff):
do
If (ScreenEvent(@e)) Then
Select Case e.type
Case EVENT_KEY_PRESS
select case e.scancode
case sc_down
key = "2"
case sc_up
key = "8"
case sc_left
key = "4"
case sc_right
key = "6"
case sc_home
key = "7"
case sc_pageup
key = "9"
case sc_end
key = "1"
case sc_pagedown
key = "3"
case else
key = ucase(chr(e.ascii))
end select
end select
end if
sleep 1
loop until key<>"" or walking<>0 or just_run=1
Screenevent only works in gfx mode, so you have to call screen somewhere in the program. I called it right after 'randomize timer'
screen 9 , , gfx_null
It does cause some funkiness though(with the color scheme). I feel bad derailing this thread with code, you should get your own forum or should I post stuff in issues?