X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_player.pas;h=39848acaefdc2055d3fc784bfb19b84cd180958b;hb=e979719019322a78e7fded8fd96130c18cf31972;hp=e7f3fee964a6f24df74675de530d0b8d3255312b;hpb=b796b9f7b887de367bb71ccf5acdd3e39d82ebd2;p=d2df-sdl.git diff --git a/src/game/g_player.pas b/src/game/g_player.pas index e7f3fee..39848ac 100644 --- a/src/game/g_player.pas +++ b/src/game/g_player.pas @@ -23,7 +23,7 @@ uses {$IFDEF USE_MEMPOOL}mempool,{$ENDIF} g_base, g_playermodel, g_basic, g_textures, g_weapons, g_phys, g_sound, g_saveload, MAPDEF, - g_panel, r_playermodel; + g_panel; const KEY_LEFT = 1; @@ -520,12 +520,10 @@ type PShell = ^TShell; TShell = record - SpriteID: DWORD; - alive: Boolean; + alive: Boolean; SType: Byte; RAngle: Integer; Timeout: Cardinal; - CX, CY: Integer; Obj: TObj; procedure getMapBox (out x, y, w, h: Integer); inline; @@ -626,11 +624,14 @@ procedure g_Bot_RemoveAll(); implementation uses -{$IFDEF ENABLE_HOLMES} - g_holmes, -{$ENDIF} - e_log, g_map, g_items, g_console, g_gfx, Math, r_textures, r_animations, r_gfx, - g_options, g_triggers, g_menu, g_game, g_grid, e_res, + {$IFDEF ENABLE_HOLMES} + g_holmes, + {$ENDIF} + {$IFNDEF HEADLESS} + r_render, g_menu, + {$ENDIF} + e_log, g_map, g_items, g_console, g_gfx, Math, + g_options, g_triggers, g_game, g_grid, e_res, wadreader, g_monsters, CONFIG, g_language, g_net, g_netmsg, utils, xstreams; @@ -1576,33 +1577,22 @@ begin end; procedure g_Player_CreateShell(fX, fY, dX, dY: Integer; T: Byte); -var - SID: DWORD; begin if (gShells = nil) or (Length(gShells) = 0) then Exit; with gShells[CurrentShell] do begin - SpriteID := 0; g_Obj_Init(@Obj); Obj.Rect.X := 0; Obj.Rect.Y := 0; if T = SHELL_BULLET then begin - if g_Texture_Get('TEXTURE_SHELL_BULLET', SID) then - SpriteID := SID; - CX := 2; - CY := 1; Obj.Rect.Width := 4; Obj.Rect.Height := 2; end else begin - if g_Texture_Get('TEXTURE_SHELL_SHELL', SID) then - SpriteID := SID; - CX := 4; - CY := 2; Obj.Rect.Width := 7; Obj.Rect.Height := 3; end; @@ -1644,7 +1634,14 @@ begin Color := fColor; alive := True; g_Obj_Init(@Obj); - Obj.Rect := r_PlayerModel_GetGibRect(ModelID, GibID); + {$IFNDEF HEADLESS} + Obj.Rect := r_Render_GetGibRect(ModelID, GibID); + {$ELSE} + Obj.Rect.X := 16; + Obj.Rect.Y := 16; + Obj.Rect.Width := 16; + Obj.Rect.Height := 16; + {$ENDIF} Obj.X := fX - Obj.Rect.X - (Obj.Rect.Width div 2); Obj.Y := fY - Obj.Rect.Y - (Obj.Rect.Height div 2); g_Obj_PushA(@Obj, 25 + Random(10), Random(361)); @@ -3922,7 +3919,7 @@ begin // Анимация возрождения: if (not gLoadGameMode) and (not Silent) then - r_GFX_OnceAnim( + g_GFX_QueueEffect( R_GFX_TELEPORT_FAST, FObj.X+PLAYER_RECT.X+(PLAYER_RECT.Width div 2)-32, FObj.Y+PLAYER_RECT.Y+(PLAYER_RECT.Height div 2)-32 @@ -4122,7 +4119,7 @@ begin if not silent then begin g_Sound_PlayExAt('SOUND_GAME_TELEPORT', FObj.X, FObj.Y); - r_GFX_OnceAnim( + g_GFX_QueueEffect( R_GFX_TELEPORT_FAST, FObj.X+PLAYER_RECT.X+(PLAYER_RECT.Width div 2)-32, FObj.Y+PLAYER_RECT.Y+(PLAYER_RECT.Height div 2)-32 @@ -4174,7 +4171,7 @@ begin if not silent then begin - r_GFX_OnceAnim( + g_GFX_QueueEffect( R_GFX_TELEPORT_FAST, FObj.X+PLAYER_RECT.X+(PLAYER_RECT.Width div 2)-32, FObj.Y+PLAYER_RECT.Y+(PLAYER_RECT.Height div 2)-32 @@ -5675,7 +5672,7 @@ begin for i := 1 to Times do begin - r_GFX_OnceAnim( + g_GFX_QueueEffect( R_GFX_SMOKE_TRANS, Obj.X+Obj.Rect.X+Random(Obj.Rect.Width+Times*2)-(R_GFX_SMOKE_WIDTH div 2), Obj.Y+Obj.Rect.Height-4+Random(8+Times*2) @@ -5691,7 +5688,7 @@ begin for i := 1 to Times do begin - r_GFX_OnceAnim( + g_GFX_QueueEffect( R_GFX_FLAME, Obj.X+Obj.Rect.X+Random(Obj.Rect.Width+Times*2)-(R_GFX_FLAME_WIDTH div 2), Obj.Y+8+Random(8+Times*2)