rendered paste body
qboolean chat_team;
char chat_buffer[MAXCMDLINE];
char chat_buffer1[MAXCMDLINE]; // FS: Remember what we said
char chat_buffer2[MAXCMDLINE];
char chat_buffer3[MAXCMDLINE];
char chat_buffer_array[3][MAXCMDLINE]; // FS: Remember what we said
int chat_index = 0; // FS
int chat_bufferlen = 0;
void Key_Message (int key)
{
if ( key == K_ENTER || key == K_KP_ENTER )
{
if (chat_team)
Cbuf_AddText ("say_team \"");
else
Cbuf_AddText ("say_all \"");
Cbuf_AddText(chat_buffer);
Cbuf_AddText("\"\n");
#ifdef JPN
ImeSetMode2(FALSE);
#endif
cls.key_dest = key_game;
if (chat_index == 3)
{
strcpy(chat_buffer_array[chat_index], chat_buffer_array[chat_index-1]);
strcpy(chat_buffer_array[chat_index-1], chat_buffer_array[chat_index-2]);
chat_buffer_array[chat_index-2][0] = 0;
}
/*
if(chat_buffer2 != 0)
{
strcpy(chat_buffer3, chat_buffer2);
strcpy(chat_buffer2, chat_buffer1);
chat_buffer1[0] = 0;
}
else if (chat_buffer1 != 0)
{
strcpy(chat_buffer2, chat_buffer1);
chat_buffer1[0] = 0;
}
*/
// strcpy(chat_buffer1, chat_buffer); // FS: Copy it
strcpy(chat_buffer_array[1], chat_buffer); // FS: Copy it
chat_bufferlen = 0;
chat_buffer[0] = 0;
return;
}
if (key == K_UPARROW || key == K_RIGHTARROW) // FS: Remember last 3 things we typed
{
cls.key_dest = key_message;
/*
if (!stricmp(chat_buffer, chat_buffer1)) // FS: First buffer
{
if((strlen(chat_buffer2)) == 0)
strcpy(chat_buffer, chat_buffer1); // FS: Buffer 2 is null so stay at first
else
strcpy(chat_buffer, chat_buffer2);
}
else if (!stricmp(chat_buffer, chat_buffer2) && (strlen(chat_buffer2)) != 0)
{
if((strlen(chat_buffer3)) == 0)
strcpy(chat_buffer, chat_buffer2);
else
strcpy(chat_buffer, chat_buffer3);
}
else if (!stricmp(chat_buffer, chat_buffer3) && (strlen(chat_buffer3)) != 0)
{
strcpy(chat_buffer, chat_buffer3);
}
else
{
strcpy(chat_buffer, chat_buffer1);
}
*/
if (chat_index < 2 && chat_buffer_array[chat_index + 1][0])
{
chat_index++;
strcpy (chat_buffer, chat_buffer_array[chat_index]);
}
chat_bufferlen = (strlen(chat_buffer));
return;
}