diff --git a/README.md b/README.md index 6c74b88dc..9b7d35d21 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,8 @@ Additional features: - Akari Labs CuteEmotion™ Display: Equipped onto your visor to show a wide range of predefined facial expressions in order to convey simple emotions to others. - - Akari Labs LoudBoi™ Voicebox: Allows you to emit. Various voice type - options are available. + - Akari Labs LoudBoi™ Voicebox: Allows you to emit. Additional voice + options will be available through add-ons. Note: Since you're a robutt you pretty much can swim indefinitely and are also inmune to poison. diff --git a/credits.txt b/credits.txt new file mode 100644 index 000000000..23bae0d68 --- /dev/null +++ b/credits.txt @@ -0,0 +1,6 @@ +Most of the work here is original, but there are some notable exceptions: + - Default player voices are edited from the Fallout 4 Japanese dub. + - This mod uses libeye, by KeksDose. Big thanks. + - Title theme, "Traumatic State", by Teque (which a lot of people just know as "the AS-Golgotha music"). + - The anti-BD feature uses art by IOSYS, edited into the Doom palette. + - The crash handler uses a sound bit from Umineko and a short clip of the Curb Your Enthusiasm theme. \ No newline at end of file diff --git a/graphics/BDScreen.png b/graphics/BDScreen.png new file mode 100644 index 000000000..84fcf3656 Binary files /dev/null and b/graphics/BDScreen.png differ diff --git a/language.txt b/language.txt new file mode 100644 index 000000000..1abd64625 --- /dev/null +++ b/language.txt @@ -0,0 +1,3 @@ +[default] + +[es] diff --git a/maps/TITLEMAP.wad b/maps/TITLEMAP.wad new file mode 100644 index 000000000..d44cf107e Binary files /dev/null and b/maps/TITLEMAP.wad differ diff --git a/sndinfo.txt b/sndinfo.txt new file mode 100644 index 000000000..4ce729d5a --- /dev/null +++ b/sndinfo.txt @@ -0,0 +1,135 @@ +$pitchshiftrange 0 + +crash/glass glasscrk +crash/curb curb +brutal/ezmodo easymodo + +voice/default/death1 sounds/voice/default/death1.ogg +voice/default/death2 sounds/voice/default/death2.ogg +voice/default/death3 sounds/voice/default/death3.ogg +voice/default/death4 sounds/voice/default/death4.ogg +voice/default/death5 sounds/voice/default/death5.ogg +voice/default/fightstart1 sounds/voice/default/fightstart1.ogg +voice/default/fightstart2 sounds/voice/default/fightstart2.ogg +voice/default/fightstart3 sounds/voice/default/fightstart3.ogg +voice/default/fightstart4 sounds/voice/default/fightstart4.ogg +voice/default/fightstart5 sounds/voice/default/fightstart5.ogg +voice/default/fightstart6 sounds/voice/default/fightstart6.ogg +voice/default/fightstart7 sounds/voice/default/fightstart7.ogg +voice/default/fightstart8 sounds/voice/default/fightstart8.ogg +voice/default/fightstart9 sounds/voice/default/fightstart9.ogg +voice/default/fightstart10 sounds/voice/default/fightstart10.ogg +voice/default/fightstart11 sounds/voice/default/fightstart11.ogg +voice/default/fightstart12 sounds/voice/default/fightstart12.ogg +voice/default/fightstart13 sounds/voice/default/fightstart13.ogg +voice/default/fightstart14 sounds/voice/default/fightstart14.ogg +voice/default/fightstart15 sounds/voice/default/fightstart15.ogg +voice/default/fightstart16 sounds/voice/default/fightstart16.ogg +voice/default/fightstart17 sounds/voice/default/fightstart17.ogg +voice/default/fightstart18 sounds/voice/default/fightstart18.ogg +voice/default/fightstart19 sounds/voice/default/fightstart19.ogg +voice/default/fightstart20 sounds/voice/default/fightstart20.ogg +voice/default/fightstart21 sounds/voice/default/fightstart21.ogg +voice/default/findsecret1 sounds/voice/default/findsecret1.ogg +voice/default/findsecret2 sounds/voice/default/findsecret2.ogg +voice/default/findsecret3 sounds/voice/default/findsecret3.ogg +voice/default/findsecret4 sounds/voice/default/findsecret4.ogg +voice/default/findsecret5 sounds/voice/default/findsecret5.ogg +voice/default/findsecret6 sounds/voice/default/findsecret6.ogg +voice/default/findsecret7 sounds/voice/default/findsecret7.ogg +voice/default/findsecret8 sounds/voice/default/findsecret8.ogg +voice/default/findsecret9 sounds/voice/default/findsecret9.ogg +voice/default/findsecret10 sounds/voice/default/findsecret10.ogg +voice/default/findsecret11 sounds/voice/default/findsecret11.ogg +voice/default/findsecret12 sounds/voice/default/findsecret12.ogg +voice/default/getweapon1 sounds/voice/default/getweapon1.ogg +voice/default/getweapon2 sounds/voice/default/getweapon2.ogg +voice/default/getweapon3 sounds/voice/default/getweapon3.ogg +voice/default/getweapon4 sounds/voice/default/getweapon4.ogg +voice/default/getweapon5 sounds/voice/default/getweapon5.ogg +voice/default/getweapon6 sounds/voice/default/getweapon6.ogg +voice/default/getweapon7 sounds/voice/default/getweapon7.ogg +voice/default/getweapon8 sounds/voice/default/getweapon8.ogg +voice/default/getweapon9 sounds/voice/default/getweapon9.ogg +voice/default/getweapon10 sounds/voice/default/getweapon10.ogg +voice/default/getweapon11 sounds/voice/default/getweapon11.ogg +voice/default/getweapon12 sounds/voice/default/getweapon12.ogg +voice/default/getweapon13 sounds/voice/default/getweapon13.ogg +voice/default/grunt1 sounds/voice/default/grunt1.ogg +voice/default/grunt2 sounds/voice/default/grunt2.ogg +voice/default/grunt3 sounds/voice/default/grunt3.ogg +voice/default/grunt4 sounds/voice/default/grunt4.ogg +voice/default/grunt5 sounds/voice/default/grunt5.ogg +voice/default/grunt6 sounds/voice/default/grunt6.ogg +voice/default/hipain1 sounds/voice/default/hipain1.ogg +voice/default/hipain2 sounds/voice/default/hipain2.ogg +voice/default/hipain3 sounds/voice/default/hipain3.ogg +voice/default/hipain4 sounds/voice/default/hipain4.ogg +voice/default/hipain5 sounds/voice/default/hipain5.ogg +voice/default/locked1 sounds/voice/default/locked1.ogg +voice/default/locked2 sounds/voice/default/locked2.ogg +voice/default/locked3 sounds/voice/default/locked3.ogg +voice/default/locked4 sounds/voice/default/locked4.ogg +voice/default/lopain1 sounds/voice/default/lopain1.ogg +voice/default/lopain2 sounds/voice/default/lopain2.ogg +voice/default/lopain3 sounds/voice/default/lopain3.ogg +voice/default/lopain4 sounds/voice/default/lopain4.ogg +voice/default/lopain5 sounds/voice/default/lopain5.ogg +voice/default/mapstart1 sounds/voice/default/mapstart1.ogg +voice/default/mapstart2 sounds/voice/default/mapstart2.ogg +voice/default/mapstart3 sounds/voice/default/mapstart3.ogg +voice/default/mapstart4 sounds/voice/default/mapstart4.ogg +voice/default/mapstart5 sounds/voice/default/mapstart5.ogg +voice/default/mapstart6 sounds/voice/default/mapstart6.ogg +voice/default/mapstart7 sounds/voice/default/mapstart7.ogg +voice/default/mapstart8 sounds/voice/default/mapstart8.ogg +voice/default/mapstart9 sounds/voice/default/mapstart9.ogg +voice/default/mapstart10 sounds/voice/default/mapstart10.ogg +voice/default/mapstart11 sounds/voice/default/mapstart11.ogg +voice/default/mapstart12 sounds/voice/default/mapstart12.ogg +voice/default/mapstart13 sounds/voice/default/mapstart13.ogg +voice/default/mapstart14 sounds/voice/default/mapstart14.ogg +voice/default/pain1 sounds/voice/default/pain1.ogg +voice/default/pain2 sounds/voice/default/pain2.ogg +voice/default/pain3 sounds/voice/default/pain3.ogg +voice/default/pain4 sounds/voice/default/pain4.ogg +voice/default/pain5 sounds/voice/default/pain5.ogg +voice/default/pain6 sounds/voice/default/pain6.ogg +voice/default/puzzfail1 sounds/voice/default/puzzfail1.ogg +voice/default/puzzfail2 sounds/voice/default/puzzfail2.ogg +voice/default/puzzfail3 sounds/voice/default/puzzfail3.ogg +voice/default/puzzfail4 sounds/voice/default/puzzfail4.ogg +voice/default/puzzfail5 sounds/voice/default/puzzfail5.ogg +voice/default/puzzfail6 sounds/voice/default/puzzfail6.ogg +voice/default/puzzsucc1 sounds/voice/default/puzzsucc1.ogg +voice/default/puzzsucc2 sounds/voice/default/puzzsucc2.ogg +voice/default/puzzsucc3 sounds/voice/default/puzzsucc3.ogg +voice/default/puzzsucc4 sounds/voice/default/puzzsucc4.ogg +voice/default/puzzsucc5 sounds/voice/default/puzzsucc5.ogg +voice/default/scorekill1 sounds/voice/default/scorekill1.ogg +voice/default/scorekill2 sounds/voice/default/scorekill2.ogg +voice/default/scorekill3 sounds/voice/default/scorekill3.ogg +voice/default/scorekill4 sounds/voice/default/scorekill4.ogg +voice/default/scorekill5 sounds/voice/default/scorekill5.ogg +voice/default/scorekill6 sounds/voice/default/scorekill6.ogg +voice/default/scorekill7 sounds/voice/default/scorekill7.ogg +voice/default/scorekill8 sounds/voice/default/scorekill8.ogg +voice/default/scorekill9 sounds/voice/default/scorekill9.ogg +voice/default/scorekill10 sounds/voice/default/scorekill10.ogg +voice/default/scorekill11 sounds/voice/default/scorekill11.ogg +voice/default/scorekill12 sounds/voice/default/scorekill12.ogg +voice/default/scorekill13 sounds/voice/default/scorekill13.ogg +voice/default/scorekill14 sounds/voice/default/scorekill14.ogg +voice/default/scorekill15 sounds/voice/default/scorekill15.ogg +voice/default/scorekill16 sounds/voice/default/scorekill16.ogg +voice/default/scorekill17 sounds/voice/default/scorekill17.ogg +voice/default/scorekill18 sounds/voice/default/scorekill18.ogg +voice/default/scorekill19 sounds/voice/default/scorekill19.ogg +voice/default/scorekill20 sounds/voice/default/scorekill20.ogg +voice/default/scorekill21 sounds/voice/default/scorekill21.ogg +voice/default/scorekill22 sounds/voice/default/scorekill22.ogg +voice/default/scorekill23 sounds/voice/default/scorekill23.ogg +voice/default/scorekill24 sounds/voice/default/scorekill24.ogg +voice/default/scorekill25 sounds/voice/default/scorekill25.ogg +voice/default/scorekill26 sounds/voice/default/scorekill26.ogg +voice/default/scorekill27 sounds/voice/default/scorekill27.ogg diff --git a/sounds/CURB.ogg b/sounds/CURB.ogg new file mode 100644 index 000000000..5375c5952 Binary files /dev/null and b/sounds/CURB.ogg differ diff --git a/sounds/EASYMODO.ogg b/sounds/EASYMODO.ogg new file mode 100644 index 000000000..dac9c4f3e Binary files /dev/null and b/sounds/EASYMODO.ogg differ diff --git a/sounds/GLASSCRK.ogg b/sounds/GLASSCRK.ogg new file mode 100644 index 000000000..71b686696 Binary files /dev/null and b/sounds/GLASSCRK.ogg differ diff --git a/sounds/voice/default/death1.ogg b/sounds/voice/default/death1.ogg new file mode 100644 index 000000000..bc213cd59 Binary files /dev/null and b/sounds/voice/default/death1.ogg differ diff --git a/sounds/voice/default/death2.ogg b/sounds/voice/default/death2.ogg new file mode 100644 index 000000000..b212e9a79 Binary files /dev/null and b/sounds/voice/default/death2.ogg differ diff --git a/sounds/voice/default/death3.ogg b/sounds/voice/default/death3.ogg new file mode 100644 index 000000000..0e852002f Binary files /dev/null and b/sounds/voice/default/death3.ogg differ diff --git a/sounds/voice/default/death4.ogg b/sounds/voice/default/death4.ogg new file mode 100644 index 000000000..1c1a4f872 Binary files /dev/null and b/sounds/voice/default/death4.ogg differ diff --git a/sounds/voice/default/death5.ogg b/sounds/voice/default/death5.ogg new file mode 100644 index 000000000..1e1a25b45 Binary files /dev/null and b/sounds/voice/default/death5.ogg differ diff --git a/sounds/voice/default/fightstart1.ogg b/sounds/voice/default/fightstart1.ogg new file mode 100644 index 000000000..22265aedf Binary files /dev/null and b/sounds/voice/default/fightstart1.ogg differ diff --git a/sounds/voice/default/fightstart10.ogg b/sounds/voice/default/fightstart10.ogg new file mode 100644 index 000000000..74e0ca89a Binary files /dev/null and b/sounds/voice/default/fightstart10.ogg differ diff --git a/sounds/voice/default/fightstart11.ogg b/sounds/voice/default/fightstart11.ogg new file mode 100644 index 000000000..1ea62c223 Binary files /dev/null and b/sounds/voice/default/fightstart11.ogg differ diff --git a/sounds/voice/default/fightstart12.ogg b/sounds/voice/default/fightstart12.ogg new file mode 100644 index 000000000..ad95c08ff Binary files /dev/null and b/sounds/voice/default/fightstart12.ogg differ diff --git a/sounds/voice/default/fightstart13.ogg b/sounds/voice/default/fightstart13.ogg new file mode 100644 index 000000000..60ef457f4 Binary files /dev/null and b/sounds/voice/default/fightstart13.ogg differ diff --git a/sounds/voice/default/fightstart14.ogg b/sounds/voice/default/fightstart14.ogg new file mode 100644 index 000000000..4ff678500 Binary files /dev/null and b/sounds/voice/default/fightstart14.ogg differ diff --git a/sounds/voice/default/fightstart15.ogg b/sounds/voice/default/fightstart15.ogg new file mode 100644 index 000000000..11a695227 Binary files /dev/null and b/sounds/voice/default/fightstart15.ogg differ diff --git a/sounds/voice/default/fightstart16.ogg b/sounds/voice/default/fightstart16.ogg new file mode 100644 index 000000000..eb8a8e369 Binary files /dev/null and b/sounds/voice/default/fightstart16.ogg differ diff --git a/sounds/voice/default/fightstart17.ogg b/sounds/voice/default/fightstart17.ogg new file mode 100644 index 000000000..48545d863 Binary files /dev/null and b/sounds/voice/default/fightstart17.ogg differ diff --git a/sounds/voice/default/fightstart18.ogg b/sounds/voice/default/fightstart18.ogg new file mode 100644 index 000000000..d5e653ef4 Binary files /dev/null and b/sounds/voice/default/fightstart18.ogg differ diff --git a/sounds/voice/default/fightstart19.ogg b/sounds/voice/default/fightstart19.ogg new file mode 100644 index 000000000..e25b988bd Binary files /dev/null and b/sounds/voice/default/fightstart19.ogg differ diff --git a/sounds/voice/default/fightstart2.ogg b/sounds/voice/default/fightstart2.ogg new file mode 100644 index 000000000..7c7e5dc3f Binary files /dev/null and b/sounds/voice/default/fightstart2.ogg differ diff --git a/sounds/voice/default/fightstart20.ogg b/sounds/voice/default/fightstart20.ogg new file mode 100644 index 000000000..ba0ec0b34 Binary files /dev/null and b/sounds/voice/default/fightstart20.ogg differ diff --git a/sounds/voice/default/fightstart21.ogg b/sounds/voice/default/fightstart21.ogg new file mode 100644 index 000000000..138f1645d Binary files /dev/null and b/sounds/voice/default/fightstart21.ogg differ diff --git a/sounds/voice/default/fightstart3.ogg b/sounds/voice/default/fightstart3.ogg new file mode 100644 index 000000000..7aa1e0303 Binary files /dev/null and b/sounds/voice/default/fightstart3.ogg differ diff --git a/sounds/voice/default/fightstart4.ogg b/sounds/voice/default/fightstart4.ogg new file mode 100644 index 000000000..57e1472d7 Binary files /dev/null and b/sounds/voice/default/fightstart4.ogg differ diff --git a/sounds/voice/default/fightstart5.ogg b/sounds/voice/default/fightstart5.ogg new file mode 100644 index 000000000..49c960bf2 Binary files /dev/null and b/sounds/voice/default/fightstart5.ogg differ diff --git a/sounds/voice/default/fightstart6.ogg b/sounds/voice/default/fightstart6.ogg new file mode 100644 index 000000000..9cdaacd8e Binary files /dev/null and b/sounds/voice/default/fightstart6.ogg differ diff --git a/sounds/voice/default/fightstart7.ogg b/sounds/voice/default/fightstart7.ogg new file mode 100644 index 000000000..d03194503 Binary files /dev/null and b/sounds/voice/default/fightstart7.ogg differ diff --git a/sounds/voice/default/fightstart8.ogg b/sounds/voice/default/fightstart8.ogg new file mode 100644 index 000000000..28cce0275 Binary files /dev/null and b/sounds/voice/default/fightstart8.ogg differ diff --git a/sounds/voice/default/fightstart9.ogg b/sounds/voice/default/fightstart9.ogg new file mode 100644 index 000000000..485226d3e Binary files /dev/null and b/sounds/voice/default/fightstart9.ogg differ diff --git a/sounds/voice/default/findsecret1.ogg b/sounds/voice/default/findsecret1.ogg new file mode 100644 index 000000000..614482ce0 Binary files /dev/null and b/sounds/voice/default/findsecret1.ogg differ diff --git a/sounds/voice/default/findsecret10.ogg b/sounds/voice/default/findsecret10.ogg new file mode 100644 index 000000000..c66698303 Binary files /dev/null and b/sounds/voice/default/findsecret10.ogg differ diff --git a/sounds/voice/default/findsecret11.ogg b/sounds/voice/default/findsecret11.ogg new file mode 100644 index 000000000..e490535d8 Binary files /dev/null and b/sounds/voice/default/findsecret11.ogg differ diff --git a/sounds/voice/default/findsecret12.ogg b/sounds/voice/default/findsecret12.ogg new file mode 100644 index 000000000..286b9fb08 Binary files /dev/null and b/sounds/voice/default/findsecret12.ogg differ diff --git a/sounds/voice/default/findsecret2.ogg b/sounds/voice/default/findsecret2.ogg new file mode 100644 index 000000000..0587666ea Binary files /dev/null and b/sounds/voice/default/findsecret2.ogg differ diff --git a/sounds/voice/default/findsecret3.ogg b/sounds/voice/default/findsecret3.ogg new file mode 100644 index 000000000..96591964a Binary files /dev/null and b/sounds/voice/default/findsecret3.ogg differ diff --git a/sounds/voice/default/findsecret4.ogg b/sounds/voice/default/findsecret4.ogg new file mode 100644 index 000000000..b53a05b45 Binary files /dev/null and b/sounds/voice/default/findsecret4.ogg differ diff --git a/sounds/voice/default/findsecret5.ogg b/sounds/voice/default/findsecret5.ogg new file mode 100644 index 000000000..7bc1d38da Binary files /dev/null and b/sounds/voice/default/findsecret5.ogg differ diff --git a/sounds/voice/default/findsecret6.ogg b/sounds/voice/default/findsecret6.ogg new file mode 100644 index 000000000..706de23b0 Binary files /dev/null and b/sounds/voice/default/findsecret6.ogg differ diff --git a/sounds/voice/default/findsecret7.ogg b/sounds/voice/default/findsecret7.ogg new file mode 100644 index 000000000..025a7a3a2 Binary files /dev/null and b/sounds/voice/default/findsecret7.ogg differ diff --git a/sounds/voice/default/findsecret8.ogg b/sounds/voice/default/findsecret8.ogg new file mode 100644 index 000000000..d95d36ad2 Binary files /dev/null and b/sounds/voice/default/findsecret8.ogg differ diff --git a/sounds/voice/default/findsecret9.ogg b/sounds/voice/default/findsecret9.ogg new file mode 100644 index 000000000..8e955cbb0 Binary files /dev/null and b/sounds/voice/default/findsecret9.ogg differ diff --git a/sounds/voice/default/getweapon1.ogg b/sounds/voice/default/getweapon1.ogg new file mode 100644 index 000000000..3931fed13 Binary files /dev/null and b/sounds/voice/default/getweapon1.ogg differ diff --git a/sounds/voice/default/getweapon10.ogg b/sounds/voice/default/getweapon10.ogg new file mode 100644 index 000000000..52850477c Binary files /dev/null and b/sounds/voice/default/getweapon10.ogg differ diff --git a/sounds/voice/default/getweapon11.ogg b/sounds/voice/default/getweapon11.ogg new file mode 100644 index 000000000..20082f64b Binary files /dev/null and b/sounds/voice/default/getweapon11.ogg differ diff --git a/sounds/voice/default/getweapon12.ogg b/sounds/voice/default/getweapon12.ogg new file mode 100644 index 000000000..6a10f122b Binary files /dev/null and b/sounds/voice/default/getweapon12.ogg differ diff --git a/sounds/voice/default/getweapon13.ogg b/sounds/voice/default/getweapon13.ogg new file mode 100644 index 000000000..0f2247639 Binary files /dev/null and b/sounds/voice/default/getweapon13.ogg differ diff --git a/sounds/voice/default/getweapon2.ogg b/sounds/voice/default/getweapon2.ogg new file mode 100644 index 000000000..d502c5704 Binary files /dev/null and b/sounds/voice/default/getweapon2.ogg differ diff --git a/sounds/voice/default/getweapon3.ogg b/sounds/voice/default/getweapon3.ogg new file mode 100644 index 000000000..74fd36013 Binary files /dev/null and b/sounds/voice/default/getweapon3.ogg differ diff --git a/sounds/voice/default/getweapon4.ogg b/sounds/voice/default/getweapon4.ogg new file mode 100644 index 000000000..b9da9d1b4 Binary files /dev/null and b/sounds/voice/default/getweapon4.ogg differ diff --git a/sounds/voice/default/getweapon5.ogg b/sounds/voice/default/getweapon5.ogg new file mode 100644 index 000000000..b02688e29 Binary files /dev/null and b/sounds/voice/default/getweapon5.ogg differ diff --git a/sounds/voice/default/getweapon6.ogg b/sounds/voice/default/getweapon6.ogg new file mode 100644 index 000000000..f37a80c41 Binary files /dev/null and b/sounds/voice/default/getweapon6.ogg differ diff --git a/sounds/voice/default/getweapon7.ogg b/sounds/voice/default/getweapon7.ogg new file mode 100644 index 000000000..377a07e88 Binary files /dev/null and b/sounds/voice/default/getweapon7.ogg differ diff --git a/sounds/voice/default/getweapon8.ogg b/sounds/voice/default/getweapon8.ogg new file mode 100644 index 000000000..877d6408e Binary files /dev/null and b/sounds/voice/default/getweapon8.ogg differ diff --git a/sounds/voice/default/getweapon9.ogg b/sounds/voice/default/getweapon9.ogg new file mode 100644 index 000000000..216ec56d7 Binary files /dev/null and b/sounds/voice/default/getweapon9.ogg differ diff --git a/sounds/voice/default/grunt1.ogg b/sounds/voice/default/grunt1.ogg new file mode 100644 index 000000000..bd3d818df Binary files /dev/null and b/sounds/voice/default/grunt1.ogg differ diff --git a/sounds/voice/default/grunt2.ogg b/sounds/voice/default/grunt2.ogg new file mode 100644 index 000000000..2c9412e36 Binary files /dev/null and b/sounds/voice/default/grunt2.ogg differ diff --git a/sounds/voice/default/grunt3.ogg b/sounds/voice/default/grunt3.ogg new file mode 100644 index 000000000..5e80c06af Binary files /dev/null and b/sounds/voice/default/grunt3.ogg differ diff --git a/sounds/voice/default/grunt4.ogg b/sounds/voice/default/grunt4.ogg new file mode 100644 index 000000000..03de92028 Binary files /dev/null and b/sounds/voice/default/grunt4.ogg differ diff --git a/sounds/voice/default/grunt5.ogg b/sounds/voice/default/grunt5.ogg new file mode 100644 index 000000000..a6d53a1e9 Binary files /dev/null and b/sounds/voice/default/grunt5.ogg differ diff --git a/sounds/voice/default/grunt6.ogg b/sounds/voice/default/grunt6.ogg new file mode 100644 index 000000000..06503e5d2 Binary files /dev/null and b/sounds/voice/default/grunt6.ogg differ diff --git a/sounds/voice/default/hipain1.ogg b/sounds/voice/default/hipain1.ogg new file mode 100644 index 000000000..8488011d7 Binary files /dev/null and b/sounds/voice/default/hipain1.ogg differ diff --git a/sounds/voice/default/hipain2.ogg b/sounds/voice/default/hipain2.ogg new file mode 100644 index 000000000..1acdeef91 Binary files /dev/null and b/sounds/voice/default/hipain2.ogg differ diff --git a/sounds/voice/default/hipain3.ogg b/sounds/voice/default/hipain3.ogg new file mode 100644 index 000000000..986ded96d Binary files /dev/null and b/sounds/voice/default/hipain3.ogg differ diff --git a/sounds/voice/default/hipain4.ogg b/sounds/voice/default/hipain4.ogg new file mode 100644 index 000000000..f0f86f45e Binary files /dev/null and b/sounds/voice/default/hipain4.ogg differ diff --git a/sounds/voice/default/hipain5.ogg b/sounds/voice/default/hipain5.ogg new file mode 100644 index 000000000..89d165c08 Binary files /dev/null and b/sounds/voice/default/hipain5.ogg differ diff --git a/sounds/voice/default/locked1.ogg b/sounds/voice/default/locked1.ogg new file mode 100644 index 000000000..1c7238ded Binary files /dev/null and b/sounds/voice/default/locked1.ogg differ diff --git a/sounds/voice/default/locked2.ogg b/sounds/voice/default/locked2.ogg new file mode 100644 index 000000000..aa9243b31 Binary files /dev/null and b/sounds/voice/default/locked2.ogg differ diff --git a/sounds/voice/default/locked3.ogg b/sounds/voice/default/locked3.ogg new file mode 100644 index 000000000..5a200d1cb Binary files /dev/null and b/sounds/voice/default/locked3.ogg differ diff --git a/sounds/voice/default/locked4.ogg b/sounds/voice/default/locked4.ogg new file mode 100644 index 000000000..8befa73e3 Binary files /dev/null and b/sounds/voice/default/locked4.ogg differ diff --git a/sounds/voice/default/lopain1.ogg b/sounds/voice/default/lopain1.ogg new file mode 100644 index 000000000..2387fef3e Binary files /dev/null and b/sounds/voice/default/lopain1.ogg differ diff --git a/sounds/voice/default/lopain2.ogg b/sounds/voice/default/lopain2.ogg new file mode 100644 index 000000000..5c4cd0473 Binary files /dev/null and b/sounds/voice/default/lopain2.ogg differ diff --git a/sounds/voice/default/lopain3.ogg b/sounds/voice/default/lopain3.ogg new file mode 100644 index 000000000..060ed5466 Binary files /dev/null and b/sounds/voice/default/lopain3.ogg differ diff --git a/sounds/voice/default/lopain4.ogg b/sounds/voice/default/lopain4.ogg new file mode 100644 index 000000000..fdeb76303 Binary files /dev/null and b/sounds/voice/default/lopain4.ogg differ diff --git a/sounds/voice/default/lopain5.ogg b/sounds/voice/default/lopain5.ogg new file mode 100644 index 000000000..46e7b5c00 Binary files /dev/null and b/sounds/voice/default/lopain5.ogg differ diff --git a/sounds/voice/default/mapstart1.ogg b/sounds/voice/default/mapstart1.ogg new file mode 100644 index 000000000..4dde1ce7e Binary files /dev/null and b/sounds/voice/default/mapstart1.ogg differ diff --git a/sounds/voice/default/mapstart10.ogg b/sounds/voice/default/mapstart10.ogg new file mode 100644 index 000000000..135457212 Binary files /dev/null and b/sounds/voice/default/mapstart10.ogg differ diff --git a/sounds/voice/default/mapstart11.ogg b/sounds/voice/default/mapstart11.ogg new file mode 100644 index 000000000..c26d54f31 Binary files /dev/null and b/sounds/voice/default/mapstart11.ogg differ diff --git a/sounds/voice/default/mapstart12.ogg b/sounds/voice/default/mapstart12.ogg new file mode 100644 index 000000000..c2e626e7c Binary files /dev/null and b/sounds/voice/default/mapstart12.ogg differ diff --git a/sounds/voice/default/mapstart13.ogg b/sounds/voice/default/mapstart13.ogg new file mode 100644 index 000000000..fe327d7d9 Binary files /dev/null and b/sounds/voice/default/mapstart13.ogg differ diff --git a/sounds/voice/default/mapstart14.ogg b/sounds/voice/default/mapstart14.ogg new file mode 100644 index 000000000..2f083ec3d Binary files /dev/null and b/sounds/voice/default/mapstart14.ogg differ diff --git a/sounds/voice/default/mapstart2.ogg b/sounds/voice/default/mapstart2.ogg new file mode 100644 index 000000000..355bbe5f2 Binary files /dev/null and b/sounds/voice/default/mapstart2.ogg differ diff --git a/sounds/voice/default/mapstart3.ogg b/sounds/voice/default/mapstart3.ogg new file mode 100644 index 000000000..301744783 Binary files /dev/null and b/sounds/voice/default/mapstart3.ogg differ diff --git a/sounds/voice/default/mapstart4.ogg b/sounds/voice/default/mapstart4.ogg new file mode 100644 index 000000000..0935c5279 Binary files /dev/null and b/sounds/voice/default/mapstart4.ogg differ diff --git a/sounds/voice/default/mapstart5.ogg b/sounds/voice/default/mapstart5.ogg new file mode 100644 index 000000000..a0e657081 Binary files /dev/null and b/sounds/voice/default/mapstart5.ogg differ diff --git a/sounds/voice/default/mapstart6.ogg b/sounds/voice/default/mapstart6.ogg new file mode 100644 index 000000000..d72c31df6 Binary files /dev/null and b/sounds/voice/default/mapstart6.ogg differ diff --git a/sounds/voice/default/mapstart7.ogg b/sounds/voice/default/mapstart7.ogg new file mode 100644 index 000000000..bb522e8f4 Binary files /dev/null and b/sounds/voice/default/mapstart7.ogg differ diff --git a/sounds/voice/default/mapstart8.ogg b/sounds/voice/default/mapstart8.ogg new file mode 100644 index 000000000..a4b2dc051 Binary files /dev/null and b/sounds/voice/default/mapstart8.ogg differ diff --git a/sounds/voice/default/mapstart9.ogg b/sounds/voice/default/mapstart9.ogg new file mode 100644 index 000000000..f7e5491b0 Binary files /dev/null and b/sounds/voice/default/mapstart9.ogg differ diff --git a/sounds/voice/default/pain1.ogg b/sounds/voice/default/pain1.ogg new file mode 100644 index 000000000..e7cc6f7da Binary files /dev/null and b/sounds/voice/default/pain1.ogg differ diff --git a/sounds/voice/default/pain2.ogg b/sounds/voice/default/pain2.ogg new file mode 100644 index 000000000..d5fcfa9b6 Binary files /dev/null and b/sounds/voice/default/pain2.ogg differ diff --git a/sounds/voice/default/pain3.ogg b/sounds/voice/default/pain3.ogg new file mode 100644 index 000000000..6dfc9a717 Binary files /dev/null and b/sounds/voice/default/pain3.ogg differ diff --git a/sounds/voice/default/pain4.ogg b/sounds/voice/default/pain4.ogg new file mode 100644 index 000000000..cb243b07a Binary files /dev/null and b/sounds/voice/default/pain4.ogg differ diff --git a/sounds/voice/default/pain5.ogg b/sounds/voice/default/pain5.ogg new file mode 100644 index 000000000..2173828ae Binary files /dev/null and b/sounds/voice/default/pain5.ogg differ diff --git a/sounds/voice/default/pain6.ogg b/sounds/voice/default/pain6.ogg new file mode 100644 index 000000000..554703a52 Binary files /dev/null and b/sounds/voice/default/pain6.ogg differ diff --git a/sounds/voice/default/puzzfail1.ogg b/sounds/voice/default/puzzfail1.ogg new file mode 100644 index 000000000..1098ef4a7 Binary files /dev/null and b/sounds/voice/default/puzzfail1.ogg differ diff --git a/sounds/voice/default/puzzfail2.ogg b/sounds/voice/default/puzzfail2.ogg new file mode 100644 index 000000000..e92cffd33 Binary files /dev/null and b/sounds/voice/default/puzzfail2.ogg differ diff --git a/sounds/voice/default/puzzfail3.ogg b/sounds/voice/default/puzzfail3.ogg new file mode 100644 index 000000000..a2c08730c Binary files /dev/null and b/sounds/voice/default/puzzfail3.ogg differ diff --git a/sounds/voice/default/puzzfail4.ogg b/sounds/voice/default/puzzfail4.ogg new file mode 100644 index 000000000..af4f404b6 Binary files /dev/null and b/sounds/voice/default/puzzfail4.ogg differ diff --git a/sounds/voice/default/puzzfail5.ogg b/sounds/voice/default/puzzfail5.ogg new file mode 100644 index 000000000..d9a7112db Binary files /dev/null and b/sounds/voice/default/puzzfail5.ogg differ diff --git a/sounds/voice/default/puzzfail6.ogg b/sounds/voice/default/puzzfail6.ogg new file mode 100644 index 000000000..b2c61fab0 Binary files /dev/null and b/sounds/voice/default/puzzfail6.ogg differ diff --git a/sounds/voice/default/puzzsucc1.ogg b/sounds/voice/default/puzzsucc1.ogg new file mode 100644 index 000000000..13f7c7362 Binary files /dev/null and b/sounds/voice/default/puzzsucc1.ogg differ diff --git a/sounds/voice/default/puzzsucc2.ogg b/sounds/voice/default/puzzsucc2.ogg new file mode 100644 index 000000000..44463436c Binary files /dev/null and b/sounds/voice/default/puzzsucc2.ogg differ diff --git a/sounds/voice/default/puzzsucc3.ogg b/sounds/voice/default/puzzsucc3.ogg new file mode 100644 index 000000000..225c7e8fd Binary files /dev/null and b/sounds/voice/default/puzzsucc3.ogg differ diff --git a/sounds/voice/default/puzzsucc4.ogg b/sounds/voice/default/puzzsucc4.ogg new file mode 100644 index 000000000..690f90520 Binary files /dev/null and b/sounds/voice/default/puzzsucc4.ogg differ diff --git a/sounds/voice/default/puzzsucc5.ogg b/sounds/voice/default/puzzsucc5.ogg new file mode 100644 index 000000000..0ff13e13e Binary files /dev/null and b/sounds/voice/default/puzzsucc5.ogg differ diff --git a/sounds/voice/default/scorekill1.ogg b/sounds/voice/default/scorekill1.ogg new file mode 100644 index 000000000..7264844ba Binary files /dev/null and b/sounds/voice/default/scorekill1.ogg differ diff --git a/sounds/voice/default/scorekill10.ogg b/sounds/voice/default/scorekill10.ogg new file mode 100644 index 000000000..54aa5b681 Binary files /dev/null and b/sounds/voice/default/scorekill10.ogg differ diff --git a/sounds/voice/default/scorekill11.ogg b/sounds/voice/default/scorekill11.ogg new file mode 100644 index 000000000..b4a7b13fc Binary files /dev/null and b/sounds/voice/default/scorekill11.ogg differ diff --git a/sounds/voice/default/scorekill12.ogg b/sounds/voice/default/scorekill12.ogg new file mode 100644 index 000000000..8c20850cb Binary files /dev/null and b/sounds/voice/default/scorekill12.ogg differ diff --git a/sounds/voice/default/scorekill13.ogg b/sounds/voice/default/scorekill13.ogg new file mode 100644 index 000000000..4827f4f66 Binary files /dev/null and b/sounds/voice/default/scorekill13.ogg differ diff --git a/sounds/voice/default/scorekill14.ogg b/sounds/voice/default/scorekill14.ogg new file mode 100644 index 000000000..97a1c8046 Binary files /dev/null and b/sounds/voice/default/scorekill14.ogg differ diff --git a/sounds/voice/default/scorekill15.ogg b/sounds/voice/default/scorekill15.ogg new file mode 100644 index 000000000..458c4a8a7 Binary files /dev/null and b/sounds/voice/default/scorekill15.ogg differ diff --git a/sounds/voice/default/scorekill16.ogg b/sounds/voice/default/scorekill16.ogg new file mode 100644 index 000000000..cc6b41e71 Binary files /dev/null and b/sounds/voice/default/scorekill16.ogg differ diff --git a/sounds/voice/default/scorekill17.ogg b/sounds/voice/default/scorekill17.ogg new file mode 100644 index 000000000..e0409c263 Binary files /dev/null and b/sounds/voice/default/scorekill17.ogg differ diff --git a/sounds/voice/default/scorekill18.ogg b/sounds/voice/default/scorekill18.ogg new file mode 100644 index 000000000..86f9b11a0 Binary files /dev/null and b/sounds/voice/default/scorekill18.ogg differ diff --git a/sounds/voice/default/scorekill19.ogg b/sounds/voice/default/scorekill19.ogg new file mode 100644 index 000000000..f92361c89 Binary files /dev/null and b/sounds/voice/default/scorekill19.ogg differ diff --git a/sounds/voice/default/scorekill2.ogg b/sounds/voice/default/scorekill2.ogg new file mode 100644 index 000000000..d8ee77ca2 Binary files /dev/null and b/sounds/voice/default/scorekill2.ogg differ diff --git a/sounds/voice/default/scorekill20.ogg b/sounds/voice/default/scorekill20.ogg new file mode 100644 index 000000000..6af649e58 Binary files /dev/null and b/sounds/voice/default/scorekill20.ogg differ diff --git a/sounds/voice/default/scorekill21.ogg b/sounds/voice/default/scorekill21.ogg new file mode 100644 index 000000000..88f3aeb60 Binary files /dev/null and b/sounds/voice/default/scorekill21.ogg differ diff --git a/sounds/voice/default/scorekill22.ogg b/sounds/voice/default/scorekill22.ogg new file mode 100644 index 000000000..62ac7740d Binary files /dev/null and b/sounds/voice/default/scorekill22.ogg differ diff --git a/sounds/voice/default/scorekill23.ogg b/sounds/voice/default/scorekill23.ogg new file mode 100644 index 000000000..2c19ae964 Binary files /dev/null and b/sounds/voice/default/scorekill23.ogg differ diff --git a/sounds/voice/default/scorekill24.ogg b/sounds/voice/default/scorekill24.ogg new file mode 100644 index 000000000..0c7ebd7ec Binary files /dev/null and b/sounds/voice/default/scorekill24.ogg differ diff --git a/sounds/voice/default/scorekill25.ogg b/sounds/voice/default/scorekill25.ogg new file mode 100644 index 000000000..719996033 Binary files /dev/null and b/sounds/voice/default/scorekill25.ogg differ diff --git a/sounds/voice/default/scorekill26.ogg b/sounds/voice/default/scorekill26.ogg new file mode 100644 index 000000000..e37b10a7d Binary files /dev/null and b/sounds/voice/default/scorekill26.ogg differ diff --git a/sounds/voice/default/scorekill27.ogg b/sounds/voice/default/scorekill27.ogg new file mode 100644 index 000000000..5b8c93c64 Binary files /dev/null and b/sounds/voice/default/scorekill27.ogg differ diff --git a/sounds/voice/default/scorekill3.ogg b/sounds/voice/default/scorekill3.ogg new file mode 100644 index 000000000..3b53933d5 Binary files /dev/null and b/sounds/voice/default/scorekill3.ogg differ diff --git a/sounds/voice/default/scorekill4.ogg b/sounds/voice/default/scorekill4.ogg new file mode 100644 index 000000000..5f12a3633 Binary files /dev/null and b/sounds/voice/default/scorekill4.ogg differ diff --git a/sounds/voice/default/scorekill5.ogg b/sounds/voice/default/scorekill5.ogg new file mode 100644 index 000000000..65262caee Binary files /dev/null and b/sounds/voice/default/scorekill5.ogg differ diff --git a/sounds/voice/default/scorekill6.ogg b/sounds/voice/default/scorekill6.ogg new file mode 100644 index 000000000..cdaa12c96 Binary files /dev/null and b/sounds/voice/default/scorekill6.ogg differ diff --git a/sounds/voice/default/scorekill7.ogg b/sounds/voice/default/scorekill7.ogg new file mode 100644 index 000000000..c8ff997bc Binary files /dev/null and b/sounds/voice/default/scorekill7.ogg differ diff --git a/sounds/voice/default/scorekill8.ogg b/sounds/voice/default/scorekill8.ogg new file mode 100644 index 000000000..025c780ce Binary files /dev/null and b/sounds/voice/default/scorekill8.ogg differ diff --git a/sounds/voice/default/scorekill9.ogg b/sounds/voice/default/scorekill9.ogg new file mode 100644 index 000000000..5e18d39e2 Binary files /dev/null and b/sounds/voice/default/scorekill9.ogg differ diff --git a/sounds/voice/default/subs.txt b/sounds/voice/default/subs.txt new file mode 100644 index 000000000..6e6e6dc3b --- /dev/null +++ b/sounds/voice/default/subs.txt @@ -0,0 +1,104 @@ +Taken from the in-game english strings, may not match up. + +getweapon1 "Not bad... Not bad at all..." +getweapon2 "Good find..." +getweapon3 "Mine now..." +getweapon4 "Nice..." +getweapon5 "Bingo..." +getweapon6 "Hell yeah..." +getweapon7 "Excellent..." +getweapon8 "Yes..." +getweapon9 "There we go..." +getweapon10 "Perfect..." +getweapon11 "I like it..." +getweapon12 "That looks nice..." +getweapon13 "It's probably worth a fortune..." +locked1 "Don't have the key." +locked2 "Only opens with a key." +locked3 "Would need the key." +locked4 "Locked tight." +puzzfail1 "Damn." +puzzfail2 "Damn it." +puzzfail3 "No good." +puzzfail4 "Nope." +puzzfail5 "Uh uh." +puzzfail6 "Hmmm." +puzzsucc1 "Nice." +puzzsucc2 "That's it." +puzzsucc3 "Got it." +puzzsucc4 "Yes." +puzzsucc5 "Sweet." +fightstart1 "Here we go again." +fightstart2 "Let's get this show on the road." +fightstart3 "Time to die." +fightstart4 "Bring it on." +fightstart5 "You are all going to die." +fightstart6 "I've been spoiling for a fight." +fightstart7 "Let's do this." +fightstart8 "Time to get crazy! Kill 'em all!" +fightstart9 "You really don't want to start a fight with me." +fightstart10 "Let's get on with it." +fightstart11 "Kill!" +fightstart12 "This won't be hard." +fightstart13 "Let's do it." +fightstart14 "Let's do this." +fightstart15 "Let's just get this over with." +fightstart16 "Well, this will be an interesting challenge." +fightstart17 "Okay. Let's get started." +fightstart18 "Oh, this is just what I need right now..." +fightstart19 "Time to put on a show." +fightstart20 "I'm putting you down." +fightstart21 "Oh, good. Here I was afraid I'd have nothing to do." +mapstart1 "Ugh... this place smells horrible." +mapstart2 "Okay, let's get to work." +mapstart3 "Let's hurry this up." +mapstart4 "This place is all kinds of strange." +mapstart5 "I was born ready." +mapstart6 "It's a hard world. I do what I have to." +mapstart7 "No robot is superior to me." +mapstart8 "I've seen better." +mapstart9 "Okay. Let's head in." +mapstart10 "I don't want any trouble. I'm just passing through." +mapstart11 "Sorry to keep you waiting." +mapstart12 "I'll do my best." +mapstart13 "Just so we're clear: Anything good I find is mine." +mapstart14 "I bet the food here is terrible." +findsecret1 "Yeah, yeah, I'm the best." +findsecret2 "It's true. I do know my shit." +findsecret3 "What can I say? I'm good at what I do." +findsecret4 "It was no big deal." +findsecret5 "No trouble at all." +findsecret6 "It was easy." +findsecret7 "Thanks to me, yes." +findsecret8 "It was a walk in the park." +findsecret9 "It was a piece of cake." +findsecret10 "I still got it." +findsecret11 "I did good work, didn't I?" +findsecret12 "Wow, that's pretty lucky!" +scorekill1 "Good riddance." +scorekill2 "One down." +scorekill3 "Goodbye." +scorekill4 "Heh! You can't stop me." +scorekill5 "What a loser." +scorekill6 "We're done." +scorekill7 "Bye." +scorekill8 "Dead as can be." +scorekill9 "Another job done." +scorekill10 "The pleasure was all mine." +scorekill11 "How about something a little more challenging next time?" +scorekill12 "I'm glad that's over with." +scorekill13 "Well, it's over. That's that." +scorekill14 "Ugh. Just... go away." +scorekill15 "Get lost." +scorekill16 "Is that all?" +scorekill17 "Is that the best you can do?" +scorekill18 "You annoy me." +scorekill19 "Going to have to try harder than that." +scorekill20 "What? That it?" +scorekill21 "Get outta here." +scorekill22 "My pleasure." +scorekill23 "Out of my way." +scorekill24 "Get outta my way." +scorekill25 "Want some more?" +scorekill26 "Done and done." +scorekill27 "It's done." diff --git a/zmapinfo.txt b/zmapinfo.txt new file mode 100644 index 000000000..8cade63a1 --- /dev/null +++ b/zmapinfo.txt @@ -0,0 +1,4 @@ +GameInfo +{ + AddEventHandlers = "SWWMCrashHandler", "SWWMBrutalHandler" +} diff --git a/zscript.txt b/zscript.txt new file mode 100644 index 000000000..bc7e3ab58 --- /dev/null +++ b/zscript.txt @@ -0,0 +1,117 @@ +version "4.2.4" + +// utility code +#include "zscript/swwm_libeye/projector.txt" +#include "zscript/swwm_libeye/projector gl.txt" +#include "zscript/swwm_libeye/projector planar.txt" +#include "zscript/swwm_libeye/viewport.txt" +#include "zscript/swwm_coordutil.zsc" +// base code +#include "zscript/swwm_common.zsc" +#include "zscript/swwm_player.zsc" +#include "zscript/swwm_inventory.zsc" +#include "zscript/swwm_hud.zsc" +#include "zscript/swwm_loudboi.zsc" +// items +#include "zscript/swwm_health.zsc" +#include "zscript/swwm_armor.zsc" +#include "zscript/swwm_powerup.zsc" +#include "zscript/swwm_ammo.zsc" +#include "zscript/swwm_jackhammer.zsc" +#include "zscript/swwm_deepdarkimpact.zsc" +#include "zscript/swwm_splode.zsc" +#include "zscript/swwm_shot.zsc" +#include "zscript/swwm_cbt.zsc" +#include "zscript/swwm_danmaku.zsc" +#include "zscript/swwm_blazeit.zsc" +#include "zscript/swwm_sparkyboi.zsc" +#include "zscript/swwm_thiccboolet.zsc" +#include "zscript/swwm_tastytreat.zsc" +#include "zscript/swwm_deathlydeathcannon.zsc" + +Class SWWMCrashHandler : StaticEventHandler +{ + ui bool wasinmap; + ui int timer; + + override void UiTick() + { + if ( gamestate == GS_LEVEL ) + { + wasinmap = true; + timer = 0; + } + else if ( (gamestate == GS_FULLCONSOLE) && (wasinmap || (timer > 0)) ) + { + wasinmap = false; + if ( timer == 1 ) + { + Console.Printf(TEXTCOLOR_GOLD.."Oopsie Woopsie!"..TEXTCOLOR_NORMAL); + S_Sound("crash/glass",CHAN_5|CHAN_UI|CHAN_NOPAUSE,1,ATTN_NONE); + S_Sound("crash/glass",CHAN_6|CHAN_UI|CHAN_NOPAUSE,1,ATTN_NONE); + S_Sound("crash/glass",CHAN_7|CHAN_UI|CHAN_NOPAUSE,1,ATTN_NONE); + } + else if ( timer == 140 ) + { + Console.Printf(TEXTCOLOR_GOLD.."Looks like GZDoom made a fucky wucky! owo"..TEXTCOLOR_NORMAL); + S_Sound("crash/curb",CHAN_7|CHAN_UI|CHAN_NOPAUSE,1,ATTN_NONE); + } + else if ( timer == 350 ) + { + let hnd = SWWMBrutalHandler(StaticEventHandler.Find("SWWMBrutalHandler")); + if ( hnd && hnd.detected ) Console.Printf(TEXTCOLOR_GOLD.."Don't blame me. Shouldn't have tried running this with Brutal Doom."..TEXTCOLOR_NORMAL); + else Console.Printf(TEXTCOLOR_GOLD.."If you didn't trigger it manually, it's best if you take a screenshot and show it to Marisa."..TEXTCOLOR_NORMAL); + } + timer++; + } + } +} + +Class SWWMBrutalHandler : StaticEventHandler +{ + ui int timer; + ui TextureID scr; + bool detected; + + override void OnRegister() + { + for ( int i=0; iBrutal Doom"); + timer++; + } + else timer = 0; + } + + override void WorldTick() + { + if ( !detected ) return; + for ( int i=0; i screen pos. + resolution = new_resolution; + + // kd: This isn't really necessary but I kinda like it. + pixel_stretch = level.pixelstretch; + + // kd: Get the aspect ratio. 5:4 is handled just like 4:3... I GUESS + // this'll do. + aspect_ratio = max(4.0 / 3, Screen.GetAspectRatio()); + } + + double AspectRatio () const { + return aspect_ratio; + } + + // kd: Once you know you got screen info, you can call this whenever your + // fov changes. Like CacheFov(player.fov) will do. + void CacheFov (double hor_fov = 90) { + + // kd: This holds: aspect ratio = tan(horizontal fov) / tan(ver fov). + // gzd always uses hor fov, but the fov only holds in 4:3 (in a 4:3 box + // in your screen centre), so we just extend it. + tan_fov_2.x = tan(hor_fov / 2) * aspect_ratio / (4.0 / 3); + tan_fov_2.y = tan_fov_2.x / aspect_ratio; + } + + // kd: Also need some view info. Angle is yaw, pitch, roll in world format + // so positive pitch is up. Call one of the following functions. + protected vector3 view_ang; + protected vector3 view_pos; + + ui void OrientForRenderOverlay (RenderEvent event) { + Reorient( + event.viewpos, ( + event.viewangle, + event.viewpitch, + event.viewroll)); + } + + ui void OrientForRenderUnderlay (RenderEvent event) { + Reorient( + event.viewpos, ( + event.viewangle, + event.viewpitch, + event.viewroll)); + } + + void OrientForPlayer (PlayerInfo player) { + Reorient( + player.mo.vec3offset(0, 0, player.viewheight), ( + player.mo.angle, + player.mo.pitch, + player.mo.roll)); + } + + virtual void Reorient (vector3 world_view_pos, vector3 world_ang) { + view_ang = world_ang; + view_pos = world_view_pos; + } + + // kd: Now we can do projections and such (position in the level, go to + // your screen). + protected double depth; + protected vector2 proj_pos; + protected vector3 diff; + + virtual void BeginProjection () {} + virtual void ProjectWorldPos (vector3 world_pos) {} + virtual void ProjectActorPos ( + Actor mo, + vector3 offset = (0,0,0), + double t = 1) {} + + // kd: Portal aware version. + virtual void ProjectActorPosPortal ( + Actor mo, + vector3 offset = (0,0,0), + double t = 1) {} + + virtual vector2 ProjectToNormal () const { return (0, 0); } + virtual vector2 ProjectToScreen () const { return (0, 0); } + + virtual vector2 ProjectToCustom ( + vector2 origin, + vector2 resolution) const { + return (0, 0); + } + + bool IsInFront () const { + return 0 < depth; + } + + bool IsInScreen () const { + if( proj_pos.x < -depth || depth < proj_pos.x || + proj_pos.y < -depth || depth < proj_pos.y) { + return false; + } + + return true; + } + + // kd: Deprojection (point on screen, go into the world): + virtual void BeginDeprojection () {} + + virtual vector3 DeprojectNormalToDiff ( + vector2 normal_pos, + double depth = 1) const { + return (0, 0, 0); + } + + virtual vector3 DeprojectScreenToDiff ( + vector2 screen_pos, + double depth = 1) const { + return (0, 0, 0); + } + + virtual vector3 DeprojectCustomToDiff ( + vector2 origin, + vector2 resolution, + vector2 screen_pos, + double depth = 1) const { + return (0, 0, 0); + } + + // kd: A normal position is in the -1 <= x, y <= 1 range on your screen. + // This will be your screen no matter the resolution: + + /* + + (-1, -1) -- --- --- (0, -1) --- --- --- --- (1, -1) + | | + | | + | | + (-1, 0) (0, 0) (1, 0) + | | + | | + | | + (-1, 1) --- --- --- (0, 1) --- --- --- --- (1, 1) + + */ + + // So this scales such a position back into your drawing resolution. + + vector2 NormalToScreen (vector2 normal_pos) const { + normal_pos = 0.5 * (normal_pos + (1, 1)); + return ( + normal_pos.x * resolution.x, + normal_pos.y * resolution.y); + } + + // kd: And this brings a screen position to normal. Make sure the resolution + // is the same for your cursor. + + vector2 ScreenToNormal (vector2 screen_pos) const { + screen_pos = ( + screen_pos.x / resolution.x, + screen_pos.y / resolution.y); + return 2 * screen_pos - (1, 1); + } + + // kd: Other interesting stuff. + + vector3 Difference () const { + return diff; + } + + double Distance () const { + return diff.length(); + } +} diff --git a/zscript/swwm_libeye/viewport.txt b/zscript/swwm_libeye/viewport.txt new file mode 100644 index 000000000..ee5cdc5ec --- /dev/null +++ b/zscript/swwm_libeye/viewport.txt @@ -0,0 +1,141 @@ +/* kd: + + This helps repositioning the view port for stuff like screen blocks. It's a + little more than that, cuz it can also determine stuff like, "is this scene + position in the viewport?" Cuz the scene doesn't necessarily match the + viewport. + + Well yea... see the examples. Imagine how annoying it is to even get this + idea to begin with. + + */ + +struct swwmLe__Viewport { + + private vector2 scene_origin; + private vector2 scene_size; + + private vector2 viewport_origin; + private vector2 viewport_bound; + private vector2 viewport_size; + + private double scene_aspect; + private double viewport_aspect; + + private double scale_f; + private vector2 scene_to_viewport; + + ui void FromHud () const { + scene_aspect = Screen.GetAspectRatio(); + + vector2 hud_origin; + vector2 hud_size; + + [hud_origin.x, hud_origin.y, hud_size.x, hud_size.y] = + Screen.GetViewWindow(); + + let window_resolution = ( + Screen.GetWidth(), + Screen.GetHeight()); + + let window_to_normal = ( + 1.0 / window_resolution.x, + 1.0 / window_resolution.y); + + viewport_origin = ( + window_to_normal.x * hud_origin.x, + window_to_normal.y * hud_origin.y); + + viewport_size = ( + window_to_normal.x * hud_size.x, + window_to_normal.y * hud_size.y); + + viewport_aspect = hud_size.x / hud_size.y; + + viewport_bound = viewport_origin + viewport_size; + + // kd: The scene is what is actually rendered. It's not always the same + // as the viewport. When the statusbar comes into play, the scene is + // obscured by the viewport being too small. + + // Example: Compare screenblocks 11 against screenblocks 10 in unmodded + // Doom. You will notice that the scaling of the 3d world is the same, + // but it's moved up by half the height of the statusbar. + + // That makes this viewport stuff kinda really annoying to deal with. + + // Also statusbar.getsomethingfromstatusbar, really really nice naming. + + let statusbar_height = + (window_resolution.y - Statusbar.GetTopOfStatusbar()) / window_resolution.y; + + scale_f = hud_size.x / window_resolution.x; + + scene_aspect = Screen.GetAspectRatio(); + + let offset = 10 < screenblocks ? 0 : 0.5 * statusbar_height; + + scene_size = ( + scale_f, + scale_f); + + scene_origin = viewport_origin - (0, 0.5 * (scene_size.y - viewport_size.y)); + + scene_to_viewport = ( + viewport_size.x / scene_size.x, + viewport_size.y / scene_size.y); + } + + // kd: Is the scene pos (normal, just like projected normal) inside the + // view port? If yes, it's visible in the 3d world, even through resizing. + bool IsInside (vector2 scene_pos) const { + let normal_pos = scene_origin + ( + scene_size.x * 0.5 * (1 + scene_pos.x), + scene_size.y * 0.5 * (1 + scene_pos.y)); + + if( normal_pos.x < viewport_origin.x || viewport_bound.x < normal_pos.x || + normal_pos.y < viewport_origin.y || viewport_bound.y < normal_pos.y) { + return false; + } + + return true; + } + + // kd: Use these for drawing (and make sure the aspect ratios match). + vector2 SceneToCustom (vector2 scene_pos, vector2 resolution) const { + let normal_pos = 0.5 * ( + (scene_pos.x + 1) * scene_size.x, + (scene_pos.y + 1) * scene_size.y); + + return ( + (scene_origin.x + normal_pos.x) * resolution.x, + (scene_origin.y + normal_pos.y) * resolution.y); + } + + vector2 SceneToWindow (vector2 scene_pos) const { + return SceneToCustom( + scene_pos, + (Screen.GetWidth(), Screen.GetHeight()) ); + } + + vector2 ViewportToCustom (vector2 viewport_pos, vector2 resolution) const { + let normal_pos = 0.5 * ( + (viewport_pos.x + 1) * viewport_size.x, + (viewport_pos.y + 1) * viewport_size.y); + + + return ( + (viewport_origin.x + normal_pos.x) * resolution.x, + (viewport_origin.y + normal_pos.y) * resolution.y); + } + + vector2 ViewportToWindow (vector2 viewport_pos) const { + return ViewportToCustom( + viewport_pos, + (Screen.GetWidth(), Screen.GetHeight()) ); + } + + double Scale () const { + return scale_f; + } +} \ No newline at end of file diff --git a/zscript/swwm_loudboi.zsc b/zscript/swwm_loudboi.zsc new file mode 100644 index 000000000..e69de29bb diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc new file mode 100644 index 000000000..e69de29bb diff --git a/zscript/swwm_powerup.zsc b/zscript/swwm_powerup.zsc new file mode 100644 index 000000000..e69de29bb diff --git a/zscript/swwm_shot.zsc b/zscript/swwm_shot.zsc new file mode 100644 index 000000000..e69de29bb diff --git a/zscript/swwm_sparkyboi.zsc b/zscript/swwm_sparkyboi.zsc new file mode 100644 index 000000000..e69de29bb diff --git a/zscript/swwm_splode.zsc b/zscript/swwm_splode.zsc new file mode 100644 index 000000000..e69de29bb diff --git a/zscript/swwm_tastytreat.zsc b/zscript/swwm_tastytreat.zsc new file mode 100644 index 000000000..e69de29bb diff --git a/zscript/swwm_thiccboolet.zsc b/zscript/swwm_thiccboolet.zsc new file mode 100644 index 000000000..e69de29bb