shithub: rott

ref: d7f038fe0566c8239ec0b2ca1e56686476e82e09
dir: /src/rt_msg.h/

View raw version
/*
Copyright (C) 1994-1995  Apogee Software, Ltd.
Copyright (C) 2002-2015  icculus.org, GNU/Linux port
Copyright (C) 2017-2018  Steven LeVesque

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _rt_msg_public
#define _rt_msg_public

#define MSG_PERMANENT     0x80
#define MSG_NODELETE      0x40
#define MSG_PRIORITY( x ) ( ( x ) & 0x3f )

#define PERMANENT_MSG( x ) ( ( x ) & MSG_PERMANENT )
#define DELETABLE_MSG( x ) ( ( x ) & MSG_NODELETE )

#define MSG_MODEM          ( 1 | MSG_PERMANENT )
#define MSG_SYSTEM         ( 2 )
#define MSG_REMOTERIDICULE ( 3 )
#define MSG_REMOTE         ( 4 | MSG_NODELETE )
#define MSG_GAME           ( 5 | MSG_NODELETE )
#define MSG_DOOR           ( 6 )
#define MSG_CHEAT          ( 7 )
#define MSG_NAMEMENU       ( 8 | MSG_PERMANENT | MSG_NODELETE )
#define MSG_QUIT           ( 9 )
#define MSG_MACRO          ( 10 )
#define MSG_BONUS1         ( 11 )
#define MSG_BONUS          ( 12 )
#define MSG_MSGSYSTEM      ( 13 )

#define MAXMSGS 15

typedef struct msgt
{
    byte active;
    byte flags;
    int  tictime;
    char * text;
} messagetype;

extern messagetype Messages[MAXMSGS];

extern boolean MessagesEnabled;


void RestoreMessageBackground( void );
void DrawMessages ( void );
int AddMessage (char * text, int flags);
void InitializeMessages ( void );
void ResetMessageTime ( void );
int StringLength (char *string);
void UpdateModemMessage (int num, char c);
void ModemMessageDeleteChar (int num);
void DeleteMessage ( int num );
void FinishModemMessage( int num, boolean send );
void DeletePriorityMessage( int flags );

#endif