X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_monsters.pas;h=a437ff9bdcd13e7c1ea72bc56b75efe61c4a72cb;hb=8213065ce7c035c3c2bb8d8b90ab423d42c0a5ac;hp=006d3c87702f2d408dbe3e16290eef590a965bce;hpb=a4f25c41dfd783a925aa2dab4b9b84753d5c3f18;p=d2df-sdl.git diff --git a/src/game/g_monsters.pas b/src/game/g_monsters.pas index 006d3c8..a437ff9 100644 --- a/src/game/g_monsters.pas +++ b/src/game/g_monsters.pas @@ -91,6 +91,9 @@ type function findNewPrey(): Boolean; procedure ActivateTriggers(); + procedure setGameX (v: Integer); inline; + procedure setGameY (v: Integer); inline; + public FNoRespawn: Boolean; FFireTime: Integer; @@ -135,6 +138,8 @@ type procedure positionChanged (); //WARNING! call this after monster position was changed, or coldet will not work right! + procedure setPosition (ax, ay: Integer; callPosChanged: Boolean=true); inline; + procedure getMapBox (out x, y, w, h: Integer); inline; public @@ -159,8 +164,8 @@ type property UID: Word read FUID write FUID; property SpawnTrigger: Integer read FSpawnTrigger write FSpawnTrigger; - property GameX: Integer read FObj.X write FObj.X; - property GameY: Integer read FObj.Y write FObj.Y; + property GameX: Integer read FObj.X write setGameX; + property GameY: Integer read FObj.Y write setGameY; property GameVelX: Integer read FObj.Vel.X write FObj.Vel.X; property GameVelY: Integer read FObj.Vel.Y write FObj.Vel.Y; property GameAccelX: Integer read FObj.Accel.X write FObj.Accel.X; @@ -256,6 +261,7 @@ uses g_language, g_netmsg, idpool; + // ////////////////////////////////////////////////////////////////////////// // procedure g_Mons_ProfilersBegin (); begin @@ -1491,6 +1497,11 @@ end; { T M o n s t e r : } +procedure TMonster.setGameX (v: Integer); inline; begin FObj.X := v; positionChanged(); end; +procedure TMonster.setGameY (v: Integer); inline; begin FObj.Y := v; positionChanged(); end; +procedure TMonster.setPosition (ax, ay: Integer; callPosChanged: Boolean=true); inline; begin FObj.X := ax; FObj.Y := ay; if callPosChanged then positionChanged(); end; + + procedure TMonster.ActionSound(); begin case FMonsterType of @@ -1679,8 +1690,8 @@ begin FObj.Accel.X := 0; FObj.Accel.Y := 0; FDirection := FStartDirection; - GameX := FStartX; - GameY := FStartY; + {GameX}FObj.X := FStartX; + {GameY}FObj.Y := FStartY; FObj.Rect := MONSTERTABLE[FMonsterType].Rect; FHealth := MONSTERTABLE[FMonsterType].Health; FAmmo := 0; @@ -2055,7 +2066,7 @@ begin o.Y+o.Rect.Y+o.Rect.Height-128, M_NONE); // Íå â îáëàñòè ðèñîâàíèÿ íå ðåñóåì: - if not g_dbg_scale_05 then + if (g_dbg_scale = 1.0) then begin if not g_Collide(FObj.X+FObj.Rect.X, FObj.Y+FObj.Rect.Y, FObj.Rect.Width, FObj.Rect.Height, sX-128, sY-128, sWidth+256, sHeight+256) then