source: network-game/client/Client/chat.cpp@ 0678d60

Last change on this file since 0678d60 was bc70282, checked in by dportnoy <dmp1488@…>, 11 years ago

The chat console resets when the user logs out

  • Property mode set to 100644
File size: 1.5 KB
Line 
1#include "chat.h"
2
3chat::chat(void)
4{
5}
6
7chat::~chat(void)
8{
9}
10
11string chat::getInput()
12{
13 string temp = strEnteredInput;
14 strEnteredInput.clear();
15 return temp;
16}
17
18void chat::draw(ALLEGRO_FONT *font, ALLEGRO_COLOR color)
19{
20 for(unsigned int x=0; x<vctChat.size(); x++)
21 al_draw_text(font, color, 5, 100+x*15, ALLEGRO_ALIGN_LEFT, vctChat[x].c_str());
22
23 // I think this might never be used
24 al_draw_text(font, color, 5, 460, ALLEGRO_ALIGN_LEFT, strPrompt.c_str());
25}
26
27void chat::addLine(string s)
28{
29 vctChat.push_back(s);
30}
31
32void chat::clear() {
33 vctChat.clear();
34}
35
36// returns true if the event was consumed, false if it should be passed on
37bool chat::handleEvent(ALLEGRO_EVENT e)
38{
39 ALLEGRO_KEYBOARD_STATE keys;
40 al_get_keyboard_state(&keys);
41
42 if (e.type == ALLEGRO_EVENT_KEY_DOWN) {
43 char newChar = 0;
44
45 if (ALLEGRO_KEY_A <= e.keyboard.keycode && e.keyboard.keycode <= ALLEGRO_KEY_Z) {
46 newChar = 'a'+e.keyboard.keycode-ALLEGRO_KEY_A;
47 if (al_key_down(&keys, ALLEGRO_KEY_LSHIFT) || al_key_down(&keys, ALLEGRO_KEY_RSHIFT))
48 newChar -= 32;
49 }
50 if (ALLEGRO_KEY_0 <= e.keyboard.keycode && e.keyboard.keycode <= ALLEGRO_KEY_9)
51 newChar = '0'+e.keyboard.keycode-ALLEGRO_KEY_0;
52
53 if (newChar != 0) {
54 strPrompt.append(1, newChar);
55 return true;
56 }
57
58 if (e.keyboard.keycode == ALLEGRO_KEY_ENTER) {
59 strEnteredInput = strPrompt;
60 strPrompt.clear();
61 return true;
62 }
63 }
64
65 return false;
66}
Note: See TracBrowser for help on using the repository browser.