summaryrefslogtreecommitdiff
path: root/share/hackvr/examples/dungen
diff options
context:
space:
mode:
Diffstat (limited to 'share/hackvr/examples/dungen')
-rw-r--r--share/hackvr/examples/dungen/Makefile8
-rw-r--r--share/hackvr/examples/dungen/dun2ascii.c46
-rw-r--r--share/hackvr/examples/dungen/dun2hackvr.c59
-rwxr-xr-xshare/hackvr/examples/dungen/dunexplore.sh42
-rw-r--r--share/hackvr/examples/dungen/dungen.c61
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);
-}