fix: render *

fix:
- fix texture for each direction (north texture is in north etc)
- fix mirror textures (the left of each texture is at its left)
- fix dimensions (walls are 1x1 for any window dimensions or FOV)
- optimize render()

dev:
- add testmaps/good_directions_test.cub
- add textures/test/*.xpm
This commit is contained in:
mcolonna 2024-11-12 13:07:09 +01:00
parent 184c8a60af
commit 6007f27510
14 changed files with 488 additions and 164 deletions

89
textures/test/east.xpm Normal file
View file

@ -0,0 +1,89 @@
/* XPM */
static char *east[] = {
/* columns rows colors chars-per-pixel */
"79 80 3 1 ",
" c #FFB600",
". c #FFD000",
"X c white",
/* pixels */
"......................................... ",
"......................................... ",
"......................................... ",
"........................................ ",
"........................................ ",
"...............................XXXXXXXXXXXXXXXXXXXXX ",
"..........................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
"....................XXXXXXXXXXXXX....... XXXXXXXXXXXXXXX ",
"...............XXXXXXXXXXXX............. XXXXXXXXXXXXXXXXX ",
"...........XXXXXXXXXXX.................. XXXXXXXXXX ",
".......XXXXXXXXXX....................... XXX ",
".......XXXXXX........................... XX ",
".......XX............................... XX ",
".......XX............................... XX ",
"......XXX............................... XXX ",
"......XX................................ XXX ",
"......XX................................ XX ",
"......XX................................ XX ",
"......XX................................ XX ",
"......XX................................ XX ",
"......XX................................ XX ",
"......XX................................ XXX ",
"......XX............................... XX ",
"......XX............................... XX ",
".....XXX............................... XX ",
".....XXX....................XXXX....... XXXXXXXXX XXXXX XX ",
".....XX.......XXXXXXXXXXX..XXXXXX......XXXXXXXXXXX XXXXXXXX XX ",
".....XX......XXXXXXXXXXXX.XXXXXXXX....XXXXX XXXXXXXX XX ",
".....XX......XXX..........XXX..XXXX...XXX XXXXXXXX XX ",
".....XX......XX...........XX.....XXX..XX XXXXXXXXXX XX ",
".....XX......XX..........XXX.....XXX..XXX XXXXX XX XX ",
".....XX......XX..........XX.......XX..XXX XX XX ",
".....XX......XX..........XX.......XXX..XX XX XX ",
".....XX......XX..........XX.......XXX..XXX XX XX ",
".....XX......XX.........XXX........XX..XXXX XX XX ",
".....XX......XXXXXXXX...XXX........XX.. XXXX XX XX ",
".....XX......XXXXXXXX...XX.........XX.. XXXX XX XX ",
"....XXX......XX.........XX.........XX.. XXX XX XX ",
"....XXX......XX........XXXXXXXXXXXXXX.. XXX XX XX ",
"....XX.......XX........XXXXXXXXXXXXXX.. XXXX XX XX ",
"....XX.......XX........XX..........XX.. XXX XXX XX ",
"....XX.......XX........XX..........XX.. XXX XX XX ",
"....XX.......XX........XX..........XX.. XXXX XX XX ",
"....XX.......XX........XX..........XX.. XXX XX XX ",
"....XX.......XX........XX..........XX.. XX XX XX ",
"....XX.......XX........XX..........XX. XX XX XX ",
"....XX.......XX........XX..........XX. XX XXX XX ",
"....XX.......XX........XX..........XX. XX XXX XX ",
"....XX.......XX........XX..........XX. XXX XX XXX ",
"....XX.......XX........XX..........XX. XXXX XX XXX ",
"....XX.......XX........XX..........XX. XXXX XX XX ",
"....XX......XXXXXXXX...XX..........XX. XXXXXXXX XX XX ",
"....XX......XXXXXXXX...XX..........XX. XXXXXXX XX ",
"....XX................................ XX ",
"....XX................................ XX ",
"....XX............................... XX ",
"....XX............................... XX ",
"....XX............................... XX ",
"....XX............................... XX ",
"....XX............................... XX ",
"....XX............................... XX ",
"....XX............................... XX ",
"....XX............................... XXX ",
"....XX............................... XX ",
"....XX............................... XX ",
"....XX............................... XX ",
"....XX............................... XXX ",
".....XXX............................. XXXX ",
".....XXXXXXX......................... XXXXX ",
"......XXXXXXXXXXXXXXXXX.............. XXXXXXXXXXXXXXXX ",
"..........XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
".....................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
".................................... ",
".................................... ",
".................................... ",
".................................... ",
".................................... ",
".................................... ",
".................................... ",
".................................... "
};

99
textures/test/north.xpm Normal file
View file

@ -0,0 +1,99 @@
/* XPM */
static char *north[] = {
/* columns rows colors chars-per-pixel */
"127 90 3 1 ",
" c #003BFF",
". c #006AFF",
"X c white",
/* pixels */
"............................................................... ",
"............................................................... ",
"............................................................... ",
"............................................................... ",
"............................................................... XXXXXXXXXXXXX ",
"....XX.....................................................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
"....XXX........XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
"....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.. XXXXXXXXXXXXXX ",
"....XXXXXXXXXXXXX............................................. XXXXXXXXXXXX ",
"....XX........................................................ XXXXXXXX ",
"....XX........................................................ XX ",
"....XX........................................................ XX ",
"....XX........................................................ XX ",
"....XX........................................................ XXX ",
"....XX........................................................ XX ",
"....XX........................................................ XX ",
"....XX........................................................ XX ",
"....XX........................................................ XX ",
"....XX........................................................ XX ",
"....XXX....................................................... XXX ",
"....XXX....................................................... XXX ",
".....XX...................................................... XX ",
".....XX...................................................... XX ",
".....XX...................................................... XX ",
".....XX...................................................... XX ",
".....XX...................................................... XXX ",
".....XX...................................................... XXX ",
".....XX...................................................... XX ",
".....XX.....................................XXXX............. XX ",
".....XX...........................XX.......XXXXXX.......XXXXXX XX ",
".....XX...................XX......XX......XXXXXXX...XXXXXXXXXXXX XXXXXX XXX XX XXX ",
".....XX...................XXX.....XX.....XXXXX.XXX..XXXXXX.. XXXX XXXXXXXXXXXXXX XX XX XXX ",
".....XX...................XXXX....XXX...XXXXXX..XX....XXX... XXX XXXXXXXXXXXX XX XX XX ",
".....XX...................XXXX....XXX...XXX.....XX.....XX... XX XX XX XX XX ",
".....XX...................XXXXX....XX...XX......XX.....XX... XX XX XX XX XX ",
".....XX...................XX.XXX...XX..XXX......XXX...XXX... XX XX XX XX XX ",
".....XX...................XX.XXX...XX..XXX.......XX...XXX... XXX XX XXXXXXXX XX XX ",
".....XX...................XX..XXX..XX..XX........XX...XX.XXXXXXX XX XXXXXXXXXXXX XX ",
".....XX...................XX..XXX..XX..XX........XX...XX.XXXXXXX XXX XX XXXXXX XX ",
".....XX...................XX...XXX.XX..XX.......XXX...XX...XXXX XXX XX XXX XX ",
".....XX...................XX...XXX.XX..XXX......XXX...XX....XXXX XX XX XXX XX ",
".....XX...................XXX...XXXXX...XX.....XXX....XX... XXXX XXX XX XX XXX ",
".....XX...................XXX...XXXXX...XXX...XXXX....XX... XXX XXX XX XX XXX ",
".....XX....................XX....XXXX...XXXXXXXXX.....XX... XX XX XX XX ",
".....XX....................XX....XXXX....XXXXXXX......XX... XX XX ",
".....XX.................................................... XX ",
".....XX.................................................... XX ",
".....XX.................................................... XX ",
".....XX.................................................... XX ",
".....XX.................................................... XX ",
".....XX................................................... XX ",
".....XX................................................... XX ",
".....XXX.................................................. XX ",
".....XXX.................................................. XX ",
"......XX.................................................. XX ",
"......XX.................................................. XX ",
"......XX.................................................. XX ",
"......XX.................................................. XX ",
"......XXXX............................................... XX ",
"......XXXX............................................... XX ",
"......XXXX............................................... XXX ",
"......XXXX............................................... XXX ",
"......XXXX............................................... XX ",
".......XXX............................................... XX ",
".......XX................................................ XX ",
".......XX................................................ XX ",
".......XX................................................ XX ",
".......XX............................................... XX ",
".......XXX.............................................. XX ",
".......XXX.............................................. XX ",
"........XX.............................................. XX ",
"........XX.............................................. XX ",
"........XX.............................................. XX ",
"........XX.............................................. XX ",
"........XXXX............................................ XX ",
"........XXXXXXXX........................................ XX ",
"..........XXXXXXXXX..................................... XX ",
"...............XXXXXX................................... XX ",
".................XXXXXXX................................ XXXXXXX ",
"...................XXXXXXXXX............................ XXXXXXXXXXXXX ",
"......................XXXXXXXXXXX....................... XXXXXXXXXXXXXXX ",
"..........................XXXXXXXXXXXXXX................ XXXXXXXXXXXXXXXXXXX ",
"...............................XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ",
"......................................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
"........................................................XXXXXXXXXXXXXXXXXXXXXX ",
"........................................................ ",
"........................................................ ",
"........................................................ ",
"........................................................ ",
"........................................................ "
};

88
textures/test/south.xpm Normal file
View file

@ -0,0 +1,88 @@
/* XPM */
static char *south[] = {
/* columns rows colors chars-per-pixel */
"121 79 3 1 ",
" c #DD0E00",
". c #FF3B00",
"X c white",
/* pixels */
"............................................................... ",
"............................................................... ",
"............................................................... ",
"............................................................... ",
"............................................................... ",
".................................XXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ",
"..........XXXX.......XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
"..........XXXXXXXXXXXXXXXXXXXXXXXXX.........................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
"..........XXXXXXXXXXXX......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
"..........XXX.................................................. XXXXXXXXXXXXXXXXXXXX ",
"..........XXX.................................................. XXXXXXXXXXX ",
"...........XX.................................................. XXX ",
"...........XX.................................................. XX ",
"..........XXX.................................................. XX ",
"..........XXX.................................................. XX ",
"..........XX................................................... XX ",
"..........XX.................................................. XX ",
"..........XX.................................................. XX ",
"..........XX.................................................. XX ",
"..........XX.................................................. XX ",
"..........XX.................................................. XX ",
"..........XX.................................................. XX ",
"..........XX.................................................. XX ",
"..........XX.................................................. XX ",
"..........XX.................................................. XX ",
"..........XX.................................................. XX ",
"..........XX..................XXXX............................ XX ",
".........XXX................XXXXXXX....................XX..... XX XX ",
".........XXX..............XXXXXX.XX......XX..XX........XX..... XX XX XX XX ",
".........XX...............XXXX..........XXX..XXXX......XX..... XX XXXXXXXX XX XX XX ",
".........XX..............XXX...........XXXX..XXXXX.....XX..... XX XXXXXXXXXXXXXX XX XX XX ",
".........XX..............XXX...........XXX.....XXXX....XX..... XXX XXXXXXXXX XX XX XX ",
".........XX..............XX...........XXX.......XXXX...XX..... XXX XXXXX XX XX XX ",
".........XX..............XX...........XXX.........XXX.XXX..... XX XXXX XXX XX XX ",
".........XX..............XXX..........XX...........XX.XX...... XX XXX XXX XX XX ",
".........XX..............XXXX........XXX...........XXXXX...... XX XXX XX XX XX ",
".........XX...............XXXXX......XX.............XXXX...... XX XX XX XXXX XX ",
".........XX................XXXXX.....XX.............XXXX...... XX XXX XXXXXXXXXXXXXX XX ",
".........XX..................XXXXX...XX.............XXXX...... XX XXX XXXXXXXXXXXXX XX ",
".........XX....................XXXX..XX.............XXXX...... XX XX XX XX XX ",
".........XX.....................XXXX.XX.............XXXX...... XXX XX XX XX XX ",
".........XX......................XXX.XX.............XXXXX..... XXX XX XX XX XX ",
".........XX.......................XX.XX.............XXXXX..... XX XX XX XX XX ",
".........XX.......................XX.XX............XXX.XXX....XXX XX XXX XX XX ",
".........XX.......................XX.XXX...........XX..XXX...XXXX XX XXX XX XX ",
".........XX.....................XXXX.XXX..........XXX...XXXXXXXX XX XX XXX XX ",
".........XX....................XXXX...XXX.........XXX....XXXXXX XX XX XXX XX ",
".........XX..................XXXXX....XXXX.......XXX......XXXX XX XX ",
".........XX.............XXXXXXXXX......XXXX.....XXXX.......... XX XX ",
".........XX.............XXXXXXX.........XXXXXXXXXXX........... XX XX ",
".........XX..............................XXXXXXXX............. XX ",
".........XX................................................... XXX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XX ",
".........XX................................................... XXX ",
".........XX................................................... XXX ",
".......XXXX....................XXXXXXXX....................... XX ",
".......XXXX...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX ",
".......XXXXXXXXXXXXXXXXXXXXXXXXXX.....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX ",
"........XXXXXXXX............................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX ",
"............................................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
"............................................................. XXXXXXX ",
"............................................................. ",
"............................................................. ",
"............................................................. ",
"............................................................. ",
"............................................................. "
};

73
textures/test/west.xpm Normal file
View file

@ -0,0 +1,73 @@
/* XPM */
static char *west[] = {
/* columns rows colors chars-per-pixel */
"117 64 3 1 ",
" c #38E200",
". c #3CF300",
"X c white",
/* pixels */
"...................................................... ",
"....................................................... ",
"....................................................... ",
"....................................................... ",
"....................................................... ",
"....................................................... ",
"....................................................... ",
"....................................................... ",
"....................................................... ",
"....................................................... ",
"............XXXX....................................... ",
"............XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.......... XXXXXXXXXXXXXXXXXXXXXXXXX ",
"............XX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
"............XX.............................XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ",
"............XX......................................... XX ",
"............XX......................................... XX ",
"............XX......................................... XX ",
"............XX......................................... XXX ",
"............XX......................................... XX ",
"............XX......................................... XX ",
"............XX......................................... XX ",
"............XX......................................... XX ",
"............XX......................................... XX ",
"............XX......................................... XX ",
"............XX......................................... XX ",
"............XX......................................... XX ",
"............XX..............XXX.............XX.....XXXXXX XXXXXXX XXXXXX XX ",
"............XX..............XXX....XX.......XX...XXXXXXXX XXXXXXXXXX XXXXXXXXXXXX XX ",
"............XX..............XX.....XXX......XX..XXXX... XXXX XXXXXXX XXXXXX XX ",
"............XX..............XX.....XXX......XXX.XXX.... XX XXX XX XXX XX ",
"............XX..............XX.....XXX......XXX.XX..... XXXX XXX XX ",
"............XX..............XX.....XXX.......XX.XXX.... XXXXX XX XX ",
"............XX..............XX......XX......XXX..XXXX.. XXXXX XX XX ",
"............XX..............XX......XX......XXX..XXXXXXXXX XXXXX XXX XX ",
"............XX..............XX.....XXX......XX...XXXXXXXXX XXXX XX XX ",
"............XX..............XXX....XXXX....XXX..XXX.... XXX XXX XX ",
"............XX..............XXXX..XXXXXX..XXXX..XX..... XXX XXX XX ",
"............XX...............XXXXXXXXXXXXXXXX...XX..... XX XXX XX XX ",
"............XX................XXXXXX..XXXXXX....XXX...XXXXX XXXXXXXXXXX XX XX ",
"............XX..................XXX....XXXX.....XXXXXXXXXXX XXXXXXXXX XX XX ",
"............XX....................................XXXXXX XX ",
"............XX......................................... XX ",
"............XX......................................... XX ",
"............XX......................................... XX ",
"............XX.......................................... XX ",
"............XXX......................................... XX ",
"............XXX......................................... XX ",
".............XX......................................... XX ",
".............XX......................................... XX ",
".............XX......................................... XX ",
".............XX......................................... XX ",
".............XX......................................... XXX ",
".............XX..................................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
".............XXXXXX..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ",
".............XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..... ",
".................XXXXXX................................. ",
"........................................................ ",
"........................................................ ",
"........................................................ ",
"........................................................ ",
"........................................................ ",
"........................................................ ",
"........................................................ ",
"........................................................ "
};