Merge branch 'master' into supergoldedit
This commit is contained in:
commit
2dc72219e7
|
@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.0)
|
||||||
# DO NOT CHANGE THIS SRB2 STRING! Some variable names depend on this string.
|
# DO NOT CHANGE THIS SRB2 STRING! Some variable names depend on this string.
|
||||||
# Version change is fine.
|
# Version change is fine.
|
||||||
project(SRB2
|
project(SRB2
|
||||||
VERSION 2.2.1
|
VERSION 2.2.2
|
||||||
LANGUAGES C)
|
LANGUAGES C)
|
||||||
|
|
||||||
if(${PROJECT_SOURCE_DIR} MATCHES ${PROJECT_BINARY_DIR})
|
if(${PROJECT_SOURCE_DIR} MATCHES ${PROJECT_BINARY_DIR})
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
version: 2.2.1.{branch}-{build}
|
version: 2.2.2.{branch}-{build}
|
||||||
os: MinGW
|
os: MinGW
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
|
|
|
@ -19,7 +19,8 @@ set(SRB2_ASSET_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/installer"
|
||||||
set(SRB2_ASSET_HASHED
|
set(SRB2_ASSET_HASHED
|
||||||
"srb2.pk3;\
|
"srb2.pk3;\
|
||||||
player.dta;\
|
player.dta;\
|
||||||
zones.pk3"
|
zones.pk3;\
|
||||||
|
patch.pk3"
|
||||||
CACHE STRING "Asset filenames to apply MD5 checks. No spaces between entries!"
|
CACHE STRING "Asset filenames to apply MD5 checks. No spaces between entries!"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# GNU Make makefile for SRB2
|
# GNU Make makefile for SRB2
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# Copyright (C) 1998-2000 by DooM Legacy Team.
|
# Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
# Copyright (C) 2003-2019 by Sonic Team Junior.
|
# Copyright (C) 2003-2020 by Sonic Team Junior.
|
||||||
#
|
#
|
||||||
# This program is free software distributed under the
|
# This program is free software distributed under the
|
||||||
# terms of the GNU General Public License, version 2.
|
# terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2019, James R.
|
Copyright 2019-2020, James R.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2019, James R.
|
Copyright 2019-2020, James R.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2007-2016 by John "JTE" Muniz.
|
// Copyright (C) 2007-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2011-2019 by Sonic Team Junior.
|
// Copyright (C) 2011-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2007-2016 by John "JTE" Muniz.
|
// Copyright (C) 2007-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -27,13 +27,13 @@
|
||||||
|
|
||||||
/* Manually defined asset hashes for non-CMake builds
|
/* Manually defined asset hashes for non-CMake builds
|
||||||
* Last updated 2020 / 02 / 15 - v2.2.1 - main assets
|
* Last updated 2020 / 02 / 15 - v2.2.1 - main assets
|
||||||
* Last updated 20?? / ?? / ?? - v2.2.? - patch.pk3
|
* Last updated 2020 / 02 / 22 - v2.2.2 - patch.pk3
|
||||||
*/
|
*/
|
||||||
#define ASSET_HASH_SRB2_PK3 "0277c9416756627004e83cbb5b2e3e28"
|
#define ASSET_HASH_SRB2_PK3 "0277c9416756627004e83cbb5b2e3e28"
|
||||||
#define ASSET_HASH_ZONES_PK3 "f7e88afb6af7996a834c7d663144bead"
|
#define ASSET_HASH_ZONES_PK3 "f7e88afb6af7996a834c7d663144bead"
|
||||||
#define ASSET_HASH_PLAYER_DTA "ad49e07b17cc662f1ad70c454910b4ae"
|
#define ASSET_HASH_PLAYER_DTA "ad49e07b17cc662f1ad70c454910b4ae"
|
||||||
#ifdef USE_PATCH_DTA
|
#ifdef USE_PATCH_DTA
|
||||||
#define ASSET_HASH_PATCH_PK3 "there is no patch.pk3, only zuul"
|
#define ASSET_HASH_PATCH_PK3 "ee54330ecb743314c5f962af4db731ff"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -3945,7 +3945,9 @@ static void HandlePacketFromPlayer(SINT8 node)
|
||||||
INT32 netconsole;
|
INT32 netconsole;
|
||||||
tic_t realend, realstart;
|
tic_t realend, realstart;
|
||||||
UINT8 *pak, *txtpak, numtxtpak;
|
UINT8 *pak, *txtpak, numtxtpak;
|
||||||
|
#ifndef NOMD5
|
||||||
UINT8 finalmd5[16];/* Well, it's the cool thing to do? */
|
UINT8 finalmd5[16];/* Well, it's the cool thing to do? */
|
||||||
|
#endif
|
||||||
|
|
||||||
txtpak = NULL;
|
txtpak = NULL;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
56
src/d_main.c
56
src/d_main.c
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -266,6 +266,9 @@ static void D_Display(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rendermode == render_soft && !splitscreen)
|
||||||
|
R_CheckViewMorph();
|
||||||
|
|
||||||
// change the view size if needed
|
// change the view size if needed
|
||||||
if (setsizeneeded || setrenderstillneeded)
|
if (setsizeneeded || setrenderstillneeded)
|
||||||
{
|
{
|
||||||
|
@ -446,6 +449,9 @@ static void D_Display(void)
|
||||||
// Image postprocessing effect
|
// Image postprocessing effect
|
||||||
if (rendermode == render_soft)
|
if (rendermode == render_soft)
|
||||||
{
|
{
|
||||||
|
if (!splitscreen)
|
||||||
|
R_ApplyViewMorph();
|
||||||
|
|
||||||
if (postimgtype)
|
if (postimgtype)
|
||||||
V_DoPostProcessor(0, postimgtype, postimgparam);
|
V_DoPostProcessor(0, postimgtype, postimgparam);
|
||||||
if (postimgtype2)
|
if (postimgtype2)
|
||||||
|
@ -1035,7 +1041,7 @@ void D_SRB2Main(void)
|
||||||
// Print GPL notice for our console users (Linux)
|
// Print GPL notice for our console users (Linux)
|
||||||
CONS_Printf(
|
CONS_Printf(
|
||||||
"\n\nSonic Robo Blast 2\n"
|
"\n\nSonic Robo Blast 2\n"
|
||||||
"Copyright (C) 1998-2019 by Sonic Team Junior\n\n"
|
"Copyright (C) 1998-2020 by Sonic Team Junior\n\n"
|
||||||
"This program comes with ABSOLUTELY NO WARRANTY.\n\n"
|
"This program comes with ABSOLUTELY NO WARRANTY.\n\n"
|
||||||
"This is free software, and you are welcome to redistribute it\n"
|
"This is free software, and you are welcome to redistribute it\n"
|
||||||
"and/or modify it under the terms of the GNU General Public License\n"
|
"and/or modify it under the terms of the GNU General Public License\n"
|
||||||
|
@ -1206,22 +1212,17 @@ void D_SRB2Main(void)
|
||||||
|
|
||||||
// load wad, including the main wad file
|
// load wad, including the main wad file
|
||||||
CONS_Printf("W_InitMultipleFiles(): Adding IWAD and main PWADs.\n");
|
CONS_Printf("W_InitMultipleFiles(): Adding IWAD and main PWADs.\n");
|
||||||
if (!W_InitMultipleFiles(startupwadfiles, mainwads))
|
W_InitMultipleFiles(startupwadfiles, mainwads);
|
||||||
#ifdef _DEBUG
|
|
||||||
CONS_Error("A WAD file was not found or not valid.\nCheck the log to see which ones.\n");
|
|
||||||
#else
|
|
||||||
I_Error("A WAD file was not found or not valid.\nCheck the log to see which ones.\n");
|
|
||||||
#endif
|
|
||||||
D_CleanFile();
|
D_CleanFile();
|
||||||
|
|
||||||
#ifndef DEVELOP // md5s last updated 16/02/20 (ddmmyy)
|
#ifndef DEVELOP // md5s last updated 22/02/20 (ddmmyy)
|
||||||
|
|
||||||
// Check MD5s of autoloaded files
|
// Check MD5s of autoloaded files
|
||||||
W_VerifyFileMD5(0, ASSET_HASH_SRB2_PK3); // srb2.pk3
|
W_VerifyFileMD5(0, ASSET_HASH_SRB2_PK3); // srb2.pk3
|
||||||
W_VerifyFileMD5(1, ASSET_HASH_ZONES_PK3); // zones.pk3
|
W_VerifyFileMD5(1, ASSET_HASH_ZONES_PK3); // zones.pk3
|
||||||
W_VerifyFileMD5(2, ASSET_HASH_PLAYER_DTA); // player.dta
|
W_VerifyFileMD5(2, ASSET_HASH_PLAYER_DTA); // player.dta
|
||||||
#ifdef USE_PATCH_DTA
|
#ifdef USE_PATCH_DTA
|
||||||
W_VerifyFileMD5(3, ASSET_HASH_PATCH_DTA); // patch.pk3
|
W_VerifyFileMD5(3, ASSET_HASH_PATCH_PK3); // patch.pk3
|
||||||
#endif
|
#endif
|
||||||
// don't check music.dta because people like to modify it, and it doesn't matter if they do
|
// don't check music.dta because people like to modify it, and it doesn't matter if they do
|
||||||
// ...except it does if they slip maps in there, and that's what W_VerifyNMUSlumps is for.
|
// ...except it does if they slip maps in there, and that's what W_VerifyNMUSlumps is for.
|
||||||
|
@ -1229,20 +1230,6 @@ void D_SRB2Main(void)
|
||||||
|
|
||||||
mainwadstally = packetsizetally; // technically not accurate atm, remember to port the two-stage -file process from kart in 2.2.x
|
mainwadstally = packetsizetally; // technically not accurate atm, remember to port the two-stage -file process from kart in 2.2.x
|
||||||
|
|
||||||
if (M_CheckParm("-warp") && M_IsNextParm())
|
|
||||||
{
|
|
||||||
const char *word = M_GetNextParm();
|
|
||||||
pstartmap = G_FindMapByNameOrCode(word, 0);
|
|
||||||
if (! pstartmap)
|
|
||||||
I_Error("Cannot find a map remotely named '%s'\n", word);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!M_CheckParm("-server"))
|
|
||||||
G_SetGameModified(true);
|
|
||||||
autostart = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
cht_Init();
|
cht_Init();
|
||||||
|
|
||||||
//---------------------------------------------------- READY SCREEN
|
//---------------------------------------------------- READY SCREEN
|
||||||
|
@ -1291,12 +1278,14 @@ void D_SRB2Main(void)
|
||||||
// Lactozilla: Does the render mode need to change?
|
// Lactozilla: Does the render mode need to change?
|
||||||
if ((setrenderneeded != 0) && (setrenderneeded != rendermode))
|
if ((setrenderneeded != 0) && (setrenderneeded != rendermode))
|
||||||
{
|
{
|
||||||
|
CONS_Printf("Switching the renderer...\n");
|
||||||
needpatchflush = true;
|
needpatchflush = true;
|
||||||
needpatchrecache = true;
|
needpatchrecache = true;
|
||||||
VID_CheckRenderer();
|
VID_CheckRenderer();
|
||||||
SCR_ChangeRendererCVars(setrenderneeded);
|
SCR_ChangeRendererCVars(setrenderneeded);
|
||||||
}
|
|
||||||
D_CheckRendererState();
|
D_CheckRendererState();
|
||||||
|
setrenderneeded = 0;
|
||||||
|
}
|
||||||
|
|
||||||
wipegamestate = gamestate;
|
wipegamestate = gamestate;
|
||||||
|
|
||||||
|
@ -1304,6 +1293,23 @@ void D_SRB2Main(void)
|
||||||
|
|
||||||
//------------------------------------------------ COMMAND LINE PARAMS
|
//------------------------------------------------ COMMAND LINE PARAMS
|
||||||
|
|
||||||
|
// this must be done after loading gamedata,
|
||||||
|
// to avoid setting off the corrupted gamedata code in G_LoadGameData if a SOC with custom gamedata is added
|
||||||
|
// -- Monster Iestyn 20/02/20
|
||||||
|
if (M_CheckParm("-warp") && M_IsNextParm())
|
||||||
|
{
|
||||||
|
const char *word = M_GetNextParm();
|
||||||
|
pstartmap = G_FindMapByNameOrCode(word, 0);
|
||||||
|
if (! pstartmap)
|
||||||
|
I_Error("Cannot find a map remotely named '%s'\n", word);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!M_CheckParm("-server"))
|
||||||
|
G_SetGameModified(true);
|
||||||
|
autostart = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize CD-Audio
|
// Initialize CD-Audio
|
||||||
if (M_CheckParm("-usecd") && !dedicated)
|
if (M_CheckParm("-usecd") && !dedicated)
|
||||||
I_InitCD();
|
I_InitCD();
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -370,7 +370,7 @@ consvar_t cv_advancemap = {"advancemap", "Next", CV_NETVAR, advancemap_cons_t, N
|
||||||
static CV_PossibleValue_t playersforexit_cons_t[] = {{0, "One"}, {1, "1/4"}, {2, "Half"}, {3, "3/4"}, {4, "All"}, {0, NULL}};
|
static CV_PossibleValue_t playersforexit_cons_t[] = {{0, "One"}, {1, "1/4"}, {2, "Half"}, {3, "3/4"}, {4, "All"}, {0, NULL}};
|
||||||
consvar_t cv_playersforexit = {"playersforexit", "All", CV_NETVAR, playersforexit_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_playersforexit = {"playersforexit", "All", CV_NETVAR, playersforexit_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
consvar_t cv_exitmove = {"exitmove", "Off", CV_NETVAR|CV_CALL, CV_OnOff, ExitMove_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_exitmove = {"exitmove", "On", CV_NETVAR|CV_CALL, CV_OnOff, ExitMove_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
consvar_t cv_runscripts = {"runscripts", "Yes", 0, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_runscripts = {"runscripts", "Yes", 0, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
|
@ -3749,9 +3749,15 @@ static void ExitMove_OnChange(void)
|
||||||
if (cv_exitmove.value)
|
if (cv_exitmove.value)
|
||||||
{
|
{
|
||||||
for (i = 0; i < MAXPLAYERS; ++i)
|
for (i = 0; i < MAXPLAYERS; ++i)
|
||||||
if (playeringame[i] && players[i].mo
|
if (playeringame[i] && players[i].mo)
|
||||||
&& players[i].mo->target && players[i].mo->target->type == MT_SIGN)
|
{
|
||||||
|
if (players[i].mo->target && players[i].mo->target->type == MT_SIGN)
|
||||||
P_SetTarget(&players[i].mo->target, NULL);
|
P_SetTarget(&players[i].mo->target, NULL);
|
||||||
|
|
||||||
|
if (players[i].pflags & PF_FINISHED)
|
||||||
|
P_GiveFinishFlags(&players[i]);
|
||||||
|
}
|
||||||
|
|
||||||
CONS_Printf(M_GetText("Players can now move after completing the level.\n"));
|
CONS_Printf(M_GetText("Players can now move after completing the level.\n"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -278,6 +278,7 @@ typedef enum
|
||||||
pw_nights_linkfreeze,
|
pw_nights_linkfreeze,
|
||||||
|
|
||||||
pw_nocontrol, //for linedef exec 427
|
pw_nocontrol, //for linedef exec 427
|
||||||
|
pw_justlaunched, // Launched off a slope this tic (0=none, 1=standard launch, 2=half-pipe launch)
|
||||||
|
|
||||||
NUMPOWERS
|
NUMPOWERS
|
||||||
} powertype_t;
|
} powertype_t;
|
||||||
|
@ -324,6 +325,8 @@ typedef struct player_s
|
||||||
// bounded/scaled total momentum.
|
// bounded/scaled total momentum.
|
||||||
fixed_t bob;
|
fixed_t bob;
|
||||||
|
|
||||||
|
angle_t viewrollangle;
|
||||||
|
|
||||||
// Mouse aiming, where the guy is looking at!
|
// Mouse aiming, where the guy is looking at!
|
||||||
// It is updated with cmd->aiming.
|
// It is updated with cmd->aiming.
|
||||||
angle_t aiming;
|
angle_t aiming;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -1806,6 +1806,24 @@ static void readlevelheader(MYFILE *f, INT32 num)
|
||||||
else
|
else
|
||||||
mapheaderinfo[num-1]->levelflags &= ~LF_NOTITLECARD;
|
mapheaderinfo[num-1]->levelflags &= ~LF_NOTITLECARD;
|
||||||
}
|
}
|
||||||
|
else if (fastcmp(word, "SHOWTITLECARDFOR"))
|
||||||
|
{
|
||||||
|
mapheaderinfo[num-1]->levelflags |= LF_NOTITLECARD;
|
||||||
|
tmp = strtok(word2,",");
|
||||||
|
do {
|
||||||
|
if (fastcmp(tmp, "FIRST"))
|
||||||
|
mapheaderinfo[num-1]->levelflags &= ~LF_NOTITLECARDFIRST;
|
||||||
|
else if (fastcmp(tmp, "RESPAWN"))
|
||||||
|
mapheaderinfo[num-1]->levelflags &= ~LF_NOTITLECARDRESPAWN;
|
||||||
|
else if (fastcmp(tmp, "RECORDATTACK"))
|
||||||
|
mapheaderinfo[num-1]->levelflags &= ~LF_NOTITLECARDRECORDATTACK;
|
||||||
|
else if (fastcmp(tmp, "ALL"))
|
||||||
|
mapheaderinfo[num-1]->levelflags &= ~LF_NOTITLECARD;
|
||||||
|
else if (!fastcmp(tmp, "NONE"))
|
||||||
|
deh_warning("Level header %d: unknown titlecard show option %s\n", num, tmp);
|
||||||
|
|
||||||
|
} while((tmp = strtok(NULL,",")) != NULL);
|
||||||
|
}
|
||||||
|
|
||||||
// Individual triggers for menu flags
|
// Individual triggers for menu flags
|
||||||
else if (fastcmp(word, "HIDDEN"))
|
else if (fastcmp(word, "HIDDEN"))
|
||||||
|
@ -7460,6 +7478,9 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
// Got Flag Sign
|
// Got Flag Sign
|
||||||
"S_GOTFLAG",
|
"S_GOTFLAG",
|
||||||
|
|
||||||
|
// Finish flag
|
||||||
|
"S_FINISHFLAG",
|
||||||
|
|
||||||
"S_CORK",
|
"S_CORK",
|
||||||
"S_LHRT",
|
"S_LHRT",
|
||||||
|
|
||||||
|
@ -8580,6 +8601,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
||||||
"MT_LOCKONINF", // In-level Target
|
"MT_LOCKONINF", // In-level Target
|
||||||
"MT_TAG", // Tag Sign
|
"MT_TAG", // Tag Sign
|
||||||
"MT_GOTFLAG", // Got Flag sign
|
"MT_GOTFLAG", // Got Flag sign
|
||||||
|
"MT_FINISHFLAG", // Finish flag
|
||||||
|
|
||||||
// Ambient Sounds
|
// Ambient Sounds
|
||||||
"MT_AWATERA", // Ambient Water Sound 1
|
"MT_AWATERA", // Ambient Water Sound 1
|
||||||
|
@ -8970,9 +8992,11 @@ static const char *COLOR_ENUMS[] = {
|
||||||
// Desaturated
|
// Desaturated
|
||||||
"AETHER", // SKINCOLOR_AETHER,
|
"AETHER", // SKINCOLOR_AETHER,
|
||||||
"SLATE", // SKINCOLOR_SLATE,
|
"SLATE", // SKINCOLOR_SLATE,
|
||||||
|
"BLUEBELL", // SKINCOLOR_BLUEBELL,
|
||||||
"PINK", // SKINCOLOR_PINK,
|
"PINK", // SKINCOLOR_PINK,
|
||||||
"YOGURT", // SKINCOLOR_YOGURT,
|
"YOGURT", // SKINCOLOR_YOGURT,
|
||||||
"BROWN", // SKINCOLOR_BROWN,
|
"BROWN", // SKINCOLOR_BROWN,
|
||||||
|
"BRONZE", // SKINCOLOR_BRONZE,
|
||||||
"TAN", // SKINCOLOR_TAN,
|
"TAN", // SKINCOLOR_TAN,
|
||||||
"BEIGE", // SKINCOLOR_BEIGE,
|
"BEIGE", // SKINCOLOR_BEIGE,
|
||||||
"MOSS", // SKINCOLOR_MOSS,
|
"MOSS", // SKINCOLOR_MOSS,
|
||||||
|
@ -8985,9 +9009,11 @@ static const char *COLOR_ENUMS[] = {
|
||||||
"RED", // SKINCOLOR_RED,
|
"RED", // SKINCOLOR_RED,
|
||||||
"CRIMSON", // SKINCOLOR_CRIMSON,
|
"CRIMSON", // SKINCOLOR_CRIMSON,
|
||||||
"FLAME", // SKINCOLOR_FLAME,
|
"FLAME", // SKINCOLOR_FLAME,
|
||||||
|
"KETCHUP", // SKINCOLOR_KETCHUP,
|
||||||
"PEACHY", // SKINCOLOR_PEACHY,
|
"PEACHY", // SKINCOLOR_PEACHY,
|
||||||
"QUAIL", // SKINCOLOR_QUAIL,
|
"QUAIL", // SKINCOLOR_QUAIL,
|
||||||
"SUNSET", // SKINCOLOR_SUNSET,
|
"SUNSET", // SKINCOLOR_SUNSET,
|
||||||
|
"COPPER", // SKINCOLOR_COPPER,
|
||||||
"APRICOT", // SKINCOLOR_APRICOT,
|
"APRICOT", // SKINCOLOR_APRICOT,
|
||||||
"ORANGE", // SKINCOLOR_ORANGE,
|
"ORANGE", // SKINCOLOR_ORANGE,
|
||||||
"RUST", // SKINCOLOR_RUST,
|
"RUST", // SKINCOLOR_RUST,
|
||||||
|
@ -8997,6 +9023,7 @@ static const char *COLOR_ENUMS[] = {
|
||||||
"OLIVE", // SKINCOLOR_OLIVE,
|
"OLIVE", // SKINCOLOR_OLIVE,
|
||||||
"LIME", // SKINCOLOR_LIME,
|
"LIME", // SKINCOLOR_LIME,
|
||||||
"PERIDOT", // SKINCOLOR_PERIDOT,
|
"PERIDOT", // SKINCOLOR_PERIDOT,
|
||||||
|
"APPLE", // SKINCOLOR_APPLE,
|
||||||
"GREEN", // SKINCOLOR_GREEN,
|
"GREEN", // SKINCOLOR_GREEN,
|
||||||
"FOREST", // SKINCOLOR_FOREST,
|
"FOREST", // SKINCOLOR_FOREST,
|
||||||
"EMERALD", // SKINCOLOR_EMERALD,
|
"EMERALD", // SKINCOLOR_EMERALD,
|
||||||
|
@ -9023,6 +9050,7 @@ static const char *COLOR_ENUMS[] = {
|
||||||
"VIOLET", // SKINCOLOR_VIOLET,
|
"VIOLET", // SKINCOLOR_VIOLET,
|
||||||
"LILAC", // SKINCOLOR_LILAC,
|
"LILAC", // SKINCOLOR_LILAC,
|
||||||
"PLUM", // SKINCOLOR_PLUM,
|
"PLUM", // SKINCOLOR_PLUM,
|
||||||
|
"RASPBERRY", // SKINCOLOR_RASPBERRY,
|
||||||
"ROSY", // SKINCOLOR_ROSY,
|
"ROSY", // SKINCOLOR_ROSY,
|
||||||
|
|
||||||
// Super special awesome Super flashing colors!
|
// Super special awesome Super flashing colors!
|
||||||
|
@ -9116,7 +9144,8 @@ static const char *const POWERS_LIST[] = {
|
||||||
"NIGHTS_LINKFREEZE",
|
"NIGHTS_LINKFREEZE",
|
||||||
|
|
||||||
//for linedef exec 427
|
//for linedef exec 427
|
||||||
"NOCONTROL"
|
"NOCONTROL",
|
||||||
|
"JUSTLAUNCHED",
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *const HUDITEMS_LIST[] = {
|
static const char *const HUDITEMS_LIST[] = {
|
||||||
|
@ -9353,6 +9382,9 @@ struct {
|
||||||
{"LF_NOZONE",LF_NOZONE},
|
{"LF_NOZONE",LF_NOZONE},
|
||||||
{"LF_SAVEGAME",LF_SAVEGAME},
|
{"LF_SAVEGAME",LF_SAVEGAME},
|
||||||
{"LF_MIXNIGHTSCOUNTDOWN",LF_MIXNIGHTSCOUNTDOWN},
|
{"LF_MIXNIGHTSCOUNTDOWN",LF_MIXNIGHTSCOUNTDOWN},
|
||||||
|
{"LF_NOTITLECARDFIRST",LF_NOTITLECARDFIRST},
|
||||||
|
{"LF_NOTITLECARDRESPAWN",LF_NOTITLECARDRESPAWN},
|
||||||
|
{"LF_NOTITLECARDRECORDATTACK",LF_NOTITLECARDRECORDATTACK},
|
||||||
{"LF_NOTITLECARD",LF_NOTITLECARD},
|
{"LF_NOTITLECARD",LF_NOTITLECARD},
|
||||||
{"LF_WARNINGTITLE",LF_WARNINGTITLE},
|
{"LF_WARNINGTITLE",LF_WARNINGTITLE},
|
||||||
// And map flags
|
// And map flags
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Emacs style mode select -*- C++ -*-
|
// Emacs style mode select -*- C++ -*-
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// Copyright (C) 2005-2019 by Sonic Team Junior.
|
// Copyright (C) 2005-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -143,16 +143,16 @@ extern char logfilename[1024];
|
||||||
// we use comprevision and compbranch instead.
|
// we use comprevision and compbranch instead.
|
||||||
#else
|
#else
|
||||||
#define VERSION 202 // Game version
|
#define VERSION 202 // Game version
|
||||||
#define SUBVERSION 1 // more precise version number
|
#define SUBVERSION 2 // more precise version number
|
||||||
#define VERSIONSTRING "v2.2.1"
|
#define VERSIONSTRING "v2.2.2"
|
||||||
#define VERSIONSTRINGW L"v2.2.1"
|
#define VERSIONSTRINGW L"v2.2.2"
|
||||||
// Hey! If you change this, add 1 to the MODVERSION below!
|
// Hey! If you change this, add 1 to the MODVERSION below!
|
||||||
// Otherwise we can't force updates!
|
// Otherwise we can't force updates!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Does this version require an added patch file?
|
// Does this version require an added patch file?
|
||||||
// Comment or uncomment this as necessary.
|
// Comment or uncomment this as necessary.
|
||||||
//#define USE_PATCH_DTA
|
#define USE_PATCH_DTA
|
||||||
|
|
||||||
// Use .kart extension addons
|
// Use .kart extension addons
|
||||||
//#define USE_KART
|
//#define USE_KART
|
||||||
|
@ -210,7 +210,7 @@ extern char logfilename[1024];
|
||||||
// it's only for detection of the version the player is using so the MS can alert them of an update.
|
// it's only for detection of the version the player is using so the MS can alert them of an update.
|
||||||
// Only set it higher, not lower, obviously.
|
// Only set it higher, not lower, obviously.
|
||||||
// Note that we use this to help keep internal testing in check; this is why v2.2.0 is not version "1".
|
// Note that we use this to help keep internal testing in check; this is why v2.2.0 is not version "1".
|
||||||
#define MODVERSION 41
|
#define MODVERSION 42
|
||||||
|
|
||||||
// To version config.cfg, MAJOREXECVERSION is set equal to MODVERSION automatically.
|
// To version config.cfg, MAJOREXECVERSION is set equal to MODVERSION automatically.
|
||||||
// Increment MINOREXECVERSION whenever a config change is needed that does not correspond
|
// Increment MINOREXECVERSION whenever a config change is needed that does not correspond
|
||||||
|
@ -253,9 +253,11 @@ typedef enum
|
||||||
// Desaturated
|
// Desaturated
|
||||||
SKINCOLOR_AETHER,
|
SKINCOLOR_AETHER,
|
||||||
SKINCOLOR_SLATE,
|
SKINCOLOR_SLATE,
|
||||||
|
SKINCOLOR_BLUEBELL,
|
||||||
SKINCOLOR_PINK,
|
SKINCOLOR_PINK,
|
||||||
SKINCOLOR_YOGURT,
|
SKINCOLOR_YOGURT,
|
||||||
SKINCOLOR_BROWN,
|
SKINCOLOR_BROWN,
|
||||||
|
SKINCOLOR_BRONZE,
|
||||||
SKINCOLOR_TAN,
|
SKINCOLOR_TAN,
|
||||||
SKINCOLOR_BEIGE,
|
SKINCOLOR_BEIGE,
|
||||||
SKINCOLOR_MOSS,
|
SKINCOLOR_MOSS,
|
||||||
|
@ -268,9 +270,11 @@ typedef enum
|
||||||
SKINCOLOR_RED,
|
SKINCOLOR_RED,
|
||||||
SKINCOLOR_CRIMSON,
|
SKINCOLOR_CRIMSON,
|
||||||
SKINCOLOR_FLAME,
|
SKINCOLOR_FLAME,
|
||||||
|
SKINCOLOR_KETCHUP,
|
||||||
SKINCOLOR_PEACHY,
|
SKINCOLOR_PEACHY,
|
||||||
SKINCOLOR_QUAIL,
|
SKINCOLOR_QUAIL,
|
||||||
SKINCOLOR_SUNSET,
|
SKINCOLOR_SUNSET,
|
||||||
|
SKINCOLOR_COPPER,
|
||||||
SKINCOLOR_APRICOT,
|
SKINCOLOR_APRICOT,
|
||||||
SKINCOLOR_ORANGE,
|
SKINCOLOR_ORANGE,
|
||||||
SKINCOLOR_RUST,
|
SKINCOLOR_RUST,
|
||||||
|
@ -280,6 +284,7 @@ typedef enum
|
||||||
SKINCOLOR_OLIVE,
|
SKINCOLOR_OLIVE,
|
||||||
SKINCOLOR_LIME,
|
SKINCOLOR_LIME,
|
||||||
SKINCOLOR_PERIDOT,
|
SKINCOLOR_PERIDOT,
|
||||||
|
SKINCOLOR_APPLE,
|
||||||
SKINCOLOR_GREEN,
|
SKINCOLOR_GREEN,
|
||||||
SKINCOLOR_FOREST,
|
SKINCOLOR_FOREST,
|
||||||
SKINCOLOR_EMERALD,
|
SKINCOLOR_EMERALD,
|
||||||
|
@ -306,6 +311,7 @@ typedef enum
|
||||||
SKINCOLOR_VIOLET,
|
SKINCOLOR_VIOLET,
|
||||||
SKINCOLOR_LILAC,
|
SKINCOLOR_LILAC,
|
||||||
SKINCOLOR_PLUM,
|
SKINCOLOR_PLUM,
|
||||||
|
SKINCOLOR_RASPBERRY,
|
||||||
SKINCOLOR_ROSY,
|
SKINCOLOR_ROSY,
|
||||||
|
|
||||||
// SKINCOLOR_? - one left before we bump up against 0x39, which isn't a HARD limit anymore but would be excessive
|
// SKINCOLOR_? - one left before we bump up against 0x39, which isn't a HARD limit anymore but would be excessive
|
||||||
|
@ -490,6 +496,7 @@ extern INT32 cv_debug;
|
||||||
#define DBG_SETUP 0x0400
|
#define DBG_SETUP 0x0400
|
||||||
#define DBG_LUA 0x0800
|
#define DBG_LUA 0x0800
|
||||||
#define DBG_RANDOMIZER 0x1000
|
#define DBG_RANDOMIZER 0x1000
|
||||||
|
#define DBG_VIEWMORPH 0x2000
|
||||||
|
|
||||||
// =======================
|
// =======================
|
||||||
// Misc stuff for later...
|
// Misc stuff for later...
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -351,15 +351,19 @@ typedef struct
|
||||||
} mapheader_t;
|
} mapheader_t;
|
||||||
|
|
||||||
// level flags
|
// level flags
|
||||||
#define LF_SCRIPTISFILE 1 ///< True if the script is a file, not a lump.
|
#define LF_SCRIPTISFILE (1<<0) ///< True if the script is a file, not a lump.
|
||||||
#define LF_SPEEDMUSIC 2 ///< Speed up act music for super sneakers
|
#define LF_SPEEDMUSIC (1<<1) ///< Speed up act music for super sneakers
|
||||||
#define LF_NOSSMUSIC 4 ///< Disable Super Sonic music
|
#define LF_NOSSMUSIC (1<<2) ///< Disable Super Sonic music
|
||||||
#define LF_NORELOAD 8 ///< Don't reload level on death
|
#define LF_NORELOAD (1<<3) ///< Don't reload level on death
|
||||||
#define LF_NOZONE 16 ///< Don't include "ZONE" on level title
|
#define LF_NOZONE (1<<4) ///< Don't include "ZONE" on level title
|
||||||
#define LF_SAVEGAME 32 ///< Save the game upon loading this level
|
#define LF_SAVEGAME (1<<5) ///< Save the game upon loading this level
|
||||||
#define LF_MIXNIGHTSCOUNTDOWN 64 ///< Play sfx_timeup instead of music change for NiGHTS countdown
|
#define LF_MIXNIGHTSCOUNTDOWN (1<<6) ///< Play sfx_timeup instead of music change for NiGHTS countdown
|
||||||
#define LF_WARNINGTITLE 128 ///< WARNING! WARNING! WARNING! WARNING!
|
#define LF_WARNINGTITLE (1<<7) ///< WARNING! WARNING! WARNING! WARNING!
|
||||||
#define LF_NOTITLECARD 256 ///< Don't start the title card
|
|
||||||
|
#define LF_NOTITLECARDFIRST (1<<8)
|
||||||
|
#define LF_NOTITLECARDRESPAWN (1<<9)
|
||||||
|
#define LF_NOTITLECARDRECORDATTACK (1<<10)
|
||||||
|
#define LF_NOTITLECARD (LF_NOTITLECARDFIRST|LF_NOTITLECARDRESPAWN|LF_NOTITLECARDRECORDATTACK) ///< Don't start the title card at all
|
||||||
|
|
||||||
#define LF2_HIDEINMENU 1 ///< Hide in the multiplayer menu
|
#define LF2_HIDEINMENU 1 ///< Hide in the multiplayer menu
|
||||||
#define LF2_HIDEINSTATS 2 ///< Hide in the statistics screen
|
#define LF2_HIDEINSTATS 2 ///< Hide in the statistics screen
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2014-2019 by Sonic Team Junior.
|
// Copyright (C) 2014-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 2013-2016 by Matthew "Kaito Sinclaire" Walsh.
|
// Copyright (C) 2013-2016 by Matthew "Kaito Sinclaire" Walsh.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -192,8 +192,7 @@ void F_WipeStageTitle(void)
|
||||||
// draw level title
|
// draw level title
|
||||||
if ((WipeStageTitle && st_overlay)
|
if ((WipeStageTitle && st_overlay)
|
||||||
&& (wipestyle == WIPESTYLE_COLORMAP)
|
&& (wipestyle == WIPESTYLE_COLORMAP)
|
||||||
&& !(mapheaderinfo[gamemap-1]->levelflags & LF_NOTITLECARD)
|
&& G_IsTitleCardAvailable())
|
||||||
&& *mapheaderinfo[gamemap-1]->lvlttl != '\0')
|
|
||||||
{
|
{
|
||||||
ST_runTitleCard();
|
ST_runTitleCard();
|
||||||
ST_drawWipeTitleCard();
|
ST_drawWipeTitleCard();
|
||||||
|
|
25
src/g_game.c
25
src/g_game.c
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -1928,13 +1928,22 @@ void G_PreLevelTitleCard(void)
|
||||||
wipestyleflags = WSF_CROSSFADE;
|
wipestyleflags = WSF_CROSSFADE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static boolean titlecardforreload = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Returns true if the current level has a title card.
|
// Returns true if the current level has a title card.
|
||||||
//
|
//
|
||||||
boolean G_IsTitleCardAvailable(void)
|
boolean G_IsTitleCardAvailable(void)
|
||||||
{
|
{
|
||||||
// The current level header explicitly disabled the title card.
|
// The current level header explicitly disabled the title card.
|
||||||
if (mapheaderinfo[gamemap-1]->levelflags & LF_NOTITLECARD)
|
UINT16 titleflag = LF_NOTITLECARDFIRST;
|
||||||
|
|
||||||
|
if (modeattacking != ATTACKING_NONE)
|
||||||
|
titleflag = LF_NOTITLECARDRECORDATTACK;
|
||||||
|
else if (titlecardforreload)
|
||||||
|
titleflag = LF_NOTITLECARDRESPAWN;
|
||||||
|
|
||||||
|
if (mapheaderinfo[gamemap-1]->levelflags & titleflag)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// The current gametype doesn't have a title card.
|
// The current gametype doesn't have a title card.
|
||||||
|
@ -3024,7 +3033,9 @@ void G_DoReborn(INT32 playernum)
|
||||||
#ifdef HAVE_BLUA
|
#ifdef HAVE_BLUA
|
||||||
LUAh_MapChange(gamemap);
|
LUAh_MapChange(gamemap);
|
||||||
#endif
|
#endif
|
||||||
|
titlecardforreload = true;
|
||||||
G_DoLoadLevel(true);
|
G_DoLoadLevel(true);
|
||||||
|
titlecardforreload = false;
|
||||||
if (metalrecording)
|
if (metalrecording)
|
||||||
G_BeginMetal();
|
G_BeginMetal();
|
||||||
return;
|
return;
|
||||||
|
@ -3203,17 +3214,17 @@ UINT32 gametypedefaultrules[NUMGAMETYPES] =
|
||||||
GTR_RACE|GTR_SPAWNENEMIES|GTR_SPAWNINVUL|GTR_ALLOWEXIT,
|
GTR_RACE|GTR_SPAWNENEMIES|GTR_SPAWNINVUL|GTR_ALLOWEXIT,
|
||||||
|
|
||||||
// Match
|
// Match
|
||||||
GTR_RINGSLINGER|GTR_FIRSTPERSON|GTR_SPECTATORS|GTR_POINTLIMIT|GTR_TIMELIMIT|GTR_POWERSTONES|GTR_DEATHMATCHSTARTS|GTR_SPAWNINVUL|GTR_RESPAWNDELAY|GTR_PITYSHIELD|GTR_DEATHPENALTY,
|
GTR_RINGSLINGER|GTR_FIRSTPERSON|GTR_SPECTATORS|GTR_POINTLIMIT|GTR_TIMELIMIT|GTR_OVERTIME|GTR_POWERSTONES|GTR_DEATHMATCHSTARTS|GTR_SPAWNINVUL|GTR_RESPAWNDELAY|GTR_PITYSHIELD|GTR_DEATHPENALTY,
|
||||||
// Team Match
|
// Team Match
|
||||||
GTR_RINGSLINGER|GTR_FIRSTPERSON|GTR_SPECTATORS|GTR_TEAMS|GTR_POINTLIMIT|GTR_TIMELIMIT|GTR_DEATHMATCHSTARTS|GTR_SPAWNINVUL|GTR_RESPAWNDELAY|GTR_PITYSHIELD,
|
GTR_RINGSLINGER|GTR_FIRSTPERSON|GTR_SPECTATORS|GTR_TEAMS|GTR_POINTLIMIT|GTR_TIMELIMIT|GTR_OVERTIME|GTR_DEATHMATCHSTARTS|GTR_SPAWNINVUL|GTR_RESPAWNDELAY|GTR_PITYSHIELD,
|
||||||
|
|
||||||
// Tag
|
// Tag
|
||||||
GTR_RINGSLINGER|GTR_FIRSTPERSON|GTR_TAG|GTR_SPECTATORS|GTR_POINTLIMIT|GTR_TIMELIMIT|GTR_STARTCOUNTDOWN|GTR_BLINDFOLDED|GTR_DEATHMATCHSTARTS|GTR_SPAWNINVUL|GTR_RESPAWNDELAY,
|
GTR_RINGSLINGER|GTR_FIRSTPERSON|GTR_TAG|GTR_SPECTATORS|GTR_POINTLIMIT|GTR_TIMELIMIT|GTR_OVERTIME|GTR_STARTCOUNTDOWN|GTR_BLINDFOLDED|GTR_DEATHMATCHSTARTS|GTR_SPAWNINVUL|GTR_RESPAWNDELAY,
|
||||||
// Hide and Seek
|
// Hide and Seek
|
||||||
GTR_RINGSLINGER|GTR_FIRSTPERSON|GTR_TAG|GTR_SPECTATORS|GTR_POINTLIMIT|GTR_TIMELIMIT|GTR_STARTCOUNTDOWN|GTR_BLINDFOLDED|GTR_DEATHMATCHSTARTS|GTR_SPAWNINVUL|GTR_RESPAWNDELAY,
|
GTR_RINGSLINGER|GTR_FIRSTPERSON|GTR_TAG|GTR_SPECTATORS|GTR_POINTLIMIT|GTR_TIMELIMIT|GTR_OVERTIME|GTR_STARTCOUNTDOWN|GTR_BLINDFOLDED|GTR_DEATHMATCHSTARTS|GTR_SPAWNINVUL|GTR_RESPAWNDELAY,
|
||||||
|
|
||||||
// CTF
|
// CTF
|
||||||
GTR_RINGSLINGER|GTR_FIRSTPERSON|GTR_SPECTATORS|GTR_TEAMS|GTR_TEAMFLAGS|GTR_POINTLIMIT|GTR_TIMELIMIT|GTR_POWERSTONES|GTR_DEATHMATCHSTARTS|GTR_SPAWNINVUL|GTR_RESPAWNDELAY|GTR_PITYSHIELD,
|
GTR_RINGSLINGER|GTR_FIRSTPERSON|GTR_SPECTATORS|GTR_TEAMS|GTR_TEAMFLAGS|GTR_POINTLIMIT|GTR_TIMELIMIT|GTR_OVERTIME|GTR_POWERSTONES|GTR_DEATHMATCHSTARTS|GTR_SPAWNINVUL|GTR_RESPAWNDELAY|GTR_PITYSHIELD,
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -48,7 +48,6 @@ struct GLMipmap_s
|
||||||
|
|
||||||
struct GLMipmap_s *nextcolormap;
|
struct GLMipmap_s *nextcolormap;
|
||||||
const UINT8 *colormap;
|
const UINT8 *colormap;
|
||||||
INT32 tcindex;
|
|
||||||
|
|
||||||
// opengl
|
// opengl
|
||||||
struct GLMipmap_s *nextmipmap; // opengl : liste of all texture in opengl driver
|
struct GLMipmap_s *nextmipmap; // opengl : liste of all texture in opengl driver
|
||||||
|
|
|
@ -509,6 +509,7 @@ light_t *t_lspr[NUMSPRITES] =
|
||||||
&lspr[NOLIGHT], // SPR_LCKN
|
&lspr[NOLIGHT], // SPR_LCKN
|
||||||
&lspr[NOLIGHT], // SPR_TTAG
|
&lspr[NOLIGHT], // SPR_TTAG
|
||||||
&lspr[NOLIGHT], // SPR_GFLG
|
&lspr[NOLIGHT], // SPR_GFLG
|
||||||
|
&lspr[NOLIGHT], // SPR_FNSF
|
||||||
|
|
||||||
&lspr[NOLIGHT], // SPR_CORK
|
&lspr[NOLIGHT], // SPR_CORK
|
||||||
&lspr[NOLIGHT], // SPR_LHRT
|
&lspr[NOLIGHT], // SPR_LHRT
|
||||||
|
|
|
@ -5022,12 +5022,7 @@ void HWR_AddTransparentFloor(levelflat_t *levelflat, extrasubsector_t *xsub, boo
|
||||||
|
|
||||||
planeinfo[numplanes].isceiling = isceiling;
|
planeinfo[numplanes].isceiling = isceiling;
|
||||||
planeinfo[numplanes].fixedheight = fixedheight;
|
planeinfo[numplanes].fixedheight = fixedheight;
|
||||||
|
planeinfo[numplanes].lightlevel = (planecolormap && (planecolormap->flags & CMF_FOG)) ? lightlevel : 255;
|
||||||
if (planecolormap && (planecolormap->fog & 1))
|
|
||||||
planeinfo[numplanes].lightlevel = lightlevel;
|
|
||||||
else
|
|
||||||
planeinfo[numplanes].lightlevel = 255;
|
|
||||||
|
|
||||||
planeinfo[numplanes].levelflat = levelflat;
|
planeinfo[numplanes].levelflat = levelflat;
|
||||||
planeinfo[numplanes].xsub = xsub;
|
planeinfo[numplanes].xsub = xsub;
|
||||||
planeinfo[numplanes].alpha = alpha;
|
planeinfo[numplanes].alpha = alpha;
|
||||||
|
@ -5059,12 +5054,7 @@ void HWR_AddTransparentPolyobjectFloor(levelflat_t *levelflat, polyobj_t *polyse
|
||||||
|
|
||||||
polyplaneinfo[numpolyplanes].isceiling = isceiling;
|
polyplaneinfo[numpolyplanes].isceiling = isceiling;
|
||||||
polyplaneinfo[numpolyplanes].fixedheight = fixedheight;
|
polyplaneinfo[numpolyplanes].fixedheight = fixedheight;
|
||||||
|
polyplaneinfo[numpolyplanes].lightlevel = (planecolormap && (planecolormap->flags & CMF_FOG)) ? lightlevel : 255;
|
||||||
if (planecolormap && (planecolormap->fog & 1))
|
|
||||||
polyplaneinfo[numpolyplanes].lightlevel = lightlevel;
|
|
||||||
else
|
|
||||||
polyplaneinfo[numpolyplanes].lightlevel = 255;
|
|
||||||
|
|
||||||
polyplaneinfo[numpolyplanes].levelflat = levelflat;
|
polyplaneinfo[numpolyplanes].levelflat = levelflat;
|
||||||
polyplaneinfo[numpolyplanes].polysector = polysector;
|
polyplaneinfo[numpolyplanes].polysector = polysector;
|
||||||
polyplaneinfo[numpolyplanes].alpha = alpha;
|
polyplaneinfo[numpolyplanes].alpha = alpha;
|
||||||
|
@ -5819,6 +5809,12 @@ static void HWR_DrawSkyBackground(player_t *player)
|
||||||
dometransform.scalez = 1;
|
dometransform.scalez = 1;
|
||||||
dometransform.fovxangle = fpov; // Tails
|
dometransform.fovxangle = fpov; // Tails
|
||||||
dometransform.fovyangle = fpov; // Tails
|
dometransform.fovyangle = fpov; // Tails
|
||||||
|
if (player->viewrollangle != 0)
|
||||||
|
{
|
||||||
|
fixed_t rol = AngleFixed(player->viewrollangle);
|
||||||
|
dometransform.rollangle = FIXED_TO_FLOAT(rol);
|
||||||
|
dometransform.roll = true;
|
||||||
|
}
|
||||||
dometransform.splitscreen = splitscreen;
|
dometransform.splitscreen = splitscreen;
|
||||||
|
|
||||||
HWR_GetTexture(texturetranslation[skytexture]);
|
HWR_GetTexture(texturetranslation[skytexture]);
|
||||||
|
@ -6042,6 +6038,12 @@ void HWR_RenderSkyboxView(INT32 viewnumber, player_t *player)
|
||||||
atransform.scalez = 1;
|
atransform.scalez = 1;
|
||||||
atransform.fovxangle = fpov; // Tails
|
atransform.fovxangle = fpov; // Tails
|
||||||
atransform.fovyangle = fpov; // Tails
|
atransform.fovyangle = fpov; // Tails
|
||||||
|
if (player->viewrollangle != 0)
|
||||||
|
{
|
||||||
|
fixed_t rol = AngleFixed(player->viewrollangle);
|
||||||
|
atransform.rollangle = FIXED_TO_FLOAT(rol);
|
||||||
|
atransform.roll = true;
|
||||||
|
}
|
||||||
atransform.splitscreen = splitscreen;
|
atransform.splitscreen = splitscreen;
|
||||||
|
|
||||||
gr_fovlud = (float)(1.0l/tan((double)(fpov*M_PIl/360l)));
|
gr_fovlud = (float)(1.0l/tan((double)(fpov*M_PIl/360l)));
|
||||||
|
@ -6262,6 +6264,12 @@ void HWR_RenderPlayerView(INT32 viewnumber, player_t *player)
|
||||||
atransform.scalez = 1;
|
atransform.scalez = 1;
|
||||||
atransform.fovxangle = fpov; // Tails
|
atransform.fovxangle = fpov; // Tails
|
||||||
atransform.fovyangle = fpov; // Tails
|
atransform.fovyangle = fpov; // Tails
|
||||||
|
if (player->viewrollangle != 0)
|
||||||
|
{
|
||||||
|
fixed_t rol = AngleFixed(player->viewrollangle);
|
||||||
|
atransform.rollangle = FIXED_TO_FLOAT(rol);
|
||||||
|
atransform.roll = true;
|
||||||
|
}
|
||||||
atransform.splitscreen = splitscreen;
|
atransform.splitscreen = splitscreen;
|
||||||
|
|
||||||
gr_fovlud = (float)(1.0l/tan((double)(fpov*M_PIl/360l)));
|
gr_fovlud = (float)(1.0l/tan((double)(fpov*M_PIl/360l)));
|
||||||
|
|
|
@ -1048,32 +1048,13 @@ static void HWR_GetBlendedTexture(GLPatch_t *gpatch, GLPatch_t *blendgpatch, INT
|
||||||
// mostly copied from HWR_GetMappedPatch, hence the similarities and comment
|
// mostly copied from HWR_GetMappedPatch, hence the similarities and comment
|
||||||
GLMipmap_t *grmip, *newmip;
|
GLMipmap_t *grmip, *newmip;
|
||||||
|
|
||||||
if ((colormap == colormaps || colormap == NULL) && (skinnum > TC_DEFAULT))
|
if (colormap == colormaps || colormap == NULL)
|
||||||
{
|
{
|
||||||
// Don't do any blending
|
// Don't do any blending
|
||||||
HWD.pfnSetTexture(gpatch->mipmap);
|
HWD.pfnSetTexture(gpatch->mipmap);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// search for the mipmap
|
|
||||||
// skip the first (no colormap translated)
|
|
||||||
for (grmip = gpatch->mipmap; grmip->nextcolormap; )
|
|
||||||
{
|
|
||||||
grmip = grmip->nextcolormap;
|
|
||||||
if (grmip->colormap == colormap || (skinnum < TC_DEFAULT && grmip->tcindex == skinnum))
|
|
||||||
{
|
|
||||||
if (grmip->downloaded && grmip->grInfo.data)
|
|
||||||
{
|
|
||||||
HWD.pfnSetTexture(grmip); // found the colormap, set it to the correct texture
|
|
||||||
Z_ChangeTag(grmip->grInfo.data, PU_HWRMODELTEXTURE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If here, the blended texture has not been created
|
|
||||||
// So we create it
|
|
||||||
|
|
||||||
if ((blendgpatch && blendgpatch->mipmap->grInfo.format)
|
if ((blendgpatch && blendgpatch->mipmap->grInfo.format)
|
||||||
&& (gpatch->width != blendgpatch->width || gpatch->height != blendgpatch->height))
|
&& (gpatch->width != blendgpatch->width || gpatch->height != blendgpatch->height))
|
||||||
{
|
{
|
||||||
|
@ -1082,21 +1063,39 @@ static void HWR_GetBlendedTexture(GLPatch_t *gpatch, GLPatch_t *blendgpatch, INT
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// search for the mipmap
|
||||||
|
// skip the first (no colormap translated)
|
||||||
|
for (grmip = gpatch->mipmap; grmip->nextcolormap; )
|
||||||
|
{
|
||||||
|
grmip = grmip->nextcolormap;
|
||||||
|
if (grmip->colormap == colormap)
|
||||||
|
{
|
||||||
|
if (grmip->downloaded && grmip->grInfo.data)
|
||||||
|
{
|
||||||
|
HWD.pfnSetTexture(grmip); // found the colormap, set it to the correct texture
|
||||||
|
Z_ChangeTag(grmip->grInfo.data, PU_HWRMODELTEXTURE_UNLOCKED);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If here, the blended texture has not been created
|
||||||
|
// So we create it
|
||||||
|
|
||||||
//BP: WARNING: don't free it manually without clearing the cache of harware renderer
|
//BP: WARNING: don't free it manually without clearing the cache of harware renderer
|
||||||
// (it have a liste of mipmap)
|
// (it have a liste of mipmap)
|
||||||
// this malloc is cleared in HWR_FreeTextureCache
|
// this malloc is cleared in HWR_FreeTextureCache
|
||||||
// (...) unfortunately z_malloc fragment alot the memory :(so malloc is better
|
// (...) unfortunately z_malloc fragment alot the memory :(so malloc is better
|
||||||
newmip = calloc(1, sizeof (*newmip));
|
newmip = calloc(1, sizeof (*newmip));
|
||||||
if (newmip == NULL)
|
if (newmip == NULL)
|
||||||
I_Error("%s: Out of memory", "HWR_GetMappedPatch");
|
I_Error("%s: Out of memory", "HWR_GetBlendedTexture");
|
||||||
grmip->nextcolormap = newmip;
|
grmip->nextcolormap = newmip;
|
||||||
newmip->colormap = colormap;
|
newmip->colormap = colormap;
|
||||||
newmip->tcindex = skinnum;
|
|
||||||
|
|
||||||
HWR_CreateBlendedTexture(gpatch, blendgpatch, newmip, skinnum, color);
|
HWR_CreateBlendedTexture(gpatch, blendgpatch, newmip, skinnum, color);
|
||||||
|
|
||||||
HWD.pfnSetTexture(newmip);
|
HWD.pfnSetTexture(newmip);
|
||||||
Z_ChangeTag(newmip->grInfo.data, PU_HWRMODELTEXTURE);
|
Z_ChangeTag(newmip->grInfo.data, PU_HWRMODELTEXTURE_UNLOCKED);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define NORMALFOG 0x00000000
|
#define NORMALFOG 0x00000000
|
||||||
|
@ -1326,7 +1325,7 @@ boolean HWR_DrawModel(gr_vissprite_t *spr)
|
||||||
|
|
||||||
if (gpatch && gpatch->mipmap->grInfo.format) // else if meant that if a texture couldn't be loaded, it would just end up using something else's texture
|
if (gpatch && gpatch->mipmap->grInfo.format) // else if meant that if a texture couldn't be loaded, it would just end up using something else's texture
|
||||||
{
|
{
|
||||||
INT32 skinnum = INT32_MAX;
|
INT32 skinnum = TC_DEFAULT;
|
||||||
|
|
||||||
if ((spr->mobj->flags & (MF_ENEMY|MF_BOSS)) && (spr->mobj->flags2 & MF2_FRET) && !(spr->mobj->flags & MF_GRENADEBOUNCE) && (leveltime & 1)) // Bosses "flash"
|
if ((spr->mobj->flags & (MF_ENEMY|MF_BOSS)) && (spr->mobj->flags2 & MF2_FRET) && !(spr->mobj->flags & MF_GRENADEBOUNCE) && (leveltime & 1)) // Bosses "flash"
|
||||||
{
|
{
|
||||||
|
@ -1357,17 +1356,9 @@ boolean HWR_DrawModel(gr_vissprite_t *spr)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Translation or skin number found
|
// Translation or skin number found
|
||||||
if (skinnum != INT32_MAX)
|
|
||||||
{
|
|
||||||
HWR_GetBlendedTexture(gpatch, (GLPatch_t *)md2->blendgrpatch, skinnum, spr->colormap, (skincolors_t)spr->mobj->color);
|
HWR_GetBlendedTexture(gpatch, (GLPatch_t *)md2->blendgrpatch, skinnum, spr->colormap, (skincolors_t)spr->mobj->color);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
// Sorry nothing
|
|
||||||
HWD.pfnSetTexture(gpatch->mipmap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
// Sprite
|
// Sprite
|
||||||
gpatch = spr->gpatch; //W_CachePatchNum(spr->patchlumpnum, PU_CACHE);
|
gpatch = spr->gpatch; //W_CachePatchNum(spr->patchlumpnum, PU_CACHE);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Emacs style mode select -*- C++ -*-
|
// Emacs style mode select -*- C++ -*-
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// Copyright (C) 1998-2019 by Sonic Team Junior.
|
// Copyright (C) 1998-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or
|
// This program is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU General Public License
|
// modify it under the terms of the GNU General Public License
|
||||||
|
@ -2238,6 +2238,8 @@ EXPORT void HWRAPI(SetTransform) (FTransform *stransform)
|
||||||
else
|
else
|
||||||
pglScalef(stransform->scalex, stransform->scaley, -stransform->scalez);
|
pglScalef(stransform->scalex, stransform->scaley, -stransform->scalez);
|
||||||
|
|
||||||
|
if (stransform->roll)
|
||||||
|
pglRotatef(stransform->rollangle, 0.0f, 0.0f, 1.0f);
|
||||||
pglRotatef(stransform->anglex , 1.0f, 0.0f, 0.0f);
|
pglRotatef(stransform->anglex , 1.0f, 0.0f, 0.0f);
|
||||||
pglRotatef(stransform->angley+270.0f, 0.0f, 1.0f, 0.0f);
|
pglRotatef(stransform->angley+270.0f, 0.0f, 1.0f, 0.0f);
|
||||||
pglTranslatef(-stransform->x, -stransform->z, -stransform->y);
|
pglTranslatef(-stransform->x, -stransform->z, -stransform->y);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2011-2019 by Sonic Team Junior.
|
// Copyright (C) 2011-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2011-2019 by Sonic Team Junior.
|
// Copyright (C) 2011-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
33
src/info.c
33
src/info.c
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -407,6 +407,7 @@ char sprnames[NUMSPRITES + 1][5] =
|
||||||
"LCKN", // Target
|
"LCKN", // Target
|
||||||
"TTAG", // Tag Sign
|
"TTAG", // Tag Sign
|
||||||
"GFLG", // Got Flag sign
|
"GFLG", // Got Flag sign
|
||||||
|
"FNSF", // Finish flag
|
||||||
|
|
||||||
"CORK",
|
"CORK",
|
||||||
"LHRT",
|
"LHRT",
|
||||||
|
@ -3351,6 +3352,9 @@ state_t states[NUMSTATES] =
|
||||||
// CTF Sign
|
// CTF Sign
|
||||||
{SPR_GFLG, FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_NULL}, // S_GOTFLAG
|
{SPR_GFLG, FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_NULL}, // S_GOTFLAG
|
||||||
|
|
||||||
|
// Finish flag
|
||||||
|
{SPR_FNSF, FF_TRANS30, -1, {NULL}, 0, 0, S_NULL}, // S_FINISHFLAG
|
||||||
|
|
||||||
{SPR_CORK, 0, -1, {NULL}, 0, 0, S_NULL}, // S_CORK
|
{SPR_CORK, 0, -1, {NULL}, 0, 0, S_NULL}, // S_CORK
|
||||||
{SPR_LHRT, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_LHRT
|
{SPR_LHRT, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_LHRT
|
||||||
|
|
||||||
|
@ -17996,6 +18000,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ // MT_FINISHFLAG
|
||||||
|
-1, // doomednum
|
||||||
|
S_FINISHFLAG, // 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
|
||||||
|
4*FRACUNIT, // speed
|
||||||
|
8*FRACUNIT, // radius
|
||||||
|
8*FRACUNIT, // height
|
||||||
|
1, // display offset
|
||||||
|
16, // mass
|
||||||
|
0, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
// ambient water 1a (large)
|
// ambient water 1a (large)
|
||||||
{ // MT_AWATERA
|
{ // MT_AWATERA
|
||||||
700, // doomednum
|
700, // doomednum
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -670,6 +670,7 @@ typedef enum sprite
|
||||||
SPR_LCKN, // Target
|
SPR_LCKN, // Target
|
||||||
SPR_TTAG, // Tag Sign
|
SPR_TTAG, // Tag Sign
|
||||||
SPR_GFLG, // Got Flag sign
|
SPR_GFLG, // Got Flag sign
|
||||||
|
SPR_FNSF, // Finish flag
|
||||||
|
|
||||||
SPR_CORK,
|
SPR_CORK,
|
||||||
SPR_LHRT,
|
SPR_LHRT,
|
||||||
|
@ -3486,6 +3487,9 @@ typedef enum state
|
||||||
// Got Flag Sign
|
// Got Flag Sign
|
||||||
S_GOTFLAG,
|
S_GOTFLAG,
|
||||||
|
|
||||||
|
// Finish flag
|
||||||
|
S_FINISHFLAG,
|
||||||
|
|
||||||
S_CORK,
|
S_CORK,
|
||||||
S_LHRT,
|
S_LHRT,
|
||||||
|
|
||||||
|
@ -4626,6 +4630,7 @@ typedef enum mobj_type
|
||||||
MT_LOCKONINF, // In-level Target
|
MT_LOCKONINF, // In-level Target
|
||||||
MT_TAG, // Tag Sign
|
MT_TAG, // Tag Sign
|
||||||
MT_GOTFLAG, // Got Flag sign
|
MT_GOTFLAG, // Got Flag sign
|
||||||
|
MT_FINISHFLAG, // Finish flag
|
||||||
|
|
||||||
// Ambient Sounds
|
// Ambient Sounds
|
||||||
MT_AWATERA, // Ambient Water Sound 1
|
MT_AWATERA, // Ambient Water Sound 1
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -20,6 +20,7 @@
|
||||||
#endif
|
#endif
|
||||||
#include "z_zone.h"
|
#include "z_zone.h"
|
||||||
#include "r_main.h"
|
#include "r_main.h"
|
||||||
|
#include "r_draw.h"
|
||||||
#include "r_things.h"
|
#include "r_things.h"
|
||||||
#include "m_random.h"
|
#include "m_random.h"
|
||||||
#include "s_sound.h"
|
#include "s_sound.h"
|
||||||
|
@ -2313,9 +2314,29 @@ static int lib_rTextureNumForName(lua_State *L)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// R_DRAW
|
||||||
|
////////////
|
||||||
|
static int lib_rGetColorByName(lua_State *L)
|
||||||
|
{
|
||||||
|
const char* colorname = luaL_checkstring(L, 1);
|
||||||
|
//HUDSAFE
|
||||||
|
lua_pushinteger(L, R_GetColorByName(colorname));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Lua exclusive function, returns the name of a color from the SKINCOLOR_ constant.
|
||||||
|
// SKINCOLOR_GREEN > "Green" for example
|
||||||
|
static int lib_rGetNameByColor(lua_State *L)
|
||||||
|
{
|
||||||
|
UINT8 colornum = (UINT8)luaL_checkinteger(L, 1);
|
||||||
|
if (!colornum || colornum >= MAXSKINCOLORS)
|
||||||
|
return luaL_error(L, "skincolor %d out of range (1 - %d).", colornum, MAXSKINCOLORS-1);
|
||||||
|
lua_pushstring(L, Color_Names[colornum]);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
// S_SOUND
|
// S_SOUND
|
||||||
////////////
|
////////////
|
||||||
|
|
||||||
static int lib_sStartSound(lua_State *L)
|
static int lib_sStartSound(lua_State *L)
|
||||||
{
|
{
|
||||||
const void *origin = NULL;
|
const void *origin = NULL;
|
||||||
|
@ -3153,6 +3174,10 @@ static luaL_Reg lib[] = {
|
||||||
{"R_CheckTextureNumForName",lib_rCheckTextureNumForName},
|
{"R_CheckTextureNumForName",lib_rCheckTextureNumForName},
|
||||||
{"R_TextureNumForName",lib_rTextureNumForName},
|
{"R_TextureNumForName",lib_rTextureNumForName},
|
||||||
|
|
||||||
|
// r_draw
|
||||||
|
{"R_GetColorByName", lib_rGetColorByName},
|
||||||
|
{"R_GetNameByColor", lib_rGetNameByColor},
|
||||||
|
|
||||||
// s_sound
|
// s_sound
|
||||||
{"S_StartSound",lib_sStartSound},
|
{"S_StartSound",lib_sStartSound},
|
||||||
{"S_StartSoundAtVolume",lib_sStartSoundAtVolume},
|
{"S_StartSoundAtVolume",lib_sStartSoundAtVolume},
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2016 by Iestyn "Monster Iestyn" Jealous.
|
// Copyright (C) 2016 by Iestyn "Monster Iestyn" Jealous.
|
||||||
// Copyright (C) 2016-2019 by Sonic Team Junior.
|
// Copyright (C) 2016-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -1594,7 +1594,7 @@ boolean LUAh_SeenPlayer(player_t *player, player_t *seenfriend)
|
||||||
hook_p hookp;
|
hook_p hookp;
|
||||||
boolean hasSeenPlayer = true;
|
boolean hasSeenPlayer = true;
|
||||||
if (!gL || !(hooksAvailable[hook_SeenPlayer/8] & (1<<(hook_SeenPlayer%8))))
|
if (!gL || !(hooksAvailable[hook_SeenPlayer/8] & (1<<(hook_SeenPlayer%8))))
|
||||||
return 0;
|
return true;
|
||||||
|
|
||||||
lua_settop(gL, 0);
|
lua_settop(gL, 0);
|
||||||
hud_running = true; // local hook
|
hud_running = true; // local hook
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2014-2016 by John "JTE" Muniz.
|
// Copyright (C) 2014-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2014-2019 by Sonic Team Junior.
|
// Copyright (C) 2014-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
122
src/lua_hudlib.c
122
src/lua_hudlib.c
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2014-2016 by John "JTE" Muniz.
|
// Copyright (C) 2014-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2014-2019 by Sonic Team Junior.
|
// Copyright (C) 2014-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -119,9 +119,25 @@ enum align {
|
||||||
align_center,
|
align_center,
|
||||||
align_right,
|
align_right,
|
||||||
align_fixed,
|
align_fixed,
|
||||||
|
align_fixedcenter,
|
||||||
|
align_fixedright,
|
||||||
align_small,
|
align_small,
|
||||||
|
align_smallfixed,
|
||||||
|
align_smallfixedcenter,
|
||||||
|
align_smallfixedright,
|
||||||
|
align_smallcenter,
|
||||||
align_smallright,
|
align_smallright,
|
||||||
|
align_smallthin,
|
||||||
|
align_smallthincenter,
|
||||||
|
align_smallthinright,
|
||||||
|
align_smallthinfixed,
|
||||||
|
align_smallthinfixedcenter,
|
||||||
|
align_smallthinfixedright,
|
||||||
align_thin,
|
align_thin,
|
||||||
|
align_thinfixed,
|
||||||
|
align_thinfixedcenter,
|
||||||
|
align_thinfixedright,
|
||||||
|
align_thincenter,
|
||||||
align_thinright
|
align_thinright
|
||||||
};
|
};
|
||||||
static const char *const align_opt[] = {
|
static const char *const align_opt[] = {
|
||||||
|
@ -129,9 +145,25 @@ static const char *const align_opt[] = {
|
||||||
"center",
|
"center",
|
||||||
"right",
|
"right",
|
||||||
"fixed",
|
"fixed",
|
||||||
|
"fixed-center",
|
||||||
|
"fixed-right",
|
||||||
"small",
|
"small",
|
||||||
|
"small-fixed",
|
||||||
|
"small-fixed-center",
|
||||||
|
"small-fixed-right",
|
||||||
|
"small-center",
|
||||||
"small-right",
|
"small-right",
|
||||||
|
"small-thin",
|
||||||
|
"small-thin-center",
|
||||||
|
"small-thin-right",
|
||||||
|
"small-thin-fixed",
|
||||||
|
"small-thin-fixed-center",
|
||||||
|
"small-thin-fixed-right",
|
||||||
"thin",
|
"thin",
|
||||||
|
"thin-fixed",
|
||||||
|
"thin-fixed-center",
|
||||||
|
"thin-fixed-right",
|
||||||
|
"thin-center",
|
||||||
"thin-right",
|
"thin-right",
|
||||||
NULL};
|
NULL};
|
||||||
|
|
||||||
|
@ -428,7 +460,7 @@ static int libd_cachePatch(lua_State *L)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// v.getSpritePatch(sprite, [frame, [angle]])
|
// v.getSpritePatch(sprite, [frame, [angle, [rollangle]]])
|
||||||
static int libd_getSpritePatch(lua_State *L)
|
static int libd_getSpritePatch(lua_State *L)
|
||||||
{
|
{
|
||||||
UINT32 i; // sprite prefix
|
UINT32 i; // sprite prefix
|
||||||
|
@ -479,13 +511,31 @@ static int libd_getSpritePatch(lua_State *L)
|
||||||
if (angle >= ((sprframe->rotate & SRF_3DGE) ? 16 : 8)) // out of range?
|
if (angle >= ((sprframe->rotate & SRF_3DGE) ? 16 : 8)) // out of range?
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
#ifdef ROTSPRITE
|
||||||
|
if (lua_isnumber(L, 4))
|
||||||
|
{
|
||||||
|
// rotsprite?????
|
||||||
|
angle_t rollangle = luaL_checkangle(L, 4);
|
||||||
|
INT32 rot = R_GetRollAngle(rollangle);
|
||||||
|
|
||||||
|
if (rot) {
|
||||||
|
if (!(sprframe->rotsprite.cached & (1<<angle)))
|
||||||
|
R_CacheRotSprite(i, frame, NULL, sprframe, angle, sprframe->flip & (1<<angle));
|
||||||
|
LUA_PushUserdata(L, sprframe->rotsprite.patch[angle][rot], META_PATCH);
|
||||||
|
lua_pushboolean(L, false);
|
||||||
|
lua_pushboolean(L, true);
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// push both the patch and it's "flip" value
|
// push both the patch and it's "flip" value
|
||||||
LUA_PushUserdata(L, W_CachePatchNum(sprframe->lumppat[angle], PU_PATCH), META_PATCH);
|
LUA_PushUserdata(L, W_CachePatchNum(sprframe->lumppat[angle], PU_PATCH), META_PATCH);
|
||||||
lua_pushboolean(L, (sprframe->flip & (1<<angle)) != 0);
|
lua_pushboolean(L, (sprframe->flip & (1<<angle)) != 0);
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// v.getSprite2Patch(skin, sprite, [super?,] [frame, [angle]])
|
// v.getSprite2Patch(skin, sprite, [super?,] [frame, [angle, [rollangle]]])
|
||||||
static int libd_getSprite2Patch(lua_State *L)
|
static int libd_getSprite2Patch(lua_State *L)
|
||||||
{
|
{
|
||||||
INT32 i; // skin number
|
INT32 i; // skin number
|
||||||
|
@ -574,6 +624,24 @@ static int libd_getSprite2Patch(lua_State *L)
|
||||||
if (angle >= ((sprframe->rotate & SRF_3DGE) ? 16 : 8)) // out of range?
|
if (angle >= ((sprframe->rotate & SRF_3DGE) ? 16 : 8)) // out of range?
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
#ifdef ROTSPRITE
|
||||||
|
if (lua_isnumber(L, 4))
|
||||||
|
{
|
||||||
|
// rotsprite?????
|
||||||
|
angle_t rollangle = luaL_checkangle(L, 4);
|
||||||
|
INT32 rot = R_GetRollAngle(rollangle);
|
||||||
|
|
||||||
|
if (rot) {
|
||||||
|
if (!(sprframe->rotsprite.cached & (1<<angle)))
|
||||||
|
R_CacheRotSprite(SPR_PLAY, frame, &skins[i].sprinfo[j], sprframe, angle, sprframe->flip & (1<<angle));
|
||||||
|
LUA_PushUserdata(L, sprframe->rotsprite.patch[angle][rot], META_PATCH);
|
||||||
|
lua_pushboolean(L, false);
|
||||||
|
lua_pushboolean(L, true);
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// push both the patch and it's "flip" value
|
// push both the patch and it's "flip" value
|
||||||
LUA_PushUserdata(L, W_CachePatchNum(sprframe->lumppat[angle], PU_PATCH), META_PATCH);
|
LUA_PushUserdata(L, W_CachePatchNum(sprframe->lumppat[angle], PU_PATCH), META_PATCH);
|
||||||
lua_pushboolean(L, (sprframe->flip & (1<<angle)) != 0);
|
lua_pushboolean(L, (sprframe->flip & (1<<angle)) != 0);
|
||||||
|
@ -739,20 +807,68 @@ static int libd_drawString(lua_State *L)
|
||||||
case align_fixed:
|
case align_fixed:
|
||||||
V_DrawStringAtFixed(x, y, flags, str);
|
V_DrawStringAtFixed(x, y, flags, str);
|
||||||
break;
|
break;
|
||||||
|
case align_fixedcenter:
|
||||||
|
V_DrawCenteredStringAtFixed(x, y, flags, str);
|
||||||
|
break;
|
||||||
|
case align_fixedright:
|
||||||
|
V_DrawRightAlignedStringAtFixed(x, y, flags, str);
|
||||||
|
break;
|
||||||
// hu_font, 0.5x scale
|
// hu_font, 0.5x scale
|
||||||
case align_small:
|
case align_small:
|
||||||
V_DrawSmallString(x, y, flags, str);
|
V_DrawSmallString(x, y, flags, str);
|
||||||
break;
|
break;
|
||||||
|
case align_smallfixed:
|
||||||
|
V_DrawSmallStringAtFixed(x, y, flags, str);
|
||||||
|
break;
|
||||||
|
case align_smallfixedcenter:
|
||||||
|
V_DrawCenteredSmallStringAtFixed(x, y, flags, str);
|
||||||
|
break;
|
||||||
|
case align_smallfixedright:
|
||||||
|
V_DrawRightAlignedSmallStringAtFixed(x, y, flags, str);
|
||||||
|
break;
|
||||||
|
case align_smallcenter:
|
||||||
|
V_DrawCenteredSmallString(x, y, flags, str);
|
||||||
|
break;
|
||||||
case align_smallright:
|
case align_smallright:
|
||||||
V_DrawRightAlignedSmallString(x, y, flags, str);
|
V_DrawRightAlignedSmallString(x, y, flags, str);
|
||||||
break;
|
break;
|
||||||
|
case align_smallthin:
|
||||||
|
V_DrawSmallThinString(x, y, flags, str);
|
||||||
|
break;
|
||||||
|
case align_smallthincenter:
|
||||||
|
V_DrawCenteredSmallThinString(x, y, flags, str);
|
||||||
|
break;
|
||||||
|
case align_smallthinright:
|
||||||
|
V_DrawRightAlignedSmallThinString(x, y, flags, str);
|
||||||
|
break;
|
||||||
|
case align_smallthinfixed:
|
||||||
|
V_DrawSmallThinStringAtFixed(x, y, flags, str);
|
||||||
|
break;
|
||||||
|
case align_smallthinfixedcenter:
|
||||||
|
V_DrawCenteredSmallThinStringAtFixed(x, y, flags, str);
|
||||||
|
break;
|
||||||
|
case align_smallthinfixedright:
|
||||||
|
V_DrawRightAlignedSmallThinStringAtFixed(x, y, flags, str);
|
||||||
|
break;
|
||||||
// tny_font
|
// tny_font
|
||||||
case align_thin:
|
case align_thin:
|
||||||
V_DrawThinString(x, y, flags, str);
|
V_DrawThinString(x, y, flags, str);
|
||||||
break;
|
break;
|
||||||
|
case align_thincenter:
|
||||||
|
V_DrawCenteredThinString(x, y, flags, str);
|
||||||
|
break;
|
||||||
case align_thinright:
|
case align_thinright:
|
||||||
V_DrawRightAlignedThinString(x, y, flags, str);
|
V_DrawRightAlignedThinString(x, y, flags, str);
|
||||||
break;
|
break;
|
||||||
|
case align_thinfixed:
|
||||||
|
V_DrawThinStringAtFixed(x, y, flags, str);
|
||||||
|
break;
|
||||||
|
case align_thinfixedcenter:
|
||||||
|
V_DrawCenteredThinStringAtFixed(x, y, flags, str);
|
||||||
|
break;
|
||||||
|
case align_thinfixedright:
|
||||||
|
V_DrawRightAlignedThinStringAtFixed(x, y, flags, str);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -120,6 +120,8 @@ static int player_get(lua_State *L)
|
||||||
lua_pushfixed(L, plr->deltaviewheight);
|
lua_pushfixed(L, plr->deltaviewheight);
|
||||||
else if (fastcmp(field,"bob"))
|
else if (fastcmp(field,"bob"))
|
||||||
lua_pushfixed(L, plr->bob);
|
lua_pushfixed(L, plr->bob);
|
||||||
|
else if (fastcmp(field,"viewrollangle"))
|
||||||
|
lua_pushangle(L, plr->viewrollangle);
|
||||||
else if (fastcmp(field,"aiming"))
|
else if (fastcmp(field,"aiming"))
|
||||||
lua_pushangle(L, plr->aiming);
|
lua_pushangle(L, plr->aiming);
|
||||||
else if (fastcmp(field,"drawangle"))
|
else if (fastcmp(field,"drawangle"))
|
||||||
|
@ -417,6 +419,8 @@ static int player_set(lua_State *L)
|
||||||
plr->deltaviewheight = luaL_checkfixed(L, 3);
|
plr->deltaviewheight = luaL_checkfixed(L, 3);
|
||||||
else if (fastcmp(field,"bob"))
|
else if (fastcmp(field,"bob"))
|
||||||
plr->bob = luaL_checkfixed(L, 3);
|
plr->bob = luaL_checkfixed(L, 3);
|
||||||
|
else if (fastcmp(field,"viewrollangle"))
|
||||||
|
plr->viewrollangle = luaL_checkangle(L, 3);
|
||||||
else if (fastcmp(field,"aiming")) {
|
else if (fastcmp(field,"aiming")) {
|
||||||
plr->aiming = luaL_checkangle(L, 3);
|
plr->aiming = luaL_checkangle(L, 3);
|
||||||
if (plr == &players[consoleplayer])
|
if (plr == &players[consoleplayer])
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -102,6 +102,9 @@ int LUA_PushGlobals(lua_State *L, const char *word)
|
||||||
} else if (fastcmp(word,"circuitmap")) {
|
} else if (fastcmp(word,"circuitmap")) {
|
||||||
lua_pushboolean(L, circuitmap);
|
lua_pushboolean(L, circuitmap);
|
||||||
return 1;
|
return 1;
|
||||||
|
} else if (fastcmp(word,"stoppedclock")) {
|
||||||
|
lua_pushboolean(L, stoppedclock);
|
||||||
|
return 1;
|
||||||
} else if (fastcmp(word,"netgame")) {
|
} else if (fastcmp(word,"netgame")) {
|
||||||
lua_pushboolean(L, netgame);
|
lua_pushboolean(L, netgame);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2014-2016 by John "JTE" Muniz.
|
// Copyright (C) 2014-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2014-2019 by Sonic Team Junior.
|
// Copyright (C) 2014-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
// Copyright (C) 2012-2016 by John "JTE" Muniz.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2013-2016 by Matthew "Kaito Sinclaire" Walsh.
|
// Copyright (C) 2013-2016 by Matthew "Kaito Sinclaire" Walsh.
|
||||||
// Copyright (C) 2013 by "Ninji".
|
// Copyright (C) 2013 by "Ninji".
|
||||||
// Copyright (C) 2013-2019 by Sonic Team Junior.
|
// Copyright (C) 2013-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2013-2016 by Matthew "Kaito Sinclaire" Walsh.
|
// Copyright (C) 2013-2016 by Matthew "Kaito Sinclaire" Walsh.
|
||||||
// Copyright (C) 2013-2019 by Sonic Team Junior.
|
// Copyright (C) 2013-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by Matthew "Kaito Sinclaire" Walsh.
|
// Copyright (C) 2012-2016 by Matthew "Kaito Sinclaire" Walsh.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2012-2016 by Matthew "Kaito Sinclaire" Walsh.
|
// Copyright (C) 2012-2016 by Matthew "Kaito Sinclaire" Walsh.
|
||||||
// Copyright (C) 2012-2019 by Sonic Team Junior.
|
// Copyright (C) 2012-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SONIC ROBO BLAST 2
|
// SONIC ROBO BLAST 2
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2005 by James Haley
|
// Copyright (C) 2005 by James Haley
|
||||||
// Copyright (C) 2005-2019 by Sonic Team Junior.
|
// Copyright (C) 2005-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
105
src/m_menu.c
105
src/m_menu.c
|
@ -3,7 +3,7 @@
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 2011-2016 by Matthew "Kaito Sinclaire" Walsh.
|
// Copyright (C) 2011-2016 by Matthew "Kaito Sinclaire" Walsh.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
@ -231,6 +231,8 @@ static void M_Credits(INT32 choice);
|
||||||
static void M_SoundTest(INT32 choice);
|
static void M_SoundTest(INT32 choice);
|
||||||
static void M_PandorasBox(INT32 choice);
|
static void M_PandorasBox(INT32 choice);
|
||||||
static void M_EmblemHints(INT32 choice);
|
static void M_EmblemHints(INT32 choice);
|
||||||
|
static void M_HandleEmblemHints(INT32 choice);
|
||||||
|
UINT32 hintpage = 1;
|
||||||
static void M_HandleChecklist(INT32 choice);
|
static void M_HandleChecklist(INT32 choice);
|
||||||
menu_t SR_MainDef, SR_UnlockChecklistDef;
|
menu_t SR_MainDef, SR_UnlockChecklistDef;
|
||||||
|
|
||||||
|
@ -727,8 +729,9 @@ static menuitem_t SR_SoundTestMenu[] =
|
||||||
|
|
||||||
static menuitem_t SR_EmblemHintMenu[] =
|
static menuitem_t SR_EmblemHintMenu[] =
|
||||||
{
|
{
|
||||||
{IT_STRING|IT_CVAR, NULL, "Emblem Radar", &cv_itemfinder, 10},
|
{IT_STRING | IT_ARROWS, NULL, "Page", M_HandleEmblemHints, 10},
|
||||||
{IT_WHITESTRING|IT_SUBMENU, NULL, "Back", &SPauseDef, 20}
|
{IT_STRING|IT_CVAR, NULL, "Emblem Radar", &cv_itemfinder, 20},
|
||||||
|
{IT_WHITESTRING|IT_SUBMENU, NULL, "Back", &SPauseDef, 30}
|
||||||
};
|
};
|
||||||
|
|
||||||
// --------------------------------
|
// --------------------------------
|
||||||
|
@ -7240,18 +7243,33 @@ finishchecklist:
|
||||||
}
|
}
|
||||||
|
|
||||||
#define NUMHINTS 5
|
#define NUMHINTS 5
|
||||||
|
|
||||||
static void M_EmblemHints(INT32 choice)
|
static void M_EmblemHints(INT32 choice)
|
||||||
{
|
{
|
||||||
|
INT32 i;
|
||||||
|
UINT32 local = 0;
|
||||||
|
emblem_t *emblem;
|
||||||
|
for (i = 0; i < numemblems; i++)
|
||||||
|
{
|
||||||
|
emblem = &emblemlocations[i];
|
||||||
|
if (emblem->level != gamemap || emblem->type > ET_SKIN)
|
||||||
|
continue;
|
||||||
|
if (++local > NUMHINTS*2)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
(void)choice;
|
(void)choice;
|
||||||
SR_EmblemHintMenu[0].status = (M_SecretUnlocked(SECRET_ITEMFINDER)) ? (IT_CVAR|IT_STRING) : (IT_SECRET);
|
SR_EmblemHintMenu[0].status = (local > NUMHINTS*2) ? (IT_STRING | IT_ARROWS) : (IT_DISABLED);
|
||||||
|
SR_EmblemHintMenu[1].status = (M_SecretUnlocked(SECRET_ITEMFINDER)) ? (IT_CVAR|IT_STRING) : (IT_SECRET);
|
||||||
|
hintpage = 1;
|
||||||
M_SetupNextMenu(&SR_EmblemHintDef);
|
M_SetupNextMenu(&SR_EmblemHintDef);
|
||||||
itemOn = 1; // always start on back.
|
itemOn = 2; // always start on back.
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_DrawEmblemHints(void)
|
static void M_DrawEmblemHints(void)
|
||||||
{
|
{
|
||||||
INT32 i, j = 0, x, y, left_hints = NUMHINTS;
|
INT32 i, j = 0, x, y, left_hints = NUMHINTS, pageflag = 0;
|
||||||
UINT32 collected = 0, local = 0;
|
UINT32 collected = 0, totalemblems = 0, local = 0;
|
||||||
emblem_t *emblem;
|
emblem_t *emblem;
|
||||||
const char *hint;
|
const char *hint;
|
||||||
|
|
||||||
|
@ -7260,17 +7278,34 @@ static void M_DrawEmblemHints(void)
|
||||||
emblem = &emblemlocations[i];
|
emblem = &emblemlocations[i];
|
||||||
if (emblem->level != gamemap || emblem->type > ET_SKIN)
|
if (emblem->level != gamemap || emblem->type > ET_SKIN)
|
||||||
continue;
|
continue;
|
||||||
if (++local >= NUMHINTS*2)
|
|
||||||
break;
|
local++;
|
||||||
}
|
}
|
||||||
|
|
||||||
x = (local > NUMHINTS ? 4 : 12);
|
x = (local > NUMHINTS ? 4 : 12);
|
||||||
y = 8;
|
y = 8;
|
||||||
|
|
||||||
// If there are more than 1 page's but less than 2 pages' worth of emblems,
|
if (local > NUMHINTS){
|
||||||
|
if (local > ((hintpage-1)*NUMHINTS*2) && local < ((hintpage)*NUMHINTS*2)){
|
||||||
|
if (NUMHINTS % 2 == 1)
|
||||||
|
left_hints = (local - ((hintpage-1)*NUMHINTS*2) + 1) / 2;
|
||||||
|
else
|
||||||
|
left_hints = (local - ((hintpage-1)*NUMHINTS*2)) / 2;
|
||||||
|
}else{
|
||||||
|
left_hints = NUMHINTS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (local > NUMHINTS*2){
|
||||||
|
if (itemOn == 0){
|
||||||
|
pageflag = V_YELLOWMAP;
|
||||||
|
}
|
||||||
|
V_DrawString(currentMenu->x + 40, currentMenu->y + 10, pageflag, va("%d of %d",hintpage, local/(NUMHINTS*2) + 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
// If there are more than 1 page's but less than 2 pages' worth of emblems on the last possible page,
|
||||||
// put half (rounded up) of the hints on the left, and half (rounded down) on the right
|
// put half (rounded up) of the hints on the left, and half (rounded down) on the right
|
||||||
if (local > NUMHINTS && local < (NUMHINTS*2)-1)
|
|
||||||
left_hints = (local + 1) / 2;
|
|
||||||
|
|
||||||
if (!local)
|
if (!local)
|
||||||
V_DrawCenteredString(160, 48, V_YELLOWMAP, "No hidden emblems on this map.");
|
V_DrawCenteredString(160, 48, V_YELLOWMAP, "No hidden emblems on this map.");
|
||||||
|
@ -7280,6 +7315,10 @@ static void M_DrawEmblemHints(void)
|
||||||
if (emblem->level != gamemap || emblem->type > ET_SKIN)
|
if (emblem->level != gamemap || emblem->type > ET_SKIN)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
totalemblems++;
|
||||||
|
|
||||||
|
if (totalemblems >= ((hintpage-1)*(NUMHINTS*2) + 1) && totalemblems < (hintpage*NUMHINTS*2)+1){
|
||||||
|
|
||||||
if (emblem->collected)
|
if (emblem->collected)
|
||||||
{
|
{
|
||||||
collected = V_GREENMAP;
|
collected = V_GREENMAP;
|
||||||
|
@ -7297,6 +7336,7 @@ static void M_DrawEmblemHints(void)
|
||||||
else
|
else
|
||||||
hint = M_GetText("No hint available for this emblem.");
|
hint = M_GetText("No hint available for this emblem.");
|
||||||
hint = V_WordWrap(40, BASEVIDWIDTH-12, 0, hint);
|
hint = V_WordWrap(40, BASEVIDWIDTH-12, 0, hint);
|
||||||
|
//always draw tiny if we have more than NUMHINTS*2, visually more appealing
|
||||||
if (local > NUMHINTS)
|
if (local > NUMHINTS)
|
||||||
V_DrawThinString(x+28, y, V_RETURN8|V_ALLOWLOWERCASE|collected, hint);
|
V_DrawThinString(x+28, y, V_RETURN8|V_ALLOWLOWERCASE|collected, hint);
|
||||||
else
|
else
|
||||||
|
@ -7304,6 +7344,9 @@ static void M_DrawEmblemHints(void)
|
||||||
|
|
||||||
y += 28;
|
y += 28;
|
||||||
|
|
||||||
|
// If there are more than 1 page's but less than 2 pages' worth of emblems on the last possible page,
|
||||||
|
// put half (rounded up) of the hints on the left, and half (rounded down) on the right
|
||||||
|
|
||||||
if (++j == left_hints)
|
if (++j == left_hints)
|
||||||
{
|
{
|
||||||
x = 4+(BASEVIDWIDTH/2);
|
x = 4+(BASEVIDWIDTH/2);
|
||||||
|
@ -7312,10 +7355,40 @@ static void M_DrawEmblemHints(void)
|
||||||
else if (j >= NUMHINTS*2)
|
else if (j >= NUMHINTS*2)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
M_DrawGenericMenu();
|
M_DrawGenericMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void M_HandleEmblemHints(INT32 choice)
|
||||||
|
{
|
||||||
|
INT32 i;
|
||||||
|
emblem_t *emblem;
|
||||||
|
UINT32 stageemblems = 0;
|
||||||
|
|
||||||
|
for (i = 0; i < numemblems; i++)
|
||||||
|
{
|
||||||
|
emblem = &emblemlocations[i];
|
||||||
|
if (emblem->level != gamemap || emblem->type > ET_SKIN)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
stageemblems++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (choice == 0){
|
||||||
|
if (hintpage > 1){
|
||||||
|
hintpage--;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if (hintpage < ((stageemblems-1)/(NUMHINTS*2) + 1)){
|
||||||
|
hintpage++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/*static void M_DrawSkyRoom(void)
|
/*static void M_DrawSkyRoom(void)
|
||||||
{
|
{
|
||||||
INT32 i, y = 0;
|
INT32 i, y = 0;
|
||||||
|
@ -8073,10 +8146,18 @@ static void M_DrawLoadGameData(void)
|
||||||
else if (savegameinfo[savetodraw].botskin) // tailsbot or custom
|
else if (savegameinfo[savetodraw].botskin) // tailsbot or custom
|
||||||
col = 134;
|
col = 134;
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
if (charskin->prefoppositecolor)
|
||||||
|
{
|
||||||
|
col = charskin->prefoppositecolor - 1;
|
||||||
|
col = Color_Index[col][Color_Opposite[Color_Opposite[col][0] - 1][1]];
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
col = charskin->prefcolor - 1;
|
col = charskin->prefcolor - 1;
|
||||||
col = Color_Index[Color_Opposite[col][0]-1][Color_Opposite[col][1]];
|
col = Color_Index[Color_Opposite[col][0]-1][Color_Opposite[col][1]];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
V_DrawFill(x+6, y+64, 72, 50, col);
|
V_DrawFill(x+6, y+64, 72, 50, col);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
// Copyright (C) 1993-1996 by id Software, Inc.
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||||||
// Copyright (C) 2011-2016 by Matthew "Kaito Sinclaire" Walsh.
|
// Copyright (C) 2011-2016 by Matthew "Kaito Sinclaire" Walsh.
|
||||||
// Copyright (C) 1999-2019 by Sonic Team Junior.
|
// Copyright (C) 1999-2020 by Sonic Team Junior.
|
||||||
//
|
//
|
||||||
// This program is free software distributed under the
|
// This program is free software distributed under the
|
||||||
// terms of the GNU General Public License, version 2.
|
// terms of the GNU General Public License, version 2.
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue