Skip to content

Commit

Permalink
Merge pull request #311 from dreamstalker/cmd_remove_cmd
Browse files Browse the repository at this point in the history
Added Cmd_RemoveCmd to ReHlds API
  • Loading branch information
theAsmodai committed Jan 17, 2017
2 parents fedc99b + d75af4a commit b6fe0ac
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 6 deletions.
17 changes: 14 additions & 3 deletions rehlds/engine/cmd.cpp
Expand Up @@ -669,10 +669,8 @@ NOXREF cmd_function_t *Cmd_FindCmd(char *cmd_name)
return NULL;
}

NOXREF cmd_function_t *Cmd_FindCmdPrev(char *cmd_name)
cmd_function_t *Cmd_FindCmdPrev(char *cmd_name)
{
NOXREFCHECK;

cmd_function_t *cmd = NULL;

if (cmd_functions == NULL)
Expand Down Expand Up @@ -796,6 +794,19 @@ void EXT_FUNC Cmd_AddGameCommand(char *cmd_name, xcommand_t function)
Cmd_AddMallocCommand(cmd_name, function, FCMD_GAME_COMMAND);
}

void EXT_FUNC Cmd_RemoveCmd(char *cmd_name)
{
auto prev = Cmd_FindCmdPrev(cmd_name);

if (prev) {
auto cmd = prev->next;
prev->next = cmd->next;

Z_Free(cmd->name);
Mem_Free(cmd);
}
}

void Cmd_RemoveMallocedCmds(int flag)
{
cmd_function_t *c, **p;
Expand Down
3 changes: 2 additions & 1 deletion rehlds/engine/cmd.h
Expand Up @@ -103,12 +103,13 @@ const char *Cmd_Argv(int arg);
const char *Cmd_Args(void);
void Cmd_TokenizeString(char *text);
NOXREF cmd_function_t *Cmd_FindCmd(char *cmd_name);
NOXREF cmd_function_t *Cmd_FindCmdPrev(char *cmd_name);
cmd_function_t *Cmd_FindCmdPrev(char *cmd_name);
void Cmd_AddCommand(char *cmd_name, xcommand_t function);
void Cmd_AddMallocCommand(char *cmd_name, xcommand_t function, int flag);
NOXREF void Cmd_AddHUDCommand(char *cmd_name, xcommand_t function);
NOXREF void Cmd_AddWrapperCommand(char *cmd_name, xcommand_t function);
void Cmd_AddGameCommand(char *cmd_name, xcommand_t function);
void Cmd_RemoveCmd(char *cmd_name);
void Cmd_RemoveMallocedCmds(int flag);
NOXREF void Cmd_RemoveHudCmds(void);
void Cmd_RemoveGameCmds(void);
Expand Down
3 changes: 2 additions & 1 deletion rehlds/public/rehlds/rehlds_api.h
Expand Up @@ -35,7 +35,7 @@
#include "model.h"

#define REHLDS_API_VERSION_MAJOR 3
#define REHLDS_API_VERSION_MINOR 0
#define REHLDS_API_VERSION_MINOR 1

//Steam_NotifyClientConnect hook
typedef IHookChain<qboolean, IGameClient*, const void*, unsigned int> IRehldsHook_Steam_NotifyClientConnect;
Expand Down Expand Up @@ -282,6 +282,7 @@ struct RehldsFuncs_t {
bool(*SV_EmitSound2)(edict_t *entity, IGameClient *receiver, int channel, const char *sample, float volume, float attenuation, int flags, int pitch, int emitFlags, const float *pOrigin);
void(*SV_UpdateUserInfo)(IGameClient *pGameClient);
bool(*StripUnprintableAndSpace)(char *pch);
void(*Cmd_RemoveCmd)(char *cmd_name);
};

class IRehldsApi {
Expand Down
3 changes: 2 additions & 1 deletion rehlds/rehlds/rehlds_api_impl.cpp
Expand Up @@ -210,7 +210,8 @@ RehldsFuncs_t g_RehldsApiFuncs =
&SV_StartSound_api,
&SV_EmitSound2_api,
&SV_UpdateUserInfo_api,
&StripUnprintableAndSpace_api
&StripUnprintableAndSpace_api,
&Cmd_RemoveCmd
};

bool EXT_FUNC SV_EmitSound2_internal(edict_t *entity, IGameClient *pReceiver, int channel, const char *sample, float volume, float attenuation, int flags, int pitch, int emitFlags, const float *pOrigin)
Expand Down

0 comments on commit b6fe0ac

Please sign in to comment.