public/sourcepawn/sp_typeutil.h
author David Anderson <dvander@alliedmods.net>
Fri Feb 16 03:47:10 2007 +0000 (2007-02-16)
changeset 501 e209a7296936
parent 379 b3c99c22ba80
child 1231 17badaf66ce4
permissions -rw-r--r--
removed this potential feature, not useful enough
dvander@372
     1
/**
dvander@375
     2
 * vim: set ts=4 :
dvander@372
     3
 * ================================================================
dvander@376
     4
 * SourcePawn, Copyright (C) 2004-2007 AlliedModders LLC. 
dvander@376
     5
 * All rights reserved.
dvander@372
     6
 * ================================================================
dvander@372
     7
 *
dvander@379
     8
 *  This file is part of the SourceMod/SourcePawn SDK.  This file may only be 
dvander@379
     9
 * used or modified under the Terms and Conditions of its License Agreement, 
dvander@379
    10
 * which is found in public/licenses/LICENSE.txt.  As of this notice, derivative 
dvander@379
    11
 * works must be licensed under the GNU General Public License (version 2 or 
dvander@379
    12
 * greater).  A copy of the GPL is included under public/licenses/GPL.txt.
dvander@379
    13
 * 
dvander@379
    14
 * To view the latest information, see: http://www.sourcemod.net/license.php
dvander@372
    15
 *
dvander@372
    16
 * Version: $Id$
dvander@372
    17
 */
dvander@372
    18
dvander@324
    19
#ifndef _INCLUDE_SOURCEPAWN_VM_TYPEUTIL_H_
dvander@324
    20
#define _INCLUDE_SOURCEPAWN_VM_TYPEUTIL_H_
dvander@324
    21
dvander@372
    22
/**
dvander@372
    23
 * @file sp_typeutil.h
dvander@372
    24
 * @brief Defines type utility functions.
dvander@372
    25
 */
dvander@372
    26
dvander@324
    27
#include "sp_vm_types.h"
dvander@324
    28
dvander@372
    29
/**
dvander@372
    30
 * @brief Reinterpret-casts a float to a cell (requires -fno-strict-aliasing for GCC).
dvander@372
    31
 *
dvander@372
    32
 * @param val		Float value.
dvander@372
    33
 * @return			Cell typed version.
dvander@372
    34
 */
dvander@324
    35
inline cell_t sp_ftoc(float val)
dvander@324
    36
{
dvander@324
    37
	return *(cell_t *)&val;
dvander@324
    38
}
dvander@372
    39
dvander@372
    40
/**
dvander@372
    41
 * @brief Reinterpret-casts a cell to a float (requires -fno-strict-aliasing for GCC).
dvander@372
    42
 *
dvander@372
    43
 * @param val		Cell-packed float value.
dvander@372
    44
 * @return			Float typed version.
dvander@372
    45
 */
dvander@324
    46
inline float sp_ctof(cell_t val)
dvander@324
    47
{
dvander@324
    48
	return *(float *)&val;
dvander@324
    49
}
dvander@324
    50
dvander@351
    51
#endif //_INCLUDE_SOURCEPAWN_VM_TYPEUTIL_H_
dvander@351
    52