X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_main.pas;h=48f0bb5648c73f18825364e46b4e8b93c99bf4bf;hb=d1e9c820c486228a7f80ac8c1e2928abea10f0bd;hp=97b005d30b2e6a8f264437a245028d5b17ac83b7;hpb=b529f458b42bebe709d4e10f42f8bcc71f33b093;p=d2df-sdl.git diff --git a/src/game/g_main.pas b/src/game/g_main.pas index 97b005d..48f0bb5 100644 --- a/src/game/g_main.pas +++ b/src/game/g_main.pas @@ -20,16 +20,18 @@ 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 GetDir(0, GameDir); MapsDir := GameDir + '/maps/'; @@ -41,6 +43,8 @@ begin e_WriteLog('Read config file', MSG_NOTIFY); g_Options_Read(GameDir + '/' + CONFIG_FILENAME); + + e_WriteToStdOut := {$IFDEF HEADLESS}True;{$ELSE}False;{$ENDIF} //GetSystemDefaultLCID() @@ -48,23 +52,32 @@ begin //g_Language_Load(DataDir + gLanguage + '.txt'); 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 +97,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 +151,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 +162,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 +171,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 +187,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 +494,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;