- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
m_fixed.c
资源名称:21.rar [点击查看]
上传用户:xuyinpeng
上传日期:2021-05-12
资源大小:455k
文件大小:2k
源码类别:
射击游戏
开发平台:
Visual C++
- // Emacs style mode select -*- C++ -*-
- //-----------------------------------------------------------------------------
- //
- // $Id:$
- //
- // Copyright (C) 1993-1996 by id Software, Inc.
- //
- // This source is available for distribution and/or modification
- // only under the terms of the DOOM Source Code License as
- // published by id Software. All rights reserved.
- //
- // The source is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
- // for more details.
- //
- // $Log:$
- //
- // DESCRIPTION:
- // Fixed point implementation.
- //
- //-----------------------------------------------------------------------------
- static const char
- rcsid[] = "$Id: m_bbox.c,v 1.1 1997/02/03 22:45:10 b1 Exp $";
- #include "stdlib.h"
- #include "doomtype.h"
- #include "i_system.h"
- #ifdef __GNUG__
- #pragma implementation "m_fixed.h"
- #endif
- #include "m_fixed.h"
- //__USE_C_FIXED__ or something.
- fixed_t FixedMul( fixed_t a, fixed_t b )
- {
- return (((__int64) a * (__int64) b) >> FRACBITS);
- }
- //
- // FixedDiv, C version.
- //
- fixed_t
- FixedDiv
- ( fixed_t a,
- fixed_t b )
- {
- if ( (abs(a)>>14) >= abs(b))
- return (a^b)<0 ? MININT : MAXINT;
- return FixedDiv2 (a,b);
- }
- fixed_t
- FixedDiv2
- ( fixed_t a,
- fixed_t b )
- {
- #if 0
- long long c;
- c = ((long long)a<<16) / ((long long)b);
- return (fixed_t) c;
- #endif
- double c;
- c = ((double)a) / ((double)b) * FRACUNIT;
- if (c >= 2147483648.0 || c < -2147483648.0)
- I_Error("FixedDiv: divide by zero");
- return (fixed_t) c;
- }