X-Git-Url: http://deadsoftware.ru/gitweb?p=d2df-sdl.git;a=blobdiff_plain;f=src%2Fgame%2Fopengl%2Fr_monsters.pas;h=6ae4510555fba9f331f156adbfcca768e6aba966;hp=7b1fcc4b0a147dda4b2ff37ddd9de3b36202d078;hb=17ca3896bbe664f64e6c302023b8010d4ebd02ff;hpb=914d23e91073f293d6b09ce8fe448705975b5f12 diff --git a/src/game/opengl/r_monsters.pas b/src/game/opengl/r_monsters.pas index 7b1fcc4..6ae4510 100644 --- a/src/game/opengl/r_monsters.pas +++ b/src/game/opengl/r_monsters.pas @@ -33,8 +33,7 @@ implementation ; type - TMonsterDirected = array [TDirection.D_LEFT..TDirection.D_RIGHT] of DWORD; - TMonsterAnims = array [ANIM_SLEEP..ANIM_PAIN] of TMonsterDirected; + TMonsterAnims = array [ANIM_SLEEP..ANIM_PAIN, TDirection.D_LEFT..TDirection.D_RIGHT] of DWORD; var VileFire: DWORD; @@ -372,7 +371,7 @@ implementation end; procedure r_Monsters_Draw (constref monster: TMonster); - var m: TMirrorType; dx, dy, c, fX, fY: Integer; o: TObj; + var m: TMirrorType; dx, dy, c, fX, fY, mw, mh: Integer; o: TObj; begin with monster do begin @@ -422,8 +421,8 @@ implementation // Расстояние от края текстуры до края визуального положения объекта на текстуре: c := (MONSTERTABLE[MonsterType].Rect.X - dx) + MONSTERTABLE[MonsterType].Rect.Width; // Расстояние от края хит бокса до края визуального положения объекта на текстуре: - //dx := DirAnim[MonsterAnim, GameDirection].Width - c - MONSTERTABLE[MonsterType].Rect.X; - dx := 64 - c - MONSTERTABLE[MonsterType].Rect.X; // !!! ^^^ + g_Frames_GetFrameSize(monFrames[MonsterType, MonsterAnim, GameDirection], mw, mh); + dx := mw - c - MONSTERTABLE[MonsterType].Rect.X; // !!! ^^^ // Т.к. двигать текстуру нужно будет в противоположном направлении: dx := -dx; // Это значит: dX := -frameWidth - animDeltaX + hitX + hitWidth + hitX