[crossfire] channels

Mark Wedel mwedel at sonic.net
Tue Apr 26 01:41:10 CDT 2005


Brendan Lally wrote:
>
     
     
     >
     
      well, you could do filtering client side, but if that is the case then there 
     
     >
     
      are two different means of filtering comms.
     
     >
     
     
     >
     
      I intend to have a total of 3 different classes of channel.
     
     >
     
     
     >
     
      system
     
     >
     
      server
     
     >
     
      and player.
     
     >
     
     
     >
     
      system channels are the ones defined in c_chat.c currently.
     
     >
     
      server ones are ones that the server admin would be able to define. (shout and  
     
     >
     
      chat would be two of these, which would be the default, but big servers like 
     
     >
     
      mf and cat2 might want a 'helpme' channel, or a trade channel, or an announce 
     
     >
     
      channel, or a off-topic channel, or a roleplay channel, or what have you).
     
     >
     
      player ones are the ones I had working as of yesterday, they are simply for 
     
     >
     
      players to use as they see fit. 
     
     >
     
     
     >
     
      In IRC terms then, system messages are NOTICES, server messages are channel 
     
     >
     
      traffic, and player messages are actually kinda a cross between /msg and IM 
     
     >
     
      'chat's
     
     
  I guess the issue I see is that you add channels to basically every draw_info 
call, without there really being a need to do so.

  IMO, it would be sufficient to have channels just for the chat related stuff - 
that would have been a much more modest patch and probably basically given the 
level of functionality needed.

  From your list of defined COMM channels, there is either the case of the 
channel being vary narrowly focused (COMM_JOINQUIT) and in other cases, very 
broad (COMM_EFFECT, COMM_ACTION).

  There is nothing inherently wrong with the patch.  I just look at it and think 
"it's taken a lot of work to change all the new_draw_info() calls, but doesn't 
go far enough to actually fix up the client preference/styling side of things". 
  So with all those changes, the following item from the TODO list basically 
remains:

- Change draw_info so that server tells client what type of message it is
   instead of the color.  Client can then decide what color to draw it
   or other special handling.

  which will have to get done in the future.

  and I still don't like the fact that you have added subscribe ability to many 
messages which are currently priority 0 (you always get them).  I just don't see 
any compelling reason why those were put into channels - as said before, the 
problem is sure to arise that smeone will unsubscribe, and all sorts of problems 
arise.  At some level, you don't give users the choice to disable basic 
functionality, and IMO this falls into the case.

  The obvious fix is then to make it some certain channels can't be 
unsubscribed, but then the question is what is the purpose of those channels.

  I'm just stuck looking at patch and thinking that to handle that TODO point 
above, most of the changes you make will be undone/redone, which does't make me 
really happy.  But probably isn't a reason to necessary not do the patch - it 
just doesn't make me really happy.

  Also, just as another note, the reason the newclient.h file (and NDI_ values 
exist) is because both the client and server must have a common reference for 
what values mean.  So if you send the channel info along the draw info (which I 
agree there is space in the value to do so), it does limited good unless the 
newclient.h file is updated to know what the values mean (the reason they are 
all in that file is that file can then just be copied to the client.)  That is 
also one reason I like the idea if extending the NDI flags, since that mechanism 
and definition already are established in the protocl and file itself.



    
    


More information about the crossfire mailing list