Skip to content

Commit

Permalink
Added a new mod called the Revenge Mod.
Browse files Browse the repository at this point in the history
  • Loading branch information
Bitl committed Dec 14, 2018
1 parent af63c73 commit 3e06fa6
Show file tree
Hide file tree
Showing 80 changed files with 21,618 additions and 2 deletions.
2 changes: 2 additions & 0 deletions Build/Data/Highscore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
0
0
2 changes: 2 additions & 0 deletions Build/Data/HighscoreRevenge
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
0
0
3 changes: 3 additions & 0 deletions Build/Enhanced-Changes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
Black Shades Enhanced v1.1.1R and Black Shades Revenge Mod v1.0
- Added a seperate gameplay mod called "Revenge Mod", where the player has to defend themselves against assassins.

Black Shades Enhanced v1.1.1
- Fixed an issue where disabling music would make the program hang.

Expand Down
Binary file added Build/blackshades_revenge.exe
Binary file not shown.
30 changes: 30 additions & 0 deletions Build/config.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Screenwidth:
640
Screenheight:
480
Mouse sensitivity:
0.7
Show fps and other info:
0
VBL sync:
1
Blood:
1
Blur:
0
Main Menu:
1
Custom levels:
0
Music:
1
azerty keyboard:
0
invert mouse:
0
Fps (frames per second) limit:
300
Full Screen:
1
FOV (Field of View):
90
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Black Shades Enhanced
# Black Shades Enhanced and Revenge Mod

Hello everyone. Very recently, I figured out how to compile the code of Black Shades' Windows port, which I documented here:

Expand All @@ -16,7 +16,7 @@ But recently I figured out a way to compile it, and thus the Black Shades Enhanc

**What is included?**

As of v1.1.1:
As of v1.1.1R:
- Increased the FPS limit from 90 to 300.
- Allows the user to set the FPS limit in the config.txt
- Allows the user to run the game in windowed mode.
Expand All @@ -27,6 +27,7 @@ As of v1.1.1:
- Fixed all compiler warnings!
- Includes the soundtrack!
- Fixed an issue where disabling music would make the program hang.
- A seperate mod called the Revenge mod. Your VIP is gone, so you have to defend yourself against hordes of assassins.

All the new settings can be set in the config.txt the game generates.

Expand All @@ -40,6 +41,8 @@ All the new settings can be set in the config.txt the game generates.

