ref: a88630d07570f7e9a30098817db9efe32307a776
parent: 5288bbb7556c87e95b0813bf5769eec6b3caf9bc
author: Konstantinn Bonnet <qu7uux@gmail.com>
date: Wed May 18 23:13:07 EDT 2016
bring introscreens back have them as separate files loaded at startup before the rest of the files. there is cause to have these, since on slower terminals or connections, etc., the initial loading time might be several seconds long, or more.
--- a/dat.h
+++ b/dat.h
@@ -35,7 +35,7 @@
Vt = Va * Vbp,
Tb = 70
};
-extern uchar *px;
+extern uchar *px, pxb[];
extern int npx, scale;
typedef struct Col Col;
--- a/fs.c
+++ b/fs.c
@@ -943,7 +943,19 @@
Bterm(dat);
}
-void
+static void
+loadscr(void)
+{
+ Biobuf *bf;
+
+ ext = ver < SDM ? "wl6" : "sod";
+ bf = bopen("intro.", OREAD);
+ eread(bf, pxb, Va);
+ out();
+ Bterm(bf);
+}
+
+static void
fixpal(void)
{
u32int *p, *s;
@@ -965,15 +977,17 @@
rfork(RFNAMEG);
if(bind(".", dir, MBEFORE|MCREATE) < 0 || chdir(dir) < 0)
fprint(2, "dat: %r\n");
+
+ if(ver >= SDM)
+ fixpal();
+ e = ext;
+ loadscr();
+ ext = e;
vswap();
gamemaps();
- e = ext;
if(ver == SOD)
ext = "sod";
audiot();
gfx();
ext = e;
- if(ver >= SDM)
- fixpal();
- pal = pals[C0];
}
--- /dev/null
+++ b/intro.sod
@@ -1,0 +1,1 @@
+������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
\ No newline at end of file
--- /dev/null
+++ b/intro.wl6
@@ -1,0 +1,1 @@
+))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))"$!"#!"%%""$""&"%"!%#!"""!%"%$%"!""!$#()()#&%&"##&$#%%###%(%#$"%(((###"#%#%%""!##%%"#%&#))"$#"%"##"#%$###%$(#"##"$%"""$$$$$%$(*#"&"&%""&(&(($$%"$%"%%%&"%$$$%$%"$%%&$"&&$$#"%($&"&%&*(#%%%#(%%%$#%#(&% % ""%"(%%((%$$$$$%%((%%&#%$%((#&%&%&%(($&( & #&%$&((($((%%&&%&&&"%%"($(%&&&%%((&(((&($((&%&&&%(&)%"%#%%"""#%%#""""!$$#%""!###$#%%%"%#%%%%%$%$#%$"%%$"###%&%%$$%$$!%&"%%#"%&###&"%%&$%&$"%$%(%&&(#%""&#%"%"%#"#$"$#((!$%$(#((%%##$%$"%(&&&&&%($%($%$%$$$$$$"$#%%%&%%&&%&%%&&&((&%((((($%#&%%&# " &#(&%((&&(((&&$&%('$&(&&"(%(%%&$&&#&#&%$%"%&%$%"%&%&&%($(%&$%$&&(%#&((%(#&($%&&%(((%$%(&&$&%)""%&%"&!%%""#%$$!#"$!"&"""$$"(%%#(#%%%%##""%%%""###"$$%%%#$%#"#$$#"%$&%%(&%%"&%%&%%%&)))((%&&(%#&((((%%##%%&%#$%%&&%%%'("$(&&(#"#$(%$$%($($"&((&"$%%%(%&%&&%$&"%&&&%%%"$%&$(&%%((&)()('%&%""$&# " "%%&(%%($%((&(%%(%$&&&&(((%(%%&&&%#%"""$&$&&%%($$(&(%"&$"($"$&$&$&&&%%&(&(&&((&&$%((&((&%$&$%)!%"$""!%$#"%%!$#!($$"##$%%&$(&%((&%"#$$#%#%%&%""(##&"%%#"##%$#"&#"##%"$"!(%&(%(&)&$'(#&#&$($$&&((&(%&&%($(%&))))$))&%#)(%'&"%&($$&&&$&$(&#&#((&(&&%(%(%(%%(((&&&((%'&&%(($((()**&(('%$"## "$"$!""#&$%%&$&%$&($(&&$(&&$$$%&$&%($%$&(&%&%%#%%##&%&((#(&%&&((%%&(%($&$($(((&&%(((%(&$&$((&%(()""""#""(%!%#""%#"$$&&&$&&&&%%$%$(&%&#"#"%#"###&$%###%#%###"%"#"!##"%#%%&'&)(($#&&##%%$$%#"%###"(#&$$&)(((%$((()%&''%'$$('%()%)&%((((((%&(%(&"((&%&(&$$%&&%&(%"(%(%$&'(%*&(&*(((%&($(%#$$"%$" $#!%%$%(%(&&#(($$&%&&%%%%&$$%$(%%&(#&("&#%$(%!$"%&(%$(&($&%#%%&(&((%($&(''%(&(%$%(%(((%(()()()(((&))())()%%$%($$$&!!%!$"$%%(&#((&%($$(&()($#((%&&&$(&#%&$"%%"$#"%$&&"##!%#$#&%($"%("$#%#%&%#"(#%#%%%%#$%$(#((((&%$&&%((%$$$%#$!$%&&&%$(%%#(&&&&(&$(%$"&&$&&($$%(()$)(%)((((%((('&&$%#&" ""&$"%#"(#(%%&(&%&%&%(%%&&%(%%%&%&%%&&&&&&%&%& "$&&(((&&(&&$($%&&$%&$%&&((((%&(&%%(&(($%(%*(*(*)*())(((%)"!!$$!!$# $ ""$$$%%%&(&&%&(("('($(%)(&("%#%"#%%&&$&%((%&(%$$%&&%(%%#&&%$((&&%"#"##$#"$&&$!%&$#$##""&%$&&($&%($&((%%%($#"%$%%%#%$%#$%%"$$%$$$$$%%((%$&($%#"$)&&&((&)($%%%((((%%%$"$%# #%%$%##%$#$&&&#%$(%&%&&(&&%%&%%&$&%&(#((&&%%" "%$&&&(%((&%&(&(%&$&$%%(%&%$$((%(((((%(&$))()((&)()((%#%'$&) &" "#%$""&& &%$"(&&(&((%$(&&%%&(#'&((%"#%$%%%%&%$'%(%$&%#((((&)&('$&%(&%"&%"#$##""##%$%"#&$&$%&(#$&$%(&#($$"#"%%%&%%$%#"$$($%#$%%$&%%(%$%%$&$$(()((()&)()))&%'%(('(&(&&)(&(%%($ # ""#%"#$"$##&$(#($&(&$&&%%$&%&&%(%%&%$(#((&$%&%$$$$$$&(%#&%%("%($$%(%'(&&'(('%%((((&)&%($%$(%$%$'$(&&((&($(%(#($((&&)!"%$#"%%!%&&((%! %"%%$(%%$$#(%%%##%##%)(&$(%%(%&('%($((((&(('$('(&&(((%(%%%%&$%"#"%##%$#%&&&&$$(&&($&((%#$&$"#$#"##%$#""#%(%#&#%&(#%"%"$$"%$""$#($&$$#(((((((%%('((((&(&(&$ """"%#%#$%$%%%"&(&&$&$%&"%&&(#(&%(#&%(($($&(%%%%#&%# $$#$%&%(&$&&&&&&(&(&)%)&(((())(&&()(($%((%(((&%($&&#$&((%&%)&((&%&&&&&&&$$%"%"&$(((&#$(%%#&(%%&%"%&&'(%(%%%(&$%((#$"&&%"((#&&%('%&$&)((&&'$&$"&%"%$$(%&&&$#%%$%%""(%%"%$$&%%##%%&"$$%%$#%$%&&(($&&%($%&&"$%(&((((($()(((%%&&#%!$" %$(#%$#$"%%(&#%"&%%&&$%%&$((%&%$&%&&&$(&$((((%%%$#" $!(%(%(%&(&(&%(%$%(()((&(%(%&&))%(%$&()(&%'$#%(%&($%%(%$&&&&&"%(#(()$($(%$&$#&"($(%&%((($ "(%##($"%""!&%#!""%(%("(($"%%"#%"!#""(##$(("(%((&&(($"%(((&%((&%(&%&(%"&###!%&%&%(%&%&"%$$%%($"&$&$%&&%%(($$(%#$"&&((&&'$(%&%)(%(((%%'(&($#$#%$ "#%#(&#$%%#&&%%$(%($$%(&(%%(&((((%&&$("&%%&%&%%"%##(%%$"($&%$%%&%((()(('$('%'%(((&(("&&((&((%($"%((#(&((&&$$&%($#$)(((((&'(&$&%#((('$%$&%$#% % ((#&&%%#" "#&(#$%#(#&%%%((($%(&%&#$(%&$&%%$%"(&%"&(%%(%($&%&&(%$&&&(($$%$(&&('(%%$'&$'($%&(&%%%((%(%%((%((%#)((((%&$%%(%&&%!%#"!%$ %(##%"%#"&($&&%((#&%(%%(%(&(("%(&(%%&%((&%&(&&&&$%%#%%%#($"%('$(&
\ No newline at end of file
--- a/mkfile
+++ b/mkfile
@@ -20,6 +20,10 @@
</sys/src/cmd/mkmany
BIN=$home/bin/$objtype
+dirinstall:V:
+ mkdir -p /sys/games/lib/wl3d
+ cp intro.wl6 intro.sod /sys/games/lib/wl3d
+
$O.wl3d: $WOFILES
$LD -o $target $prereq
--- a/mn.c
+++ b/mn.c
@@ -31,6 +31,7 @@
};
enum{
+ Lload,
Lintro,
Ltitle,
Lcreds,
@@ -509,6 +510,7 @@
dieq[] = {{10, fadeout}, {1, die}};
static Menu *mp, ml[] = {
+ [Lload] {nil, decq, decq+nelem(decq), ml+Lintro, &fblk},
[Lintro] {intro, introq, introq+nelem(introq), ml+Ltitle, &fblk},
[Ltitle] {title, titleq, titleq+nelem(titleq), ml+Lcreds, &fblk},
[Lcreds] {creds, loopq, loopq+nelem(loopq), ml+Lscore, &fblk},
@@ -568,7 +570,7 @@
mcol[Doff] = mcol[Dbg] ^ 6;
mcol[Dbrd] = mcol[Dbg] ^ 4;
mcol[Dbrd2] = mcol[Dbg] ^ 14;
- reset(ml+Lintro);
+ reset(ml+Lload);
cson++;
mus(ver<SDM ? Mintro : Mtower);
}
--- a/rend.c
+++ b/rend.c
@@ -9,8 +9,7 @@
Dat *wals, *sprs;
int scale, npx;
-uchar *px;
-static uchar pxb[Va];
+uchar *px, pxb[Va];
static Col *fcol;
static u32int *fref;
static int fi, fo, fdt;
--- a/wl3d.c
+++ b/wl3d.c
@@ -250,13 +250,13 @@
default:
usage();
}ARGEND;
- dat(datdir);
-
notify(croak);
- initsnd();
if(initdraw(nil, nil, "wl3d") < 0)
sysfatal("initdraw: %r");
+ pal = pals[C0];
resetfb();
+ dat(datdir);
+ initsnd();
kbc = chancreate(sizeof(int), 20);
csc = chancreate(sizeof(Rune), 20);
reszc = chancreate(sizeof(int), 2);