diff --git a/src/game/g_game.pas b/src/game/g_game.pas
index 2ce5d95e7107a6b547b0e99670db518ec0335e59..4c2d6ded66bbb5817f54b28f3471330c11b6a2d7 100644 (file)
--- a/src/game/g_game.pas
+++ b/src/game/g_game.pas
uses
SysUtils, Classes,
MAPDEF,
- g_base, g_basic, g_player, r_graphics, g_res_downloader,
+ g_base, g_basic, g_player, g_res_downloader,
g_sound, g_gui, utils, md5, mempool, xprofiler,
g_touch, g_weapons;
procedure g_Game_Update();
procedure g_Game_PreUpdate();
procedure g_Game_Quit();
-procedure g_Game_SetupScreenSize();
function g_Game_ModeToText(Mode: Byte): string;
function g_Game_TextToMode(Mode: string): Byte;
procedure g_Game_ExecuteEvent(Name: String);
UPSTime: LongWord;
DataLoaded: Boolean = False;
MessageTime: Word;
- MessageLineLength: Integer = 80;
MapList: SSArray = nil;
MapIndex: Integer = -1;
InterReadyTime: Integer = -1;
e_WriteLog(Format(_lc[I_SIMPLE_ERROR], [Text]), TMsgType.Warning);
end;
-procedure g_Game_SetupScreenSize();
-const
- RES_FACTOR = 4.0 / 3.0;
-var
- s: Single;
- rf: Single;
- bw, bh: Word;
-begin
-// Размер экранов игроков:
- gPlayerScreenSize.X := gScreenWidth-196;
- if (gPlayer1 <> nil) and (gPlayer2 <> nil) then
- gPlayerScreenSize.Y := gScreenHeight div 2
- else
- gPlayerScreenSize.Y := gScreenHeight;
-
-// Размер заднего плана:
- if BackID <> DWORD(-1) then
- begin
- s := SKY_STRETCH;
- if (gScreenWidth*s > gMapInfo.Width) or
- (gScreenHeight*s > gMapInfo.Height) then
- begin
- gBackSize.X := gScreenWidth;
- gBackSize.Y := gScreenHeight;
- end
- else
- begin
- e_GetTextureSize(BackID, @bw, @bh);
- rf := Single(bw) / Single(bh);
- if (rf > RES_FACTOR) then bw := Round(Single(bh) * RES_FACTOR)
- else if (rf < RES_FACTOR) then bh := Round(Single(bw) / RES_FACTOR);
- s := Max(gScreenWidth / bw, gScreenHeight / bh);
- if (s < 1.0) then s := 1.0;
- gBackSize.X := Round(bw*s);
- gBackSize.Y := Round(bh*s);
- end;
- end;
-end;
-
procedure g_Game_AddPlayer(Team: Byte = TEAM_NONE);
begin
if ((not gGameOn) and (gState <> STATE_INTERCUSTOM))
g_Game_ExecuteEvent('ongamestart');
-// Установка размеров окон игроков:
- g_Game_SetupScreenSize();
-
// Создание первого игрока:
gPlayer1 := g_Player_Get(g_Player_Create(gPlayer1Settings.Model,
gPlayer1Settings.Color,
g_Game_ExecuteEvent('ongamestart');
-// Установка размеров окон игроков:
- g_Game_SetupScreenSize();
-
// Режим наблюдателя:
if nPlayers = 0 then
begin
g_Game_ExecuteEvent('ongamestart');
-// Установка размеров окна игрока
- g_Game_SetupScreenSize();
-
// Режим наблюдателя:
if nPlayers = 0 then
begin
g_Game_ExecuteEvent('ongamestart');
-// Установка размеров окон игроков:
- g_Game_SetupScreenSize();
-
NetState := NET_STATE_AUTH;
g_Game_SetLoadingText(_lc[I_LOAD_CONNECT], 0, False);
end;
procedure g_TakeScreenShot(Filename: string = '');
- var s: TStream; t: TDateTime; dir, date, name: String;
+ var t: TDateTime; dir, date, name: String;
begin
- if e_NoGraphics then Exit;
- try
- dir := e_GetWriteableDir(ScreenshotDirs);
+ if e_NoGraphics then
+ Exit;
- if Filename = '' then
- begin
- t := Now;
- DateTimeToString(date, 'yyyy-mm-dd-hh-nn-ss', t);
- Filename := 'screenshot-' + date;
- end;
-
- name := e_CatPath(dir, Filename + '.png');
- s := createDiskFile(name);
- try
- e_MakeScreenshot(s, gScreenWidth, gScreenHeight);
- s.Free;
- g_Console_Add(Format(_lc[I_CONSOLE_SCREENSHOT], [name]))
- except
- g_Console_Add(Format(_lc[I_CONSOLE_ERROR_WRITE], [name]));
- s.Free;
- DeleteFile(name)
- end
- except
- g_Console_Add('oh shit, i can''t create screenshot!')
- end
+ dir := e_GetWriteableDir(ScreenshotDirs);
+ if Filename = '' then
+ begin
+ t := Now;
+ DateTimeToString(date, 'yyyy-mm-dd-hh-nn-ss', t);
+ Filename := 'screenshot-' + date;
+ end;
+
+ name := e_CatPath(dir, Filename + '.png');
+ if r_Render_WriteScreenShot(name) then
+ g_Console_Add(Format(_lc[I_CONSOLE_SCREENSHOT], [name]))
+ else
+ g_Console_Add(Format(_lc[I_CONSOLE_ERROR_WRITE], [name]));
end;
procedure g_Game_InGameMenu(Show: Boolean);
end;
end;
-procedure g_Game_Message(Msg: string; Time: Word);
-begin
- MessageLineLength := (gScreenWidth - 204) div e_CharFont_GetMaxWidth(gMenuFont);
- MessageText := b_Text_Wrap(b_Text_Format(Msg), MessageLineLength);
- MessageTime := Time;
-end;
+ procedure g_Game_Message (Msg: string; Time: Word);
+ begin
+ MessageText := Msg;
+ MessageTime := Time;
+ end;
procedure g_Game_ChatSound(Text: String; Taunt: Boolean = True);
const