- completion of controls menu

- some message printing cleanup in SW frontend. This still has its native console that needs to be removed.
This commit is contained in:
Christoph Oelckers 2019-12-03 00:57:03 +01:00
parent 79ced02d36
commit 65ae00fb74
19 changed files with 265 additions and 467 deletions

View file

@ -831,282 +831,6 @@ vec2_t G_ScreenTextShadow(int32_t sx, int32_t sy,
return size;
}
#if 0
void G_PrintGameText(int32_t tile, int32_t x, int32_t y, const char *t,
int32_t s, int32_t p, int32_t o,
int32_t x1, int32_t y1, int32_t x2, int32_t y2,
int32_t z, int32_t a)
{
int32_t f = TEXT_GAMETEXTNUMHACK;
if (t == NULL)
return;
if (!(o & ROTATESPRITE_FULL16))
{
x <<= 16;
y <<= 16;
}
if (x == (160<<16))
f |= TEXT_XCENTER;
G_ScreenText(tile, x, y, z, 0, 0, t, s, p, 2|o|ROTATESPRITE_FULL16, a, MF_Bluefont.emptychar.x, MF_Bluefont.emptychar.y, MF_Bluefont.between.x, MF_Bluefont.between.y, MF_Bluefont.textflags|f, x1, y1, x2, y2);
}
vec2_t gametext_(int32_t x, int32_t y, const char *t, int32_t s, int32_t p, int32_t o, int32_t a, int32_t f)
{
return G_ScreenText(MF_Bluefont.tilenum, x, y, MF_Bluefont.zoom, 0, 0, t, s, p, o|2|8|16|ROTATESPRITE_FULL16, a, MF_Bluefont.emptychar.x, MF_Bluefont.emptychar.y, MF_Bluefont.between.x, MF_Bluefont.between.y, MF_Bluefont.textflags|f, 0, 0, xdim-1, ydim-1);
}
void gametext_simple(int32_t x, int32_t y, const char *t)
{
G_ScreenText(MF_Bluefont.tilenum, x, y, MF_Bluefont.zoom, 0, 0, t, 0, MF_Bluefont.pal, 2|8|16|ROTATESPRITE_FULL16, 0, MF_Bluefont.emptychar.x, MF_Bluefont.emptychar.y, MF_Bluefont.between.x, MF_Bluefont.between.y, MF_Bluefont.textflags, 0, 0, xdim-1, ydim-1);
}
vec2_t mpgametext(int32_t x, int32_t y, const char *t, int32_t s, int32_t o, int32_t a, int32_t f)
{
return G_ScreenText(MF_Bluefont.tilenum, x, y, textsc(MF_Bluefont.zoom), 0, 0, t, s, MF_Bluefont.pal, o|2|8|16|ROTATESPRITE_FULL16, a, MF_Bluefont.emptychar.x, MF_Bluefont.emptychar.y, MF_Bluefont.between.x, MF_Bluefont.between.y, MF_Bluefont.textflags|f, 0, 0, xdim-1, ydim-1);
}
vec2_t mpgametextsize(const char *t, int32_t f)
{
return G_ScreenTextSize(MF_Bluefont.tilenum, 0, 0, textsc(MF_Bluefont.zoom), 0, t, 2|8|16|ROTATESPRITE_FULL16, MF_Bluefont.emptychar.x, MF_Bluefont.emptychar.y, MF_Bluefont.between.x, MF_Bluefont.between.y, MF_Bluefont.textflags|f, 0, 0, xdim-1, ydim-1);
}
// minitext_yofs: in hud_scale-independent, (<<16)-scaled, 0-200-normalized y coords,
// (sb&ROTATESPRITE_MAX) only.
int32_t minitext_yofs = 0;
int32_t minitext_lowercase = 0;
int32_t minitext_(int32_t x, int32_t y, const char *t, int32_t s, int32_t p, int32_t sb)
{
vec2_t dim;
int32_t z = MF_Minifont.zoom;
if (t == NULL)
{
OSD_Printf("minitext: NULL text!\n");
return 0;
}
if (!(sb & ROTATESPRITE_FULL16))
{
x<<=16;
y<<=16;
}
if (sb & ROTATESPRITE_MAX)
{
x = sbarx16(x);
y = minitext_yofs+sbary16(y);
z = sbarsc(z);
}
sb &= (ROTATESPRITE_MAX-1)|RS_CENTERORIGIN;
dim = G_ScreenText(MF_Minifont.tilenum, x, y, z, 0, 0, t, s, p, sb|ROTATESPRITE_FULL16, 0, MF_Minifont.emptychar.x, MF_Minifont.emptychar.y, MF_Minifont.between.x, MF_Minifont.between.y, MF_Minifont.textflags, 0, 0, xdim-1, ydim-1);
x += dim.x;
if (!(sb & ROTATESPRITE_FULL16))
x >>= 16;
return x;
}
void menutext_(int32_t x, int32_t y, int32_t s, char const *t, int32_t o, int32_t f)
{
G_ScreenText(MF_Redfont.tilenum, x, y - (12<<16), MF_Redfont.zoom, 0, 0, t, s, MF_Redfont.pal, o|ROTATESPRITE_FULL16, 0, MF_Redfont.emptychar.x, MF_Redfont.emptychar.y, MF_Redfont.between.x, MF_Redfont.between.y, f|MF_Redfont.textflags|TEXT_LITERALESCAPE, 0, 0, xdim-1, ydim-1);
}
void captionmenutext(int32_t x, int32_t y, char const *t)
{
G_ScreenText(MF_Redfont.tilenum, x, y - (12<<16), MF_Redfont.zoom, 0, 0, t, 0, ud.menutitle_pal, 2|8|16|ROTATESPRITE_FULL16, 0, MF_Redfont.emptychar.x, MF_Redfont.emptychar.y, MF_Redfont.between.x, MF_Redfont.between.y, MF_Redfont.textflags|TEXT_LITERALESCAPE|TEXT_XCENTER|TEXT_YCENTER, 0, 0, xdim-1, ydim-1);
}
int32_t user_quote_time[MAXUSERQUOTES];
static char user_quote[MAXUSERQUOTES][178];
void G_AddUserQuote(const char *daquote)
{
int32_t i;
for (i=MAXUSERQUOTES-1; i>0; i--)
{
Bstrcpy(user_quote[i], user_quote[i-1]);
user_quote_time[i] = user_quote_time[i-1];
}
Bstrcpy(user_quote[0], daquote);
OSD_Printf("%s\n", daquote);
user_quote_time[0] = hud_messagetime;
pub = NUMPAGES;
}
int32_t textsc(int32_t sc)
{
return scale(sc, hud_textscale, 400);
}
#define FTAOPAQUETIME 30
// alpha increments of 8 --> 256 / 8 = 32 --> round up to power of 2 --> 32 --> divide by 2 --> 16 alphatabs required
static inline int32_t textsh(uint32_t t)
{
return (hud_glowingquotes && ((videoGetRenderMode() == REND_CLASSIC && numalphatabs < 15) || t >= FTAOPAQUETIME))
? sintable[(t << 7) & 2047] >> 11
: (sintable[(FTAOPAQUETIME << 7) & 2047] >> 11);
}
// orientation flags depending on time that a quote has still to be displayed
static inline int32_t texto(int32_t t)
{
if (videoGetRenderMode() != REND_CLASSIC || numalphatabs >= 15 || t > 4)
return 0;
if (t > 2)
return 1;
return 1|32;
}
static inline int32_t texta(int32_t t)
{
if (videoGetRenderMode() == REND_CLASSIC && numalphatabs < 15)
return 0;
return 255 - clamp(t<<3, 0, 255);
}
static FORCE_INLINE int32_t text_ypos(void)
{
if (hud_position == 1 && ud.screen_size == 4 && ud.althud == 1)
return 32<<16;
#ifdef GEKKO
return 16<<16;
#elif defined EDUKE32_TOUCH_DEVICES
return 24<<16;
#else
return 1<<16;
#endif
}
// this handles both multiplayer and item pickup message type text
// both are passed on to gametext
void G_PrintGameQuotes(int32_t snum)
{
auto const ps = g_player[snum].ps;
const int32_t reserved_quote = (ps->ftq >= QUOTE_RESERVED && ps->ftq <= QUOTE_RESERVED3);
// NOTE: QUOTE_RESERVED4 is not included.
int32_t const ybase = (fragbarheight()<<16) + text_ypos();
int32_t height = 0;
int32_t k = ps->fta;
// primary quote
do
{
if (k <= 1)
break;
if (EDUKE32_PREDICT_FALSE(apStrings[ps->ftq] == NULL))
{
OSD_Printf(OSD_ERROR "%s %d null quote %d\n", "screentext:", __LINE__, ps->ftq);
break;
}
int32_t y = ybase;
if (reserved_quote)
{
#ifdef SPLITSCREEN_MOD_HACKS
if (!g_fakeMultiMode)
y = 140<<16;
else
y = 70<<16;
#else
y = 140<<16;
#endif
}
int32_t pal = 0;
int32_t x = 160<<16;
#ifdef SPLITSCREEN_MOD_HACKS
if (g_fakeMultiMode)
{
pal = g_player[snum].pcolor;
const int32_t sidebyside = ud.screen_size != 0;
if (sidebyside)
x = snum == 1 ? 240<<16 : 80<<16;
else if (snum == 1)
y += 100<<16;
}
#endif
height = gametext_(x, y, apStrings[ps->ftq], textsh(k), pal, texto(k), texta(k), TEXT_XCENTER).y + (1<<16);
}
while (0);
// userquotes
int32_t y = ybase;
if (k > 1 && !reserved_quote)
y += k <= 8 ? (height * (k-1))>>3 : height;
for (int i = 0; i < MAXUSERQUOTES; i++)
{
k = user_quote_time[i];
if (k <= 0)
continue;
// int32_t const sh = hud_glowingquotes ? sintable[((totalclock+(i<<2))<<5)&2047]>>11 : 0;
height = mpgametext(mpgametext_x, y, user_quote[i], textsh(k), texto(k), texta(k), TEXT_LINEWRAP).y + textsc(1<<16);
y += k <= 4 ? (height * (k-1))>>2 : height;
}
}
void P_DoQuote(int32_t q, DukePlayer_t *p)
{
int32_t cq = 0;
if (hud_messages == 0 || q < 0 || !(p->gm & MODE_GAME))
return;
if (q & MAXQUOTES)
{
cq = 1;
q &= ~MAXQUOTES;
}
if (EDUKE32_PREDICT_FALSE(apStrings[q] == NULL))
{
OSD_Printf(OSD_ERROR "%s %d null quote %d\n", "screentext:", __LINE__, q);
return;
}
if (p->fta > 0 && q != QUOTE_RESERVED && q != QUOTE_RESERVED2)
if (p->ftq == QUOTE_RESERVED || p->ftq == QUOTE_RESERVED2) return;
p->fta = 100;
if (p->ftq != q)
{
if (p == g_player[screenpeek].ps && apStrings[q][0] != '\0')
OSD_Printf(cq ? OSDTEXT_DEFAULT "%s\n" : "%s\n", apStrings[q]);
p->ftq = q;
}
pub = NUMPAGES;
pus = NUMPAGES;
}
#endif
END_BLD_NS

