[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netPanzer-CVS] netpanzer/src Lib/IRCLobby/IRCLobby.cpp Lib/IRC...
From: |
Hankin Chick |
Subject: |
[netPanzer-CVS] netpanzer/src Lib/IRCLobby/IRCLobby.cpp Lib/IRC... |
Date: |
Thu, 20 Nov 2003 07:00:14 -0500 |
CVSROOT: /cvsroot/netpanzer
Module name: netpanzer
Branch:
Changes by: Hankin Chick <address@hidden> 03/11/20 07:00:13
Modified files:
src/Lib/IRCLobby: IRCLobby.cpp GameServer.hpp
src/NetPanzer/Views/MainMenu/Multi: IRCLobbyView.cpp
IRCLobbyView.hpp
Log message:
fix for ircname showing up instead of username
added scrollie for chat messages as suggested by bjmg
Patches:
Index: netpanzer/src/Lib/IRCLobby/GameServer.hpp
diff -u netpanzer/src/Lib/IRCLobby/GameServer.hpp:1.1
netpanzer/src/Lib/IRCLobby/GameServer.hpp:1.2
--- netpanzer/src/Lib/IRCLobby/GameServer.hpp:1.1 Wed Nov 19 07:24:41 2003
+++ netpanzer/src/Lib/IRCLobby/GameServer.hpp Thu Nov 20 07:00:13 2003
@@ -26,23 +26,28 @@
{
public:
GameServer(const std::string& newhost, int newport,
- const std::string& newuser, const std::string& newmap,
+ const std::string& newuser,
+ const std::string& newrealuser,
+ const std::string& newmap,
int newplayercount, int newmaxplayers)
- : host(newhost), port(newport), user(newuser), map(newmap),
+ : host(newhost), port(newport), irc_user(newuser),
+ real_user(newrealuser), map(newmap),
playercount(newplayercount), max_players(newmaxplayers)
{
std::time(&last_update);
}
GameServer::GameServer(const GameServer& other)
- : host(other.host), port(other.port), user(other.user), map(other.map),
+ : host(other.host), port(other.port), irc_user(other.irc_user),
+ real_user(other.real_user), map(other.map),
last_update(other.last_update), playercount(other.playercount),
max_players(other.max_players)
{ }
std::string host;
int port;
- std::string user;
+ std::string irc_user;
+ std::string real_user;
std::string map;
std::time_t last_update;
int playercount;
Index: netpanzer/src/Lib/IRCLobby/IRCLobby.cpp
diff -u netpanzer/src/Lib/IRCLobby/IRCLobby.cpp:1.2
netpanzer/src/Lib/IRCLobby/IRCLobby.cpp:1.3
--- netpanzer/src/Lib/IRCLobby/IRCLobby.cpp:1.2 Thu Nov 20 04:37:38 2003
+++ netpanzer/src/Lib/IRCLobby/IRCLobby.cpp Thu Nov 20 07:00:12 2003
@@ -386,7 +386,7 @@
assert(irc_server_socket != 0);
char buf[1024];
- char *host, *mess, *host_end, *user_end, *code,*user,*real_user;
+ char *host, *mess, *host_end, *user_end, *code,*irc_user,*real_user;
readIRCLine(buf, sizeof(buf));
#ifndef WITHOUT_NETPANZER
@@ -396,12 +396,12 @@
if(buf[0]!=':')
return;
- real_user=user=buf+1;
- if(strncmp(user,nickname_prefix,sizeof(nickname_prefix)-1)==0) {
- user+=sizeof(nickname_prefix)-1;
+ real_user=irc_user=buf+1;
+ if(strncmp(real_user,nickname_prefix,sizeof(nickname_prefix)-1)==0) {
+ real_user+=sizeof(nickname_prefix)-1;
}
- code=user;
+ code=irc_user;
// skip 1 word and spaces behind it
while(*code && !isspace(*code)) { code++; }
while(*code && isspace(*code)) { code++; }
@@ -480,7 +480,7 @@
*user_end++=0;
if(strcmp(code,"JOIN")==0) {
- std::string joined(user);
+ std::string joined(real_user);
joined+=" has arrived in lobby";
addChatMessage("",joined);
#ifndef WITHOUT_NETPANZER
@@ -491,7 +491,7 @@
return;
}
if(strcmp(code,"PART")==0 || strcmp(code,"QUIT")==0) {
- std::string leave(user);
+ std::string leave(real_user);
leave+=" has left the lobby";
addChatMessage("",leave);
#ifndef WITHOUT_NETPANZER
@@ -514,10 +514,10 @@
if(mess[0]=='#') {
// this is a chat message
- addChatMessage(user, mess+1);
+ addChatMessage(real_user, mess+1);
#ifndef WITHOUT_NETPANZER
if(gameconfig->hostorjoin== _game_session_host) {
- LOG(("IRC message:%s:%s",user,mess+1));
+ LOG(("IRC message:%s:%s",real_user,mess+1));
}
#endif
@@ -530,7 +530,7 @@
if(strcmp(mess+1, ask_server_running_mess)==0) {
if(gameconfig->hostorjoin== _game_session_host) {
// reply with server details
- sendServerInfo(real_user);
+ sendServerInfo(irc_user);
}
}
else
@@ -562,18 +562,19 @@
SDL_mutexP(game_servers_mutex);
game_servers->push_back(
GameServer(host, port,
- real_user, map, players, max_players));
+ irc_user,real_user,map, players, max_players));
SDL_mutexV(game_servers_mutex);
}
else {
- server->user = real_user;
+ server->irc_user = irc_user;
+ server->real_user = real_user;
server->map = map;
server->playercount = players;
server->max_players = max_players;
}
}
else if(strncmp(mess+1,leaving_mess,sizeof(leaving_mess)-1)==0) {
- addChatMessage(user,mess);
+ addChatMessage(real_user,mess);
}
}
}
@@ -626,7 +627,7 @@
char *buf_end=buf+buf_len-1;
char ch;
char *buf_upto=buf;
-
+
SDLNet_SocketSet sock_set=SDLNet_AllocSocketSet(1);
SDLNet_TCP_AddSocket(sock_set,irc_server_socket);
@@ -655,6 +656,7 @@
*buf_upto++=ch;
}
} catch(std::exception& e) {
+ buf[0]=0;
SDLNet_FreeSocketSet(sock_set);
throw;
}
Index: netpanzer/src/NetPanzer/Views/MainMenu/Multi/IRCLobbyView.cpp
diff -u netpanzer/src/NetPanzer/Views/MainMenu/Multi/IRCLobbyView.cpp:1.12
netpanzer/src/NetPanzer/Views/MainMenu/Multi/IRCLobbyView.cpp:1.13
--- netpanzer/src/NetPanzer/Views/MainMenu/Multi/IRCLobbyView.cpp:1.12 Thu Nov
20 04:37:37 2003
+++ netpanzer/src/NetPanzer/Views/MainMenu/Multi/IRCLobbyView.cpp Thu Nov
20 07:00:13 2003
@@ -34,6 +34,7 @@
{
lobby_connection=0;
change_name=0;
+ skipChatLines=0;
lobby_view_height=184;
total_displayed_servers=0;
setSearchName("IRCLobbyView");
@@ -61,17 +62,25 @@
server_list_end_x=(getClientRect().getSizeX()-12);
iXY size(12, 12);
-
iXY pos(getClientRect().getSizeX() - size.x, 0);
- upButton.setLabel("-");
- upButton.setBounds(iRect(pos, pos + size));
- add(&upButton);
-
- pos = iXY(getClientRect().getSizeX() - size.x, server_list_end_y-size.y);
- downButton.setLabel("+");
- downButton.setBounds(iRect(pos, pos + size));
- add(&downButton);
-
+ serverUpButton.setLabel("-");
+ serverUpButton.setBounds(iRect(pos, pos + size));
+ add(&serverUpButton);
+
+ pos.y= server_list_end_y-size.y;
+ serverDownButton.setLabel("+");
+ serverDownButton.setBounds(iRect(pos, pos + size));
+ add(&serverDownButton);
+
+ pos.y+=size.y;
+ chatUpButton.setLabel("-");
+ chatUpButton.setBounds(iRect(pos, pos + size));
+ add(&chatUpButton);
+
+ pos.y = chat_list_end_y-size.y;
+ chatDownButton.setLabel("+");
+ chatDownButton.setBounds(iRect(pos, pos + size));
+ add(&chatDownButton);
// XXX ugly ugly ugly
if(!lobby_view)
@@ -113,7 +122,7 @@
std::stringstream playerstr;
playerstr << server->playercount << "/" << server->max_players;
- clientArea.bltString(iXY(0,y),server->user.c_str(), Color::white);
+ clientArea.bltString(iXY(0,y),server->real_user.c_str(),
Color::white);
clientArea.bltString(iXY(140,y),playerstr.str().c_str(),
Color::white);
clientArea.bltString(iXY(200,y),server->map.c_str(), Color::white);
@@ -128,8 +137,11 @@
std::list<IRCChatMessage>::reverse_iterator m;
y = chat_list_end_y - Surface::getFontHeight();
+ int skipped=0;
for(m = lobby_connection->chat_messages.rbegin();
- m != lobby_connection->chat_messages.rend(); m++) {
+ skipped < skipChatLines && m !=
lobby_connection->chat_messages.rend(); m++,skipped++) {
+ }
+ for(; m != lobby_connection->chat_messages.rend(); m++) {
std::stringstream temp;
temp << m->getUser() << ": " << m->getMessage();
@@ -171,15 +183,23 @@
void IRCLobbyView::actionPerformed(mMouseEvent me)
{
if (me.getID() == mMouseEvent::MOUSE_EVENT_CLICKED) {
- if (me.getSource(upButton)) {
+ if (me.getSource(serverUpButton)) {
if (--topViewableItem < 0) {
topViewableItem = 0;
}
- } else if (me.getSource(downButton)) {
+ } else if (me.getSource(serverDownButton)) {
int max_size=lobby_connection->game_servers->size()-1;
++topViewableItem;
if (topViewableItem >= max_size) {
topViewableItem = max_size;
+ }
+ } else if (me.getSource(chatUpButton)) {
+ if(++skipChatLines>=((int)lobby_connection->chat_messages.size()))
{
+ skipChatLines--;
+ }
+ } else if (me.getSource(chatDownButton)) {
+ if (--skipChatLines <= 0) {
+ skipChatLines = 0;
}
}
}
Index: netpanzer/src/NetPanzer/Views/MainMenu/Multi/IRCLobbyView.hpp
diff -u netpanzer/src/NetPanzer/Views/MainMenu/Multi/IRCLobbyView.hpp:1.9
netpanzer/src/NetPanzer/Views/MainMenu/Multi/IRCLobbyView.hpp:1.10
--- netpanzer/src/NetPanzer/Views/MainMenu/Multi/IRCLobbyView.hpp:1.9 Wed Nov
19 07:21:25 2003
+++ netpanzer/src/NetPanzer/Views/MainMenu/Multi/IRCLobbyView.hpp Thu Nov
20 07:00:13 2003
@@ -64,9 +64,12 @@
std::string error_message;
cInputFieldString szChat;
IRCLobby *lobby_connection;
+ int skipChatLines;
- Button upButton;
- Button downButton;
+ Button serverUpButton;
+ Button serverDownButton;
+ Button chatUpButton;
+ Button chatDownButton;
};
extern IRCLobbyView* lobby_view;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [netPanzer-CVS] netpanzer/src Lib/IRCLobby/IRCLobby.cpp Lib/IRC...,
Hankin Chick <=