summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Data/sounds/click.oggbin4271 -> 0 bytes
-rw-r--r--Data/sounds/gun/empty-clip.wavbin67736 -> 67736 bytes
-rw-r--r--Data/sounds/knifeslash.oggbin7632 -> 0 bytes
-rw-r--r--README.md144
-rw-r--r--src/GameInitDispose.cpp2
5 files changed, 14 insertions, 132 deletions
diff --git a/Data/sounds/click.ogg b/Data/sounds/click.ogg
deleted file mode 100644
index 1e779e6..0000000
--- a/Data/sounds/click.ogg
+++ /dev/null
Binary files differdiff --git a/Data/sounds/gun/empty-clip.wav b/Data/sounds/gun/empty-clip.wav
index 5bdfcd0..d6b01fc 100644
--- a/Data/sounds/gun/empty-clip.wav
+++ b/Data/sounds/gun/empty-clip.wav
Binary files differdiff --git a/Data/sounds/knifeslash.ogg b/Data/sounds/knifeslash.ogg
deleted file mode 100644
index 6b09bb1..0000000
--- a/Data/sounds/knifeslash.ogg
+++ /dev/null
Binary files differdiff --git a/README.md b/README.md
index ab79709..89dcaa3 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,13 @@
 # Black Shades
-Black Shades was one of the winners of the uDevGame 2002 contest,
-out of about 40 contestants.  David Rosen aimed for a much simpler
-graphical style than in GLFighters and Lugaru in order to complete the game
-within the deadline. In Black Shades you control a psychic bodyguard,
-and try to protect the VIP (dressed in white) from a horde of zombies,
-snipers and other assorted would-be assassins.
+
+In Black Shades you control a psychic bodyguard, and try to protect the VIP
+(dressed in white) from a horde of zombies, snipers and other assorted
+would-be assassins.
 
 ![screenshot](screenshot.png)
 
 ## Unique Features
+
 * Infinite randomly generated city
 * Rag-doll skeletal animation
 * Soul release mode
@@ -17,132 +16,15 @@ snipers and other assorted would-be assassins.
   disarming them, tackling the VIP out of the line of fire,
   or any combination of the above
 