View file

@ -67,14 +67,11 @@ enum GameFunction_t
gamefunc_Quick_Kick,
gamefunc_Next_Weapon,
gamefunc_Previous_Weapon,
gamefunc_Unused1, // was gamefunc_Console. Cannot be deleted thanks to CON usuing numeric indiced for addressing this list.
gamefunc_Show_DukeMatch_Scores,
gamefunc_Dpad_Select,
gamefunc_Dpad_Aiming,
gamefunc_AutoRun,
gamefunc_Last_Weapon,
gamefunc_Unused2, // was quickload/quicksave
gamefunc_Unused3,
gamefunc_Alt_Weapon,
gamefunc_Third_Person_View,
gamefunc_See_Chase_View = gamefunc_Third_Person_View,

View file

@ -47,6 +47,8 @@
#include "rts.h"
#include "stats.h"
#include "z_music.h"
#include "c_dispatch.h"
#include "gstrings.h"
/* Notes
@ -240,7 +242,32 @@ CVARD(Bool, hud_position, false, CVAR_ARCHIVE, "aligns the status bar to the bot
CVARD(Bool, hud_bgstretch, false, CVAR_ARCHIVE|CVAR_FRONTEND_DUKELIKE, "enable/disable background image stretching in wide resolutions")
CVARD(Int, hud_messagetime, 120, CVAR_ARCHIVE|CVAR_FRONTEND_DUKELIKE, "length of time to display multiplayer chat messages")
// Should be available to all games - the message handling should also be consolidated into a game independent feature.
/*CUSTOM_*/CVARD(Bool, hud_messages, true, CVAR_ARCHIVE | CVAR_FRONTEND_BLOOD|CVAR_FRONTEND_SHADOWWARRIOR, "enable/disable showing messages")
/*CUSTOM_*/CVARD(Bool, hud_messages, true, CVAR_ARCHIVE, "enable/disable showing messages")
CVAR(Bool, hud_messagenative, true, CVAR_ARCHIVE)
CCMD (togglemessages)
{
// Fixme: Needs to redirect to the frontend specific routine to handle on-screen messages.
// Ideally as an option to use the ZDoom-style notification.
// P_DoQuote(fta ? QUOTE_MESSAGES_ON : QUOTE_MESSAGES_OFF, &myplayer); (Duke/Redneck - beware of crappy implementation!!!
// void viewSetMessage(const char *pMessage, const int pal, const MESSAGE_PRIORITY priority) Blood
// void viewSetSystemMessage(const char* pMessage, ...) alternative
// void PutStringInfo(PLAYERp pp, const char *string) SW
if (hud_messages)
{
Printf (128, "%s\n", GStrings("MSGOFF"));
hud_messages = false;
}
else
{
Printf (128, "%s\n", GStrings("MSGON"));
hud_messages = true;
}
}
//{
//Blood::gGameMessageMgr.SetState(self); // this is for terminaing an active message. Cannot be done like this because CVARs are global.
//}
@ -487,6 +514,20 @@ CUSTOM_CVARD(Float, vid_brightness, 0.f, CVAR_ARCHIVE | CVAR_GLOBALCONFIG, "adju
// todo: tell the system to update
}
CCMD (bumpgamma)
{
// [RH] Gamma correction tables are now generated on the fly for *any* gamma level
// Q: What are reasonable limits to use here?
float newgamma = vid_gamma + 0.1f;
if (newgamma > 3.0)
newgamma = 1.0;
vid_gamma = newgamma;
Printf ("Gamma correction level %g\n", newgamma);
}
//{ "vid_contrast","adjusts contrast component of gamma ramp",(void *) &vid_contrast, CVAR_FLOAT|CVAR_FUNCPTR, 0, 10 },
//{ "vid_brightness","adjusts brightness component of gamma ramp",(void *) &vid_brightness, CVAR_FLOAT|CVAR_FUNCPTR, 0, 10 },

