Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
How to PLay

Controls
- Move: WASD
- Jump: Spacebar
- Sprint: Shift
- Dodge: Ctrl
- Attack: Left Click
- Use Power-Up: F

Objectives
1. Navigate the Course: Overcome obstacles such as auto turrets, rocket launchers that deal spash damage, spike pits, and many more
2. Survive Monster Attacks: Evade or defeat creatures that chase you through the course
3. Defeat Bosses: Face off against powerful bosses at the end of certain levels to reach the next stage
4. Use Power-Ups: Find and activate special power-ups to hel pyou in your survival

<Features>
Traps and Obstacles
- Spike pits: jump over or find a different route to avoid damage
- Auto turrets: tracks player and shoots automatically
- Rocket Launcher: shoots at a specified location but deals splash damage so be careful
- Laser Barriers: Use teleport blaster to get through them

Monsters
- Chasers: Persistent enemies that follow you endlessly until level is completed or they are destroyed
- Ambushers: Hide in certain areas and attacks the player when close
- Shooters: Monsters that use guns for ranged attacks
- Boss: Have different attack patterns in each level

Power-Ups
- Speed Boost: Increases players movement speed for a limited amount of time
- Shield: Grants temporary god mod (cant take damage)
- Jump Boost: Allows players to jump to higher locations
- Unlimited Ammo: For a set amount of time the player will have unlimited ammo

Weapon Types
- Teleporter: The blaster in the game will act like a wand teleporter that lets the player move to different areas of the map by simply shooting it

Winning Conditions
- Complete all courses by reaching the final goal
- Defeat all bosses and survive every challenge thrown at you
2 changes: 1 addition & 1 deletion game/gamesys/Class.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ instancing of objects.
#include "../Game_local.h"

#ifdef _WIN32
#include "TypeInfo.h"
#include "TypeInfo"
#else
#include "NoGameTypeInfo.h"
#endif
Expand Down
2 changes: 1 addition & 1 deletion game/gamesys/SaveGame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include "../Game_local.h"

#ifdef _WIN32
#include "TypeInfo.h"
#include "TypeInfo"
#else
#include "NoGameTypeInfo.h"
#endif
Expand Down
29 changes: 27 additions & 2 deletions game/gamesys/SysCmds.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
// RAVEN END

#ifdef _WIN32
#include "TypeInfo.h"
#include "TypeInfo"
#else
#include "NoGameTypeInfo.h"
#endif
Expand Down Expand Up @@ -171,7 +171,7 @@ void Cmd_ListSpawnArgs_f( const idCmdArgs &args ) {

for ( i = 0; i < ent->spawnArgs.GetNumKeyVals(); i++ ) {
const idKeyValue *kv = ent->spawnArgs.GetKeyVal( i );
gameLocal.Printf( "\"%s\" "S_COLOR_WHITE"\"%s\"\n", kv->GetKey().c_str(), kv->GetValue().c_str() );
gameLocal.Printf( "\"%s\" " S_COLOR_WHITE "\"%s\"\n", kv->GetKey().c_str(), kv->GetValue().c_str() );
}
}

Expand Down Expand Up @@ -2930,6 +2930,25 @@ void Cmd_ToggleBuyMenu_f( const idCmdArgs& args ) {
}
}

// Aleen's Cmd Start

void Cmd_WhereAmI_f(const idCmdArgs& args) {
idPlayer* player = gameLocal.GetLocalPlayer();
if (!player) return;
gameLocal.Printf("I am at: (%f,%f,%f)\n",
player->firstPersonViewOrigin.x,
player->firstPersonViewOrigin.y,
player->firstPersonViewOrigin.z);
}

void Cmd_GiveRocketLauncher_f(const idCmdArgs& args) {
idPlayer* player = gameLocal.GetLocalPlayer();
if (!player) return;
gameLocal.Printf("Given Rocket Launcher\n");
}

// Aleen's Cmd End

