New BD screen (missing voice acting).
|
|
@ -1,98 +1,28 @@
|
|||
Material Texture "graphics/BDScreen/BOYKISS0.png"
|
||||
Material Texture "graphics/BDScreen/BDBorder.png"
|
||||
{
|
||||
Shader "shaders/glsl/TexFilterHack.fp"
|
||||
Texture "retex" "graphics/BDScreen/BOYKISS0.png"
|
||||
{
|
||||
filter linear
|
||||
}
|
||||
Define "OVERSAMPLE"
|
||||
nomipmap
|
||||
}
|
||||
Material Texture "graphics/BDScreen/BOYKISS1.png"
|
||||
Material Texture "graphics/BDScreen/BDSaya.png"
|
||||
{
|
||||
Shader "shaders/glsl/TexFilterHack.fp"
|
||||
Texture "retex" "graphics/BDScreen/BOYKISS1.png"
|
||||
{
|
||||
filter linear
|
||||
}
|
||||
Define "OVERSAMPLE"
|
||||
nomipmap
|
||||
}
|
||||
Material Texture "graphics/BDScreen/BOYKISS2.png"
|
||||
Material Texture "graphics/BDScreen/BDDemo.png"
|
||||
{
|
||||
Shader "shaders/glsl/TexFilterHack.fp"
|
||||
Texture "retex" "graphics/BDScreen/BOYKISS2.png"
|
||||
{
|
||||
filter linear
|
||||
}
|
||||
Define "OVERSAMPLE"
|
||||
nomipmap
|
||||
}
|
||||
Material Texture "graphics/BDScreen/BOYKISS3.png"
|
||||
Material Texture "graphics/BDScreen/BDBubble0.png"
|
||||
{
|
||||
Shader "shaders/glsl/TexFilterHack.fp"
|
||||
Texture "retex" "graphics/BDScreen/BOYKISS3.png"
|
||||
{
|
||||
filter linear
|
||||
}
|
||||
Define "OVERSAMPLE"
|
||||
nomipmap
|
||||
}
|
||||
Material Texture "graphics/BDScreen/BOYKISS4.png"
|
||||
Material Texture "graphics/BDScreen/BDBubble1.png"
|
||||
{
|
||||
Shader "shaders/glsl/TexFilterHack.fp"
|
||||
Texture "retex" "graphics/BDScreen/BOYKISS4.png"
|
||||
{
|
||||
filter linear
|
||||
}
|
||||
Define "OVERSAMPLE"
|
||||
nomipmap
|
||||
}
|
||||
Material Texture "graphics/BDScreen/BOYKISS5.png"
|
||||
Material Texture "graphics/BDScreen/BDBubble2.png"
|
||||
{
|
||||
Shader "shaders/glsl/TexFilterHack.fp"
|
||||
Texture "retex" "graphics/BDScreen/BOYKISS5.png"
|
||||
{
|
||||
filter linear
|
||||
}
|
||||
Define "OVERSAMPLE"
|
||||
nomipmap
|
||||
}
|
||||
Material Texture "graphics/BDScreen/BOYKISS6.png"
|
||||
Material Texture "graphics/BDScreen/BDBubble3.png"
|
||||
{
|
||||
Shader "shaders/glsl/TexFilterHack.fp"
|
||||
Texture "retex" "graphics/BDScreen/BOYKISS6.png"
|
||||
{
|
||||
filter linear
|
||||
}
|
||||
Define "OVERSAMPLE"
|
||||
}
|
||||
Material Texture "graphics/BDScreen/BOYKISS7.png"
|
||||
{
|
||||
Shader "shaders/glsl/TexFilterHack.fp"
|
||||
Texture "retex" "graphics/BDScreen/BOYKISS7.png"
|
||||
{
|
||||
filter linear
|
||||
}
|
||||
Define "OVERSAMPLE"
|
||||
}
|
||||
Material Texture "graphics/BDScreen/BOYKISS8.png"
|
||||
{
|
||||
Shader "shaders/glsl/TexFilterHack.fp"
|
||||
Texture "retex" "graphics/BDScreen/BOYKISS8.png"
|
||||
{
|
||||
filter linear
|
||||
}
|
||||
Define "OVERSAMPLE"
|
||||
}
|
||||
Material Texture "graphics/BDScreen/BOYKISS9.png"
|
||||
{
|
||||
Shader "shaders/glsl/TexFilterHack.fp"
|
||||
Texture "retex" "graphics/BDScreen/BOYKISS9.png"
|
||||
{
|
||||
filter linear
|
||||
}
|
||||
Define "OVERSAMPLE"
|
||||
}
|
||||
Material Texture "graphics/BDScreen/BOYKISSR.png"
|
||||
{
|
||||
Shader "shaders/glsl/TexFilterHack.fp"
|
||||
Texture "retex" "graphics/BDScreen/BOYKISSR.png"
|
||||
{
|
||||
filter linear
|
||||
}
|
||||
nomipmap
|
||||
}
|
||||
|
|
|
|||
BIN
graphics/BDScreen/BDBorder.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
graphics/BDScreen/BDBubble0.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
graphics/BDScreen/BDBubble1.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
graphics/BDScreen/BDBubble2.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
graphics/BDScreen/BDBubble3.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
graphics/BDScreen/BDDemo.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
graphics/BDScreen/BDSaya.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1 KiB |
|
Before Width: | Height: | Size: 984 B |
|
Before Width: | Height: | Size: 1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 53 KiB |
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1177 \cu(jue 06 feb 2025 20:13:06 CET)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r1177 \cu(2025-02-06 20:13:06)\c-";
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1178 \cu(jue 06 feb 2025 20:13:35 CET)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r1178 \cu(2025-02-06 20:13:35)\c-";
|
||||
|
|
|
|||
|
|
@ -398,3 +398,20 @@ MiniWhiteFlash // "misc"
|
|||
#000000 #FFFFFF 0 50
|
||||
#FFFFFF #FFFFFF 51 255
|
||||
}
|
||||
|
||||
// stuff
|
||||
BDSayaRed
|
||||
{
|
||||
#000000 #000000 0 50
|
||||
#A08080 #FFC0C0 51 255
|
||||
}
|
||||
BDDemoGreen
|
||||
{
|
||||
#000000 #000000 0 50
|
||||
#80A080 #C0FFC0 51 255
|
||||
}
|
||||
BDRed
|
||||
{
|
||||
#000000 #000000 0 50
|
||||
#800000 #FF4040 51 255
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,9 +20,16 @@ Class SWWMBrutalHandler : StaticEventHandler
|
|||
{
|
||||
ui int timer;
|
||||
ui Font fnt;
|
||||
ui TextureID boydance[10], boykiss;
|
||||
ui int boyframe, boystate, boyloop1, boyloop2, boytimer, boyseq[12];
|
||||
ui TextureID eztex[7];
|
||||
ui bool ezstate[7];
|
||||
ui float ezslide[4];
|
||||
ui String eztext[5];
|
||||
ui BrokenLines ezlines[5];
|
||||
ui Vector2 eztextpos[5];
|
||||
ui double ezlinesw[5];
|
||||
ui int ezcolor[5];
|
||||
bool detected;
|
||||
ui int rss;
|
||||
|
||||
const BOYTICRATE = 5;
|
||||
|
||||
|
|
@ -66,137 +73,80 @@ Class SWWMBrutalHandler : StaticEventHandler
|
|||
timer = 0;
|
||||
return;
|
||||
}
|
||||
if ( timer == 70 )
|
||||
switch ( timer )
|
||||
{
|
||||
boykiss = TexMan.CheckForTexture("graphics/BDScreen/BOYKISSR.png");
|
||||
case 50:
|
||||
eztex[0] = TexMan.CheckForTexture("graphics/BDScreen/BDBorder.png");
|
||||
eztex[1] = TexMan.CheckForTexture("graphics/BDScreen/BDSaya.png");
|
||||
eztex[2] = TexMan.CheckForTexture("graphics/BDScreen/BDDemo.png");
|
||||
eztex[3] = TexMan.CheckForTexture("graphics/BDScreen/BDBubble0.png");
|
||||
eztex[4] = TexMan.CheckForTexture("graphics/BDScreen/BDBubble1.png");
|
||||
eztex[5] = TexMan.CheckForTexture("graphics/BDScreen/BDBubble2.png");
|
||||
eztex[6] = TexMan.CheckForTexture("graphics/BDScreen/BDBubble3.png");
|
||||
for ( int i=0; i<6; i++ ) ezstate[i] = false;
|
||||
for ( int i=0; i<4; i++ ) ezslide[i] = 2800.;
|
||||
eztext[0] = "Really\nnow\n!?";
|
||||
eztext[1] = "\c[BDRed]Brutal\nDoom\c-?\n\nThat's\ncringe";
|
||||
eztext[2] = "Only a\ncomplete\nfool\nwould try\nto load\n\c[BDRed]Brutal Doom\c-\nwith\nother game-\nplay mods,\nright?";
|
||||
eztext[3] = "Ha\nha\nha\nha";
|
||||
eztext[4] = "Ki\nhi\nhi\nhi";
|
||||
eztextpos[0] = (2520.,120.);
|
||||
eztextpos[1] = (1620.,1580.);
|
||||
eztextpos[2] = (80.,140.);
|
||||
eztextpos[3] = (100.,1660.);
|
||||
eztextpos[4] = (300.,1660.);
|
||||
ezcolor[0] = Font.FindFontColor("BDSayaRed");
|
||||
ezcolor[1] = Font.FindFontColor("BDSayaRed");
|
||||
ezcolor[2] = Font.FindFontColor("BDDemoGreen");
|
||||
ezcolor[3] = Font.FindFontColor("BDDemoGreen");
|
||||
ezcolor[4] = Font.FindFontColor("BDSayaRed");
|
||||
fnt = Font.GetFont("TewiFontOutline");
|
||||
for ( int i=0; i<5; i++ )
|
||||
{
|
||||
ezlines[i] = fnt.BreakLines(eztext[i],1000);
|
||||
ezlinesw[i] = 0.;
|
||||
for ( int j=0; j<ezlines[i].Count(); j++ )
|
||||
ezlinesw[i] = max(ezlinesw[i],ezlines[i].StringWidth(j));
|
||||
}
|
||||
S_StartSound("misc/spawn",CHAN_YABLEWIT,CHANF_UI|CHANF_NOPAUSE|CHANF_OVERLAP,1.,ATTN_NONE);
|
||||
S_StartSound("misc/spawn",CHAN_YABLEWIT,CHANF_UI|CHANF_NOPAUSE|CHANF_OVERLAP,1.,ATTN_NONE);
|
||||
S_ChangeMusic("",force:true);
|
||||
Console.PrintfEx(PRINT_HIGH|PRINT_NONOTIFY,
|
||||
"\cj⠀⠀⠀⠀⢀⡾⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡴⠛⣆⠀⠀\n"
|
||||
"\cj⠀⠀⠀⢠⡟⠀⠀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠞⠉⠀⠀⠸⣆⠀\c-\n"
|
||||
"\cj⠀⠀⢠⡟⠀⠀⠀⠀⠀⠈⢳⣄⠀⠀⠀⢠⡤⣤⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠞⠁⠀⠀⠀⠀⠀⢻⡀\c-\n"
|
||||
"\cj⠀⠀⣾⠀⠀⠀⠀⠀⠀⠀⠀⠙⢷⡀⠀⢸⡇⠀⠀⠉⠙⠳⢦⣄⠀⠀⠀⠀⣠⠞⠁⠀⠀⠀⠀⠀⠀⠀⠘⣇\c-\n"
|
||||
"\cj⠀⢰⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣦⡀⠻⣄⠀⠀⠀⠀⠀⠈⠻⣦⣀⡾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿\c-\n"
|
||||
"\cj⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣨⡷⠞⠛⠛⠀⠀⠀⠀⠀⠀⠈⠻⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿\c-\n"
|
||||
"\cj⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⢴⣯⣥⣤⣤⣤⣤⠴⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿\c-\n"
|
||||
"\cj⠀⠸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡇\c-\n"
|
||||
"\cj⠀⠀⢿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡾⠀\c-\n"
|
||||
"\cj⠀⠀⠈⢧⠀⠀⠀⢤⣤⡤⠤⢤⣤⣤⣤⣤⡄⠀⠀⠀⠀⠀⠀⣶⣶⣿⣿⣟⠛⠛⢿⡛⠀⠀⠀⠀⢀⡾⠁⠀\c-\n"
|
||||
"\cj⠀⠀⠀⠈⢷⡀⠀⠀⡿⠀⠀⢸⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⠀⠀⠘⡇⠀⠀⠀⣠⣟⣁⣀⠀\c-\n"
|
||||
"\cj⢻⡟⠓⠶⠶⠿⠀⢸⡇⠀⠀⠘⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⡏⠀⠀⠀⣿⠀⠀⠈⠉⠉⣩⡟⠀\c-\n"
|
||||
"\cj⠀⠻⣄⡀⠀⠀⠀⠘⣧⠀⠀⠀⢻⣿⣿⡟⠀⢀⣀⡀⠀⠀⠀⠈⠿⠿⠟⠁⠀⠀⠀⠏⠀⠀⠀⣀⡴⠋⠀⠀\c-\n"
|
||||
"\cj⠀⠀⠀⢨⡏⠠⠶⣿⣤⠶⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⢿⣷⠞⠀⠀⠀⠻⣦⠀⠀⠀\c-\n"
|
||||
"\cj⠀⠀⢠⡟⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠰⣤⣤⡴⠟⠶⠶⠶⠛⠀⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀⠀⠈⢷⡀⠀\c-\n"
|
||||
"\cj⠀⠀⠿⢤⡤⠴⠶⠶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⡴⠞⠛⠓⠒⠛⠛⠋⠁⠀\c-\n"
|
||||
"\cj⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⣶⠶⣤⣤⣤⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⣿⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\c-\n"
|
||||
"\cj⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\c-\n"
|
||||
"\cj⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\c-\n"
|
||||
"\cj⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠼⠷⢶⡶⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀\c-\n"
|
||||
"\cj⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡾⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀\c-\n"
|
||||
"\cj⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡆⠀⠀⠀⠀⠀⠀⠀⠀\c-\n"
|
||||
"\cj⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣇⠀⠀⠀⠀⠀⠀⠀⠀\c-\n"
|
||||
"\cj⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠀⠀⠀⠀⠀⠀⠀⠀\c-\n"
|
||||
"\cj⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⠀⠀⠀⠀⠀⠀⠀⠀\c-\n"
|
||||
"\cj⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀\c-\n"
|
||||
"\cjYou like playing \cgBrutal Doom\cj, don't you?\c-");
|
||||
case 60:
|
||||
ezstate[0] = true;
|
||||
break;
|
||||
case 80:
|
||||
ezstate[2] = true;
|
||||
break;
|
||||
case 120:
|
||||
ezstate[3] = true;
|
||||
break;
|
||||
case 180:
|
||||
ezstate[1] = true;
|
||||
break;
|
||||
case 200:
|
||||
ezstate[4] = true;
|
||||
break;
|
||||
case 280:
|
||||
ezstate[5] = true;
|
||||
ezstate[6] = true;
|
||||
break;
|
||||
case 400:
|
||||
ThrowAbortException("This manual abort is for your own safety");
|
||||
break;
|
||||
}
|
||||
else if ( timer == 140 )
|
||||
if ( ezstate[0] )
|
||||
{
|
||||
for ( int i=0; i<10; i++ )
|
||||
boydance[i] = TexMan.CheckForTexture(String.Format("graphics/BDScreen/BOYKISS%d.png",i));
|
||||
// map frames to states
|
||||
boyseq[0] = 0;
|
||||
boyseq[1] = 1;
|
||||
boyseq[2] = 2;
|
||||
boyseq[3] = 3;
|
||||
boyseq[4] = 4;
|
||||
boyseq[5] = 5;
|
||||
boyseq[6] = 3;
|
||||
boyseq[7] = 2;
|
||||
boyseq[8] = 6;
|
||||
boyseq[9] = 7;
|
||||
boyseq[10] = 8;
|
||||
boyseq[11] = 9;
|
||||
S_ChangeMusic("music/thepenis.it",force:true);
|
||||
ezslide[1] = ezslide[0];
|
||||
if ( ezslide[0] < double.epsilon ) ezslide[0] = 0.;
|
||||
else ezslide[0] *= .8;
|
||||
}
|
||||
if ( ezstate[1] )
|
||||
{
|
||||
ezslide[3] = ezslide[2];
|
||||
if ( ezslide[2] < double.epsilon ) ezslide[2] = 0.;
|
||||
else ezslide[2] *= .8;
|
||||
}
|
||||
else if ( timer == 2100 ) ThrowAbortException("This manual abort is for your own safety");
|
||||
timer++;
|
||||
if ( timer >= 105 )
|
||||
{
|
||||
boyframe = boyseq[boystate];
|
||||
boytimer++;
|
||||
if ( boytimer%BOYTICRATE ) return;
|
||||
// funni state machine
|
||||
switch ( boystate )
|
||||
{
|
||||
case 0: // up
|
||||
boystate = 1;
|
||||
break;
|
||||
case 1: // down
|
||||
if ( boyloop1 >= 2 )
|
||||
{
|
||||
boyloop1 = 0;
|
||||
boystate = 2;
|
||||
break;
|
||||
}
|
||||
boyloop1++;
|
||||
boystate = 0;
|
||||
break;
|
||||
case 2: // turn A
|
||||
boystate = 3;
|
||||
break;
|
||||
case 3: // turn B
|
||||
boystate = 4;
|
||||
break;
|
||||
case 4: // down
|
||||
boystate = 5;
|
||||
break;
|
||||
case 5: // up
|
||||
if ( boyloop1 >= 2 )
|
||||
{
|
||||
boyloop1 = 0;
|
||||
boystate = 6;
|
||||
break;
|
||||
}
|
||||
boyloop1++;
|
||||
boystate = 4;
|
||||
break;
|
||||
case 6: // turn B
|
||||
boystate = 7;
|
||||
break;
|
||||
case 7: // turn A
|
||||
if ( boyloop2 >= 2 )
|
||||
{
|
||||
boyloop2 = 0;
|
||||
boystate = 8;
|
||||
break;
|
||||
}
|
||||
boyloop2++;
|
||||
boystate = 0;
|
||||
break;
|
||||
case 8: // spin left
|
||||
boystate = 9;
|
||||
break;
|
||||
case 9: // spin back
|
||||
boystate = 10;
|
||||
break;
|
||||
case 10: // spin right
|
||||
boystate = 11;
|
||||
break;
|
||||
case 11: // spin front
|
||||
if ( boyloop1 >= 2 )
|
||||
{
|
||||
boyloop1 = 0;
|
||||
boystate = 0;
|
||||
break;
|
||||
}
|
||||
boyloop1++;
|
||||
boystate = 8;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override void WorldTick()
|
||||
|
|
@ -205,27 +155,69 @@ Class SWWMBrutalHandler : StaticEventHandler
|
|||
for ( int i=0; i<MAXPLAYERS; i++ ) if ( playeringame[i] ) players[i].cheats |= CF_TOTALLYFROZEN;
|
||||
}
|
||||
|
||||
private ui int GetUIRandom()
|
||||
{
|
||||
return (rss = (rss<<1)*35447+(rss/87));
|
||||
}
|
||||
|
||||
private ui double RandomShiver()
|
||||
{
|
||||
int sd = GetUIRandom();
|
||||
return ((abs(sd)%11)-5)*.1;
|
||||
}
|
||||
|
||||
private ui double RandomOffset()
|
||||
{
|
||||
int sd = GetUIRandom();
|
||||
return (abs(sd)&65535)/65535.;
|
||||
}
|
||||
|
||||
override void RenderOverlay( RenderEvent e )
|
||||
{
|
||||
if ( !detected ) return;
|
||||
Screen.Dim("White",clamp((timer+e.fractic)/70.,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
if ( timer < 70 ) return;
|
||||
String str = "You like playing \cgBrutal Doom\c-, don't you?";
|
||||
int boxh = fnt?((fnt.GetHeight()+16)*CleanYFac):0;
|
||||
double scl = (Screen.GetHeight()-boxh)/2048.;
|
||||
if ( boykiss.IsValid() ) Screen.DrawTexture(boykiss,false,Screen.GetWidth()/2,(Screen.GetHeight()-boxh)/2,DTA_CenterOffset,true,DTA_ScaleX,scl,DTA_ScaleY,scl);
|
||||
if ( fnt )
|
||||
Screen.Dim("Black",clamp((timer+e.fractic)/50.,0.,.5),0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||
if ( timer < 50 ) return;
|
||||
double hs = max(min(floor(Screen.GetWidth()/640.),floor(Screen.GetHeight()/360.)),1.)/6.;
|
||||
Vector2 pos = ((Screen.GetWidth()-(2800.*hs))/2.,(Screen.GetHeight()-(2100.*hs))/2.);
|
||||
if ( timer > 300 )
|
||||
{
|
||||
Screen.Dim("Black",.8,0,Screen.GetHeight()-boxh,Screen.GetWidth(),boxh);
|
||||
Screen.DrawText(fnt,Font.CR_WHITE,(Screen.GetWidth()-fnt.StringWidth(str)*CleanXFac)/2,Screen.GetHeight()-(boxh-8*CleanYFac),str,DTA_CleanNoMove,true);
|
||||
double fact = clamp(((timer+e.fractic)-300.)/100.,0.,1.);
|
||||
Screen.Dim("Red",fact,0,0,Screen.GetWidth(),Screen.GetHeight(),STYLE_Add);
|
||||
rss = MSTime()/10;
|
||||
pos.x += RandomShiver()*64.*hs*fact*fact;
|
||||
pos.y += RandomShiver()*64.*hs*fact*fact;
|
||||
}
|
||||
if ( timer < 140 ) return;
|
||||
if ( boydance[boyframe].IsValid() )
|
||||
Screen.DrawTexture(eztex[0],false,pos.x,pos.y,DTA_ScaleX,hs,DTA_ScaleY,hs);
|
||||
Screen.SetClipRect(int(pos.x),int(pos.y),int(2800.*hs),int(2100.*hs));
|
||||
Screen.Dim("White",1.,int(pos.x),int(pos.y),int(2800.*hs),int(2100.*hs));
|
||||
rss = MSTime()/40;
|
||||
for ( int i=0; i<6; i++ )
|
||||
{
|
||||
Screen.DrawTexture(boydance[boyframe],false,112*CleanXFac_1,192*CleanYFac_1,DTA_CleanNoMove_1,true);
|
||||
Screen.DrawTexture(boydance[boyframe],false,Screen.GetWidth()-112*CleanXFac_1,192*CleanYFac_1,DTA_CleanNoMove_1,true);
|
||||
Screen.DrawTexture(boydance[boyframe],false,112*CleanXFac_1,Screen.GetHeight()-(boxh+32*CleanYFac_1),DTA_CleanNoMove_1,true);
|
||||
Screen.DrawTexture(boydance[boyframe],false,Screen.GetWidth()-112*CleanXFac_1,Screen.GetHeight()-(boxh+32*CleanYFac_1),DTA_CleanNoMove_1,true);
|
||||
double ypos = RandomOffset()*2100.*hs;
|
||||
Screen.DrawThickLine(pos.x,pos.y+ypos,pos.x+2800.*hs,pos.y+ypos,8.*hs,"Black");
|
||||
}
|
||||
for ( int i=0; i<12; i++ )
|
||||
{
|
||||
double ypos = RandomOffset()*2100.*hs;
|
||||
Screen.DrawThickLine(pos.x,pos.y+ypos,pos.x+2800.*hs,pos.y+ypos,2.*hs,"Black");
|
||||
}
|
||||
if ( ezstate[1] )
|
||||
Screen.DrawTexture(eztex[2],false,pos.x+SWWMUtility.Lerp(ezslide[3],ezslide[2],e.fractic),pos.y,DTA_ScaleX,hs,DTA_ScaleY,hs);
|
||||
if ( ezstate[0] )
|
||||
Screen.DrawTexture(eztex[1],false,pos.x+SWWMUtility.Lerp(ezslide[1],ezslide[0],e.fractic),pos.y,DTA_ScaleX,hs,DTA_ScaleY,hs);
|
||||
for ( int i=0; i<5; i++ )
|
||||
{
|
||||
if ( !ezstate[2+i] ) continue;
|
||||
if ( i<4 ) Screen.DrawTexture(eztex[3+i],false,pos.x,pos.y,DTA_ScaleX,hs,DTA_ScaleY,hs);
|
||||
for ( int j=0; j<ezlines[i].Count(); j++ )
|
||||
{
|
||||
double xofs = (ezlinesw[i]-ezlines[i].StringWidth(j))*3.*hs;
|
||||
double yofs = (fnt.GetHeight()+2)*j*6.*hs;
|
||||
Screen.DrawText(fnt,ezcolor[i],pos.x+eztextpos[i].x*hs+xofs,pos.y+eztextpos[i].y*hs+yofs,ezlines[i].StringAt(j),DTA_ScaleX,hs*6.,DTA_ScaleY,hs*6.);
|
||||
}
|
||||
}
|
||||
Screen.ClearClipRect();
|
||||
if ( timer > 300 )
|
||||
Screen.Dim("Red",clamp(((timer+e.fractic)-350.)/50.,0.,1.),0,0,Screen.GetWidth(),Screen.GetHeight(),STYLE_Translucent);
|
||||
}
|
||||
}
|
||||
|
|
|
|||