View file

@ -491,6 +491,16 @@ bool M_SetMenu(FName menu, int param, FName caller)
return;
}
#endif
case NAME_QuitMenu:
// The separate menu class no longer exists but the name still needs support for existing mods.
C_DoCommand("menu_quit");
return true;
case NAME_EndgameMenu:
// The separate menu class no longer exists but the name still needs support for existing mods.
C_DoCommand("memnu_endgame");
return true;
}
// End of special checks

View file

@ -377,3 +377,89 @@ DMenu* CreateMessageBoxMenu(DMenu* parent, const char* message, int messagemode,
return newmenu;
}
#if 0
void ActivateEndGameMenu()
{
FString tempstring = GStrings(netgame ? "NETEND" : "ENDGAME");
DMenu *newmenu = CreateMessageBoxMenu(CurrentMenu, tempstring, 0, false, NAME_None, []()
{
M_ClearMenus();
if (!netgame)
{
if (demorecording)
G_CheckDemoStatus();
D_StartTitle();
}
});
M_ActivateMenu(newmenu);
}
CCMD (menu_endgame)
{ // F7
if (!usergame)
{
S_Sound (CHAN_VOICE | CHAN_UI, "menu/invalid", snd_menuvolume, ATTN_NONE);
return;
}
//M_StartControlPanel (true);
S_Sound (CHAN_VOICE | CHAN_UI, "menu/activate", snd_menuvolume, ATTN_NONE);
ActivateEndGameMenu();
}
//=============================================================================
//
//
//
//=============================================================================
CCMD (menu_quit)
{ // F10
if (m_quickexit)
{
ST_Endoom();
}
M_StartControlPanel (true);
const size_t messageindex = static_cast<size_t>(gametic) % gameinfo.quitmessages.Size();
FString EndString;
const char *msg = gameinfo.quitmessages[messageindex];
if (msg[0] == '$')
{
if (msg[1] == '*')
{
EndString = GStrings(msg + 2);
}
else
{
EndString.Format("%s\n\n%s", GStrings(msg + 1), GStrings("DOSY"));
}
}
else EndString = gameinfo.quitmessages[messageindex];
DMenu *newmenu = CreateMessageBoxMenu(CurrentMenu, EndString, 0, false, NAME_None, []()
{
if (!netgame)
{
if (gameinfo.quitSound.IsNotEmpty())
{
S_Sound(CHAN_VOICE | CHAN_UI, gameinfo.quitSound, snd_menuvolume, ATTN_NONE);
I_WaitVBL(105);
}
}
ST_Endoom();
});
M_ActivateMenu(newmenu);
}
#endif

View file

@ -38,3 +38,5 @@ xx(CustomSubMenu7)
xx(UsermapMenu)
xx(StartGame)
xx(ImageScroller)
xx(QuitMenu)
xx(EndgameMenu)

View file

