summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: ab442f1)
raw | patch | inline | side by side (parent: ab442f1)
author | fgsfds <pvt.fgsfds@gmail.com> | |
Sat, 12 Aug 2017 20:30:18 +0000 (23:30 +0300) | ||
committer | fgsfds <pvt.fgsfds@gmail.com> | |
Sat, 12 Aug 2017 20:30:18 +0000 (23:30 +0300) |
src/game/g_weapons.pas | patch | blob | history |
diff --git a/src/game/g_weapons.pas b/src/game/g_weapons.pas
index 2e2521b72f9956912574ac8a2eba69f71fe2ede4..b5e46d11e930755b647728f1c8f9eae179555c98 100644 (file)
--- a/src/game/g_weapons.pas
+++ b/src/game/g_weapons.pas
Animation := nil;
TextureID := 0;
g_Frames_Get(TextureID, 'FRAMES_FLAME');
- Stopped := 0;
end;
end;
Shots[find_id].Obj.Accel.X := 0;
Shots[find_id].Obj.Accel.Y := 0;
Shots[find_id].SpawnerUID := Spawner;
+ if (ShotType = WEAPON_FLAMETHROWER) and (XV = 0) and (YV = 0) then
+ Shots[find_id].Stopped := 255
+ else
+ Shots[find_id].Stopped := 0;
Result := find_id;
end;
Shots[i].Obj.Vel.Y := (yd*s) div a;
Shots[i].Obj.Accel.X := 0;
Shots[i].Obj.Accel.Y := 0;
+ Shots[i].Stopped := 0;
if Shots[i].ShotType in [WEAPON_ROCKETLAUNCHER, WEAPON_BFG] then
Shots[i].Timeout := 900 // ~25 sec
else
Animation := nil;
TextureID := 0;
g_Frames_Get(TextureID, 'FRAMES_FLAME');
- Stopped := 0;
end;
Shots[find_id].SpawnerUID := SpawnerUID;
oldvx := Obj.Vel.X;
oldvy := Obj.Vel.Y;
// Àêòèâèðîâàòü òðèããåðû ïî ïóòè (êðîìå óæå àêòèâèðîâàííûõ):
- if g_Game_IsServer then
+ if (Stopped = 0) and g_Game_IsServer then
t := g_Triggers_PressR(Obj.X, Obj.Y, Obj.Rect.Width, Obj.Rect.Height,
SpawnerUID, ACTIVATE_SHOT, triggers)
else
(ShotType <> WEAPON_BSP_FIRE) and
(ShotType <> WEAPON_FLAMETHROWER);
- st := g_Obj_Move(@Obj, False, spl);
+ if Stopped = 0 then
+ st := g_Obj_Move(@Obj, False, spl)
+ else
+ st := 0;
if WordBool(st and MOVE_FALLOUT) or (Obj.X < -1000) or
(Obj.X > gMapInfo.Width+1000) or (Obj.Y < -1000) then
Anim := TAnimation.Create(TextureID, False, 2 + Random(2));
Anim.Alpha := 0;
case Stopped of
- 0: g_GFX_OnceAnim(cx-4+Random(8)-(Anim.Width div 2),
- cy-4+Random(8)-(Anim.Height div 2),
- Anim, ONCEANIM_SMOKE);
MOVE_HITWALL: g_GFX_OnceAnim(cx-4+Random(8)-(Anim.Width div 2),
cy-12+Random(24)-(Anim.Height div 2),
Anim, ONCEANIM_SMOKE);
MOVE_HITCEIL: g_GFX_OnceAnim(cx-12+Random(24)-(Anim.Width div 2),
cy+6+Random(8)-(Anim.Height div 2),
Anim, ONCEANIM_SMOKE);
+ else g_GFX_OnceAnim(cx-4+Random(8)-(Anim.Width div 2),
+ cy-4+Random(8)-(Anim.Height div 2),
+ Anim, ONCEANIM_SMOKE);
end;
Anim.Free();
end;