[crossfire] Client proposal: redo inventory/look widgets
Mark Wedel
mwedel at sonic.net
Sun Aug 5 01:42:46 CDT 2007
Lalo Martins wrote:
> On the quest to "ungeekify" the client... ;-)
Just a note - I doubt there will be any single answer that everyone will like.
So the idea of using libglade so multiple layouts can easily be defined I
think will be a very good idea. There are just too many variations - a client
that works on a 800x600 resolution display (which some people seem to want) is
not likely to be all the interesting/useful for someone like me with a 1920x1200
display (I actually don't play the client full screen, but one reason is that
making it full screen doesn't get me much at some point - wider inventory and
text areas isn't useful).
>
> Based on recent discussions and a comment from Mwedel, I'd like to
> propose a revision of the inventory and "look" areas, and the
> introduction of three new things. (Of course I'm volunteering to write
> the code for this.)
>
> The question being: do people really *USE* all those 10 tabs? Very
> occasionally I use "unlocked" to sell stuff, but most of the time I use
> "icons" and the first one. And really, neither is the ideal UI for what
> I actually want to do.
Probably not. I do often use the unlocked to see what stuff I've picked up
that I need to sell. Sometimes I'll use the unpaid item tag if I accidentally
pick something up in the store - makes it find that item.
>
> So here's the proposal: Currently we have an inventory notebook and a
> "look" table. I propose to replace them with two other widgets: what I
> call the "stuff notebook", and the "shortcut area".
Are you combind what is currently the two separate look & inventory areas into
1 widge, that you are then subdividing into these 2 new widgets? I'm just
having troubles visualizing the layout here.
>
> The "shortcut area" is really Mwedel's idea. It would be a 10x2 or 10x3
> (or even 10x4) table, and you drag either equippable items or spells to
> that area. Each "slot" essentially manages one keybinding; so if I put
> my axe on 1,1 and small fireball in 2,1, then pressing "1" does "apply
> axe" (well not really, but you get the point), and "shift 1" does "cast
> small fireball". The rows correspond to no mod, shift, ctrl, and alt.
That seems reasonable. Note that dealing with numbers requires a little bit
of extra work - currently, whenever you enter a number into the client, it
presumes that is the count of how many items you want to drop or pick up.
Realistically, that probably isn't used very often, and even for cases when it
is, require characters at that point to specify the number is reasonable (I do
notice that right now, the count is a spinwheel, which makes it annoying if you
want to drop 1000 of something, as spinning up that far would take a while).
But it could be changed to a text box.
I also wonder if there is some practical limit to number of useful quick item
keys - at some level, you'd get so many, that it could be a pain to remember
what is there. I'd think that because of space constraints, those quick items
would have to be just icon views, and not names (unless you hover the mouse) -
but if you have to hover the mouse, that sort of looses the ability for it to be
a quick view.
If it is icon view, then it doesn't take much space - one thing to look at
would be width - I think you would want it 4 rows and 10 columns - in this way,
the columns effectively line up nicely with the numbers at the top of the
keyboard (1 at left, then 2, etc), making it visually easier to see
associations. But there may not be space for all 10, but if the number was
lower (like 8), that would still be an improvement.
>
> Then the "stuff notebook"; I imagine it has a control (checkbox or toggle
> button) that chooses between "details" and "icons" mode, regardless of
> tab (I think the choice applies to all tabs).
Reasonable.
>
> First tab is "look"; the objects on the floor near you. Second is the
> plain, unfiltered inventory. Yes, the filters are occasionally useful,
> but IMO, not often enough to justify polluting the UI. Fourth tab is the
> spell list; this is an awesome addition to the game, IMO it's about time
> it gets a more permanent space in the UI (and it's somewhat necessary in
> order for the shortcut area to be useful for mages).
I'd have to play around a bit to see if having to switch back and forth
between ground view and inventory view would be OK, or if it would be annoying.
The GTK2 client contains different support for containers (displayed inside
normal inventory, not look area), so that may not be quite so bad.
I'd probably suggest another tab there, which is filtered inventory, but let
the character define the filter how they want - probably simple checkboxes (like
the newpickup) - unpaid, magical, etc. This is probably better than current
system, as it is more flexible, and matches my current method of play better -
go to dungeon, get loads of crap, come back, do detect curse, drop that, do
detect magic, drop non magical, then do identify, drop unlocked stuff I don't want.
If I can filter on unlocked/non magical, makes it easier to filter out. And
adding in client side dropall based on currently selected tab and filter view
would also be nice.
>
> The third tab deserves its own paragraph :-) what I'm proposing here is a
> "body diagram" similar to what many computer adventure games have. Yes,
> it would require some tinkering, since we have IIRC 3 or 4 different
> combinations of body parts... but I have an idea how to do it and I'm
> willing to write the code. Here, you'd have a rough outline of a body,
> and for each "body slot" your character has, there would be a space where
> an icon can be drawn; if you equip an item on that slot, the
> corresponding icon appears there. Clicking a slot (with or without an
> equipped item) would bring up a menu with the items that can be equipped
> there.
>
> Since it's a notebook widget, it would be hard to drag items from the
> inventory to the body diagram; but then again, I have no idea why you'd
> want to do that, since you can double-click it on the inventory :-)
>
> I think hovering an icon on any of those widgets, if you are on "icon"
> view, would display the rest of the information (what you would have on
> "detail" view) on a tooltip.
It would seem to me that the only purpose of such a body view if you can't
really interact with it (or at least equip items directly on it) is somewhat
limited. Its informative to tell you where you have open spots, and another way
to see what stuff you have equipped (but the show equipped items filter would
probably give a more detailed information).
It always seems to me the value of such body diagrams is 'ah, I have nothing
on my feet - let me drag some boots there' type of thing, and/or as an easy way
to equip/unequip items and see overall effect. It is graphically nicer than
having to use the body command to see what stuff I could equip, but would still
seem to be of limited usefulness.
So I think it would be useful if it could be displayed while also displaying
inventory - just not sure if there is space to do that on low res setups. If
the look (ground) area remained its own widget, it could be done as a tab there,
but that might also be odd. It could perhaps also be done/overdrawn in the map
area, but that gets messy since different drawing logic is used there. I don't
have a really good solution - the body view is good, I'm just trying to think
how to make it more useful.
One thing quickly off the top of my head, is if you click on an empty spot
(say your finger where a ring goes), it could be nice to have an option for it
to make a filter so that it only displays objects that go there. Thus, you see
an empty spot and you could quickly see if/what you have to put there. This
does require more information that client currently has (client currently
doesn't get body info data for objects).
Other unrelated imrpovements I never got around to:
- Use drag and drop for containers - if I drag something (either from inventory
to ground) on top of a container, it should go into that container if at all
possible. Likewise, this could be used as a way to move stuff directly from
container to ground. Also, drag & drop should be used for complex items task
(remove need to mark items) - eg, drag a torch to flint and steel, and it does
the correct thing (some for weapons and weapon improvement scrolls, etc) - the
use of mark items is a bit of a hack, but that fixes a hack before that.
- Change meaning of mouse buttons - left is currently examine, middle is apply
(must be annoying to play crossfire if you have 2 button mouse), and right is
pickup/drop. My suggestions:
Left remains examine- nice about this is that it is 'safe' - nothing bad can
happen if you left click on the time.
Double click left is apply (double click logic can be handled by GTK IIRC).
left + drag & drop works as desribed above
middle is pickup/drop, but could be bound to other things
Right brings up context menu, with things like lock item, mark (but that should
go away), examine, not sure whatever item actions there are, but what there is,
it would be here
It would also be nice to make mouse buttons bindable/redefinable just like
keys are. So I could rebind middle button to something different, or right
button, whatever.
I choose the meaning of mouse buttons above as I think it matches what is
GTK/gnome standard - right normally brings up a menu of things to do, left is
normally select, but doing examine isn't bad. Double click normally activates
something, hence apply here.
Note that if you have spells listed as a tab with objects, you do have to
think about what different mouse buttons do there - one would be something like
'cast', one would be something like invoke, etc.
More information about the crossfire
mailing list