pgplus/bin/
pgplus/help_files/
pgplus/port_redirector/
pgplus/src/configure/makefiles/
/*
 * Playground+ - shortcut.c
 * All shortcut commands (TELLPLAYER, ADDSTACK, ENDSTACK, LOGF etc.)
 * --------------------------------------------------------------------------- 
 */

#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

#include "include/config.h"
#include "include/player.h"
#include "include/proto.h"

void LOGF(char *fil, char *format,...)
{
  va_list argum;
  char *oldstack;

  oldstack = stack;
  va_start(argum, format);
  vsprintf(stack, format, argum);
  va_end(argum);
  stack = end_string(stack);
  log(fil, oldstack);
  stack = oldstack;
}

void TELLPLAYER(player * pl, char *format,...)
{
  va_list argum;
  char *oldstack;

  oldstack = stack;
  va_start(argum, format);
  vsprintf(stack, format, argum);
  va_end(argum);
  stack = end_string(stack);
  tell_player(pl, oldstack);
  stack = oldstack;
}

void SUWALL(char *format,...)
{
  va_list argum;
  char *oldstack;

  oldstack = stack;
  va_start(argum, format);
  vsprintf(stack, format, argum);
  va_end(argum);
  stack = end_string(stack);
  su_wall(oldstack);
  stack = oldstack;
}

void AUWALL(char *format,...)
{
  va_list argum;
  char *oldstack;

  oldstack = stack;
  va_start(argum, format);
  vsprintf(stack, format, argum);
  va_end(argum);
  stack = end_string(stack);
  au_wall(oldstack);
  stack = oldstack;
}

void SEND_TO_DEBUG(char *format,...)
{
  va_list argum;
  char *oldstack;

  oldstack = stack;
  va_start(argum, format);
  vsprintf(stack, format, argum);
  va_end(argum);
  stack = end_string(stack);
  debug_wall(oldstack);
  stack = oldstack;
}

#ifdef HC_CHANNEL
void HCWALL(char *format,...)
{
  va_list argum;
  char *oldstack;

  oldstack = stack;
  va_start(argum, format);
  vsprintf(stack, format, argum);
  va_end(argum);
  stack = end_string(stack);
  hc_wall(oldstack);
  stack = oldstack;
}

#endif

void SW_BUT(player * but, char *format,...)
{
  va_list argum;
  char *oldstack;

  oldstack = stack;
  va_start(argum, format);
  vsprintf(stack, format, argum);
  va_end(argum);
  stack = end_string(stack);
  su_wall_but(but, oldstack);
  stack = oldstack;
}

void AW_BUT(player * but, char *format,...)
{
  va_list argum;
  char *oldstack;

  oldstack = stack;
  va_start(argum, format);
  vsprintf(stack, format, argum);
  va_end(argum);
  stack = end_string(stack);
  au_wall_but(but, oldstack);
  stack = oldstack;
}
void TELLROOM(room * here, char *format,...)
{
  va_list argum;
  char *oldstack;

  oldstack = stack;
  va_start(argum, format);
  vsprintf(stack, format, argum);
  va_end(argum);
  stack = end_string(stack);
  tell_room(here, oldstack);
  stack = oldstack;
}
void TELLROOM_BUT(player * p, room * here, char *format,...)
{
  va_list argum;
  char *oldstack;

  oldstack = stack;
  va_start(argum, format);
  vsprintf(stack, format, argum);
  va_end(argum);
  stack = end_string(stack);
  tell_room_but2(p, here, oldstack);
  stack = oldstack;
}

/* these two are a bit different, no? Well, um.. yeah, kinda... */

void ADDSTACK(char *format,...)
{
  va_list argum;

  va_start(argum, format);
  vsprintf(stack, format, argum);
  va_end(argum);
  stack = strchr(stack, 0);
}

void ENDSTACK(char *format,...)
{
  va_list argum;

  va_start(argum, format);
  vsprintf(stack, format, argum);
  va_end(argum);
  stack = end_string(stack);
}