X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fgame%2Fg_items.pas;h=e81bdd4caa55ddb98fa3c877a8dacd0b4adfda5d;hb=6837a957a80cae5f212cc5a1447b2e7dac15c159;hp=6ff6b86e6010e11caf2ba007fc645c388fe61c05;hpb=c8d05082e92b7c2c5b722e2b205e96a15a32eec2;p=d2df-sdl.git diff --git a/src/game/g_items.pas b/src/game/g_items.pas index 6ff6b86..e81bdd4 100644 --- a/src/game/g_items.pas +++ b/src/game/g_items.pas @@ -19,7 +19,7 @@ interface uses SysUtils, Classes, - MAPDEF, g_textures, g_phys, g_saveload; + MAPDEF, g_phys, g_saveload; Type PItem = ^TItem; @@ -39,7 +39,6 @@ Type QuietRespawn: Boolean; SpawnTrigger: Integer; Obj: TObj; - Animation: TAnimationState; dropped: Boolean; // dropped from the monster? drops should be rendered after corpses, so zombie corpse will not obscure ammo container, for example NeedSend: Boolean; @@ -91,12 +90,16 @@ var implementation -uses - Math, - g_basic, g_sound, g_gfx, g_map, r_animations, r_gfx, - g_game, g_triggers, g_console, g_player, g_net, g_netmsg, - e_log, g_options, - g_grid, binheap, idpool, utils, xstreams; + uses + {$IFDEF ENABLE_GFX} + g_gfx, + {$ENDIF} + Math, + g_basic, g_sound, g_map, + g_game, g_triggers, g_console, g_player, g_net, g_netmsg, + e_log, g_options, + g_grid, binheap, idpool, utils, xstreams + ; // ////////////////////////////////////////////////////////////////////////// // var @@ -234,11 +237,6 @@ begin if not it.slotIsUsed then raise Exception.Create('releaseItem: trying to release unallocated item (1)'); if (it.arrIdx <> idx) then raise Exception.Create('releaseItem: arrIdx inconsistency'); it.slotIsUsed := false; - if (it.Animation <> nil) then - begin - it.Animation.Free(); - it.Animation := nil; - end; it.alive := False; it.SpawnTrigger := -1; it.ItemType := ITEM_NONE; @@ -262,7 +260,6 @@ begin it.slotIsUsed := false; it.arrIdx := i; it.ItemType := ITEM_NONE; - it.Animation := nil; it.alive := false; it.SpawnTrigger := -1; it.Respawnable := false; @@ -319,14 +316,9 @@ end; procedure g_Items_Free (); -var - i: Integer; begin if (ggItems <> nil) then - begin - for i := 0 to High(ggItems) do ggItems[i].Animation.Free(); ggItems := nil; - end; freeIds.clear(); end; @@ -364,7 +356,6 @@ begin it.Obj.Rect.Width := ITEMSIZE[ItemType][0]; it.Obj.Rect.Height := ITEMSIZE[ItemType][1]; - it.Animation := nil; it.SpawnTrigger := -1; // Êîîðäèíàòû îòíîñèòåëüíî öåíòðà íèæíåãî ðåáðà @@ -382,19 +373,6 @@ begin it.Obj.oldX := it.Obj.X; it.Obj.oldY := it.Obj.Y; - // Óñòàíîâêà àíèìàöèè - case it.ItemType of - ITEM_ARMOR_GREEN: it.Animation := TAnimationState.Create(True, 20, 3); - ITEM_ARMOR_BLUE: it.Animation := TAnimationState.Create(True, 20, 3); - ITEM_JETPACK: it.Animation := TAnimationState.Create(True, 15, 3); - ITEM_SPHERE_BLUE: it.Animation := TAnimationState.Create(True, 15, 4); - ITEM_SPHERE_WHITE: it.Animation := TAnimationState.Create(True, 20, 4); - ITEM_INVUL: it.Animation := TAnimationState.Create(True, 20, 4); - ITEM_INVIS: it.Animation := TAnimationState.Create(True, 20, 4); - ITEM_BOTTLE: it.Animation := TAnimationState.Create(True, 20, 4); - ITEM_HELMET: it.Animation := TAnimationState.Create(True, 20, 4); - end; - it.positionChanged(); result := find_id; @@ -509,7 +487,13 @@ begin if (RespawnTime = 0) and (not alive) then begin if not QuietRespawn then g_Sound_PlayExAt('SOUND_ITEM_RESPAWNITEM', InitX, InitY); - r_GFX_OnceAnim(R_GFX_ITEM_RESPAWN, InitX + (Obj.Rect.Width div 2) - 16, InitY + (Obj.Rect.Height div 2) - 16); + {$IFDEF ENABLE_GFX} + g_GFX_QueueEffect( + R_GFX_ITEM_RESPAWN, + InitX + (Obj.Rect.Width div 2) - 16, + InitY + (Obj.Rect.Height div 2) - 16 + ); + {$ENDIF} Obj.oldX := InitX; Obj.oldY := InitY; Obj.X := InitX; @@ -526,8 +510,6 @@ begin QuietRespawn := false; end; end; - - if (Animation <> nil) then Animation.Update(); end; end; end;