core/smn_core.cpp
author David Anderson <dvander@alliedmods.net>
Mon Mar 12 00:06:20 2007 +0000 (2007-03-12)
changeset 599 3a098eff4890
parent 595 1d8e56a119f2
child 618 290353a9f2a7
permissions -rw-r--r--
used a better error number
dvander@560
     1
/**
dvander@560
     2
 * ===============================================================
dvander@560
     3
 * SourceMod (C)2004-2007 AlliedModders LLC.  All rights reserved.
dvander@560
     4
 * ===============================================================
dvander@560
     5
 *
dvander@560
     6
 * This file is not open source and may not be copied without explicit
dvander@560
     7
 * written permission of AlliedModders LLC.  This file may not be redistributed 
dvander@560
     8
 * in whole or significant part.
dvander@560
     9
 * For information, see LICENSE.txt or http://www.sourcemod.net/license.php
dvander@560
    10
 *
dvander@560
    11
 * Version: $Id$
dvander@560
    12
 */
dvander@560
    13
dvander@595
    14
#include <time.h>
dvander@560
    15
#include "sm_globals.h"
dvander@560
    16
#include "sourcemod.h"
dvander@560
    17
dvander@560
    18
static cell_t ThrowError(IPluginContext *pContext, const cell_t *params)
dvander@560
    19
{
dvander@560
    20
	char buffer[512];
dvander@560
    21
dvander@560
    22
	g_SourceMod.FormatString(buffer, sizeof(buffer), pContext, params, 1);
dvander@560
    23
dvander@560
    24
	if (pContext->GetContext()->n_err == SP_ERROR_NONE)
dvander@560
    25
	{
dvander@560
    26
		pContext->ThrowNativeErrorEx(SP_ERROR_ABORTED, "%s", buffer);
dvander@560
    27
	}
dvander@560
    28
dvander@560
    29
	return 0;
dvander@560
    30
}
dvander@560
    31
dvander@595
    32
static cell_t GetTime(IPluginContext *pContext, const cell_t *params)
dvander@595
    33
{
dvander@595
    34
	time_t t = time(NULL);
dvander@595
    35
	cell_t *addr;
dvander@595
    36
	pContext->LocalToPhysAddr(params[1], &addr);
dvander@595
    37
dvander@595
    38
	*(time_t *)addr = t;
dvander@595
    39
dvander@595
    40
	return static_cast<cell_t>(t);
dvander@595
    41
}
dvander@595
    42
dvander@560
    43
REGISTER_NATIVES(coreNatives)
dvander@560
    44
{
dvander@595
    45
	{"GetTime",				GetTime},
dvander@560
    46
	{"ThrowError",			ThrowError},
dvander@560
    47
	{NULL,					NULL},
dvander@560
    48
};