mirror of
https://github.com/ringtailsoftware/uvm32.git
synced 2026-06-05 22:43:39 +00:00
Update makefile
This commit is contained in:
parent
096efb3b2c
commit
ce63353156
142 changed files with 61742 additions and 1 deletions
429
apps/zigdoom/src/puredoom/p_spec.h
Normal file
429
apps/zigdoom/src/puredoom/p_spec.h
Normal file
|
|
@ -0,0 +1,429 @@
|
|||
// 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.
|
||||
//
|
||||
// DESCRIPTION: none
|
||||
// Implements special effects:
|
||||
// Texture animation, height or lighting changes
|
||||
// according to adjacent sectors, respective
|
||||
// utility functions, etc.
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef __P_SPEC__
|
||||
#define __P_SPEC__
|
||||
|
||||
|
||||
#include "p_mobj.h"
|
||||
#include "r_defs.h"
|
||||
|
||||
|
||||
//
|
||||
// End-level timer (-TIMER option)
|
||||
//
|
||||
extern doom_boolean levelTimer;
|
||||
extern int levelTimeCount;
|
||||
|
||||
|
||||
// Define values for map objects
|
||||
#define MO_TELEPORTMAN 14
|
||||
|
||||
|
||||
// at game start
|
||||
void P_InitPicAnims(void);
|
||||
|
||||
// at map load
|
||||
void P_SpawnSpecials(void);
|
||||
|
||||
// every tic
|
||||
void P_UpdateSpecials(void);
|
||||
|
||||
// when needed
|
||||
doom_boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side);
|
||||
|
||||
void P_ShootSpecialLine(mobj_t* thing, line_t* line);
|
||||
void P_CrossSpecialLine(int linenum, int side, mobj_t* thing);
|
||||
void P_PlayerInSpecialSector(player_t* player);
|
||||
int twoSided(int sector, int line);
|
||||
sector_t* getSector(int currentSector, int line, int side);
|
||||
side_t* getSide(int currentSector, int line, int side);
|
||||
fixed_t P_FindLowestFloorSurrounding(sector_t* sec);
|
||||
fixed_t P_FindHighestFloorSurrounding(sector_t* sec);
|
||||
fixed_t P_FindNextHighestFloor(sector_t* sec, int currentheight);
|
||||
fixed_t P_FindLowestCeilingSurrounding(sector_t* sec);
|
||||
fixed_t P_FindHighestCeilingSurrounding(sector_t* sec);
|
||||
int P_FindSectorFromLineTag(line_t* line, int start);
|
||||
int P_FindMinSurroundingLight(sector_t* sector, int max);
|
||||
sector_t* getNextSector(line_t* line, sector_t* sec);
|
||||
|
||||
//
|
||||
// SPECIAL
|
||||
//
|
||||
int EV_DoDonut(line_t* line);
|
||||
|
||||
|
||||
//
|
||||
// P_LIGHTS
|
||||
//
|
||||
typedef struct
|
||||
{
|
||||
thinker_t thinker;
|
||||
sector_t* sector;
|
||||
int count;
|
||||
int maxlight;
|
||||
int minlight;
|
||||
} fireflicker_t;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
thinker_t thinker;
|
||||
sector_t* sector;
|
||||
int count;
|
||||
int maxlight;
|
||||
int minlight;
|
||||
int maxtime;
|
||||
int mintime;
|
||||
} lightflash_t;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
thinker_t thinker;
|
||||
sector_t* sector;
|
||||
int count;
|
||||
int minlight;
|
||||
int maxlight;
|
||||
int darktime;
|
||||
int brighttime;
|
||||
} strobe_t;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
thinker_t thinker;
|
||||
sector_t* sector;
|
||||
int minlight;
|
||||
int maxlight;
|
||||
int direction;
|
||||
} glow_t;
|
||||
|
||||
|
||||
#define GLOWSPEED 8
|
||||
#define STROBEBRIGHT 5
|
||||
#define FASTDARK 15
|
||||
#define SLOWDARK 35
|
||||
|
||||
void P_SpawnFireFlicker(sector_t* sector);
|
||||
void T_LightFlash(lightflash_t* flash);
|
||||
void P_SpawnLightFlash(sector_t* sector);
|
||||
void T_StrobeFlash(strobe_t* flash);
|
||||
|
||||
void P_SpawnStrobeFlash(sector_t* sector, int fastOrSlow, int inSync);
|
||||
void EV_StartLightStrobing(line_t* line);
|
||||
void EV_TurnTagLightsOff(line_t* line);
|
||||
|
||||
void EV_LightTurnOn(line_t* line, int bright);
|
||||
|
||||
void T_Glow(glow_t* g);
|
||||
void P_SpawnGlowingLight(sector_t* sector);
|
||||
|
||||
|
||||
//
|
||||
// P_SWITCH
|
||||
//
|
||||
typedef struct
|
||||
{
|
||||
char name1[9];
|
||||
char name2[9];
|
||||
short episode;
|
||||
} switchlist_t;
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
top,
|
||||
middle,
|
||||
bottom
|
||||
} bwhere_e;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
line_t* line;
|
||||
bwhere_e where;
|
||||
int btexture;
|
||||
int btimer;
|
||||
mobj_t* soundorg;
|
||||
} button_t;
|
||||
|
||||
|
||||
// max # of wall switches in a level
|
||||
#define MAXSWITCHES 50
|
||||
|
||||
// 4 players, 4 buttons each at once, max.
|
||||
#define MAXBUTTONS 16
|
||||
|
||||
// 1 second, in ticks.
|
||||
#define BUTTONTIME 35
|
||||
|
||||
|
||||
extern button_t buttonlist[MAXBUTTONS];
|
||||
|
||||
|
||||
void P_ChangeSwitchTexture(line_t* line, int useAgain);
|
||||
void P_InitSwitchList(void);
|
||||
|
||||
|
||||
//
|
||||
// P_PLATS
|
||||
//
|
||||
typedef enum
|
||||
{
|
||||
up,
|
||||
down,
|
||||
waiting,
|
||||
in_stasis
|
||||
} plat_e;
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
perpetualRaise,
|
||||
downWaitUpStay,
|
||||
raiseAndChange,
|
||||
raiseToNearestAndChange,
|
||||
blazeDWUS
|
||||
} plattype_e;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
thinker_t thinker;
|
||||
sector_t* sector;
|
||||
fixed_t speed;
|
||||
fixed_t low;
|
||||
fixed_t high;
|
||||
int wait;
|
||||
int count;
|
||||
plat_e status;
|
||||
plat_e oldstatus;
|
||||
doom_boolean crush;
|
||||
int tag;
|
||||
plattype_e type;
|
||||
} plat_t;
|
||||
|
||||
|
||||
#define PLATWAIT 3
|
||||
#define PLATSPEED FRACUNIT
|
||||
#define MAXPLATS 30
|
||||
|
||||
|
||||
extern plat_t* activeplats[MAXPLATS];
|
||||
|
||||
|
||||
void T_PlatRaise(plat_t* plat);
|
||||
int EV_DoPlat(line_t* line, plattype_e type, int amount);
|
||||
void P_AddActivePlat(plat_t* plat);
|
||||
void P_RemoveActivePlat(plat_t* plat);
|
||||
void EV_StopPlat(line_t* line);
|
||||
void P_ActivateInStasis(int tag);
|
||||
|
||||
|
||||
//
|
||||
// P_DOORS
|
||||
//
|
||||
typedef enum
|
||||
{
|
||||
door_normal,
|
||||
close30ThenOpen,
|
||||
door_close,
|
||||
door_open,
|
||||
raiseIn5Mins,
|
||||
blazeRaise,
|
||||
blazeOpen,
|
||||
blazeClose
|
||||
} vldoor_e;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
thinker_t thinker;
|
||||
vldoor_e type;
|
||||
sector_t* sector;
|
||||
fixed_t topheight;
|
||||
fixed_t speed;
|
||||
|
||||
// 1 = up, 0 = waiting at top, -1 = down
|
||||
int direction;
|
||||
|
||||
// tics to wait at the top
|
||||
int topwait;
|
||||
|
||||
// (keep in case a door going down is reset)
|
||||
// when it reaches 0, start going down
|
||||
int topcountdown;
|
||||
} vldoor_t;
|
||||
|
||||
|
||||
#define VDOORSPEED FRACUNIT*2
|
||||
#define VDOORWAIT 150
|
||||
|
||||
|
||||
void EV_VerticalDoor(line_t* line, mobj_t* thing);
|
||||
int EV_DoDoor(line_t* line, vldoor_e type);
|
||||
int EV_DoLockedDoor(line_t* line, vldoor_e type, mobj_t* thing);
|
||||
void T_VerticalDoor(vldoor_t* door);
|
||||
void P_SpawnDoorCloseIn30(sector_t* sec);
|
||||
void P_SpawnDoorRaiseIn5Mins(sector_t* sec, int secnum);
|
||||
|
||||
|
||||
//
|
||||
// P_CEILNG
|
||||
//
|
||||
typedef enum
|
||||
{
|
||||
lowerToFloor,
|
||||
raiseToHighest,
|
||||
lowerAndCrush,
|
||||
crushAndRaise,
|
||||
fastCrushAndRaise,
|
||||
silentCrushAndRaise
|
||||
} ceiling_e;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
thinker_t thinker;
|
||||
ceiling_e type;
|
||||
sector_t* sector;
|
||||
fixed_t bottomheight;
|
||||
fixed_t topheight;
|
||||
fixed_t speed;
|
||||
doom_boolean crush;
|
||||
|
||||
// 1 = up, 0 = waiting, -1 = down
|
||||
int direction;
|
||||
|
||||
// ID
|
||||
int tag;
|
||||
int olddirection;
|
||||
} ceiling_t;
|
||||
|
||||
|
||||
#define CEILSPEED FRACUNIT
|
||||
#define CEILWAIT 150
|
||||
#define MAXCEILINGS 30
|
||||
|
||||
|
||||
extern ceiling_t* activeceilings[MAXCEILINGS];
|
||||
|
||||
|
||||
int EV_DoCeiling(line_t* line, ceiling_e type);
|
||||
void T_MoveCeiling(ceiling_t* ceiling);
|
||||
void P_AddActiveCeiling(ceiling_t* c);
|
||||
void P_RemoveActiveCeiling(ceiling_t* c);
|
||||
int EV_CeilingCrushStop(line_t* line);
|
||||
void P_ActivateInStasisCeiling(line_t* line);
|
||||
|
||||
|
||||
//
|
||||
// P_FLOOR
|
||||
//
|
||||
typedef enum
|
||||
{
|
||||
// lower floor to highest surrounding floor
|
||||
lowerFloor,
|
||||
|
||||
// lower floor to lowest surrounding floor
|
||||
lowerFloorToLowest,
|
||||
|
||||
// lower floor to highest surrounding floor VERY FAST
|
||||
turboLower,
|
||||
|
||||
// raise floor to lowest surrounding CEILING
|
||||
raiseFloor,
|
||||
|
||||
// raise floor to next highest surrounding floor
|
||||
raiseFloorToNearest,
|
||||
|
||||
// raise floor to shortest height texture around it
|
||||
raiseToTexture,
|
||||
|
||||
// lower floor to lowest surrounding floor
|
||||
// and change floorpic
|
||||
lowerAndChange,
|
||||
|
||||
raiseFloor24,
|
||||
raiseFloor24AndChange,
|
||||
raiseFloorCrush,
|
||||
|
||||
// raise to next highest floor, turbo-speed
|
||||
raiseFloorTurbo,
|
||||
donutRaise,
|
||||
raiseFloor512
|
||||
} floor_e;
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
build8, // slowly build by 8
|
||||
turbo16 // quickly build by 16
|
||||
} stair_e;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
thinker_t thinker;
|
||||
floor_e type;
|
||||
doom_boolean crush;
|
||||
sector_t* sector;
|
||||
int direction;
|
||||
int newspecial;
|
||||
short texture;
|
||||
fixed_t floordestheight;
|
||||
fixed_t speed;
|
||||
} floormove_t;
|
||||
|
||||
|
||||
#define FLOORSPEED FRACUNIT
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ok,
|
||||
crushed,
|
||||
pastdest
|
||||
} result_e;
|
||||
|
||||
|
||||
result_e T_MovePlane(sector_t* sector, fixed_t speed, fixed_t dest, doom_boolean crush, int floorOrCeiling, int direction);
|
||||
int EV_BuildStairs(line_t* line, stair_e type);
|
||||
int EV_DoFloor(line_t* line, floor_e floortype);
|
||||
void T_MoveFloor(floormove_t* floor);
|
||||
|
||||
//
|
||||
// P_TELEPT
|
||||
//
|
||||
int EV_Teleport(line_t* line, int side, mobj_t* thing);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log:$
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
Loading…
Add table
Add a link
Reference in a new issue