mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-29 15:42:03 +00:00
PicToStart implementation; fix NumPrompts limitation error
This commit is contained in:
parent
d31b4b792b
commit
eb7718bfeb
3 changed files with 10 additions and 6 deletions
|
@ -1653,6 +1653,8 @@ static void readtextpromptpage(MYFILE *f, INT32 num, INT32 pagenum)
|
||||||
}
|
}
|
||||||
else if (fastcmp(word, "PICTOLOOP"))
|
else if (fastcmp(word, "PICTOLOOP"))
|
||||||
textprompts[num]->page[pagenum].pictoloop = (UINT8)i;
|
textprompts[num]->page[pagenum].pictoloop = (UINT8)i;
|
||||||
|
else if (fastcmp(word, "PICTOSTART"))
|
||||||
|
textprompts[num]->page[pagenum].pictostart = (UINT8)i;
|
||||||
else if (fastcmp(word, "PICSMETAPAGE"))
|
else if (fastcmp(word, "PICSMETAPAGE"))
|
||||||
{
|
{
|
||||||
if (usi && usi <= textprompts[num]->numpages)
|
if (usi && usi <= textprompts[num]->numpages)
|
||||||
|
@ -1663,6 +1665,7 @@ static void readtextpromptpage(MYFILE *f, INT32 num, INT32 pagenum)
|
||||||
textprompts[num]->page[pagenum].numpics = textprompts[num]->page[metapagenum].numpics;
|
textprompts[num]->page[pagenum].numpics = textprompts[num]->page[metapagenum].numpics;
|
||||||
textprompts[num]->page[pagenum].picmode = textprompts[num]->page[metapagenum].picmode;
|
textprompts[num]->page[pagenum].picmode = textprompts[num]->page[metapagenum].picmode;
|
||||||
textprompts[num]->page[pagenum].pictoloop = textprompts[num]->page[metapagenum].pictoloop;
|
textprompts[num]->page[pagenum].pictoloop = textprompts[num]->page[metapagenum].pictoloop;
|
||||||
|
textprompts[num]->page[pagenum].pictostart = textprompts[num]->page[metapagenum].pictostart;
|
||||||
|
|
||||||
for (picid = 0; picid < MAX_PROMPT_PICS; picid++)
|
for (picid = 0; picid < MAX_PROMPT_PICS; picid++)
|
||||||
{
|
{
|
||||||
|
@ -3601,11 +3604,11 @@ static void DEH_LoadDehackedFile(MYFILE *f)
|
||||||
}
|
}
|
||||||
else if (fastcmp(word, "PROMPT"))
|
else if (fastcmp(word, "PROMPT"))
|
||||||
{
|
{
|
||||||
if (i > 0 && i < 257)
|
if (i > 0 && i < MAX_PROMPTS)
|
||||||
readtextprompt(f, i - 1);
|
readtextprompt(f, i - 1);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
deh_warning("Prompt number %d out of range (1 - 256)", i);
|
deh_warning("Prompt number %d out of range (1 - %d)", i, MAX_PROMPTS);
|
||||||
ignorelines(f);
|
ignorelines(f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -186,6 +186,7 @@ typedef struct
|
||||||
UINT8 numpics;
|
UINT8 numpics;
|
||||||
UINT8 picmode; // sequence mode after displaying last pic, 0 = persist, 1 = loop, 2 = destroy
|
UINT8 picmode; // sequence mode after displaying last pic, 0 = persist, 1 = loop, 2 = destroy
|
||||||
UINT8 pictoloop; // if picmode == loop, which pic to loop to?
|
UINT8 pictoloop; // if picmode == loop, which pic to loop to?
|
||||||
|
UINT8 pictostart; // initial pic number to show
|
||||||
char picname[MAX_PROMPT_PICS][8];
|
char picname[MAX_PROMPT_PICS][8];
|
||||||
UINT8 pichires[MAX_PROMPT_PICS];
|
UINT8 pichires[MAX_PROMPT_PICS];
|
||||||
UINT16 xcoord[MAX_PROMPT_PICS]; // gfx
|
UINT16 xcoord[MAX_PROMPT_PICS]; // gfx
|
||||||
|
|
|
@ -2137,7 +2137,7 @@ static void F_PreparePageText(char *pagetext)
|
||||||
|
|
||||||
static void F_AdvanceToNextPage(void)
|
static void F_AdvanceToNextPage(void)
|
||||||
{
|
{
|
||||||
UINT8 nextprompt = textprompts[cutnum]->page[scenenum].nextprompt,
|
INT32 nextprompt = textprompts[cutnum]->page[scenenum].nextprompt,
|
||||||
nextpage = textprompts[cutnum]->page[scenenum].nextpage,
|
nextpage = textprompts[cutnum]->page[scenenum].nextpage,
|
||||||
oldcutnum = cutnum;
|
oldcutnum = cutnum;
|
||||||
|
|
||||||
|
@ -2178,7 +2178,7 @@ static void F_AdvanceToNextPage(void)
|
||||||
F_PreparePageText(textprompts[cutnum]->page[scenenum].text);
|
F_PreparePageText(textprompts[cutnum]->page[scenenum].text);
|
||||||
|
|
||||||
// gfx
|
// gfx
|
||||||
picnum = 0;
|
picnum = textprompts[cutnum]->page[scenenum].pictostart;
|
||||||
numpics = textprompts[cutnum]->page[scenenum].numpics;
|
numpics = textprompts[cutnum]->page[scenenum].numpics;
|
||||||
picmode = textprompts[cutnum]->page[scenenum].picmode;
|
picmode = textprompts[cutnum]->page[scenenum].picmode;
|
||||||
pictoloop = textprompts[cutnum]->page[scenenum].pictoloop > 0 ? textprompts[cutnum]->page[scenenum].pictoloop - 1 : 0;
|
pictoloop = textprompts[cutnum]->page[scenenum].pictoloop > 0 ? textprompts[cutnum]->page[scenenum].pictoloop - 1 : 0;
|
||||||
|
@ -2266,7 +2266,7 @@ void F_StartTextPrompt(INT32 promptnum, INT32 pagenum, mobj_t *mo, UINT16 postex
|
||||||
F_PreparePageText(textprompts[cutnum]->page[scenenum].text);
|
F_PreparePageText(textprompts[cutnum]->page[scenenum].text);
|
||||||
|
|
||||||
// gfx
|
// gfx
|
||||||
picnum = 0;
|
picnum = textprompts[cutnum]->page[scenenum].pictostart;
|
||||||
numpics = textprompts[cutnum]->page[scenenum].numpics;
|
numpics = textprompts[cutnum]->page[scenenum].numpics;
|
||||||
picmode = textprompts[cutnum]->page[scenenum].picmode;
|
picmode = textprompts[cutnum]->page[scenenum].picmode;
|
||||||
pictoloop = textprompts[cutnum]->page[scenenum].pictoloop > 0 ? textprompts[cutnum]->page[scenenum].pictoloop - 1 : 0;
|
pictoloop = textprompts[cutnum]->page[scenenum].pictoloop > 0 ? textprompts[cutnum]->page[scenenum].pictoloop - 1 : 0;
|
||||||
|
|
Loading…
Reference in a new issue