aboutsummaryrefslogtreecommitdiff
path: root/src/collision.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-11-27 04:31:05 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-11-29 19:13:54 +0200
commit82a460ec90b4537926f31603219504bce8817ac2 (patch)
tree91bfae1ab35367a3617e19023842d9218255b1eb /src/collision.cpp
parentb4e6ca63b54407bf67e5656692016c4f2927358d (diff)
Improve luaentity sprite functionality (and add some random stuff)
Diffstat (limited to 'src/collision.cpp')
-rw-r--r--src/collision.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/collision.cpp b/src/collision.cpp
index 24f1e9d18..3460b04fd 100644
--- a/src/collision.cpp
+++ b/src/collision.cpp
@@ -72,11 +72,16 @@ collisionMoveResult collisionMoveSimple(Map *map, IGameDef *gamedef,
/*
Go through every node around the object
- TODO: Calculate the range of nodes that need to be checked
*/
- for(s16 y = oldpos_i.Y - 1; y <= oldpos_i.Y + 2; y++)
- for(s16 z = oldpos_i.Z - 1; z <= oldpos_i.Z + 1; z++)
- for(s16 x = oldpos_i.X - 1; x <= oldpos_i.X + 1; x++)
+ s16 min_x = (box_0.MinEdge.X / BS) - 2;
+ s16 min_y = (box_0.MinEdge.Y / BS) - 2;
+ s16 min_z = (box_0.MinEdge.Z / BS) - 2;
+ s16 max_x = (box_0.MaxEdge.X / BS) + 1;
+ s16 max_y = (box_0.MaxEdge.Y / BS) + 1;
+ s16 max_z = (box_0.MaxEdge.Z / BS) + 1;
+ for(s16 y = oldpos_i.Y + min_y; y <= oldpos_i.Y + max_y; y++)
+ for(s16 z = oldpos_i.Z + min_z; z <= oldpos_i.Z + max_z; z++)
+ for(s16 x = oldpos_i.X + min_x; x <= oldpos_i.X + max_x; x++)
{
try{
// Object collides into walkable nodes
141 142 143 144 145 146 147 148 149 150
# Blender v2.76 (sub 0) OBJ File: 'dark_tuber.blend'
# www.blender.org
g tuber
v 0.068165 0.171006 0.601066
v 0.068165 0.328994 0.601066
v -0.068165 0.328994 0.601066
v -0.068165 0.171006 0.601066
v 0.184430 0.065570 0.081152
v 0.184430 0.434431 0.016861
v -0.190760 0.430332 0.072541
v -0.184430 0.065570 0.221249
v 0.111639 0.137188 0.264378
v 0.108474 0.360762 0.259011
v -0.131011 0.350268 0.238021
v -0.114803 0.135139 0.328379
v 0.050415 0.195602 0.451854
v 0.050415 0.304398 0.466035
v -0.058854 0.298933 0.440372
v -0.050415 0.195602 0.469734
v 0.132013 0.116200 0.277490
v 0.132013 0.383800 0.248250
v -0.132013 0.383800 0.277490
v -0.132013 0.116200 0.355945
v 0.000000 0.171006 0.601066
v 0.000000 0.019494 0.166419
v 0.000000 0.118180 0.299225
v 0.000000 0.184188 0.460794
v 0.000000 0.091796 0.320542
v -0.000000 0.328994 0.601066
v -0.003165 0.478457 0.029481
v -0.012851 0.373499 0.245669
v -0.004220 0.313080 0.453203
v -0.000000 0.408204 0.259046
v -0.068165 0.250000 0.601066
v -0.233671 0.247951 0.162114
v -0.143497 0.241679 0.281741
v -0.064484 0.247267 0.455053
v -0.156417 0.250000 0.320542
v 0.068165 0.250000 0.601066
v 0.230506 0.250000 0.033787
v 0.130646 0.250000 0.263154
v 0.060264 0.250000 0.458944
v 0.156417 0.250000 0.259046
vt 1.000000 1.000000
vt 0.937500 1.000000
vt 0.875000 1.000000
vt 0.875000 0.937500
vt 0.875000 0.875000
vt 0.937500 0.875000
vt 1.000000 0.875000
vt 1.000000 0.937500
vt 0.750000 1.000000
vt 0.750000 0.500000
vt 0.875000 0.500000
vt 0.625000 0.500000
vt 0.625000 1.000000
vt 0.500000 1.000000
vt 0.500000 0.500000
vt 0.375000 0.500000
vt 0.375000 1.000000
vt 0.250000 1.000000
vt 0.250000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt -0.000000 1.000000
vt 0.000000 0.500000
vt 0.875000 -0.000000
vt 1.000000 0.000000
vt 1.000000 0.500000
vt 1.000000 0.750000
vt 1.000000 0.812500
vt 0.875000 0.812500
vt 0.875000 0.750000
vt 0.937500 0.750000
vt 0.125000 -0.000000
vt -0.000000 -0.000000
vt 0.375000 -0.000000
vt 0.250000 -0.000000
vt 0.625000 0.000000
vt 0.500000 -0.000000
vt 0.750000 0.000000
vn 0.000000 -1.000000 -0.000000
vn 0.764800 0.518100 -0.383000
vn 0.930800 -0.283500 0.230800
vn -0.161500 -0.277500 0.947000
vn -0.905200 -0.416000 -0.086500
vn -0.072500 -0.254700 -0.964300
vn 0.010500 0.576200 0.817300
vn -0.165900 0.384900 -0.907900
vn -0.905900 0.402100 0.132600
vn 0.035600 0.997300 -0.063700
vn -0.087800 -0.403600 -0.910700
vn -0.956900 -0.283400 -0.062600
vn -0.099700 -0.205600 0.973500
vn 0.967500 -0.221400 0.122200
vn -0.075100 0.278700 -0.957400
vn -0.923500 0.343200 0.171400
vn 0.889600 0.387400 -0.241800
vn 0.065900 0.396300 0.915700
vn -0.266100 0.364700 0.892300
vn 0.338400 -0.356100 -0.871000
vn -0.375700 0.505200 0.776900
vn 0.166400 -0.230300 -0.958800
vn 0.235500 0.298600 -0.924900
vn 0.129200 -0.199200 0.971400
vn 0.153800 0.447300 -0.881100
vn 0.220500 -0.269400 0.937500
vn 0.900900 0.426900 0.078000
vn -0.953500 -0.254700 0.160900
vn -0.867100 -0.365900 0.338100
vn 0.816200 0.577700 0.008700
vn -0.930700 0.321200 -0.174700
vn 0.969100 -0.229000 -0.091300
vn -0.898400 0.371600 -0.234200
vn 0.942500 -0.300400 -0.146600
s off
f 1/1/1 36/2/1 2/3/1 26/4/1 3/5/1 31/6/1 4/7/1 21/8/1
f 32/3/2 7/9/2 11/10/2 33/11/2
f 40/12/3 37/13/3 6/14/3 18/15/3
f 30/16/4 27/17/4 7/18/4 19/19/4
f 35/20/5 32/21/5 8/22/5 20/23/5
f 25/11/6 21/24/6 4/25/6 20/26/6
f 22/21/7 8/22/7 12/23/7 23/20/7
f 27/13/8 6/14/8 10/15/8 28/12/8
f 37/17/9 5/18/9 9/19/9 38/16/9
f 13/27/10 24/28/10 16/7/10 34/6/10 15/5/10 29/29/10 14/30/10 39/31/10
f 22/3/11 25/11/11 20/26/11 8/1/11
f 31/32/12 35/20/12 20/23/12 4/33/12
f 26/34/13 30/16/13 19/19/13 3/35/13
f 36/36/14 40/12/14 18/15/14 2/37/14
f 28/12/15 10/15/15 14/37/15 29/36/15
f 38/16/16 9/19/16 13/35/16 39/34/16
f 33/11/17 11/10/17 15/38/17 34/24/17
f 23/20/18 12/23/18 16/33/18 24/32/18
f 9/19/19 23/20/19 24/32/19 13/35/19
f 5/9/20 17/10/20 25/11/20 22/3/20
f 5/18/21 22/21/21 23/20/21 9/19/21
f 17/10/22 1/38/22 21/24/22 25/11/22
f 11/10/23 28/12/23 29/36/23 15/38/23
f 2/37/24 18/15/24 30/16/24 26/34/24
f 7/9/25 27/13/25 28/12/25 11/10/25
f 18/15/26 6/14/26 27/17/26 30/16/26
f 12/26/27 33/11/27 34/24/27 16/25/27
f 3/35/28 19/19/28 35/20/28 31/32/28
f 19/19/29 7/18/29 32/21/29 35/20/29
f 8/1/30 32/3/30 33/11/30 12/26/30
f 10/15/31 38/16/31 39/34/31 14/37/31
f 1/38/32 17/10/32 40/12/32 36/36/32
f 6/14/33 37/17/33 38/16/33 10/15/33
f 17/10/34 5/9/34 37/13/34 40/12/34