From 1ca9b88b116160115b3acd421c19ac68086bd0db Mon Sep 17 00:00:00 2001 From: Randy Heit Date: Wed, 28 Feb 2007 16:49:19 +0000 Subject: [PATCH] - Fixed: When starting a new game from the menu while the fullscreen console was open, the game was frozen before its initial setup tick until the console was closed. The most obvious result of this is that your view was stuck on the floor until the console closed. - Fixed: Pressing ESC while editing your player name completely cleared the menus instead of simply canceling the name change. - Fixed: The status bar still showed the rampage face if you held the fire button down while frozen. SVN r493 (trunk) --- docs/rh-log.txt | 10 ++++++++++ src/g_doom/doom_sbar.cpp | 4 ++-- src/m_menu.cpp | 19 ++++++++++++++++--- src/p_things.cpp | 5 ++--- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/docs/rh-log.txt b/docs/rh-log.txt index 88c8a7c83..856e33273 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,3 +1,13 @@ +February 28, 2007 +- Fixed: When starting a new game from the menu while the fullscreen console + was open, the game was frozen before its initial setup tick until the + console was closed. The most obvious result of this is that your view was + stuck on the floor until the console closed. +- Fixed: Pressing ESC while editing your player name completely cleared the + menus instead of simply canceling the name change. +- Fixed: The status bar still showed the rampage face if you held the fire + button down while frozen. + February 24, 2007 - Added << operators for FString that function exactly like +=, except they are left-associative, so you can use them like you would with an ostream diff --git a/src/g_doom/doom_sbar.cpp b/src/g_doom/doom_sbar.cpp index 9597c380c..87da7f213 100644 --- a/src/g_doom/doom_sbar.cpp +++ b/src/g_doom/doom_sbar.cpp @@ -913,9 +913,9 @@ private: if (FacePriority < 6) { // rapid firing - if (CPlayer->cmd.ucmd.buttons & BT_ATTACK) + if ((CPlayer->cmd.ucmd.buttons & BT_ATTACK) && !(CPlayer->cheats & (CF_FROZEN | CF_TOTALLYFROZEN))) { - if (FaceLastAttackDown==-1) + if (FaceLastAttackDown == -1) FaceLastAttackDown = ST_RAMPAGEDELAY; else if (!--FaceLastAttackDown) { diff --git a/src/m_menu.cpp b/src/m_menu.cpp index 08e8eab47..52109f8c5 100644 --- a/src/m_menu.cpp +++ b/src/m_menu.cpp @@ -152,6 +152,7 @@ static void M_DrawPlayerBackdrop (int x, int y); static void M_EditPlayerName (int choice); static void M_ChangePlayerTeam (int choice); static void M_PlayerNameChanged (FSaveGameNode *dummy); +static void M_PlayerNameNotChanged (); static void M_SlidePlayerRed (int choice); static void M_SlidePlayerGreen (int choice); static void M_SlidePlayerBlue (int choice); @@ -197,6 +198,7 @@ static int showSharewareMessage; static int genStringEnter; // we are going to be entering a savegame string static size_t genStringLen; // [RH] Max # of chars that can be entered static void (*genStringEnd)(FSaveGameNode *); +static void (*genStringCancel)(); static int saveSlot; // which slot to save in static size_t saveCharIndex; // which char we're editing @@ -1709,9 +1711,12 @@ void M_ChooseSkill (int choice) } gameskill = choice; - gamestate = gamestate == GS_FULLCONSOLE ? GS_HIDECONSOLE : gamestate; G_DeferedInitNew (EpisodeMaps[epi]); - gamestate = gamestate == GS_FULLCONSOLE ? GS_HIDECONSOLE : gamestate; + if (gamestate == GS_FULLCONSOLE) + { + gamestate = GS_HIDECONSOLE; + gameaction = ga_newgame; + } M_ClearMenus (); } @@ -2525,12 +2530,18 @@ static void M_EditPlayerName (int choice) // we are going to be intercepting all chars genStringEnter = 2; genStringEnd = M_PlayerNameChanged; + genStringCancel = M_PlayerNameNotChanged; genStringLen = MAXPLAYERNAME; saveSlot = 0; saveCharIndex = strlen (savegamestring); } +static void M_PlayerNameNotChanged () +{ + strcpy (savegamestring, name); +} + static void M_PlayerNameChanged (FSaveGameNode *dummy) { char command[SAVESTRINGSIZE+8]; @@ -2758,7 +2769,7 @@ bool M_Responder (event_t *ev) case GK_ESCAPE: genStringEnter = 0; - M_ClearMenus (); + genStringCancel (); // [RH] Function to call when escape is pressed break; case '\r': @@ -3007,6 +3018,7 @@ static void M_LoadSelect (const FSaveGameNode *file) BorderNeedRefresh = screen->GetPageCount (); } + // // User wants to save. Start string input for M_Responder // @@ -3015,6 +3027,7 @@ static void M_SaveSelect (const FSaveGameNode *file) // we are going to be intercepting all chars genStringEnter = 1; genStringEnd = M_DoSave; + genStringCancel = M_ClearMenus; genStringLen = SAVESTRINGSIZE-1; if (file != &NewSaveNode) diff --git a/src/p_things.cpp b/src/p_things.cpp index 8186054ee..f1b75fff2 100644 --- a/src/p_things.cpp +++ b/src/p_things.cpp @@ -180,7 +180,7 @@ bool P_Thing_Projectile (int tid, AActor *source, int type, const char * type_na const PClass *kind; AActor *spot, *mobj, *targ = forcedest; FActorIterator iterator (tid); - float fspeed = float(speed); + double fspeed = speed; int defflags3; if (type_name == NULL) @@ -307,8 +307,7 @@ bool P_Thing_Projectile (int tid, AActor *source, int type, const char * type_na } else { -nolead: - mobj->angle = R_PointToAngle2 (mobj->x, mobj->y, targ->x, targ->y); +nolead: mobj->angle = R_PointToAngle2 (mobj->x, mobj->y, targ->x, targ->y); aim.Resize (fspeed); mobj->momx = fixed_t(aim[0]); mobj->momy = fixed_t(aim[1]);