/*
* Playground+ - softmsg.c
* The high level access points to the soft message system (c) phypor 1998
* ---------------------------------------------------------------------------
*
* You may extract it and use it in a running talker
* if you place credit for it either in help credits
* Soft Messages by phypor
* or in the version command output
* -=> Soft Messages v1.2 (by phypor)
*
* This code is licenced for distribution in PG+ ONLY
* You may not distribute this code in any form other than
* within the code release PG+, you may only distribute
* it in a successor of PG+ with express consent in writing
* from phypor (j. bradley christian) <phypor@benland.muc.edu>
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "include/config.h"
#include "include/player.h"
#include "include/proto.h"
char smbuf[1024]; /* lil chunk of global memory we use */
char *get_config_msg(char *type)
{
char *got;
memset(smbuf, 0, 1024);
if (!config_msg.where || !*config_msg.where)
{
if (!strcasecmp(type, "max_log_size")) /* ouch */
return "5000";
log("error", "Softmsg file for config_msg aint loaded!");
return "error";
}
got = lineval(config_msg.where, type);
if (!got || !*got)
{
if (!strcasecmp(type, "logon_prefix") ||
!strcasecmp(type, "logon_suffix") ||
!strcasecmp(type, "logoff_prefix") ||
!strcasecmp(type, "logoff_suffix") ||
!strcasecmp(type, "site_alias") ||
!strcasecmp(type, "welcome_msg"))
return "";
LOGF("error", "Softmsg in config_msg for '%s' isnt there!", type);
return "error";
}
strncpy(smbuf, got, 1023);
return smbuf;
}
char *get_admin_msg(char *type)
{
char *got;
memset(smbuf, 0, 1024);
if (!admin_msg.where || !*admin_msg.where) /* file aint loaded */
{
log("error", "Softmsg file for admin_msg aint loaded!");
return "-=*> Erg erg erg";
}
got = lineval(admin_msg.where, type);
if (!got || !*got)
{
LOGF("error", "Softmsg in admin_msg for '%s' isnt there!", type);
return "-=*> Erg erg erg";
}
strncpy(smbuf, lineval(admin_msg.where, type), 1023);
return smbuf;
}
char *get_shutdowns_msg(char *type)
{
char *got;
memset(smbuf, 0, 1024);
if (!shutdowns_msg.where || !*shutdowns_msg.where) /* file aint loaded */
{
log("error", "Softmsg file for shutdowns_msg aint loaded!");
return "";
}
got = lineval(shutdowns_msg.where, type);
if (got && *got)
strncpy(smbuf, got, 1023);
return smbuf; /* its ok to have empty cases here */
}
char *get_frog_msg(char *type)
{
char *got;
memset(smbuf, 0, 1024);
if (!frogs_msg.where || !*frogs_msg.where)
{
log("error", "Softmsg file for frogs_msg aint loaded!");
return "I want my rattle";
}
got = lineval(frogs_msg.where, type);
if (!got || !*got)
{
LOGF("error", "Softmsg in frogs_msg for '%s' isnt there!", type);
return "I want my rattle";
}
strncpy(smbuf, lineval(frogs_msg.where, type), 1023);
return smbuf;
}
char *get_plists_msg(char *type)
{
char *got;
memset(smbuf, 0, 1024);
if (!plists_msg.where || !*plists_msg.where)
{
log("error", "Softmsg file for plists_msg aint loaded!");
return "Erg Erg Erg";
}
got = lineval(plists_msg.where, type);
if (!got || !*got)
{
LOGF("error", "Softmsg in plists_msg for '%s' isnt there!", type);
return "Erg Erg Erg";
}
strncpy(smbuf, got, 1023);
return smbuf;
}
char *get_pdefaults_msg(char *type)
{
char *got;
memset(smbuf, 0, 1024);
if (!pdefaults_msg.where || !*pdefaults_msg.where)
{
log("error", "Softmsg file for pdefaults_msg aint loaded!");
return "Erg Erg Erg";
}
got = lineval(pdefaults_msg.where, type);
if (!got || !*got)
{
LOGF("error", "Softmsg in pdefaults_msg for '%s' isnt there!", type);
return "Erg Erg Erg";
}
strncpy(smbuf, got, 1023);
return smbuf;
}
char *get_session_msg(char *type)
{
char *got;
memset(smbuf, 0, 1024);
if (!session_msg.where || !*session_msg.where)
{
log("error", "Softmsg file for session_msg aint loaded!");
return "not set";
}
got = lineval(session_msg.where, type);
if (!got || !*got)
{
LOGF("error", "Softmsg in session_msg for '%s' isnt there!", type);
return "not set";
}
strncpy(smbuf, got, 1023);
return smbuf;
}
char *get_deflog_msg(char *type)
{
char *got;
memset(smbuf, 0, 1024);
if (!deflog_msg.where || !*deflog_msg.where)
return "non";
got = lineval(deflog_msg.where, type);
if (!got || !*got)
return "non";
strncpy(smbuf, got, 1023);
return smbuf;
}
char *get_rooms_msg(char *type)
{
char *got;
memset(smbuf, 0, 1024);
if (!rooms_msg.where || !*rooms_msg.where)
{
log("error", "Softmsg file for rooms_msg aint loaded!");
return "erg erg erg";
}
got = lineval(rooms_msg.where, type);
if (!got || !*got)
{
LOGF("error", "Softmsg in rooms_msg for '%s' isnt there!", type);
return "erg erg erg";
}
strncpy(smbuf, got, 1023);
return smbuf;
}
void softmsg_version(void)
{
stack += sprintf(stack, " -=*> Soft Messages v1.2 (by phypor) installed.\n");
}