X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_game.pas;h=82d2981743c307471a549bd6a6e8ee65db137f58;hb=3ba6ebd7f98df7b3e917920572caba1252c0c537;hp=981082d949b8aa4b5766dc98757319001b108dda;hpb=69e1b76a873303efc92f819619ffff7b3c19c171;p=d2df-sdl.git diff --git a/src/game/g_game.pas b/src/game/g_game.pas index 981082d..82d2981 100644 --- a/src/game/g_game.pas +++ b/src/game/g_game.pas @@ -84,6 +84,7 @@ procedure g_Game_Free (freeTextures: Boolean=true); procedure g_Game_LoadData(); procedure g_Game_FreeData(); procedure g_Game_Update(); +procedure g_Game_PreUpdate(); procedure g_Game_Draw(); procedure g_Game_Quit(); procedure g_Game_SetupScreenSize(); @@ -1716,6 +1717,17 @@ begin MC_SEND_CheatRequest(NET_CHEAT_READY); end; +procedure g_Game_PreUpdate(); +begin + // these are in separate PreUpdate functions because they can interact during Update() + // and are synced over the net + // we don't care that much about corpses and gibs + g_Player_PreUpdate(); + g_Monsters_PreUpdate(); + g_Items_PreUpdate(); + g_Weapon_PreUpdate(); +end; + procedure g_Game_Update(); var Msg: g_gui.TMessage; @@ -2162,13 +2174,6 @@ begin end; end; - // these are in separate PreUpdate functions because they can interact during Update() - // we don't care that much about corpses and gibs - g_Player_PreUpdate(); - g_Monsters_PreUpdate(); - g_Items_PreUpdate(); - g_Weapon_PreUpdate(); - // Îáíîâëÿåì âñå îñòàëüíîå: g_Map_Update(); g_Items_Update(); @@ -4218,6 +4223,7 @@ begin e_WriteLog(Format(_lc[I_FATAL_ERROR], [Text]), TMsgType.Warning); gExit := EXIT_SIMPLE; + if gGameOn then EndGame; end; procedure g_SimpleError(Text: String); @@ -6605,6 +6611,7 @@ begin g_Game_Free(); with gGameSettings do begin + Options := gsGameFlags; GameMode := g_Game_TextToMode(gsGameMode); if gSwitchGameMode <> GM_NONE then GameMode := gSwitchGameMode; @@ -6659,6 +6666,7 @@ begin g_Game_Free(); with gGameSettings do begin + Options := gsGameFlags; GameMode := g_Game_TextToMode(gsGameMode); if gSwitchGameMode <> GM_NONE then GameMode := gSwitchGameMode; if GameMode = GM_NONE then GameMode := GM_DM; @@ -7657,8 +7665,7 @@ begin case gAnnouncer of ANNOUNCE_NONE: Exit; - ANNOUNCE_ME, - ANNOUNCE_MEPLUS: + ANNOUNCE_ME: if not g_Game_IsWatchedPlayer(SpawnerUID) then Exit; end; @@ -7993,8 +8000,7 @@ begin // Options: s := Find_Param_Value(pars, '-opt'); if (s = '') then - Opt := GAME_OPTION_ALLOWEXIT or GAME_OPTION_BOTVSPLAYER or - GAME_OPTION_BOTVSMONSTER or GAME_OPTION_DMKEYS + Opt := gsGameFlags else Opt := StrToIntDef(s, 0);