From c566f87fe5853e4f1596792652f203c7386c8699 Mon Sep 17 00:00:00 2001 From: taw27 Date: Wed, 30 Jul 2008 23:40:38 +0000 Subject: Plumbing :) git-svn-id: svn://cook.msm.cam.ac.uk:745/thrust3d/thrust3d@199 84d2e878-0bd5-11dd-ad15-13eda11d74c5 --- data/Makefile.am | 3 ++- data/models/pipe-horiz | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ data/models/walle-hole | 69 +++++++++++++++++++++++++++++++++++++++++++++++ data/rooms/00-00-01 | 2 ++ data/rooms/00-00-02 | 2 ++ data/rooms/00-00-03 | 4 ++- data/rooms/00-00-04 | 3 +++ data/rooms/00-01-04 | 3 +++ data/rooms/00-02-04 | 3 +++ src/game.c | 2 +- src/obj2model.c | 29 ++++++++++++++++---- 11 files changed, 184 insertions(+), 8 deletions(-) create mode 100644 data/models/pipe-horiz create mode 100644 data/models/walle-hole diff --git a/data/Makefile.am b/data/Makefile.am index 1c3afd6..f4ec188 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -1,6 +1,7 @@ modelsdir = $(datadir)/thrust3d/models models_DATA = models/floor models/lander models/randombox models/walle models/walln models/wallw models/walls \ - models/platform models/ceiling models/tiledfloor models/pipe models/lander-coll + models/platform models/ceiling models/tiledfloor models/pipe models/lander-coll models/walle-hole \ + models/pipe-horiz shadersdir = $(datadir)/thrust3d/shaders shaders_DATA = shaders/lighting.vert shaders/lighting.frag shaders/swirlytron.vert shaders/swirlytron.frag diff --git a/data/models/pipe-horiz b/data/models/pipe-horiz new file mode 100644 index 0000000..4e08368 --- /dev/null +++ b/data/models/pipe-horiz @@ -0,0 +1,72 @@ +# source-material/models/pipe-horiz.obj + +QUADS + +0.462 -5.000 -0.191 0.000 0.000 +0.924 +0.000 -0.383 + +0.354 -5.000 -0.354 0.000 0.000 +0.707 +0.000 -0.707 + +0.354 +5.000 -0.354 0.000 0.000 +0.707 +0.000 -0.707 + +0.462 +5.000 -0.191 0.000 0.000 +0.924 +0.000 -0.383 + +0.500 -5.000 +0.000 0.000 0.000 +1.000 +0.000 +0.000 + +0.462 -5.000 -0.191 0.000 0.000 +0.924 +0.000 -0.383 + +0.462 +5.000 -0.191 0.000 0.000 +0.924 +0.000 -0.383 + +0.500 +5.000 -0.000 0.000 0.000 +1.000 +0.000 +0.000 + +0.462 -5.000 +0.191 0.000 0.000 +0.924 +0.000 +0.383 + +0.500 -5.000 +0.000 0.000 0.000 +1.000 +0.000 +0.000 + +0.500 +5.000 -0.000 0.000 0.000 +1.000 +0.000 +0.000 + +0.462 +5.000 +0.191 0.000 0.000 +0.924 +0.000 +0.383 + +0.354 -5.000 +0.354 0.000 0.000 +0.707 +0.000 +0.707 + +0.462 -5.000 +0.191 0.000 0.000 +0.924 +0.000 +0.383 + +0.462 +5.000 +0.191 0.000 0.000 +0.924 +0.000 +0.383 + +0.354 +5.000 +0.354 0.000 0.000 +0.707 +0.000 +0.707 + +0.191 -5.000 +0.462 0.000 0.000 +0.383 +0.000 +0.924 + +0.354 -5.000 +0.354 0.000 0.000 +0.707 +0.000 +0.707 + +0.354 +5.000 +0.354 0.000 0.000 +0.707 +0.000 +0.707 + +0.191 +5.000 +0.462 0.000 0.000 +0.383 +0.000 +0.924 + +0.000 -5.000 +0.500 0.000 0.000 +0.000 +0.000 +1.000 + +0.191 -5.000 +0.462 0.000 0.000 +0.383 +0.000 +0.924 + +0.191 +5.000 +0.462 0.000 0.000 +0.383 +0.000 +0.924 + +0.000 +5.000 +0.500 0.000 0.000 +0.000 +0.000 +1.000 + -0.191 -5.000 +0.462 0.000 0.000 -0.383 +0.000 +0.924 + +0.000 -5.000 +0.500 0.000 0.000 +0.000 +0.000 +1.000 + +0.000 +5.000 +0.500 0.000 0.000 +0.000 +0.000 +1.000 + -0.191 +5.000 +0.462 0.000 0.000 -0.383 +0.000 +0.924 + -0.354 -5.000 +0.354 0.000 0.000 -0.707 +0.000 +0.707 + -0.191 -5.000 +0.462 0.000 0.000 -0.383 +0.000 +0.924 + -0.191 +5.000 +0.462 0.000 0.000 -0.383 +0.000 +0.924 + -0.354 +5.000 +0.354 0.000 0.000 -0.707 +0.000 +0.707 + -0.462 -5.000 +0.191 0.000 0.000 -0.924 +0.000 +0.383 + -0.354 -5.000 +0.354 0.000 0.000 -0.707 +0.000 +0.707 + -0.354 +5.000 +0.354 0.000 0.000 -0.707 +0.000 +0.707 + -0.462 +5.000 +0.191 0.000 0.000 -0.924 +0.000 +0.383 + -0.500 -5.000 -0.000 0.000 0.000 -1.000 +0.000 +0.000 + -0.462 -5.000 +0.191 0.000 0.000 -0.924 +0.000 +0.383 + -0.462 +5.000 +0.191 0.000 0.000 -0.924 +0.000 +0.383 + -0.500 +5.000 -0.000 0.000 0.000 -1.000 +0.000 +0.000 + -0.462 -5.000 -0.191 0.000 0.000 -0.924 +0.000 -0.383 + -0.500 -5.000 -0.000 0.000 0.000 -1.000 +0.000 +0.000 + -0.500 +5.000 -0.000 0.000 0.000 -1.000 +0.000 +0.000 + -0.462 +5.000 -0.191 0.000 0.000 -0.924 +0.000 -0.383 + -0.354 -5.000 -0.354 0.000 0.000 -0.707 +0.000 -0.707 + -0.462 -5.000 -0.191 0.000 0.000 -0.924 +0.000 -0.383 + -0.462 +5.000 -0.191 0.000 0.000 -0.924 +0.000 -0.383 + -0.354 +5.000 -0.354 0.000 0.000 -0.707 +0.000 -0.707 + -0.191 -5.000 -0.462 0.000 0.000 -0.383 +0.000 -0.924 + -0.354 -5.000 -0.354 0.000 0.000 -0.707 +0.000 -0.707 + -0.354 +5.000 -0.354 0.000 0.000 -0.707 +0.000 -0.707 + -0.191 +5.000 -0.462 0.000 0.000 -0.383 +0.000 -0.924 + +0.000 -5.000 -0.500 0.000 0.000 +0.000 +0.000 -1.000 + -0.191 -5.000 -0.462 0.000 0.000 -0.383 +0.000 -0.924 + -0.191 +5.000 -0.462 0.000 0.000 -0.383 +0.000 -0.924 + +0.000 +5.000 -0.500 0.000 0.000 +0.000 +0.000 -1.000 + +0.191 -5.000 -0.462 0.000 0.000 +0.383 +0.000 -0.924 + +0.000 -5.000 -0.500 0.000 0.000 +0.000 +0.000 -1.000 + +0.000 +5.000 -0.500 0.000 0.000 +0.000 +0.000 -1.000 + +0.191 +5.000 -0.462 0.000 0.000 +0.383 +0.000 -0.924 + +0.354 -5.000 -0.354 0.000 0.000 +0.707 +0.000 -0.707 + +0.191 -5.000 -0.462 0.000 0.000 +0.383 +0.000 -0.924 + +0.191 +5.000 -0.462 0.000 0.000 +0.383 +0.000 -0.924 + +0.354 +5.000 -0.354 0.000 0.000 +0.707 +0.000 -0.707 + +0.354 -5.000 -0.354 0.000 0.000 +0.707 +0.000 -0.707 + +0.191 -5.000 -0.462 0.000 0.000 +0.383 +0.000 -0.924 + +0.191 +5.000 -0.462 0.000 0.000 +0.383 +0.000 -0.924 + +0.354 +5.000 -0.354 0.000 0.000 +0.707 +0.000 -0.707 + diff --git a/data/models/walle-hole b/data/models/walle-hole new file mode 100644 index 0000000..d8e0eae --- /dev/null +++ b/data/models/walle-hole @@ -0,0 +1,69 @@ +# source-material/models/walle-hole.obj + +QUADS + -0.000 -2.500 +5.000 1.000 0.250 -1.000 -0.000 -0.000 + -0.000 -2.500 +2.500 0.750 0.250 -1.000 -0.000 -0.000 + +0.000 -5.000 +2.500 0.750 0.000 -1.000 -0.000 -0.000 + -0.000 -5.000 +5.000 1.000 0.000 -1.000 -0.000 -0.000 + -0.000 +0.000 +5.000 1.000 0.500 -1.000 -0.000 -0.000 + -0.000 +0.000 +2.500 0.750 0.500 -1.000 -0.000 -0.000 + -0.000 -2.500 +2.500 0.750 0.250 -1.000 -0.000 -0.000 + -0.000 -2.500 +5.000 1.000 0.250 -1.000 -0.000 -0.000 + -0.000 -2.500 +2.500 0.750 0.250 -1.000 -0.000 -0.000 + -0.000 -2.500 +0.000 0.500 0.250 -1.000 -0.000 -0.000 + -0.000 -5.000 +0.000 0.500 0.000 -1.000 -0.000 -0.000 + +0.000 -5.000 +2.500 0.750 0.000 -1.000 -0.000 -0.000 + -0.000 +0.000 +2.500 0.750 0.500 -1.000 -0.000 -0.000 + -0.000 +0.000 +0.000 0.500 0.500 -1.000 -0.000 -0.000 + -0.000 -2.500 +0.000 0.500 0.250 -1.000 -0.000 -0.000 + -0.000 -2.500 +2.500 0.750 0.250 -1.000 -0.000 -0.000 + -0.000 +2.500 +5.000 1.000 0.750 -1.000 -0.000 -0.000 + -0.000 +2.500 +2.500 0.750 0.750 -1.000 -0.000 -0.000 + -0.000 +0.000 +2.500 0.750 0.500 -1.000 -0.000 -0.000 + -0.000 +0.000 +5.000 1.000 0.500 -1.000 -0.000 -0.000 + -0.000 +5.000 +5.000 1.000 1.000 -1.000 -0.000 -0.000 + -0.000 +5.000 +2.500 0.750 1.000 -1.000 -0.000 -0.000 + -0.000 +2.500 +2.500 0.750 0.750 -1.000 -0.000 -0.000 + -0.000 +2.500 +5.000 1.000 0.750 -1.000 -0.000 -0.000 + -0.000 +5.000 +2.500 0.750 1.000 -1.000 -0.000 -0.000 + -0.000 +5.000 -0.000 0.500 1.000 -1.000 -0.000 -0.000 + -0.000 +2.500 -0.000 0.500 0.750 -1.000 -0.000 -0.000 + -0.000 +2.500 +2.500 0.750 0.750 -1.000 -0.000 -0.000 + -0.000 -2.500 +0.000 0.500 0.250 -1.000 -0.000 -0.000 + +0.000 -2.500 -2.500 0.250 0.250 -1.000 -0.000 -0.000 + +0.000 -5.000 -2.500 0.250 0.000 -1.000 -0.000 -0.000 + -0.000 -5.000 +0.000 0.500 0.000 -1.000 -0.000 -0.000 + -0.000 +0.000 +0.000 0.500 0.500 -1.000 -0.000 -0.000 + +0.000 -0.000 -2.500 0.250 0.500 -1.000 -0.000 -0.000 + +0.000 -2.500 -2.500 0.250 0.250 -1.000 -0.000 -0.000 + -0.000 -2.500 +0.000 0.500 0.250 -1.000 -0.000 -0.000 + +0.000 -2.500 -2.500 0.250 0.250 -1.000 -0.000 -0.000 + +0.000 -2.500 -5.000 0.000 0.250 -1.000 -0.000 -0.000 + +0.000 -5.000 -5.000 0.000 0.000 -1.000 -0.000 -0.000 + +0.000 -5.000 -2.500 0.250 0.000 -1.000 -0.000 -0.000 + +0.000 -0.000 -2.500 0.250 0.500 -1.000 -0.000 -0.000 + +0.000 -0.000 -5.000 0.000 0.500 -1.000 -0.000 -0.000 + +0.000 -2.500 -5.000 0.000 0.250 -1.000 -0.000 -0.000 + +0.000 -2.500 -2.500 0.250 0.250 -1.000 -0.000 -0.000 + -0.000 +2.500 -0.000 0.500 0.750 -1.000 -0.000 -0.000 + +0.000 +2.500 -2.500 0.250 0.750 -1.000 -0.000 -0.000 + +0.000 -0.000 -2.500 0.250 0.500 -1.000 -0.000 -0.000 + -0.000 +0.000 +0.000 0.500 0.500 -1.000 -0.000 -0.000 + -0.000 +5.000 -0.000 0.500 1.000 -1.000 -0.000 -0.000 + -0.000 +5.000 -2.500 0.250 1.000 -1.000 -0.000 -0.000 + +0.000 +2.500 -2.500 0.250 0.750 -1.000 -0.000 -0.000 + -0.000 +2.500 -0.000 0.500 0.750 -1.000 -0.000 -0.000 + +0.000 +2.500 -2.500 0.250 0.750 -1.000 -0.000 -0.000 + +0.000 +2.500 -5.000 0.000 0.750 -1.000 -0.000 -0.000 + +0.000 -0.000 -5.000 0.000 0.500 -1.000 -0.000 -0.000 + +0.000 -0.000 -2.500 0.250 0.500 -1.000 -0.000 -0.000 + -0.000 +5.000 -2.500 0.250 1.000 -1.000 -0.000 -0.000 + +0.000 +5.000 -5.000 0.000 1.000 -1.000 -0.000 -0.000 + +0.000 +2.500 -5.000 0.000 0.750 -1.000 -0.000 -0.000 + +0.000 +2.500 -2.500 0.250 0.750 -1.000 -0.000 -0.000 + -0.000 +5.000 -2.500 0.250 1.000 -1.000 -0.000 -0.000 + +0.000 +5.000 -5.000 0.000 1.000 -1.000 -0.000 -0.000 + +0.000 +2.500 -5.000 0.000 0.750 -1.000 -0.000 -0.000 + +0.000 +2.500 -2.500 0.250 0.750 -1.000 -0.000 -0.000 +texture tiledwall + diff --git a/data/rooms/00-00-01 b/data/rooms/00-00-01 index 359e16a..b3b8c9c 100644 --- a/data/rooms/00-00-01 +++ b/data/rooms/00-00-01 @@ -8,5 +8,7 @@ walle 5.0 0.0 0.0 walln 0.0 5.0 0.0 walls 0.0 -5.0 0.0 +pipe-horiz -3.5 0.0 0.0 + comment Ventilation shaft diff --git a/data/rooms/00-00-02 b/data/rooms/00-00-02 index df1b45e..97a6b51 100644 --- a/data/rooms/00-00-02 +++ b/data/rooms/00-00-02 @@ -8,5 +8,7 @@ walle 5.0 0.0 0.0 walln 0.0 5.0 0.0 walls 0.0 -5.0 0.0 +pipe-horiz 3.5 0.0 0.0 + comment Ventilation shaft diff --git a/data/rooms/00-00-03 b/data/rooms/00-00-03 index 845b22d..af2f925 100644 --- a/data/rooms/00-00-03 +++ b/data/rooms/00-00-03 @@ -4,9 +4,11 @@ connected 00 00 02 connected 00 00 04 wallw -5.0 0.0 0.0 -walle 5.0 0.0 0.0 +walle-hole 5.0 0.0 0.0 walln 0.0 5.0 0.0 walls 0.0 -5.0 0.0 +pipe-horiz 0.5 0.0 0.0 + comment Ventilation shaft diff --git a/data/rooms/00-00-04 b/data/rooms/00-00-04 index d733b3b..431ff82 100644 --- a/data/rooms/00-00-04 +++ b/data/rooms/00-00-04 @@ -8,5 +8,8 @@ walle 5.0 0.0 0.0 walls 0.0 -5.0 0.0 ceiling 0.0 0.0 5.0 +pipe-horiz -3.5 0.0 4.2 +pipe-horiz 3.5 0.0 0.0 + comment Top of ventilation shaft diff --git a/data/rooms/00-01-04 b/data/rooms/00-01-04 index 39a06f7..54455f0 100644 --- a/data/rooms/00-01-04 +++ b/data/rooms/00-01-04 @@ -8,5 +8,8 @@ walle 5.0 0.0 0.0 ceiling 0.0 0.0 5.0 tiledfloor 0.0 0.0 -5.0 +pipe-horiz -3.5 0.0 4.2 +pipe-horiz 3.5 0.0 0.0 + comment Ventilation shaft diff --git a/data/rooms/00-02-04 b/data/rooms/00-02-04 index ccfa00a..34884bf 100644 --- a/data/rooms/00-02-04 +++ b/data/rooms/00-02-04 @@ -14,5 +14,8 @@ pipe -4.5 -1.0 -5.0 pipe -4.5 1.0 -5.0 pipe 4.5 3.0 -5.0 +pipe-horiz -3.5 0.0 4.2 +pipe-horiz 3.5 0.0 0.0 + comment Ventilation shaft diff --git a/src/game.c b/src/game.c index edf8a7d..ae9ff2c 100644 --- a/src/game.c +++ b/src/game.c @@ -26,7 +26,7 @@ #define MAX_OBJECTS 100 /* Maximum indicies of the rooms - remember they start at zero */ -#define MAX_ROOM_X 0 +#define MAX_ROOM_X 1 #define MAX_ROOM_Y 2 #define MAX_ROOM_Z 4 diff --git a/src/obj2model.c b/src/obj2model.c index 4bf6d48..d58786e 100644 --- a/src/obj2model.c +++ b/src/obj2model.c @@ -27,11 +27,13 @@ int main(int argc, char *argv[]) { FILE *out; float vtmp[3*MAX_VERTICES]; float vntmp[3*MAX_VERTICES]; + float textmp[2*MAX_VERTICES]; int v_used[MAX_VERTICES]; int vn_used[MAX_VERTICES]; - int n_vtmp, n_vntmp; + int tex_used[MAX_VERTICES]; + int n_vtmp, n_vntmp, n_textmp; int nprev; - int i, v_unused, vn_unused; + int i, v_unused, vn_unused, tex_unused; fh = fopen(argv[1], "r"); if ( fh == NULL ) { @@ -42,10 +44,12 @@ int main(int argc, char *argv[]) { for ( i=0; i= n_vtmp ) { fprintf(stderr, "Vertex index is too high (%i/%i)\n", vnum, n_vtmp); @@ -150,10 +163,11 @@ int main(int argc, char *argv[]) { } fprintf(out, "%+8.3f %+8.3f %+8.3f %8.3f %8.3f %+8.3f %+8.3f %+8.3f\n", vtmp[3*vnum+0], vtmp[3*vnum+1], vtmp[3*vnum+2], - 0.0, 0.0, + textmp[2*tnum+0], textmp[2*tnum+1], vntmp[3*nnum+0], vntmp[3*nnum+1], vntmp[3*nnum+2]); v_used[vnum] = 1; vn_used[nnum] = 1; + tex_used[tnum] = 1; free(sp[0]); free(sp[1]); free(sp[2]); @@ -185,6 +199,7 @@ int main(int argc, char *argv[]) { v_unused = 0; vn_unused = 0; + tex_unused = 0; for ( i=0; i