diff options
Diffstat (limited to 'share/hackvr/examples/dungen')
-rw-r--r-- | share/hackvr/examples/dungen/Makefile | 8 | ||||
-rw-r--r-- | share/hackvr/examples/dungen/dun2ascii.c | 46 | ||||
-rw-r--r-- | share/hackvr/examples/dungen/dun2hackvr.c | 59 | ||||
-rwxr-xr-x | share/hackvr/examples/dungen/dunexplore.sh | 42 | ||||
-rw-r--r-- | share/hackvr/examples/dungen/dungen.c | 61 |
5 files changed, 0 insertions, 216 deletions
diff --git a/share/hackvr/examples/dungen/Makefile b/share/hackvr/examples/dungen/Makefile deleted file mode 100644 index cd05f4b..0000000 --- a/share/hackvr/examples/dungen/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -.PHONY: all clean - -all: dungen dun2ascii dun2hackvr - -clean: - rm -f dungen - rm -f dun2ascii - rm -f dun2hackvr diff --git a/share/hackvr/examples/dungen/dun2ascii.c b/share/hackvr/examples/dungen/dun2ascii.c deleted file mode 100644 index d7a9996..0000000 --- a/share/hackvr/examples/dungen/dun2ascii.c +++ /dev/null @@ -1,46 +0,0 @@ -#include <stdio.h> -#include <string.h> -#include <unistd.h> - -//nsew -char *a[16]; - -char field[256]; - -void print_field() { - int i; - fprintf(stderr,"\x1b[H"); - for(i=0;i<(16*strlen(a[field[0]]))+1;i++) fprintf(stderr,"#"); - for(i=0;i<256;i++) { - if(i%16 == 0) fprintf(stderr,"#\n#"); - fprintf(stderr,"%s",a[field[i]]); - } - fprintf(stderr,"#\n"); - for(i=0;i<(16*strlen(a[field[0]]))+2;i++) fprintf(stderr,"#"); - fprintf(stderr,"\n"); -} - -int main(int argc,char *argv[]) { - int i; - fprintf(stderr,"\x1b[H\x1b[2J"); - a[0x0]=" "; - a[0x1]="- "; - a[0x2]=" -"; - a[0x3]="---"; - a[0x4]=" . "; - a[0x5]="-. "; - a[0x6]=" .-"; - a[0x7]="-.-"; - a[0x8]=" ' "; - a[0x9]="-' "; - a[0xa]=" '-"; - a[0xb]="-'-"; - a[0xc]=" | "; - a[0xd]="-| "; - a[0xe]=" |-"; - a[0xf]="-|-"; - while(read(0,field,sizeof(field)) > 0) { - print_field(); - sleep(1); - } -} diff --git a/share/hackvr/examples/dungen/dun2hackvr.c b/share/hackvr/examples/dungen/dun2hackvr.c deleted file mode 100644 index b67af14..0000000 --- a/share/hackvr/examples/dungen/dun2hackvr.c +++ /dev/null @@ -1,59 +0,0 @@ -#include <stdio.h> -#include <string.h> -#include <unistd.h> - -//nsew -char field[256]; - -#define NORTH_EXIT 8 -#define SOUTH_EXIT 4 -#define EAST_EXIT 2 -#define WEST_EXIT 1 - -int deg[]={0,180,270,90}; -int doorx[]={}; -int doory[]={}; - -void print_field() { - int i,d; - int x,y; - for(i=0;i<256;i++) { - //we need to draw the room here. - //each room will be... 16x16? sure.... - //we can use bitmasks to find which sides of the room need to be whole walls - //and which will contain passages to the next rooms - //whole walls are a single rectangle - //we need to loop over each wall and check if it has a passage through it - if(field[i]) { - for(d=0;d<4;d++) {//loop over the 4 possible directions/walls - x=(i%16) * 16 - (7 * 16); - y=(i/16) * -16 + 16; - if((field[i] & (1<<(3-d))) > 0) {//if this has an exit in this bit... - printf("wall_%d_%d addshape 2 4 -7 0 7 -7 8 7 -2 8 7 -2 0 7\n",i,d);//we need 4 parts for the doorway - printf("wall_%d_%d addshape 2 4 2 0 7 2 8 7 7 8 7 7 0 7\n",i,d); - if(d % 2) {//only do the south and west doorjams. every door has an opposite door that matches it anyway - printf("wall_%d_%d addshape 2 4 -2 0 7 -2 8 7 -2 8 9 -2 0 9\n",i,d); - printf("wall_%d_%d addshape 2 4 2 0 9 2 8 9 2 8 7 2 0 7\n",i,d); - printf("door_close_%d_%d addshape 3 4 0 0 0 0 8 0 4 8 0 4 0 0\n",i,d);//door needs to be built to where its hinge is at 0,y,0, then moved into place so opening will work. - printf("door_close_%d_%d rotate 0 %d 0\n",i,d,deg[d]); - if(d == 1) printf("door_close_%d_%d move %d 0 %d\n",i,d,x+2,y-8); - if(d == 3) printf("door_close_%d_%d move %d 0 %d\n",i,d,x-8,y-2); - } - } else {//no door in this wall - printf("wall_%d_%d addshape 2 4 -7 0 7 -7 8 7 7 8 7 7 0 7\n",i,d);//solid wall - } - printf("wall_%d_%d rotate 0 %d 0\n",i,d,deg[d]);//rotate this wall into position - printf("wall_%d_%d move %d 0 %d\n",i,d,x,y);//and put it in the right spot ofc - //the door needs to move either -2, +8 - } - } - } -} - -int main(int argc,char *argv[]) { - if(read(0,field,sizeof(field)) > 0) { - print_field(); - return 0; - } - return 1; -} diff --git a/share/hackvr/examples/dungen/dunexplore.sh b/share/hackvr/examples/dungen/dunexplore.sh deleted file mode 100755 index 6fbd5c3..0000000 --- a/share/hackvr/examples/dungen/dunexplore.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env bash -### run me with hackvr_coproc -#the $USER triangle we add first is to give us some sort of avatar to see where the camera is. -#seed=1337 -red=1 -green=2 -blue=4 -echo $USER addshape 6 3 -1 0 -1 0 0 2 1 0 -1 ; echo $USER move 0 2 0 -echo world-x addshape $red 2 0 0 0 1 0 0 -echo world-y addshape $green 2 0 0 0 0 1 0 -echo world-z addshape $blue 2 0 0 0 0 0 1 -./dungen $seed | ./dun2hackvr -while read group action target;do - if [ "$action" = "action" ];then - if printf "%s\n" "${target}" | grep ^door_;then - printf "# clicked a door! %s\n" "${target}" >&2 - if printf "%s\n" "${target}" | grep ^door_open;then - tmp=$(printf "%s\n" "${target}" | sed 's/_open/_CLOSING/') - printf "%s renamegroup %s %s\n" ${target} ${target} ${tmp} - ( - for i in $(seq 1 5 90);do - printf "%s rotate 0 +5 0\n" ${tmp} - sleep .1 - done - tmp2=$(printf "%s\n" "${target}" | sed 's/_open/_close/') - printf "%s renamegroup %s %s\n" ${tmp} ${tmp} ${tmp2} - ) & - elif printf "%s\n" "${target}" | grep ^door_close;then - tmp=$(printf "%s\n" "${target}" | sed 's/_close/_OPENING/') - printf "%s renamegroup %s %s\n" ${target} ${target} ${tmp} - ( - for i in $(seq 1 5 90);do - printf "%s rotate 0 +-5 0\n" ${tmp} - sleep .1 - done - tmp2=$(printf "%s\n" "${target}" | sed 's/_close/_open/') - printf "%s renamegroup %s %s\n" ${tmp} ${tmp} ${tmp2} - ) & - fi - fi - fi -done diff --git a/share/hackvr/examples/dungen/dungen.c b/share/hackvr/examples/dungen/dungen.c deleted file mode 100644 index 738b395..0000000 --- a/share/hackvr/examples/dungen/dungen.c +++ /dev/null @@ -1,61 +0,0 @@ -#include <stdio.h> -#include <string.h> -#include <unistd.h> -#include <stdlib.h> -#include <time.h> - -#define ITERATIONS 16 - -char field[256]; -char nfield[256]; - -void prune() {//remove paths into wall - int i; - memcpy(nfield,field,256);//make a copy just for comparison - for(i=0;i<256;i++) { - if(i%16 == 0) field[i] &= ~0x1;//remove all left exits at left of map - else if((field[i]&0x1) && !(nfield[i-1]&0x2)) field[i] &= ~0x1; - if(i%16 == 15) field[i] &= ~0x2;//remove all right exits at right of map. - else if((field[i]&0x2) && !(nfield[i+1]&0x1)) field[i] &= ~0x2; - if(i > 240) field[i] &= ~0x4; - else if((field[i]&0x4) && !(nfield[i+16]&0x8)) field[i] &= ~0x4; - if(i < 16) field[i] &= ~0x8; - else if((field[i]&0x8) && !(nfield[i-16]&0x4)) field[i] &= ~0x8; - } -} - -void grow() { - int i=0; - memcpy(nfield,field,256); - for(i=0;i<256;i++) { - if(random() % 2 == 0) { - if((field[i]&0x1) && !nfield[i-1] && i%16 != 0) nfield[i-1]=random()%16 | 0x2; - if((field[i]&0x2) && !nfield[i+1] && i%16 != 15) nfield[i+1]=random()%16 | 0x1; - if((field[i]&0x4) && !nfield[i+16] && i<240) nfield[i+16]=random()%16 | 0x8; - if((field[i]&0x8) && !nfield[i-16] && i>16) nfield[i-16]=random()%16 | 0x4; - } - } - memcpy(field,nfield,256); -} - -void dump() { - int i; - write(1,field,sizeof(field)); -} - -int main(int argc,char *argv[]) { - int i; - int seed=time(0) * getpid(); - if(argc > 1) { - seed=atoi(argv[1]); - } - srandom(seed); - field[7+16] = 0x4;//center top - for(i=0;i<ITERATIONS;i++) { - if(argc > 2) dump(); - grow(); - } - prune(); - dump(); -// fprintf(stderr,"seed: %d\n",seed); -} |