// SONIC ROBO BLAST 2 //----------------------------------------------------------------------------- // Copyright (C) 1993-1996 by id Software, Inc. // Copyright (C) 1998-2000 by DooM Legacy Team. // Copyright (C) 1999-2020 by Sonic Team Junior. // // This program is free software distributed under the // terms of the GNU General Public License, version 2. // See the 'LICENSE' file for more details. //----------------------------------------------------------------------------- /// \file p_spec.h /// \brief Implements special effects: /// Texture animation, height or lighting changes /// according to adjacent sectors, respective /// utility functions, etc. #ifndef __P_SPEC__ #define __P_SPEC__ extern mobj_t *skyboxmo[2]; // current skybox mobjs: 0 = viewpoint, 1 = centerpoint extern mobj_t *skyboxviewpnts[16]; // array of MT_SKYBOX viewpoint mobjs extern mobj_t *skyboxcenterpnts[16]; // array of MT_SKYBOX centerpoint mobjs //FOF flags typedef enum { TMFV_NOPLANES = 1, TMFV_NOSIDES = 1<<1, TMFV_TOGGLEINSIDES = 1<<2, } textmapfofvisibility_t; typedef enum { TMFT_INTANGIBLETOP = 1, TMFT_INTANGIBLEBOTTOM = 1<<1, TMFT_DONTBLOCKPLAYER = 1<<2, TMFT_VISIBLEFROMINSIDE = (TMFT_INTANGIBLETOP|TMFT_INTANGIBLEBOTTOM|TMFT_DONTBLOCKPLAYER), TMFT_DONTBLOCKOTHERS = 1<<3, } textmapfoftangibility_t; typedef enum { TMFA_TRANSLUCENT = 1, TMFA_NOSHADE = 1<<1, } textmapfofappearance_t; typedef enum { TMFW_NOSIDES = 1, TMFW_DOUBLESHADOW = 1<<1, TMFW_COLORMAPONLY = 1<<2, TMFW_NORIPPLE = 1<<3, TMFW_GOOWATER = 1<<4, TMFW_SPLAT = 1<<5, } textmapfofwater_t; typedef enum { TMFB_REVERSE = 1, TMFB_SPINDASH = 1<<1, TMFB_DYNAMIC = 1<<2, } textmapfofbobbing_t; typedef enum { TMFC_NOSHADE = 1, TMFC_NORETURN = 1<<1, TMFC_AIRBOB = 1<<2, TMFC_FLOATBOB = 1<<3, TMFC_SPLAT = 1<<4, } textmapfofcrumbling_t; typedef enum { TMFR_REVERSE = 1, TMFR_SPINDASH = 1<<1, } textmapfofrising_t; typedef enum { TMFM_BRICK = 1, TMFM_INVISIBLE = 1<<1, } textmapfofmario_t; typedef enum { TMFB_TOUCH, TMFB_SPIN, TMFB_REGULAR, TMFB_STRONG, } textmapfofbusttype_t; typedef enum { TMFB_PUSHABLES = 1, TMFB_EXECUTOR = 1<<1, TMFB_ONLYBOTTOM = 1<<2, } textmapfofbustflags_t; // GETSECSPECIAL (specialval, section) // // Pulls out the special # from a particular section. // #define GETSECSPECIAL(i,j) ((i >> ((j-1)*4))&15) // This must be updated whenever we up the max flat size - quicker to assume rather than figuring out the sqrt of the specific flat's filesize. #define MAXFLATSIZE (2048<