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]);