void Cmd_BuyItem_f( const idCmdArgs& args ) {
idPlayer* player = gameLocal.GetLocalPlayer();
if ( !player ) {
Expand Down Expand Up @@ -3233,6 +3252,12 @@ void idGameLocal::InitConsoleCommands( void ) {
cmdSystem->AddCommand( "buy", Cmd_BuyItem_f, CMD_FL_GAME, "Buy an item (if in a buy zone and the game type supports it)" );
// RITUAL END

// Aleen's Ritual Start

cmdSystem->AddCommand("whereami", Cmd_WhereAmI_f, CMD_FL_GAME, "Show Location");
cmdSystem->AddCommand("give weapon_rocketlauncher", Cmd_GiveRocketLauncher_f, CMD_FL_GAME, "Give Player Rocket Launcher");

// Aleen's Ritual End
}

/*
Expand Down
2 changes: 1 addition & 1 deletion game/weapon/WeaponBlaster.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ stateResult_t rvWeaponBlaster::State_Fire ( const stateParms_t& parms ) {
PlayEffect ( "fx_chargedflash", barrelJointView, false );
PlayAnim( ANIMCHANNEL_ALL, "chargedfire", parms.blendFrames );
} else {
Attack ( false, 1, spread, 0, 1.0f );
Attack ( false, 10, 10, 0, 1.0f );
PlayEffect ( "fx_normalflash", barrelJointView, false );
PlayAnim( ANIMCHANNEL_ALL, "fire", parms.blendFrames );
}
Expand Down
35 changes: 28 additions & 7 deletions game/weapon/WeaponRocketLauncher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -443,14 +443,35 @@ stateResult_t rvWeaponRocketLauncher::State_Fire ( const stateParms_t& parms ) {
STAGE_INIT,
STAGE_WAIT,
};
switch ( parms.stage ) {

//int rocketsToFire = AmmoInClip(); // amount of ammo in clip



switch (parms.stage) {
case STAGE_INIT:
nextAttackTime = gameLocal.time + (fireRate * owner->PowerUpModifier ( PMOD_FIRERATE ));
Attack ( false, 1, spread, 0, 1.0f );
PlayAnim ( ANIMCHANNEL_LEGS, "fire", parms.blendFrames );
return SRESULT_STAGE ( STAGE_WAIT );

case STAGE_WAIT:

nextAttackTime = gameLocal.time + (fireRate * owner->PowerUpModifier(PMOD_FIRERATE));
for (int i = 0; i < clipSize; i++) { // shoot every available ammo in clip
if (clipSize > 0) {
Attack(false, 1, spread, 0, 1.0f);
PlayAnim(ANIMCHANNEL_LEGS, "fire", parms.blendFrames);
gameLocal.Printf("shot\n");
}
else {
return SRESULT_STAGE(STAGE_WAIT);
}
}

// Original Code -->
//
// case STAGE_INIT:
// nextAttackTime = gameLocal.time + (fireRate * owner->PowerUpModifier ( PMOD_FIRERATE ));
// Attack(false, 1, spread, 0, 1.0f);
// PlayAnim(ANIMCHANNEL_LEGS, "fire", parms.blendFrames);
// return SRESULT_STAGE(STAGE_WAIT);

case STAGE_WAIT:
if ( wsfl.attack && gameLocal.time >= nextAttackTime && ( gameLocal.isClient || AmmoInClip ( ) ) && !wsfl.lowerWeapon ) {
SetState ( "Fire", 0 );
return SRESULT_DONE;
Expand Down
4 changes: 2 additions & 2 deletions idlib/math/Simd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1491,7 +1491,7 @@ void TestMemcpy( void ) {
p_simd->Memcpy( test1, test0, 8192 );
for ( j = 0; j < i; j++ ) {
if ( test1[j] != test0[j] ) {
idLib::common->Printf( " simd->Memcpy() "S_COLOR_RED"X\n" );
idLib::common->Printf( " simd->Memcpy() " S_COLOR_RED "X\n" );
return;
}
}
Expand All @@ -1517,7 +1517,7 @@ void TestMemset( void ) {
p_simd->Memset( test, j, i );
for ( k = 0; k < i; k++ ) {
if ( test[k] != (byte)j ) {
idLib::common->Printf( " simd->Memset() "S_COLOR_RED"X\n" );
idLib::common->Printf( " simd->Memset() " S_COLOR_RED "X\n" );
return;
}
}
Expand Down
70 changes: 32 additions & 38 deletions q4sdk.sln
Original file line number Diff line number Diff line change
@@ -1,46 +1,40 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Game", "game.vcproj", "{49BEC5C6-B964-417A-851E-808886B57430}"
ProjectSection(ProjectDependencies) = postProject
{49BEC5C6-B964-417A-851E-808886B57400} = {49BEC5C6-B964-417A-851E-808886B57400}
EndProjectSection
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.12.35707.178 d17.12
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Game", "game.vcxproj", "{49BEC5C6-B964-417A-851E-808886B57430}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "idLib", "idlib.vcproj", "{49BEC5C6-B964-417A-851E-808886B57400}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "idLib", "idlib.vcxproj", "{49BEC5C6-B964-417A-851E-808886B57400}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MPGame", "mpgame.vcproj", "{F2EF9123-B7C3-4F2F-A351-747B595BB534}"
ProjectSection(ProjectDependencies) = postProject
{49BEC5C6-B964-417A-851E-808886B57400} = {49BEC5C6-B964-417A-851E-808886B57400}
EndProjectSection
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MPGame", "mpgame.vcxproj", "{F2EF9123-B7C3-4F2F-A351-747B595BB534}"
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
DebugInline = DebugInline
Release = Release
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
DebugInline|x86 = DebugInline|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{49BEC5C6-B964-417A-851E-808886B57430}.Debug.ActiveCfg = Debug|Win32
{49BEC5C6-B964-417A-851E-808886B57430}.Debug.Build.0 = Debug|Win32
{49BEC5C6-B964-417A-851E-808886B57430}.DebugInline.ActiveCfg = DebugInline|Win32
{49BEC5C6-B964-417A-851E-808886B57430}.DebugInline.Build.0 = DebugInline|Win32
{49BEC5C6-B964-417A-851E-808886B57430}.Release.ActiveCfg = Release|Win32
{49BEC5C6-B964-417A-851E-808886B57430}.Release.Build.0 = Release|Win32
{49BEC5C6-B964-417A-851E-808886B57400}.Debug.ActiveCfg = Debug|Win32
{49BEC5C6-B964-417A-851E-808886B57400}.Debug.Build.0 = Debug|Win32
{49BEC5C6-B964-417A-851E-808886B57400}.DebugInline.ActiveCfg = DebugInline|Win32
{49BEC5C6-B964-417A-851E-808886B57400}.DebugInline.Build.0 = DebugInline|Win32
{49BEC5C6-B964-417A-851E-808886B57400}.Release.ActiveCfg = Release|Win32
{49BEC5C6-B964-417A-851E-808886B57400}.Release.Build.0 = Release|Win32
{F2EF9123-B7C3-4F2F-A351-747B595BB534}.Debug.ActiveCfg = Debug|Win32
{F2EF9123-B7C3-4F2F-A351-747B595BB534}.Debug.Build.0 = Debug|Win32
{F2EF9123-B7C3-4F2F-A351-747B595BB534}.DebugInline.ActiveCfg = DebugInline|Win32
{F2EF9123-B7C3-4F2F-A351-747B595BB534}.DebugInline.Build.0 = DebugInline|Win32
{F2EF9123-B7C3-4F2F-A351-747B595BB534}.Release.ActiveCfg = Release|Win32
{F2EF9123-B7C3-4F2F-A351-747B595BB534}.Release.Build.0 = Release|Win32
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{49BEC5C6-B964-417A-851E-808886B57430}.Debug|x86.ActiveCfg = Debug|Win32
{49BEC5C6-B964-417A-851E-808886B57430}.Debug|x86.Build.0 = Debug|Win32
{49BEC5C6-B964-417A-851E-808886B57430}.DebugInline|x86.ActiveCfg = DebugInline|Win32
{49BEC5C6-B964-417A-851E-808886B57430}.DebugInline|x86.Build.0 = DebugInline|Win32
{49BEC5C6-B964-417A-851E-808886B57430}.Release|x86.ActiveCfg = Release|Win32
{49BEC5C6-B964-417A-851E-808886B57430}.Release|x86.Build.0 = Release|Win32
{49BEC5C6-B964-417A-851E-808886B57400}.Debug|x86.ActiveCfg = Debug|Win32
{49BEC5C6-B964-417A-851E-808886B57400}.Debug|x86.Build.0 = Debug|Win32
{49BEC5C6-B964-417A-851E-808886B57400}.DebugInline|x86.ActiveCfg = DebugInline|Win32
{49BEC5C6-B964-417A-851E-808886B57400}.DebugInline|x86.Build.0 = DebugInline|Win32
{49BEC5C6-B964-417A-851E-808886B57400}.Release|x86.ActiveCfg = Release|Win32
{49BEC5C6-B964-417A-851E-808886B57400}.Release|x86.Build.0 = Release|Win32
{F2EF9123-B7C3-4F2F-A351-747B595BB534}.Debug|x86.ActiveCfg = Debug|Win32
{F2EF9123-B7C3-4F2F-A351-747B595BB534}.Debug|x86.Build.0 = Debug|Win32
{F2EF9123-B7C3-4F2F-A351-747B595BB534}.DebugInline|x86.ActiveCfg = DebugInline|Win32
{F2EF9123-B7C3-4F2F-A351-747B595BB534}.DebugInline|x86.Build.0 = DebugInline|Win32
{F2EF9123-B7C3-4F2F-A351-747B595BB534}.Release|x86.ActiveCfg = Release|Win32
{F2EF9123-B7C3-4F2F-A351-747B595BB534}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal