Druhá část o hře, mnohem více obrázků aspol. je zde.
Jen takovej letmej pohled na nedodělané dílo.. Zbyly prakticky jen tyto obrázky, různě diskety shnily, rozpadly se... Hra vznikala v době disket, naštěstí již malých .
Hra byla v paskalu a měla přilinkované assemblerovské .obj knihovny - pro ovládání myši, grafické karty a zvukové karty. Nepřekonale ještě omezení adresace real režimu - 64 kB, takže nebylo možné načíst všechny obrázky do paměti a bylo nutno špekulovat jen s částí obrázků apod.
Hra byla programována v rozlišení SVGA (v assembleru jsme zmákli ovládání karty přímo, ne přes neuvěřitelně pomalé standartní knihovny crt, navíc jsme vymlátili více jak 256 barev).
Omlouvám se Chezůoj, protože více obrázků nebylo zachováno, jeho dílo vypadá méně početné v porovnání s mojím. Pravdou je, že tento geniální malíř, programátor a běžec se zanícenou achillovkou, byl velmi pracovitý a odevzdal dílo neméně početné, než já lenoch...
Ukázky obrázků ze hry zde :
Nakreslil J.V. Chezůů. Aula Lepařova Gymnázia.
Kreslil D.M. Nievetz. Fyzikář Bureš z Lepařova Gymnázia.
Kreslil DM, hostinec Na hrázi, Jičín.
Kreslil J.V. Knihovna Lepařova Gymnázia.
Kreslil J.V. Dokonale rozložená perspektiva očima Chezůůů. Mezipatro Lepařova Gymnázia.
Kreslil D.M. Piáno, nějaká mučící místnost .. hudebka.
Kreslil D.M. Přechod od SPŠ (průmka) v Jičíně k restauraci Na hrázi.
Kreslil D.M. Strojní průmka v Jičíně a přilehlý parčík, tvořený jedním stromem, takže takové spíše náměstíčko..
Zlomek zachovaného zdrojového textu ... knihovny game.pas = game.tpu a s3.pas = s3.tpu
Unit GameTpu3;
{$F+}
interface
uses gr,mouse,fontX,s3;
const C01=40;
Procedure NewGame;
{type arX=array[0..70,0..50]of byte;
function MenXXz(cis:byte;var cis2:byte;var mmx,mmy:integer;var new_Pcx:boolean;Cbarva:byte)
:boolean;
procedure GetAR(sx,sy,kolikX,kolikY:integer;var res:arX);
procedure PutPozadi(sx,sy,doX,doY:integer;inp:arX);
Procedure fillM(nazev:string;var vysX,vysY:byte;var kam:arx);
Procedure M2scr(wx,wy:word;dox,doY:byte;co:arx;nee:byte);
Procedure M2scrxX(wx,wy:word;dox,doY:byte;co:arx);
Procedure O2M(nazev:string);
procedure MoveSub(kdeX,kdeY:integer;maxX,maxY:byte;var kamX,kamY:integer;
predmet:arX;var pozadi:arX);
}
implementation
const kecy=420;
poz=0;
pis1=36;
pis2=29;
pis3=46;
type arX=array[0..70,0..50]of byte;
obsX=array[0..168,0..211]of boolean;
as=array[0..550,0..15]of byte;
var
arj:as;obs:obsX;
predmet,pozadiX:arX;
nazev:string[12];
{****************************************************************************}
Procedure O2M(nazev:string);
var value:byte;xp1,yp1,dx,dy:integer;fx:file;
begin assign(fx,nazev);reset(fx,1);blockread(fx,dx,2);blockread(fx,dy,2);
for yp1:=0to dy do for xp1:=0to dx do begin blockread(fx,value,1);if value<>00 then obs[xp1,yp1]:=true
else obs[xp1,yp1]:=false;end;close(fx);end;
{****************************************************************************}
Procedure M2scr(wx,wy:word;dox,doY:byte;co:arx;nee:byte);
var xp1,yp1:integer;
begin
for yp1:=wy to wy+doY do
for xp1:=wx to wx+doX do if nee<>co[xp1-wx,yp1-wy] then
putP(xp1,yp1,co[xp1-wx,yp1-wy]);
end;
{****************************************************************************}
Procedure M2scrXx(wx,wy:word;dox,doY:byte;co:arx);
var xp1,yp1:integer;begin
for yp1:=wy to wy+doY do
for xp1:=wx to wx+doX do putP(xp1,yp1,co[xp1-wx,yp1-wy]);
end;
{****************************************************************************}
procedure GetAR(sx,sy,kolikX,kolikY:integer;var res:arX);
var tx,ty:integer;begin
for ty:=sy to sy+kolikY do
for tx:=sx to sx+kolikX do res[tx-sx,ty-sy]:=getP(tx,ty);
end;
{****************************************************************************}
procedure PutPozadi(sx,sy,doX,doY:integer;inp:arX);
var tx,ty:integer;begin
for ty:=sy to sy+doY do
for tx:=sx to sx+doX do putP(tx,ty,inp[tx-sx,ty-sy]);
end;
{****************************************************************************}
Procedure fillM(nazev:string;var vysX,vysY:byte;var kam:arx);
var dd,dt:integer;value:byte;xp1,yp1:integer;fx:file;
begin assign(fx,nazev);reset(fx,1);
blockread(fx,dd,2);blockread(fx,dt,2);
vysX:=dd;vysY:=dt;
for yp1:=0 to vysY do
for xp1:=0 to vysX do begin
blockread(fx,value,1);
kam[xp1,yp1]:=value;
end;
close(fx);
end;
{****************************************************************************}
procedure MoveSub(kdeX,kdeY:integer;maxX,maxY:byte;var kamX,kamY:integer;
predmet:arX;var pozadi:arX);
var omx,omy,mx,my:integer;but:byte;
begin
omx:=kdeX;omy:=kdeY;mPos(kdeX+1,kdeY);
repeat
getmouse(but,mx,my);
if (mx<>omx)OR(MY<>omy)then begin
putPozadi(omx,omy,maxX,maxY,pozadi);
getar(mx,my,maxX,maxY,pozadi);
omx:=mx;omy:=my;
M2Scr(mx,my,maxX,maxY,predmet,15);
end;
until (but<>0);
{putPozadi(omx,omy,maxX,maxY,pozadi);}
kamX:=mx;kamY:=mY;
end;
{****************************************************************************}
(***************************************************************************)
procedure getA(xx,kama:integer;var vys:as);
var tx,ty:integer;begin
for ty:=0 to 15 do for tx:=xx-okraj to xx+kama+okraj do vys[tx,ty]:=getP(tx,kecY+ty);
end;
procedure putA(xx,kama:integer;vys:as);
var tx,ty:integer;begin
for ty:=0 to 15 do for tx:=xx-okraj to xx+kama+okraj do putP(tx,kecY+ty,vys[tx,ty]);
end;
{****************************************************************************}
(****************************************************************************)
function MenXXz (var cis:byte;var mmx,mmy:integer;
var new_Pcx:boolean;Cbarva:byte) :boolean;
{****************************************************************************}
var zobrazen,BYL,jl:boolean;
pr:predm;p:integer;pred:pkec;
napis:string[maxKecu];
bt:byte;
{****************************************************************************}
function obsluha:boolean;
var pozadi:array[0..168,0..221]of byte;xp1,yp1:integer;px,py:integer;
Procedure M2scrx(cx,cy:integer;b1,b2:byte);
var xp1,yp1:integer;begin for yp1:=cy to cy+211 do for xp1:=cx to cx+168 do
if obs[xp1-cx,yp1-cy]=true then putP(xp1,yp1,b1)else putP(xp1,yp1,b2)end;
begin{obs} obsluha:=false;
px:=10;py:=10;
{getpozadi:}
for yp1:=py to py+211 do
for xp1:=px to px+168 do pozadi[xp1-px,yp1-py]:=getP(xp1,yp1);
o2m('obsluha.mys');{putobr('obsluha.mys',px,py,1);}
m2scrx(px,py,79,11);
{if pressed on menu then continue:(13,13);(175,218)>operations else back to
the game}
men(mmx,mmy,mmx,mmy,C01);
if (mmx=-1)and(mmy=-1)=false then begin
{mapa: (45,24);(103,50)
options: (45,54);(132,80)
load: (45,84);(100,107)
save: (45,114);(100,137)
end: (45,144);(149,173)
help: (45,174);(96,202)}
if (mmx>=45)and(mmx<=144)and(mmy>=149)and(mmy<=173)then begin
rectangle(42,140,155,172,11);delay(300);rectangle(42,140,155,172,79);
menXXz:=true;obsluha:=true;flushkeyb;exit;end;
if(mmx>=45)and(mmx<=104)and(mmy>=24)and(mmy<=51)then begin
rectangle(42,22,110,55,11);delay(300);rectangle(42,22,110,55,11);
loadPcx640480('mapa.pcx',palette);
pause;
{loadPcx640480(nazev,palette)}jl:=true;new_Pcx:=true;exit;
end;
end{if mmx=-1};
for yp1:=py to py+211 do
for xp1:=px to px+168 do putP(xp1,yp1,pozadi[xp1-px,yp1-py]);
flushkeyb;
end{obsluha};
const maxX=10;maxY=10;rozX=maxX div 2;rozY=maxY div 2;
var oldPx:array[0..MaxX]of byte;oldPy:array[0..MaxY]of byte;
i:longint;mx,omx,my,omy:integer;buttons:byte;it:char;cont:boolean;pom:byte;
oldP:byte;boo:boolean;
Procedure procedura_operace;var pom:byte;
begin
for pom:=0to MaxX do putP(omx+pom-rozX,omy,oldPx[pom]);
for pom:=0to MaxY do putP(omx,omy+pom-rozY,oldPy[pom]);
for pom:=0to MaxX do oldPx[pom]:=GetP(mx+pom-rozX,my);
for pom:=0to MaxY do oldPy[pom]:=GetP(mx,my+pom-rozY);
for pom:=0to MaxX do putP(mx+pom-rozX,my,Cbarva);
for pom:=0to MaxY do putP(mx,my+pom-rozY,Cbarva);
omx:=mx;omy:=my;
end{operace};
begin{proc.MenXXZ} vypr;MenXXz:=false;jl:=false;
{ mPos(mMX,mMY);}
omx:=mmx;omy:=mmy;mx:=mmx;my:=mmy;
for pom:=0to MaxX do oldPx[pom]:=GetP(mx+pom-rozX,my);
for pom:=0to MaxY do oldPy[pom]:=GetP(mx,my+pom-RozY);
for pom:=0to MaxX do putP(mx+pom-RozX,my,Cbarva);
for pom:=0to MaxY do putP(mx,my+pom-RozY,Cbarva);
zobrazen:=false;
repeat {3}
getmouse(buttons,mx,my);
pr:=mistn[cis].pocatek;
byl:=jeTam(cis,mx,my,pr);{pro zrychleni kodu}
if(byl=false)and(zobrazen=true)then BEgIN
{ p:=prepocet(pr^.kec); {centrovani (640/2)-(p div 2)}
putA(320-(p div 2),p,arj);
zobrazen:=false;
end;
(*kdyz to je pouze nedulezita vec (skoro bez kecu -> 3)*)
if(byl)and(zobrazen=false)then begin
if(pr^.jeto=false)then napis:=pr^.kec;
if(pr^.jeto)then napis:=pt[prevod(pr^.nazevPredm)].kec2;
(*kdyz to je dulezita vec -> kecy*)
p:=prepocet(napis); {centrovani (640/2)-(p div 2)}
getA(320-(p div 2),p,arj);
pis(320-(p div 2),kecY,napis,pis1,poz,true);
zobrazen:=true;
{ end;}
end;
if (mx<>omx)OR(MY<>omy)then begin
Procedura_operace;
end;
{kdyz chce vyskocit ze hry}
{if keypressed then begin it:=readkey;vypr;if it=#27 then cont:=true;end;}
boo:=false;
if kPressed(1,27) then begin{+ zmizeni kursoru mysi}
for pom:=0to MaxX do putP(mx+pom-rozX,my,oldPx[pom]);
for pom:=0to maxY do putP(mx,my+pom-rozY,oldPy[pom]);
boo:=obsluha;if jl=true then exit;
for pom:=0to MaxX do putP(mx+pom-rozX,my,cbarva);
for pom:=0to maxY do putP(mx,my+pom-rozY,cbarva);
end;
until {3}(buttons<>0)or(cont=true)or(boo);
if boo=true then exit;
new_pcx:=false;
putA(320-(p div 2),p,arj);
if(buttons=1)and(jeTam(cis,mx,my,pr))then begin
{(640/2)-(p div 2) centrovani}
if(pr^.jeto=false)then napis:=pr^.kec;
if(pr^.jeto=true)then begin {prevod = z predmetu cislo}
bt:=prevod(pr^.nazevPredm);
pred:=pt[bt].pocatek;
napis:=pred^.kec1;
{ if(pt[bt].citac>1)then dec(pt[bt].citac);}
if pt[bt].povidani^.nasl<>nil then begin
pt[bt].povidani:=pt[bt].povidani^.nasl;
pt[bt].povidani^.pred:=nil;
pt[bt].pocatek:=pt[bt].povidani;
end;
end;
p:=prepocet(napis);
{(640/2)-(p div 2)centrovani}
getA(320-(p div 2),p,arj);
pis(320-(p div 2),kecy,napis,pis2,poz,true); delay(500);
p:=prepocet(napis);
{(640/2)-(p div 2)centrovani}
putA(320-(p div 2),p,arj);
{prohozeni obrazku}
if(pr^.newPcx)and(buttons=1)then begin
cis:=pr^.kama;new_pcx:=true;
end;
end;
if(buttons=2)and(jeTam(cis,mx,my,pr))and(pr^.jeto=false)then begin
p:=prepocet(pr^.kec);
{(640/2)-(p div 2)centrovani}
putA(320-(p div 2),p,arj);
p:=prepocet(pr^.kec3);
{(640/2)-(p div 2)centrovani}
getA(320-(p div 2),p,arj);
pis(320-(p div 2),kecY,pr^.kec3,pis3,poz,true); delay(500);
p:=prepocet(pr^.kec3);
{(640/2)-(p div 2)centrovani}
putA(320-(p div 2),p,arj);{prohozeni obrazku}
if(pr^.newPcx)and(buttons=1)then begin
cis:=pr^.kama;new_pcx:=true;
end;
end;
for pom:=0to MaxX do putP(mx+pom-rozX,my,oldPx[pom]);
for pom:=0to maxY do putP(mx,my+pom-rozY,oldPy[pom]);
end;
{****************************************************************************}
{****************************************************************************}
(***********************************************************)
function Intro:boolean;var xx,yy:integer;pok:boolean;begin
(***********************************************************)
flushKeyb;intro:=true;Marray(570,404,618,459);
fadeout(3);loadPcx('uvod02.pcx',palette);
fadeinX(palette);Men(590,447,xx,yy,c01);
{570,404;618,431 and 570,437;597,459}
if (xx=-1)or(yy=-1) then intro:=false;
if ((yy>=404)and(yy<=431))then intro:=false;
END;{****************************************************************************}
{****************************************************************************}
{****************************************************************************}
{ Hlavni procedura }
procedure Mistnost;var rep:boolean;konec:boolean;
{****************************************************************************}
{****************************************************************************}
cislo:byte;e1,f1:integer;maxx,maxy:byte;px,py:integer;novy_pcx:boolean;
oldcislo:byte;vysX,vysY:integer;
backX:as;psat:string;
p:predm;
pullitr,klic1,zblitky:boolean;
begin
cislo:=3;
pullitr:=false;
klic1:=false;
zblitky:=false;
konec:=false;
marray(5,5,635,475);
{GetAR(sx,sy,kolikX,kolikY:integer;var res:arX);
M2scr(wx,wy:word;dox,doY:byte;co:arx;nee:byte);
PutPozadi(sx,sy,doX,doY:integer;inp:arX);
fillM(nazev:string;var vysX,vysY:byte;var kam:arx);
MoveSub(kdeX,kdeY:integer;maxx,maxy,var kamx,kamy;predmet,var pozadi}
pismo2mem;
initStruc;
initPr;
for vysx:=1 to pocet do pt[vysx].povidani:=pt[vysx].pocatek;
novy_pcx:=true;e1:=100;f1:=100;
repeat
if novy_pcx then begin
loadPcx(mistn[cislo].nazev,palette);
{nakresleni vsech predmetu na televizi}
mistn[cislo].itm:=mistn[cislo].pocatek;
p:= mistn[cislo].pocatek;
repeat
if (p^.jeto=true) then begin
fillM(p^.nazevPredm+'.mys',maxX,maxY,predmet);
getAR(p^.x1,p^.y1,maxX,maxY,pozadiX);
m2scr(p^.x1,p^.y1,maxX,maxY,predmet,15);
end;
p:=p^.nasl;
until p^.nasl=nil;
end{if};
writePalette(palette,255);
if menxXz(cislo,e1,f1,novy_pcx,c01)then begin konec:=true;exit;end;
until konec;
end;
{****************************************************************************}
{**********************nova hra****************************}
Procedure NewGame;var xx,yy:integer;begin
{if Intro then begin
marray(5,5,635,475);
loadPcx('zac01dom.pcx',palette);fadeIN(palette,2);delay(0);
mistnost;
flushKeyb;
end{intro,newgame};
mistnost;
flushKeyb;
end;
{$F-}
end.
A knihovna sloužící k zobrazování obrázků - použití dynamické proměnné.
unit s3 ;interface uses gr;
const pocet=3;
{predmety :
1=1_2_litr
}
const maxKecu=35;
type
predm=^pts;
pts = record
x1,x2,y1,y2 :integer;
kec :string[maxKecu];
kec2:string[maxKecu];
kec3:string[maxKecu];
jeto,maho :boolean;
nazevPredm:string[8];
nasl :predm;
newPcx :boolean;
kama :byte;
end;
room=record
nazev :string[12];
{items :byte;}
itm :predm;
pocatek :predm;
end;
rooms=array[1..47]of room;
var mistn:rooms;
type
pkec =^pkecy; {kecy}
pkecy= record
nasl,pred : pkec;
kec1:string[maxKecu];
end;
kecyX = record
citac : byte;
kec2,kec3 :string[MaxKecu];
povidani :pkec;
pocatek :pkec;
end;
predmety=array[1..pocet]of kecyX;
var pt:predmety;
procedure InitStruc;
function Jetam(kde:byte;k1,k2:integer;VAR vysx:predm):boolean;
procedure initPr;
function prevod(co:string):byte;
implementation
{misnost;kde je predmet ;pohyb mysi,stisk1,2->kecy}
procedure Pridej(kde:byte;a1,b1,a2,b2:integer;kec1,kec2,kec3:string;
{nekam?,jo? nazev predmetu ;kam vede ukazatel}
vede,jetoPredmet:boolean;nazevPredm:string;kam:byte);
var pr:predm;
begin
mistn[kde].itm:=mistn[kde].pocatek;
PR:=mistn[kde].itm;
while(pr^.nasl<>nil)do pr:=pr^.nasl;
pr^.x1:=a1; pr^.y1:=b1;
pr^.x2:=a2; pr^.y2:=b2;
pr^.kec:=kec1;
pr^.kec2:=kec2;
pr^.kec3:=kec3;
pr^.jeto:=jetoPredmet;
pr^.nazevPredm:=nazevPredm;
pr^.newPcx:=vede;
pr^.kama:=kam;{piano v aule}
new(pr^.nasl);pr:=pr^.nasl;
pr^.nasl:=nil;
end;
procedure InitStruc;
var ci:byte;{pocatek:predm;}
pr:PREDM;
begin
{***************************************************************************}
{************* Aula **************}
{vede do :c. 24 ,piano<25> }
ci:=1;
mistn[ci].nazev:='Aula.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;
pr^.nasl:=nil;
pridej(ci,484,18,585,100,'nelad#en|e pi|ano','Nem|am hud. sluch','sd',true,false,'',25);
pridej(ci,596,458,621,480,'ven','U#z toho m|am dost','rtyrtyrty',true,false,'',24);
{***************************************************************************}
{************* Hrazout **************}
{vede do :c. 22 ,3 }
ci:=2;
mistn[ci].nazev:='hrazout.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,5,187,21,208,'cesta','klikata','dffdfd',true,false,'',22);
pridej(ci,346,177,369,198,'Hraz','zase ?','hfhf',true,false,'',3);
pridej(ci,357,295,403,332,'kanal','hezkej','h',false,false,'',0);
{***************************************************************************}
{**************** HrazIn **********************}
{vede do :c. hrazout<2> }
ci:=3;
mistn[ci].nazev:='hrazin.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,136,144 ,158 ,167 ,'venku je ale p#ekn|a zima','pro#c jen?','asi dve#re ven',true,false,'',2);
pridej(ci,336 ,84 ,385 ,182 ,'#c|i#sn|ik','n#eco k j|idlu','vrchn|i Radim',false,false,'',0);
pridej(ci,189 ,30 ,233 ,71 ,'hodiny','jako v#cera a z|itra','p|ul osm|e',false,false,'',0);
pridej(ci,400,150,400+38,150+28,'p|ullitr na pultu','m|am ho asi vz|it sebou co ?','pivn|i p|ullitr'
,false,true,'1_2_l',0);
{***************************************************************************}
{**************** SLUZBA **********************}
{vede do:c.dvur<15>,pc-fyzika<10>,I.patro<5>,4a-b-buf<12>0 }
ci:= 4;
mistn[ci].nazev:='sluzba2.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm; pr^.nasl:=nil;
pridej(ci,534 ,416 ,559 ,459 ,'dvur','u#z du','tak jo',true,false,'',15);
pridej(ci,11 ,15 ,64 ,60 ,'fyzika a pc','Bur#s','rwt',true,false,'',10);
pridej(ci,19 ,292 ,44 ,314 ,'nahoru','pozor schody','af',true,false,'',5);
pridej(ci,280 ,100 ,312 ,120 ,'chotdba','kul|attor','fsdf',true,false,'',12);
pridej(ci,422 ,57 ,538 ,241 ,'zrcadlo','reflexe','fsdf',false,false,'',0);
{***************************************************************************}
{**************** I. patro **********************}
{vede do :c.4,24,11,20 }
ci:=5;
mistn[ci].nazev:='n2.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm; pr^.nasl:=nil;
pridej(ci,251 ,91 ,418 ,192 ,'nast#enka','Nachrichts','fsdf',true,false,'',26);
pridej(ci,334 ,418 ,355 ,441 ,'slu#zba','por|ad n#eco','dsfsd',true,false,'',4);
pridej(ci,87,247 ,114 ,270 ,'k aule','dem','fsdf',true,false,'',24);
pridej(ci,600 ,65 ,634 ,113 ,'wc knihy','tak jo','fsdf',true,false,'',11);
pridej(ci,34 ,184 ,59 ,204 ,'sborovna..','tam to smrd|i','sdfsd',true,false,'',20);
pridej(ci,0,81,41,169,'kopirka','zezhora?!','sdfsd',false,false,'',0);
{***************************************************************************}
{**************** Fyzika **********************}
{vede do :c. }
ci:=6;
mistn[ci].nazev:='fyzikar.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,604 ,223 ,634 ,447 ,'kabinet','bure#s','fsdf',true,false,'',21);
pridej(ci,397 ,251 ,422 ,273 ,'zp#et','m|am dost','dsfsd',true,false,'',10);
pridej(ci,290,78,311,96,'#z|arofka','120 W','sdfsd',false,false,'',0);
pridej(ci,21,209,113,475,'bure#s','vid|im t#e student','fsdf',false,false,'',0);
{***************************************************************************}
{**************** KNIHOVNA **********************}
{vede do :c. }
ci:=7;
mistn[ci].nazev:='kn-hovna.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,524 ,118 ,548 ,143 ,'zp#et','#cern|ikov|a ?','fds',true,false,'',11);
pridej(ci,103,221,202,359,'st#ul','#cer#n|ikov|a m#ela','fsdfsd',false,false,'',0);
pridej(ci,227,282,285,337,'#zidle','#cer#n|ikov|a m#ela','fsdfsd',false,false,'',0);
pridej(ci,402,236,640,480,'knihy','divn|y co ?','sdfsd',false,false,'',0);
{***************************************************************************}
{**************** W C **********************}
{vede do :c. }
ci:=8;
mistn[ci].nazev:='wc.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,437 ,450 ,465 ,474 ,'ven','smradu tam','sdfsd',true,false,'',11);
pridej(ci,0,167,144,384,'kadi-butka','kdo tam ?','sdfsd',false,false,'',0);
pridej(ci,256,171,353,234,'windows 95','vid|im oupln|y..','fsdfsd',false,false,'',0);
pridej(ci,526,294,566,354,'muschle 1','nepot#rebuju','sdfsdf',false,false,'',0);
pridej(ci,584,351,624,406,'muschle 2','n#ezn|ajem','#zlut|a teku#t|yna',false,false,'',0);
{***************************************************************************}
{**************** PC'S **********************}
{vede do :c. }
ci:=9;
mistn[ci].nazev:='pocitace.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,432 ,452 ,456 ,474 ,'ven','radon','sdfsdf',true,false,'',10);
pridej(ci,556 ,223 ,579 ,246,'kabinet','technika','fsdfsd',true,false,'',19);
pridej(ci,38,148,156,223,'windows 95-1','hovno','sfsd',false,false,'',0);
pridej(ci,244,149,361,217,'windows 95-2','shit','ty',false,false,'',0);
pridej(ci,0,295,85,359,'Satelit #c.4','Josk|uf','ty',false,false,'',0);
pridej(ci,172,230,266,291,'Satelit #c.5','Daviduf','yt.t',false,false,'',0);
pridej(ci,329,224,430,280,'Servr 16Mb Ram','Rndr m|adl|uf','tyt',false,false,'',0);
{***************************************************************************}
{**************** Fyzika-pocitace **********************}
{vede do :c. }
ci:=10;
mistn[ci].nazev:='fyz-pc.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,373 ,185 ,495 ,208 ,'fyzika','shits','yty',true,false,'',6);
pridej(ci,95 ,292 ,118 ,316 ,'pc','po#c|ita#ce','iuoui',true,false,'',9);
pridej(ci,596 ,131 ,634 ,163 ,'slu#zba','..','io',true,false,'',4);
{***************************************************************************}
{**************** WC _ KNIHOVNA **********************}
{vede do :c. }
ci:=11;
mistn[ci].nazev:='wc-knih.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,479 ,142 ,503 ,164 ,'zachody','smrad','oiuoi',true,false,'',8);
pridej(ci,597 ,111 ,633 ,138 ,'knihovna','#cern|ikov|a ?','uioui',true,false,'',7);
pridej(ci,10,175,33,199,'zp#et','k.o.','ouio',true,false,'',5);
pridej(ci,132,182,334,272,'lavi#cka','sedl bych si','ui',false,false,'',0);
{***************************************************************************}
{**************** 4a b buf **********************}
{vede do :c. }
ci:=12;
mistn[ci].nazev:='4a-b-buf.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,78,175,189,328,'bufet','m|am hlat','ouio',true,false,'',13);
pridej(ci,433,189,458,214,'4.a','elita','ouioui',true,false,'',14);
pridej(ci,314,422,337,472,'slu#zba','ok','ouio',true,false,'',4);
pridej(ci,290,61,315,82,'t#elocvi#cna','gymnastika ne !','iuo',true,false,'',16);
{***************************************************************************}
{**************** Bufet **********************}
{vede do :c. }
ci:=13;
mistn[ci].nazev:='bufet.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,471,457,497,474,'chodba','zimma','oiuo',true,false,'',12);
pridej(ci,200,175,252,209,'telefon','0433-24342','uio',false,false,'',0);
pridej(ci,63,268,147,342,'decim|alka','p#resn|a jak..','iyu',false,false,'',0);
pridej(ci,544,179,640,480,'stoly','masivn|i','iyuiyu',false,false,'',0);
pridej(ci,375,45,488,159,'das fenster','to je v|yhled','eyter',false,false,'',0);
{***************************************************************************}
{**************** 4 . A sidlo machru **********************}
{vede do :c. }
ci:=14;
mistn[ci].nazev:='4a.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,561,457,586,474,'ven','p#ekn|y to je','qwe',true,false,'',12);
pridej(ci,58,52,91,121,'obraz','D.M.','qweqw',false,false,'',0);
{***************************************************************************}
{**************** D V U R **********************}
{vede do :c. }
ci:=15;
mistn[ci].nazev:='dvur.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,230,287,256,312,'vchod','dem se u#cit','adas',true,false,'',4);
pridej(ci,189,457,219,474,'ven','out','cxvxc',true,false,'',17);
pridej(ci,607,280,632,304,'posilovna','Arnold','vdxc',true,false,'',18);
pridej(ci,565,323,640,356,'laguna','#colci a mloci','fd',false,false,'',0);
{***************************************************************************}
{**************** TELOCVICNA **********************}
{vede do :c. }
ci:=16;
mistn[ci].nazev:='pkose.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,165,452,186,473,'ven','padla','fdd',true,false,'',12);
{***************************************************************************}
{**************** PR LG **********************}
{vede do :c. }
ci:=17;
mistn[ci].nazev:='prlg02.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,6,374,29,398,'tam','kam','dfd',true,false,'',23);
pridej(ci,570,263,609,303,'dvur','vodlez','dfdf',true,false,'',15);
{***************************************************************************}
{**************** pred lg - okny **********************}
{vede do :c. }
ci:=18;
mistn[ci].nazev:='prlg-pos.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,6,370,29,392,'ven','men in black','df',true,false,'',15);
{ (e1>=414)and(e1<=436)and(f1>=369)and(f1<=391)then ;{posilovna}
{ (e1>=613)and(e1<=635)and(f1>=432)and(f1<=457)then ;{hriste}
{pridej(ci,,,,,'','',true,);}
{***************************************************************************}
{**************** 1.kabinet **********************}
{vede do :c. }
ci:=19;
mistn[ci].nazev:='fy-pc-ka.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,223,456,259,477,'zp#et','ko','dfdf',true,false,'',9);
pridej(ci,350,278,379,300,'poklad ?','smazat','fddf',true,false,'',21);
pridej(ci,166,356,197,384,'Zden#k Sv#er|ak','fung#cn|i','df',false,false,'',0);
pridej(ci,0,415,68,480,'radi|ator','infra#cervenej','dfdf',false,false,'',0);
pridej(ci,415,171,640,412,'poli#cky','pr|azn|y','dffd',false,false,'',0);
{***************************************************************************}
{**************** Sborovna **********************}
{vede do :c. }
ci:=20;
mistn[ci].nazev:='sbor-kan.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,110,456,138,479,'nahoru','nohy','fd',true,false,'',5);
pridej(ci,213,296,439,378,'kopirka','pronajat|a LG','rtyrt',false,false,'',0);
pridej(ci,325,225,430,295,'odklada#c','hmmm','iuy',false,false,'',0);
(*if(e1>=4)and(e1<=28)and(f1>=402)and(f1<=425)then ;{reditelna-m1}
if(e1>=32)and(e1<=61)and(f1>=322)and(f1<=345)then ;{sborovna}
if(e1>=506)and(e1<=531)and(f1>=299)and(f1<=321)then ;{kancl}*)
{***************************************************************************}
{**************** 2.kabinet poklad **********************}
{vede do :c. }
ci:=21;
mistn[ci].nazev:='pc-fyz-k.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,248,219,274,243,'fyzika','ok','iyui',true,false,'',6);
pridej(ci,234,453,262,475,'tam','john carmack','iyuiyu',true,false,'',19);
pridej(ci,31,170,108,278,'vokno','p#eknej aussicht','ert',false,false,'',0);
pridej(ci,245,104,295,149,'Pan Fyzik','A.ZweiStein','er',false,false,'',0);
pridej(ci,376,151,550,352,'sk#r|i#n','hodn#e moc star|a','ter',false,false,'',0);
{***************************************************************************}
{**************** pred stravovnou **********************}
{vede do :c. }
ci:=22;
mistn[ci].nazev:='prstrav.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,6,239,30,265,'d|al','Brian Hook','erte',true,false,'',23);
pridej(ci,592,226,617,252,'pokra#cuj','John Cash','sdf',true,false,'',2);
pridej(ci,373,151,574,257,'Tabule','Kino-disco ..','sdfs',false,false,'',0);
{***************************************************************************}
{**************** Sps stravovna **********************}
{vede do :c. }
ci:=23;
mistn[ci].nazev:='sps-stra.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,3,397,28,422,'p#rede','qex soft','qw',true,false,'',17);
pridej(ci,612,258,635,282,'food','bad','dsaf',true,false, '',22);
pridej(ci,0,257,90,390,'lavi#cka','hmmm','sdfds',false,false,'',0);
pridej(ci,306,13,327,34,'slunce','helios','fdsf',false,false,'',0);
{***************************************************************************}
{**************** K aule **********************}
{vede do :c. }
ci:=24;
mistn[ci].nazev:='k_aule.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,308,402,329,424,'aula','in','why?',true,false,'',5);
pridej(ci,303,111,325,131,'p#red aulou','tralala la','asdsa',true,false,'',1);
{***************************************************************************}
{**************** Piano Petrof,aula **********************}
{vede do :c. }
ci:=25;
mistn[ci].nazev:='piano.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,587,448,615,472,'rychle ven','pianino','rozla#den|y',true,false,'',1);
pridej(ci,510,8,640,123,'Obraz','B|e#da Smet|ak','wr',false,false,'',0);
{***************************************************************************}
{**************** Nastenka **********************}
{vede do :c. }
ci:=26;
mistn[ci].nazev:='nastenka.pcx';
new(mistn[ci].itm);
mistn[ci].pocatek:=mistn[ci].itm;{pocatek predmetu v mem}
PR:=mistn[ci].itm;pr^.nasl:=nil;
pridej(ci,625,465,640,480,'o#ci pri#c','inzerce','puiopui',true,false,'',5);
pridej(ci,148,258,306,465,'zpravy','hezk|e','pioppoi',false,false,'',0);
end;
{ pkec =^pkecy; {kecy
pkecy= record
nasl : pkec;
kec1:string[maxKecu]; end;
kecyX = record
citac : byte;
kec2,kec3 :string[maxKecu];
povidani :pkec;end;}
procedure initPr;var cisloX:byte;ch:char;f:file;s:string;prx,p2:pkec;
function cti:string;var ss:string;begin ss:='';
repeat
blockread(f,ch,1);if(ch<>';')AND(CH<>#13)AND(CH<>#10)then ss:=ss+ch;
until(ch=';')or(ch=#13)or(eof(f));
cti:=ss;
end;
begin assign(f,'!!napis.pas');reset(f,1);
cisloX:=1;s:='';
repeat
pt[cisloX].kec2:=cti;
pt[cisloX].kec3:=cti;
{nacteni stringu pro right click}
pt[cisloX].citac:=1;
new(pt[cislox].povidani);
pt[cisloX].povidani^.pred:=nil;
pt[cisloX].pocatek:=pt[cislox].povidani;
prx:=pt[cislox].povidani;
repeat
s:=cti;
prx^.kec1:=s;
if (ch=#13)or(eof(f)) then begin
if ch=#13 then begin
prx^.nasl:=nil;
{!!!!!!!!!!!!!!!!!!!!!}
if cisloX
{!!!!!!!!!!!!!!!!!!!!!}
new(pt[cislox].povidani);pt[cisloX].povidani^.pred:=nil;
pt[cisloX].pocatek:=pt[cislox].povidani;prx:=pt[cislox].povidani;
pt[cisloX].citac:=1;
end;
if eof(f) then begin
prx^.nasl:=nil;
end;
END
else begin
new(prx^.nasl);
p2:=prx;
prx:=prx^.nasl;
prx^.pred:=p2;
inc(pt[cisloX].citac);
end;
until(ch=#13)or(eof(f));
until eof(f);
close(f);
end;
function Jetam(kde:byte;k1,k2:integer;VAR vysx:predm):boolean;
var p:predm;
begin
mistn[kde].itm:=mistn[kde].pocatek;
jetam:=false;
with mistn[kde] do begin
p:=pocatek;
repeat
if((p^.x1<=k1)and(p^.x2>=k1)and(p^.y1<=k2)and(p^.y2>=k2))then begin
jetam:=true;vysX:=p;exit;end;
p:=p^.nasl;
until p^.nasl=nil;
end{with};
end;
function prevod(co:string):byte;
begin
if co='1_2_l'then prevod:=1;
end;
end.
Soubor s popisky !!NAPIS.PAS:
1 p|ullitr;vypad|a hezky;#ze bych ho vzal ?;a ne boj|im sa;hej vrchn|i
2 i ll hope;Space Energy;kf35ch 9*(vzal ?;Are you allright;he$ vrchn|i
3 to je hovno;smrdi jak ty;ty houne;ty roune;hhhhhooovn