mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-02-07 00:41:26 +00:00
Merge branch 'titlecard2' into 'next'
More customisable title card See merge request STJr/SRB2!552
This commit is contained in:
commit
0780e48f86
5 changed files with 57 additions and 14 deletions
|
@ -1520,10 +1520,27 @@ static void readlevelheader(MYFILE *f, INT32 num)
|
||||||
deh_warning("Level header %d: invalid bonus type number %d", num, i);
|
deh_warning("Level header %d: invalid bonus type number %d", num, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Title card
|
||||||
|
else if (fastcmp(word, "TITLECARDZIGZAG"))
|
||||||
|
{
|
||||||
|
deh_strlcpy(mapheaderinfo[num-1]->ltzzpatch, word2,
|
||||||
|
sizeof(mapheaderinfo[num-1]->ltzzpatch), va("Level header %d: title card zigzag patch name", num));
|
||||||
|
}
|
||||||
|
else if (fastcmp(word, "TITLECARDZIGZAGTEXT"))
|
||||||
|
{
|
||||||
|
deh_strlcpy(mapheaderinfo[num-1]->ltzztext, word2,
|
||||||
|
sizeof(mapheaderinfo[num-1]->ltzztext), va("Level header %d: title card zigzag text patch name", num));
|
||||||
|
}
|
||||||
|
else if (fastcmp(word, "TITLECARDACTDIAMOND"))
|
||||||
|
{
|
||||||
|
deh_strlcpy(mapheaderinfo[num-1]->ltactdiamond, word2,
|
||||||
|
sizeof(mapheaderinfo[num-1]->ltactdiamond), va("Level header %d: title card act diamond patch name", num));
|
||||||
|
}
|
||||||
|
|
||||||
else if (fastcmp(word, "MAXBONUSLIVES"))
|
else if (fastcmp(word, "MAXBONUSLIVES"))
|
||||||
mapheaderinfo[num-1]->maxbonuslives = (SINT8)i;
|
mapheaderinfo[num-1]->maxbonuslives = (SINT8)i;
|
||||||
else if (fastcmp(word, "LEVELFLAGS"))
|
else if (fastcmp(word, "LEVELFLAGS"))
|
||||||
mapheaderinfo[num-1]->levelflags = (UINT8)i;
|
mapheaderinfo[num-1]->levelflags = (UINT16)i;
|
||||||
else if (fastcmp(word, "MENUFLAGS"))
|
else if (fastcmp(word, "MENUFLAGS"))
|
||||||
mapheaderinfo[num-1]->menuflags = (UINT8)i;
|
mapheaderinfo[num-1]->menuflags = (UINT8)i;
|
||||||
|
|
||||||
|
|
|
@ -310,12 +310,17 @@ typedef struct
|
||||||
SINT8 bonustype; ///< What type of bonus does this level have? (-1 for null.)
|
SINT8 bonustype; ///< What type of bonus does this level have? (-1 for null.)
|
||||||
SINT8 maxbonuslives; ///< How many bonus lives to award at Intermission? (-1 for unlimited.)
|
SINT8 maxbonuslives; ///< How many bonus lives to award at Intermission? (-1 for unlimited.)
|
||||||
|
|
||||||
UINT8 levelflags; ///< LF_flags: merged booleans into one UINT8 for space, see below
|
UINT16 levelflags; ///< LF_flags: merged booleans into one UINT16 for space, see below
|
||||||
UINT8 menuflags; ///< LF2_flags: options that affect record attack / nights mode menus
|
UINT8 menuflags; ///< LF2_flags: options that affect record attack / nights mode menus
|
||||||
|
|
||||||
char selectheading[22]; ///< Level select heading. Allows for controllable grouping.
|
char selectheading[22]; ///< Level select heading. Allows for controllable grouping.
|
||||||
UINT16 startrings; ///< Number of rings players start with.
|
UINT16 startrings; ///< Number of rings players start with.
|
||||||
|
|
||||||
|
// Title card.
|
||||||
|
char ltzzpatch[8]; ///< Zig zag patch.
|
||||||
|
char ltzztext[8]; ///< Zig zag text.
|
||||||
|
char ltactdiamond[8]; ///< Act diamond.
|
||||||
|
|
||||||
// Freed animals stuff.
|
// Freed animals stuff.
|
||||||
UINT8 numFlickies; ///< Internal. For freed flicky support.
|
UINT8 numFlickies; ///< Internal. For freed flicky support.
|
||||||
mobjtype_t *flickies; ///< List of freeable flickies in this level. Allocated dynamically for space reasons. Be careful.
|
mobjtype_t *flickies; ///< List of freeable flickies in this level. Allocated dynamically for space reasons. Be careful.
|
||||||
|
|
|
@ -2071,6 +2071,12 @@ static int mapheaderinfo_get(lua_State *L)
|
||||||
lua_pushinteger(L, header->levelselect);
|
lua_pushinteger(L, header->levelselect);
|
||||||
else if (fastcmp(field,"bonustype"))
|
else if (fastcmp(field,"bonustype"))
|
||||||
lua_pushinteger(L, header->bonustype);
|
lua_pushinteger(L, header->bonustype);
|
||||||
|
else if (fastcmp(field,"ltzzpatch"))
|
||||||
|
lua_pushstring(L, header->ltzzpatch);
|
||||||
|
else if (fastcmp(field,"ltzztext"))
|
||||||
|
lua_pushstring(L, header->ltzztext);
|
||||||
|
else if (fastcmp(field,"ltactdiamond"))
|
||||||
|
lua_pushstring(L, header->ltactdiamond);
|
||||||
else if (fastcmp(field,"maxbonuslives"))
|
else if (fastcmp(field,"maxbonuslives"))
|
||||||
lua_pushinteger(L, header->maxbonuslives);
|
lua_pushinteger(L, header->maxbonuslives);
|
||||||
else if (fastcmp(field,"levelflags"))
|
else if (fastcmp(field,"levelflags"))
|
||||||
|
|
|
@ -213,6 +213,9 @@ static void P_ClearSingleMapHeaderInfo(INT16 i)
|
||||||
mapheaderinfo[num]->lvlttl[0] = '\0';
|
mapheaderinfo[num]->lvlttl[0] = '\0';
|
||||||
mapheaderinfo[num]->selectheading[0] = '\0';
|
mapheaderinfo[num]->selectheading[0] = '\0';
|
||||||
mapheaderinfo[num]->subttl[0] = '\0';
|
mapheaderinfo[num]->subttl[0] = '\0';
|
||||||
|
mapheaderinfo[num]->ltzzpatch[0] = '\0';
|
||||||
|
mapheaderinfo[num]->ltzztext[0] = '\0';
|
||||||
|
mapheaderinfo[num]->ltactdiamond[0] = '\0';
|
||||||
mapheaderinfo[num]->actnum = 0;
|
mapheaderinfo[num]->actnum = 0;
|
||||||
mapheaderinfo[num]->typeoflevel = 0;
|
mapheaderinfo[num]->typeoflevel = 0;
|
||||||
mapheaderinfo[num]->nextlevel = (INT16)(i + 1);
|
mapheaderinfo[num]->nextlevel = (INT16)(i + 1);
|
||||||
|
|
|
@ -1177,21 +1177,33 @@ tic_t lt_exitticker = 0, lt_endtime = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Load the graphics for the title card.
|
// Load the graphics for the title card.
|
||||||
|
// Don't let LJ see this
|
||||||
//
|
//
|
||||||
static void ST_cacheLevelTitle(void)
|
static void ST_cacheLevelTitle(void)
|
||||||
{
|
{
|
||||||
if (!(mapheaderinfo[gamemap-1]->levelflags & LF_WARNINGTITLE))
|
#define SETPATCH(default, warning, custom, idx) \
|
||||||
{
|
{ \
|
||||||
lt_patches[0] = (patch_t *)W_CachePatchName("LTACTBLU", PU_HUDGFX);
|
lumpnum_t patlumpnum = LUMPERROR; \
|
||||||
lt_patches[1] = (patch_t *)W_CachePatchName("LTZIGZAG", PU_HUDGFX);
|
if (mapheaderinfo[gamemap-1]->custom[0] != '\0') \
|
||||||
lt_patches[2] = (patch_t *)W_CachePatchName("LTZZTEXT", PU_HUDGFX);
|
{ \
|
||||||
}
|
patlumpnum = W_CheckNumForName(mapheaderinfo[gamemap-1]->custom); \
|
||||||
else // boss map
|
if (patlumpnum != LUMPERROR) \
|
||||||
{
|
lt_patches[idx] = (patch_t *)W_CachePatchNum(patlumpnum, PU_HUDGFX); \
|
||||||
lt_patches[0] = (patch_t *)W_CachePatchName("LTACTRED", PU_HUDGFX);
|
} \
|
||||||
lt_patches[1] = (patch_t *)W_CachePatchName("LTZIGRED", PU_HUDGFX);
|
if (patlumpnum == LUMPERROR) \
|
||||||
lt_patches[2] = (patch_t *)W_CachePatchName("LTZZWARN", PU_HUDGFX);
|
{ \
|
||||||
}
|
if (!(mapheaderinfo[gamemap-1]->levelflags & LF_WARNINGTITLE)) \
|
||||||
|
lt_patches[idx] = (patch_t *)W_CachePatchName(default, PU_HUDGFX); \
|
||||||
|
else \
|
||||||
|
lt_patches[idx] = (patch_t *)W_CachePatchName(warning, PU_HUDGFX); \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
SETPATCH("LTACTBLU", "LTACTRED", ltactdiamond, 0)
|
||||||
|
SETPATCH("LTZIGZAG", "LTZIGRED", ltzzpatch, 1)
|
||||||
|
SETPATCH("LTZZTEXT", "LTZZWARN", ltzztext, 2)
|
||||||
|
|
||||||
|
#undef SETPATCH
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in a new issue