673fe695b2226

673fe695b3440
2 Guests are here.
 

673fe695b3ae3Real Gecko

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b3b41
Ah, Maaan!!! You`re cool:))) You`ve done a really great work! That was really fun. I`ve beaten the SS1 game, and I don`t think the source is buggy. There is only one feature: when the CapsLock engaged the mouse look toggle doesn`t work, due to mod recieves only "e" character and not "E". Right after completing SS1 I started to replay SS2, spend whole saturday playing it and in the end I was SHOCKED (salt the fries:)) - that damn AI was rebuilding The Citadel Station, the entire Med Level was half way completed. That was really fun:))) Now I willing to see SS3 (as all others on this forum I presume).
About the sources: I was thinking to rebuild the game to modern rendering API`s (DirectX, OpenGL), but now I see that it will be almost impossible, but now I also understand that it is unnecessary, because game runs cool even directly from WinXP:))) Lotta thanks:)))
Re: System Shock mouselook/key mapping/high resolution mod
673fe695b3cd0
First off, fantastic work on this. This saves the game for me, now I'm actually playing through it.

Just wanted to confirm that 1280x1024 resolution switches for me, but freezes when I attempt to exit the pause menu. This was using DOSBox. Everything else works great though, and 1024x768 is more than enough for me anyways. Thanks a million.

Now if only there were a way to get those Mac SS resources into this...

673fe695b3dccGwildor

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b3e3d
Thank you :)

as for the 1280x1024 res..I have the freeze when I exit the menu while my brother can play this res. Same setup except his PC is faster but 800x600 is perfect for me since I prefer playing in a window... using DOSbox.
Re: System Shock mouselook/key mapping/high resolution mod
673fe695b3f82
Hey Malba Tahan, are you brazillian? I always loved the books of Malba Tahan.