@ -39,6 +39,9 @@ enum
void I_Error(const char *fmt, ...) ATTRIBUTE((format(printf,1,2)));
// This really could need some cleanup - the main problem is that it'd create
// lots of potential for merge conflicts.
int PrintString (int iprintlevel, const char *outline);
int Printf (int printlevel, const char *format, ...) ATTRIBUTE((format(printf,2,3)));
int Printf (const char *format, ...) ATTRIBUTE((format(printf,1,2)));
@ -48,26 +51,28 @@ int DPrintf (int level, const char *format, ...) ATTRIBUTE((format(printf,2,3)))
void OSD_Printf(const char *format, ...) ATTRIBUTE((format(printf,1,2)));
template<class... Args>
inline void initprintf(const char *format, Args&&... args) ATTRIBUTE((format(printf,1,2)))
inline void initprintf(const char *format, Args&&... args) //ATTRIBUTE((format(printf,1,2)))
{
OSD_Printf(format, std::forward<Args>(args)...);
}
// This was a define before - which should be avoided. Used by Shadow Warrior
template<class... Args>
inline void buildprintf(const char *format, Args&&... args) ATTRIBUTE((format(printf,1,2)))
inline void buildprintf(const char *format, Args&&... args) //ATTRIBUTE((format(printf,1,2)))
{
OSD_Printf(format, std::forward<Args>(args)...);
}
inline void initputs(const char *s)
{
PrintString(PRINT_HIGH, s);
PrintString(PRINT_HIGH|PRINT_NONOTIFY, s);
}
inline void buildputs(const char *s)
{
PrintString(PRINT_HIGH, s);
PrintString(PRINT_HIGH|PRINT_NONOTIFY, s);
}
void debugprintf(const char* f, ...); // Prints to the debugger's log.

View file

