Movie subtitles can now be put in avi. Win32 - menu toggle item.

This commit is contained in:
adelikat 2008-11-24 00:45:25 +00:00
parent 57de01eb86
commit 47236ddffa
7 changed files with 22 additions and 17 deletions

View File

@ -162,6 +162,10 @@ void DrawMessage(bool beforeMovie)
if(subtitleMessage.howlong)
{
//don't display movie messages if we're not before the movie
if(beforeMovie && !subtitleMessage.isMovieMessage)
return;
uint8 *tt;
subtitleMessage.howlong--;
tt=XBuf+FCEU_TextScanlineOffsetFromBottom(216);

View File

@ -47,6 +47,7 @@ extern bool lagCounterDisplay;
extern bool frameAdvanceLagSkip;
extern int ClipSidesOffset;
extern bool movieSubtitles;
extern bool subtitlesOnAVI;
extern uint8 gNoBGFillColor;
@ -208,6 +209,7 @@ static CFGSTRUCT fceuconfig[] = {
AC(DesynchAutoFire),
AC(lagCounterDisplay),
AC(movieSubtitles),
AC(subtitlesOnAVI),
AC(bindSavestate),
AC(ClipSidesOffset),
//ACS(memwLastfile[2048]),

View File

@ -93,6 +93,7 @@ BEGIN
MENUITEM "Lag Counter", MENU_DISPLAY_LAGCOUNTER
MENUITEM "Frame Counter", ID_DISPLAY_FRAMECOUNTER
MENUITEM "Movie Subtitles", ID_DISPLAY_MOVIESUBTITLES
MENUITEM "Movie Subtitles in AVI", ID_DISPLAY_MOVIESUBTITLES_AVI
MENUITEM SEPARATOR
MENUITEM "Graphics: BG", MENU_DISPLAY_BG
MENUITEM "Graphics: OBJ", MENU_DISPLAY_OBJ

View File

@ -563,6 +563,8 @@
#define MENU_MV_HELP 40258
#define ID_DISPLAY_MOVESUBTITLES 40259
#define ID_DISPLAY_MOVIESUBTITLES 40260
#define ID_DISPLAY_MOVIESUBTITLESINAVI 40261
#define ID_DISPLAY_MOVIESUBTITLES_AVI 40262
#define IDC_DEBUGGER_ICONTRAY 55535
#define MW_ValueLabel2 65423
#define MW_ValueLabel1 65426
@ -572,7 +574,7 @@
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 124
#define _APS_NEXT_COMMAND_VALUE 40261
#define _APS_NEXT_COMMAND_VALUE 40263
#define _APS_NEXT_CONTROL_VALUE 1187
#define _APS_NEXT_SYMED_VALUE 101
#endif

View File

@ -311,6 +311,7 @@ void UpdateCheckedMenuItems()
CheckMenuItem(fceumenu, MENU_DISPLAY_BG, bg?MF_CHECKED:MF_UNCHECKED);
CheckMenuItem(fceumenu, MENU_DISPLAY_OBJ, spr?MF_CHECKED:MF_UNCHECKED);
CheckMenuItem(fceumenu, ID_DISPLAY_MOVIESUBTITLES, movieSubtitles?MF_CHECKED:MF_UNCHECKED);
CheckMenuItem(fceumenu, ID_DISPLAY_MOVIESUBTITLES_AVI, subtitlesOnAVI?MF_CHECKED:MF_UNCHECKED);
CheckMenuItem(fceumenu, MENU_PAUSEAFTERPLAYBACK, pauseAfterPlayback ? MF_CHECKED : MF_UNCHECKED);
CheckMenuItem(fceumenu, MENU_RUN_IN_BACKGROUND, eoptions & EO_BGRUN ? MF_CHECKED : MF_UNCHECKED);
@ -1035,6 +1036,11 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
UpdateCheckedMenuItems();
break;
case ID_DISPLAY_MOVIESUBTITLES_AVI:
subtitlesOnAVI ^= 1;
UpdateCheckedMenuItems();
break;
case MENU_SHOW_STATUS_ICON:
// Show status icon menu was selected
status_icon = !status_icon;

View File

@ -40,8 +40,10 @@ using namespace std;
extern char FileBase[];
std::vector<int> subtitleFrames;
std::vector<string> subtitleMessages;
std::vector<int> subtitleFrames; //Frame numbers for subtitle messages
std::vector<string> subtitleMessages; //Messages of subtitles
bool subtitlesOnAVI = false;
//TODO - remove the synchack stuff from the replay gui and require it to be put into the fm2 file
//which the user would have already converted from fcm
@ -1217,24 +1219,11 @@ void ProcessSubtitles(void)
{
if (currFrameCounter == subtitleFrames[i])
FCEU_DisplaySubtitles("%s",subtitleMessages[i].c_str());
//FCEUI_DispMessage("%s",subtitleMessages[i].c_str());
}
}
void FCEU_DisplaySubtitles(char *format, ...)
{
/*
uint8 color;
//color = 0x19+0x80; //else display green
color = 0x20+0x80;
char counterbuf[512] = {0};
sprintf(counterbuf,"%d",format);
if(counterbuf[0])
DrawTextTrans(ClipSidesOffset+XBuf+FCEU_TextScanlineOffsetFromBottom(128), 256, (uint8*)counterbuf, color); //0x20+0x80
*/
va_list ap;
va_start(ap,format);
@ -1242,5 +1231,5 @@ void FCEU_DisplaySubtitles(char *format, ...)
va_end(ap);
subtitleMessage.howlong = 300;
subtitleMessage.isMovieMessage = false;
subtitleMessage.isMovieMessage = subtitlesOnAVI;
}

View File

@ -232,6 +232,7 @@ private:
extern MovieData currMovieData;
extern int currFrameCounter;
extern char curMovieFilename[512];
extern bool subtitlesOnAVI;
//---------
void FCEUI_SaveMovie(const char *fname, EMOVIE_FLAG flags, std::wstring author);