diff --git a/src/game/g_player.pas b/src/game/g_player.pas
index e7f3fee964a6f24df74675de530d0b8d3255312b..39848acaefdc2055d3fc784bfb19b84cd180958b 100644 (file)
--- a/src/game/g_player.pas
+++ b/src/game/g_player.pas
{$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;
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;
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;
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;
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));
// Анимация возрождения:
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
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
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
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)
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)