Files
commandergenius/project/jni/application/sc2/src/uqm/comm.h

137 lines
2.9 KiB
C

/*
* 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. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _COMM_H
#define _COMM_H
#include "globdata.h"
#include "units.h"
#include "libs/compiler.h"
#include "libs/gfxlib.h"
#include "commglue.h"
// for CONVERSATION
#ifdef COMM_INTERNAL
#define SLIDER_Y 107
#define SLIDER_HEIGHT 15
#include "commanim.h"
extern LOCDATA CommData;
static inline BOOLEAN
haveTalkingAnim (void)
{
return CommData.AlienTalkDesc.NumFrames > 0;
}
static inline BOOLEAN
haveTransitionAnim (void)
{
return CommData.AlienTransitionDesc.NumFrames > 0;
}
static inline BOOLEAN
wantTalkingAnim (void)
{
return !(CommData.AlienTalkDesc.AnimFlags & PAUSE_TALKING);
}
static inline void
setRunTalkingAnim (void)
{
CommData.AlienTalkDesc.AnimFlags |= WAIT_TALKING;
}
static inline void
clearRunTalkingAnim (void)
{
CommData.AlienTalkDesc.AnimFlags &= ~WAIT_TALKING;
}
static inline BOOLEAN
runningTalkingAnim (void)
{
return (CommData.AlienTalkDesc.AnimFlags & WAIT_TALKING);
}
static inline void
setRunIntroAnim (void)
{
CommData.AlienTransitionDesc.AnimFlags |= TALK_INTRO;
}
static inline BOOLEAN
runningIntroAnim (void)
{
return (CommData.AlienTransitionDesc.AnimFlags & TALK_INTRO);
}
static inline void
setStopTalkingAnim (void)
{
CommData.AlienTalkDesc.AnimFlags |= TALK_DONE;
}
static inline void
clearStopTalkingAnim (void)
{
CommData.AlienTalkDesc.AnimFlags &= ~TALK_DONE;
}
static inline BOOLEAN
signaledStopTalkingAnim (void)
{
return CommData.AlienTalkDesc.AnimFlags & TALK_DONE;
}
#endif
#define TEXT_X_OFFS 1
#define TEXT_Y_OFFS 1
#define SIS_TEXT_WIDTH (SIS_SCREEN_WIDTH - (TEXT_X_OFFS << 1))
extern void init_communication (void);
extern void uninit_communication (void);
extern COUNT InitCommunication (CONVERSATION which_comm);
extern void RaceCommunication (void);
#define WAIT_TRACK_ALL ((COUNT)~0)
extern void AlienTalkSegue (COUNT wait_track);
BOOLEAN getLineWithinWidth(TEXT *pText, const char **startNext,
SIZE maxWidth, COUNT maxChars);
extern RECT CommWndRect; /* comm window rect */
typedef enum
{
CIM_CROSSFADE_SPACE,
CIM_CROSSFADE_WINDOW,
CIM_CROSSFADE_SCREEN,
CIM_FADE_IN_SCREEN,
CIM_DEFAULT = CIM_CROSSFADE_SPACE,
} CommIntroMode;
extern void SetCommIntroMode (CommIntroMode, TimeCount howLong);
extern void EnableTalkingAnim (BOOLEAN enable);
#endif /* _COMM_H */