![4](https://github.com/Bitl/Black-Shades-Enhanced/raw/master/images/img4.png)

![RevengeImage1](https://github.com/Bitl/Black-Shades-Enhanced/raw/master/images/revengeimage1.png)

**Credits:**

All credits go to Wolfire Games and David for the creation of Black Shades.
Expand Down
Binary file added blackshades_revenge/BlackShades.mcp
Binary file not shown.
Empty file.
30 changes: 30 additions & 0 deletions blackshades_revenge/IF_THIS_IS_A_README_YOU_HAVE_WON
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Right now it's all compiling...
http://filesingularity.timedoctor.org/Textures.tar.bz2
untar that in the Data/ dir to get the targas until somebody adds png support.
See "Readme" for the developer's original, which of course contains notes on playing the game and such.
Additional things we added:
Ctrl+G to grab/ungrab the cursor
ALT+Enter to switch to fullscreen and back again

Note that you need reasonably new OpenAL libs from
http://opensource.creative.com/
Most distros which have openal at all, probably won't have the latest and greatest.
For instance I'm told openal in debian unstable is from 2001.
If you don't want to update your OpenAL, you can add -DDEBIAN_NEEDS_TO_UPDATE_THEIR_OPENAL
Complaints about the name of the #define will be nulled ;-)

If you want fullscreen at startup, currently you have to -DFULLSCREEN.
I don't suggest doing this in OS X however as it seems to have a porblem keeping the mouse properly grabbed, thus requiring some key combination.

If you're on a platform where you A) Don't have Ogg Vorbis support in your OpenAL, or B) Like to redownload large wav files, be my guest and -DNOOGG and get http://filesingularity.timedoctor.org/Data.tar.bz2 for the wavs

Ported by:
relnev
theoddone33
icculus
zakk

The Bug fixed by:
Toby Haynes

send diffs to [email protected]
84 changes: 84 additions & 0 deletions blackshades_revenge/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
CC := gcc
CXX := g++
LINKER := g++
ASM := nasm
SRCDIR := ./Source
BINDIR := ./objs
EXE := $(BINDIR)/blackshades

CFLAGS := -O2 -Wall -g $(shell sdl-config --cflags) -I$(SRCDIR) -include Source/Support.h
CXXFLAGS := $(CFLAGS)
LDFLAGS := $(shell sdl-config --libs) -lGL -lGLU -lopenal # -framework QuickTime

# Don't want ogg?
#CFLAGS += -DNOOGG
# Got ogg?
LDFLAGS += -lvorbisfile -lvorbis

SRCS := Camera.cpp \
Decals.cpp \
Fog.cpp \
Frustum.cpp \
GameDraw.cpp \
GameInitDispose.cpp \
GameLoop.cpp \
GameTick.cpp \
Globals.cpp \
MacInput.cpp \
Main.cpp \
Maths.cpp \
Models.cpp \
Person.cpp \
Quaternions.cpp \
Serialize.cpp \
Skeleton.cpp \
Sprites.cpp \
Support.cpp \
TGALoader.cpp \
Text.cpp \
Timer.cpp

OBJS1 := $(SRCS:.c=.o)
OBJS2 := $(OBJS1:.cpp=.o)
OBJS3 := $(OBJS2:.asm=.o)
OBJS := $(foreach f,$(OBJS3),$(BINDIR)/$(f))
SRCS := $(foreach f,$(SRCS),$(SRCDIR)/$(f))

CLEANUP = $(wildcard *.exe) $(wildcard *.obj) \
$(wildcard $(BINDIR)/*.exe) $(wildcard $(BINDIR)/*.obj) \
$(wildcard *~) $(wildcard *.err) \
$(wildcard .\#*) core $(EXE)


# Rules for compiling individual source files...

$(BINDIR)/%.o: $(SRCDIR)/%.cpp
$(CXX) -c -o $@ $< $(CXXFLAGS)

$(BINDIR)/%.o: $(SRCDIR)/%.c
$(CC) -c -o $@ $< $(CFLAGS)

$(BINDIR)/%.o: $(SRCDIR)/%.asm
$(ASM) $(ASMFLAGS) -o $@ $<

.PHONY: all bindir blackshades
all: $(EXE)

$(EXE): $(BINDIR) $(OBJS)
$(LINKER) -o $(EXE) $(OBJS) $(LDFLAGS)

$(BINDIR) :
$(MAKE) bindir

bindir:
mkdir -p $(BINDIR)

distclean: clean

clean:
rm -f $(CLEANUP)
rm -rf $(BINDIR)

# end of Makefile.


77 changes: 77 additions & 0 deletions blackshades_revenge/Makefile.zakk
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
CC := gcc
CXX := g++
LINKER := g++
ASM := nasm
SRCDIR := ./Source
BINDIR := ./objs
EXE := $(BINDIR)/blackshades

CFLAGS := -g $(shell sdl-config --cflags) -I/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.framework/Versions/A/Headers -I/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers -I/System/Library/Frameworks/GLUT.framework/Versions/A/Headers -I/System/Library/Frameworks/DrawSprocket.framework/Versions/A/Headers -I/Developer/Headers/FlatCarbon -I/System/Library/Frameworks/AGL.framework/Versions/A/Headers -I/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/sw/include -I/sw/include/AL -I/usr/X11R6/include -D POOLOOPS -I$(SRCDIR)
CXXFLAGS := $(CFLAGS)
LDFLAGS := $(shell sdl-config --libs) -framework QuickTime

SRCS := Camera.cpp \
Decals.cpp \
Files.cpp \
Fog.cpp \
Frustum.cpp \
GameDraw.cpp \
GameInitDispose.cpp \
GameLoop.cpp \
GameTick.cpp \
Globals.cpp \
Main.cpp \
Maths.cpp \
Models.cpp \
Person.cpp \
Quaternions.cpp \
Skeleton.cpp \
Sprites.cpp \
TGALoader.cpp \
Text.cpp \
Timer.cpp

OBJS1 := $(SRCS:.c=.o)
OBJS2 := $(OBJS1:.cpp=.o)
OBJS3 := $(OBJS2:.asm=.o)
OBJS := $(foreach f,$(OBJS3),$(BINDIR)/$(f))
SRCS := $(foreach f,$(SRCS),$(SRCDIR)/$(f))

CLEANUP = $(wildcard *.exe) $(wildcard *.obj) \
$(wildcard $(BINDIR)/*.exe) $(wildcard $(BINDIR)/*.obj) \
$(wildcard *~) $(wildcard *.err) \
$(wildcard .\#*) core $(EXE)


# Rules for compiling individual source files...

$(BINDIR)/%.o: $(SRCDIR)/%.cpp
$(CC) -c -o $@ $< $(CXXFLAGS)

$(BINDIR)/%.o: $(SRCDIR)/%.c
$(CC) -c -o $@ $< $(CFLAGS)

$(BINDIR)/%.o: $(SRCDIR)/%.asm
$(ASM) $(ASMFLAGS) -o $@ $<

.PHONY: all bindir blackshades
all: blackshades

blackshades: $(BINDIR) $(OBJS)
$(LINKER) -o $(EXE) $(OBJS) $(LDFLAGS)

$(BINDIR) :
$(MAKE) bindir

bindir:
mkdir -p $(BINDIR)

distclean: clean

clean:
rm -f $(CLEANUP)
rm -rf $(BINDIR)

# end of Makefile.


117 changes: 117 additions & 0 deletions blackshades_revenge/Readme
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
Black Shades
By David Rosen

Please do not give a vote unless you are running in OS 9, Black Shades can run under OS X but only under emulation which does not work nearly as well.

Controls:
WASD = walk
shift = run
mouse = look
control = crouch/zoom
click = fire (while aiming) or smash (while running) or pick up gun (while crouching over a body and not aiming) or disarm (while not aiming)
q = aim or un-aim (important for picking up guns)
r = reload
e = psychic aim
z = toggle soul release
space = dive (while running forwards)

keys for debug mode:

tab = 3rdperson toggle
f = Force Push� :)
shift-x = switch weapons

Thats it

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 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.

The scoring system consists of:
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, walk or stand (don't run) 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 (zoom by holding the control key)

Shotgun: Aim and shoot. Very powerful but somewhat inaccurate.

Grenade: Hold down the mouse button to take out the pin, release the button to throw it. Crouch 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:
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

History:
11-6 to 11-9 main menu, score, etc.
10-9 to 11-6 better ai, gibbing, added zombies, weather, knife, shotgun, misc. stuff
10-8 shooting delay/ effect
10-6 added rich vip guy
10-5 bug fixes, gibbing, slomo psychicness
10-4 bug fixes, blood toggle, environments, falling damage
10-1 worked on menu, pathfinding
9-27 added black shades, bug fixes, added some IDG sounds, better collision, config.txt
9-22 bug fixes
9-21 mouse smoothing, better aiming, different blood
9-20 fixed street clipping, grenades working, more blood
9-19 fixed grenade faces, fixed some assassin AI, fixed penetration bugs
9-18 started assassin AI, some more assassin AI, some work on grenades
9-17 faster aiming/crouching, VBL sync, slightly improved control sensitivity stuff
9-16 glock added, penetrating sniper rounds, better scope, different zooming
9-15 suicide, improved bashing, npcs can carry guns, reloading, headshot sound, camera positioned better, handgun
9-14 rifle bashing, aim modifications, redder headshots, speed
9-13 everything in one folder, stationary 3rd person cam toggle, visible bullets, some sound stuff
9-12 crouching, duck to snipe, pain animations
9-11 more fluid aiming, different costumes, assault rifle, health system, impact reaction, kill counter
9-10 sniper rifle scope, bullets, sounds
9-9 bug fix
9-8 sniper rifle added (fires blanks, can't zoom), ragdoll system improved, ragdoll sounds
9-7 smooth transition to pointing arms, walking, better running, skeletal 'ragdoll' system + collisions
9-6 fixed sound bug
9-5 Added distance people sprites (very far view distance, faster also) Added limit to # of people per block, more even spacing, added pointing arms (pistol aiming without the pistol)
9-4 Added random civilian placement system (populated entire city instead of a block)
9-3 Too Busy
9-2 Too Busy
9-1 Too Busy
8-31 Started basic civilian AI
8-30 Fog fixed on ground and sky, better skeletal animation, pre-calced rotations for joints
8-29 Real Life� intervened, no time
8-28 Air control added, some collision fixed, occluding people, sky plane, ground does not occlude
8-27 looking up/down changes animation, editors updated to CW 8, animation editor tweaks, optimised a bit
8-26 look at previous soul position when going back into body, sound fx added, movement speed tweaks, can't see body while soul is released
8-25 black sunglasses idea(prevent visions) "dark shades" or "black shades" name
psychic vision effect added
better collision added
8-24 working under CW 8
8-23 collision detection on street (with sidewalk+buildings)
8-22 collision detection models + firstperson view
8-21 psychic bodyguard idea
8-20 basic city engine, skeletal animation from glfighters2 pre-alpha, player+building models, jogger group

Main menu music is included with permission from musician John Graham, Copyright 2002.
Due to legal difficulties all other music is composed by me at the last minute based on some nice loops made by Carlos Camacho, hence the 'programmer music'.
Also many thanks to my other friends and beta testers, and to artist David Drew for modelling the assault rifle, sniper rifle, handgun, shotgun and grenade.
Loading

0 comments on commit 3e06fa6

Please sign in to comment.