-## Instructions
-Try to keep your VIP (the guy in white) alive as long as possible.
-The assassins will all try to shoot or stab him to death.  You must do
-all you can to prevent this.  Your reputation has preceded you, so the VIP
-has absolute confidence in your abilities and will completely ignore all
-the assassins.  When an assassin is aiming at your VIP with a gun, you will
-psychicly see a line of sight extending from him to your VIP.  This line
-will narrow and redden until it disappears and the assassin fires.  Depending
-on the situation it may be best just to shoot the assassin(s), or to dive
-and tackle the VIP to the ground to avoid the bullet.  Unfortunately
-your psychic powers do not show the line of sight of knife-wielding assassins.
-
-If you are feeling overwhelmed you can use psychic aiming to temporarily
-speed up your thought processes and aim your shots better.  If there are
-no visible enemies you may want to release your soul and look for
-nearby enemies.  When your soul is released your VIP pulsates between
-blue and red, civilians between black and red, and assassins are solid red.
-
-If you die or your VIP is killed, the level restarts.  If you are interested
-in the theory behind this: you are a psychic bodyguard, so you can see
-small distances into the future. The failure only occured in a possible future
-which you are now going to try and avoid.
-
-### Controls
-* wasd = walk
-* left shift = run
-* mouse = look
-* left control = crouch
-* left click =
-  * while running or not armed with a gun: smash or stab
-  * while aiming: fire
-  * with grenade: pull pin (release button to throw)
-* right click =
-  * while aiming sniper rifle: zoom
-  * while not aiming: disarm
-  * with grenade: put pin back
-* space = dive (while running forwards)
-* q =
-  * while crouching over a body and not aiming: pick up weapon
-  * otherwise: psychic aim
-* e = aim or un-aim (important for picking up guns)
-* r = reload
-* z = toggle soul release
-* l = laser sight
-
-Keys for debug mode:
-* tab = toggle third-person modes
-* middle click = shoot grenade
-* f = force push :)
-* x = switch weapons
-* b = pause if shift else slomo
-* k = progress to next level
-
-### Scoring System
-* 150 points for a successful disarm
-* 300 points for destroying a zombie (by blowing its head off)
-* 100+50x points for completing a mission where x is the mission number
-  (i.e. 450 points for completing mission 3)
-* 75 points for incapacitating an assassin, +50 if he had a knife
-* -300 points for hurting a civilian
-* -200 points for allowing the VIP to die
-
-The penalty for failing to protect the VIP is halved if you kill the assassin.
-
-You can edit levels by setting `Custom levels` to 1 in the config
-and editing the `customlevels.txt` file in the data folder.
-
-### Weapons
-#### Bare Hands
-Smack people with them.  Or if you want to be nice, come near somebody
-with a gun and take it away.
-
-#### Knife
-Like bare hands, but deadly and with longer range.
-Look out for knife-wielding assassins, they are the most dangerous.
-
-#### Handgun
-One shot with this should be enough to incapacitate
-any human target, but they may remain conscious for a second
-(this can be bad if they are about to stab your VIP, aim for the head).
-
-#### Magnum
-Not as much ammo as the vanilla handgun, but one shot is an instantenous kill.
-
-#### Assault Rifle
-This weapon has quite a kick and is bigger and more unwieldy than the handguns,
-but it has a large magazine and can fire quickly if necessary.
-
-#### Sniper Rifle
-A bit more powerful than the magnum, with a scope.
-Very difficult to aim unless you are zoomed in.
-
-#### Shotgun
-Aim and shoot.  Very powerful but somewhat inaccurate.
-
-#### Grenade
-Hold down the left mouse button to take out the pin, release the button
-to throw it.  Right click to change your mind and put the pin back in.
-You can knock people out if you hit them in the head,
-or of course you can just blow them to pieces.
-
-## Troubleshooting
-Right now it's all compiling…
-
-The only known bugs are:
-* It doesn't work too well under classic emulation
-* Occasional collision detection issues
-* Turning virtual memory off can cause speed issues
-
-## License and Credits
-Black Shades was originally developed by David Rosen for a Macintosh game
-programming contest called uDevGame held by iDevGames.com in 2002 and released
-under the freeware uDevGame License.  In 2021, David Rosen relicensed the game
-under the terms of the GNU General Public License version 3 or later.
+## Copying
 
-Main menu music is included with permission from musician John Graham,
-Copyright 2002.  Due to legal difficulties all other music is composed
-by David Rosen at the last minute based on some nice loops made by
-Carlos Camacho, hence the *programmer music*.
+![GPLv3](https://www.gnu.org/graphics/gplv3-127x51.png)
 
-Artist David Drew modelled the assault rifle,
-sniper rifle, handgun, shotgun and grenade.
+Black Shades is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published
+by the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
 
-David Rosen's other friends and beta testers also helped
-during the early phases of development.
+Please refer to the project's wiki for the complete list of [credits].
 
-Black Shades was ported to other operating systems by Steven "relnev" Fuller,
-Dan "theoddone33" Olson, Ryan "icculus" Gordon and Zachary "zakk" Jack Slater.
-The Bug was fixed by Toby Haynes.
+[credits]: https://man.sr.ht/~cnx/blackshades/credits.md
diff --git a/src/GameInitDispose.cpp b/src/GameInitDispose.cpp
index 8dadb84..c2ef2ca 100644
--- a/src/GameInitDispose.cpp
+++ b/src/GameInitDispose.cpp
@@ -110,9 +110,9 @@ Game* makeGame(Config config)
 void LoadSounds(bool musictoggle)
 {
 	gSampleSet[clicksound] = loadSound("gun/empty-clip.wav");
-	gSampleSet[pistol1sound] = loadSound("gun/fire/9-mm-pistol.wav");
 	gSampleSet[shotgunsound] = loadSound("gun/fire/20-gauge-shotgun.wav");
 	gSampleSet[pistol2sound] = loadSound("gun/fire/22-magnum-pistol.wav");
+	gSampleSet[pistol1sound] = loadSound("gun/fire/9-mm-pistol.wav");
 	gSampleSet[machinegunsound] = loadSound("gun/fire/ar-15-pistol.wav");
 	gSampleSet[riflesound] = loadSound("gun/fire/ar-15-rifle.wav");
 	gSampleSet[bodylandsound] = loadSound("impact/body-fall.wav");