Subversion Repositories WoWGM

Rev

Rev 31 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/****************************************************************************
*
*               ClientGMCommands.cpp
*
*               Written by Tristan Cormier
*               11.20.24
*
***/


#include "pch.h"
#pragma hdrstop

#include "ClientGMCommands.h"

#include <Console/ConsoleClient.h>
#include <WowSvcs/ClientServices.h>


/****************************************************************************
*
*   Private
*
***/

//===========================================================================
char const* GetWord (char const* string, char* buffer, uint bufferchars) {
        //TODO:
  //ASSERT(string);
  //ASSERT(buffer || bufferchars);
        
  uint length = bufferchars - 1;
  for (uint i = 0; i != length; i++) {
    if (buffer[i] == ' ')
      break;
    buffer[i] = *string;
    ++string;
  };
  return string;    
}


/****************************************************************************
*
*   Client GM Commands
*
***/

//===========================================================================
BOOL CCommand_GMResurrect (char const* command, char const* arguments) {
        if (command && *command) {
                CDataStore msg;
                msg.Put(CMSG_GM_RESURRECT);
                msg.PutString(arguments);
                msg.Finalize();

                ClientServices_Send(&msg);
        }
        else
                ConsoleWrite("Expected a player name", DEFAULT_COLOR);
        
        return TRUE;
}

//===========================================================================
BOOL CCommand_SetSecurity (char const* command, char const* arguments) {
  char name[49];
        GetWord(command, name, sizeof(name));

        int security = SStrToInt(command);

  ConsoleWriteA("Setting '%s' to security group %d", DEFAULT_COLOR, name, security);

  CDataStore msg;
  msg.Put(CMSG_SET_SECURITY_GROUP);
  msg.Put(security);
  msg.Finalize();

  ClientServices_Send(&msg);
  
  return TRUE;
}


/****************************************************************************
*
*   External
*
***/

//===========================================================================
void GMClientCommands::Install () {
  ConsoleCommandRegister("setsecurity",CCommand_SetSecurity,GM,"Set another character's security group");
        ConsoleCommandRegister("resurrect",CCommand_GMResurrect,DEBUG,NOHELP);
}

//===========================================================================
void GMClientCommands::Uninstall () {
  ConsoleCommandUnregister("setsecurity");
        ConsoleCommandUnregister("resurrect");
}