673fe695b480aMalba Tahan

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b4877
There is only one feature: when the CapsLock engaged the mouse look toggle doesn`t work, due to mod recieves only "e" character and not "E".
This is easily fixable by binding "E" to mouselook as well (adding the following line to the active profile in XCDSHOCK.CFG)
Code: [Select]
bind shift+e cmd.mlook
as for the 1280x1024 res..I have the freeze when I exit the menu while my brother can play this res. Same setup except his PC is faster but 800x600 is perfect for me since I prefer playing in a window... using DOSbox.
Glad to know it works for someone! Thanks for your feedback!
Hey Malba Tahan, are you brazillian? I always loved the books of Malba Tahan.
Yes, I am! And I also love Malba Tahan's books. Perhaps I should stop using his name as if it was mine, though  :) . Maybe I'll pick up a new nickname soon!
Re: System Shock mouselook/key mapping/high resolution mod
673fe695b4ac1
Considering that the original Malba Tahan won't show up on the net any time soon and you have some fame to this name now, I'd think this over. Just saying.

673fe695b4c35Mr Quackums

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b4cf0
i have found a little work around for the mouse-bind problem:  search google for a program called "AutoHotKey" (i remember having to completely rebind dwarf-fortress with it to make the game playable).  by creating the simple script "XButton1::e" i now have it set so my inner mouse button (button 4 or 5, dont remember) now serves the same function as the "e" key, enters/exits mouseLook.  this is an external program so you need to run the script before playing the game, but it will let you bind to the mouse. 

also think you so much for this mod.  i tried to tackle ss1 before but had to play with combat difficulty at 0 due to the controls and thus did not enjoy the game as much as i should have.

thank you for opening up this game to those of us spoiled by contemporary control schemes.

673fe695b4e8bNameless Voice

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b4eeb
AutoHotKey is a great utility which I use regularly.
It should be powerful enough to detect when the game is running and only bind the mouse buttons that way when it is, though that would involve a much more complicated script.  At the least, you could have a more complex key combination which would toggle the behaviour of the extra mouse buttons between their defaults (e.g. go backwards/forwards in the browser) and the game-specific behaviour for games which don't support 5 buttons.

673fe695b4ffdnilsbyte

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b5051
first of all, GREAT work, now i really can start playing this game. the lack of mouse aiming was the only thing that prevented me from playing it further.

now a question for Malba

i want to map some functions to the kaypad keys (divide, multiply, minus, plus) but i don't know the key and function names.

'crouch' and 'lie' should be keypad plus and minus, but i cannot find these functions
« Last Edit: 24. May 2010, 21:33:14 by nilsbyte »

673fe695b56c3Malba Tahan

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b572c
i want to map some functions to the kaypad keys (divide, multiply, minus, plus) but i don't know the key and function names.

'crouch' and 'lie' should be keypad plus and minus, but i cannot find these functions

Congratulations, you have just found another bug!!!
Well, if that bug didn't exist, the answer to your question would be:
Code: [Select]
  bind kpplus cmd.setheight default 1
  bind kpminus cmd.setheight default 2

However, for some reason, I've forgotten to add the keycodes to that keys into the mod. So you'll have to that using the ugly gamecodes themselves. Try this:
Code: [Select]
  bind $0x202B cmd.setheight default 1
  bind $0x202D cmd.setheight default 2
Here are the keys that I forgot to add and their corresponding keycodes:
Code: [Select]
Keypad * $0x202A
Keypad - $0x202D
Keypad + $0x202B
Keypad / $0x202F
Keypad Enter .......... I haven't figured out yet, because I don't have the "keypad enter" key on my keyboard
Keypad Period $0x0853

In case anyone needs them, here are the all the key names (and their corresponding scancodes and keycodes ). You'll see that the keys listed above are not on the follwoing list (that's the bug that I mentioned):
Code: [Select]
static struct
{
  char* name;
  u8 scan;
  u16 key;
} keystab[] = {
{ "escape",       0x01, 0x001B },
{ "f1",           0x3B, 0x083B },
{ "f2",           0x3C, 0x083C },
{ "f3",           0x3D, 0x083D },
{ "f4",           0x3E, 0x083E },
{ "f5",           0x3F, 0x083F },
{ "f6",           0x40, 0x0840 },
{ "f7",           0x41, 0x0841 },
{ "f8",           0x42, 0x0842 },
{ "f9",           0x43, 0x0843 },
{ "f10",          0x44, 0x0844 },
{ "f11",          0x57, 0x0857 },
{ "f12",          0x58, 0x0858 },
{ "print",        0x00, 0x2937 },
{ "scrolllock",   0x47, 0x0845 },
{ "pause",        0x7F, 0x087F },

{ "backquote",    0x29, 0x0060 }, // 7E
{ "1",            0x02, 0x0031 }, // 21   - 0x10
{ "2",            0x03, 0x0032 }, // 40
{ "3",            0x04, 0x0033 }, // 23   - 0x10
{ "4",            0x05, 0x0034 }, // 24   - 0x10
{ "5",            0x06, 0x0035 }, // 25   - 0x10
{ "6",            0x07, 0x0036 }, // 5E
{ "7",            0x08, 0x0037 }, // 26
{ "8",            0x09, 0x0038 }, // 2A
{ "9",            0x0A, 0x0039 }, // 28
{ "0",            0x0B, 0x0030 }, // 29
{ "minus",        0x0C, 0x002D }, // 5F
{ "equals",       0x0D, 0x003D }, // 2B
{ "backspace",    0x0E, 0x0008 },

{ "tab",          0x0F, 0x0009 },
{ "q",            0x10, 0x0051 },
{ "w",            0x11, 0x0057 },
{ "e",            0x12, 0x0045 },
{ "r",            0x13, 0x0052 },
{ "t",            0x14, 0x0054 },
{ "y",            0x15, 0x0059 },
{ "u",            0x16, 0x0055 },
{ "i",            0x17, 0x0049 },
{ "o",            0x18, 0x004F },
{ "p",            0x19, 0x0050 },
{ "leftbracket",  0x1A, 0x005B }, // 7B + 0x20
{ "rightbracket", 0x1B, 0x005D }, // 7D + 0x20
{ "backslash",    0x2B, 0x005C }, // 7C + 0x20

{ "capslock",     0x3A, 0x083A },
{ "a",            0x1E, 0x0041 },
{ "s",            0x1F, 0x0053 },
{ "d",            0x20, 0x0044 },
{ "f",            0x21, 0x0046 },
{ "g",            0x22, 0x0047 },
{ "h",            0x23, 0x0048 },
{ "j",            0x24, 0x004A },
{ "k",            0x25, 0x004B },
{ "l",            0x26, 0x004C },
{ "semicolon",    0x27, 0x003B }, // 3a  - 1
{ "quote",        0x28, 0x0027 }, // 22
{ "enter",        0x1C, 0x000D },

{ "lshift",       0x2A, 0x082A },
{ "z",            0x2C, 0x005A },
{ "x",            0x2D, 0x0058 },
{ "c",            0x2E, 0x0043 },
{ "v",            0x2F, 0x0056 },
{ "b",            0x30, 0x0042 },
{ "n",            0x31, 0x004E },
{ "m",            0x32, 0x004D },
{ "comma",        0x33, 0x002C }, // 3C + 0x10
{ "period",       0x34, 0x002E }, // 3E + 0x10
{ "slash",        0x35, 0x002F }, // 3F + 0x10
{ "rshift",       0x36, 0x0836 },

{ "lctrl",        0x1D, 0x081D },
{ "lalt",         0x38, 0x0838 },
{ "space",        0x39, 0x0020 },
{ "ralt",         0xB8, 0x2838 },
{ "rctrl",        0x9D, 0x281D },

{ "insert",       0xD2, 0x2852 },
{ "home",         0xC7, 0x2847 },
{ "pageup",       0xC9, 0x2849 },

{ "delete",       0xD3, 0x2853 },
{ "end",          0xCF, 0x284F },
{ "pagedown",     0xD1, 0x2851 },

{ "up",           0xC8, 0x2848 },
{ "left",         0xCB, 0x284B },
{ "down",         0xD0, 0x2850 },
{ "right",        0xCD, 0x284D },

{ "numlock",      0x45, 0x0845 },
{ "kpslash",      0xB5, 0x0000 },
{ "kpmultiply",   0x37, 0x0000 },
{ "kpminus",      0x4A, 0x0000 },

{ "kp7",          0x47, 0x0847 },
{ "kp8",          0x48, 0x0848 },
{ "kp9",          0x49, 0x0849 },
{ "kpplus",       0x4E, 0x0000 },

{ "kp4",          0x4B, 0x084B },
{ "kp5",          0x4C, 0x084C },
{ "kp6",          0x4D, 0x084D },

{ "kp1",          0x4F, 0x084F },
{ "kp2",          0x50, 0x0850 },
{ "kp3",          0x51, 0x0851 },
{ "kpenter",      0x9C, 0x0000 },

{ "kp0",          0x52, 0x0000 },
{ "kpperiod",     0x53, 0x0000 },

// cópias dos L
{ "shift",        0x2A, 0x082A },
{ "ctrl",         0x1D, 0x081D },
{ "alt",          0x38, 0x0838 },

{ NULL, 0, 0 },
};

673fe695b5a2aEnchantermon

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b5a80
You don't have an Enter key on your keyboard? Do you have a Return?

EDIT: Oh, wait, never mind, I know what you mean. Sorry, my brain stopped functioning for a second, there.

673fe695b69c5nilsbyte

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b6a22
i want to map some functions to the kaypad keys (divide, multiply, minus, plus) but i don't know the key and function names.

'crouch' and 'lie' should be keypad plus and minus, but i cannot find these functions

Congratulations, you have just found another bug!!!
Well, if that bug didn't exist, the answer to your question would be:
Code: [Select]
  bind kpplus cmd.setheight default 1
  bind kpminus cmd.setheight default 2

However, for some reason, I've forgotten to add the keycodes to that keys into the mod. So you'll have to that using the ugly gamecodes themselves. Try this:
Code: [Select]
  bind $0x202B cmd.setheight default 1
  bind $0x202D cmd.setheight default 2
Here are the keys that I forgot to add and their corresponding keycodes:
Code: [Select]
Keypad * $0x202A
Keypad - $0x202D
Keypad + $0x202B
Keypad / $0x202F
Keypad Enter .......... I haven't figured out yet, because I don't have the "keypad enter" key on my keyboard
Keypad Period $0x0853

In case anyone needs them, here are the all the key names (and their corresponding scancodes and keycodes ). You'll see that the keys listed above are not on the follwoing list (that's the bug that I mentioned):
Code: [Select]
static struct
{
  char* name;
  u8 scan;
  u16 key;
} keystab[] = {
{ "escape",       0x01, 0x001B },
{ "f1",           0x3B, 0x083B },
{ "f2",           0x3C, 0x083C },
{ "f3",           0x3D, 0x083D },
{ "f4",           0x3E, 0x083E },
{ "f5",           0x3F, 0x083F },
{ "f6",           0x40, 0x0840 },
{ "f7",           0x41, 0x0841 },
{ "f8",           0x42, 0x0842 },
{ "f9",           0x43, 0x0843 },
{ "f10",          0x44, 0x0844 },
{ "f11",          0x57, 0x0857 },
{ "f12",          0x58, 0x0858 },
{ "print",        0x00, 0x2937 },
{ "scrolllock",   0x47, 0x0845 },
{ "pause",        0x7F, 0x087F },

{ "backquote",    0x29, 0x0060 }, // 7E
{ "1",            0x02, 0x0031 }, // 21   - 0x10
{ "2",            0x03, 0x0032 }, // 40
{ "3",            0x04, 0x0033 }, // 23   - 0x10
{ "4",            0x05, 0x0034 }, // 24   - 0x10
{ "5",            0x06, 0x0035 }, // 25   - 0x10
{ "6",            0x07, 0x0036 }, // 5E
{ "7",            0x08, 0x0037 }, // 26
{ "8",            0x09, 0x0038 }, // 2A
{ "9",            0x0A, 0x0039 }, // 28
{ "0",            0x0B, 0x0030 }, // 29
{ "minus",        0x0C, 0x002D }, // 5F
{ "equals",       0x0D, 0x003D }, // 2B
{ "backspace",    0x0E, 0x0008 },

{ "tab",          0x0F, 0x0009 },
{ "q",            0x10, 0x0051 },
{ "w",            0x11, 0x0057 },
{ "e",            0x12, 0x0045 },
{ "r",            0x13, 0x0052 },
{ "t",            0x14, 0x0054 },
{ "y",            0x15, 0x0059 },
{ "u",            0x16, 0x0055 },
{ "i",            0x17, 0x0049 },
{ "o",            0x18, 0x004F },
{ "p",            0x19, 0x0050 },
{ "leftbracket",  0x1A, 0x005B }, // 7B + 0x20
{ "rightbracket", 0x1B, 0x005D }, // 7D + 0x20
{ "backslash",    0x2B, 0x005C }, // 7C + 0x20

{ "capslock",     0x3A, 0x083A },
{ "a",            0x1E, 0x0041 },
{ "s",            0x1F, 0x0053 },
{ "d",            0x20, 0x0044 },
{ "f",            0x21, 0x0046 },
{ "g",            0x22, 0x0047 },
{ "h",            0x23, 0x0048 },
{ "j",            0x24, 0x004A },
{ "k",            0x25, 0x004B },
{ "l",            0x26, 0x004C },
{ "semicolon",    0x27, 0x003B }, // 3a  - 1
{ "quote",        0x28, 0x0027 }, // 22
{ "enter",        0x1C, 0x000D },

{ "lshift",       0x2A, 0x082A },
{ "z",            0x2C, 0x005A },
{ "x",            0x2D, 0x0058 },
{ "c",            0x2E, 0x0043 },
{ "v",            0x2F, 0x0056 },
{ "b",            0x30, 0x0042 },
{ "n",            0x31, 0x004E },
{ "m",            0x32, 0x004D },
{ "comma",        0x33, 0x002C }, // 3C + 0x10
{ "period",       0x34, 0x002E }, // 3E + 0x10
{ "slash",        0x35, 0x002F }, // 3F + 0x10
{ "rshift",       0x36, 0x0836 },

{ "lctrl",        0x1D, 0x081D },
{ "lalt",         0x38, 0x0838 },
{ "space",        0x39, 0x0020 },
{ "ralt",         0xB8, 0x2838 },
{ "rctrl",        0x9D, 0x281D },

{ "insert",       0xD2, 0x2852 },
{ "home",         0xC7, 0x2847 },
{ "pageup",       0xC9, 0x2849 },

{ "delete",       0xD3, 0x2853 },
{ "end",          0xCF, 0x284F },
{ "pagedown",     0xD1, 0x2851 },

{ "up",           0xC8, 0x2848 },
{ "left",         0xCB, 0x284B },
{ "down",         0xD0, 0x2850 },
{ "right",        0xCD, 0x284D },

{ "numlock",      0x45, 0x0845 },
{ "kpslash",      0xB5, 0x0000 },
{ "kpmultiply",   0x37, 0x0000 },
{ "kpminus",      0x4A, 0x0000 },

{ "kp7",          0x47, 0x0847 },
{ "kp8",          0x48, 0x0848 },
{ "kp9",          0x49, 0x0849 },
{ "kpplus",       0x4E, 0x0000 },

{ "kp4",          0x4B, 0x084B },
{ "kp5",          0x4C, 0x084C },
{ "kp6",          0x4D, 0x084D },

{ "kp1",          0x4F, 0x084F },
{ "kp2",          0x50, 0x0850 },
{ "kp3",          0x51, 0x0851 },
{ "kpenter",      0x9C, 0x0000 },

{ "kp0",          0x52, 0x0000 },
{ "kpperiod",     0x53, 0x0000 },

// cópias dos L
{ "shift",        0x2A, 0x082A },
{ "ctrl",         0x1D, 0x081D },
{ "alt",          0x38, 0x0838 },

{ NULL, 0, 0 },
};

thank you for the codes, it works this way.

can i also assign the mouse keys to a function? would be very nice.
Re: System Shock mouselook/key mapping/high resolution mod
673fe695b6b54
That has been asked a few times before (and answered). At the moment it's not possible to bind mouse buttons.

673fe695b6c8bMagma-Man

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b6cd9
Hi, thank you so much for this mod, but I stopped playing it almost emmediatly because I was fed up with it. Why? Because on my Windows XP it LAGS HORRIBLY. I looked all through this forum, using a find word option in Firefox to find the word lag, and only found it two times, neither one of them had any solution to my problem. It has horrible lag, and I keep getting owned as soon as I leave the first room because I can't look, move, or aim properly. Does anyone know how to fix this? I just got System Shock 2 and wanted to play System Shock 1 before I played System Shock 2, especially since I had just watched all 35 episodes of Daniel's Commentaries: System Shock 2 on Youtube and thought by the time I beat System Shock, what happens in System Shock 2 will be forgotten. Please help!
Re: System Shock mouselook/key mapping/high resolution mod
673fe695b6e55
I seriously hope you didn't load every page of this forum to search it with your firefox find-a-word search.
There is a search button at the top of this forum.

Apart from that your lag is likely because your system is too slow. Don't get me wrong, mouse movement is faster than keyboard commands and hence requires a somewhat faster system. But even my notebook here can keep up with the speed when running SSP in DGVESA mode.

Which brings us to the question how you run the game and on what system (tried decreasing cycles in DOSbox?). But this isn't the place for that, so please start a support request in the Helpdesk forum.

Alternatively you can ask and I will cut of this little discussion and move it to Helpdesk.
 

673fe695b6f8fJureiko

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b6fdd
Hi everyone

Great work Malba. Me and my friends are a big fans of SS-2 and I'm glad that now your mod allows us to enjoy such masterpiece as System Shock.
First I've tried SSP dosbox mode, but it doesn't seem to work how it supposed to, the colors were insane and midi music was super-fast.
It's sad to admit but the only way I managed to run SS properly on my Win7x32 is through DosBox manually
(I've used enhanced CD version of SS and "Getting System Shock 1 Running in Dosbox" guide)

 I put XCDSHOCK.bat, XCDSHOCK.exe and XCYB.cfg in my SS folder.
But when I run .bat file command line appears on a second and nothing follows.
Is there any way to make this mod operational with DosBos SS ? 

sorry for my bad english



Re: System Shock mouselook/key mapping/high resolution mod
673fe695b70d4
Should be as easy as starting XCDSHOCK.EXE (that's what the BAT file does) but there's also a readme in the mod you might want to consult.

673fe695b71b0Jureiko

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b71fc
Thanks a lot Kolya, it works.

However, an attempt to exit the pause menu after switching video mode to 1280x1024 freezes the game (
According to this topic all of Win7x32 users are experiencing this trouble.

Malba, is there any solution except playing with lower resolution video mode ?
Or could you fix it on next release of your mod ?

673fe695b7470Malba Tahan

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b74cd
Malba, is there any solution except playing with lower resolution video mode ?
Or could you fix it on next release of your mod ?
I don't know how to fix that issue. As far as I know, only a few people got 1280x1024 working, and I don't believe they got it working on Dosbox. Maybe that happens because 1280x1024 is not a standard VESA resolution? That's only a guess. Sorry, but I can't help there.

673fe695b75dbJureiko

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b762f
Thanks anyway
i guess it's not much of a problem after all. Game looks quite acceptable with 1024x768 resolution.

I also have a question about key mapping.. i know it's stupid
since you've explained the whole thing in readme file
Nevertheless i still don't understand what i should write to set controls the way i want to.
Everything about SS1 is so complicated, i'm just confused between desperate attempts to run it properly and locate a detailed guide (about items, stats etc. In case i'll manage to run SS)

What line should i add to XCYB.cfg to map "fire" to "f" ?

673fe695b78c0Malba Tahan

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b7917
What line should i add to XCYB.cfg to map "fire" to "f" ?
There's no way to do that yet. The reason is that SS was never meant to be played that way (using the keyboard to fire). However, once someone figures out how to remap mouse buttons to different functions, it should be possible (after some hex editing).
Re: System Shock mouselook/key mapping/high resolution mod
673fe695b7a8b
Malba, let me just say thank you.  You've brought an old friend back to me with this work - it's been over a decade since I've been able to properly enjoy System Shock, and now I can do so again, and it's every bit as good as I remember.

Also, I've got experience with both matrix and quaternion rotations and would be more than happy to help you sort out the jerkiness in cyberspace mouselook if you'd like a hand. (assuming you haven't already solved it in a release I haven't found - I'm using the version included in LGC_SystemShock-Portable-v1.0.1, apparent date 6/2)  Just let me know what you've figured out so far and I'll see if I can't help iron out the wrinkles.

673fe695b7ee7Malba Tahan

Re: System Shock mouselook/key mapping/high resolution mod
673fe695b7f3e
(assuming you haven't already solved it in a release I haven't found - I'm using the version included in LGC_SystemShock-Portable-v1.0.1, apparent date 6/2)  Just let me know what you've figured out so far and I'll see if I can't help iron out the wrinkles.
Nice! Are you a programmer? Can you understand C code? Once I clean up the sources I'll release them, together with a "database" of all the stuff I've discovered while digging inside System Shock using the IDA disassembler, so you can take a look at them.
I haven't updated the mouselook mod in a while for a couple of reasons but the main reason is that I'm not really sure how it should be done. You know, cyberspace movement is a completely different game experience if you compare it with the traditional "FPS" mode in System Shock. It acts much more like a flight simulator. I think mouselook wouldn't just feel right in cyberspace. There are some issue too: sometimes, when in cyberspace, you are forced be some "invisible force" to turn to a direction and follow down a path. Mouselook code should detected the presence of this "invisible force", otherwise unpredictable results could happen, I guess.
Re: System Shock mouselook/key mapping/high resolution mod
673fe695b8134
I have done a fair amount of C programming, so I should be able to work with whatever you've got. In fact if you know how your orientation is represented I can probably just send you some C code that will perform rotations as desired given the desired yaw/pitch/roll angles - I'm not set up for modifying executables, but do have a 3D-math library I wrote in C++ that I can gut for the necessary functions. 

Say something like:
void RotateBasis(float yaw, float pitch, float roll, float* up_x, float* up_y, float* up_z, float* right_x, float* right_y, float* right_z, float* forward_x, float* forward_y, forward* right_z);
Obviously I'd need to adapt that to whatever your actual variables are, but you get the idea.

As for how to behave - I'd start with just streamlining the original mouse-control when you get when holding down the left button:  Get rid of the huge dead zone in the middle, leave thrust to the keyboard, and have it always-on instead of having to push a button to activate it(I don't know how many times I've accidentally switched softs when doing that).  Many space-combat games handle steering that way and it's very intuitive - just keep your cursor on the target and you stay pointing at it, at least until it skims past faster than you can turn.  I think it would maintain the original feel as well (just minus the annoying bits)

Your name:
This box must be left blank:

Trioptimum executive Edward ____ (Fill in the last name):
2 Guests are here.
ride into the danger zone
Contact SMF 2.0.19 | SMF © 2016, Simple Machines | Terms and Policies
FEEP
673fe695bc283