Asunaya / RefinedGunz

102 stars 47 forks source link

In-Game Chat Issues #10

Open coyotezin opened 7 years ago

coyotezin commented 7 years ago

I would like if possible, a review of the in-game chat to fix this issues, chat needs to have a minimum size while resizing it so it doesnt stay like 1 letter per text line if you resize too much(can happen accidentally while making it smaller), and also a cap/limit or a horizontal scroll to avoid text getting all the way over/outside the input box.

Asunaya commented 7 years ago

b20464a adds a minimum size of 10% of your resolution in each dimension. a2f0243 expands the input field vertically and wraps when the input string is more than one line long.

Let me know what you think about those changes. o:

While we're on the topic, so that I'll remember, here are some other things that should probably be added sometime, off the top of my head:

coyotezin commented 7 years ago

Thanks for the both fixes! Those are really nice and ideas would make the chat even better! The ones i liked the most would be the scrolling animation and mint integration so it would be easier to implement emoticons, also the scrollbar would be nice, can't wait for those to be implemented! Keep it up!

Btw, i've noticed few others issues, if you could take a look to them too would be nice.

Caret not changing position when using arrow keys, the function itself works because you can text where it should be after pressing the arrow keys but caret still at the end of the text. Important: If you press left arrow key to go back a few letters and press the right arrow key to go back to the end, it will crash the game (it crashes somewhere around RFont::EndFont).

The other problem is that when you press the TAB in order to write someone's nickname it only gets one name and you can't choose, for example, 5 players in the room, pressing tab in the chat input would only print the name of 1 of those players and theres no way to choose between them.

Thanks for the attention :smile: :+1:

Asunaya commented 7 years ago

What a silly bug! Thanks for bringing it to my attention. Should be fixed with 991702b, I think. Let me know if you spot any more issues. (:

As for tab not working, it currently works differently from the normal chat. Tab autocompletes a name. For instance, if players "abcd", "fjds" and "dfa" are in a room, writing "d" and then pressing tab should autocomplete it to "dfa".

I previously had code for having the normal tab player list thing, but at some point I commented it out (see e.g. this) and added the current functionality. I should probably add some option for selecting between them, or something. o.o

I also added some support for Unicode text just now, sample: http://i.imgur.com/ndx3fg5.jpg. There are a bunch of things missing, like right-to-left support, astral plane support, input methods for CJK, etc.; just basic stuff for now.

This could be the basis for emoticon support, by just rendering the unicode emoji characters in a font that supports them. Strings listed e.g. here could be used to input them.

Here are some other things to add:

rafadsm commented 7 years ago

Hello, I made the chat changes you made too, but when I send a message in the chat, it gets cut off, and the other messages do not appear See the image: http://prnt.sc/ee86ju

What could be causing this problem?

Asunaya commented 7 years ago

I don't know. o: Hard to tell when I don't know what code you're using. :X

Looks like Chat::ChatLinesPixelOffsetY isn't decreasing, which SHOULD be done every frame by Chat::UpdateNewMessagesAnimation.

rafadsm commented 7 years ago

I find the problem, I discovered that my OnUpdate was not working properly due to the code in ZApplication::OnUpdate

auto ElapsedTime = m_Timer.UpdateFrame();

    if (Timescale != 1.f)
        ElapsedTime *= Timescale;

i used the default code fElapsed = ZApplication::m_Timer.UpdateFrame();

I noticed that in window mode, cursor positions to move / scale chat frame are different :smile:

Your tips are great and useful for new chat

Asunaya commented 7 years ago

I find the problem.

Good to hear. \^__\^

I noticed that in window mode, cursor positions to move / scale chat frame are different :smile:

Woops! That's a pretty obvious bug in retrospect, but I never use bordered windowed mode, only borderless windowed or fullscreen, so I never noticed it. Should be fixed with 3510719. Thanks!

rafadsm commented 7 years ago

Thanks for the correction!

Could you show me which commit to locate: Misc client stuff

About based on unicode emoticons, it is already possible to put emoticons like 😊 ?

Asunaya commented 7 years ago

Could you show me which commit to locate: ...

I don't think there's any single commit that added only all the stuff relevant to that feature.

I think it's mainly the MeshManager class and some changes to RVisualMesh, along with some other changes that I don't really remember. And the PartsIndexer program, which produces the parts_index.xml.

I'll write some documentation about that stuff sometime, I guess. :o

About based on unicode emoticons, it is already possible to put emoticons like 😊 ?

Nah, I haven't added that stuff yet, sorry.