marrub
/
Lithia
Archived
1
0
Fork 0
This repository has been archived on 2023-06-17. You can view files and clone it, but cannot push or open issues/pull-requests.
Lithia/source/Main/m_print.c

163 lines
3.2 KiB
C

// Copyright © 2016-2017 Graham Sanderson, all rights reserved.
#include "lith_common.h"
#include <stdio.h>
#define DrawSpriteBegin(name) \
do { \
if(name[0] == ':') \
{ \
ACS_BeginPrint(); \
ACS_BeginPrint(); \
ACS_PrintString("LITH"); \
ACS_PrintString(name); \
ACS_PrintLocalized(ACS_EndStrParam()); \
ACS_SetFont(ACS_EndStrParam()); \
} \
else \
ACS_SetFont(name); \
ACS_BeginPrint(); \
ACS_PrintChar('a'); \
ACS_MoreHudMessage(); \
} while(0)
//
// DrawSprite
//
stkcall void DrawSprite(__str name, int flags, int id, fixed x, fixed y, fixed hold)
{
DrawSpriteBegin(name);
ACS_OptHudMessage(flags|HUDMSG_NOTWITHFULLMAP, id, CR_UNTRANSLATED, x, y, hold);
ACS_EndHudMessage();
}
//
// DrawSpriteX
//
stkcall void DrawSpriteX(__str name, int flags, int id, fixed x, fixed y, fixed hold, fixed a1)
{
DrawSpriteBegin(name);
ACS_OptHudMessage(flags|HUDMSG_NOTWITHFULLMAP, id, CR_UNTRANSLATED, x, y, hold);
ACS_EndHudMessage(a1);
}
//
// DrawSpriteXX
//
stkcall void DrawSpriteXX(__str name, int flags, int id, fixed x, fixed y, fixed hold, fixed a1, fixed a2)
{
DrawSpriteBegin(name);
ACS_OptHudMessage(flags|HUDMSG_NOTWITHFULLMAP, id, CR_UNTRANSLATED, x, y, hold);
ACS_EndHudMessage(a1, a2);
}
//
// DrawSpriteXXX
//
stkcall void DrawSpriteXXX(__str name, int flags, int id, fixed x, fixed y, fixed hold, fixed a1, fixed a2, fixed a3)
{
DrawSpriteBegin(name);
ACS_OptHudMessage(flags|HUDMSG_NOTWITHFULLMAP, id, CR_UNTRANSLATED, x, y, hold);
ACS_EndHudMessage(a1, a2, a3);
}
//
// DrawSpritePlain
//
stkcall void DrawSpritePlain(__str name, int id, fixed x, fixed y, fixed hold)
{
DrawSpriteBegin(name);
ACS_OptHudMessage(HUDMSG_NOTWITHFULLMAP, id, CR_UNTRANSLATED, x, y, hold);
ACS_EndHudMessage();
}
//
// DrawSpriteAlpha
//
stkcall void DrawSpriteAlpha(__str name, int id, fixed x, fixed y, fixed hold, fixed alpha)
{
DrawSpriteBegin(name);
ACS_OptHudMessage(HUDMSG_ALPHA|HUDMSG_NOTWITHFULLMAP, id, CR_UNTRANSLATED, x, y, hold);
ACS_EndHudMessage(alpha);
}
//
// DrawSpriteFade
//
stkcall void DrawSpriteFade(__str name, int id, fixed x, fixed y, fixed hold, fixed fadetime)
{
DrawSpriteBegin(name);
ACS_OptHudMessage(HUDMSG_FADEOUT|HUDMSG_NOTWITHFULLMAP, id, CR_UNTRANSLATED, x, y, hold);
ACS_EndHudMessage(fadetime);
}
//
// HudMessage
//
void HudMessage(__str fmt, ...)
{
va_list vl;
ACS_BeginPrint();
va_start(vl, fmt);
__vnprintf_str(fmt, vl);
va_end(vl);
ACS_MoreHudMessage();
}
//
// HudMessageRainbows
//
void HudMessageRainbows(__str fmt, ...)
{
static char const chars[] = {'g', 'i', 'k', 'd', 'h', 't', 'r'};
va_list vl;
ACS_BeginPrint();
ACS_PrintChar('\C');
ACS_PrintChar(chars[(ACS_Timer() / 4) % countof(chars)]);
va_start(vl, fmt);
__vnprintf_str(fmt, vl);
va_end(vl);
ACS_MoreHudMessage();
}
//
// Log
//
void Log(__str fmt, ...)
{
va_list vl;
ACS_BeginPrint();
va_start(vl, fmt);
__vnprintf_str(fmt, vl);
va_end(vl);
ACS_EndLog();
}
//
// PrintBold
//
void PrintBold(__str fmt, ...)
{
va_list vl;
ACS_BeginPrint();
va_start(vl, fmt);
__vnprintf_str(fmt, vl);
va_end(vl);
ACS_EndPrintBold();
}
// EOF