@ -4700,16 +4700,6 @@ void G_HandleLocalKeys(void)
P_DoQuote(QUOTE_VIEW_MODE_OFF + myplayer.over_shoulder_on, &myplayer);
}
if (inputState.UnboundKeyPressed(sc_F8))
{
inputState.ClearKeyStatus(sc_F8);
int const fta = !hud_messages;
hud_messages = 1;
P_DoQuote(fta ? QUOTE_MESSAGES_ON : QUOTE_MESSAGES_OFF, &myplayer);
hud_messages = fta;
}
if (ud.overhead_on != 0)
{

View file

@ -6247,16 +6247,6 @@ void G_HandleLocalKeys(void)
}
}
if (inputState.UnboundKeyPressed(sc_F8))
{
inputState.ClearKeyStatus(sc_F8);
int const fta = !hud_messages;
hud_messages = 1;
P_DoQuote(fta ? QUOTE_MESSAGES_ON : QUOTE_MESSAGES_OFF, g_player[myconnectindex].ps);
hud_messages = fta;
}
if (ud.overhead_on != 0)
{
int const timerOffset = ((int) totalclock - nonsharedtimer);

View file

@ -250,38 +250,6 @@ SWBOOL IsCommand(const char *str)
return FALSE;
}
//
// Sends a message to the user quote array
//
void CON_Message(const char *message, ...)
{
va_list argptr;
va_start(argptr,message);
vsprintf(&con_message[0],message,argptr);
va_end(argptr);
// Send message to user quote array for immediate display
adduserquote(&con_message[0]);
}
//
// Sends a message to the console quote array
//
void CON_ConMessage(const char *message, ...)
{
va_list argptr;
va_start(argptr,message);
vsprintf(&con_message[0],message,argptr);
va_end(argptr);
// Send message to user quote array for immediate display
addconquote(&con_message[0]);
}
//
// Stores user arguments passed in on the command line for later inspection
//
@ -389,7 +357,7 @@ void CON_ProcessUserCommand(void)
}
if (ConPanel)
CON_ConMessage("Syntax Error or Command not enabled!");
OSD_Printf("Syntax Error or Command not enabled!");
}
//
@ -437,7 +405,7 @@ SWBOOL CheckValidSprite(short SpriteNum)
{
if (SpriteNum < 0 || SpriteNum > 6144)
{
CON_ConMessage("ERROR: Sprite %d is out of range.",SpriteNum);
OSD_Printf("ERROR: Sprite %d is out of range.",SpriteNum);
return FALSE;
}
return TRUE;
@ -452,7 +420,7 @@ void CON_GetHelp(void)
if (sscanf(MessageInputString,"%s %s",base,command) < 2)
{
CON_ConMessage("Usage: help [keyword]");
OSD_Printf("Usage: help [keyword]");
return;
}
@ -460,25 +428,25 @@ void CON_GetHelp(void)
if (!strcmp(command, "xrepeat"))
{
CON_ConMessage("Usage: xrepeat [repeat value 0-255],");
CON_ConMessage(" [User ID (-1 for all ID's)], [SpriteNum (-1 for all of type ID)]");
OSD_Printf("Usage: xrepeat [repeat value 0-255],");
OSD_Printf(" [User ID (-1 for all ID's)], [SpriteNum (-1 for all of type ID)]");
return;
}
else if (!strcmp(command, "yrepeat"))
{
CON_ConMessage("Usage: yrepeat [repeat value 0-255],");
CON_ConMessage(" [User ID (-1 for all ID's)], [SpriteNum (-1 for all of type ID)]");
OSD_Printf("Usage: yrepeat [repeat value 0-255],");
OSD_Printf(" [User ID (-1 for all ID's)], [SpriteNum (-1 for all of type ID)]");
return;
}
else if (!strcmp(command, "translucent"))
{
CON_ConMessage("Usage: translucent [OFF/ON 0-1],");
CON_ConMessage(" [User ID (-1 for all ID's)], [SpriteNum (-1 for all of type ID)]");
OSD_Printf("Usage: translucent [OFF/ON 0-1],");
OSD_Printf(" [User ID (-1 for all ID's)], [SpriteNum (-1 for all of type ID)]");
return;
}
else
{
CON_ConMessage("No help was located on that subject.");
OSD_Printf("No help was located on that subject.");
}
}
@ -513,9 +481,9 @@ void CON_ModXrepeat(void)
}
}
if (op2 == -1)
CON_ConMessage("Xrepeat set to %d for all u->ID's for all sprites.",op1);
OSD_Printf("Xrepeat set to %d for all u->ID's for all sprites.",op1);
else
CON_ConMessage("Xrepeat set to %d for u->ID = %d for all sprites.",op1,op2);
OSD_Printf("Xrepeat set to %d for u->ID = %d for all sprites.",op1,op2);
}
else
{
@ -526,7 +494,7 @@ void CON_ModXrepeat(void)
if (!CheckValidSprite(op3)) return;
sp->xrepeat = op1;
CON_ConMessage("Xrepeat set to %d for sprite %d.",op1,op3);
OSD_Printf("Xrepeat set to %d for sprite %d.",op1,op3);
}
}
@ -562,9 +530,9 @@ void CON_ModYrepeat(void)
}
}
if (op2 == -1)
CON_ConMessage("Yrepeat set to %d for all u->ID's for all sprites.",op1);
OSD_Printf("Yrepeat set to %d for all u->ID's for all sprites.",op1);
else
CON_ConMessage("Yrepeat set to %d for u->ID = %d for all sprites.",op1,op2);
OSD_Printf("Yrepeat set to %d for u->ID = %d for all sprites.",op1,op2);
}
else
{
@ -575,7 +543,7 @@ void CON_ModYrepeat(void)
if (!CheckValidSprite(op3)) return;
sp->yrepeat = op1;
CON_ConMessage("Yrepeat set to %d for sprite %d.",op1,op3);
OSD_Printf("Yrepeat set to %d for sprite %d.",op1,op3);
}
}
@ -602,12 +570,12 @@ void CON_ModTranslucent(void)
if (TEST(sp->cstat,CSTAT_SPRITE_TRANSLUCENT))
{
RESET(sp->cstat,CSTAT_SPRITE_TRANSLUCENT);
CON_ConMessage("Translucence RESET for sprite %d.",op1);
OSD_Printf("Translucence RESET for sprite %d.",op1);
}
else
{
SET(sp->cstat,CSTAT_SPRITE_TRANSLUCENT);
CON_ConMessage("Translucence SET for sprite %d.",op1);
OSD_Printf("Translucence SET for sprite %d.",op1);
}
}
@ -628,7 +596,7 @@ void CON_SoundTest(void)
if (op1 < 0 || op1 >= DIGI_MAX)
{
CON_ConMessage("Sound number out of range.");
OSD_Printf("Sound number out of range.");
return;
}
@ -650,7 +618,7 @@ void CON_Reverb(void)
return;
}
CON_ConMessage("Reverb is now set to %d.",op1);
OSD_Printf("Reverb is now set to %d.",op1);
COVER_SetReverb(op1);
pp->Reverb = op1;
}
@ -664,10 +632,10 @@ void CON_Heap(void)
void *testheap;
totalmemory = Z_AvailHeap();
CON_ConMessage("Total heap at game startup = %d", TotalMemory);
CON_ConMessage("ActualHeap reserved for non-cache use = %d", ActualHeap);
CON_ConMessage("Total unallocated blocks in bytes minus reserved heap = %d", totalmemory);
CON_ConMessage("NOTE: Allocation exceeding ActualHeap will result in out of memory");
OSD_Printf("Total heap at game startup = %d", TotalMemory);
OSD_Printf("ActualHeap reserved for non-cache use = %d", ActualHeap);
OSD_Printf("Total unallocated blocks in bytes minus reserved heap = %d", totalmemory);
OSD_Printf("NOTE: Allocation exceeding ActualHeap will result in out of memory");
// Find remaining heap space unused
i = ActualHeap;
while(i>0)
@ -677,10 +645,10 @@ void CON_Heap(void)
i-=1024L; // Decrease in 1k increments
else
{
CON_ConMessage("Heap test result (+ or - 1k):");
CON_ConMessage("=============================");
CON_ConMessage("Unallocated heap space remaining = %d",i);
CON_ConMessage("Unallocated heap space used = %d",ActualHeap - i);
OSD_Printf("Heap test result (+ or - 1k):");
OSD_Printf("=============================");
OSD_Printf("Unallocated heap space remaining = %d",i);
OSD_Printf("Unallocated heap space used = %d",ActualHeap - i);
FreeMem(testheap);
i=0; // Beam us out of here Scotty!
}
@ -688,7 +656,7 @@ void CON_Heap(void)
if(ActualHeap < 50000L)
{
CON_ConMessage("ALERT: Memory is critically low!");
OSD_Printf("ALERT: Memory is critically low!");
}
*/
}
@ -997,14 +965,14 @@ void CON_Cache(void)
}
}
CON_ConMessage("/////////////////////////////////////////////");
CON_ConMessage("Current Memory Consumption:");
CON_ConMessage("Total Tiles = %d",tottiles);
CON_ConMessage("Total Sprites = %d",totsprites);
CON_ConMessage("Total Actors = %d",totactors);
CON_ConMessage("Total Memory = %d",(tottiles+totsprites+totactors));
CON_ConMessage("Total with LoWang = %d",(tottiles+totsprites+totactors+TileRangeMem(1024)));
CON_ConMessage("/////////////////////////////////////////////");
OSD_Printf("/////////////////////////////////////////////");
OSD_Printf("Current Memory Consumption:");
OSD_Printf("Total Tiles = %d",tottiles);
OSD_Printf("Total Sprites = %d",totsprites);
OSD_Printf("Total Actors = %d",totactors);
OSD_Printf("Total Memory = %d",(tottiles+totsprites+totactors));
OSD_Printf("Total with LoWang = %d",(tottiles+totsprites+totactors+TileRangeMem(1024)));
OSD_Printf("/////////////////////////////////////////////");
}
@ -1014,11 +982,11 @@ void CON_SpriteInfo(void)
if (SpriteInfo > 2) SpriteInfo = 0;
if (SpriteInfo == 0)
CON_ConMessage("Sprite information is OFF.");
OSD_Printf("Sprite information is OFF.");
else if (SpriteInfo == 1)
CON_ConMessage("Sprite information is ON (Brief Mode).");
OSD_Printf("Sprite information is ON (Brief Mode).");
else
CON_ConMessage("Sprite information is ON (Verbose Mode).");
OSD_Printf("Sprite information is ON (Verbose Mode).");
}
void CON_KillSprite(void)
@ -1045,14 +1013,14 @@ void CON_KillSprite(void)
if (!u->PlayerP)
SetSuicide(i);
}
CON_ConMessage("Killed all sprites except Players.");
OSD_Printf("Killed all sprites except Players.");
}
else
{
if (!CheckValidSprite(op1)) return;
SetSuicide(op1);
CON_ConMessage("Killed sprite %d.",op1);
OSD_Printf("Killed sprite %d.",op1);
}
}
@ -1074,15 +1042,15 @@ void CON_SpriteDetail(void)
if (!CheckValidSprite(op1)) return;
auto const sp = (uspritetype const *)&sprite[op1];
CON_ConMessage("x = %d, y = %d, z = %d",sp->x,sp->y,sp->z);
CON_ConMessage("cstat = %d, picnum = %d",sp->cstat,sp->picnum);
CON_ConMessage("shade = %d, pal = %d, clipdist = %d",sp->shade,sp->pal,sp->clipdist);
CON_ConMessage("xrepeat = %d, yrepeat = %d",sp->xrepeat, sp->yrepeat);
CON_ConMessage("xoffset = %d, yoffset = %d",sp->xoffset, sp->yoffset);
CON_ConMessage("sectnum = %d, statnum = %d",sp->sectnum, sp->statnum);
CON_ConMessage("ang = %d, owner = %d",sp->ang,sp->owner);
CON_ConMessage("xvel = %d, yvel = %d, zvel = %d",sp->xvel,sp->yvel,sp->zvel);
CON_ConMessage("lotag = %d, hitag = %d, extra = %d",sp->lotag,sp->hitag,sp->extra);
OSD_Printf("x = %d, y = %d, z = %d",sp->x,sp->y,sp->z);
OSD_Printf("cstat = %d, picnum = %d",sp->cstat,sp->picnum);
OSD_Printf("shade = %d, pal = %d, clipdist = %d",sp->shade,sp->pal,sp->clipdist);
OSD_Printf("xrepeat = %d, yrepeat = %d",sp->xrepeat, sp->yrepeat);
OSD_Printf("xoffset = %d, yoffset = %d",sp->xoffset, sp->yoffset);
OSD_Printf("sectnum = %d, statnum = %d",sp->sectnum, sp->statnum);
OSD_Printf("ang = %d, owner = %d",sp->ang,sp->owner);
OSD_Printf("xvel = %d, yvel = %d, zvel = %d",sp->xvel,sp->yvel,sp->zvel);
OSD_Printf("lotag = %d, hitag = %d, extra = %d",sp->lotag,sp->hitag,sp->extra);
}
void CON_UserDetail(void)
@ -1107,19 +1075,19 @@ void CON_UserDetail(void)
if (!u) return;
CON_ConMessage("State = %p, Rot = %p",u->State,u->Rot);
CON_ConMessage("StateStart = %p, StateEnd = %p",u->StateStart,u->StateEnd);
CON_ConMessage("ActorActionFunc = %p",u->ActorActionFunc);
CON_ConMessage("ActorActionSet = %p",u->ActorActionSet);
CON_ConMessage("Personality = %p",u->Personality);
CON_ConMessage("Attrib = %p",u->Attrib);
CON_ConMessage("Flags = %d, Flags2 = %d, Tics = %d",u->Flags,u->Flags2,u->Tics);
CON_ConMessage("RotNum = %d, ID = %d",u->RotNum,u->ID);
CON_ConMessage("Health = %d, MaxHealth = %d",u->Health,u->MaxHealth);
CON_ConMessage("LastDamage = %d, PainThreshold = %d",u->LastDamage,u->PainThreshold);
CON_ConMessage("jump_speed = %d, jump_grav = %d",u->jump_speed,u->jump_grav);
CON_ConMessage("xchange = %d, ychange = %d, zchange = %d",u->xchange,u->ychange,u->zchange);
CON_ConMessage("ret = %d, WaitTics = %d, spal = %d",u->ret,u->WaitTics,u->spal);
OSD_Printf("State = %p, Rot = %p",u->State,u->Rot);
OSD_Printf("StateStart = %p, StateEnd = %p",u->StateStart,u->StateEnd);
OSD_Printf("ActorActionFunc = %p",u->ActorActionFunc);
OSD_Printf("ActorActionSet = %p",u->ActorActionSet);
OSD_Printf("Personality = %p",u->Personality);
OSD_Printf("Attrib = %p",u->Attrib);
OSD_Printf("Flags = %d, Flags2 = %d, Tics = %d",u->Flags,u->Flags2,u->Tics);
OSD_Printf("RotNum = %d, ID = %d",u->RotNum,u->ID);
OSD_Printf("Health = %d, MaxHealth = %d",u->Health,u->MaxHealth);
OSD_Printf("LastDamage = %d, PainThreshold = %d",u->LastDamage,u->PainThreshold);
OSD_Printf("jump_speed = %d, jump_grav = %d",u->jump_speed,u->jump_grav);
OSD_Printf("xchange = %d, ychange = %d, zchange = %d",u->xchange,u->ychange,u->zchange);
OSD_Printf("ret = %d, WaitTics = %d, spal = %d",u->ret,u->WaitTics,u->spal);
}
void CON_Quit(void)
@ -1143,7 +1111,7 @@ void CON_MultiNameChange(void)
void CON_LoadSetup(void)
{
CON_ConMessage("JonoF: Maybe later");
OSD_Printf("JonoF: Maybe later");
}
const char *damagename[] =
@ -1191,34 +1159,34 @@ void CON_DamageData(void)
if (op1 < -1 || op1 > 46)
{
CON_ConMessage("Damage Data index is out of range.");
OSD_Printf("Damage Data index is out of range.");
return;
}
if (!strcmp(field,"damage_lo"))
{
DamageData[op1].damage_lo = op2;
CON_ConMessage("DamageData[%s].damage_lo = %d",damagename[op1],op2);
OSD_Printf("DamageData[%s].damage_lo = %d",damagename[op1],op2);
}
else if (!strcmp(field,"damage_hi"))
{
DamageData[op1].damage_hi = op2;
CON_ConMessage("DamageData[%s].damage_hi = %d",damagename[op1],op2);
OSD_Printf("DamageData[%s].damage_hi = %d",damagename[op1],op2);
}
else if (!strcmp(field,"radius"))
{
DamageData[op1].radius = op2;
CON_ConMessage("DamageData[%s].radius = %d",damagename[op1],op2);
OSD_Printf("DamageData[%s].radius = %d",damagename[op1],op2);
}
else if (!strcmp(field,"max_ammo"))
{
DamageData[op1].max_ammo = op2;
CON_ConMessage("DamageData[%s].max_ammo = %d",damagename[op1],op2);
OSD_Printf("DamageData[%s].max_ammo = %d",damagename[op1],op2);
}
else if (!strcmp(field,"min_ammo"))
{
DamageData[op1].min_ammo = op2;
CON_ConMessage("DamageData[%s].min_ammo = %d",damagename[op1],op2);
OSD_Printf("DamageData[%s].min_ammo = %d",damagename[op1],op2);
}
if (!strcmp(field,"show"))
{
@ -1227,17 +1195,17 @@ void CON_DamageData(void)
for (i=op2; i<=op2+10; i+=2)
{
if (i<47)
CON_ConMessage("[%d] = %s [%d] = %s",i,damagename[i],i+1,damagename[i+1]);
OSD_Printf("[%d] = %s [%d] = %s",i,damagename[i],i+1,damagename[i+1]);
}
}
else
{
CON_ConMessage(" ");
CON_ConMessage("Item = %s:",damagename[op1]);
CON_ConMessage("damage_lo = %d, damag_hi = %d",DamageData[op1].damage_lo,DamageData[op1].damage_hi);
CON_ConMessage("radius = %u",DamageData[op1].radius);
CON_ConMessage("min_ammo = %d, max_ammo = %d",DamageData[op1].min_ammo,DamageData[op1].max_ammo);
CON_ConMessage(" ");
OSD_Printf(" ");
OSD_Printf("Item = %s:",damagename[op1]);
OSD_Printf("damage_lo = %d, damag_hi = %d",DamageData[op1].damage_lo,DamageData[op1].damage_hi);
OSD_Printf("radius = %u",DamageData[op1].radius);
OSD_Printf("min_ammo = %d, max_ammo = %d",DamageData[op1].min_ammo,DamageData[op1].max_ammo);
OSD_Printf(" ");
}
}
}
@ -1279,13 +1247,13 @@ void CON_Tweak(void)
{
extern short ADJUST;
ADJUST = op1;
CON_ConMessage("Zvelocity ADJUST set to %d.",op1);
OSD_Printf("Zvelocity ADJUST set to %d.",op1);
}
else if (!strcmp(command,"adjustv"))
{
extern int ADJUSTV;
ADJUSTV = op1;
CON_ConMessage("Zvelocity ADJUSTV set to %d.",op1);
OSD_Printf("Zvelocity ADJUSTV set to %d.",op1);
}
}
@ -1309,20 +1277,20 @@ void CON_CheckHeap(void)
switch( _heapchk() )
{
case _HEAPOK:
CON_ConMessage( "OK - heap is good\n" );
OSD_Printf( "OK - heap is good\n" );
break;
case _HEAPEMPTY:
CON_ConMessage( "OK - heap is empty\n" );
OSD_Printf( "OK - heap is empty\n" );
break;
case _HEAPBADBEGIN:
CON_ConMessage( "ERROR - heap is damaged\n" );
OSD_Printf( "ERROR - heap is damaged\n" );
break;
case _HEAPBADNODE:
CON_ConMessage( "ERROR - bad node in heap\n" );
OSD_Printf( "ERROR - bad node in heap\n" );
break;
}
*/
CON_ConMessage("JonoF: Not now");
OSD_Printf("JonoF: Not now");
}
/*
@ -1364,7 +1332,7 @@ void heap_dump( void )
void CON_DumpHeap(void)
{
//heap_dump(); // Dump it.
CON_ConMessage("JonoF: Not now");
OSD_Printf("JonoF: Not now");
}
void CON_ShowMirror(void)
@ -1382,21 +1350,21 @@ void CON_ShowMirror(void)
if (op1 < 0 || op1 > 9)
{
CON_ConMessage("Mirror number is out of range!");
OSD_Printf("Mirror number is out of range!");
return;
}
CON_ConMessage("camera is the ST1 sprite used as the view spot");
CON_ConMessage("camspite is the SpriteNum of the drawtotile tile in editart");
CON_ConMessage("camspic is the tile number of the drawtotile in editart");
CON_ConMessage("iscamera is whether or not this mirror is a camera type");
CON_ConMessage(" ");
CON_ConMessage("mirror[%d].mirrorwall = %d",op1,mirror[op1].mirrorwall);
CON_ConMessage("mirror[%d].mirrorsector = %d",op1,mirror[op1].mirrorsector);
CON_ConMessage("mirror[%d].camera = %d",op1,mirror[op1].camera);
CON_ConMessage("mirror[%d].camsprite = %d",op1,mirror[op1].camsprite);
CON_ConMessage("mirror[%d].campic = %d",op1,mirror[op1].campic);
CON_ConMessage("mirror[%d].iscamera = %d",op1,mirror[op1].ismagic);
OSD_Printf("camera is the ST1 sprite used as the view spot");
OSD_Printf("camspite is the SpriteNum of the drawtotile tile in editart");
OSD_Printf("camspic is the tile number of the drawtotile in editart");
OSD_Printf("iscamera is whether or not this mirror is a camera type");
OSD_Printf(" ");
OSD_Printf("mirror[%d].mirrorwall = %d",op1,mirror[op1].mirrorwall);
OSD_Printf("mirror[%d].mirrorsector = %d",op1,mirror[op1].mirrorsector);
OSD_Printf("mirror[%d].camera = %d",op1,mirror[op1].camera);
OSD_Printf("mirror[%d].camsprite = %d",op1,mirror[op1].camsprite);
OSD_Printf("mirror[%d].campic = %d",op1,mirror[op1].campic);
OSD_Printf("mirror[%d].iscamera = %d",op1,mirror[op1].ismagic);
}
void CON_DumpSoundList(void)
@ -1404,7 +1372,7 @@ void CON_DumpSoundList(void)
extern void DumpSounds(void);
DumpSounds();
CON_Message("Sounds dumped to dbg.foo");
OSD_Printf("Sounds dumped to dbg.foo");
}

View file

@ -694,7 +694,7 @@ analyzesprites(int viewx, int viewy, int viewz, SWBOOL mirror)
tu = User[SpriteNum];
//if(tsp->statnum == STAT_GENERIC_QUEUE)
// CON_ConMessage("tsp->pal = %d",tsp->pal);
// OSD_Printf("tsp->pal = %d",tsp->pal);
#if 0
// Brighten up the sprite if set somewhere else to do so

View file

@ -78,13 +78,14 @@ void dsprintf(char *, char *, ...);
void PokeStringMono(uint8_t Attr, uint8_t* String);
#if 1 // !JIM! Frank, I redirect this for me you'll want to set this back for you
#if 1
// !JIM! Frank, I redirect this for me you'll want to set this back for you
extern int DispMono;
#define MONO_PRINT(str) if (DispMono) PokeStringMono(/*MDA_NORMAL*/ 0, str)
#else
void adduserquote(const char *daquote);
extern int DispMono;
#define MONO_PRINT(str) if (DispMono) CON_ConMessage(str); // Put it in my userquote stuff!
#define MONO_PRINT(str) if (DispMono) OSD_Printf(str); // Put it in my userquote stuff!
//#define MONO_PRINT(str) if (DispMono) printf(str);
#endif
@ -857,8 +858,6 @@ void addconquote(const char *daquote);
// Console
//
///////////////////////////////////////////////////////////////////////////////////////////
void CON_Message(const char *message, ...) PRINTF_FORMAT(1, 2);
void CON_ConMessage(const char *message, ...) PRINTF_FORMAT(1, 2);
void CON_StoreArg(const char *userarg);
SWBOOL CON_CheckParm(const char *userarg);
void CON_CommandHistory(signed char dir);

