diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2009-01-11 10:26:17 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2009-01-11 10:26:17 +0000 |
| commit | 371e8623161095b8f74d51d37f3de368b5cd584c (patch) | |
| tree | f3d2987e542d7d01529b871337a3efe7b4b9ab01 /src/game/server | |
| parent | 518db9218fcb3152d02bbc7b9bb3b0e5ff52a41b (diff) | |
| download | zcatch-371e8623161095b8f74d51d37f3de368b5cd584c.tar.gz zcatch-371e8623161095b8f74d51d37f3de368b5cd584c.zip | |
fixed so the laser bounces correctly at low angles
Diffstat (limited to 'src/game/server')
| -rw-r--r-- | src/game/server/entities/laser.cpp | 6 | ||||
| -rw-r--r-- | src/game/server/entities/projectile.cpp | 2 | ||||
| -rw-r--r-- | src/game/server/gamemodes/ctf.cpp | 2 |
3 files changed, 6 insertions, 4 deletions
diff --git a/src/game/server/entities/laser.cpp b/src/game/server/entities/laser.cpp index 20054ed4..2c6fa0ff 100644 --- a/src/game/server/entities/laser.cpp +++ b/src/game/server/entities/laser.cpp @@ -48,14 +48,16 @@ void LASER::do_bounce() } vec2 to = pos + dir*energy; + vec2 org_to = to; - if(col_intersect_line(pos, to, &to)) + if(col_intersect_line(pos, to, 0x0, &to)) { if(!hit_character(pos, to)) { // intersected from = pos; - pos = to - dir*2; + pos = to; + vec2 temp_pos = pos; vec2 temp_dir = dir*4.0f; diff --git a/src/game/server/entities/projectile.cpp b/src/game/server/entities/projectile.cpp index e0b4701a..2a8de766 100644 --- a/src/game/server/entities/projectile.cpp +++ b/src/game/server/entities/projectile.cpp @@ -65,7 +65,7 @@ void PROJECTILE::tick() lifespan--; - int collide = col_intersect_line(prevpos, curpos, &curpos); + int collide = col_intersect_line(prevpos, curpos, &curpos, 0); //int collide = col_check_point((int)curpos.x, (int)curpos.y); CHARACTER *ownerchar = game.get_player_char(owner); CHARACTER *targetchr = game.world.intersect_character(prevpos, curpos, 6.0f, curpos, ownerchar); diff --git a/src/game/server/gamemodes/ctf.cpp b/src/game/server/gamemodes/ctf.cpp index 6e87841f..65058883 100644 --- a/src/game/server/gamemodes/ctf.cpp +++ b/src/game/server/gamemodes/ctf.cpp @@ -122,7 +122,7 @@ void GAMECONTROLLER_CTF::tick() int num = game.world.find_entities(f->pos, 32.0f, (ENTITY**)close_characters, MAX_CLIENTS, NETOBJTYPE_CHARACTER); for(int i = 0; i < num; i++) { - if(!close_characters[i]->alive || close_characters[i]->player->team == -1 || col_intersect_line(f->pos, close_characters[i]->pos, NULL)) + if(!close_characters[i]->alive || close_characters[i]->player->team == -1 || col_intersect_line(f->pos, close_characters[i]->pos, NULL, NULL)) continue; if(close_characters[i]->team == f->team) |