X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_main.pas;h=e0ecce92ad9c27c43c73748c797b6036cb461017;hb=83dba8e8957923e6a8f6541d7935345a59cf5bde;hp=97b005d30b2e6a8f264437a245028d5b17ac83b7;hpb=b529f458b42bebe709d4e10f42f8bcc71f33b093;p=d2df-sdl.git diff --git a/src/game/g_main.pas b/src/game/g_main.pas index 97b005d..e0ecce9 100644 --- a/src/game/g_main.pas +++ b/src/game/g_main.pas @@ -1,3 +1,4 @@ +{$MODE DELPHI} unit g_main; interface @@ -20,17 +21,21 @@ var implementation uses - SDL2, GL, GLExt, WADEDITOR, e_log, g_window, + SDL2, GL, GLExt, wadreader, e_log, g_window, e_graphics, e_input, g_game, g_console, g_gui, e_sound, g_options, g_sound, g_player, g_weapons, SysUtils, g_triggers, MAPDEF, g_map, - MAPSTRUCT, g_menu, g_language, g_net, sfs; + MAPSTRUCT, g_menu, g_language, g_net, utils; var charbuff: Array [0..15] of Char; procedure Main(); +var + sdlflags: LongWord; begin + e_InitWritelnDriver(); + GetDir(0, GameDir); MapsDir := GameDir + '/maps/'; DataDir := GameDir + '/data/'; @@ -42,6 +47,8 @@ begin e_WriteLog('Read config file', MSG_NOTIFY); g_Options_Read(GameDir + '/' + CONFIG_FILENAME); + e_WriteToStdOut := {$IFDEF HEADLESS}True;{$ELSE}False;{$ENDIF} + //GetSystemDefaultLCID() //e_WriteLog('Read language file', MSG_NOTIFY); @@ -49,22 +56,31 @@ begin e_WriteLog(gLanguage, MSG_NOTIFY); g_Language_Set(gLanguage); -{$IFDEF USE_SDLMIXER} - if SDL_Init({SDL_INIT_JOYSTICK or SDL_INIT_TIMER or SDL_INIT_VIDEO or SDL_INIT_AUDIO}SDL_INIT_EVERYTHING) < 0 then +{$IFDEF HEADLESS} + sdlflags := SDL_INIT_TIMER or $00004000; {$ELSE} - if SDL_Init(SDL_INIT_JOYSTICK or SDL_INIT_TIMER or SDL_INIT_VIDEO) < 0 then + {$IFDEF USE_SDLMIXER} + sdlflags := SDL_INIT_EVERYTHING; + {$ELSE} + sdlflags := SDL_INIT_JOYSTICK or SDL_INIT_TIMER or SDL_INIT_VIDEO; + {$ENDIF} {$ENDIF} + if SDL_Init(sdlflags) < 0 then raise Exception.Create('SDL: Init failed: ' + SDL_GetError()); +{$IFDEF HEADLESS} SDL_StartTextInput(); +{$ENDIF} e_WriteLog('Entering SDLMain', MSG_NOTIFY); - {$WARNINGS OFF} +{$WARNINGS OFF} SDLMain(); - {$WARNINGS ON} +{$WARNINGS ON} +{$IFDEF HEADLESS} SDL_StopTextInput(); +{$ENDIF} e_WriteLog('Releasing SDL', MSG_NOTIFY); SDL_Quit(); @@ -84,10 +100,10 @@ begin else e_WriteLog('Input: No Joysticks.', MSG_NOTIFY); - if not gNoSound then + if (not gNoSound) then begin e_WriteLog('Initializing sound system', MSG_NOTIFY); - e_InitSoundSystem(); + e_InitSoundSystem({$IFDEF HEADLESS}True{$ELSE}False{$ENDIF}); end; e_WriteLog('Init game', MSG_NOTIFY); @@ -138,8 +154,8 @@ begin 'Ø': Result[i] := 'I'; 'Ù': Result[i] := 'O'; 'Ç': Result[i] := 'P'; - 'Õ': Result[i] := Chr(219); - 'Ú': Result[i] := Chr(221); + 'Õ': Result[i] := '['; //Chr(219); + 'Ú': Result[i] := ']'; //Chr(221); 'Ô': Result[i] := 'A'; 'Û': Result[i] := 'S'; 'Â': Result[i] := 'D'; @@ -149,8 +165,8 @@ begin 'Î': Result[i] := 'J'; 'Ë': Result[i] := 'K'; 'Ä': Result[i] := 'L'; - 'Æ': Result[i] := Chr(186); - 'Ý': Result[i] := Chr(222); + 'Æ': Result[i] := ';'; //Chr(186); + 'Ý': Result[i] := #39; //Chr(222); 'ß': Result[i] := 'Z'; '×': Result[i] := 'X'; 'Ñ': Result[i] := 'C'; @@ -158,8 +174,8 @@ begin 'È': Result[i] := 'B'; 'Ò': Result[i] := 'N'; 'Ü': Result[i] := 'M'; - 'Á': Result[i] := Chr(188); - 'Þ': Result[i] := Chr(190); + 'Á': Result[i] := ','; //Chr(188); + 'Þ': Result[i] := '.'; //Chr(190); end; end; @@ -174,8 +190,20 @@ begin if length(ls2) = 0 then ls2 := '~'; result := (Copy(charbuff, 17-Length(ls1)-eofs, Length(ls1)) = ls1) or + (Translit(Copy(charbuff, 17-Length(ls1)-eofs, Length(ls1))) = ls1) or (Copy(charbuff, 17-Length(ls2)-eofs, Length(ls2)) = ls2) or (Translit(Copy(charbuff, 17-Length(ls2)-eofs, Length(ls2))) = ls2); + { + if ct = I_GAME_CHEAT_JETPACK then + begin + e_WriteLog('ls1: ['+ls1+']', MSG_NOTIFY); + e_WriteLog('ls2: ['+ls2+']', MSG_NOTIFY); + e_WriteLog('bf0: ['+Copy(charbuff, 17-Length(ls1)-eofs, Length(ls1))+']', MSG_NOTIFY); + e_WriteLog('bf1: ['+Translit(Copy(charbuff, 17-Length(ls1)-eofs, Length(ls1)))+']', MSG_NOTIFY); + e_WriteLog('bf2: ['+Copy(charbuff, 17-Length(ls2)-eofs, Length(ls2))+']', MSG_NOTIFY); + e_WriteLog('bf3: ['+Translit(Copy(charbuff, 17-Length(ls2)-eofs, Length(ls2)))+']', MSG_NOTIFY); + end; + } end; @@ -469,7 +497,7 @@ begin else begin for a := 0 to 14 do charbuff[a] := charbuff[a+1]; - charbuff[15] := SFSUpCase(C); + charbuff[15] := UpCase1251(C); Cheat(); end; end;