Tweak Mapster32's sound index (F2).

- start scrolling from about half of the visible page
- PGUP/DGDN moves the cursor by 1/4 of the page
- code cleanup (we only need one displine[80], use clearkeys())

git-svn-id: https://svn.eduke32.com/eduke32@2488 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2012-03-17 11:34:09 +00:00
parent 44cf8c47c7
commit d1538d5dfd
1 changed files with 28 additions and 47 deletions

View File

@ -2301,16 +2301,10 @@ ENDFOR1:
showframe(1); showframe(1);
} }
overridepm16y = -1; clearkeys();
// i=ydim16;
// ydim16=ydim;
// drawline16(0,ydim-STATUS2DSIZ,xdim-1,ydim-STATUS2DSIZ,editorcolors[1]);
// ydim16=i;
// // printmessage16("");
// showframe(1);
keystatus[KEYSC_ESC] = keystatus[KEYSC_Q] = keystatus[KEYSC_F1] = 0;
} }
overridepm16y = -1;
} }
#define SOUND_NUMDISPLINES IHELP_NUMDISPLINES #define SOUND_NUMDISPLINES IHELP_NUMDISPLINES
@ -2456,10 +2450,12 @@ static void SoundDisplay(void)
overridepm16y = ydim;//3*STATUS2DSIZ; overridepm16y = ydim;//3*STATUS2DSIZ;
{ {
int32_t i, j;
// cursnd is the first displayed line, cursnd+curofs is where the cursor is // cursnd is the first displayed line, cursnd+curofs is where the cursor is
static int32_t cursnd=0, curofs=0; static int32_t cursnd=0, curofs=0;
char disptext[SOUND_NUMDISPLINES][80]; char disptext[80];
int32_t i, j;
const int32_t halfpage = (ydim-64)/(2*9);
while (keystatus[KEYSC_ESC]==0 && keystatus[KEYSC_Q]==0 && keystatus[KEYSC_F2]==0 while (keystatus[KEYSC_ESC]==0 && keystatus[KEYSC_Q]==0 && keystatus[KEYSC_F2]==0
&& keystatus[buildkeys[BK_MODE2D_3D]]==0) // quickjump to 3d mode && keystatus[buildkeys[BK_MODE2D_3D]]==0) // quickjump to 3d mode
@ -2491,10 +2487,10 @@ static void SoundDisplay(void)
{ {
if (i<SOUND_NUMDISPLINES) if (i<SOUND_NUMDISPLINES)
cursnd = 0, curofs = i; cursnd = 0, curofs = i;
else if (i>=g_numsounds- 32/*SOUND_NUMDISPLINES*/) else if (i>=g_numsounds-halfpage)
cursnd = g_numsounds-32/*SOUND_NUMDISPLINES*/, curofs = i-cursnd; cursnd = g_numsounds-halfpage, curofs = i-cursnd;
else else
curofs = 32/*SOUND_NUMDISPLINES*//2, cursnd = i-curofs; curofs = halfpage/2, cursnd = i-curofs;
} }
} }
else if (PRESSED_KEYSC(UP)) // scroll up else if (PRESSED_KEYSC(UP)) // scroll up
@ -2504,14 +2500,15 @@ static void SoundDisplay(void)
} }
else if (PRESSED_KEYSC(DOWN)) // scroll down else if (PRESSED_KEYSC(DOWN)) // scroll down
{ {
if (curofs<32/*SOUND_NUMDISPLINES*/-1 && cursnd+curofs<g_numsounds-1) if (curofs < halfpage-1 && cursnd+curofs<g_numsounds-1)
curofs++; curofs++;
else if (cursnd+32/*SOUND_NUMDISPLINES*/ < g_numsounds) else if (cursnd + halfpage < g_numsounds)
cursnd++; cursnd++;
} }
else if (PRESSED_KEYSC(PGUP)) // scroll one page up else if (PRESSED_KEYSC(PGUP)) // scroll one page up
{ {
i=SOUND_NUMDISPLINES; i = halfpage/2;
while (i>0 && curofs>0) while (i>0 && curofs>0)
i--, curofs--; i--, curofs--;
while (i>0 && cursnd>0) while (i>0 && cursnd>0)
@ -2519,11 +2516,11 @@ static void SoundDisplay(void)
} }
else if (PRESSED_KEYSC(PGDN)) // scroll one page down else if (PRESSED_KEYSC(PGDN)) // scroll one page down
{ {
i=SOUND_NUMDISPLINES; i = halfpage/2;
while (i>0 && curofs<32/*SOUND_NUMDISPLINES*/-1 && cursnd+curofs<g_numsounds-1) while (i>0 && curofs < halfpage-1 && cursnd+curofs<g_numsounds-1)
i--, curofs++; i--, curofs++;
while (i>0 && cursnd+32/*SOUND_NUMDISPLINES*/ < g_numsounds) while (i>0 && cursnd + halfpage < g_numsounds)
i--, cursnd++; i--, cursnd++;
} }
else if (PRESSED_KEYSC(SPACE) || PRESSED_KEYSC(ENTER)) // play/stop sound else if (PRESSED_KEYSC(SPACE) || PRESSED_KEYSC(ENTER)) // play/stop sound
@ -2542,8 +2539,8 @@ static void SoundDisplay(void)
} }
else if (PRESSED_KEYSC(END)) // goto last sound# else if (PRESSED_KEYSC(END)) // goto last sound#
{ {
if ((cursnd=g_numsounds-32/*SOUND_NUMDISPLINES*/) >= 0) if ((cursnd = g_numsounds - halfpage) >= 0)
curofs=32/*SOUND_NUMDISPLINES*/-1; curofs = halfpage-1;
else else
{ {
cursnd = 0; cursnd = 0;
@ -2560,14 +2557,14 @@ static void SoundDisplay(void)
if (ydim-overridepm16y+28+i*9+32 >= ydim) break; if (ydim-overridepm16y+28+i*9+32 >= ydim) break;
Bsprintf(disptext[i], Bsprintf(disptext,
"%4d .................... ................ %6d:%-6d %3d %c%c%c%c%c %6d", "%4d .................... ................ %6d:%-6d %3d %c%c%c%c%c %6d",
// 5678901234567890X23456789012345678901234567 // 5678901234567890X23456789012345678901234567
k, snd->ps, snd->pe, snd->pr, k, snd->ps, snd->pe, snd->pr,
snd->m&1 ? 'R':'-', snd->m&2 ? 'M':'-', snd->m&4 ? 'D':'-', snd->m&1 ? 'R':'-', snd->m&2 ? 'M':'-', snd->m&4 ? 'D':'-',
snd->m&8 ? 'P':'-', snd->m&16 ? 'G':'-', snd->vo); snd->m&8 ? 'P':'-', snd->m&16 ? 'G':'-', snd->vo);
for (l = Bsnprintf(disptext[i]+5, 20, "%s", snd->definedname); l<20; l++) for (l = Bsnprintf(disptext+5, 20, "%s", snd->definedname); l<20; l++)
disptext[i][5+l] = ' '; disptext[5+l] = ' ';
if (snd->filename) if (snd->filename)
{ {
l = Bstrlen(snd->filename); l = Bstrlen(snd->filename);
@ -2575,16 +2572,16 @@ static void SoundDisplay(void)
cp = snd->filename; cp = snd->filename;
else else
cp = snd->filename + l-15; cp = snd->filename + l-15;
for (m = Bsnprintf(disptext[i]+26, 16, "%s", cp); m<16; m++) for (m = Bsnprintf(disptext+26, 16, "%s", cp); m<16; m++)
disptext[i][26+m] = ' '; disptext[26+m] = ' ';
if (l>16) if (l>16)
disptext[i][26] = disptext[i][27] = disptext[i][28] = '.'; disptext[26] = disptext[27] = disptext[28] = '.';
} }
printext16(8, ydim-overridepm16y+28+i*9, printext16(8, ydim-overridepm16y+28+i*9,
keystatus[KEYSC_S]?editorcolors[8] : (S_CheckSoundPlaying(-1, k) ? editorcolors[2] : editorcolors[10]), keystatus[KEYSC_S]?editorcolors[8] : (S_CheckSoundPlaying(-1, k) ? editorcolors[2] : editorcolors[10]),
j==cursnd+curofs ? editorcolors[1] : -1, j==cursnd+curofs ? editorcolors[1] : -1,
disptext[i], 0); disptext, 0);
} }
if (keystatus[KEYSC_S]) // sorting if (keystatus[KEYSC_S]) // sorting
@ -2615,34 +2612,18 @@ static void SoundDisplay(void)
} }
} }
if (bad==1) clearkeys();
{
keystatus[KEYSC_ESC] = keystatus[KEYSC_Q] = keystatus[KEYSC_F2] = 0;
}
if (bad==2)
{
keystatus[KEYSC_S] = keystatus[KEYSC_D] = keystatus[KEYSC_F] = 0;
keystatus[KEYSC_G] = keystatus[KEYSC_1] = keystatus[KEYSC_2] = 0;
keystatus[KEYSC_3] = keystatus[KEYSC_4] = keystatus[KEYSC_5] = 0;
}
} }
else else
showframe(1); showframe(1);
} }
overridepm16y = -1; overridepm16y = -1;
// i=ydim16;
// ydim16=ydim;
// drawline16(0,ydim-STATUS2DSIZ,xdim-1,ydim-STATUS2DSIZ,editorcolors[1]);
// ydim16=i;
// // printmessage16("");
// showframe(1);
FX_StopAllSounds(); FX_StopAllSounds();
S_ClearSoundLocks(); S_ClearSoundLocks();
keystatus[KEYSC_ESC] = keystatus[KEYSC_Q] = keystatus[KEYSC_F2] = 0; clearkeys();
} }
} }
// PK_ ^^^^ // PK_ ^^^^