mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-27 20:20:40 +00:00
- migrated RR's cutscene definitions.
Also turned several level-specific init options into map flags or map parameters.
This commit is contained in:
parent
15f9861633
commit
6f4e380728
10 changed files with 166 additions and 64 deletions
|
@ -550,6 +550,12 @@ DEFINE_MAP_OPTION(rr_startsound, false)
|
||||||
info->rr_startsound = parse.sc.Number;
|
info->rr_startsound = parse.sc.Number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEFINE_MAP_OPTION(rr_mamaspawn, false)
|
||||||
|
{
|
||||||
|
parse.ParseAssign();
|
||||||
|
parse.sc.MustGetNumber();
|
||||||
|
info->rr_mamaspawn = parse.sc.Number;
|
||||||
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -583,6 +589,7 @@ MapFlagHandlers[] =
|
||||||
{ "secretexitoverride", MITYPE_SETFLAG, LEVEL_SECRETEXITOVERRIDE, 0, -1 },
|
{ "secretexitoverride", MITYPE_SETFLAG, LEVEL_SECRETEXITOVERRIDE, 0, -1 },
|
||||||
{ "clearinventory", MITYPE_SETFLAG, LEVEL_CLEARINVENTORY, 0, -1 },
|
{ "clearinventory", MITYPE_SETFLAG, LEVEL_CLEARINVENTORY, 0, -1 },
|
||||||
{ "clearweapons", MITYPE_SETFLAG, LEVEL_CLEARWEAPONS, 0, -1 },
|
{ "clearweapons", MITYPE_SETFLAG, LEVEL_CLEARWEAPONS, 0, -1 },
|
||||||
|
{ "forcenoeog", MITYPE_SETFLAG, LEVEL_FORCENOEOG, 0, -1 },
|
||||||
{ "rrra_hulkspawn", MITYPE_SETFLAGG,LEVEL_RR_HULKSPAWN, 0, GAMEFLAG_RRRA },
|
{ "rrra_hulkspawn", MITYPE_SETFLAGG,LEVEL_RR_HULKSPAWN, 0, GAMEFLAG_RRRA },
|
||||||
{ "rr_clearmoonshine", MITYPE_SETFLAGG,LEVEL_RR_CLEARMOONSHINE, 0, GAMEFLAG_RR },
|
{ "rr_clearmoonshine", MITYPE_SETFLAGG,LEVEL_RR_CLEARMOONSHINE, 0, GAMEFLAG_RR },
|
||||||
|
|
||||||
|
@ -884,7 +891,6 @@ void FMapInfoParser::ParseEpisodeInfo ()
|
||||||
|
|
||||||
void FMapInfoParser::ParseCutsceneInfo()
|
void FMapInfoParser::ParseCutsceneInfo()
|
||||||
{
|
{
|
||||||
unsigned int i;
|
|
||||||
FString map;
|
FString map;
|
||||||
FString pic;
|
FString pic;
|
||||||
FString name;
|
FString name;
|
||||||
|
@ -923,7 +929,7 @@ void FMapInfoParser::ParseCutsceneInfo()
|
||||||
else if (!ParseCloseBrace())
|
else if (!ParseCloseBrace())
|
||||||
{
|
{
|
||||||
// Unknown
|
// Unknown
|
||||||
sc.ScriptMessage("Unknown property '%s' found in episode definition\n", sc.String);
|
sc.ScriptMessage("Unknown property '%s' found in cutscene definition\n", sc.String);
|
||||||
SkipToNext();
|
SkipToNext();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -943,7 +949,6 @@ void FMapInfoParser::ParseCutsceneInfo()
|
||||||
|
|
||||||
void FMapInfoParser::ParseGameInfo()
|
void FMapInfoParser::ParseGameInfo()
|
||||||
{
|
{
|
||||||
unsigned int i;
|
|
||||||
FString map;
|
FString map;
|
||||||
FString pic;
|
FString pic;
|
||||||
FString name;
|
FString name;
|
||||||
|
@ -974,7 +979,7 @@ void FMapInfoParser::ParseGameInfo()
|
||||||
else if (!ParseCloseBrace())
|
else if (!ParseCloseBrace())
|
||||||
{
|
{
|
||||||
// Unknown
|
// Unknown
|
||||||
sc.ScriptMessage("Unknown property '%s' found in episode definition\n", sc.String);
|
sc.ScriptMessage("Unknown property '%s' found in gameinfo definition\n", sc.String);
|
||||||
SkipToNext();
|
SkipToNext();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -150,6 +150,7 @@ struct MapRecord
|
||||||
|
|
||||||
// game specific stuff
|
// game specific stuff
|
||||||
int rr_startsound = 0;
|
int rr_startsound = 0;
|
||||||
|
int rr_mamaspawn = 5;
|
||||||
|
|
||||||
const char* LabelName() const
|
const char* LabelName() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -39,7 +39,9 @@
|
||||||
#include "hw_material.h"
|
#include "hw_material.h"
|
||||||
#include "gamestruct.h"
|
#include "gamestruct.h"
|
||||||
#include "gamecontrol.h"
|
#include "gamecontrol.h"
|
||||||
|
#include "texturemanager.h"
|
||||||
#include "glbackend/gl_models.h"
|
#include "glbackend/gl_models.h"
|
||||||
|
#include "mapinfo.h"
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
BEGIN_BLD_NS
|
||||||
extern short voxelIndex[MAXTILES];
|
extern short voxelIndex[MAXTILES];
|
||||||
|
@ -128,6 +130,19 @@ void precacheMarkedTiles()
|
||||||
int dapalnum = pair->Key >> 32;
|
int dapalnum = pair->Key >> 32;
|
||||||
doprecache(dapicnum, dapalnum);
|
doprecache(dapicnum, dapalnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Cache everything the map explicitly declares.
|
||||||
|
TMap<FString, bool> cachetexmap;
|
||||||
|
for (auto& tex : currentLevel->PrecacheTextures) cachetexmap.Insert(tex, true);
|
||||||
|
|
||||||
|
decltype(cachetexmap)::Iterator it2(cachetexmap);
|
||||||
|
decltype(cachetexmap)::Pair* pair2;
|
||||||
|
while (it2.NextPair(pair2))
|
||||||
|
{
|
||||||
|
auto tex = TexMan.FindGameTexture(pair2->Key, ETextureType::Any);
|
||||||
|
if (tex) PrecacheTex(tex, 0);
|
||||||
|
}
|
||||||
|
|
||||||
cachemap.Clear();
|
cachemap.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,5 +2,6 @@
|
||||||
|
|
||||||
void PrecacheHardwareTextures(int nTile);
|
void PrecacheHardwareTextures(int nTile);
|
||||||
void markTileForPrecache(int tilenum, int palnum);
|
void markTileForPrecache(int tilenum, int palnum);
|
||||||
|
void markTextureForPrecache(const char* texname);
|
||||||
void markVoxelForPrecache(int voxnum);
|
void markVoxelForPrecache(int voxnum);
|
||||||
void precacheMarkedTiles();
|
void precacheMarkedTiles();
|
||||||
|
|
|
@ -1464,26 +1464,8 @@ int doincrements_r(struct player_struct* p)
|
||||||
{
|
{
|
||||||
if (!wupass)
|
if (!wupass)
|
||||||
{
|
{
|
||||||
short snd;
|
int snd = currentLevel->rr_startsound ? currentLevel->rr_startsound : 391;
|
||||||
wupass = 1;
|
wupass = 1;
|
||||||
switch (currentLevel->levelNumber)
|
|
||||||
{
|
|
||||||
default: snd = 391; break;
|
|
||||||
case makelevelnum(0, 0): snd = isRRRA() ? 63 : 391; break;
|
|
||||||
case makelevelnum(0, 1): snd = 64; break;
|
|
||||||
case makelevelnum(0, 2): snd = 77; break;
|
|
||||||
case makelevelnum(0, 3): snd = 80; break;
|
|
||||||
case makelevelnum(0, 4): snd = 102; break;
|
|
||||||
case makelevelnum(0, 5): snd = 103; break;
|
|
||||||
case makelevelnum(0, 6): snd = 104; break;
|
|
||||||
case makelevelnum(1, 0): snd = 105; break;
|
|
||||||
case makelevelnum(1, 1): snd = 176; break;
|
|
||||||
case makelevelnum(1, 2): snd = 177; break;
|
|
||||||
case makelevelnum(1, 3): snd = 198; break;
|
|
||||||
case makelevelnum(1, 4): snd = 230; break;
|
|
||||||
case makelevelnum(1, 5): snd = 255; break;
|
|
||||||
case makelevelnum(1, 6): snd = 283; break;
|
|
||||||
}
|
|
||||||
S_PlayActorSound(snd, pact);
|
S_PlayActorSound(snd, pact);
|
||||||
}
|
}
|
||||||
else if (PlayClock > 1024)
|
else if (PlayClock > 1024)
|
||||||
|
|
|
@ -36,6 +36,7 @@ Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms
|
||||||
#include "automap.h"
|
#include "automap.h"
|
||||||
#include "dukeactor.h"
|
#include "dukeactor.h"
|
||||||
#include "interpolate.h"
|
#include "interpolate.h"
|
||||||
|
#include "precache.h"
|
||||||
|
|
||||||
BEGIN_DUKE_NS
|
BEGIN_DUKE_NS
|
||||||
|
|
||||||
|
@ -1003,7 +1004,10 @@ bool setnextmap(bool checksecretexit)
|
||||||
{
|
{
|
||||||
if (ud.secretlevel > 0)
|
if (ud.secretlevel > 0)
|
||||||
{
|
{
|
||||||
map = FindMapByIndex(currentLevel->cluster, ud.secretlevel);
|
// allow overriding the secret exit destination to make episode compilation easier with maps containing secret exits.
|
||||||
|
if (currentLevel->flags & LEVEL_SECRETEXITOVERRIDE) map = FindNextSecretMap(currentLevel);
|
||||||
|
if (!map) map = FindMapByIndex(currentLevel->cluster, ud.secretlevel);
|
||||||
|
|
||||||
if (map)
|
if (map)
|
||||||
{
|
{
|
||||||
from_bonus = FindNextMap(currentLevel);
|
from_bonus = FindNextMap(currentLevel);
|
||||||
|
|
|
@ -366,37 +366,6 @@ static void cachegoodsprites(void)
|
||||||
for (i = SMALLSMOKE; i < (SMALLSMOKE + 4); i++)
|
for (i = SMALLSMOKE; i < (SMALLSMOKE + 4); i++)
|
||||||
tloadtile(i);
|
tloadtile(i);
|
||||||
|
|
||||||
if (isRRRA() && currentLevel->levelNumber == makelevelnum(0, 4))
|
|
||||||
{
|
|
||||||
tloadtile(RRTILE2577);
|
|
||||||
}
|
|
||||||
if (!isRRRA() && currentLevel->levelNumber == makelevelnum(1, 2))
|
|
||||||
{
|
|
||||||
tloadtile(RRTILE3190);
|
|
||||||
tloadtile(RRTILE3191);
|
|
||||||
tloadtile(RRTILE3192);
|
|
||||||
tloadtile(RRTILE3144);
|
|
||||||
tloadtile(RRTILE3139);
|
|
||||||
tloadtile(RRTILE3132);
|
|
||||||
tloadtile(RRTILE3120);
|
|
||||||
tloadtile(RRTILE3121);
|
|
||||||
tloadtile(RRTILE3122);
|
|
||||||
tloadtile(RRTILE3123);
|
|
||||||
tloadtile(RRTILE3124);
|
|
||||||
}
|
|
||||||
if (lastlevel)
|
|
||||||
{
|
|
||||||
i = isRRRA() ? UFO1_RRRA : UFO1_RR;
|
|
||||||
tloadtile(i);
|
|
||||||
i = UFO2;
|
|
||||||
tloadtile(i);
|
|
||||||
i = UFO3;
|
|
||||||
tloadtile(i);
|
|
||||||
i = UFO4;
|
|
||||||
tloadtile(i);
|
|
||||||
i = UFO5;
|
|
||||||
tloadtile(i);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
124
wadsrc/static/filter/redneck.redneck/engine/rmapinfo.txt
Normal file
124
wadsrc/static/filter/redneck.redneck/engine/rmapinfo.txt
Normal file
|
@ -0,0 +1,124 @@
|
||||||
|
// Cutscene definitions for RR
|
||||||
|
|
||||||
|
cluster 1
|
||||||
|
{
|
||||||
|
outro
|
||||||
|
{
|
||||||
|
function = RRCutscenes.BuildE1End
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cluster 2
|
||||||
|
{
|
||||||
|
outro
|
||||||
|
{
|
||||||
|
function = RRCutscenes.BuildE2End
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 1, 1 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC01"
|
||||||
|
rr_startsound = 391 // fixme: allow symbolic names
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 1, 2 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC02"
|
||||||
|
rr_startsound = 64
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 1, 3 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC03"
|
||||||
|
rr_startsound = 77
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 1, 4 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC04"
|
||||||
|
rr_startsound = 80
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 1, 5 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC05"
|
||||||
|
rr_startsound = 102
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 1, 6 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC06"
|
||||||
|
rr_startsound = 103
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 1, 7 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC07"
|
||||||
|
rr_startsound = 104
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 2, 1 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC08"
|
||||||
|
rr_startsound = 105
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 2, 2 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC09"
|
||||||
|
rr_startsound = 176
|
||||||
|
clearweapons
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 2, 3 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC10"
|
||||||
|
rr_startsound = 177
|
||||||
|
PrecacheTextures = "#03190","#03191","#03192","#03144","#03139","#03132","#03120","#03121","#03122","#03123","#03124"
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 2, 4 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC11"
|
||||||
|
rr_startsound = 198
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 2, 5 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC12"
|
||||||
|
rr_startsound = 230
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 2, 6 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC13"
|
||||||
|
rr_startsound = 255
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 2, 7 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC14"
|
||||||
|
rr_startsound = 283
|
||||||
|
PrecacheTextures = "UFO1", "UFO2", "UFO3", "UFO4", "UFO5"
|
||||||
|
}
|
||||||
|
|
||||||
|
map { 2, 8 }
|
||||||
|
{
|
||||||
|
interbackground = "BONUSPIC14"
|
||||||
|
rr_startsound = 391
|
||||||
|
}
|
||||||
|
|
||||||
|
cutscenes
|
||||||
|
{
|
||||||
|
loadscreen
|
||||||
|
{
|
||||||
|
function = DukeCutscenes.BuildLoading // identical with Duke's
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gameinfo
|
||||||
|
{
|
||||||
|
summaryscreen = RRCutscenes.BuildSPSummary
|
||||||
|
mpsummaryscreen = DukeCutscenes.BuildMPSummary // identical with Duke's
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
// Cutscene definitions for RR
|
// Cutscene definitions for RR
|
||||||
|
/*
|
||||||
definecutscene intro
|
definecutscene intro
|
||||||
{
|
{
|
||||||
function RRCutscenes.BuildIntro
|
function RRCutscenes.BuildIntro
|
||||||
|
@ -34,3 +34,4 @@ definecutscene loading
|
||||||
|
|
||||||
definecutscene summary RRCutscenes.BuildSPSummary
|
definecutscene summary RRCutscenes.BuildSPSummary
|
||||||
definecutscene mpsummary DukeCutscenes.BuildMPSummary // identical with Duke's
|
definecutscene mpsummary DukeCutscenes.BuildMPSummary // identical with Duke's
|
||||||
|
*/
|
|
@ -822,16 +822,16 @@ class RRLevelSummaryScreen : SummaryScreenBase
|
||||||
{
|
{
|
||||||
Super.Init(dofadeout? (fadein | fadeout) : fadein);
|
Super.Init(dofadeout? (fadein | fadeout) : fadein);
|
||||||
SetParameters(m, s);
|
SetParameters(m, s);
|
||||||
String s;
|
String basetex = level.InterBackground;
|
||||||
if (level.flags & MapRecord.USERMAP)
|
if (basetex.length() == 0)
|
||||||
s = "BONUSPIC01";
|
{
|
||||||
else if (!Raze.isRRRA())
|
let cluster = level.GetCluster();
|
||||||
s = String.Format("BONUSPIC%02d", 1 + clamp((level.levelNumber / 1000) * 7 + (level.levelNumber % 1000), 0, 13));
|
if (cluster != null) basetex = cluster.InterBackground;
|
||||||
else
|
}
|
||||||
s = String.Format("LEVELMAP%02d", 1 + clamp((level.levelNumber / 1000) * 7 + (level.levelNumber % 1000), 0, 13));
|
if (basetex.length() == 0) basetex = "BONUSPIC01";
|
||||||
|
|
||||||
lastmapname = level.DisplayName();
|
lastmapname = level.DisplayName();
|
||||||
texBg = TexMan.CheckForTexture(s);
|
texBg = TexMan.CheckForTexture(basetex);
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue