m_fixed.c

来自「PIXIL is a small footprint operating env」· C语言 代码 · 共 97 行

C
97
字号
// Emacs style mode select   -*- C++ -*- //-----------------------------------------------------------------------------//// $Id: m_fixed.c,v 1.2 2003/09/08 22:34:28 jasonk Exp $//// 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: m_fixed.c,v $// Revision 1.2  2003/09/08 22:34:28  jasonk// Updated files because this fucker won't build for no fucking good reason.//// Revision 1.1.1.1  2003/09/04 21:08:13  jasonk// Initial import//// Revision 1.1  2000/12/08 21:07:53  jeffw// nxdoom initial entry -- No nxdoom/Makefile so it won't build automatically////// DESCRIPTION://	Fixed point implementation.////-----------------------------------------------------------------------------static const charrcsid[] = "$Id: m_fixed.c,v 1.2 2003/09/08 22:34:28 jasonk Exp $";#include "stdlib.h"#include "doomtype.h"#include "i_system.h"#ifdef __GNUG__#pragma implementation "m_fixed.h"#endif#include "m_fixed.h"// Fixme. __USE_C_FIXED__ or something.fixed_tFixedMul( fixed_t	a,  fixed_t	b ){    return ((long long) a * (long long) b) >> FRACBITS;}//// FixedDiv, C version.//fixed_tFixedDiv( fixed_t	a,  fixed_t	b ){    if ( (abs(a)>>14) >= abs(b))	return (a^b)<0 ? MININT : MAXINT;    return FixedDiv2 (a,b);}fixed_tFixedDiv2( 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;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?