View file

@ -423,7 +423,7 @@ void SetFadeAmt(PLAYERp pp, short damage, unsigned char startcolor)
short fadedamage = 0;
RGB_color color;
//CON_ConMessage("SetAmt: fadeamt = %d, startcolor = %d, pp = %d",pp->FadeAmt,startcolor,pp->StartColor);
//OSD_Printf("SetAmt: fadeamt = %d, startcolor = %d, pp = %d",pp->FadeAmt,startcolor,pp->StartColor);
if (abs(pp->FadeAmt) > 0 && startcolor == pp->StartColor)
return;

View file

@ -838,7 +838,7 @@ int PachinkoCheckWin(short SpriteNum)
u->WaitTics = 0; // Can operate it again now
//CON_ConMessage("bool1 = %d",TEST_BOOL1(sp));
//OSD_Printf("bool1 = %d",TEST_BOOL1(sp));
// You already won, no more from this machine!
if (TEST_BOOL1(sp)) return 0;

View file

@ -746,7 +746,7 @@ SWBOOL CacheSound(int num, int type)
if (!OpenSound(vp, handle, &length))
{
sprintf(ds,"Could not open sound %s, num %d, priority %d\n",vp->name,num,vp->priority);
CON_ConMessage("%s", ds);
OSD_Printf("%s", ds);
return FALSE;
}

