mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-18 15:32:33 +00:00
Merge branch 'master' into mapthing-spawn-hook
This commit is contained in:
commit
8ffa741cda
22 changed files with 335 additions and 237 deletions
|
@ -1563,8 +1563,6 @@ static void CL_LoadReceivedSavegame(void)
|
||||||
automapactive = false;
|
automapactive = false;
|
||||||
|
|
||||||
// load a base level
|
// load a base level
|
||||||
playerdeadview = false;
|
|
||||||
|
|
||||||
if (P_LoadNetGame())
|
if (P_LoadNetGame())
|
||||||
{
|
{
|
||||||
const INT32 actnum = mapheaderinfo[gamemap-1]->actnum;
|
const INT32 actnum = mapheaderinfo[gamemap-1]->actnum;
|
||||||
|
|
|
@ -720,7 +720,6 @@ void D_StartTitle(void)
|
||||||
maptol = 0;
|
maptol = 0;
|
||||||
|
|
||||||
gameaction = ga_nothing;
|
gameaction = ga_nothing;
|
||||||
playerdeadview = false;
|
|
||||||
displayplayer = consoleplayer = 0;
|
displayplayer = consoleplayer = 0;
|
||||||
//demosequence = -1;
|
//demosequence = -1;
|
||||||
gametype = GT_COOP;
|
gametype = GT_COOP;
|
||||||
|
|
|
@ -34,7 +34,7 @@ void D_SRB2Loop(void) FUNCNORETURN;
|
||||||
// D_SRB2Main()
|
// D_SRB2Main()
|
||||||
// Not a globally visible function, just included for source reference,
|
// Not a globally visible function, just included for source reference,
|
||||||
// calls all startup code, parses command line options.
|
// calls all startup code, parses command line options.
|
||||||
// If not overrided by user input, calls N_AdvanceDemo.
|
// If not overrided by user input, calls D_AdvanceDemo.
|
||||||
//
|
//
|
||||||
void D_SRB2Main(void);
|
void D_SRB2Main(void);
|
||||||
|
|
||||||
|
@ -51,9 +51,6 @@ const char *D_Home(void);
|
||||||
//
|
//
|
||||||
// BASE LEVEL
|
// BASE LEVEL
|
||||||
//
|
//
|
||||||
void D_PageTicker(void);
|
|
||||||
// pagename is lumpname of a 320x200 patch to fill the screen
|
|
||||||
void D_PageDrawer(const char *pagename);
|
|
||||||
void D_AdvanceDemo(void);
|
void D_AdvanceDemo(void);
|
||||||
void D_StartTitle(void);
|
void D_StartTitle(void);
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,9 @@ doomcom_t *doomcom = NULL;
|
||||||
/// \brief network packet data, points inside doomcom
|
/// \brief network packet data, points inside doomcom
|
||||||
doomdata_t *netbuffer = NULL;
|
doomdata_t *netbuffer = NULL;
|
||||||
|
|
||||||
|
#ifdef DEBUGFILE
|
||||||
FILE *debugfile = NULL; // put some net info in a file during the game
|
FILE *debugfile = NULL; // put some net info in a file during the game
|
||||||
|
#endif
|
||||||
|
|
||||||
#define MAXREBOUND 8
|
#define MAXREBOUND 8
|
||||||
static doomdata_t reboundstore[MAXREBOUND];
|
static doomdata_t reboundstore[MAXREBOUND];
|
||||||
|
|
|
@ -20,6 +20,12 @@
|
||||||
// console vars
|
// console vars
|
||||||
extern consvar_t cv_playername;
|
extern consvar_t cv_playername;
|
||||||
extern consvar_t cv_playercolor;
|
extern consvar_t cv_playercolor;
|
||||||
|
extern consvar_t cv_skin;
|
||||||
|
// secondary splitscreen player
|
||||||
|
extern consvar_t cv_playername2;
|
||||||
|
extern consvar_t cv_playercolor2;
|
||||||
|
extern consvar_t cv_skin2;
|
||||||
|
|
||||||
#ifdef SEENAMES
|
#ifdef SEENAMES
|
||||||
extern consvar_t cv_seenames, cv_allowseenames;
|
extern consvar_t cv_seenames, cv_allowseenames;
|
||||||
#endif
|
#endif
|
||||||
|
@ -32,7 +38,6 @@ extern consvar_t cv_joyport2;
|
||||||
#endif
|
#endif
|
||||||
extern consvar_t cv_joyscale;
|
extern consvar_t cv_joyscale;
|
||||||
extern consvar_t cv_joyscale2;
|
extern consvar_t cv_joyscale2;
|
||||||
extern consvar_t cv_controlperkey;
|
|
||||||
|
|
||||||
// splitscreen with second mouse
|
// splitscreen with second mouse
|
||||||
extern consvar_t cv_mouse2port;
|
extern consvar_t cv_mouse2port;
|
||||||
|
@ -40,11 +45,6 @@ extern consvar_t cv_usemouse2;
|
||||||
#if (defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON)
|
#if (defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON)
|
||||||
extern consvar_t cv_mouse2opt;
|
extern consvar_t cv_mouse2opt;
|
||||||
#endif
|
#endif
|
||||||
extern consvar_t cv_invertmouse2;
|
|
||||||
extern consvar_t cv_alwaysfreelook2;
|
|
||||||
extern consvar_t cv_mousemove2;
|
|
||||||
extern consvar_t cv_mousesens2;
|
|
||||||
extern consvar_t cv_mouseysens2;
|
|
||||||
|
|
||||||
// normally in p_mobj but the .h is not read
|
// normally in p_mobj but the .h is not read
|
||||||
extern consvar_t cv_itemrespawntime;
|
extern consvar_t cv_itemrespawntime;
|
||||||
|
@ -53,13 +53,6 @@ extern consvar_t cv_itemrespawn;
|
||||||
extern consvar_t cv_flagtime;
|
extern consvar_t cv_flagtime;
|
||||||
extern consvar_t cv_suddendeath;
|
extern consvar_t cv_suddendeath;
|
||||||
|
|
||||||
extern consvar_t cv_skin;
|
|
||||||
|
|
||||||
// secondary splitscreen player
|
|
||||||
extern consvar_t cv_playername2;
|
|
||||||
extern consvar_t cv_playercolor2;
|
|
||||||
extern consvar_t cv_skin2;
|
|
||||||
|
|
||||||
extern consvar_t cv_touchtag;
|
extern consvar_t cv_touchtag;
|
||||||
extern consvar_t cv_hidetime;
|
extern consvar_t cv_hidetime;
|
||||||
|
|
||||||
|
@ -77,9 +70,6 @@ extern consvar_t cv_autobalance;
|
||||||
extern consvar_t cv_teamscramble;
|
extern consvar_t cv_teamscramble;
|
||||||
extern consvar_t cv_scrambleonchange;
|
extern consvar_t cv_scrambleonchange;
|
||||||
|
|
||||||
extern consvar_t cv_useranalog, cv_useranalog2;
|
|
||||||
extern consvar_t cv_analog, cv_analog2;
|
|
||||||
|
|
||||||
extern consvar_t cv_netstat;
|
extern consvar_t cv_netstat;
|
||||||
#ifdef WALLSPLATS
|
#ifdef WALLSPLATS
|
||||||
extern consvar_t cv_splats;
|
extern consvar_t cv_splats;
|
||||||
|
@ -120,17 +110,7 @@ extern consvar_t cv_maxping;
|
||||||
|
|
||||||
extern consvar_t cv_skipmapcheck;
|
extern consvar_t cv_skipmapcheck;
|
||||||
|
|
||||||
extern consvar_t cv_sleep, cv_screenshot_option, cv_screenshot_folder;
|
extern consvar_t cv_sleep;
|
||||||
|
|
||||||
extern consvar_t cv_moviemode;
|
|
||||||
|
|
||||||
extern consvar_t cv_zlib_level, cv_zlib_memory, cv_zlib_strategy;
|
|
||||||
|
|
||||||
extern consvar_t cv_zlib_window_bits, cv_zlib_levela, cv_zlib_memorya;
|
|
||||||
|
|
||||||
extern consvar_t cv_zlib_strategya, cv_zlib_window_bitsa;
|
|
||||||
|
|
||||||
extern consvar_t cv_apng_delay;
|
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
|
@ -211,7 +191,6 @@ void Command_ExitGame_f(void);
|
||||||
void Command_Retry_f(void);
|
void Command_Retry_f(void);
|
||||||
void D_GameTypeChanged(INT32 lastgametype); // not a real _OnChange function anymore
|
void D_GameTypeChanged(INT32 lastgametype); // not a real _OnChange function anymore
|
||||||
void D_MapChange(INT32 pmapnum, INT32 pgametype, boolean pultmode, boolean presetplayers, INT32 pdelay, boolean pskipprecutscene, boolean pfromlevelselect);
|
void D_MapChange(INT32 pmapnum, INT32 pgametype, boolean pultmode, boolean presetplayers, INT32 pdelay, boolean pskipprecutscene, boolean pfromlevelselect);
|
||||||
void ObjectPlace_OnChange(void);
|
|
||||||
void ItemFinder_OnChange(void);
|
void ItemFinder_OnChange(void);
|
||||||
void D_SetPassword(const char *pw);
|
void D_SetPassword(const char *pw);
|
||||||
|
|
||||||
|
|
|
@ -5180,6 +5180,7 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
|
|
||||||
// Deep Sea Gargoyle
|
// Deep Sea Gargoyle
|
||||||
"S_GARGOYLE",
|
"S_GARGOYLE",
|
||||||
|
"S_BIGGARGOYLE",
|
||||||
|
|
||||||
// DSZ Seaweed
|
// DSZ Seaweed
|
||||||
"S_SEAWEED1",
|
"S_SEAWEED1",
|
||||||
|
@ -5338,7 +5339,14 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
// Xmas-specific stuff
|
// Xmas-specific stuff
|
||||||
"S_XMASPOLE",
|
"S_XMASPOLE",
|
||||||
"S_CANDYCANE",
|
"S_CANDYCANE",
|
||||||
"S_SNOWMAN",
|
"S_SNOWMAN", // normal
|
||||||
|
"S_SNOWMANHAT", // with hat + scarf
|
||||||
|
"S_LAMPPOST1", // normal
|
||||||
|
"S_LAMPPOST2", // with snow
|
||||||
|
"S_HANGSTAR",
|
||||||
|
// Xmas GFZ bushes
|
||||||
|
"S_XMASBERRYBUSH",
|
||||||
|
"S_XMASBUSH",
|
||||||
|
|
||||||
// Botanic Serenity's loads of scenery states
|
// Botanic Serenity's loads of scenery states
|
||||||
"S_BSZTALLFLOWER_RED",
|
"S_BSZTALLFLOWER_RED",
|
||||||
|
@ -5530,10 +5538,6 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_PITY4",
|
"S_PITY4",
|
||||||
"S_PITY5",
|
"S_PITY5",
|
||||||
"S_PITY6",
|
"S_PITY6",
|
||||||
"S_PITY7",
|
|
||||||
"S_PITY8",
|
|
||||||
"S_PITY9",
|
|
||||||
"S_PITY10",
|
|
||||||
|
|
||||||
"S_FIRS1",
|
"S_FIRS1",
|
||||||
"S_FIRS2",
|
"S_FIRS2",
|
||||||
|
@ -6552,6 +6556,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
||||||
|
|
||||||
// Deep Sea Scenery
|
// Deep Sea Scenery
|
||||||
"MT_GARGOYLE", // Deep Sea Gargoyle
|
"MT_GARGOYLE", // Deep Sea Gargoyle
|
||||||
|
"MT_BIGGARGOYLE", // Deep Sea Gargoyle (Big)
|
||||||
"MT_SEAWEED", // DSZ Seaweed
|
"MT_SEAWEED", // DSZ Seaweed
|
||||||
"MT_WATERDRIP", // Dripping Water source
|
"MT_WATERDRIP", // Dripping Water source
|
||||||
"MT_WATERDROP", // Water drop from dripping water
|
"MT_WATERDROP", // Water drop from dripping water
|
||||||
|
@ -6620,7 +6625,14 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
||||||
// Christmas Scenery
|
// Christmas Scenery
|
||||||
"MT_XMASPOLE",
|
"MT_XMASPOLE",
|
||||||
"MT_CANDYCANE",
|
"MT_CANDYCANE",
|
||||||
"MT_SNOWMAN",
|
"MT_SNOWMAN", // normal
|
||||||
|
"MT_SNOWMANHAT", // with hat + scarf
|
||||||
|
"MT_LAMPPOST1", // normal
|
||||||
|
"MT_LAMPPOST2", // with snow
|
||||||
|
"MT_HANGSTAR",
|
||||||
|
// Xmas GFZ bushes
|
||||||
|
"MT_XMASBERRYBUSH",
|
||||||
|
"MT_XMASBUSH",
|
||||||
|
|
||||||
// Botanic Serenity
|
// Botanic Serenity
|
||||||
"MT_BSZTALLFLOWER_RED",
|
"MT_BSZTALLFLOWER_RED",
|
||||||
|
|
|
@ -452,19 +452,17 @@ extern mapthing_t *redctfstarts[MAXPLAYERS]; // CTF
|
||||||
|
|
||||||
#if defined (macintosh)
|
#if defined (macintosh)
|
||||||
#define DEBFILE(msg) I_OutputMsg(msg)
|
#define DEBFILE(msg) I_OutputMsg(msg)
|
||||||
extern FILE *debugfile;
|
|
||||||
#else
|
#else
|
||||||
#define DEBUGFILE
|
#define DEBUGFILE
|
||||||
#ifdef DEBUGFILE
|
#ifdef DEBUGFILE
|
||||||
#define DEBFILE(msg) { if (debugfile) { fputs(msg, debugfile); fflush(debugfile); } }
|
#define DEBFILE(msg) { if (debugfile) { fputs(msg, debugfile); fflush(debugfile); } }
|
||||||
extern FILE *debugfile;
|
|
||||||
#else
|
#else
|
||||||
#define DEBFILE(msg) {}
|
#define DEBFILE(msg) {}
|
||||||
extern FILE *debugfile;
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DEBUGFILE
|
#ifdef DEBUGFILE
|
||||||
|
extern FILE *debugfile;
|
||||||
extern INT32 debugload;
|
extern INT32 debugload;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -434,7 +434,6 @@ void F_StartIntro(void)
|
||||||
|
|
||||||
G_SetGamestate(GS_INTRO);
|
G_SetGamestate(GS_INTRO);
|
||||||
gameaction = ga_nothing;
|
gameaction = ga_nothing;
|
||||||
playerdeadview = false;
|
|
||||||
paused = false;
|
paused = false;
|
||||||
CON_ToggleOff();
|
CON_ToggleOff();
|
||||||
CON_ClearHUD();
|
CON_ClearHUD();
|
||||||
|
@ -1125,7 +1124,6 @@ void F_StartCredits(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
gameaction = ga_nothing;
|
gameaction = ga_nothing;
|
||||||
playerdeadview = false;
|
|
||||||
paused = false;
|
paused = false;
|
||||||
CON_ToggleOff();
|
CON_ToggleOff();
|
||||||
CON_ClearHUD();
|
CON_ClearHUD();
|
||||||
|
@ -1272,7 +1270,6 @@ void F_StartGameEvaluation(void)
|
||||||
G_SaveGame((UINT32)cursaveslot);
|
G_SaveGame((UINT32)cursaveslot);
|
||||||
|
|
||||||
gameaction = ga_nothing;
|
gameaction = ga_nothing;
|
||||||
playerdeadview = false;
|
|
||||||
paused = false;
|
paused = false;
|
||||||
CON_ToggleOff();
|
CON_ToggleOff();
|
||||||
CON_ClearHUD();
|
CON_ClearHUD();
|
||||||
|
@ -1383,7 +1380,6 @@ void F_StartGameEnd(void)
|
||||||
G_SetGamestate(GS_GAMEEND);
|
G_SetGamestate(GS_GAMEEND);
|
||||||
|
|
||||||
gameaction = ga_nothing;
|
gameaction = ga_nothing;
|
||||||
playerdeadview = false;
|
|
||||||
paused = false;
|
paused = false;
|
||||||
CON_ToggleOff();
|
CON_ToggleOff();
|
||||||
CON_ClearHUD();
|
CON_ClearHUD();
|
||||||
|
@ -1586,7 +1582,6 @@ void F_StartContinue(void)
|
||||||
gameaction = ga_nothing;
|
gameaction = ga_nothing;
|
||||||
|
|
||||||
keypressed = false;
|
keypressed = false;
|
||||||
playerdeadview = false;
|
|
||||||
paused = false;
|
paused = false;
|
||||||
CON_ToggleOff();
|
CON_ToggleOff();
|
||||||
CON_ClearHUD();
|
CON_ClearHUD();
|
||||||
|
@ -1755,7 +1750,6 @@ void F_StartCustomCutscene(INT32 cutscenenum, boolean precutscene, boolean reset
|
||||||
G_SetGamestate(GS_CUTSCENE);
|
G_SetGamestate(GS_CUTSCENE);
|
||||||
|
|
||||||
gameaction = ga_nothing;
|
gameaction = ga_nothing;
|
||||||
playerdeadview = false;
|
|
||||||
paused = false;
|
paused = false;
|
||||||
CON_ToggleOff();
|
CON_ToggleOff();
|
||||||
|
|
||||||
|
|
|
@ -3619,7 +3619,6 @@ void G_InitNew(UINT8 pultmode, const char *mapname, boolean resetplayer, boolean
|
||||||
mapmusflags |= MUSIC_RELOADRESET;
|
mapmusflags |= MUSIC_RELOADRESET;
|
||||||
|
|
||||||
ultimatemode = pultmode;
|
ultimatemode = pultmode;
|
||||||
playerdeadview = false;
|
|
||||||
automapactive = false;
|
automapactive = false;
|
||||||
imcontinuing = false;
|
imcontinuing = false;
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,9 @@ extern INT16 rw_maximums[NUM_WEAPONS];
|
||||||
// used in game menu
|
// used in game menu
|
||||||
extern consvar_t cv_crosshair, cv_crosshair2;
|
extern consvar_t cv_crosshair, cv_crosshair2;
|
||||||
extern consvar_t cv_invertmouse, cv_alwaysfreelook, cv_mousemove;
|
extern consvar_t cv_invertmouse, cv_alwaysfreelook, cv_mousemove;
|
||||||
|
extern consvar_t cv_invertmouse2, cv_alwaysfreelook2, cv_mousemove2;
|
||||||
|
extern consvar_t cv_useranalog, cv_useranalog2;
|
||||||
|
extern consvar_t cv_analog, cv_analog2;
|
||||||
extern consvar_t cv_sideaxis,cv_turnaxis,cv_moveaxis,cv_lookaxis,cv_fireaxis,cv_firenaxis;
|
extern consvar_t cv_sideaxis,cv_turnaxis,cv_moveaxis,cv_lookaxis,cv_fireaxis,cv_firenaxis;
|
||||||
extern consvar_t cv_sideaxis2,cv_turnaxis2,cv_moveaxis2,cv_lookaxis2,cv_fireaxis2,cv_firenaxis2;
|
extern consvar_t cv_sideaxis2,cv_turnaxis2,cv_moveaxis2,cv_lookaxis2,cv_fireaxis2,cv_firenaxis2;
|
||||||
extern consvar_t cv_ghost_bestscore, cv_ghost_besttime, cv_ghost_bestrings, cv_ghost_last, cv_ghost_guest;
|
extern consvar_t cv_ghost_bestscore, cv_ghost_besttime, cv_ghost_bestrings, cv_ghost_last, cv_ghost_guest;
|
||||||
|
|
|
@ -126,6 +126,8 @@ typedef enum
|
||||||
|
|
||||||
// mouse values are used once
|
// mouse values are used once
|
||||||
extern consvar_t cv_mousesens, cv_mouseysens;
|
extern consvar_t cv_mousesens, cv_mouseysens;
|
||||||
|
extern consvar_t cv_mousesens2, cv_mouseysens2;
|
||||||
|
extern consvar_t cv_controlperkey;
|
||||||
|
|
||||||
extern INT32 mousex, mousey;
|
extern INT32 mousex, mousey;
|
||||||
extern INT32 mlooky; //mousey with mlookSensitivity
|
extern INT32 mlooky; //mousey with mlookSensitivity
|
||||||
|
|
|
@ -564,8 +564,6 @@ static inline void HWR_SubsecPoly(INT32 num, poly_t *poly)
|
||||||
subsector_t *sub;
|
subsector_t *sub;
|
||||||
seg_t *lseg;
|
seg_t *lseg;
|
||||||
|
|
||||||
sscount++;
|
|
||||||
|
|
||||||
sub = &subsectors[num];
|
sub = &subsectors[num];
|
||||||
count = sub->numlines;
|
count = sub->numlines;
|
||||||
lseg = &segs[sub->firstline];
|
lseg = &segs[sub->firstline];
|
||||||
|
|
|
@ -3367,7 +3367,6 @@ static void HWR_Subsector(size_t num)
|
||||||
|
|
||||||
if (num < numsubsectors)
|
if (num < numsubsectors)
|
||||||
{
|
{
|
||||||
sscount++;
|
|
||||||
// subsector
|
// subsector
|
||||||
sub = &subsectors[num];
|
sub = &subsectors[num];
|
||||||
// sector
|
// sector
|
||||||
|
|
|
@ -78,9 +78,6 @@ extern boolean chat_on;
|
||||||
// set true whenever the tab rankings are being shown for any reason
|
// set true whenever the tab rankings are being shown for any reason
|
||||||
extern boolean hu_showscores;
|
extern boolean hu_showscores;
|
||||||
|
|
||||||
// P_DeathThink sets this true to show scores while dead, in multiplayer
|
|
||||||
extern boolean playerdeadview;
|
|
||||||
|
|
||||||
// init heads up data at game startup.
|
// init heads up data at game startup.
|
||||||
void HU_Init(void);
|
void HU_Init(void);
|
||||||
|
|
||||||
|
|
223
src/info.c
223
src/info.c
|
@ -219,9 +219,11 @@ char sprnames[NUMSPRITES + 1][5] =
|
||||||
// Egg Rock Scenery
|
// Egg Rock Scenery
|
||||||
|
|
||||||
// Christmas Scenery
|
// Christmas Scenery
|
||||||
"XMS1",
|
"XMS1", // Christmas Pole
|
||||||
"XMS2",
|
"XMS2", // Candy Cane
|
||||||
"XMS3",
|
"XMS3", // Snowman
|
||||||
|
"XMS4", // Lamppost
|
||||||
|
"XMS5", // Hanging Star
|
||||||
|
|
||||||
// Botanic Serenity Scenery
|
// Botanic Serenity Scenery
|
||||||
"BSZ1", // Tall flowers
|
"BSZ1", // Tall flowers
|
||||||
|
@ -1767,6 +1769,7 @@ state_t states[NUMSTATES] =
|
||||||
|
|
||||||
// Deep Sea Gargoyle
|
// Deep Sea Gargoyle
|
||||||
{SPR_GARG, 0, -1, {NULL}, 0, 0, S_NULL}, // S_GARGOYLE
|
{SPR_GARG, 0, -1, {NULL}, 0, 0, S_NULL}, // S_GARGOYLE
|
||||||
|
{SPR_GARG, 1, -1, {NULL}, 0, 0, S_NULL}, // S_BIGGARGOYLE
|
||||||
|
|
||||||
// DSZ Seaweed
|
// DSZ Seaweed
|
||||||
{SPR_SEWE, 0, -1, {NULL}, 0, 0, S_SEAWEED2}, // S_SEAWEED1
|
{SPR_SEWE, 0, -1, {NULL}, 0, 0, S_SEAWEED2}, // S_SEAWEED1
|
||||||
|
@ -1933,6 +1936,13 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_XMS1, 0, -1, {NULL}, 0, 0, S_NULL}, // S_XMASPOLE
|
{SPR_XMS1, 0, -1, {NULL}, 0, 0, S_NULL}, // S_XMASPOLE
|
||||||
{SPR_XMS2, 0, -1, {NULL}, 0, 0, S_NULL}, // S_CANDYCANE
|
{SPR_XMS2, 0, -1, {NULL}, 0, 0, S_NULL}, // S_CANDYCANE
|
||||||
{SPR_XMS3, 0, -1, {NULL}, 0, 0, S_NULL}, // S_SNOWMAN
|
{SPR_XMS3, 0, -1, {NULL}, 0, 0, S_NULL}, // S_SNOWMAN
|
||||||
|
{SPR_XMS3, 1, -1, {NULL}, 0, 0, S_NULL}, // S_SNOWMANHAT
|
||||||
|
{SPR_XMS4, 0, -1, {NULL}, 0, 0, S_NULL}, // S_LAMPPOST1
|
||||||
|
{SPR_XMS4, 1, -1, {NULL}, 0, 0, S_NULL}, // S_LAMPPOST2
|
||||||
|
{SPR_XMS5, 0, -1, {NULL}, 0, 0, S_NULL}, // S_HANGSTAR
|
||||||
|
// Xmas GFZ bushes
|
||||||
|
{SPR_BUS1, 1, -1, {NULL}, 0, 0, S_NULL}, // S_BERRYBUSH
|
||||||
|
{SPR_BUS2, 1, -1, {NULL}, 0, 0, S_NULL}, // S_BUSH
|
||||||
|
|
||||||
// Loads of Botanic Serenity bullshit
|
// Loads of Botanic Serenity bullshit
|
||||||
{SPR_BSZ1, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BSZTALLFLOWER_RED
|
{SPR_BSZ1, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BSZTALLFLOWER_RED
|
||||||
|
@ -2122,16 +2132,12 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_ELEM, FF_FULLBRIGHT|20, 1, {NULL}, 0, 0, S_ELEMF10}, // S_ELEMF9
|
{SPR_ELEM, FF_FULLBRIGHT|20, 1, {NULL}, 0, 0, S_ELEMF10}, // S_ELEMF9
|
||||||
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_ELEMF1 }, // S_ELEMF10
|
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_ELEMF1 }, // S_ELEMF10
|
||||||
|
|
||||||
{SPR_PITY, FF_TRANS20 , 1, {NULL}, 0, 0, S_PITY2 }, // S_PITY1
|
{SPR_PITY, FF_TRANS30 , 2, {NULL}, 0, 0, S_PITY2}, // S_PITY1
|
||||||
{SPR_PITY, FF_TRANS20|1, 1, {NULL}, 0, 0, S_PITY3 }, // S_PITY2
|
{SPR_PITY, FF_TRANS30|1, 2, {NULL}, 0, 0, S_PITY3}, // S_PITY2
|
||||||
{SPR_PITY, FF_TRANS20 , 1, {NULL}, 0, 0, S_PITY4 }, // S_PITY3
|
{SPR_PITY, FF_TRANS30|2, 2, {NULL}, 0, 0, S_PITY4}, // S_PITY3
|
||||||
{SPR_PITY, FF_TRANS20|2, 1, {NULL}, 0, 0, S_PITY5 }, // S_PITY4
|
{SPR_PITY, FF_TRANS20|3, 2, {NULL}, 0, 0, S_PITY5}, // S_PITY4
|
||||||
{SPR_PITY, FF_TRANS20 , 1, {NULL}, 0, 0, S_PITY6 }, // S_PITY5
|
{SPR_PITY, FF_TRANS30|4, 2, {NULL}, 0, 0, S_PITY6}, // S_PITY5
|
||||||
{SPR_PITY, FF_TRANS20|3, 1, {NULL}, 0, 0, S_PITY7 }, // S_PITY6
|
{SPR_PITY, FF_TRANS20|5, 2, {NULL}, 0, 0, S_PITY1}, // S_PITY6
|
||||||
{SPR_PITY, FF_TRANS20 , 1, {NULL}, 0, 0, S_PITY8 }, // S_PITY7
|
|
||||||
{SPR_PITY, FF_TRANS20|4, 1, {NULL}, 0, 0, S_PITY9 }, // S_PITY8
|
|
||||||
{SPR_PITY, FF_TRANS20 , 1, {NULL}, 0, 0, S_PITY10}, // S_PITY9
|
|
||||||
{SPR_PITY, FF_TRANS20|5, 1, {NULL}, 0, 0, S_PITY1 }, // S_PITY10
|
|
||||||
|
|
||||||
{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40 , 2, {NULL}, 0, 0, S_FIRS2}, // S_FIRS1
|
{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40 , 2, {NULL}, 0, 0, S_FIRS2}, // S_FIRS1
|
||||||
{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|1, 2, {NULL}, 0, 0, S_FIRS3}, // S_FIRS2
|
{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|1, 2, {NULL}, 0, 0, S_FIRS3}, // S_FIRS2
|
||||||
|
@ -8147,6 +8153,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ // MT_BIGGARGOYLE
|
||||||
|
1009, // doomednum
|
||||||
|
S_BIGGARGOYLE, // spawnstate
|
||||||
|
1000, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
8, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_None, // deathsound
|
||||||
|
12*FRACUNIT, // speed
|
||||||
|
32*FRACUNIT, // radius
|
||||||
|
80*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
1, // damage
|
||||||
|
sfx_statu2, // activesound
|
||||||
|
MF_SLIDEME|MF_SOLID|MF_PUSHABLE, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
{ // MT_SEAWEED
|
{ // MT_SEAWEED
|
||||||
1001, // doomednum
|
1001, // doomednum
|
||||||
S_SEAWEED1, // spawnstate
|
S_SEAWEED1, // spawnstate
|
||||||
|
@ -9515,7 +9548,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
sfx_None, // deathsound
|
sfx_None, // deathsound
|
||||||
25*FRACUNIT, // speed
|
25*FRACUNIT, // speed
|
||||||
16*FRACUNIT, // radius
|
16*FRACUNIT, // radius
|
||||||
40*FRACUNIT, // height
|
64*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
100, // mass
|
100, // mass
|
||||||
1, // damage
|
1, // damage
|
||||||
|
@ -9524,6 +9557,168 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ // MT_SNOWMANHAT
|
||||||
|
1853, // doomednum
|
||||||
|
S_SNOWMANHAT, // spawnstate
|
||||||
|
1000, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
8, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_None, // deathsound
|
||||||
|
25*FRACUNIT, // speed
|
||||||
|
16*FRACUNIT, // radius
|
||||||
|
80*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
1, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_SLIDEME|MF_SOLID|MF_PUSHABLE, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
|
{ // MT_LAMPPOST1
|
||||||
|
1854, // doomednum
|
||||||
|
S_LAMPPOST1, // spawnstate
|
||||||
|
1000, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
8, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_None, // deathsound
|
||||||
|
0, // speed
|
||||||
|
8*FRACUNIT, // radius
|
||||||
|
120*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
1, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_SOLID, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
|
{ // MT_LAMPPOST2
|
||||||
|
1855, // doomednum
|
||||||
|
S_LAMPPOST2, // spawnstate
|
||||||
|
1000, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
8, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_None, // deathsound
|
||||||
|
0, // speed
|
||||||
|
8*FRACUNIT, // radius
|
||||||
|
120*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
1, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_SOLID, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
|
{ // MT_HANGSTAR
|
||||||
|
1856, // doomednum
|
||||||
|
S_HANGSTAR, // spawnstate
|
||||||
|
1000, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
8, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_None, // deathsound
|
||||||
|
0, // speed
|
||||||
|
4*FRACUNIT, // radius
|
||||||
|
80*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
1, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOBLOCKMAP|MF_NOCLIP|MF_SPAWNCEILING|MF_NOGRAVITY|MF_SCENERY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
|
{ // MT_XMASBERRYBUSH
|
||||||
|
1857, // doomednum
|
||||||
|
S_XMASBERRYBUSH, // spawnstate
|
||||||
|
1000, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
8, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_None, // deathsound
|
||||||
|
0, // speed
|
||||||
|
16*FRACUNIT, // radius
|
||||||
|
32*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
0, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOTHINK|MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
|
{ // MT_XMASBUSH
|
||||||
|
1858, // doomednum
|
||||||
|
S_XMASBUSH, // spawnstate
|
||||||
|
1000, // spawnhealth
|
||||||
|
S_NULL, // seestate
|
||||||
|
sfx_None, // seesound
|
||||||
|
8, // reactiontime
|
||||||
|
sfx_None, // attacksound
|
||||||
|
S_NULL, // painstate
|
||||||
|
0, // painchance
|
||||||
|
sfx_None, // painsound
|
||||||
|
S_NULL, // meleestate
|
||||||
|
S_NULL, // missilestate
|
||||||
|
S_NULL, // deathstate
|
||||||
|
S_NULL, // xdeathstate
|
||||||
|
sfx_None, // deathsound
|
||||||
|
0, // speed
|
||||||
|
16*FRACUNIT, // radius
|
||||||
|
32*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
0, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOTHINK|MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
// No, I did not do all of this by hand.
|
// No, I did not do all of this by hand.
|
||||||
// I made a script to make all of these for me.
|
// I made a script to make all of these for me.
|
||||||
// Ha HA. ~Inuyasha
|
// Ha HA. ~Inuyasha
|
||||||
|
|
32
src/info.h
32
src/info.h
|
@ -425,9 +425,11 @@ typedef enum sprite
|
||||||
// Egg Rock Scenery
|
// Egg Rock Scenery
|
||||||
|
|
||||||
// Christmas Scenery
|
// Christmas Scenery
|
||||||
SPR_XMS1,
|
SPR_XMS1, // Christmas Pole
|
||||||
SPR_XMS2,
|
SPR_XMS2, // Candy Cane
|
||||||
SPR_XMS3,
|
SPR_XMS3, // Snowman
|
||||||
|
SPR_XMS4, // Lamppost
|
||||||
|
SPR_XMS5, // Hanging Star
|
||||||
|
|
||||||
// Botanic Serenity Scenery
|
// Botanic Serenity Scenery
|
||||||
SPR_BSZ1, // Tall flowers
|
SPR_BSZ1, // Tall flowers
|
||||||
|
@ -1975,6 +1977,7 @@ typedef enum state
|
||||||
|
|
||||||
// Deep Sea Gargoyle
|
// Deep Sea Gargoyle
|
||||||
S_GARGOYLE,
|
S_GARGOYLE,
|
||||||
|
S_BIGGARGOYLE,
|
||||||
|
|
||||||
// DSZ Seaweed
|
// DSZ Seaweed
|
||||||
S_SEAWEED1,
|
S_SEAWEED1,
|
||||||
|
@ -2133,7 +2136,14 @@ typedef enum state
|
||||||
// Xmas-specific stuff
|
// Xmas-specific stuff
|
||||||
S_XMASPOLE,
|
S_XMASPOLE,
|
||||||
S_CANDYCANE,
|
S_CANDYCANE,
|
||||||
S_SNOWMAN,
|
S_SNOWMAN, // normal
|
||||||
|
S_SNOWMANHAT, // with hat + scarf
|
||||||
|
S_LAMPPOST1, // normal
|
||||||
|
S_LAMPPOST2, // with snow
|
||||||
|
S_HANGSTAR,
|
||||||
|
// Xmas GFZ bushes
|
||||||
|
S_XMASBERRYBUSH,
|
||||||
|
S_XMASBUSH,
|
||||||
|
|
||||||
// Botanic Serenity's loads of scenery states
|
// Botanic Serenity's loads of scenery states
|
||||||
S_BSZTALLFLOWER_RED,
|
S_BSZTALLFLOWER_RED,
|
||||||
|
@ -2325,10 +2335,6 @@ typedef enum state
|
||||||
S_PITY4,
|
S_PITY4,
|
||||||
S_PITY5,
|
S_PITY5,
|
||||||
S_PITY6,
|
S_PITY6,
|
||||||
S_PITY7,
|
|
||||||
S_PITY8,
|
|
||||||
S_PITY9,
|
|
||||||
S_PITY10,
|
|
||||||
|
|
||||||
S_FIRS1,
|
S_FIRS1,
|
||||||
S_FIRS2,
|
S_FIRS2,
|
||||||
|
@ -3366,6 +3372,7 @@ typedef enum mobj_type
|
||||||
|
|
||||||
// Deep Sea Scenery
|
// Deep Sea Scenery
|
||||||
MT_GARGOYLE, // Deep Sea Gargoyle
|
MT_GARGOYLE, // Deep Sea Gargoyle
|
||||||
|
MT_BIGGARGOYLE, // Deep Sea Gargoyle (Big)
|
||||||
MT_SEAWEED, // DSZ Seaweed
|
MT_SEAWEED, // DSZ Seaweed
|
||||||
MT_WATERDRIP, // Dripping Water source
|
MT_WATERDRIP, // Dripping Water source
|
||||||
MT_WATERDROP, // Water drop from dripping water
|
MT_WATERDROP, // Water drop from dripping water
|
||||||
|
@ -3434,7 +3441,14 @@ typedef enum mobj_type
|
||||||
// Christmas Scenery
|
// Christmas Scenery
|
||||||
MT_XMASPOLE,
|
MT_XMASPOLE,
|
||||||
MT_CANDYCANE,
|
MT_CANDYCANE,
|
||||||
MT_SNOWMAN,
|
MT_SNOWMAN, // normal
|
||||||
|
MT_SNOWMANHAT, // with hat + scarf
|
||||||
|
MT_LAMPPOST1, // normal
|
||||||
|
MT_LAMPPOST2, // with snow
|
||||||
|
MT_HANGSTAR,
|
||||||
|
// Xmas GFZ bushes
|
||||||
|
MT_XMASBERRYBUSH,
|
||||||
|
MT_XMASBUSH,
|
||||||
|
|
||||||
// Botanic Serenity scenery
|
// Botanic Serenity scenery
|
||||||
MT_BSZTALLFLOWER_RED,
|
MT_BSZTALLFLOWER_RED,
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include "tables.h"
|
#include "tables.h"
|
||||||
|
|
||||||
#include "d_event.h" // Screenshot responder
|
#include "d_event.h" // Screenshot responder
|
||||||
|
#include "command.h"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
MM_OFF = 0,
|
MM_OFF = 0,
|
||||||
|
@ -28,6 +29,12 @@ typedef enum {
|
||||||
} moviemode_t;
|
} moviemode_t;
|
||||||
extern moviemode_t moviemode;
|
extern moviemode_t moviemode;
|
||||||
|
|
||||||
|
extern consvar_t cv_screenshot_option, cv_screenshot_folder;
|
||||||
|
extern consvar_t cv_moviemode;
|
||||||
|
extern consvar_t cv_zlib_memory, cv_zlib_level, cv_zlib_strategy, cv_zlib_window_bits;
|
||||||
|
extern consvar_t cv_zlib_memorya, cv_zlib_levela, cv_zlib_strategya, cv_zlib_window_bitsa;
|
||||||
|
extern consvar_t cv_apng_delay;
|
||||||
|
|
||||||
void M_StartMovie(void);
|
void M_StartMovie(void);
|
||||||
void M_SaveFrame(void);
|
void M_SaveFrame(void);
|
||||||
void M_StopMovie(void);
|
void M_StopMovie(void);
|
||||||
|
|
|
@ -72,7 +72,6 @@
|
||||||
|
|
||||||
// both the head and tail of the thinker list
|
// both the head and tail of the thinker list
|
||||||
extern thinker_t thinkercap;
|
extern thinker_t thinkercap;
|
||||||
extern INT32 runcount;
|
|
||||||
|
|
||||||
void P_InitThinkers(void);
|
void P_InitThinkers(void);
|
||||||
void P_AddThinker(thinker_t *thinker);
|
void P_AddThinker(thinker_t *thinker);
|
||||||
|
|
|
@ -8434,6 +8434,10 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
|
||||||
case MT_SPIKE:
|
case MT_SPIKE:
|
||||||
mobj->flags2 |= MF2_STANDONME;
|
mobj->flags2 |= MF2_STANDONME;
|
||||||
break;
|
break;
|
||||||
|
case MT_LAMPPOST1:
|
||||||
|
case MT_LAMPPOST2:
|
||||||
|
mobj->flags2 |= MF2_STANDONME;
|
||||||
|
break;
|
||||||
case MT_DETON:
|
case MT_DETON:
|
||||||
mobj->movedir = 0;
|
mobj->movedir = 0;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -9093,8 +9093,6 @@ void P_DoPityCheck(player_t *player)
|
||||||
// P_PlayerThink
|
// P_PlayerThink
|
||||||
//
|
//
|
||||||
|
|
||||||
boolean playerdeadview; // show match/chaos/tag/capture the flag rankings while in death view
|
|
||||||
|
|
||||||
void P_PlayerThink(player_t *player)
|
void P_PlayerThink(player_t *player)
|
||||||
{
|
{
|
||||||
ticcmd_t *cmd;
|
ticcmd_t *cmd;
|
||||||
|
@ -9290,10 +9288,6 @@ void P_PlayerThink(player_t *player)
|
||||||
if (player->playerstate == PST_DEAD)
|
if (player->playerstate == PST_DEAD)
|
||||||
{
|
{
|
||||||
player->mo->flags2 &= ~MF2_SHADOW;
|
player->mo->flags2 &= ~MF2_SHADOW;
|
||||||
// show the multiplayer rankings while dead
|
|
||||||
if (player == &players[displayplayer])
|
|
||||||
playerdeadview = true;
|
|
||||||
|
|
||||||
P_DeathThink(player);
|
P_DeathThink(player);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -9314,9 +9308,6 @@ void P_PlayerThink(player_t *player)
|
||||||
player->lives = cv_startinglives.value;
|
player->lives = cv_startinglives.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player == &players[displayplayer])
|
|
||||||
playerdeadview = false;
|
|
||||||
|
|
||||||
if ((gametype == GT_RACE || gametype == GT_COMPETITION) && leveltime < 4*TICRATE)
|
if ((gametype == GT_RACE || gametype == GT_COMPETITION) && leveltime < 4*TICRATE)
|
||||||
{
|
{
|
||||||
cmd->buttons &= BT_USE; // Remove all buttons except BT_USE
|
cmd->buttons &= BT_USE; // Remove all buttons except BT_USE
|
||||||
|
|
144
src/r_main.c
144
src/r_main.c
|
@ -60,7 +60,6 @@ fixed_t projectiony; // aspect ratio
|
||||||
// just for profiling purposes
|
// just for profiling purposes
|
||||||
size_t framecount;
|
size_t framecount;
|
||||||
|
|
||||||
size_t sscount;
|
|
||||||
size_t loopcount;
|
size_t loopcount;
|
||||||
|
|
||||||
fixed_t viewx, viewy, viewz;
|
fixed_t viewx, viewy, viewz;
|
||||||
|
@ -491,9 +490,6 @@ static void R_InitTextureMapping(void)
|
||||||
// Take out the fencepost cases from viewangletox.
|
// Take out the fencepost cases from viewangletox.
|
||||||
for (i = 0; i < FINEANGLES/2; i++)
|
for (i = 0; i < FINEANGLES/2; i++)
|
||||||
{
|
{
|
||||||
t = FixedMul(FINETANGENT(i), focallength);
|
|
||||||
t = centerx - t;
|
|
||||||
|
|
||||||
if (viewangletox[i] == -1)
|
if (viewangletox[i] == -1)
|
||||||
viewangletox[i] = 0;
|
viewangletox[i] = 0;
|
||||||
else if (viewangletox[i] == viewwidth+1)
|
else if (viewangletox[i] == viewwidth+1)
|
||||||
|
@ -806,27 +802,43 @@ void R_SkyboxFrame(player_t *player)
|
||||||
if (viewmobj->spawnpoint)
|
if (viewmobj->spawnpoint)
|
||||||
viewz = ((fixed_t)viewmobj->spawnpoint->angle)<<FRACBITS;
|
viewz = ((fixed_t)viewmobj->spawnpoint->angle)<<FRACBITS;
|
||||||
|
|
||||||
viewx += quake.x;
|
|
||||||
viewy += quake.y;
|
|
||||||
viewz += quake.z;
|
|
||||||
|
|
||||||
if (mapheaderinfo[gamemap-1])
|
if (mapheaderinfo[gamemap-1])
|
||||||
{
|
{
|
||||||
mapheader_t *mh = mapheaderinfo[gamemap-1];
|
mapheader_t *mh = mapheaderinfo[gamemap-1];
|
||||||
if (player->awayviewtics)
|
vector3_t campos = {0,0,0}; // Position of player's actual view point
|
||||||
{
|
|
||||||
if (skyboxmo[1])
|
if (player->awayviewtics) {
|
||||||
|
campos.x = player->awayviewmobj->x;
|
||||||
|
campos.y = player->awayviewmobj->y;
|
||||||
|
campos.z = player->awayviewmobj->z + 20*FRACUNIT;
|
||||||
|
} else if (thiscam->chase) {
|
||||||
|
campos.x = thiscam->x;
|
||||||
|
campos.y = thiscam->y;
|
||||||
|
campos.z = thiscam->z + (thiscam->height>>1);
|
||||||
|
} else {
|
||||||
|
campos.x = player->mo->x;
|
||||||
|
campos.y = player->mo->y;
|
||||||
|
campos.z = player->viewz;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Earthquake effects should be scaled in the skybox
|
||||||
|
// (if an axis isn't used, the skybox won't shake in that direction)
|
||||||
|
campos.x += quake.x;
|
||||||
|
campos.y += quake.y;
|
||||||
|
campos.z += quake.z;
|
||||||
|
|
||||||
|
if (skyboxmo[1]) // Is there a viewpoint?
|
||||||
{
|
{
|
||||||
fixed_t x = 0, y = 0;
|
fixed_t x = 0, y = 0;
|
||||||
if (mh->skybox_scalex > 0)
|
if (mh->skybox_scalex > 0)
|
||||||
x = (player->awayviewmobj->x - skyboxmo[1]->x) / mh->skybox_scalex;
|
x = (campos.x - skyboxmo[1]->x) / mh->skybox_scalex;
|
||||||
else if (mh->skybox_scalex < 0)
|
else if (mh->skybox_scalex < 0)
|
||||||
x = (player->awayviewmobj->x - skyboxmo[1]->x) * -mh->skybox_scalex;
|
x = (campos.x - skyboxmo[1]->x) * -mh->skybox_scalex;
|
||||||
|
|
||||||
if (mh->skybox_scaley > 0)
|
if (mh->skybox_scaley > 0)
|
||||||
y = (player->awayviewmobj->y - skyboxmo[1]->y) / mh->skybox_scaley;
|
y = (campos.y - skyboxmo[1]->y) / mh->skybox_scaley;
|
||||||
else if (mh->skybox_scaley < 0)
|
else if (mh->skybox_scaley < 0)
|
||||||
y = (player->awayviewmobj->y - skyboxmo[1]->y) * -mh->skybox_scaley;
|
y = (campos.y - skyboxmo[1]->y) * -mh->skybox_scaley;
|
||||||
|
|
||||||
if (viewmobj->angle == 0)
|
if (viewmobj->angle == 0)
|
||||||
{
|
{
|
||||||
|
@ -856,103 +868,9 @@ void R_SkyboxFrame(player_t *player)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mh->skybox_scalez > 0)
|
if (mh->skybox_scalez > 0)
|
||||||
viewz += (player->awayviewmobj->z + 20*FRACUNIT) / mh->skybox_scalez;
|
viewz += campos.z / mh->skybox_scalez;
|
||||||
else if (mh->skybox_scalez < 0)
|
else if (mh->skybox_scalez < 0)
|
||||||
viewz += (player->awayviewmobj->z + 20*FRACUNIT) * -mh->skybox_scalez;
|
viewz += campos.z * -mh->skybox_scalez;
|
||||||
}
|
|
||||||
else if (thiscam->chase)
|
|
||||||
{
|
|
||||||
if (skyboxmo[1])
|
|
||||||
{
|
|
||||||
fixed_t x = 0, y = 0;
|
|
||||||
if (mh->skybox_scalex > 0)
|
|
||||||
x = (thiscam->x - skyboxmo[1]->x) / mh->skybox_scalex;
|
|
||||||
else if (mh->skybox_scalex < 0)
|
|
||||||
x = (thiscam->x - skyboxmo[1]->x) * -mh->skybox_scalex;
|
|
||||||
|
|
||||||
if (mh->skybox_scaley > 0)
|
|
||||||
y = (thiscam->y - skyboxmo[1]->y) / mh->skybox_scaley;
|
|
||||||
else if (mh->skybox_scaley < 0)
|
|
||||||
y = (thiscam->y - skyboxmo[1]->y) * -mh->skybox_scaley;
|
|
||||||
|
|
||||||
if (viewmobj->angle == 0)
|
|
||||||
{
|
|
||||||
viewx += x;
|
|
||||||
viewy += y;
|
|
||||||
}
|
|
||||||
else if (viewmobj->angle == ANGLE_90)
|
|
||||||
{
|
|
||||||
viewx -= y;
|
|
||||||
viewy += x;
|
|
||||||
}
|
|
||||||
else if (viewmobj->angle == ANGLE_180)
|
|
||||||
{
|
|
||||||
viewx -= x;
|
|
||||||
viewy -= y;
|
|
||||||
}
|
|
||||||
else if (viewmobj->angle == ANGLE_270)
|
|
||||||
{
|
|
||||||
viewx += y;
|
|
||||||
viewy -= x;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
angle_t ang = viewmobj->angle>>ANGLETOFINESHIFT;
|
|
||||||
viewx += FixedMul(x,FINECOSINE(ang)) - FixedMul(y, FINESINE(ang));
|
|
||||||
viewy += FixedMul(x, FINESINE(ang)) + FixedMul(y,FINECOSINE(ang));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (mh->skybox_scalez > 0)
|
|
||||||
viewz += (thiscam->z + (thiscam->height>>1)) / mh->skybox_scalez;
|
|
||||||
else if (mh->skybox_scalez < 0)
|
|
||||||
viewz += (thiscam->z + (thiscam->height>>1)) * -mh->skybox_scalez;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (skyboxmo[1])
|
|
||||||
{
|
|
||||||
fixed_t x = 0, y = 0;
|
|
||||||
if (mh->skybox_scalex > 0)
|
|
||||||
x = (player->mo->x - skyboxmo[1]->x) / mh->skybox_scalex;
|
|
||||||
else if (mh->skybox_scalex < 0)
|
|
||||||
x = (player->mo->x - skyboxmo[1]->x) * -mh->skybox_scalex;
|
|
||||||
if (mh->skybox_scaley > 0)
|
|
||||||
y = (player->mo->y - skyboxmo[1]->y) / mh->skybox_scaley;
|
|
||||||
else if (mh->skybox_scaley < 0)
|
|
||||||
y = (player->mo->y - skyboxmo[1]->y) * -mh->skybox_scaley;
|
|
||||||
|
|
||||||
if (viewmobj->angle == 0)
|
|
||||||
{
|
|
||||||
viewx += x;
|
|
||||||
viewy += y;
|
|
||||||
}
|
|
||||||
else if (viewmobj->angle == ANGLE_90)
|
|
||||||
{
|
|
||||||
viewx -= y;
|
|
||||||
viewy += x;
|
|
||||||
}
|
|
||||||
else if (viewmobj->angle == ANGLE_180)
|
|
||||||
{
|
|
||||||
viewx -= x;
|
|
||||||
viewy -= y;
|
|
||||||
}
|
|
||||||
else if (viewmobj->angle == ANGLE_270)
|
|
||||||
{
|
|
||||||
viewx += y;
|
|
||||||
viewy -= x;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
angle_t ang = viewmobj->angle>>ANGLETOFINESHIFT;
|
|
||||||
viewx += FixedMul(x,FINECOSINE(ang)) - FixedMul(y, FINESINE(ang));
|
|
||||||
viewy += FixedMul(x, FINESINE(ang)) + FixedMul(y,FINECOSINE(ang));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (mh->skybox_scalez > 0)
|
|
||||||
viewz += player->viewz / mh->skybox_scalez;
|
|
||||||
else if (mh->skybox_scalez < 0)
|
|
||||||
viewz += player->viewz * -mh->skybox_scalez;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (viewmobj->subsector)
|
if (viewmobj->subsector)
|
||||||
|
@ -963,8 +881,6 @@ void R_SkyboxFrame(player_t *player)
|
||||||
viewsin = FINESINE(viewangle>>ANGLETOFINESHIFT);
|
viewsin = FINESINE(viewangle>>ANGLETOFINESHIFT);
|
||||||
viewcos = FINECOSINE(viewangle>>ANGLETOFINESHIFT);
|
viewcos = FINECOSINE(viewangle>>ANGLETOFINESHIFT);
|
||||||
|
|
||||||
sscount = 0;
|
|
||||||
|
|
||||||
// recalc necessary stuff for mouseaiming
|
// recalc necessary stuff for mouseaiming
|
||||||
// slopes are already calculated for the full possible view (which is 4*viewheight).
|
// slopes are already calculated for the full possible view (which is 4*viewheight).
|
||||||
|
|
||||||
|
@ -1088,8 +1004,6 @@ void R_SetupFrame(player_t *player, boolean skybox)
|
||||||
viewsin = FINESINE(viewangle>>ANGLETOFINESHIFT);
|
viewsin = FINESINE(viewangle>>ANGLETOFINESHIFT);
|
||||||
viewcos = FINECOSINE(viewangle>>ANGLETOFINESHIFT);
|
viewcos = FINECOSINE(viewangle>>ANGLETOFINESHIFT);
|
||||||
|
|
||||||
sscount = 0;
|
|
||||||
|
|
||||||
// recalc necessary stuff for mouseaiming
|
// recalc necessary stuff for mouseaiming
|
||||||
// slopes are already calculated for the full possible view (which is 4*viewheight).
|
// slopes are already calculated for the full possible view (which is 4*viewheight).
|
||||||
|
|
||||||
|
|
|
@ -108,7 +108,4 @@ extern angle_t rw_normalangle;
|
||||||
// angle to line origin
|
// angle to line origin
|
||||||
extern angle_t rw_angle1;
|
extern angle_t rw_angle1;
|
||||||
|
|
||||||
// Segs count?
|
|
||||||
extern size_t sscount;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue