Příspěvky odeslané z IP adresy 84.245.95.–
Potreboval by som spravit importer map z Nitemare3D do Wolfensteina 3D(vo formate Floedit maps).
Vsetky veci upresnim ,pridam tabulky z excelu.
Kedze mapeditor nebol vhodny alebo dobry,rozhodol som sa pre konverziu do ineho formatu.
Nitemare3D ma vlastne 3 druhy map s koncovkami .1 .2 .3 kazda ma ale inu hlavicku o velikosti 514 bitov.
Mapy su velke 8192 bitov. Flooedit ma tiez hlavicku ale velku iba 9 bitov. Potom nasleduju jednotlive mapy.
zacina sa to zdi konci u objektoch. medzi kazdym objektom a zdi je formatovanie (00). Teda 8192x2=16384bitov
Nitemare3D pouziva iny system zdi,Object.
1.Episoda 11 Map
2.Episoda 10 Map
3.Episoda 10 Map
no uz som na to dosiel.
vytvoril som si teda makro ,nahral som teda niekolko klavesovych skratiek.
CTRL+G
cislo vyhladavanej adresy (NUM 0 teda)
NUM Enter
CTRL+C
CRTL+TAB
CRTL+V
NUM0
NUM0
CRTL+TAB
kedze to makro by bolo velmi dlhe a pracne spracovanie necham to tak. Premyslam nad tym ,ze zdi sa opakuju N+2,a objekty N+1.(Vsetky zdi maju parne cislo,objekty neparne cislo)
Chcel som spravit script ale neviem ako?
V obrazku su pisane konecne dlzky(kde to teda konci)
Hore na obrazku je napisana hlavicka v hexadecimalnom prevedeni , cislo 3100xxx je cislo mapy, pre kazdu mapu tam bude ine cislo . Tam to je napisane.
Trvalo mi zopar dni pokym som zistil kde maju konce zdi a objekty oboch hier.
ciastocne by som si to vedel spravit cez Hex editor Neo s pomocou Makra. sice je mozne ze by to dlho trvalo.
co tym myslis specifikaciu suborov?
Mam napisat vsetky pointery alebo zlozenie celeho tela suboru?
nechapem co chces odo mna
*najneskor az zatra sa k tomu vratim.
hlavicky ku kazdej mapy Wolfensteina nebude problem, problemom bude napisat 16 000 adries.
no dobre nebudem to natahovat .
potrebujem nejaky script do Hex editor neo alebo nejakeho programu ktory vie najst dane adresy a odkazat ich ako v Exceli ,potom tieto adresy dat expertovat ako binarny subor.
Moze to byt aj C++ , chcem len vyhladat zopar adries a zapisat ich v inom poradi , samozrejem do toho pridat aj nejaky syntax wolfa a to formatovanie nul.
format map nitemare3D
prva je hlavicka ,ma dlzku 514 bytov
vsetky mapy maju konstatnu dlzku 8192 bytov
hlavicka wolf mapy v hexa 4345 7631 2E32 3300 0201 0000 0040 0040 0010 576F 6C66 3120 4D61 7031 TUTO SOM DOPLNIL 3939 3939 39
inak by boli na miesto tych poslednych 39 len same 00.
zacinaju prve zdi napridlad 0C (je v ceprev 12- wood wall) potom je tam 00 to na pozici X0Y0
na adrese dec.34 (00 na dec.35)
na x1y0 zacina dalsi blok zdi, a to 01 grey wall . Ten sa nachadza na dec. adrese 36 (00 na dec.adrese 37)
zdi koncia na adrese Dec.8224 (hexa 2020) za nou 00 na 8225
x63y63
Objekty zacinaju x0y0 na dec.adrese 8226 (teraz je tam hexadec hodnota 2B - dec.43 gold key) potom 00 na dec.8227 stale v pozicii x0y0
x1y0 na decimalnej adrese 8228 zacina to iste 2B ,potom 00 na dec.8229
cele to konci v x63y63 na adrese dec.16 416 a 00 na 16 417 (cela mapa ma dlzku 16 417bytov)
bude treba rozdelit pointery na skupiny typu zdi ,objekty ,a formatovanie (00)
Nitemare 3D nepouziva ziadne 00 za zdi a objektami. Tam ich bude nutne zmazat,a spatnou konverziou do ceprev zas vlozit,lebo by nepoznalo formatovanie mapy.
z Map.1 - az MAp.3 bude treba odstranit tie hlavicky o dlzke 514 ,pripadne ich dat zalohovat do ineho suboru,alebo vytvorit novy.
zostane len subor o velkosti map.1 =90 112 bytov a map.2 map.3 = 81 920 bytov.
Kedze vsetky subory nemaju rovnaku dlzku bude treba stanovit rozsah 10 az 11 levelov (kazdy je o dlzke 8192bytov)
potom ich rozsekat na male casti o dlzke 8192bytov.
(toto bych vedel spravit aj v TotalCMD ale tych 514bytov mi robi problemy)
****
Vlozit tu hlavicku co som popisal v citacii , je jasne ze tam nebudu same 9999.
nebude tam Wolf1 Map1 ale Nitemare3D Map01 az po Map11
Skusal som to , program zoberie taky dlhy nazov.
alebo skrateny format N3D Map1 alebo Nite3D Map1 ....
******
Uvedomil som si ze mapy z Nitemare 3D budu orezane o tu hlavicku tak potom -514. nie 8707 ale 8192.
potom don staci dopisat tu hlavicku , poprehadzovat udaje tak aby boli ako v W3D.
dobre ,nebudem tu rozspisovat vsetky hodnoty je toho plno. Chcelo to trocha casu, na zistenie tych hodnot. v tom zipku je jeden excel subor tam v 3 zosite su vypisane vsetky decimalne a hexadecimalne hodnoty.
popisem vam strukturu Nitemare 3D mapy.
episoda 1 = 11 levelov = 90 262 bytov
episoda 2 a 3 = 10 levelov = 82 434 bytov
hlavicky kazdej episody maju ine data ale vzdy rovnaku dlzku po dec.adresu 513.
od dec.adresy 514 zacina mapa 01 (ALEBO 1:1) ,
****
MAP01
wall X0Y0 dec.adresa 514 (hexa 202)
Object X0Y0 dec.adresa 515 (hexa 203)
wall X1Y0 dec.adresa 516 (hexa 204)
Object X1Y0 dec.adresa 517 (hexa 205)
wall X2Y0 dec.adresa 518 (hexa 206)
Object X2Y0 dec.adresa 519 (hexa 207)
*....koniec prvej mapy na
wall X63 Y63 dec.adresa 8705 (hexa 2201)
object X63 Y63 dec.adresa 8706 (hexa 2202)
MAP02
object
*format z nitemare3d mam ulozeny v xls dokumente ale este potrebujem zisit format Wolf3D cez program ceprev 1.27
*** najprv ide zdi a potom za nou objekt. W-O-W-O.
cela mapa ma 64x64x2 (treba ratat zdi a objekty) = 8192 + 514 = 8 706
x63 y63 = 8705 pre zdi
x63 y63 = 8706 pre objekty
Konec X63Y63 bude na dec.adrese 8 706 (kedze vsetko sa zacina 0 a nie 1)
druha mapa Map02 zacina na dec.adrese 8706+1 = 8707
x0y0 dec.adresa
X63Y63
ZDI adresa dec. 8190
Objekty adresa dec. 8191
potom mozem upravovat mapy v Chaos edit 1.23(zrejme bude treba spravit vswap s def.grafikou,paletou, mapou objektov a zdi)...pripadne ich dat na konverziu do Doomu
http://www.alice-dsl.net/…prev1_27.zip
http://uloz.to/xnMhoou/map-zip
- -
Reklama
marek17
Návštěvník
0
NOVÝ 10. 11. 2012 #2
ESTE dodam :
pojde o program ktory bude mat dve moznosti konverzie a 3 moznost canel.
1.moznost rozpisem, mapa je velika 90 626 bytov alebo 82 434 bytov (teda su tu dve moznosti 11 Levelov a 10 Levelov)
ak ratam cely subor, hlavicku vynecham (pojde len o prepis dat). Prva mapa zacina na dec.adrese 514
Mapa 1
Walls(decimalne adresy):
514 516 518 az po 8706
Objects(decimalne adresy)
515 517 519 az po 8707
Mapa 2
Walls(decimalne adresy)
8708 8710 8712 az po 16900
Objects(demialne adresy)
8709 8711 8713 az po 16901
kazda ma velikost 8192
mapa WOlfa3D extraktovana cez Cep1.23 ma velikost 16 418bytov. Telo suboru:
hlavicka: ma velikost 33znakov , v hornom prispevku je napisana v Hexa, od adresy dec.18 bude ina. E1M1 alebo MAP1,pripadne bude moznost napisat vlasny nazov do dlzky 16 znakov.
telo: ZDI
na dec.adrese 33 zacina znak prvej zdi na x0y0 ,dalej pokracuju 00 tie su na dec.adrese 34. potom ide dalsia zdi na dec.adrese 35. nuly na 36 (00). 64x64x2=8192 znakov + 33 =zdi koncia na dec.adrese 8 225.
Objects
zacinaju na adrese dec.8226 ,na adrese dec.8227 zacinaju 00,dalsi objekt na dec.adrese 8228. nuly na 8229 koniec by mal byt na adrese dec.adrese 16 418 (nuly na 16419). v Totalcmd zobrazi len 16418,tak isto aj v hexeditore.
No poviem to inak. Treba poznat strukturu map jednej hry a druhej hry. Obe hry maju odlisnu strukturu map.Mapy potrebujem z Nitemare 3D do Wolfenstein 3D (tam bude zas uz osvecena konverzia cez Chaos edit pro). Dalej uz do Doom2(bez textur samozrejme)
Mozna niekto hrava (hraval nitemare3d) a chcel by nejaku tu editaciu map(kedze chaos edit pro nepozna mapy z N3D,len z W3D a Sod.)
bude to nejaku dobu trvat kym najdem vsetky headery(napr. map01 sur x0 y0)
Dobry den, chcem spravit program na konverziu dat. Nemusi to byt C++. Potrebujem pohladat niekolko hex adries a zapisat ich v inom poradi. Teda ako ked v exceli vytvori odkaz z inej bunky na inu. Potrebujem sa pohrat s tymy datami.
A potom pred ne este nejake data dopisat. Uz som to raz riesil ale ,sam neviem ake mam pouzit prikazy a ako zostavit program.
Free4Dos síce podporuje NTFS disky, ale na niektoré programy alebo hry ti nepomôže.
Totižto aj v ňom sa mi akosi nedarí pristupovať k pamäti, starým spôsobom 16bit.
Najlepšie starý počítač na ktorom sa to ešte dá.
ESTE dodam :
pojde o program ktory bude mat dve moznosti konverzie a 3 moznost canel.
1.moznost rozpisem, mapa je velika 90 626 bytov alebo 82 434 bytov (teda su tu dve moznosti 11 Levelov a 10 Levelov)
ak ratam cely subor, hlavicku vynecham (pojde len o prepis dat). Prva mapa zacina na dec.adrese 514
Mapa 1
Walls(decimalne adresy):
514 516 518 az po 8706
Objects(decimalne adresy)
515 517 519 az po 8707
Mapa 2
Walls(decimalne adresy)
8708 8710 8712 az po 16900
Objects(demialne adresy)
8709 8711 8713 az po 16901
kazda ma velikost 8192
mapa WOlfa3D extraktovana cez Cep1.23 ma velikost 16 418bytov. Telo suboru:
hlavicka: ma velikost 33znakov , v hornom prispevku je napisana v Hexa, od adresy dec.18 bude ina. E1M1 alebo MAP1,pripadne bude moznost napisat vlasny nazov do dlzky 16 znakov.
telo: ZDI
na dec.adrese 33 zacina znak prvej zdi na x0y0 ,dalej pokracuju 00 tie su na dec.adrese 34. potom ide dalsia zdi na dec.adrese 35. nuly na 36 (00). 64x64x2=8192 znakov + 33 =zdi koncia na dec.adrese 8 225.
Objects
zacinaju na adrese dec.8226 ,na adrese dec.8227 zacinaju 00,dalsi objekt na dec.adrese 8228. nuly na 8229 koniec by mal byt na adrese dec.adrese 16 418 (nuly na 16419). v Totalcmd zobrazi len 16418,tak isto aj v hexeditore.
takto nejako by to mohlo vyzerat:
4345 7631 2E32 3300 0201 0001 0040 0040 1057 6F6C 6631 204D 6170 3233 3435 3637 38 hlavicka
zdi
(adr.dec.514) 00 (adr.dec.516) 00 (adr.dec.518) 00 (adr.dec.520) 00 (adr.dec.522) 00 (adr.dec.524) az po (8706) 00
objekty od adr.dec 8707
(adr.dec.515) 00 (adr.dec.517) 00 (adr.dec.519) 00 (adr.dec.521) 00 (adr.dec.523) 00 (adr.dec.525) az po (16 418) 00
Do nitemare3D to bude ale bez tych "00"
zdi 514 ,516 ,518 ,520 > po 8706
objekty 515,517,519,521 > po 8707 (len 1.level), druhy level 8708+8192 zdi , 8709+8192 objects.
Potreboval by konvertovat mapu z nite3d do Wolf3d a naopak. Mapa z Wolfensteina ma okolo 16 418 bytikov.Teda:
Hlavicka kazdej mapy(uz po editacii s programom Chaos edit 1.23 alebo CeV1.23),napisem to v hexa .
4345 7631 2E32 3300 0201 0001 0040 0040 1057 6F6C 6631 204D 6170 3233 3435 3637 38
Malo by tam byt nieco ako Cev1.23 @ @ Wolf1 Map2345678. Tato hlavicka konci na Decimalnej adrese 33(mapa moze mat nazov dlhy 16 znakov)
Zaciatok adr.dec 0 a koniec hlavicky adr.dec 33.
Dalej uz idu dve vrstvy . Prva vrstva Zdi a druha vrstva objekty. Prva zacina na Decimalnej adrese 34 . Suradnica prveho bloku X0Y0 je na adr.dec. 34 (neviem co to je su tam len 00).,za adresou dec.34 idu 00 ,potom suradnica druheho bloku X1Y0 je na adr.dec 36 , potom tie 00 ,ti su na adr. dec.37...
Mapa ma velikost 64x64 =co je 4096 policok(stvorcekov). dalej za kazdym tymto stvorcekom idu tieto nuly 00.cize 8192 bytikov (objekty este neratam). Koniec X63Y63 pre zdi je na adr.dec 8224(a 00 na 8225). Objekty zacinaju na adr.dec 8226 (X0Y0) , 00 na dec.adrese 8227 . Koniec objektov na dec.adrese 16416 (a pre 00 na adr.dec 16417)
mapa by mala mat teda celkovo 16 417 bytov.(ak zaratam tu nulu na ziaciatku tak 16 418 bytov)
Zdi:
X0Y0 adr.dec 34 (tu moze byt tiez nejake cislo napriklad 01)
tie 00 adr.dec 35
X1Y0 adr.dec 36 (napr.26)
tie 00 adr.dec 37
(asi takto nejako to vyzera: 0100 2600)
.....
X63Y63 by mal koncit na dec.adrese 8224(napr.15)
a 00 na dec.adrese 8225 (00)
Objekty :
X0Y0 adr.dec 8226 (napr.2B)
00 adr.dec 8227
X1Y0 adr.dec 8228 (napr.2C)
......
00 adr.dec 8229
X63Y63 konci na adr.dec 16416 (napr.2B)
00 adr.dec 16417
Nitemare3D/Nite3D
nepouziva formatovanie ako Wolf3D,ono ma vsetko v kope.Nepouziva ziadne 00 za kazdou Suradnicou ,ci je to zdi alebo objekt. Nema ziadnu hlavicku ako Wolf3D (wolf pouziva hore uvedenu hlavicku , Wolf1 Map1).
Samotna mapa ma len 8192 bytov.(00 nepouziva).
ZDI
X0Y0 dec.adresa 0
X1Y0 dec.adresa 2
X2Y0 dec.adresa 4
....
Objekty
X0Y0 dec.adresa 1
X1Y0 dec.adresa 3
X2Y0 dec.adresa 5
koniec
X63Y63
ZDI adresa dec. 8190
Objekty adresa dec. 8191
potom mozem upravovat mapy v Chaos edit 1.23(zrejme bude treba spravit vswap s def.grafikou,paletou, mapou objektov a zdi)...pripadne ich dat na konverziu do Doomu
Ako nastavim logovanie v MS C++ 2008 ?
s ktorym prikazom mozem zvatsit zdrojaku aby rychlejsie nacitala hru? Debug mod.
Hra v debug mode sa velice dlho nacitava . Nemodifikovana hra sa nacita v priebehu niekolkych sekund. Hladam prikaz ,retazec v ktorom je nastaveny limit. Pripadne bude treba zmenit int na vetsi...
#include "version.h"
#if defined(USE_STARSKY) || defined(USE_RAIN) || defined(USE_SNOW)
#include "wl_def.h"
#if defined(USE_RAIN) || defined(USE_SNOW)
uint32_t rainpos = 0;
#endif
typedef struct {
int32_t x, y, z;
} point3d_t;
#define MAXPOINTS 400
point3d_t points[MAXPOINTS];
byte moon[100]={
0, 0, 27, 18, 15, 16, 19, 29, 0, 0,
0, 22, 16, 15, 15, 16, 16, 18, 24, 0,
27, 17, 15, 17, 16, 16, 17, 17, 18, 29,
18, 15, 15, 15, 16, 16, 17, 17, 18, 20,
16, 15, 15, 16, 16, 17, 17, 18, 19, 21,
16, 15, 17, 20, 18, 17, 18, 18, 20, 22,
19, 16, 18, 19, 17, 17, 18, 19, 22, 24,
28, 19, 17, 17, 17, 18, 19, 21, 25, 31,
0, 23, 18, 19, 18, 20, 22, 24, 28, 0,
0, 0, 28, 21, 20, 22, 28, 30, 0, 0 };
void Init3DPoints()
{
int hvheight = viewheight >> 1;
for(int i = 0; i < MAXPOINTS; i++)
{
point3d_t *pt = &points[i];
pt->x = 16384 - (rand() & 32767);
pt->z = 16384 - (rand() & 32767);
float len = sqrt((float)pt->x * pt->x + (float)pt->z * pt->z);
int j=50;
do
{
pt->y = 1024 + (rand() & 8191);
j--;
}
while(j > 0 && (float)pt->y * 256.F / len >= hvheight);
}
}
#endif
#ifdef USE_STARSKY
void DrawStarSky(byte *vbuf, uint32_t vbufPitch)
{
int hvheight = viewheight >> 1;
int hvwidth = viewwidth >> 1;
byte *ptr = vbuf;
int i;
for(i = 0; i < hvheight; i++, ptr += vbufPitch)
memset(ptr, 0, viewwidth);
for(i = 0; i < MAXPOINTS; i++)
{
point3d_t *pt = &points[i];
int32_t x = pt->x * viewcos + pt->z * viewsin;
int32_t y = pt->y << 16;
int32_t z = (pt->z * viewcos - pt->x * viewsin) >> 8;
if(z <= 0) continue;
int shade = z >> 18;
if(shade > 15) continue;
int32_t xx = x / z + hvwidth;
int32_t yy = hvheight - y / z;
if(xx >= 0 && xx < viewwidth && yy >= 0 && yy < hvheight)
vbuf[yy * vbufPitch + xx] = shade + 15;
}
int32_t x = 16384 * viewcos + 16384 * viewsin;
int32_t z = (16384 * viewcos - 16384 * viewsin) >> 8;
if(z <= 0) return;
int32_t xx = x / z + hvwidth;
int32_t yy = hvheight - ((hvheight - (hvheight >> 3)) << 22) / z;
if(xx > -10 && xx < viewwidth)
{
int stopx = 10, starty = 0, stopy = 10;
i = 0;
if(xx < 0) i = -xx;
if(xx > viewwidth - 11) stopx = viewwidth - xx;
if(yy < 0) startj = -yy;
if(yy > viewheight - 11) stopy = viewheight - yy;
for(; i < stopx; i++)
for(int j = starty; j < stopy; j++)
vbuf[(yy + j) * vbufPitch + xx + i] = moon[j * 10 + i];
}
}
#endif
#ifdef USE_RAIN
void DrawRain(byte *vbuf, uint32_t vbufPitch)
{
#if defined(USE_FLOORCEILINGTEX) && defined(FIXRAINSNOWLEAKS)
fixed dist; // distance to row projection
fixed tex_step; // global step per one screen pixel
fixed gu, gv, floorx, floory; // global texture coordinates
#endif
fixed px = (player->y + FixedMul(0x7900, viewsin)) >> 6;
fixed pz = (player->x - FixedMul(0x7900, viewcos)) >> 6;
int32_t ax, az, x, y, z, xx, yy, height, actheight;
int shade;
int hvheight = viewheight >> 1;
int hvwidth = viewwidth >> 1;
rainpos -= tics * 900;
for(int i = 0; i < MAXPOINTS; i++)
{
point3d_t *pt = &points[i];
ax = pt->x + px;
ax = 0x1fff - (ax & 0x3fff);
az = pt->z + pz;
az = 0x1fff - (az & 0x3fff);
x = ax * viewcos + az * viewsin;
y = -(heightnumerator << 7) + ((((pt->y << 6) + rainpos) & 0x0ffff) << 11);
z = (az * viewcos - ax * viewsin) >> 8;
if(z <= 0) continue;
shade = z >> 17;
if(shade > 13) continue;
xx = x / z + hvwidth;
if(xx < 0 || xx >= viewwidth) continue;
actheight = y / z;
yy = hvheight - actheight;
height = (heightnumerator << 10) / z;
if(actheight < 0) actheight = -actheight;
if(actheight < (wallheight[xx] >> 3) && height < wallheight[xx]) continue;
if(xx >= 0 && xx < viewwidth && yy > 0 && yy < viewheight)
{
#if defined(USE_FLOORCEILINGTEX) && defined(FIXRAINSNOWLEAKS)
// Find the rain's tile coordinate
// NOTE: This sometimes goes over the map edges.
dist = ((heightnumerator / ((height >> 3) + 1)) << 5);
gu = viewx + FixedMul(dist, viewcos);
gv = -viewy + FixedMul(dist, viewsin);
floorx = ( gu >> TILESHIFT ) & 63;
floory = (-(gv >> TILESHIFT) - 1) & 63;
// Is there a ceiling tile?
if(MAPSPOT(floorx, floory, 2) >> 8) continue;
#endif
vbuf[yy * vbufPitch + xx] = shade+15;
vbuf[(yy - 1) * vbufPitch + xx] = shade+16;
if(yy > 2)
vbuf[(yy - 2) * vbufPitch + xx] = shade+17;
}
}
}
#endif
#ifdef USE_SNOW
void DrawSnow(byte *vbuf, uint32_t vbufPitch)
{
#if defined(USE_FLOORCEILINGTEX) && defined(FIXRAINSNOWLEAKS)
fixed dist; // distance to row projection
fixed tex_step; // global step per one screen pixel
fixed gu, gv, floorx, floory; // global texture coordinates
#endif
fixed px = (player->y + FixedMul(0x7900, viewsin)) >> 6;
fixed pz = (player->x - FixedMul(0x7900, viewcos)) >> 6;
int32_t ax, az, x, y, z, xx, yy, height, actheight;
int shade;
int hvheight = viewheight >> 1;
int hvwidth = viewwidth >> 1;
rainpos -= tics * 256;
for(int i = 0; i < MAXPOINTS; i++)
{
point3d_t *pt = &points[i];
ax = pt->x + px;
ax = 0x1fff - (ax & 0x3fff);
az = pt->z + pz;
az = 0x1fff - (az & 0x3fff);
x = ax * viewcos + az * viewsin;
y = -(heightnumerator << 7) + ((((pt->y << 6) + rainpos) & 0x0ffff) << 11);
z = (az * viewcos - ax * viewsin) >> 8;
if(z <= 0) continue;
shade = z >> 17;
if(shade > 13) continue;
xx = x / z + hvwidth;
if(xx < 0 || xx >= viewwidth) continue;
actheight = y / z;
yy = hvheight - actheight;
height = (heightnumerator << 10) / z;
if(actheight < 0) actheight = -actheight;
if(actheight < (wallheight[xx] >> 3) && height < wallheight[xx]) continue;
if(xx > 0 && xx < viewwidth && yy > 0 && yy < viewheight)
{
#if defined(USE_FLOORCEILINGTEX) && defined(FIXRAINSNOWLEAKS)
// Find the snow's tile coordinate
// NOTE: This sometimes goes over the map edges.
dist = ((heightnumerator / ((height >> 3) + 1)) << 5);
gu = viewx + FixedMul(dist, viewcos);
gv = -viewy + FixedMul(dist, viewsin);
floorx = ( gu >> TILESHIFT ) & 63;
floory = (-(gv >> TILESHIFT) - 1) & 63;
// Is there a ceiling tile?
if(MAPSPOT(floorx, floory, 2) >> 8) continue;
#endif
if(shade < 10)
{
vbuf[yy * vbufPitch + xx] = shade+17;
vbuf[yy * vbufPitch + xx - 1] = shade+16;
vbuf[(yy - 1) * vbufPitch + xx] = shade+16;
vbuf[(yy - 1) * vbufPitch + xx - 1] = shade+15;
}
else
vbuf[yy * vbufPitch + xx] = shade+15;
}
}
}
#endif
napriklad z Wolf4SDL 1.7 subor WL_atmos.c