View file

@ -5798,7 +5798,7 @@ KeyMain:
sprintf(ds,"Fortune Say: %s\n",ReadFortune[STD_RANDOM_RANGE(10)]);
else
sprintf(ds,"Fortune Say: %s\n",ReadFortune[STD_RANDOM_RANGE(MAX_FORTUNES)]);
CON_Message("%s", ds);
OSD_Printf("%s", ds);
}
SetFadeAmt(pp,ITEMFLASHAMT,ITEMFLASHCLR); // Flash blue on item pickup

View file

@ -447,7 +447,7 @@ void PutStringInfo(PLAYERp pp, const char *string)
if (!hud_messages)
return;
CON_ConMessage("%s", string); // Put it in the console too
OSD_Printf("%s", string); // Put it in the console too
PutStringInfoLine(pp, string);
}

View file

@ -4,13 +4,13 @@ F1 "openhelpmenu"
F2 "opensavemenu"
F3 "openloadmenu"
F4 "openmenu SoundOptions"
F5 "openmeun OptionMenu" //this key performs some fuckery with the music in Duke Nukem,so the default here is Blood's.
F6 "+Quick_Save"
F5 "openmenu OptionMenu" //this key performs some fuckery with the music in Duke Nukem,so the default here is Blood's.
F6 "quicksave"
F7 "+Third_Person_View"
//F8 "toggle hud_messages" // this one needs a means to print the status to the quote display.
F9 "+Quick_Load"
F10 "openmenu QuitIngame"
F11 "openmenu ColorCorrection"
F8 "togglemessages"
F9 "quickload"
F10 "menu_endgame"
F11 "bumpgamma"
F12 "screenshot"
1 "+Weapon_1"
2 "+Weapon_2"
@ -63,17 +63,3 @@ K "+See_Coop_View"
Mouse1 "+Fire"
MWheelUp "+Previous_Weapon"
MWheelDown "+Next_Weapon"
Pad_A "+Fire"
Pad_B "+Toggle_Crouch" // fixme: not yet supported by all games
Pad_Back "+Map"
LTrigger "+Run"
RTrigger "+Quick_Kick"
LShoulder "+Crouch"
RShoulder "+Jump"
DPadUp "+Previous_Weapon"
DPadDown "+Next_Weapon"
Pad_X "+Open"
Pad_Y "+Inventory"
DPadLeft "+Inventory_Left"
DPadRight "+Inventory_Right"

View file

@ -865,8 +865,8 @@ OptionMenu "OtherControlsMenu"// protected
Control "$CNTRLMNU_PAUSE" , "pause"
StaticText ""
Control "$CNTRLMNU_DISPLAY_INC" , "sizeup"
Control "$CNTRLMNU_DISPLAY_DEC" , "sizedown"
Control "$CNTRLMNU_DISPLAY_INC" , "+enlarge_Screen"
Control "$CNTRLMNU_DISPLAY_DEC" , "+shrink_screen"
Control "$CNTRLMNU_TOGGLE_MESSAGES" , "togglemessages"
Control "$CNTRLMNU_ADJUST_GAMMA" , "bumpgamma"