Cursors/Zones and offscreen-buffers
I was sent a detailed layout of how an XBOX 360 controller could be mapped closely to the CP/G handgrips for inclusion as default controller layout. What struck me was the predominance of the 'thumbstick' as an important interface component. For a while now "mouse to buffer" problem had been bubbling around my head, it was something I tried months ago but put aside for later. Well yesterday was that later and using a special mouse pick and taking the xyz (well xy anyway) from a valid pick on the virtual display surface, then subtract the local entity position, you get a valid relative co-ordinate you can simply scale to suit your display. It works much easier if you have a display co-ordinate system that has the origin in the middle of the display.
curpos = Vec3(mfdpick.x, mfdpick.y, mfdpick.z).Minus(mfdpick.entity.GetPosition(1)) ; mfd.SetCursorPos(curpos.x, curpos.y) ;
In SetCursorPosition() you'll need to multiply x and y by some scale to match world units returned by the pick and object width/height ratio). Works independent of screen resolution. Our implementation allows you to easily move the system mouse across and through many virtual displays. Who needs Scaleform?
Below is an example of the FLT page, all pages now sport automatic generation of hot zones (debug in red), the thumbstick/mouse controlled cursor is near the middle (green circle with 4 lines radiating out at 45 degrees). The system mouse is automatically hidden and shown when moving across virtual display surfaces.
This was needed not just for interior helicopter use, but it's also a big part for the mission planning and map interface.
Mission planning or command tent functions can be considered a "hub" activity. When not in your helicopter, this is where players should be spending the most time. So it needs to have a gravity, an environment to match this weight. Meanwhile AD worked on some ground objects to use for virtual display devices. The mission planning system will be run on a laptop. Using code developed for the Apache TSD with some interface elements added, you use these much in the same way you interface with everything else, walk up to it and use the darn thing.
|Mission Planning furniture|
|The Xombat Laptop open|
|You can even close it but save your work|
As a hub, mission planning needs to occupy enough virtual space to allow easy user identification as a place of importance and allow easy navigation with around 4 other players present. So we're looking at a whole walk-around table with laptops and assorted non-interactive furniture.
Mission planning on the laptop taps into the campaign engine and planning involves taking that route data identified by a snappy codename and assigning it to the player editing. The projector serves as a public viewing device, it is a read only interface that can select a single mission profile to view. This allows a single planner in the laptop interface to edit a mission profile while everyone else in the command tent can see and discuss. Missions are assigned to the player operating the terminal or attached to a specific aircraft on the pad. Missions are finally bound to aircraft when a player mounts as the pilot (assume sort of data cart upload on boarding).
|Base radio set. Buttons work apparently|
I'm finishing off the mouse/events for the TSD and FCR (symbols etc). They mostly just emulate existing MPD bezel button presses but it also needs to select glyphs such as individual Hellfires etc.
So, for that uber CP/G experience, an XBOX 360 joypad is the closest off-the shelf controller you can currently buy.
Gratuitous images of operating existing MPD functions with cursor controller. Just got the "mouse up" to sort out for drawing PFZs.
AD has been working on some refreshments and reading material...
The flight manual seems a little thin. My A-model binder is about 3 inches wide :)
*edit* Here's an original fresh-install locker from Longbow 2 complete with my favourite mug :)
|Apache Helicopter Pilots Kill Mimes!|